somethings

This commit is contained in:
amartynov 2015-02-25 16:01:22 +03:00
parent eed937af5f
commit 10d29624ba
4 changed files with 70 additions and 21 deletions

View File

@ -0,0 +1,32 @@
module Sinatra
module Devops
module Helpers
def protect!
return if auth_with_basic?
halt 401, "Not authorized\n"
end
def auth_with_basic?
@auth ||= Rack::Auth::Basic::Request.new(request.env)
if @auth.provided? and @auth.basic? and @auth.credentials
c = @auth.credentials
begin
Devops::Db.connector.user_auth(c[0], c[1])
true
rescue RecordNotFound => e
false
end
else
false
end
end
end
def self.registered(app)
app.helpers Devops::Helpers
end
end
register Devops
end

View File

@ -14,9 +14,6 @@ require "devops_db"
require "sidekiq/web"
require "fog"
require "test_subscriber"
require "test_subscriber_2"
require_relative "routes/v2.0"
require_relative "client"
require_relative "report"

View File

@ -0,0 +1,12 @@
module Devops
module RoutesContainer
def register_routes
routes = Devops::Version2_0::Routes.constants.collect{|s| Devops::Version2_0::Routes.const_get(s)}.select {|const| const.class == Module}
routes.each do |r|
register r
end
end
end
end

View File

@ -34,12 +34,36 @@ 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/routes_container"
require "auth/devops_auth"
module Devops
module Version2_0
class Application < Sinatra::Base
extend Devops::RoutesContainer
class << self
@routes = [
Devops::Version2_0::Routes::ProviderRoutes,
Devops::Version2_0::Routes::BootstrapTemplatesRoutes,
Devops::Version2_0::Routes::UserRoutes,
Devops::Version2_0::Routes::FilterRoutes,
Devops::Version2_0::Routes::FlavorRoutes,
Devops::Version2_0::Routes::GroupRoutes,
Devops::Version2_0::Routes::ImageRoutes,
Devops::Version2_0::Routes::KeyRoutes,
Devops::Version2_0::Routes::NetworkRoutes,
Devops::Version2_0::Routes::ProjectRoutes,
Devops::Version2_0::Routes::ScriptRoutes,
Devops::Version2_0::Routes::ServerRoutes,
Devops::Version2_0::Routes::StatusRoutes,
Devops::Version2_0::Routes::TagRoutes,
Devops::Version2_0::Routes::DeployRoutes
]
def init
config = DevopsConfig.config
set :devops_home, config[:devops_dir]
@ -61,24 +85,6 @@ module Devops
set :mongo, Devops::Db.connector
end
def register_routes
register Devops::Version2_0::Routes::ProviderRoutes
register Devops::Version2_0::Routes::BootstrapTemplatesRoutes
register Devops::Version2_0::Routes::UserRoutes
register Devops::Version2_0::Routes::FilterRoutes
register Devops::Version2_0::Routes::FlavorRoutes
register Devops::Version2_0::Routes::GroupRoutes
register Devops::Version2_0::Routes::ImageRoutes
register Devops::Version2_0::Routes::KeyRoutes
register Devops::Version2_0::Routes::NetworkRoutes
register Devops::Version2_0::Routes::ProjectRoutes
register Devops::Version2_0::Routes::ScriptRoutes
register Devops::Version2_0::Routes::ServerRoutes
register Devops::Version2_0::Routes::StatusRoutes
register Devops::Version2_0::Routes::TagRoutes
register Devops::Version2_0::Routes::DeployRoutes
end
private
def set_up_providers_keys!(providers, mongo)
providers.each do |provider|
@ -98,6 +104,7 @@ module Devops
helpers Sinatra::Streaming
helpers Devops::Version2_0::Helpers
=begin
use Rack::Auth::Basic do |username, password|
begin
settings.mongo.user_auth(username, password)
@ -106,6 +113,7 @@ module Devops
false
end
end
=end
configure :production do
disable :dump_errors