| 
									
										
										
										
											2015-06-17 22:37:08 +03:00
										 |  |  | require 'json' | 
					
						
							|  |  |  | require 'lib/stack_template_presets/factory' | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | module Devops | 
					
						
							|  |  |  |   module Version2_0 | 
					
						
							|  |  |  |     module Handler | 
					
						
							|  |  |  |       class StackTemplatePreset | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |         def self.get_presets | 
					
						
							|  |  |  |           lambda { | 
					
						
							|  |  |  |             # check_privileges("stack_template_presets", "r") | 
					
						
							|  |  |  |             json Devops::StackTemplatePresetsFactory.list.map(&:to_hash) | 
					
						
							|  |  |  |           } | 
					
						
							|  |  |  |         end | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |         def self.get_preset | 
					
						
							|  |  |  |           lambda { | 
					
						
							|  |  |  |             # check_privileges("stack_template_presets", "r") | 
					
						
							|  |  |  |             json Devops::StackTemplatePresetsFactory.get(params['id']).to_hash | 
					
						
							|  |  |  |           } | 
					
						
							|  |  |  |         end | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-06-22 11:59:31 +03:00
										 |  |  |         def self.build_stack_template | 
					
						
							| 
									
										
										
										
											2015-06-22 13:51:04 +03:00
										 |  |  |           lambda { | 
					
						
							| 
									
										
										
										
											2015-06-18 17:53:03 +03:00
										 |  |  |             # check_privileges("stack_template_presets", "r") | 
					
						
							|  |  |  |             check_privileges('stack_template', 'w') | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |             attrs = create_object_from_json_body | 
					
						
							| 
									
										
										
										
											2015-06-22 13:51:04 +03:00
										 |  |  | 
 | 
					
						
							|  |  |  |             provider, stack_template, parameters = attrs.fetch('provider'), attrs.fetch('stack_template'), attrs.fetch('parameters') | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |             preset = Devops::StackTemplatePresetsFactory.get(attrs.fetch('id')) | 
					
						
							|  |  |  |             template_model = preset.build_template_from_preset(provider, stack_template, parameters) | 
					
						
							| 
									
										
										
										
											2015-06-18 17:53:03 +03:00
										 |  |  | 
 | 
					
						
							|  |  |  |             settings.mongo.stack_template_insert(template_model) | 
					
						
							|  |  |  |             create_response 'Created', template_model.to_hash, 201
 | 
					
						
							|  |  |  |           } | 
					
						
							|  |  |  |         end | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-06-17 22:37:08 +03:00
										 |  |  |       end | 
					
						
							|  |  |  |     end | 
					
						
							|  |  |  |   end | 
					
						
							|  |  |  | end | 
					
						
							|  |  |  | 
 |