45 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			Ruby
		
	
	
	
	
	
			
		
		
	
	
			45 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			Ruby
		
	
	
	
	
	
| 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
 | |
| 
 | |
|         def self.build_stack_template
 | |
|           lambda {
 | |
|             # check_privileges("stack_template_presets", "r")
 | |
|             check_privileges('stack_template', 'w')
 | |
| 
 | |
|             attrs = create_object_from_json_body
 | |
| 
 | |
|             provider, stack_id, parameters = attrs.fetch('provider'), attrs.fetch('stack'), attrs.fetch('parameters')
 | |
| 
 | |
|             preset = Devops::StackTemplatePresetsFactory.get(attrs.fetch('id'))
 | |
|             stack = preset.create_stack_from_preset(provider, stack_id, parameters)
 | |
|             settings.mongo.stack_insert(stack)
 | |
| 
 | |
|             create_response 'Created', stack.to_hash, 201
 | |
|           }
 | |
|         end
 | |
| 
 | |
|       end
 | |
|     end
 | |
|   end
 | |
| end
 | |
| 
 | 
