fluke/devops-service/app/devops-api3.rb
Tim Lianov 03dc3d8d99 v3
2018-04-04 22:44:39 +03:00

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