some fixes
This commit is contained in:
parent
7ee7a8d846
commit
02ae115915
@ -21,7 +21,7 @@ gem 'rack-accept-media-types'
|
|||||||
gem 'rack', '1.5.2'
|
gem 'rack', '1.5.2'
|
||||||
gem 'hooks'
|
gem 'hooks'
|
||||||
|
|
||||||
# gem "devops-nibr", :path => "plugins/devops-nibr"
|
#gem "devops-nibr", :path => "../../devops-nibr"
|
||||||
|
|
||||||
group :test do
|
group :test do
|
||||||
gem 'cucumber'
|
gem 'cucumber'
|
||||||
|
|||||||
@ -26,14 +26,7 @@ module Devops
|
|||||||
end
|
end
|
||||||
|
|
||||||
def projects
|
def projects
|
||||||
fields = []
|
Devops::Db.connector.projects(nil, nil, parser.projects, parser.archived_projects)
|
||||||
if @params.key?("fields") and @params["fields"].is_a?(Array)
|
|
||||||
Devops::Model::Project.fields.each do |k|
|
|
||||||
fields.push k if @params["fields"].include?(k)
|
|
||||||
end
|
|
||||||
end
|
|
||||||
archived = @params.include?("archived")
|
|
||||||
Devops::Db.connector.projects(nil, nil, fields, archived)
|
|
||||||
end
|
end
|
||||||
|
|
||||||
def project id
|
def project id
|
||||||
|
|||||||
@ -64,11 +64,11 @@ module Devops
|
|||||||
def create_server
|
def create_server
|
||||||
dir = DevopsConfig[:report_dir_v2]
|
dir = DevopsConfig[:report_dir_v2]
|
||||||
files = []
|
files = []
|
||||||
uri = URI.parse(request.url)
|
uri = URI.parse(parser.request.url)
|
||||||
prepare_create_server.each do |s|
|
prepare_create_server.each do |s|
|
||||||
h = s.to_hash
|
h = s.to_hash
|
||||||
h["options"] = s.options
|
h["options"] = s.options
|
||||||
jid = CreateServerWorker.perform_async(dir, env.provider, h, parser.current_user, DevopsConfig.config)
|
jid = CreateServerWorker.perform_async(dir, s.provider, h, parser.current_user, DevopsConfig.config)
|
||||||
Worker.set_status jid, Worker::STATUS::IN_QUEUE
|
Worker.set_status jid, Worker::STATUS::IN_QUEUE
|
||||||
#logger.info "Job '#{jid}' has been started"
|
#logger.info "Job '#{jid}' has been started"
|
||||||
uri.path = "#{DevopsConfig[:url_prefix]}/v2.0/report/" + jid
|
uri.path = "#{DevopsConfig[:url_prefix]}/v2.0/report/" + jid
|
||||||
@ -96,7 +96,7 @@ module Devops
|
|||||||
halt_response("Invalid security groups '#{buf.join("', '")}' for provider '#{provider.name}'") if buf.empty?
|
halt_response("Invalid security groups '#{buf.join("', '")}' for provider '#{provider.name}'") if buf.empty?
|
||||||
end
|
end
|
||||||
|
|
||||||
Server.extract_servers(provider, p, env, body, user, Devops::Db.connector)
|
Server.extract_servers(provider, p, env, body, user)
|
||||||
end
|
end
|
||||||
|
|
||||||
def pause_server node_name
|
def pause_server node_name
|
||||||
|
|||||||
@ -10,7 +10,7 @@ module Devops
|
|||||||
set_parser Devops::API2_0::Parser::UserParser
|
set_parser Devops::API2_0::Parser::UserParser
|
||||||
|
|
||||||
def users
|
def users
|
||||||
Devops::Db.connector.users({}, {password: false})
|
Devops::Db.connector.users({}, fields: {password: false})
|
||||||
end
|
end
|
||||||
|
|
||||||
def create
|
def create
|
||||||
|
|||||||
73
devops-service/app/api2/helpers/parser.rb
Normal file
73
devops-service/app/api2/helpers/parser.rb
Normal file
@ -0,0 +1,73 @@
|
|||||||
|
require "json"
|
||||||
|
require "exceptions/parser_error"
|
||||||
|
require "exceptions/validation_error"
|
||||||
|
|
||||||
|
module Devops
|
||||||
|
module API2_0
|
||||||
|
module ParserHelpers
|
||||||
|
|
||||||
|
def create_object_from_json_body type=Hash, empty_body=false
|
||||||
|
json = request.body.read.strip
|
||||||
|
return nil if json.empty? and empty_body
|
||||||
|
@body_json = begin
|
||||||
|
::JSON.parse(json)
|
||||||
|
rescue ::JSON::ParserError => e
|
||||||
|
DevopsLogger.logger.error e.message
|
||||||
|
raise Devops::ParserError.new("Invalid JSON: #{e.message}")
|
||||||
|
end
|
||||||
|
raise Devops::ParserError.new("Invalid JSON, it should be an #{type == Array ? "array" : "object"}") unless @body_json.is_a?(type)
|
||||||
|
@body_json
|
||||||
|
end
|
||||||
|
|
||||||
|
def check_provider provider
|
||||||
|
list = ::Provider::ProviderFactory.providers
|
||||||
|
raise Devops::ValidationError.new("Invalid provider '#{provider}', available providers: '#{list.join("', '")}'") unless list.include?(provider)
|
||||||
|
end
|
||||||
|
|
||||||
|
def check_string val, msg, _nil=false, empty=false
|
||||||
|
check_param val, String, msg, _nil, empty
|
||||||
|
end
|
||||||
|
|
||||||
|
def check_array val, msg, vals_type=String, _nil=false, empty=false
|
||||||
|
check_param val, Array, msg, _nil, empty
|
||||||
|
val.each {|v| raise Devops::ValidationError.new(msg) unless v.is_a?(vals_type)} unless val.nil?
|
||||||
|
val
|
||||||
|
end
|
||||||
|
|
||||||
|
def check_filename file_name, not_string_msg, json_resp=true
|
||||||
|
check_string file_name, not_string_msg
|
||||||
|
r = Regexp.new("^[\\w _\\-.]{1,255}$", Regexp::IGNORECASE)
|
||||||
|
if r.match(file_name).nil?
|
||||||
|
msg = "Invalid file name '#{file_name}'. Expected name with 'a'-'z', '0'-'9', ' ', '_', '-', '.' symbols with length greate then 0 and less then 256 "
|
||||||
|
raise Devops::ValidationError.new(msg, json_resp)
|
||||||
|
=begin
|
||||||
|
if json_resp
|
||||||
|
halt_response(msg)
|
||||||
|
else
|
||||||
|
halt(400, msg)
|
||||||
|
end
|
||||||
|
=end
|
||||||
|
end
|
||||||
|
file_name
|
||||||
|
end
|
||||||
|
|
||||||
|
def check_param val, type, msg, _nil=false, empty=false
|
||||||
|
if val.nil?
|
||||||
|
if _nil
|
||||||
|
return val
|
||||||
|
else
|
||||||
|
raise Devops::ValidationError.new(msg)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
if val.is_a?(type)
|
||||||
|
raise Devops::ValidationError.new(msg) if val.empty? and !empty
|
||||||
|
val
|
||||||
|
else
|
||||||
|
raise Devops::ValidationError.new(msg)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
@ -8,6 +8,8 @@ module Devops
|
|||||||
module API2_0
|
module API2_0
|
||||||
module Helpers
|
module Helpers
|
||||||
|
|
||||||
|
include Sinatra::JSON
|
||||||
|
|
||||||
def create_response msg, obj=nil, rstatus=200
|
def create_response msg, obj=nil, rstatus=200
|
||||||
logger.info(msg)
|
logger.info(msg)
|
||||||
status rstatus
|
status rstatus
|
||||||
@ -22,7 +24,6 @@ module Devops
|
|||||||
end
|
end
|
||||||
|
|
||||||
def check_privileges cmd, p
|
def check_privileges cmd, p
|
||||||
# somewhy REMOTE_USER is missing
|
|
||||||
user = request.env['USER']
|
user = request.env['USER']
|
||||||
user.check_privileges(cmd, p)
|
user.check_privileges(cmd, p)
|
||||||
end
|
end
|
||||||
@ -32,59 +33,6 @@ module Devops
|
|||||||
halt_response("Invalid provider '#{provider}', available providers: '#{list.join("', '")}'", 404) unless list.include?(provider)
|
halt_response("Invalid provider '#{provider}', available providers: '#{list.join("', '")}'", 404) unless list.include?(provider)
|
||||||
end
|
end
|
||||||
|
|
||||||
def create_object_from_json_body type=Hash, empty_body=false
|
|
||||||
json = request.body.read.strip
|
|
||||||
return nil if json.empty? and empty_body
|
|
||||||
@body_json = begin
|
|
||||||
::JSON.parse(json)
|
|
||||||
rescue ::JSON::ParserError => e
|
|
||||||
logger.error e.message
|
|
||||||
halt_response("Invalid JSON: #{e.message}")
|
|
||||||
end
|
|
||||||
halt_response("Invalid JSON, it should be an #{type == Array ? "array" : "object"}") unless @body_json.is_a?(type)
|
|
||||||
@body_json
|
|
||||||
end
|
|
||||||
|
|
||||||
def check_string val, msg, _nil=false, empty=false
|
|
||||||
check_param val, String, msg, _nil, empty
|
|
||||||
end
|
|
||||||
|
|
||||||
def check_array val, msg, vals_type=String, _nil=false, empty=false
|
|
||||||
check_param val, Array, msg, _nil, empty
|
|
||||||
val.each {|v| halt_response(msg) unless v.is_a?(vals_type)} unless val.nil?
|
|
||||||
val
|
|
||||||
end
|
|
||||||
|
|
||||||
def check_filename file_name, not_string_msg, json_resp=true
|
|
||||||
check_string file_name, not_string_msg
|
|
||||||
r = Regexp.new("^[\\w _\\-.]{1,255}$", Regexp::IGNORECASE)
|
|
||||||
if r.match(file_name).nil?
|
|
||||||
msg = "Invalid file name '#{file_name}'. Expected name with 'a'-'z', '0'-'9', ' ', '_', '-', '.' symbols with length greate then 0 and less then 256 "
|
|
||||||
if json_resp
|
|
||||||
halt_response(msg)
|
|
||||||
else
|
|
||||||
halt(400, msg)
|
|
||||||
end
|
|
||||||
end
|
|
||||||
file_name
|
|
||||||
end
|
|
||||||
|
|
||||||
def check_param val, type, msg, _nil=false, empty=false
|
|
||||||
if val.nil?
|
|
||||||
if _nil
|
|
||||||
return val
|
|
||||||
else
|
|
||||||
halt_response(msg)
|
|
||||||
end
|
|
||||||
end
|
|
||||||
if val.is_a?(type)
|
|
||||||
halt_response(msg) if val.empty? and !empty
|
|
||||||
val
|
|
||||||
else
|
|
||||||
halt_response(msg)
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
# Save information about requests with methods POST, PUT, DELETE
|
# Save information about requests with methods POST, PUT, DELETE
|
||||||
def statistic msg=nil
|
def statistic msg=nil
|
||||||
unless request.get?
|
unless request.get?
|
||||||
|
|||||||
@ -1,3 +1,4 @@
|
|||||||
|
require "app/api2/helpers/version_2"
|
||||||
require_relative "request_parser"
|
require_relative "request_parser"
|
||||||
|
|
||||||
module Devops
|
module Devops
|
||||||
@ -5,6 +6,22 @@ module Devops
|
|||||||
module Parser
|
module Parser
|
||||||
class ProjectParser < RequestParser
|
class ProjectParser < RequestParser
|
||||||
|
|
||||||
|
include Devops::API2_0::Helpers
|
||||||
|
|
||||||
|
def projects
|
||||||
|
fields = []
|
||||||
|
if @params.key?("fields") and @params["fields"].is_a?(Array)
|
||||||
|
Devops::Model::Project.fields.each do |k|
|
||||||
|
fields.push k if @params["fields"].include?(k)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
fields
|
||||||
|
end
|
||||||
|
|
||||||
|
def archived_projects
|
||||||
|
@params.include?("archived")
|
||||||
|
end
|
||||||
|
|
||||||
def project_servers
|
def project_servers
|
||||||
@params[:deploy_env]
|
@params[:deploy_env]
|
||||||
end
|
end
|
||||||
|
|||||||
@ -1,11 +1,11 @@
|
|||||||
require "app/api2/helpers/version_2"
|
require "app/api2/helpers/parser"
|
||||||
|
|
||||||
module Devops
|
module Devops
|
||||||
module API2_0
|
module API2_0
|
||||||
module Parser
|
module Parser
|
||||||
class RequestParser
|
class RequestParser
|
||||||
|
|
||||||
include Devops::API2_0::Helpers
|
include Devops::API2_0::ParserHelpers
|
||||||
|
|
||||||
def initialize request
|
def initialize request
|
||||||
@request = request
|
@request = request
|
||||||
@ -20,6 +20,10 @@ module Devops
|
|||||||
@request
|
@request
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def body
|
||||||
|
@params
|
||||||
|
end
|
||||||
|
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|||||||
@ -16,15 +16,14 @@ module Devops
|
|||||||
# {
|
# {
|
||||||
# "names": [], -> array of servers names to run chef-client
|
# "names": [], -> array of servers names to run chef-client
|
||||||
# "tags": [], -> array of tags to apply on each server before running chef-client
|
# "tags": [], -> array of tags to apply on each server before running chef-client
|
||||||
# "build_number": "", -> string, build number to deploy
|
# "build_number": "" -> string, build number to deploy
|
||||||
# "trace": true -> return output in stream if true
|
|
||||||
# }
|
# }
|
||||||
#
|
#
|
||||||
# * *Returns* : text stream
|
# * *Returns* : text stream
|
||||||
app.post_with_headers "/deploy", :headers => [:content_type] do
|
app.post_with_headers "/deploy", :headers => [:content_type] do
|
||||||
check_privileges("server", "x")
|
check_privileges("server", "x")
|
||||||
|
|
||||||
if r.key?("trace")
|
if request["X-Stream"]
|
||||||
stream() do |out|
|
stream() do |out|
|
||||||
status = []
|
status = []
|
||||||
begin
|
begin
|
||||||
|
|||||||
@ -321,6 +321,7 @@ module Devops
|
|||||||
# * *Request*
|
# * *Request*
|
||||||
# - method : POST
|
# - method : POST
|
||||||
# - headers :
|
# - headers :
|
||||||
|
# - X-Stream: true -> return output in text stream
|
||||||
# - Content-Type: application/json
|
# - Content-Type: application/json
|
||||||
# - body :
|
# - body :
|
||||||
# {
|
# {
|
||||||
@ -334,7 +335,7 @@ module Devops
|
|||||||
app.post_with_headers "/project/:id/deploy", :headers => [:content_type] do |project|
|
app.post_with_headers "/project/:id/deploy", :headers => [:content_type] do |project|
|
||||||
check_privileges("project", "x")
|
check_privileges("project", "x")
|
||||||
handler = Devops::API2_0::Handler::Project.new(request)
|
handler = Devops::API2_0::Handler::Project.new(request)
|
||||||
if obj.key?("trace")
|
if request["X-Stream"]
|
||||||
stream() do |out|
|
stream() do |out|
|
||||||
begin
|
begin
|
||||||
status = handler.deploy_project_stream out, project
|
status = handler.deploy_project_stream out, project
|
||||||
|
|||||||
@ -19,7 +19,7 @@ module Devops
|
|||||||
|
|
||||||
app.get_with_headers "/report/:id", headers: [:accept] do |id|
|
app.get_with_headers "/report/:id", headers: [:accept] do |id|
|
||||||
@text, @done = Devops::API2_0::Handler::Report.new(request).report(id)
|
@text, @done = Devops::API2_0::Handler::Report.new(request).report(id)
|
||||||
erb :index
|
erb :report
|
||||||
end
|
end
|
||||||
|
|
||||||
app.get "/status/:id" do |id|
|
app.get "/status/:id" do |id|
|
||||||
@ -36,26 +36,3 @@ module Devops
|
|||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
__END__
|
|
||||||
|
|
||||||
@@ layout
|
|
||||||
<html>
|
|
||||||
<head>
|
|
||||||
<% unless @done %>
|
|
||||||
<script>
|
|
||||||
function reload() {
|
|
||||||
location.reload();
|
|
||||||
}
|
|
||||||
setTimeout(reload, 5000);
|
|
||||||
</script>
|
|
||||||
<% end %>
|
|
||||||
</head>
|
|
||||||
<body>
|
|
||||||
<%= yield %>
|
|
||||||
</body>
|
|
||||||
</html>
|
|
||||||
|
|
||||||
@@ index
|
|
||||||
<pre>
|
|
||||||
<%= @text %>
|
|
||||||
</pre>
|
|
||||||
|
|||||||
@ -132,6 +132,7 @@ module Devops
|
|||||||
# * *Request*
|
# * *Request*
|
||||||
# - method : POST
|
# - method : POST
|
||||||
# - headers :
|
# - headers :
|
||||||
|
# - X-Stream: true -> return output in text stream
|
||||||
# - Accept: application/json
|
# - Accept: application/json
|
||||||
# - Content-Type: application/json
|
# - Content-Type: application/json
|
||||||
# - body :
|
# - body :
|
||||||
@ -142,15 +143,14 @@ module Devops
|
|||||||
# "without_bootstrap": null, -> do not install chef on instance if true
|
# "without_bootstrap": null, -> do not install chef on instance if true
|
||||||
# "force": null, -> do not delete server on error
|
# "force": null, -> do not delete server on error
|
||||||
# "groups": [], -> specify special security groups, overrides value from project env
|
# "groups": [], -> specify special security groups, overrides value from project env
|
||||||
# "key": "ssh key", -> specify ssh key for server, overrides value from project env
|
# "key": "ssh key" -> specify ssh key for server, overrides value from project env
|
||||||
# "trace": true -> return output in stream
|
|
||||||
# }
|
# }
|
||||||
#
|
#
|
||||||
# * *Returns* : text stream
|
# * *Returns* : text stream
|
||||||
app.post_with_headers "/server", :headers => [:content_type] do
|
app.post_with_headers "/server", :headers => [:accept, :content_type] do
|
||||||
check_privileges("server", "w")
|
check_privileges("server", "w")
|
||||||
handler = Devops::API2_0::Handler::Server.new(request)
|
handler = Devops::API2_0::Handler::Server.new(request)
|
||||||
if body.key?("trace")
|
if request["X-Stream"]
|
||||||
stream() do |out|
|
stream() do |out|
|
||||||
begin
|
begin
|
||||||
status = handler.create_server_stream out
|
status = handler.create_server_stream out
|
||||||
@ -249,6 +249,7 @@ module Devops
|
|||||||
# * *Request*
|
# * *Request*
|
||||||
# - method : POST
|
# - method : POST
|
||||||
# - headers :
|
# - headers :
|
||||||
|
# - X-Stream: true -> return output in text stream
|
||||||
# - Accept: application/json
|
# - Accept: application/json
|
||||||
# - Content-Type: application/json
|
# - Content-Type: application/json
|
||||||
# - body :
|
# - body :
|
||||||
@ -264,7 +265,7 @@ module Devops
|
|||||||
check_privileges("server", "w")
|
check_privileges("server", "w")
|
||||||
|
|
||||||
handler = Devops::API2_0::Handler::Server.new(request)
|
handler = Devops::API2_0::Handler::Server.new(request)
|
||||||
if body.key?("trace")
|
if request["X-Stream"]
|
||||||
stream() do |out|
|
stream() do |out|
|
||||||
begin
|
begin
|
||||||
status = handler.bootstrap_server_stream out
|
status = handler.bootstrap_server_stream out
|
||||||
|
|||||||
@ -9,6 +9,8 @@ require "exceptions/invalid_record"
|
|||||||
require "exceptions/record_not_found"
|
require "exceptions/record_not_found"
|
||||||
require "exceptions/dependency_error"
|
require "exceptions/dependency_error"
|
||||||
require "exceptions/conflict_exception"
|
require "exceptions/conflict_exception"
|
||||||
|
require "exceptions/parser_error"
|
||||||
|
require "exceptions/validation_error"
|
||||||
require 'core/devops-logger'
|
require 'core/devops-logger'
|
||||||
|
|
||||||
require_relative "../helpers/version_2"
|
require_relative "../helpers/version_2"
|
||||||
@ -39,8 +41,9 @@ module Devops
|
|||||||
logger = DevopsLogger.create(log_file, Logger::DEBUG)
|
logger = DevopsLogger.create(log_file, Logger::DEBUG)
|
||||||
use Rack::CommonLogger, logger
|
use Rack::CommonLogger, logger
|
||||||
disable :raise_errors
|
disable :raise_errors
|
||||||
# disable :dump_errors
|
#set :show_exceptions, :after_handler
|
||||||
set :show_exceptions, :after_handler
|
set :show_exceptions, false
|
||||||
|
#set :dump_errors, false
|
||||||
logger.info "Development mode"
|
logger.info "Development mode"
|
||||||
end
|
end
|
||||||
|
|
||||||
@ -48,6 +51,18 @@ module Devops
|
|||||||
"Not found"
|
"Not found"
|
||||||
end
|
end
|
||||||
|
|
||||||
|
error Devops::ValidationError do
|
||||||
|
e = env["sinatra.error"]
|
||||||
|
#logger.warn e.message
|
||||||
|
halt_response(e.message, 400)
|
||||||
|
end
|
||||||
|
|
||||||
|
error Devops::ParserError do
|
||||||
|
e = env["sinatra.error"]
|
||||||
|
#logger.warn e.message
|
||||||
|
halt_response(e.message, 400)
|
||||||
|
end
|
||||||
|
|
||||||
error RecordNotFound do
|
error RecordNotFound do
|
||||||
e = env["sinatra.error"]
|
e = env["sinatra.error"]
|
||||||
logger.warn e.message
|
logger.warn e.message
|
||||||
|
|||||||
18
devops-service/app/api2/routes/views/report.erb
Normal file
18
devops-service/app/api2/routes/views/report.erb
Normal file
@ -0,0 +1,18 @@
|
|||||||
|
<html>
|
||||||
|
<head>
|
||||||
|
<% unless @done %>
|
||||||
|
<script>
|
||||||
|
function reload() {
|
||||||
|
location.reload();
|
||||||
|
}
|
||||||
|
setTimeout(reload, 5000);
|
||||||
|
</script>
|
||||||
|
<% end %>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<pre>
|
||||||
|
<%= @text %>
|
||||||
|
</pre>
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
|
|
||||||
@ -17,10 +17,10 @@ module Connectors
|
|||||||
model_from_bson(u)
|
model_from_bson(u)
|
||||||
end
|
end
|
||||||
|
|
||||||
def users(ids=nil)
|
def users(ids=nil, options={})
|
||||||
query = {}
|
query = {}
|
||||||
query['_id'] = {'$in' => ids} if ids.is_a?(Array)
|
query['_id'] = {'$in' => ids} if ids.is_a?(Array)
|
||||||
list(query)
|
list(query, options)
|
||||||
end
|
end
|
||||||
|
|
||||||
def users_names(ids=nil)
|
def users_names(ids=nil)
|
||||||
|
|||||||
4
devops-service/exceptions/parser_error.rb
Normal file
4
devops-service/exceptions/parser_error.rb
Normal file
@ -0,0 +1,4 @@
|
|||||||
|
module Devops
|
||||||
|
class ParserError < Exception
|
||||||
|
end
|
||||||
|
end
|
||||||
12
devops-service/exceptions/validation_error.rb
Normal file
12
devops-service/exceptions/validation_error.rb
Normal file
@ -0,0 +1,12 @@
|
|||||||
|
module Devops
|
||||||
|
class ValidationError < Exception
|
||||||
|
|
||||||
|
attr_accessor :json
|
||||||
|
|
||||||
|
def initialize msg, json=true
|
||||||
|
super(msg)
|
||||||
|
json = json
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
end
|
||||||
@ -1,3 +1,4 @@
|
|||||||
|
require "chef/json_compat"
|
||||||
require "providers/base_provider"
|
require "providers/base_provider"
|
||||||
|
|
||||||
module Provider
|
module Provider
|
||||||
|
|||||||
@ -6,7 +6,6 @@ module Sinatra
|
|||||||
class Base
|
class Base
|
||||||
class << self
|
class << self
|
||||||
|
|
||||||
# TODO: add protect! method
|
|
||||||
def get_with_headers path, opt={}, &block
|
def get_with_headers path, opt={}, &block
|
||||||
headers = opt.delete(:headers) || []
|
headers = opt.delete(:headers) || []
|
||||||
before path do
|
before path do
|
||||||
|
|||||||
@ -12,9 +12,10 @@ class CreateServerWorker < Worker
|
|||||||
include ServerCommands
|
include ServerCommands
|
||||||
|
|
||||||
def perform(dir, e_provider, server, owner, conf)
|
def perform(dir, e_provider, server, owner, conf)
|
||||||
|
logger.info "Create server"
|
||||||
call(conf, e_provider, dir) do |provider, out, file|
|
call(conf, e_provider, dir) do |provider, out, file|
|
||||||
mongo = Devops::Db.connector
|
mongo = Devops::Db.connector
|
||||||
s = Server.new(server)
|
s = Devops::Model::Server.new(server)
|
||||||
s.options = convert_config(server["options"])
|
s.options = convert_config(server["options"])
|
||||||
o = {
|
o = {
|
||||||
"file" => file,
|
"file" => file,
|
||||||
@ -22,9 +23,9 @@ class CreateServerWorker < Worker
|
|||||||
"created_by" => owner,
|
"created_by" => owner,
|
||||||
"project" => s.project,
|
"project" => s.project,
|
||||||
"deploy_env" => s.deploy_env,
|
"deploy_env" => s.deploy_env,
|
||||||
"type" => Report::SERVER_TYPE
|
"type" => Devops::Model::Report::SERVER_TYPE
|
||||||
}
|
}
|
||||||
mongo.save_report(Report.new(o))
|
mongo.save_report(Devops::Model::Report.new(o))
|
||||||
|
|
||||||
status = create_server_proc.call(out, s, provider)
|
status = create_server_proc.call(out, s, provider)
|
||||||
status
|
status
|
||||||
|
|||||||
@ -52,7 +52,7 @@ class Worker
|
|||||||
begin
|
begin
|
||||||
Devops::Db.init
|
Devops::Db.init
|
||||||
unless e_provider.nil?
|
unless e_provider.nil?
|
||||||
::Provider::ProviderFactory.init(config)
|
::Provider::ProviderFactory.init(DevopsConfig.config)
|
||||||
provider = ::Provider::ProviderFactory.get(e_provider)
|
provider = ::Provider::ProviderFactory.get(e_provider)
|
||||||
end
|
end
|
||||||
rescue Exception => e
|
rescue Exception => e
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user