fluke/devops-service/app/api2/handlers/stack.rb
2015-07-30 11:56:32 +02:00

62 lines
1.5 KiB
Ruby

require 'db/mongo/models/stack/stack_factory'
require_relative "request_handler"
module Devops
module API2_0
module Handler
class Stack < RequestHandler
def stacks
Devops::Db.connector.stacks
end
def stacks_for_provider provider
Devops::Db.connector.stacks(provider)
end
def create_stack object
stack = Model::StackFactory.create(object['provider'], object)
stack.owner = owner_from_request
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 stack id
Devops::Db.connector.stack(id)
end
def delete_stack id
stack = self.stack(id)
stack.delete_stack_in_cloud!
Devops::Db.connector.stack_servers_delete(id)
Devops::Db.connector.stack_delete(id)
end
def sync_details id
stack = self.stack(id)
stack.sync_details!
Devops::Db.connector.stack_update(stack)
end
def resources id
stack = Devops::Db.connector.stack(id)
stack.resources
end
def resource id, resource_id
stack = Devops::Db.connector.stack(id)
stack.resource(resource_id)
end
end
end
end
end