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