fluke/devops-service/app/api2/handlers/stack_preset.rb

44 lines
1.0 KiB
Ruby
Raw Normal View History

require 'json'
require 'lib/stack_presets/factory'
require 'workers/stack_bootstrap_worker'
2015-08-03 11:05:18 +03:00
require "app/api2/parsers/stack_preset"
require_relative "request_handler"
module Devops
module API2_0
module Handler
class StackPreset < RequestHandler
2015-07-30 15:37:43 +03:00
set_parser Devops::API2_0::Parser::StackPresetParser
def presets
Devops::StackPresetsFactory.list
end
def preset id
Devops::StackPresetsFactory.get(id)
end
2015-07-30 15:37:43 +03:00
def apply id
body = parser.apply
preset = Devops::StackPresetsFactory.get(id)
2015-07-29 20:37:33 +03:00
stack = preset.create_stack_from_preset(body)
stack.owner = owner_from_request
Devops::Db.connector.stack_insert(stack)
2015-07-29 20:37:33 +03:00
file = JobStarter.start_job(:worker, :stack_bootstrap,
2015-07-29 20:37:33 +03:00
provider: stack.provider,
stack_id: stack.id,
request: @request
)
puts "Syncing report is located here: #{file}"
stack
end
end
end
end
end