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

82 lines
2.8 KiB
Ruby
Raw Normal View History

2015-06-25 11:13:46 +03:00
module Devops
module Application
class DevopsApi2Application < Application
def prepare
require "routes/v2.0"
require "routes/v2.0/handlers/provider"
require "routes/v2.0/handlers/bootstrap_templates"
require "routes/v2.0/handlers/deploy"
require "routes/v2.0/handlers/filter"
require "routes/v2.0/handlers/flavor"
require "routes/v2.0/handlers/group"
require "routes/v2.0/handlers/image"
require "routes/v2.0/handlers/network"
require "routes/v2.0/handlers/key"
require "routes/v2.0/handlers/project"
require "routes/v2.0/handlers/script"
require "routes/v2.0/handlers/status"
require "routes/v2.0/handlers/tag"
require "routes/v2.0/handlers/user"
require "routes/v2.0/handlers/server"
require "routes/v2.0/handlers/stack"
2015-07-10 13:08:59 +03:00
require "routes/v2.0/handlers/stack_template"
require "routes/v2.0/stack_template_presets"
2015-06-30 14:27:42 +03:00
require "routes/v2.0/handlers/report"
2015-07-10 13:08:59 +03:00
require 'lib/stubber'
2015-06-25 11:13:46 +03:00
end
def init
config = DevopsConfig.config
Devops::Api2.set :devops_home, config[:devops_dir]
#set :config, config
Devops::Api2.set :keys_dir, (config[:keys_dir] || File.join(config[:devops_dir], "files/keys"))
Devops::Api2.set :scripts_dir, (config[:scripts_dir] || File.join(config[:devops_dir], "files/scripts"))
[:keys_dir, :scripts_dir].each {|key| d = Devops::Api2.settings.send(key); FileUtils.mkdir_p(d) unless File.exists?(d) }
init_mongo
Devops::Api2.settings.mongo.create_root_user
::Provider::ProviderFactory.init(config)
Stubber.stub_providers! if config[:stub_classes]
2015-06-25 11:13:46 +03:00
end
def routes
require "routes/v2.0/flavor"
require "routes/v2.0/image"
require "routes/v2.0/filter"
require "routes/v2.0/network"
require "routes/v2.0/group"
require "routes/v2.0/deploy"
require "routes/v2.0/project"
require "routes/v2.0/key"
require "routes/v2.0/user"
require "routes/v2.0/provider"
require "routes/v2.0/tag"
require "routes/v2.0/server"
require "routes/v2.0/script"
require "routes/v2.0/status"
require "routes/v2.0/bootstrap_templates"
require "routes/v2.0/stack"
2015-07-10 13:08:59 +03:00
require "routes/v2.0/stack_template"
require "routes/v2.0/handlers/stack_template_preset"
2015-06-30 14:27:42 +03:00
require "routes/v2.0/report"
2015-06-25 11:13:46 +03:00
routes = Devops::Version2_0::Routes.constants.collect{|s| Devops::Version2_0::Routes.const_get(s)}.select {|const| const.class == Module}
routes.each do |r|
Devops::Api2.register r
end
Routes.route "/v2.0", Devops::Api2
end
private
def init_mongo
Devops::Api2.set :mongo, Devops::Db.connector
end
end
end
end