in cookbooks/aws-parallelcluster-slurm/libraries/storage.rb [83:110]
def storage_change_supports_live_update?
change_set = JSON.load_file("#{node['cluster']['change_set_path']}")
changes = change_set["changeSet"]
if changes.nil? || changes.empty?
Chef::Log.info("Changeset is empty: live update is supported")
return true
end
storage_changes = changes.select { |change| change["parameter"] == "SharedStorage" }
if storage_changes.empty?
Chef::Log.info("Changeset does not contain shared storage changes: live update is supported")
return true
end
storage_changes.each do |change|
Chef::Log.info("Analyzing shared storage change: #{change}")
change_info = SharedStorageChangeInfo.new(change)
Chef::Log.info("Generated shared storage change info: #{change_info}")
supported = change_info.support_live_updates?
Chef::Log.info("Change #{change} #{'does not ' unless supported}support live update")
return false unless supported
end
Chef::Log.info("All shared storage changes support live update.")
true
end