def upload_ssh_key(key_name)
return false unless key_name.present?
type, content, comment = ssh_key_triple_for_default_key
if ssh_keys.present? && ssh_keys.any? { |k| k.name == key_name }
clear_ssh_keys_cache
paragraph do
say "Key with the name '#{key_name}' already exists. Updating ... "
key = rest_client.find_key(key_name)
key.update(type, content)
success "done"
end
else
clear_ssh_keys_cache
begin
rest_client.add_key(key_name, content, type)
paragraph{ say "Uploading key '#{key_name}' ... #{color('done', :green)}" }
rescue RHC::Rest::ValidationException => e
error e.message || "Unknown error during key upload."
return false
end
end
true
end