require 'json' require 'lib/stack_presets/factory' require 'workers/stack_sync_worker' require 'workers/job_starter' require_relative "request_handler" module Devops module API2_0 module Handler class StackPreset < RequestHandler def presets Devops::StackPresetsFactory.list end def preset id Devops::StackPresetsFactory.get(id) end def apply id, body preset = Devops::StackPresetsFactory.get(id) stack = preset.create_stack_from_preset(body) Devops::Db.connector.stack_insert(stack) file = JobStarter.start_job(:worker, :sync_stack_till_not_in_progress, provider: stack.provider, stack_id: stack.id, request: @request ) puts "Syncing report is located here: #{file}" stack end # def self.apply # lambda { # # check_privileges("stack_presets", "r") # check_privileges('stack_template', 'w') # attrs = create_object_from_json_body # preset = Devops::StackPresetsFactory.get(attrs.fetch('id')) # stack = preset.create_stack_from_preset(attrs) # settings.mongo.stack_insert(stack) # file = JobStarter.start_job(:worker, :sync_stack_till_not_in_progress, # provider: stack.provider, # stack_id: stack.id, # request: request # ) # puts "Syncing report is located here: #{file}" # create_response 'Created', stack.to_hash, 201 # } # end end end end end