fixed role name new field validators without validate fields types fixed error with user parser todo: project tests returned some tests, users fixed some more tests: filters images tests network tests keys tests test generator fixed run_list validator
84 lines
3.0 KiB
Ruby
84 lines
3.0 KiB
Ruby
require "db/mongo/models/mongo_model"
|
|
require "db/validators/image/bootstrap_template"
|
|
require "db/validators/image/image_in_filter"
|
|
require "db/mongo/models/model_with_provider"
|
|
|
|
module Devops
|
|
module Model
|
|
class Image < MongoModel
|
|
include ModelWithProvider
|
|
|
|
attr_accessor :id, :remote_user, :name, :bootstrap_template
|
|
=begin
|
|
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}
|
|
=end
|
|
|
|
# set_validators ::Validators::Image::ImageInFilter,
|
|
# ::Validators::Image::BootstrapTemplate
|
|
|
|
set_field_validators :id, ::Validators::FieldValidator::NotNil,
|
|
::Validators::FieldValidator::FieldType::String,
|
|
::Validators::FieldValidator::NotEmpty,
|
|
::Validators::FieldValidator::ImageName,
|
|
::Validators::Image::ImageInFilter
|
|
|
|
set_field_validators :remote_user, ::Validators::FieldValidator::NotNil,
|
|
::Validators::FieldValidator::FieldType::String,
|
|
::Validators::FieldValidator::NotEmpty,
|
|
::Validators::FieldValidator::Name
|
|
|
|
set_field_validators :name, ::Validators::FieldValidator::NotNil,
|
|
::Validators::FieldValidator::FieldType::String,
|
|
::Validators::FieldValidator::NotEmpty,
|
|
::Validators::FieldValidator::ImageName
|
|
|
|
set_field_validators :bootstrap_template, ::Validators::FieldValidator::Nil,
|
|
::Validators::FieldValidator::FieldType::String,
|
|
::Validators::FieldValidator::NotEmpty,
|
|
::Validators::FieldValidator::Name,
|
|
::Validators::Image::BootstrapTemplate
|
|
|
|
def validate!
|
|
validate_id!
|
|
validate_provider!
|
|
validate_remote_user!
|
|
validate_name!
|
|
validate_bootstrap_template!
|
|
end
|
|
|
|
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
|