71 lines
2.6 KiB
Ruby
71 lines
2.6 KiB
Ruby
module Devops
|
|
class DevopsApi3Application < Application
|
|
|
|
def prepare
|
|
require "auth/devops_auth"
|
|
require_relative "api3/routes/v3.0"
|
|
require_relative "api3/handlers/provider"
|
|
require_relative "api3/handlers/filter"
|
|
require_relative "api3/handlers/user"
|
|
require_relative "api3/handlers/job_task"
|
|
require_relative "api3/handlers/deploy"
|
|
require_relative "api3/handlers/script"
|
|
require_relative "api3/handlers/chef"
|
|
require_relative "api3/handlers/key"
|
|
require_relative "api3/handlers/server"
|
|
require_relative "api3/handlers/image"
|
|
require_relative "api3/handlers/project"
|
|
require_relative "api3/handlers/stack"
|
|
require_relative "api3/handlers/stack_template"
|
|
require_relative "api3/handlers/roles"
|
|
require_relative "api3/handlers/statistic"
|
|
require_relative "api3/handlers/api-docs"
|
|
|
|
require 'lib/stubber'
|
|
end
|
|
|
|
def init
|
|
config = DevopsConfig.config
|
|
Devops::Api3.set :devops_home, config[:devops_dir]
|
|
#set :config, config
|
|
|
|
Devops::Api3.set :keys_dir, (config[:keys_dir] || File.join(config[:devops_dir], "files/keys"))
|
|
Devops::Api3.set :scripts_dir, (config[:scripts_dir] || File.join(config[:devops_dir], "files/scripts"))
|
|
[:keys_dir, :scripts_dir].each {|key| d = Devops::Api3.settings.send(key); FileUtils.mkdir_p(d) unless File.exists?(d) }
|
|
#mongo = Devops::Api2.settings.mongo
|
|
#mongo.create_root_user
|
|
Devops::Model::User.create_root
|
|
Stubber.stub_providers!(config[:stub_providers])
|
|
end
|
|
|
|
def routes
|
|
require_relative "api3/routes/image"
|
|
require_relative "api3/routes/filter"
|
|
require_relative "api3/routes/deploy"
|
|
require_relative "api3/routes/project"
|
|
require_relative "api3/routes/key"
|
|
require_relative "api3/routes/user"
|
|
require_relative "api3/routes/provider"
|
|
require_relative "api3/routes/server"
|
|
require_relative "api3/routes/script"
|
|
require_relative "api3/routes/chef"
|
|
require_relative "api3/routes/stack"
|
|
require_relative "api3/routes/stack_template"
|
|
require_relative "api3/routes/statistic"
|
|
require_relative "api3/routes/job_task"
|
|
require_relative "api3/routes/roles"
|
|
require_relative "api3/routes/api-docs"
|
|
|
|
routes = Devops::API3::Routes.constants.collect{|s| Devops::API3::Routes.const_get(s)}.select {|const| const.class == Module}
|
|
routes.each do |r|
|
|
Devops::Api3.register r
|
|
end
|
|
DevopsLogger.logger.debug "Api3 routes policies: #{Devops::Api3.policies.inspect}"
|
|
Routes.route "/v3", Devops::Api3
|
|
#Devops::Api2.routes_list
|
|
end
|
|
|
|
end
|
|
end
|
|
|