| 
									
										
										
										
											2015-06-17 22:37:08 +03:00
										 |  |  | require 'lib/string_helper' | 
					
						
							| 
									
										
										
										
											2015-06-18 17:53:03 +03:00
										 |  |  | require 'db/mongo/models/stack_template/stack_template_factory' | 
					
						
							| 
									
										
										
										
											2015-06-17 22:37:08 +03:00
										 |  |  | 
 | 
					
						
							|  |  |  | module Devops | 
					
						
							|  |  |  |   module StackTemplatePresets | 
					
						
							|  |  |  |     class Base | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |       def id | 
					
						
							|  |  |  |         StringHelper.underscore_class(self.class) | 
					
						
							|  |  |  |       end | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |       def to_hash | 
					
						
							|  |  |  |         {id: id, template_preset_body: template_preset_body} | 
					
						
							|  |  |  |       end | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-07-08 18:42:36 +03:00
										 |  |  |       def create_stack_from_preset(provider, stack_id, parameters) | 
					
						
							|  |  |  |         stack_attrs = { | 
					
						
							|  |  |  |           'id' => stack_id, | 
					
						
							| 
									
										
										
										
											2015-06-22 13:51:04 +03:00
										 |  |  |           'provider' => provider, | 
					
						
							| 
									
										
										
										
											2015-07-08 18:42:36 +03:00
										 |  |  |           'parameters' => parameters, | 
					
						
							|  |  |  |           'template_body' => template_preset_body | 
					
						
							| 
									
										
										
										
											2015-06-18 17:53:03 +03:00
										 |  |  |         } | 
					
						
							| 
									
										
										
										
											2015-07-08 18:42:36 +03:00
										 |  |  |         Model::StackFactory.create(provider, stack_attrs) | 
					
						
							| 
									
										
										
										
											2015-06-18 17:53:03 +03:00
										 |  |  |       end | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-06-17 22:37:08 +03:00
										 |  |  |       def template_preset_body | 
					
						
							| 
									
										
										
										
											2015-07-08 18:42:36 +03:00
										 |  |  |         file_name = File.join("lib/stack_template_presets/#{id}.#{template_file_extension}") | 
					
						
							|  |  |  |         File.read(file_name) | 
					
						
							| 
									
										
										
										
											2015-06-18 17:53:03 +03:00
										 |  |  |       end | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |       # some templates may be YAML files | 
					
						
							|  |  |  |       def template_file_extension | 
					
						
							|  |  |  |         :json | 
					
						
							| 
									
										
										
										
											2015-06-17 22:37:08 +03:00
										 |  |  |       end | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     end | 
					
						
							|  |  |  |   end | 
					
						
							|  |  |  | end |