class SimplyGenius::Atmos::Commands::Account
Public Class Methods
description()
click to toggle source
# File lib/simplygenius/atmos/commands/account.rb, line 11 def self.description "Manages accounts/envs in the cloud provider" end
Public Instance Methods
execute()
click to toggle source
# File lib/simplygenius/atmos/commands/account.rb, line 29 def execute Atmos.config.provider.auth_manager.authenticate(ENV) do |auth_env| ClimateControl.modify(auth_env) do config = YAML.load_file(Atmos.config.config_file) if config['environments'][env] signal_usage_error "Env '#{env}' is already present in atmos config" end source = {} if source_env.present? source = config['environments'][source_env] if source.blank? signal_usage_error "Source env '#{source_env}' does not exist" end source = source.clone end account = Atmos.config.provider.account_manager.create_account(env, name: name, email: email) logger.info "Account created: #{display account}" source['account_id'] = account[:account_id].to_s new_yml = SettingsHash.add_config( Atmos.config.config_file, "environments.#{env}", source ) logger.info("Writing out new atmos.yml containing new account") File.write(Atmos.config.config_file, new_yml) end end end