71 lines
		
	
	
		
			2.3 KiB
		
	
	
	
		
			Ruby
		
	
	
	
	
	
			
		
		
	
	
			71 lines
		
	
	
		
			2.3 KiB
		
	
	
	
		
			Ruby
		
	
	
	
	
	
| module Devops
 | |
|   module API2_0
 | |
|     module Routes
 | |
|       module StackPresetRoutes
 | |
| 
 | |
|         def self.registered(app)
 | |
|           # Get list of available stack_template_presets
 | |
|           #
 | |
|           # * *Request*
 | |
|           #   - method : GET
 | |
|           #   - headers :
 | |
|           #     - Accept: application/json
 | |
|           #
 | |
|           # * *Returns* : array of hashes
 | |
|           #   [ {id: 'preset id', template_preset_body: 'long body'} ]
 | |
|           #
 | |
|           app.get_with_headers "/stack_presets", :headers => [:accept] do
 | |
|             # check_privileges("stack_template_presets", "r")
 | |
|             json Devops::API2_0::Handler::StackPreset.new(request).presets.map(&:to_hash)
 | |
|           end
 | |
| 
 | |
|           # Get information about stack_template_preset
 | |
|           #
 | |
|           # * *Request*
 | |
|           #   - method : GET
 | |
|           #   - headers :
 | |
|           #     - Accept: application/json
 | |
|           #
 | |
|           # * *Returns* : hash
 | |
|           #   {id: 'preset id', template_preset_body: 'long body'}
 | |
|           #
 | |
|           app.get_with_headers "/stack_presets/:id", :headers => [:accept] do |id|
 | |
|             # check_privileges("stack_template_presets", "r")
 | |
|             json Devops::API2_0::Handler::StackPreset.new(request).preset(id).to_hash
 | |
|           end
 | |
| 
 | |
|           # Build stack template from preset
 | |
|           #
 | |
|           # * *Request*
 | |
|           #   - method : POST
 | |
|           #   - headers :
 | |
|           #     - Accept: application/json
 | |
|           #   - params :
 | |
|           #     - provider: string
 | |
|           #     - stack_template_id: id of stack template to create
 | |
|           #     - template_attrs: hash with template attributes
 | |
|           #
 | |
|           # TODO: not stack template, but stack itself
 | |
|           #
 | |
|           # * *Returns* : created stack template model
 | |
|           #   {
 | |
|           #     id: 'template id',
 | |
|           #     provider: 'provider',
 | |
|           #     template_body: 'long body'
 | |
|           #   }
 | |
|           #
 | |
|           app.post_with_headers "/stack_presets/:id/apply", :headers => [:accept] do |id|
 | |
|             # check_privileges("stack_template_presets", "r")
 | |
|             check_privileges('stack_template', 'w')
 | |
|             stack = Devops::API2_0::Handler::StackPreset.new(request).apply(id)
 | |
|             create_response 'Created', stack.to_hash, 201
 | |
|           end
 | |
| 
 | |
|           puts "Stack template presets routes initialized"
 | |
|         end
 | |
| 
 | |
|       end
 | |
|     end
 | |
|   end
 | |
| end
 |