fluke/devops-service/db/mongo/models/image.rb
2015-03-06 12:20:30 +03:00

48 lines
1.3 KiB
Ruby

require "db/exceptions/invalid_record"
require "db/mongo/models/mongo_model"
module Devops
module Model
class Image < MongoModel
attr_accessor :id, :provider, :remote_user, :name, :bootstrap_template
types :id => {:type => String, :empty => false},
:provider => {:type => String, :empty => false},
:remote_user => {:type => String, :empty => false},
:name => {:type => String, :empty => true},
:bootstrap_template => {:type => String, :empty => false, :nil => true}
set_validators ::Validators::Image::ImageInFilter,
::Validators::Image::BootstrapTemplate
def initialize p={}
self.id = p["id"]
self.provider = p["provider"]
self.remote_user = p["remote_user"]
self.name = p["name"] || ""
self.bootstrap_template = p["bootstrap_template"]
end
def self.build_from_bson args
image = Image.new(args)
image.id = args["_id"]
image
end
def to_hash_without_id
o = {
"provider" => self.provider,
"name" => self.name,
"remote_user" => self.remote_user
}
o["bootstrap_template"] = self.bootstrap_template
o
end
def self.create_from_json! json
Image.new( JSON.parse(json) )
end
end
end
end