Commit Graph

1063 Commits

Author SHA1 Message Date
digimer
a8b1934352 Adding new anvil-watch-servers tool and man page
Signed-off-by: digimer <mkelly@alteeve.ca>
2023-11-27 23:47:29 -05:00
digimer
8ce1f04335 Finished CPU support in anvil-manage-server-system!
* Updated Get->available_resources() to record the maximum cores that
  can be allocated to a server. This is N-1 for hosts with 4 or less
  cores, or N-2 cores otherwise.

Signed-off-by: digimer <mkelly@alteeve.ca>
2023-11-24 16:51:15 -05:00
digimer
b4037fade5 Added RAM change support to anvil-manage-server-system
* Updated Database->insert_or_update_servers() to error if the RAM being
  recorded is less than 640 KiB. This is because, somewhere yet
  undiscovered, the RAM is being recorded in KiB which breaks things.

Signed-off-by: digimer <mkelly@alteeve.ca>
2023-11-23 22:53:36 -05:00
digimer
b5ce2c4871 Added a call to Remote->add_target_to_known_hosts in Remote->test_access
Signed-off-by: digimer <mkelly@alteeve.ca>
2023-11-23 20:40:57 -05:00
digimer
6bc2601d34 Updated anvil-manage-server-system to change boot device ordering.
* Updated Server->parse_definition() to store a hash to translate a
  device target to a device type.

Signed-off-by: digimer <mkelly@alteeve.ca>
2023-11-23 19:22:46 -05:00
digimer
1e376fc06b Updated anvil-manage-dr to change --list to --show for consistency
* Updated anvil-manage-dr to handle DR hosts without a VG in a given SG
* Fixed up minor display issues in anvil-manage-storage-groups

Signed-off-by: digimer <mkelly@alteeve.ca>
2023-11-17 23:52:58 -05:00
Tsu-ba-me
b7629e4c2b fix(tools): enable anvil-access-module to emit events 2023-11-17 16:09:55 -05:00
digimer
ef0f04117f Added '--list' to anvil-manage-dr
* Updated Database->get_hosts() to store hosts in a host_type hash.
* Updated Database->get_servers() to store servers by name, regardless
  of host Anvil! node.

Signed-off-by: digimer <mkelly@alteeve.ca>
2023-11-14 17:50:48 -05:00
digimer
d9aa8aee74 Updated anvil-manage-keys to work from the command line
Signed-off-by: digimer <mkelly@alteeve.ca>
2023-11-13 18:59:24 -05:00
digimer
438507ea80 Fixed a log print
Signed-off-by: digimer <mkelly@alteeve.ca>
2023-11-10 16:12:39 -05:00
digimer
9bd98951b5 Added backup/restore of partition table in Storage->auto_grow_pv
* Auto-growing PVs (and the backing partition) is now supported by
  anvil-manage-host '--auto-grow-pv'.

Signed-off-by: digimer <mkelly@alteeve.ca>
2023-11-08 20:59:40 -05:00
digimer
ac84d5ba0a Removed Storage->auto_grow_pv from anvil-version-changes.
Signed-off-by: digimer <mkelly@alteeve.ca>
2023-11-08 12:05:03 -05:00
digimer
edc544255e Rebased with main and resolved conflicts.
This branch resolves issue #462; Auto growing PVs. Specifically, it looks at the LVM PVs on the host and checks to see if there is unused free space after the backing partition. If there is, it auto-grows the partition and then resizes the PV. This featu
re is designed to make life easier for users who deleted the auto-created '/home' partition during the anaconda disk partitioning tool.
* Created Storage->auto_grow_pv() that does the above.
* Added the missing hidden method name _create_rsync_wrapper in the Storage module POD.
* Added a call to Storage->auto_grow_pv() in anvil-configure-host and anvil-version-changes for nodes and DR.

Signed-off-by: digimer <mkelly@alteeve.ca>
2023-11-08 12:00:48 -05:00
digimer
f3c78be05f Added missing query uuid to update_storage_group_members.
Signed-off-by: digimer <mkelly@alteeve.ca>
2023-11-06 14:58:48 -05:00
digimer
54a437d9a3 Rearranged checks in anvil-version-changes.
Signed-off-by: digimer <mkelly@alteeve.ca>
2023-11-05 14:12:02 -05:00
digimer
e5e958a03b Updated anvil-configure-host to clear "config::map_network"
Also updated anvil-manage-host to properly display the network mapping
status.

Signed-off-by: digimer <mkelly@alteeve.ca>
2023-11-03 17:35:01 -04:00
digimer
3251154366 Updated anvil-daemon to run anvil-configure-host jobs when mapping net
Also fixed a bug in anvil-manage-host that prevented showing if the
network mapping flag was set.

Signed-off-by: digimer <mkelly@alteeve.ca>
2023-11-03 15:25:45 -04:00
digimer
ff3d1983e3 Bumped up logging to debug an anvil-provision-server hang.
Signed-off-by: digimer <mkelly@alteeve.ca>
2023-11-02 23:26:12 -04:00
digimer
081c5ea90e Possibly fixed the anvil-delete-server hang bug.
* Updated Server->connect_to_libvirt() to check that the target URI's
  SSH fingerprint is recorded before connecting. Also added an alarm
  wrapper around the Sys::Virt->new() call.
* Continued work on anvil-manage-server-system, working on the boot
  order section now.

Signed-off-by: digimer <mkelly@alteeve.ca>
2023-11-02 15:01:08 -04:00
digimer
8c97f478a8 Updated Server->update_definition() to undefine a server when needed.
* Boosted logging to debug anvil-delete-server hang in jenkins.

Signed-off-by: digimer <mkelly@alteeve.ca>
2023-11-01 16:06:59 -04:00
digimer
9b55504872 Updated anvil-manage-server-system to update defined servers.
* Updated Server->locate() to take the new 'anvil' parameter to speed up
  searches.
* Updated Server->update_definition() to use Server->locate() to find
  where updates are needed. It now also defines the server with the new
  config.

Signed-off-by: digimer <mkelly@alteeve.ca>
2023-11-01 00:15:13 -04:00
digimer
fd461f940d Fixed a bug in Remote->call()
* If the call to Remote-call() set the target that was actually the
  local short hostname, it would fail to make the call at all. Now if
  the 'target' is local, the shell call is instead passed to
  System->call() instead.
* Cleaned up logging.

Signed-off-by: digimer <mkelly@alteeve.ca>
2023-10-31 13:16:39 -04:00
digimer
49f194eac6 Fixed issue #515; anvil-join-anvil updates hostnames properly now
* Updated Get->host_name() to accept the new 'refresh' parameter. This
  forces a reread of the hostname, instead of using the cached value.
* Updated System->host_name() so that, when it's updating the hostname,
  it updates the database and cached variables.
* Updated Words->center_text() to avoid undefinied parameter issues.
* Updated anvil-join-anvil to ensure the 'sys::host_name' variable.

Signed-off-by: digimer <mkelly@alteeve.ca>
2023-10-27 19:58:37 -04:00
digimer
ab6acd594c Fixed a bug where 'all' host jobs would not be shown.
Signed-off-by: digimer <mkelly@alteeve.ca>
2023-10-25 15:45:12 -04:00
digimer
4f6fa4b6ed Working on a bug where broken manifests are saved.
* Updated Striker->generate_manifest() to add pod and make the prefix,
  sequence and domain parameters required.
* Created the check_for_broken_manifests() function for anvil-daemon to
  detect/remove broken manifests.

Signed-off-by: digimer <mkelly@alteeve.ca>
2023-10-24 13:36:30 -04:00
digimer
9ee8f782ee Continuing to try to resolve duplicate variables bug.
* Added a called to Database->_check_for_duplicates to Database->resync_databases
* Added 'check_for_resync => 1' to anvil-configure-host.

Signed-off-by: digimer <mkelly@alteeve.ca>
2023-10-21 14:31:14 -04:00
digimer
2a3f0bab24 Reworked how and when duplicate variables are checked/cleared.
Moved the logic to a new private method, and call it now from the active
Striker in the once per minute loop. The duplicate variable issue seems
to be not entirely uncommon.

Signed-off-by: digimer <mkelly@alteeve.ca>
2023-10-21 13:33:14 -04:00
digimer
1824bb2eed Added forced DB resyncs to striker-manage-peers
Signed-off-by: digimer <mkelly@alteeve.ca>
2023-10-20 23:41:21 -04:00
digimer
a35e790a4d Fixed a minor striker-boot-machine bug.
Divide by zero error when no hosts with IPMI found.

Signed-off-by: digimer <mkelly@alteeve.ca>
2023-10-20 11:38:15 -04:00
digimer
be89bfb438 Updated striker-get-screenshots to create the screenshot directory.
Also fixed a typo in the POD for Storage->make_directory().

Signed-off-by: digimer <mkelly@alteeve.ca>
2023-10-19 21:36:15 -04:00
digimer
5ec395c53a Reworked DB resync logic.
With this new system, a 'primary_db' is chosen (first connected DB UUID when sorted) and only it does resyncs. Further, resyncs have been pulled from all tools except anvil-daemon. So with this new system, the chances of duplicate, simultaneous resyncs should be removed (hopefully for real this time).

* Database->check_agent_data() no longer calls a resync after loading a
  schema.
* Removed the Database->coonnect() 'all' parameter
* The database used to read from is now always the same as the primary,
  even if there is a local DB.
* Database->connect() 'check_for_resync' parameter can now be set to
  '2', which means "check for resync _if_ I am primary", where '1' still
  checks for resync no matter what.

Signed-off-by: digimer <mkelly@alteeve.ca>
2023-10-19 20:41:57 -04:00
digimer
b1f89c2723 Finished initial version of striker-show-jobs
* Updated Database->get_jobs() to take 'job_host_uuid = all' to allow
  loading jobs from all cluster machines. Also updated it to record the
  'job_host_uuid' and the unix timestamp version of 'modified_date'.

Signed-off-by: digimer <mkelly@alteeve.ca>
2023-10-18 20:51:20 -04:00
digimer
4398ffe70c Updated striker-boot-machine to support booting all machines.
* Wrote the man page for striker-boot-machine, changing --host-name to
  --host, and adding the '--host all' support.
* Updated anvil-manage-host to support checking/enabling/disabling
  network mapping mode.

Signed-off-by: digimer <mkelly@alteeve.ca>
2023-10-12 22:18:07 -04:00
digimer
b3c067b016 Fixed a bug in anvil-manage-files where missing files weren't being downloaded.
Signed-off-by: digimer <mkelly@alteeve.ca>
2023-10-12 01:01:31 -04:00
digimer
7545df1e55 Fixed a bug in which host runs an anvil-delete-server job.
* Updated anvil-delete-server to use the new Server->locate method. This
  was done as the old Server->locate() was failing to find the server
running on the peer when anvil-delete-server was running on the backup
subnode.
* Updated Server->locate() to search hosts for XML definition and DRBD
  configs so that it can record where the server is recorded to run,
even if the server isn't running or defined at the time the locate ran.

Signed-off-by: digimer <mkelly@alteeve.ca>
2023-10-11 22:22:06 -04:00
digimer
68521cdab7 Updated striker-get-screenshots to set permissions properly.
This updates the /opt/alteeve/screenshot directories and the screenshots
in them to be readible by the WebUI.

Signed-off-by: digimer <mkelly@alteeve.ca>
2023-10-11 17:22:06 -04:00
digimer
55b1380031 Finished (but need more testing) of Server->locate().
This includes the changes in PR#492.

Signed-off-by: digimer <mkelly@alteeve.ca>
2023-10-11 17:22:06 -04:00
digimer
245f75de9b Added Server->update_definition()
* This takes a server and new definition XML and updated the database and any available hosts. Does not yet update defined or running servers.

Signed-off-by: digimer <mkelly@alteeve.ca>
2023-10-11 17:22:06 -04:00
digimer
e361d0b424 More progress on anvil-manage-server-system
* It now edits the XML to change the boot menu, but doesn't save yet.

Signed-off-by: digimer <mkelly@alteeve.ca>
2023-10-11 17:22:06 -04:00
digimer
201cd53265 Improved the logic behind Network->find_target_ip()
* This adds the new 'networks' and 'test_access' parameters to allow
  restricting/ordering matched networks, and adds 'test_access' to
  validate the link is working.
* Continued work on anvil-manage-server-system

Signed-off-by: digimer <mkelly@alteeve.ca>
2023-10-11 17:22:06 -04:00
digimer
62fe62a44b * Continued work on anvil-manage-server-system. It now displays the boot devices, CPU and RAM info.
Signed-off-by: digimer <mkelly@alteeve.ca>
2023-10-11 17:22:06 -04:00
digimer
7762540f85 Fixed wrappers to handle quoted arguments properly.
Signed-off-by: digimer <mkelly@alteeve.ca>
2023-10-10 10:10:54 -04:00
digimer
3d4d7abfe3 Increased logging to debug server install failure.
Signed-off-by: digimer <mkelly@alteeve.ca>
2023-09-29 13:01:58 -04:00
digimer
c3fe39e6a8 Added a check file unlinked files.
* On subnodes and DR hosts, a check is made now in Storage->check_files() for files not linked in file_locations. Any found are added, with a check to see if the file already exists locally and, if so, that the md5sum is accurate or not (to set if the file is ready for use or not).

Signed-off-by: digimer <mkelly@alteeve.ca>
2023-09-29 00:05:29 -04:00
digimer
0bff40b21e Fixed a bug where files that are ready for use were not found.
Signed-off-by: digimer <mkelly@alteeve.ca>
2023-09-28 21:35:16 -04:00
digimer
5a8f775db4 Removed the reboot job at the end of anvil-configure-host.
Signed-off-by: digimer <mkelly@alteeve.ca>
2023-09-28 18:23:57 -04:00
digimer
30248760b5 Moved the wait_on_subnodes function call to earlier in the script.
Signed-off-by: digimer <mkelly@alteeve.ca>
2023-09-28 17:52:11 -04:00
digimer
77bae80534 Added default values for MTU and DNS if not set in a manifest.
Signed-off-by: digimer <mkelly@alteeve.ca>
2023-09-28 17:47:53 -04:00
digimer
b8fb3d62e3 Added checks for the screenshot directory before collection.
Signed-off-by: digimer <mkelly@alteeve.ca>
2023-09-28 16:30:36 -04:00
digimer
663a1e0527 Quieted screenshot logging in anvil-daemon.
Signed-off-by: digimer <mkelly@alteeve.ca>
2023-09-28 16:27:40 -04:00
digimer
fcbace6713 Updated anvil-join-anvil to hold if either node is still running anvil-configure-host
* Fixed a minor bug and added logging of maintenance_mode calls in anvil-configure-host.

Signed-off-by: digimer <mkelly@alteeve.ca>
2023-09-28 16:01:32 -04:00
digimer
e480337239 Fixed wait loop for subnodes
Signed-off-by: digimer <mkelly@alteeve.ca>
2023-09-28 11:47:48 -04:00
digimer
582a8b292c Added more job updates to anvil-manage-power.
* This is a test to see if the job waiting for the uptime to be 300s,
  leaving the job_progress as 0, was causing the job to be repeatedly
  called.
* This is related to issue #479

Signed-off-by: digimer <mkelly@alteeve.ca>
2023-09-28 01:19:52 -04:00
digimer
5b286f2696 Added missing switch reading in anvil-manage-power.
Signed-off-by: digimer <mkelly@alteeve.ca>
2023-09-28 00:24:29 -04:00
digimer
ef042eef25 Cleaned up logging while waiting for subnodes.
Signed-off-by: digimer <mkelly@alteeve.ca>
2023-09-28 00:15:14 -04:00
digimer
5d5270486e Added a wait loop when forming node clusters.
* This adds a check where anvil-join-anvil waits until both subnodes are
  marked as configured and not in maintenance mode.
* Should address issue #479 (maybe, this shouldn't trigger reboots, but
  it was certainly a race condition found while investigating).

Signed-off-by: digimer <mkelly@alteeve.ca>
2023-09-27 22:38:07 -04:00
digimer
d58521ceca Added screenshot capture to striker-collect-debug.
Signed-off-by: digimer <mkelly@alteeve.ca>
2023-09-27 11:46:56 -04:00
Digimer
745081b649
Merge branch 'main' into patch-screenshot 2023-09-22 23:28:12 -04:00
digimer
b1562e0301 * Added the new screenshot tool.
Signed-off-by: digimer <mkelly@alteeve.ca>
2023-09-22 17:16:19 -04:00
digimer
c039c58128 * This commit moves taking screenshots of hosted servers onto the strikers using the Sys::Virt module. This was needed because the screenshots were being taken by scan-server, and that was causing it to take a long time to run. It should never have been handled by the scan agent anyway. This update requires a WebUI fix to use the new screenshot tool. This tool also adds holding multiple screenshots to allow users to "scrub" through screenshots up to 10 hours in the past.
Signed-off-by: digimer <mkelly@alteeve.ca>
2023-09-22 17:15:09 -04:00
digimer
8925dabb9d * Updated anvil-shutdown-server to take the new '--immediate' switch which forces a server to shut down immediately (akin to pulling the power on a traditional machine). This is needed to allow a user to recover a crash or hung server.
Signed-off-by: digimer <mkelly@alteeve.ca>
2023-09-21 18:56:12 -04:00
digimer
3c9086d1f3 Fixed bugs related to running jobs.
Signed-off-by: digimer <mkelly@alteeve.ca>
2023-09-07 20:06:00 -04:00
digimer
e8a84e1c97 Added job handling to anvil-manage-server-storage (needs more testing though).
Signed-off-by: digimer <mkelly@alteeve.ca>
2023-09-07 15:37:31 -04:00
digimer
2f429d2bc7 Fixed bugs related to adding drives and extending drives to servers.
Signed-off-by: digimer <mkelly@alteeve.ca>
2023-09-05 22:53:52 -04:00
digimer
e895e1f264 * Finished writting the anvil-manage-server-storage.
* Fixed handling --eject and --insert to work without a device target specified when only one exists, or to find the file path when only the file name is given.
* Updated anvil-manage-server-storage to show files when processing an optical devices without a file being passed.

Signed-off-by: digimer <mkelly@alteeve.ca>
2023-09-05 16:53:08 -04:00
digimer
17078347ee Reworked anvil-manage-server-storage to use the translation system.
Signed-off-by: digimer <mkelly@alteeve.ca>
2023-09-03 16:02:47 -04:00
Tsu-ba-me
adcf5ec818 fix(tools): enhance logging in access module 2023-08-21 20:57:31 -04:00
Tsu-ba-me
7845f8c170 fix(tools): correct key check in access_chain of access module
The old check evaluates the expression before determining whether the
resulting value is defined. However, when the expression refers to a
subroutine, it gets executed; if the subroutine doesn't protect against
missing parameters, it'll cause executions with bad input, i.e., the
Striker->generate_manifest subroutine without parameters.

The new check uses can(), which correctly determines whether the key
"exists" on the blessed object; although it doesn't strictly mean
"exists", but it does the job.
2023-08-21 20:50:24 -04:00
Tsu-ba-me
ee259f5a3a fix(tools): reduce UUIDv4 check strictness in access module 2023-08-21 18:59:32 -04:00
digimer
d255adc7b4 * Updated anvil-daemon to set the mode of /mnt/shared/* to 0777 during creation and to check that that mode is set for existing sub-directories. This resolves issue #443.
* Cleaned up anvil-manage-dr.8 hyphen escapes.

Signed-off-by: digimer <mkelly@alteeve.ca>
2023-08-17 22:14:40 -04:00
digimer
4c118cf3b4 * Created empty man page files all remaining tools.
* Started fixing existing man pages, and writting needed ones.

Signed-off-by: digimer <mkelly@alteeve.ca>
2023-08-11 13:55:51 -04:00
digimer
7bf7c3747c * Added anvil-file-details.8, but it's not completely written yet. Converted anvil-file-details to use the new switch loading method.
* Fixed the RC in ocf:alteeve:server to exit with 0 on notify calls, resolves issue #392.
* Fixed typo references in issue #390.

Signed-off-by: digimer <mkelly@alteeve.ca>
2023-08-10 16:21:20 -04:00
digimer
1667d1f132 * Wrote the man page for anvil-download-file, and updated it to use the new switch method. Changed it's default download directory from /mnt/shared/temp to /mnt/shared/incoming.
* Added the new man pages to the Makefile.am file.

Signed-off-by: digimer <mkelly@alteeve.ca>
2023-08-10 16:19:05 -04:00
digimer
d39b0af67b * Added support for migration networks, and wrote the man page for anvil-cycle-vm-nics.
Signed-off-by: digimer <mkelly@alteeve.ca>
2023-08-10 16:17:49 -04:00
digimer
a81a110261 * Remove forced log level and secure logging. This addresses issue #386
Signed-off-by: digimer <mkelly@alteeve.ca>
2023-08-09 18:20:14 -04:00
digimer
a0cb791f47 This contains fixes needed for beta from additional testing.
* Updated the pcs wrapper to flock anything but status calls.
* Updated scan-apc-pdu to purge regardless of the host it's called on any host.
* Fixed a bug striker-purge-target that wouldn't purge anvil nodes in various cases.

Signed-off-by: digimer <mkelly@alteeve.ca>
2023-08-09 18:07:03 -04:00
digimer
cc71df686b Added a pcs wrapper to serialize pcs constraint calls.
Signed-off-by: digimer <mkelly@alteeve.ca>
2023-08-08 14:32:33 -04:00
Fabio M. Di Nitto
824e3e07e3 virsh: add wrapper to serialize calls to virsh list
avoid storm of virsh list that overloads libvirtd API causing
unnecessary timeouts during pcmk monitoring operations.

Resolves: https://github.com/ClusterLabs/anvil/issues/395

Signed-off-by: Fabio M. Di Nitto <fabbione@fabbione.net>
2023-08-07 08:35:08 +02:00
digimer
6ee2ad75db * Updated anvil-delete-server to actively check for and delete any drbd-fenced attributes left over in the CIB after a server is deleted. This addresses issue #374.
Signed-off-by: digimer <mkelly@alteeve.ca>
2023-07-25 21:45:34 -04:00
digimer
ed480cf1cb * Fixed a double-$ bug in Remote->_check_known_hosts_for_target()
* Updated striker-update-cluster to take '--timeout' and a number of seconds, or 'Xm' or 'Xh' for minutes or hourse, respectively. Also updated to show the remaining time while waiting, and added waiting timeout to the rest of the while loops that prior had no time limit. This addresses issue #383 and issue #382.

Signed-off-by: digimer <mkelly@alteeve.ca>
2023-07-25 19:13:41 -04:00
digimer
0471fb90ea * Upped the logging in these three tools to help diagnose run errors. To be removed before tagging beta
Signed-off-by: digimer <mkelly@alteeve.ca>
2023-07-25 13:07:38 -04:00
digimer
88e8978305 * Fixed a bug where getting the job_uuid after a no-db run wouldn't actually update the job progress.
Signed-off-by: digimer <mkelly@alteeve.ca>
2023-07-25 12:43:28 -04:00
digimer
be290bf561 This commit fixes a bug where the drbd kernel module build was being killed mid-compile, leaving DBRD unusable.
* Created System->wait_on_dnf() which was plucked from anvil-daemon, and now also called in scancore and anvil-safe-start.
* Updated scancore and anvil-safe-start to check on start that DRBD's kernel module is available (and build if not).

Signed-off-by: digimer <mkelly@alteeve.ca>
2023-07-24 22:32:41 -04:00
digimer
d68adb5b4e * Updated anvil-manage-power to not reboot if anvil-version-changes is running (which, if it's taking time, is generating new kmods).
Signed-off-by: digimer <mkelly@alteeve.ca>
2023-07-24 20:44:40 -04:00
digimer
8b3d472b9c Updated striker-update-cluster to set primary_host_uuid to node 1 if not returned from Cluster->get_primary_host_uuid.
Signed-off-by: digimer <mkelly@alteeve.ca>
2023-07-24 19:00:19 -04:00
digimer
556e91238d * Updated Network->find_access() to clear the data from previous scans, which fixes a bug where checking multiple hosts could return stale data for the previous host.
* Updated anvil-manage-server-storage, striker-collect-debug, and striker-update-cluster to be able to find a connection on an interface when none were found on preferred networks.

Signed-off-by: digimer <mkelly@alteeve.ca>
2023-07-24 15:43:54 -04:00
digimer
9a5e617a2d * Test fix for the issue #379
Signed-off-by: digimer <mkelly@alteeve.ca>
2023-07-24 00:22:43 -04:00
digimer
f57ab1a78c * Updated anvil-daemon to not hold jobs at startup is the host isn't configured yet.
Signed-off-by: digimer <mkelly@alteeve.ca>
2023-07-23 23:34:39 -04:00
digimer
66c82e5e22 * Fixed a bug in anvil-update-system where updating a single package with --reboot wouldn't request a reboot. Finished reworking it so that a check is made to see if the kernel or DRBD kmod will be updated and, if so, removes the kmod-drbd RPMs prior to doing the update (as opposed to the sloppier check-on-error method).
* Fixed a bug in System->reboot_needed() where the cache file path had a typo in the hash key.
* Updated anvil-daemon to use the full path to dnf when determining if a dnf process was running.

Signed-off-by: digimer <mkelly@alteeve.ca>
2023-07-23 21:43:26 -04:00
digimer
e278de4b5a The main change in this commit deals with anvil-daemon startup. During OS updates, it would pick up the queued update job and run it while the other --no-db one was still running. This could become an issue for other tasks in the future, so updated anvil-daemon to not run any jobs for the first minute after startup. Also updated it to see if an OS update is underway (given how it can start mid-RPM update, before packages like kmod-drbd are ready to build). While doing this, implemented caching of daily tasks (like agine out data, archiving data, network scans, etc) to only run once per day, period. As it was before, they would always run on anvil-daemon startup, then wait 24 hours.
Note that work has started it reworking anvil-update-system, but it is incomplete (and broken) in this commit.

Signed-off-by: digimer <mkelly@alteeve.ca>
2023-07-23 21:43:26 -04:00
Tsu-ba-me
714ccdb5b6 chore(tools): log start/stop pipe errors in manage vnc pipe 2023-07-23 21:43:26 -04:00
Tsu-ba-me
1f13a416b9 chore(tools): remove unused anvil-manage-tunnel; missing from d2a61da 2023-07-23 21:43:26 -04:00
Tsu-ba-me
9163cf4513 chore: remove anvil-manage-tunnel 2023-07-23 21:43:26 -04:00
Tsu-ba-me
47f7c71e95 fix(tools): stop ws with source port when target port is unavailable 2023-07-23 21:43:26 -04:00
Tsu-ba-me
99dc4ba6ba fix(tools): handle possible remnant websockify daemon wrapper 2023-07-23 21:43:26 -04:00
Tsu-ba-me
ba335cc411 fix(tools): match server vncinfo variable name 2023-07-23 21:43:26 -04:00
Tsu-ba-me
25f5c38ade chore: rename striker-manage-vnc-pipes->anvil-manage-vnc-pipe 2023-07-23 21:43:26 -04:00
Tsu-ba-me
c29041d2f7 fix(tools): start websockify as daemon, re-find its pid and ports 2023-07-23 21:43:26 -04:00
Tsu-ba-me
cb98d28eb0 fix(tools): add target host to vnc info variable 2023-07-23 21:43:26 -04:00
Tsu-ba-me
0b91ee0314 fix(tools): remove all tunnel-related tasks 2023-07-23 21:43:26 -04:00
Tsu-ba-me
084394c66f fix(tools): hoist find server vnc port 2023-07-23 21:43:26 -04:00
Tsu-ba-me
ee091d4e7b fix(tools): format output of existing tunnel 2023-07-23 21:43:26 -04:00
Tsu-ba-me
d42f202609 fix(tools): flip ports based on forward type 2023-07-23 21:43:26 -04:00
Tsu-ba-me
0210323730 fix(tools): pass tunnel list to start, stop tunnel 2023-07-23 21:43:26 -04:00
Tsu-ba-me
19f6cefd8d fix(tools): isolate prepare tunnel parents 2023-07-23 21:43:26 -04:00
Tsu-ba-me
9f8a153fe0 fix(tools): replace tilda with home path 2023-07-23 21:43:26 -04:00
Tsu-ba-me
f8e65416c4 fix(tools): correct receiving find tunnels output 2023-07-23 21:43:26 -04:00
Tsu-ba-me
1854cf4872 fix(tools): enable search full command in find tunnel parent processes 2023-07-23 21:43:26 -04:00
Tsu-ba-me
02f89b24b1 fix(tools): pass debug level to find, start, stop tunnel in start pipe 2023-07-23 21:43:26 -04:00
Tsu-ba-me
6dbec289a1 fix(tools): treat empty tunnel list as no tunnels 2023-07-23 21:43:26 -04:00
Tsu-ba-me
3debdb846d fix(tools): start background processes with system call 2023-07-23 21:43:26 -04:00
Tsu-ba-me
b695414c86 fix(tools): improve debug hashes 2023-07-23 21:43:26 -04:00
Tsu-ba-me
8c37b49132 fix(tools): remove extra space in find tunnel parent sed 2023-07-23 21:43:26 -04:00
Tsu-ba-me
55bc44fc6e fix(tools): correct typos in manage vnc pipes 2023-07-23 21:43:26 -04:00
Tsu-ba-me
bedbf576ab fix(tools): correct loop over tunnel list 2023-07-23 21:43:26 -04:00
Tsu-ba-me
4de0b675f1 fix(tools): don't find when tunnel list doesn't exist 2023-07-23 21:43:26 -04:00
Tsu-ba-me
2eb96f9d10 fix(tools): reuse existing tunnels in manage vnc pipes 2023-07-23 21:43:26 -04:00
Tsu-ba-me
834e1a568a fix(tools): improve debug log of start processes in manage vnc pipes 2023-07-23 21:43:26 -04:00
Tsu-ba-me
7baa52e37d fix(tools): ignore mismatches when find websockify, tunnel parent processes 2023-07-23 21:43:26 -04:00
Tsu-ba-me
41abd4f9e4 fix(tools): correct websockify command in manage vnc pipes 2023-07-23 21:43:26 -04:00
Tsu-ba-me
75b6ab94df fix(tools): correct reversed set, delete operations in manage vnc pipes 2023-07-23 21:43:26 -04:00
Tsu-ba-me
6906551851 fix(tools): remove repeated UUIDv4 test in manage vnc pipes 2023-07-23 21:43:26 -04:00
Tsu-ba-me
6ec2dea741 fix(tools): correct renamed call variable in manage vnc pipes 2023-07-23 21:43:26 -04:00
Tsu-ba-me
b1e7b0e244 fix(tools): correct input to keys in manage vnc pipes 2023-07-23 21:43:26 -04:00
Tsu-ba-me
9431d89b61 fix(tools): correct brackets of set_ws_process in manage vnc pipes 2023-07-23 21:43:26 -04:00
Tsu-ba-me
393782cf83 fix(tools): log inputs in manage vnc pipes 2023-07-23 21:43:26 -04:00
Tsu-ba-me
ff7fe8b3a3 fix(tools): add missing grep path in manage vnc pipes 2023-07-23 21:43:26 -04:00
Tsu-ba-me
d192356c5a fix(tools): remove unused database connection in manage tunnel 2023-07-23 21:43:26 -04:00
Tsu-ba-me
afade80f39 fix(tools): manage all VNC pipe components on subnodes/dr 2023-07-23 21:43:26 -04:00
Tsu-ba-me
ba467ccfa7 fix(tools): manage forward list of parent connection in manage tunnel 2023-07-23 21:43:26 -04:00
Tsu-ba-me
db06747513 fix(tools): make target optional when using external parent in manage tunnel 2023-07-23 21:43:26 -04:00
Tsu-ba-me
d29dac4fa9 fix(tools): return code after port forward fails in manage tunnel 2023-07-23 21:43:25 -04:00
Tsu-ba-me
711cb5b696 refactor: rename striker-open-ssh-tunnel->anvil-manage-tunnel 2023-07-23 21:43:25 -04:00
Tsu-ba-me
40e94cda46 fix(tools): enable open parent connection, child tunnel in open ssh tunnel 2023-07-23 21:43:25 -04:00
Tsu-ba-me
f2d3b06a10 fix(tools): remove all remote calls in manage vnc pipes 2023-07-23 21:43:25 -04:00
Tsu-ba-me
6c776e5a6a fix(tools): enable remote forward in open ssh tunnel 2023-07-23 21:43:25 -04:00
digimer
b24b81c17c Removed outer double-quotes from Anvil! node description in XML usage reporting. Related to issue #321.
Signed-off-by: digimer <mkelly@alteeve.ca>
2023-07-23 11:02:45 -04:00
digimer
942c4c94bf Escaped double-quotes in Anvil! node descriptions when reporting usage as XML format. Should resolve issue #321.
Signed-off-by: digimer <mkelly@alteeve.ca>
2023-07-23 11:00:59 -04:00
digimer
9b90647cc0 Fixed a bug where the XML output was not valid.
Signed-off-by: digimer <mkelly@alteeve.ca>
2023-07-22 22:28:25 -04:00
digimer
d07933a31c * Updated anvil-report-usage to accept the new '--machine' which reports the usage information in XML format.
* Added the anvil-report-usage.8 man page
* Updated anvil-update-system to enable scancore when the OS update is complete.

Signed-off-by: digimer <mkelly@alteeve.ca>
2023-07-22 22:21:48 -04:00
digimer
01b714f3b3 Fixed typo from issue #369.
Signed-off-by: digimer <mkelly@alteeve.ca>
2023-07-22 20:09:13 -04:00
digimer
b0c54b6dae * Updated anvil-update-system to check if another instance of anvil-update-system is running and, if so, exit.
* Removed the new tasks from anvil-special-operations.

Signed-off-by: digimer <mkelly@alteeve.ca>
2023-07-22 20:03:39 -04:00
digimer
7bd76c10dc Major thing in this commit is reworking striker-update-cluster to work without expecting anvil-daemon to be running on target machines. Similarly, they had to be able to work when the Striker DBs were not available. This is to account for cases where the Striker dashboards have updated, and the schema has changed, preventing the not-yet-updated DR hosts and subnodes from being able to use the DB. To do this, anvil-safe-stop, anvil-update-system, and anvil-shutdown-server had to be updated to use the new --no-db switch, which tells then to run without the database being available.
* Updated Server->shutdown_virsh() to work without a database connection.
* Updated System->reboot_needed() to store/read from a cache file when the database is not available.
* Updated anvil-safe-start to remove the old --enable/disable/status switches, now that we use anvil-safe-start.service systemd unit.
* Reworked anvil-safe-stop to work without a database connection, and to work on DR hosts.
* Updated anvil-special-operations to add new tasks, but it's likely these new tasks aren't needed and will be removed very shortly.
* Added/updated multiple man pages.

Signed-off-by: digimer <mkelly@alteeve.ca>
2023-07-22 18:09:01 -04:00
digimer
541381e317 * Finished getting anvil-manage-server-storage to add new volumes to running servers.
Signed-off-by: digimer <mkelly@alteeve.ca>
2023-07-18 13:31:52 -04:00
digimer
afaf129733 * Updated anvil-manage-server-storage to connect the new drive to the VM. Still need to update the on-disk and in-DB definitions though.
Signed-off-by: digimer <mkelly@alteeve.ca>
2023-07-17 21:33:46 -04:00
digimer
de86cf88fe * Updated anvil-manage-server-storage to now handle a new volume stuck in 'Negotiating', and to do the initial sync when there are three connected peers.
Signed-off-by: digimer <mkelly@alteeve.ca>
2023-07-17 21:04:36 -04:00
digimer
9bc78860a6 * Updated anvil-update-system to detect kmod-drbd upgrade problems and fix them.
* Updated striker-update-cluster and anvil-update-system to take '--reboot' to request a reboot if any packages are updated.

Signed-off-by: digimer <mkelly@alteeve.ca>
2023-07-16 20:45:47 -04:00
digimer
f262da544d Removed '--best --allowerasing' from dnf update.
Signed-off-by: digimer <mkelly@alteeve.ca>
2023-07-16 00:18:29 -04:00
digimer
d741f4aa6f * Updated anvil-daemon to not exit on high RAM use is any job is running.
* Updated anvil-update-system to reboot a target whose kernel updated using an anvil-manage-power job,
* Started making striker-update-cluster run as a job (not at all complete). Fixed a bug where the wrong IP was being used when finding access to a target.

Signed-off-by: digimer <mkelly@alteeve.ca>
2023-07-15 22:23:30 -04:00
digimer
751687129a * Updated anvil-daemon to not exit on RAM use if anvil-update-system is running.
* Fixed a bug in anvil-safe-stop where it wouldn't trigger a migration when the peer is online.
* Updated anvil-update-system to set job_data to 'failed' and exit with rc 4 if the os update failed.
* Got striker-update-cluster to error out and exit if a called 'anvil-update-system' job failed.

Signed-off-by: digimer <mkelly@alteeve.ca>
2023-07-15 16:23:38 -04:00