save_instance_config_version_to_dynamodb

in cookbooks/aws-parallelcluster-slurm/libraries/dynamo.rb [22:45]


def save_instance_config_version_to_dynamodb(status)
  unless on_docker? || kitchen_test? && !node['interact_with_ddb']
    
    
    table_name = "parallelcluster-#{node['cluster']['cluster_name']}"
    item_id = "CLUSTER_CONFIG.#{node['ec2']['instance_id']}"
    node_type = node['cluster']['node_type']
    config_version = node['cluster']['cluster_config_version']
    last_update_time = Time.now.utc

    item_data = "{\"cluster_config_version\": {\"S\": \"#{config_version}\"}, \"status\": {\"S\": \"#{status}\"}, \"node_type\": {\"S\": \"#{node_type}\"}, \"lastUpdateTime\": {\"S\": \"#{last_update_time}\"}}"
    item = "{\"Id\": {\"S\": \"#{item_id}\"}, \"Data\": {\"M\": #{item_data}}}"

    execute "Save cluster config version to DynamoDB" do
      command "#{cookbook_virtualenv_path}/bin/aws dynamodb put-item" \
                " --table-name #{table_name}"\
                " --item '#{item}'" \
                " --region #{node['cluster']['region']}"
      retries 3
      retry_delay 5
    end
  end
end