fluke/devops-service/db/mongo/models/provider_accounts/ec2_provider_account.rb

60 lines
1.8 KiB
Ruby
Raw Normal View History

2015-10-22 12:39:22 +03:00
require "db/mongo/models/provider_accounts/provider_account"
module Devops
module Model
class Ec2ProviderAccount < ProviderAccount
2015-10-26 17:14:48 +03:00
attr_accessor :access_key_id, :availability_zone, :secret_access_key
2015-10-22 12:39:22 +03:00
2015-11-02 17:33:25 +03:00
set_field_validators :access_key_id, ::Validators::FieldValidator::NotNil,
::Validators::FieldValidator::FieldType::String,
::Validators::FieldValidator::NotEmpty
set_field_validators :secret_access_key, ::Validators::FieldValidator::NotNil,
::Validators::FieldValidator::FieldType::String,
::Validators::FieldValidator::NotEmpty
2015-10-22 12:39:22 +03:00
def initialize a={}
super(a)
self.provider = Provider::Ec2::PROVIDER
2015-10-22 12:39:22 +03:00
self.availability_zone = a["availability_zone"]
self.access_key_id = a["access_key_id"]
2015-10-26 17:14:48 +03:00
self.secret_access_key = a["secret_access_key"]
2015-10-22 12:39:22 +03:00
end
def to_list_hash
s = super
s["availability_zone"] = self.availability_zone
2015-10-26 17:14:48 +03:00
s["access_key_id"] = self.access_key_id
s
2015-10-22 12:39:22 +03:00
end
def to_mongo_hash
s = super
s["availability_zone"] = self.availability_zone
s["access_key_id"] = self.access_key_id
2015-10-26 17:14:48 +03:00
s["secret_access_key"] = self.secret_access_key
s
2015-10-22 12:39:22 +03:00
end
def self.build_from_bson a
a["account_name"] = a["_id"]
Ec2ProviderAccount.new a
end
2015-11-02 11:42:20 +03:00
def self.account_fields
{
access_key_id: "AWS account access key",
secret_access_key: "AWS account secret key",
availability_zone: "Availability zone, todo: remove field?"
}.merge(ProviderAccount::ACCOUNT_FIELDS)
end
# TODO: remove
def validate_fields_types
end
2015-10-22 12:39:22 +03:00
end
end
end