| 
									
										
										
										
											2014-05-08 15:34:26 +04:00
										 |  |  | require "db/mongo/models/mongo_model" | 
					
						
							| 
									
										
										
										
											2015-07-16 17:18:55 +03:00
										 |  |  | require "db/validators/image/bootstrap_template" | 
					
						
							|  |  |  | require "db/validators/image/image_in_filter" | 
					
						
							| 
									
										
										
										
											2015-10-06 13:50:26 +03:00
										 |  |  | require "db/mongo/models/model_with_provider" | 
					
						
							| 
									
										
										
										
											2014-05-08 15:34:26 +04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-03-06 12:20:30 +03:00
										 |  |  | module Devops | 
					
						
							|  |  |  |   module Model | 
					
						
							|  |  |  |     class Image < MongoModel | 
					
						
							| 
									
										
										
										
											2015-10-06 13:50:26 +03:00
										 |  |  |       include ModelWithProvider | 
					
						
							| 
									
										
										
										
											2014-05-08 15:34:26 +04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-11-19 14:09:38 +03:00
										 |  |  | #      attr_accessor :id, :remote_user, :name, :bootstrap_template | 
					
						
							| 
									
										
										
										
											2015-10-06 13:50:26 +03:00
										 |  |  | =begin | 
					
						
							| 
									
										
										
										
											2015-03-06 12:20:30 +03:00
										 |  |  |       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} | 
					
						
							| 
									
										
										
										
											2015-10-06 13:50:26 +03:00
										 |  |  | =end | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | #      set_validators ::Validators::Image::ImageInFilter, | 
					
						
							|  |  |  | #                     ::Validators::Image::BootstrapTemplate | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-11-19 14:09:38 +03:00
										 |  |  |       set_field_validators :id, [::Validators::FieldValidator::NotNil, | 
					
						
							| 
									
										
										
										
											2015-10-06 13:50:26 +03:00
										 |  |  |                                 ::Validators::FieldValidator::FieldType::String, | 
					
						
							|  |  |  |                                 ::Validators::FieldValidator::NotEmpty, | 
					
						
							|  |  |  |                                 ::Validators::FieldValidator::ImageName, | 
					
						
							| 
									
										
										
										
											2015-11-19 14:09:38 +03:00
										 |  |  |                                 ::Validators::Image::ImageInFilter] | 
					
						
							| 
									
										
										
										
											2015-10-06 13:50:26 +03:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-11-19 14:09:38 +03:00
										 |  |  |       set_field_validators :remote_user, [::Validators::FieldValidator::NotNil, | 
					
						
							| 
									
										
										
										
											2015-10-06 13:50:26 +03:00
										 |  |  |                                          ::Validators::FieldValidator::FieldType::String, | 
					
						
							|  |  |  |                                          ::Validators::FieldValidator::NotEmpty, | 
					
						
							| 
									
										
										
										
											2015-12-03 12:22:39 +03:00
										 |  |  |                                          ::Validators::FieldValidator::ImageName] | 
					
						
							| 
									
										
										
										
											2015-10-06 13:50:26 +03:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-11-19 14:09:38 +03:00
										 |  |  |       set_field_validators :name, [::Validators::FieldValidator::NotNil, | 
					
						
							| 
									
										
										
										
											2015-10-06 13:50:26 +03:00
										 |  |  |                                   ::Validators::FieldValidator::FieldType::String, | 
					
						
							|  |  |  |                                   ::Validators::FieldValidator::NotEmpty, | 
					
						
							| 
									
										
										
										
											2015-11-19 14:09:38 +03:00
										 |  |  |                                   ::Validators::FieldValidator::ImageName] | 
					
						
							| 
									
										
										
										
											2015-10-06 13:50:26 +03:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-11-19 14:09:38 +03:00
										 |  |  |       set_field_validators :bootstrap_template, [::Validators::FieldValidator::Nil, | 
					
						
							| 
									
										
										
										
											2015-10-06 13:50:26 +03:00
										 |  |  |                                                 ::Validators::FieldValidator::FieldType::String, | 
					
						
							|  |  |  |                                                 ::Validators::FieldValidator::NotEmpty, | 
					
						
							|  |  |  |                                                 ::Validators::FieldValidator::Name, | 
					
						
							| 
									
										
										
										
											2015-11-19 14:09:38 +03:00
										 |  |  |                                                 ::Validators::Image::BootstrapTemplate] | 
					
						
							| 
									
										
										
										
											2015-10-06 13:50:26 +03:00
										 |  |  | 
 | 
					
						
							|  |  |  |       def validate! | 
					
						
							|  |  |  |         validate_id! | 
					
						
							|  |  |  |         validate_provider! | 
					
						
							|  |  |  |         validate_remote_user! | 
					
						
							|  |  |  |         validate_name! | 
					
						
							|  |  |  |         validate_bootstrap_template! | 
					
						
							|  |  |  |       end | 
					
						
							| 
									
										
										
										
											2014-05-08 15:34:26 +04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-03-06 12:20:30 +03:00
										 |  |  |       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 | 
					
						
							| 
									
										
										
										
											2014-05-08 15:34:26 +04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-03-06 12:20:30 +03:00
										 |  |  |       def self.build_from_bson args | 
					
						
							|  |  |  |         image = Image.new(args) | 
					
						
							|  |  |  |         image.id = args["_id"] | 
					
						
							|  |  |  |         image | 
					
						
							|  |  |  |       end | 
					
						
							| 
									
										
										
										
											2014-05-08 15:34:26 +04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-03-06 12:20:30 +03:00
										 |  |  |       def to_hash_without_id | 
					
						
							| 
									
										
										
										
											2015-11-03 11:46:54 +03:00
										 |  |  |         { | 
					
						
							|  |  |  |           "provider" => provider, | 
					
						
							|  |  |  |           "name" => name, | 
					
						
							|  |  |  |           "remote_user" => remote_user, | 
					
						
							|  |  |  |           "bootstrap_template" => bootstrap_template | 
					
						
							| 
									
										
										
										
											2015-03-06 12:20:30 +03:00
										 |  |  |         } | 
					
						
							|  |  |  |       end | 
					
						
							| 
									
										
										
										
											2014-05-08 15:34:26 +04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-03-06 12:20:30 +03:00
										 |  |  |     end | 
					
						
							|  |  |  |   end | 
					
						
							| 
									
										
										
										
											2014-05-08 15:34:26 +04:00
										 |  |  | end |