| 
									
										
										
										
											2015-08-21 19:03:53 +03:00
										 |  |  | require "db/mongo/models/model_with_provider" | 
					
						
							| 
									
										
										
										
											2015-08-24 14:57:15 +03:00
										 |  |  | require "db/validators/stack_template/template_content" | 
					
						
							| 
									
										
										
										
											2015-02-12 13:01:05 +03:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-03-06 12:20:30 +03:00
										 |  |  | module Devops | 
					
						
							|  |  |  |   module Model | 
					
						
							|  |  |  |     class StackTemplateBase < MongoModel | 
					
						
							| 
									
										
										
										
											2015-02-12 13:01:05 +03:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-08-21 19:03:53 +03:00
										 |  |  |       include ModelWithProvider | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-09-14 10:22:05 +03:00
										 |  |  |       attr_accessor :id, :template_body, :provider, :owner | 
					
						
							| 
									
										
										
										
											2016-01-28 18:15:06 +03:00
										 |  |  |       # should be a hash like {'param_name' => {type: 'String', description: 'Description'}} | 
					
						
							|  |  |  |       attr_accessor :available_parameters | 
					
						
							| 
									
										
										
										
											2015-02-12 13:01:05 +03:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-03-06 12:20:30 +03:00
										 |  |  |       types id: {type: String, empty: false}, | 
					
						
							| 
									
										
										
										
											2015-04-16 17:54:40 +03:00
										 |  |  |             provider: {type: String, empty: false}, | 
					
						
							| 
									
										
										
										
											2015-09-14 10:22:05 +03:00
										 |  |  |             template_body: {type: String, empty: false}, | 
					
						
							|  |  |  |             owner: {type: String, empty: false} | 
					
						
							| 
									
										
										
										
											2015-02-12 13:01:05 +03:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-12-04 12:43:07 +03:00
										 |  |  |       set_field_validators :id, [::Validators::FieldValidator::NotNil, | 
					
						
							| 
									
										
										
										
											2015-11-25 18:37:47 +03:00
										 |  |  |                                       ::Validators::FieldValidator::FieldType::String, | 
					
						
							|  |  |  |                                       ::Validators::FieldValidator::NotEmpty, | 
					
						
							|  |  |  |                                       ::Validators::FieldValidator::Name] | 
					
						
							| 
									
										
										
										
											2015-11-03 11:46:54 +03:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-12-04 12:43:07 +03:00
										 |  |  |       set_field_validators :provider, [::Validators::FieldValidator::NotNil, | 
					
						
							| 
									
										
										
										
											2015-11-25 18:37:47 +03:00
										 |  |  |                                       ::Validators::FieldValidator::FieldType::String, | 
					
						
							|  |  |  |                                       ::Validators::FieldValidator::NotEmpty] | 
					
						
							| 
									
										
										
										
											2015-11-03 11:46:54 +03:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-12-04 12:43:07 +03:00
										 |  |  |       set_field_validators :template_body, [::Validators::FieldValidator::NotNil, | 
					
						
							| 
									
										
										
										
											2015-11-25 18:37:47 +03:00
										 |  |  |                                       ::Validators::FieldValidator::FieldType::String, | 
					
						
							|  |  |  |                                       ::Validators::FieldValidator::NotEmpty] | 
					
						
							| 
									
										
										
										
											2015-11-03 11:46:54 +03:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-12-04 12:43:07 +03:00
										 |  |  |       set_field_validators :owner, [::Validators::FieldValidator::NotNil, | 
					
						
							| 
									
										
										
										
											2015-11-25 18:37:47 +03:00
										 |  |  |                                       ::Validators::FieldValidator::FieldType::String, | 
					
						
							|  |  |  |                                       ::Validators::FieldValidator::NotEmpty] | 
					
						
							| 
									
										
										
										
											2015-11-03 11:46:54 +03:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-08-21 19:03:53 +03:00
										 |  |  |       set_validators ::Validators::StackTemplate::TemplateContent | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-03-06 12:20:30 +03:00
										 |  |  |       def initialize(attrs) | 
					
						
							|  |  |  |         self.id = attrs['id'] | 
					
						
							| 
									
										
										
										
											2015-04-16 17:54:40 +03:00
										 |  |  |         self.template_body = attrs['template_body'] | 
					
						
							| 
									
										
										
										
											2015-03-06 12:20:30 +03:00
										 |  |  |         self.provider = attrs['provider'] | 
					
						
							| 
									
										
										
										
											2015-09-14 10:22:05 +03:00
										 |  |  |         self.owner = attrs['owner'] | 
					
						
							| 
									
										
										
										
											2016-01-28 18:15:06 +03:00
										 |  |  |         self.available_parameters = attrs['available_parameters'] | 
					
						
							| 
									
										
										
										
											2015-03-06 12:20:30 +03:00
										 |  |  |         self | 
					
						
							|  |  |  |       end | 
					
						
							| 
									
										
										
										
											2015-02-12 13:01:05 +03:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-03-06 12:20:30 +03:00
										 |  |  |       def to_hash_without_id | 
					
						
							|  |  |  |         { | 
					
						
							| 
									
										
										
										
											2016-01-28 18:15:06 +03:00
										 |  |  |           'provider' => provider, | 
					
						
							|  |  |  |           'template_body' => template_body, | 
					
						
							|  |  |  |           'owner' => owner, | 
					
						
							|  |  |  |           'available_parameters' => available_parameters | 
					
						
							| 
									
										
										
										
											2015-03-06 12:20:30 +03:00
										 |  |  |         } | 
					
						
							|  |  |  |       end | 
					
						
							| 
									
										
										
										
											2015-02-12 13:01:05 +03:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-01-28 18:15:06 +03:00
										 |  |  |       def parse_parameters | 
					
						
							|  |  |  |         {} | 
					
						
							|  |  |  |       end | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-03-06 12:20:30 +03:00
										 |  |  |       # attrs should include: | 
					
						
							|  |  |  |       # - id (String) | 
					
						
							|  |  |  |       # - provider (String) | 
					
						
							| 
									
										
										
										
											2015-04-16 17:54:40 +03:00
										 |  |  |       # - template_body (String) | 
					
						
							| 
									
										
										
										
											2015-03-06 12:20:30 +03:00
										 |  |  |       def self.create(attrs) | 
					
						
							| 
									
										
										
										
											2016-01-28 18:15:06 +03:00
										 |  |  |         template = new(attrs) | 
					
						
							|  |  |  |         template.available_parameters = template.parse_parameters | 
					
						
							|  |  |  |         template | 
					
						
							| 
									
										
										
										
											2015-03-06 12:20:30 +03:00
										 |  |  |       end | 
					
						
							| 
									
										
										
										
											2015-02-12 13:01:05 +03:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-03-06 12:20:30 +03:00
										 |  |  |       def self.build_from_bson(attrs) | 
					
						
							|  |  |  |         attrs['id'] = attrs["_id"] | 
					
						
							|  |  |  |         self.new(attrs) | 
					
						
							|  |  |  |       end | 
					
						
							| 
									
										
										
										
											2015-02-12 13:01:05 +03:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-03-06 12:20:30 +03:00
										 |  |  |     end | 
					
						
							| 
									
										
										
										
											2015-02-12 13:01:05 +03:00
										 |  |  |   end | 
					
						
							|  |  |  | end |