57 lines
		
	
	
		
			1.7 KiB
		
	
	
	
		
			Ruby
		
	
	
	
	
	
			
		
		
	
	
			57 lines
		
	
	
		
			1.7 KiB
		
	
	
	
		
			Ruby
		
	
	
	
	
	
| require 'db/mongo/models/stack_template/stack_template_factory'
 | |
| 
 | |
| module Devops
 | |
|   module Version2_0
 | |
|     module Handler
 | |
|       class StackTemplate
 | |
| 
 | |
|         def self.get_stack_templates
 | |
|           lambda {
 | |
|             check_privileges('stack_template', 'r')
 | |
|             stack_templates = settings.mongo.stack_templates
 | |
|             json stack_templates.map(&:to_hash)
 | |
|           }
 | |
|         end
 | |
| 
 | |
|         def self.get_stack_templates_for_provider
 | |
|           lambda {
 | |
|             check_privileges('stack_template', 'r')
 | |
|             check_provider(params[:provider])
 | |
|             stack_templates = settings.mongo.stack_templates(params[:provider])
 | |
|             json stack_templates.map(&:to_hash)
 | |
|           }
 | |
|         end
 | |
| 
 | |
|         def self.create_stack_template
 | |
|           lambda {
 | |
|             check_privileges('stack_template', 'w')
 | |
| 
 | |
|             attrs = create_object_from_json_body
 | |
|             template_model = Model::StackTemplateFactory.create(attrs['provider'], attrs)
 | |
| 
 | |
|             settings.mongo.stack_template_insert(template_model)
 | |
|             create_response 'Created', template_model.to_hash, 201
 | |
|           }
 | |
|         end
 | |
| 
 | |
|         def self.get_stack_template
 | |
|           lambda {
 | |
|             check_privileges('stack_template', 'r')
 | |
|             stack_template = settings.mongo.stack_template(params[:stack_template_id])
 | |
|             json stack_template.to_hash
 | |
|           }
 | |
|         end
 | |
| 
 | |
|         def self.delete_stack_template
 | |
|           lambda {
 | |
|             check_privileges('stack_template', 'w')
 | |
| 
 | |
|             settings.mongo.stack_template_delete params[:stack_template_id]
 | |
|             create_response("Template '#{params[:stack_template_id]}' has been removed")
 | |
|           }
 | |
|         end
 | |
| 
 | |
|       end
 | |
|     end
 | |
|   end
 | |
| end | 
