fluke/devops-service/db/mongo/models/stack_template/stack_template_base.rb
Anton Chuchkalov 39a8ff0eae Fix errors occured after cherry-picking squashed specs
This reverts commit ee3b49bbea80db0a66eb3c8f116dcf100ff4a402.
2015-11-20 15:28:23 +03:00

70 lines
2.2 KiB
Ruby

require 'tempfile'
require 'securerandom'
require "db/mongo/models/model_with_provider"
require "db/validators/stack_template/template_content"
module Devops
module Model
class StackTemplateBase < MongoModel
include ModelWithProvider
attr_accessor :id, :template_body, :provider, :owner
types id: {type: String, empty: false},
provider: {type: String, empty: false},
template_body: {type: String, empty: false},
owner: {type: String, empty: false}
set_field_validators :id, ::Validators::FieldValidator::NotNil,
::Validators::FieldValidator::FieldType::String,
::Validators::FieldValidator::NotEmpty,
::Validators::FieldValidator::Name
set_field_validators :provider, ::Validators::FieldValidator::NotNil,
::Validators::FieldValidator::FieldType::String,
::Validators::FieldValidator::NotEmpty
set_field_validators :template_body, ::Validators::FieldValidator::NotNil,
::Validators::FieldValidator::FieldType::String,
::Validators::FieldValidator::NotEmpty
set_field_validators :owner, ::Validators::FieldValidator::NotNil,
::Validators::FieldValidator::FieldType::String,
::Validators::FieldValidator::NotEmpty
set_validators ::Validators::StackTemplate::TemplateContent
def initialize(attrs)
self.id = attrs['id']
self.template_body = attrs['template_body']
self.provider = attrs['provider']
self.owner = attrs['owner']
self
end
def to_hash_without_id
{
provider: provider,
template_body: template_body,
owner: owner
}
end
# attrs should include:
# - id (String)
# - provider (String)
# - template_body (String)
def self.create(attrs)
new(attrs)
end
def self.build_from_bson(attrs)
attrs['id'] = attrs["_id"]
self.new(attrs)
end
end
end
end