in spanner/spanner_create_instance_config.rb [18:62]
def spanner_create_instance_config project_id:, user_config_name:, base_config_id:
instance_admin_client = Google::Cloud::Spanner::Admin::Instance.instance_admin
project_path = instance_admin_client.project_path project: project_id
base_instance_config = instance_admin_client.get_instance_config name: base_config_id
custom_replicas = []
base_instance_config.replicas.each do |replica|
custom_replicas << replica
end
custom_replicas << base_instance_config.optional_replicas[0]
custom_instance_config_id = instance_admin_client.instance_config_path \
project: project_id, instance_config: user_config_name
custom_instance_config = {
name: custom_instance_config_id,
display_name: "custom-ruby-samples",
config_type: :USER_MANAGED,
replicas: custom_replicas,
base_config: base_config_id,
labels: { ruby_cloud_spanner_samples: "true" }
}
request = {
parent: project_path,
instance_config_id: user_config_name,
instance_config: custom_instance_config
}
job = instance_admin_client.create_instance_config request
puts "Waiting for create instance config operation to complete"
job.wait_until_done!
if job.error?
puts job.error
else
puts "Created instance configuration #{user_config_name}"
end
end