in cookbooks/aws-parallelcluster-slurm/libraries/helpers.rb [180:219]
def wait_static_fleet_running
ruby_block "wait for static fleet capacity" do
block do
require 'chef/mixin/shell_out'
require 'shellwords'
require 'json'
def check_for_protected_mode(fleet_status_command)
begin
cluster_state_json = shell_out!("/bin/bash -c #{fleet_status_command}").stdout.strip
cluster_state = JSON.load(cluster_state_json)
rescue
Chef::Log.warn("Unable to get compute fleet status")
return
end
Chef::Log.info("Compute fleet status is empty") if cluster_state.empty?
return if cluster_state.empty?
raise "Cluster has been set to PROTECTED mode due to failures detected in static node provisioning" if cluster_state["status"] == "PROTECTED"
end
fleet_status_command = Shellwords.escape(
"/usr/local/bin/get-compute-fleet-status.sh"
)
until shell_out!("/bin/bash -c /usr/local/bin/is_fleet_ready.sh").stdout.strip.empty?
check_for_protected_mode(fleet_status_command)
Chef::Log.info("Waiting for static fleet capacity provisioning")
sleep(15)
end
Chef::Log.info("Static fleet capacity is ready")
end
end
end