fluke/devops-service/providers/aws.rb
Tim Lianov 03dc3d8d99 v3
2018-04-04 22:44:39 +03:00

63 lines
1.8 KiB
Ruby

require_relative "provider"
require_relative "aws/aws_connector"
require_relative "aws/aws_provider_account"
require_relative "aws/server_category_provider_aws"
require_relative "aws/stack_category_provider_aws"
module Provider
class Aws < AbstractProvider
PROVIDER = "aws"
def name
PROVIDER
end
def create_connector config, account
options = {
#aws_ssh_key: account.ssh_key,
aws_access_key_id: account.access_key_id,
aws_secret_access_key: account.secret_access_key,
aws_use_iam_profile: account.use_iam_profile,
aws_availability_zone: account.availability_zone,
storage_bucket_name: account.storage_bucket_name,
aws_proxy: config[:aws_proxy],
aws_no_proxy: config[:aws_no_proxy],
aws_integration_run_list: config[:aws_integration_run_list]
}
add_connector(account.account_name, AwsConnector.new(options))
end
def create_account hash
Devops::Model::AwsProviderAccount.new(hash)
end
def create_category_provider hash
category = case hash["type"]
when Devops::Model::CategoryProvider::SERVER_TYPE
Devops::Model::ServerCategoryProviderAws.new(hash)
when Devops::Model::CategoryProvider::STACK_TYPE
Devops::Model::StackCategoryProviderAws.new(hash)
else
raise "Invalid category type: '#{hash['type']}'"
end
if DevopsLogger.logger.debug?
DevopsLogger.logger.debug("Created aws category provider: #{category.to_hash.inspect}")
end
category
end
def account name
Devops::Model::AwsProviderAccount.find(name)
end
def accounts
Devops::Model::AwsProviderAccount.all
end
end
register Aws
end