* Network->collect_data() wasn't deleting old data before rescans.
* anvil-configure-host wasn't checking links that should be in a bond if
the bond already existed.
Signed-off-by: digimer <mkelly@alteeve.ca>
* It's technically done, but I know bugs remain.
* Updated Jobs->update_progress() to take 'file' and 'line' to make it
easier in the logs to see the origin of the message, when logging the
update.
* Created Network->modify_connection() to update network manager
variables. Created ->reset_connection() to take an interface down and
bring it back up again.
* Fixed a bug in scan-network where the device_to_uuid hash wasn't being
stored.
Signed-off-by: digimer <mkelly@alteeve.ca>
* Also fixed problems with scan-network related to the new network
naming / NM system.
* Updated Database->insert_or_update_network_interfaces() to better
search for a network_interface_uuid when not specified.
* Updated Network->collect_data() to take the new 'start' parameter
which, when set, brings up unconfigured connections/devices.
Signed-off-by: digimer <mkelly@alteeve.ca>
* Updated Network->collect_data() to find the GENERAL.DEVICES and
GENERAL.IP-IFACE from match.interface-name when the link is down.
* More work done on anvil-configure-host.
Signed-off-by: digimer <mkelly@alteeve.ca>
* Created new anvil-monitor-network daemon to trigger scan-server via
anvil-monitor-network on network events.
* Moved functionality into scan-network
Signed-off-by: digimer <mkelly@alteeve.ca>
* Added the 'hostname' and 'hostnamectl --transient' to
Get->host_name().
* Updated Database->insert_or_update_hosts() to log when no host_name,
host_type or host_uuid is not passed.
Signed-off-by: digimer <mkelly@alteeve.ca>
* Updated Cluster->parse_cib() to store DRBD fence node restrictions by
server/node. Also updated to make it easier to get the server's
preferred node.
Signed-off-by: digimer <mkelly@alteeve.ca>
* Updated System->maintenance_mode() to take 'host_uuid' so that the
maintenance mode of remote machines can be checked/set.
Signed-off-by: digimer <mkelly@alteeve.ca>
* 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>
* 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>
* 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>
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>
* 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>
* 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>
* 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>
* 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>
* 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>
* 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>
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>
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>
* 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>
Added DB connections to ocf:alteeve:server when starting or stopping
servers. This is to ensure that the servers -> server_state are updated
properly.
Signed-off-by: digimer <mkelly@alteeve.ca>
* 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>
* 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>