49 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			Ruby
		
	
	
	
	
	
			
		
		
	
	
			49 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			Ruby
		
	
	
	
	
	
| require "db/mongo/models/mongo_model"
 | |
| require "db/validators/image/bootstrap_template"
 | |
| require "db/validators/image/image_in_filter"
 | |
| 
 | |
| 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
 | 
