Refactor completion of cluster configuration
Instead of rebooting one final time before shutting down, just shut it down directly after performing hooks. This allows hooks to prestage things like the `--autostart` flag of a VM properly.
This commit is contained in:
parent
8d7e3d8dc8
commit
f927118f5b
|
@ -354,13 +354,4 @@ def run_hooks(config, cspec, cluster, nodes):
|
|||
# Wait 5s between hooks
|
||||
sleep(5)
|
||||
|
||||
# Restart nodes to complete setup
|
||||
hook_functions["script"](
|
||||
config,
|
||||
cluster_nodes,
|
||||
{
|
||||
"script": "#!/usr/bin/env bash\necho bootstrapped | sudo tee /etc/pvc-install.hooks\nsudo reboot"
|
||||
},
|
||||
)
|
||||
|
||||
notifications.send_webhook(config, "success", f"Cluster {cluster.name}: Completed post-setup hook tasks")
|
||||
|
|
|
@ -140,21 +140,11 @@ def host_checkin(config, data):
|
|||
|
||||
hooks.run_hooks(config, cspec, cluster, ready_nodes)
|
||||
|
||||
elif data["action"] in ["system-boot_completed"]:
|
||||
# Node has been fully configured and can be shut down for the final time
|
||||
logger.info(f"Registering post-hooks boot for host {cspec_fqdn}")
|
||||
notifications.send_webhook(config, "info", f"Cluster {cspec_cluster}: Registering post-hooks boot for host {cspec_fqdn}")
|
||||
target_state = "booted-completed"
|
||||
|
||||
target_state = "completed"
|
||||
for node in all_nodes:
|
||||
host.set_boot_state(config, cspec, data, target_state)
|
||||
sleep(1)
|
||||
|
||||
all_nodes = db.get_nodes_in_cluster(config, cspec_cluster)
|
||||
ready_nodes = [node for node in all_nodes if node.state == target_state]
|
||||
|
||||
logger.info(f"Ready: {len(ready_nodes)} All: {len(all_nodes)}")
|
||||
if len(ready_nodes) >= len(all_nodes):
|
||||
# Hosts will now power down ready for real activation in production
|
||||
sleep(30)
|
||||
sleep(60)
|
||||
cluster = db.update_cluster_state(config, cspec_cluster, "completed")
|
||||
notifications.send_webhook(config, "completed", f"Cluster {cspec_cluster}: PVC bootstrap deployment completed")
|
||||
|
|
|
@ -895,7 +895,7 @@ def redfish_init(config, cspec, data):
|
|||
|
||||
logger.info("Waiting for completion of node and cluster installation...")
|
||||
# Wait for the system to install and be configured
|
||||
while node.state != "booted-completed":
|
||||
while node.state != "completed":
|
||||
sleep(60)
|
||||
# Keep the Redfish session alive
|
||||
session.get(redfish_base_root)
|
||||
|
|
Loading…
Reference in New Issue