2015-08-05 14:05:14 +03:00
|
|
|
require "providers/provider_factory"
|
|
|
|
|
|
|
|
|
|
module Devops
|
|
|
|
|
module Model
|
|
|
|
|
module ModelWithProvider
|
|
|
|
|
|
2015-10-27 12:01:21 +03:00
|
|
|
attr_accessor :provider, :provider_account
|
2015-08-05 14:05:14 +03:00
|
|
|
|
2015-10-06 13:50:26 +03:00
|
|
|
def ModelWithProvider.included(mod)
|
|
|
|
|
|
|
|
|
|
mod.set_field_validators :provider, ::Validators::FieldValidator::NotNil,
|
|
|
|
|
::Validators::FieldValidator::FieldType::String,
|
|
|
|
|
::Validators::FieldValidator::NotEmpty,
|
|
|
|
|
::Validators::FieldValidator::Provider
|
|
|
|
|
end
|
|
|
|
|
|
2015-08-05 14:05:14 +03:00
|
|
|
def provider_instance
|
2015-10-27 12:01:21 +03:00
|
|
|
@provider_instance ||= Provider::ProviderFactory.get(self.provider, self.provider_account)
|
2015-08-05 14:05:14 +03:00
|
|
|
end
|
2015-10-27 12:01:21 +03:00
|
|
|
|
|
|
|
|
def set_provider hash
|
|
|
|
|
self.provider = hash["provider"]
|
|
|
|
|
self.provider_account = hash["provider_account"]
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
def provider_hash
|
|
|
|
|
{
|
|
|
|
|
"provider" => self.provider,
|
|
|
|
|
"provider_account" => self.provider_account
|
|
|
|
|
}
|
|
|
|
|
end
|
|
|
|
|
|
2015-08-05 14:05:14 +03:00
|
|
|
end
|
|
|
|
|
end
|
|
|
|
|
end
|
|
|
|
|
|