refactored, core files

This commit is contained in:
amartynov 2015-07-16 12:54:16 +03:00
parent 863480899a
commit 32443651f6
24 changed files with 256 additions and 212 deletions

View File

@ -1,4 +1,5 @@
require 'sinatra/base' require 'sinatra/base'
require 'core/devops-logger'
class Client < Sinatra::Base class Client < Sinatra::Base
@ -7,6 +8,25 @@ class Client < Sinatra::Base
@@config = DevopsConfig.config @@config = DevopsConfig.config
end end
configure :production do
logger = DevopsLogger.create("/tmp/devops-client.log", Logger::INFO)
use Rack::CommonLogger, logger
disable :dump_errors
disable :show_exceptions
# set :logging, Logger::INFO
logger.info "Production mode"
end
configure :development do
logger = DevopsLogger.create("/tmp/devops-client.log", Logger::DEBUG)
use Rack::CommonLogger, logger
# set :logging, Logger::DEBUG
disable :raise_errors
# disable :dump_errors
set :show_exceptions, :after_handler
logger.info "Development mode"
end
# Route to download devops client # Route to download devops client
get "/devops-client.gem" do get "/devops-client.gem" do
begin begin

View File

@ -1,5 +1,4 @@
module Devops module Devops
module Application
class DevopsApi2Application < Application class DevopsApi2Application < Application
def prepare def prepare
@ -76,6 +75,5 @@ module Devops
end end
end end
end
end end

View File

@ -1,28 +0,0 @@
module Devops
module Application
class Application
@@applications = []
def self.inherited(base)
@@applications << base.new
puts "Devops application '#{base}' has been added"
end
def self.applications
@@applications
end
def prepare
end
def init
end
def routes
end
end
end
end

View File

@ -1,5 +1,4 @@
module Devops module Devops
module Application
class DevopsClientApplication < Application class DevopsClientApplication < Application
def prepare def prepare
@ -10,5 +9,4 @@ module Devops
Routes.route "/client", ::Client.new Routes.route "/client", ::Client.new
end end
end end
end
end end

View File

@ -1,5 +1,4 @@
module Devops module Devops
module Application
class DevopsVersionApplication < Application class DevopsVersionApplication < Application
def prepare def prepare
@ -10,6 +9,5 @@ module Devops
Routes.route "/version", ::DevopsVersion.new Routes.route "/version", ::DevopsVersion.new
end end
end end
end
end end

View File

@ -1,5 +1,4 @@
module Devops module Devops
module Application
class SidekiqApplication < Application class SidekiqApplication < Application
@ -12,6 +11,5 @@ module Devops
end end
end end
end
end end

View File

@ -2,7 +2,7 @@ require 'sinatra/base'
class DevopsVersion < Sinatra::Base class DevopsVersion < Sinatra::Base
VERSION = "3.0.0" VERSION = "2.3.0"
get "/" do get "/" do
VERSION VERSION

View File

@ -0,0 +1,4 @@
require "app/sidekiq_web"
require "app/devops-client"
require "app/devops-version"
#require "app/devops-api2"

View File

@ -4,11 +4,12 @@ require "rubygems"
require "bundler/setup" require "bundler/setup"
require 'byebug' require 'byebug'
require_relative "devops-service"
require_relative "devops_config"
require_relative "devops-routes"
root = File.dirname(__FILE__) root = File.dirname(__FILE__)
$:.push root
require_relative "core/devops-service"
require_relative "core/devops-config"
require_relative "core/devops-routes"
# Read configuration file # Read configuration file
DevopsConfig.read DevopsConfig.read
@ -27,6 +28,10 @@ config[:report_dir_v2] = File.expand_path(File.join(config[:devops_dir], "report
DevopsService.init DevopsService.init
puts Devops::Routes.routes puts Devops::Routes.routes
if Devops::Routes.routes.empty?
puts "No applications"
exit -1
end
Devops::Routes.routes.each do |p, c| Devops::Routes.routes.each do |p, c|
map(p) do map(p) do
run c run c

View File

@ -0,0 +1,26 @@
module Devops
class Application
@@applications = []
def self.inherited(base)
@@applications << base.new
puts "Devops application '#{base}' has been added"
end
def self.applications
@@applications
end
def prepare
end
def init
end
def routes
end
end
end

View File

@ -1,3 +1,5 @@
require "db/mongo/mongo_connector"
module Devops module Devops
class Db class Db

View File

@ -0,0 +1,16 @@
require "logger"
class DevopsLogger
def self.create out, level=Logger::INFO, format='%a %d-%m-%Y %H%M '
@_logger = Logger.new out
@_logger.level = level
@_logger.datetime_format = format
@_logger.debug("Logger has been created")
@_logger
end
def self.logger
@_logger
end
end

View File

@ -1,29 +1,29 @@
require "wisper" require "wisper"
$:.push File.dirname(__FILE__) =begin
require "db/exceptions/invalid_record" require "db/exceptions/invalid_record"
require "db/exceptions/record_not_found" require "db/exceptions/record_not_found"
require "exceptions/dependency_error" require "exceptions/dependency_error"
require "db/validators/all" require "db/validators/all"
require "db/mongo/mongo_connector"
require "providers/provider_factory" require "providers/provider_factory"
require "fog" require "fog"
require "loader"
require "devops_db"
require "devops_logger"
require_relative "routes/v2.0" require_relative "routes/v2.0"
require "hooks" require "hooks"
require "app/devops-application" =end
require "app/devops-client"
require "app/sidekiq_web"
require "app/devops-version"
require "app/devops-api2"
require_relative "sinatra/methods_with_headers" require_relative "devops-loader"
require_relative "devops-db"
require_relative "devops-logger"
require_relative "devops-application"
require_relative "../sinatra/methods_with_headers"
require_relative "../applications"
#root = File.expand_path("../", __FILE__)
#$:.push root
class DevopsService class DevopsService
@ -51,7 +51,7 @@ class DevopsService
DevopsLogger.create STDOUT DevopsLogger.create STDOUT
routes routes
apps = Devops::Application::Application.applications apps = Devops::Application.applications
apps.each do |a| apps.each do |a|
a.prepare a.prepare
end end
@ -91,4 +91,4 @@ class DevopsService
end end
require "wisper_fix" require_relative "../wisper_fix"

View File

@ -1,5 +1,7 @@
require "db/exceptions/invalid_record" require "db/exceptions/invalid_record"
require "db/mongo/models/mongo_model" require "db/mongo/models/mongo_model"
require "db/validators/image/bootstrap_template.rb"
require "db/validators/image/image_in_filter.rb"
module Devops module Devops
module Model module Model

View File

@ -1,4 +1,5 @@
class Validators::Base module Validators
class Base
def initialize(model, options={}) def initialize(model, options={})
@model = model @model = model
@ -37,4 +38,5 @@ class Validators::Base
end end
end end
end
end end

View File

@ -1,6 +1,9 @@
require "commands/bootstrap_templates" require "commands/bootstrap_templates"
require "db/validators/base"
module Validators module Validators
class Image::BootstrapTemplate < Base module Image
class BootstrapTemplate < Base
include BootstrapTemplatesCommands include BootstrapTemplatesCommands
@ -17,4 +20,5 @@ module Validators
"Invalid bootstrap template '#{@model.bootstrap_template}' for image '#{@model.id}'" "Invalid bootstrap template '#{@model.bootstrap_template}' for image '#{@model.id}'"
end end
end end
end
end end

View File

@ -1,16 +0,0 @@
require "logger"
class DevopsLogger
def self.create out, level=Logger::INFO
@_logger = Logger.new out
@_logger.level = level
@_logger.datetime_format = '%a %d-%m-%Y %H%M '
@_logger.info("Logger has been created")
@_logger
end
def self.logger
@_logger
end
end

View File

@ -3,7 +3,12 @@ require "sinatra/streaming"
require "helpers/version_2" require "helpers/version_2"
require "json" require "json"
require "fog"
require "auth/devops_auth" require "auth/devops_auth"
require "db/exceptions/invalid_record"
require "db/exceptions/record_not_found"
require "exceptions/dependency_error"
module Devops module Devops
class Api2 < Sinatra::Base class Api2 < Sinatra::Base

View File

@ -1,5 +1,5 @@
module Devops module Devops
module Version2_0 module API2_0
module Routes module Routes
module FlavorRoutes module FlavorRoutes
@ -31,7 +31,13 @@ module Devops
# "disk": 20 # "disk": 20
# } # }
# ] # ]
app.get_with_headers "/flavors/:provider", :headers => [:accept], &Devops::Version2_0::Handler::Flavor.get_flavors app.get_with_headers "/flavors/:provider", :headers => [:accept] do#, &Devops::Version2_0::Handler::Flavor.get_flavors
check_privileges("flavor", "r")
provider = params[:provider]
check_provider(provider)
h = Devops::API2_0::Handler::Flavor.new(provider)
json h.flavors
end
puts "Flavor routes initialized" puts "Flavor routes initialized"
end end

View File

@ -19,7 +19,9 @@ module Devops
def self.delete_filter def self.delete_filter
lambda { lambda {
create_response("Deleted", {:images => settings.mongo.delete_available_images(@images, params[:provider])}) # f = FilterHandler.new(?) #request, params
# f.delete
# create_response("Deleted", {:images => f.delete})# settings.mongo.delete_available_images(@images, params[:provider])})
} }
end end

View File

@ -1,17 +1,19 @@
require "providers/provider_factory" require "providers/provider_factory"
module Devops module Devops
module Version2_0 module API2_0
module Handler module Handler
class Flavor class Flavor
def self.get_flavors
lambda { def initialize provider
check_privileges("flavor", "r") @provider = provider
check_provider(params[:provider])
p = ::Provider::ProviderFactory.get params[:provider]
json p.flavors
}
end end
def flavors
p = ::Provider::ProviderFactory.get @provider
p.flavors
end
end end
end end
end end