| 
									
										
										
										
											2015-02-12 13:01:05 +03:00
										 |  |  | class StackBase < MongoModel | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   attr_accessor :id, :project, :deploy_env, :stack_template, :cloud_stack_id, :provider | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   types id: {type: String, empty: false}, | 
					
						
							|  |  |  |     provider: {type: String, empty: false}, | 
					
						
							|  |  |  |     project: {type: String, empty: false}, | 
					
						
							|  |  |  |     deploy_env: {type: String, empty: false}, | 
					
						
							|  |  |  |     stack_template: {type: String, empty: false}, | 
					
						
							|  |  |  |     cloud_stack_id: {type: String, empty: false} | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   def initialize attrs={} | 
					
						
							|  |  |  |     self.id = attrs['id'] | 
					
						
							|  |  |  |     self.provider = attrs['provider'] | 
					
						
							|  |  |  |     self.project = attrs['project'] | 
					
						
							|  |  |  |     self.deploy_env = attrs['deploy_env'] | 
					
						
							|  |  |  |     self.stack_template = attrs['stack_template'] | 
					
						
							|  |  |  |     self.cloud_stack_id = attrs['cloud_stack_id'] | 
					
						
							|  |  |  |     self | 
					
						
							|  |  |  |   end | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   def to_hash_without_id | 
					
						
							|  |  |  |     { | 
					
						
							|  |  |  |       provider: provider, | 
					
						
							|  |  |  |       project: self.project, | 
					
						
							|  |  |  |       deploy_env: self.deploy_env, | 
					
						
							|  |  |  |       stack_template: self.stack_template, | 
					
						
							|  |  |  |       cloud_stack_id: self.cloud_stack_id | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  |   end | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   # attrs should include: | 
					
						
							|  |  |  |   # - id (String) | 
					
						
							|  |  |  |   # - provider (String) | 
					
						
							|  |  |  |   # - deploy_env (String) | 
					
						
							|  |  |  |   # - stack_template (String) | 
					
						
							|  |  |  |   def self.create(attrs) | 
					
						
							|  |  |  |     model = new(attrs) | 
					
						
							|  |  |  |     model.create_stack_in_cloud! | 
					
						
							|  |  |  |     model | 
					
						
							|  |  |  |   end | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-02-18 11:00:24 +03:00
										 |  |  |   def self.build_from_bson(attrs) | 
					
						
							| 
									
										
										
										
											2015-02-12 13:01:05 +03:00
										 |  |  |     attrs['id'] = attrs["_id"] | 
					
						
							|  |  |  |     self.new(attrs) | 
					
						
							|  |  |  |   end | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   def create_stack_in_cloud! | 
					
						
							|  |  |  |     raise 'override me' | 
					
						
							|  |  |  |   end | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | end |