#687: done
This commit is contained in:
parent
c7ea85c84c
commit
e893beaf55
@ -57,12 +57,25 @@ module Devops
|
|||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
def add_deploy_env_to_project id
|
def add_or_update_deploy_env id, deploy_env
|
||||||
project = Devops::Db.connector.project(id)
|
project = Devops::Db.connector.project(id)
|
||||||
env = parser.add_deploy_env_to_project
|
env = parser.add_or_update_deploy_env
|
||||||
|
begin
|
||||||
|
db_env = project.deploy_env(deploy_env)
|
||||||
|
begin
|
||||||
|
project.deploy_env(env.identifier)
|
||||||
|
raise InvalidRecord.new("Can not change environment '#{deploy_env}' to '#{env.identifier}', environment '#{env.identifier}' already exist") unless deploy_env == env.identifier
|
||||||
|
rescue RecordNotFound => e
|
||||||
|
end
|
||||||
|
project.delete_deploy_env(deploy_env)
|
||||||
|
project.add_deploy_env(env)
|
||||||
|
"Deploy environment '#{deploy_env}' has been updated in project '#{project.id}'"
|
||||||
|
rescue RecordNotFound => e
|
||||||
|
env.identifier = deploy_env
|
||||||
project.add_deploy_env env
|
project.add_deploy_env env
|
||||||
"Deploy environment '#{env.identifier}' has been added to project '#{project.id}'"
|
"Deploy environment '#{env.identifier}' has been added to project '#{project.id}'"
|
||||||
end
|
end
|
||||||
|
end
|
||||||
|
|
||||||
def update_project id
|
def update_project id
|
||||||
project = parser.update
|
project = parser.update
|
||||||
@ -119,8 +132,7 @@ module Devops
|
|||||||
project.delete
|
project.delete
|
||||||
"Project '#{id}' is deleted"
|
"Project '#{id}' is deleted"
|
||||||
else
|
else
|
||||||
project.remove_env deploy_env
|
project.delete_deploy_env(deploy_env)
|
||||||
Devops::Db.connector.project_update project
|
|
||||||
"Project '#{id}'. Deploy environment '#{deploy_env}' has been deleted"
|
"Project '#{id}'. Deploy environment '#{deploy_env}' has been deleted"
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
@ -211,6 +223,7 @@ module Devops
|
|||||||
return [uri]
|
return [uri]
|
||||||
end
|
end
|
||||||
|
|
||||||
|
=begin
|
||||||
def create_roles project_id, envs
|
def create_roles project_id, envs
|
||||||
all_roles = KnifeFactory.instance.roles
|
all_roles = KnifeFactory.instance.roles
|
||||||
return " Can't get roles list" if all_roles.nil?
|
return " Can't get roles list" if all_roles.nil?
|
||||||
@ -235,7 +248,7 @@ module Devops
|
|||||||
|
|
||||||
def create_new_roles old_project, new_project
|
def create_new_roles old_project, new_project
|
||||||
old_project.deploy_envs.each do |e|
|
old_project.deploy_envs.each do |e|
|
||||||
new_project.remove_env(e.identifier)
|
new_project.deploy_envs.delete_if {|env| e.identifier == env.identifier}
|
||||||
end
|
end
|
||||||
create_roles new_project.id, new_project.deploy_envs
|
create_roles new_project.id, new_project.deploy_envs
|
||||||
end
|
end
|
||||||
@ -251,6 +264,7 @@ module Devops
|
|||||||
info
|
info
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
=end
|
||||||
|
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|||||||
@ -39,7 +39,7 @@ module Devops
|
|||||||
Devops::Model::Project.new(body)
|
Devops::Model::Project.new(body)
|
||||||
end
|
end
|
||||||
|
|
||||||
def add_deploy_env_to_project
|
def add_or_update_deploy_env
|
||||||
body = create_object_from_json_body
|
body = create_object_from_json_body
|
||||||
Devops::Model::DeployEnvFactory.create(body)
|
Devops::Model::DeployEnvFactory.create(body)
|
||||||
end
|
end
|
||||||
|
|||||||
@ -247,10 +247,10 @@ module Devops
|
|||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
# Add new deploy_env to project
|
# Add or update deploy_env
|
||||||
#
|
#
|
||||||
# * *Request*
|
# * *Request*
|
||||||
# - method : PATCH
|
# - method : PUT
|
||||||
# - headers :
|
# - headers :
|
||||||
# - Accept: application/json
|
# - Accept: application/json
|
||||||
# - Content-Type: application/json
|
# - Content-Type: application/json
|
||||||
@ -274,11 +274,11 @@ module Devops
|
|||||||
# }
|
# }
|
||||||
#
|
#
|
||||||
# * *Returns* :
|
# * *Returns* :
|
||||||
# 200 - Created
|
# 200 - Updated
|
||||||
app.patch_with_headers "/project/:id/deploy_env", :headers => [:accept, :content_type] do |id|
|
app.put_with_headers "/project/:id/:deploy_env", :headers => [:accept, :content_type] do |id, deploy_env|
|
||||||
check_privileges("project", "w")
|
check_privileges("project", "w")
|
||||||
begin
|
begin
|
||||||
res = Devops::API2_0::Handler::Project.new(request).add_deploy_env_to_project(id)
|
res = Devops::API2_0::Handler::Project.new(request).add_or_update_deploy_env(id, deploy_env)
|
||||||
create_response(res, nil, 200)
|
create_response(res, nil, 200)
|
||||||
rescue InvalidRecord => e
|
rescue InvalidRecord => e
|
||||||
halt_response(e.message)
|
halt_response(e.message)
|
||||||
|
|||||||
@ -108,6 +108,10 @@ module Connectors
|
|||||||
@collection.update({"_id" => id}, {'$push' => {deploy_envs: env.to_hash} })
|
@collection.update({"_id" => id}, {'$push' => {deploy_envs: env.to_hash} })
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def remove_deploy_env_from_project id, env
|
||||||
|
@collection.update({"_id" => id}, {'$pull' => {deploy_envs: {identifier: env}} })
|
||||||
|
end
|
||||||
|
|
||||||
private
|
private
|
||||||
|
|
||||||
def list(query={}, query_options={})
|
def list(query={}, query_options={})
|
||||||
|
|||||||
@ -115,14 +115,17 @@ module Devops
|
|||||||
end
|
end
|
||||||
=end
|
=end
|
||||||
|
|
||||||
def remove_env env
|
def delete_deploy_env env
|
||||||
self.deploy_envs.delete_if {|e| e.identifier == env}
|
self.deploy_envs.delete_if {|e| e.identifier == env}
|
||||||
|
Devops::Db.connector.remove_deploy_env_from_project self.id, env
|
||||||
end
|
end
|
||||||
|
|
||||||
|
=begin
|
||||||
def add_env env
|
def add_env env
|
||||||
raise InvalidRecord.new "Deploy environment '#{env.identifier}' for project '#{self.id}' already exist" unless self.deploy_env(env.identifier).nil?
|
raise InvalidRecord.new "Deploy environment '#{env.identifier}' for project '#{self.id}' already exist" unless self.deploy_env(env.identifier).nil?
|
||||||
self.deploy_envs.push env
|
self.deploy_envs.push env
|
||||||
end
|
end
|
||||||
|
=end
|
||||||
|
|
||||||
def to_hash
|
def to_hash
|
||||||
h = self.to_hash_without_id
|
h = self.to_hash_without_id
|
||||||
|
|||||||
@ -21,7 +21,7 @@ class MongoConnector
|
|||||||
[:available_images, :add_available_images, :delete_available_images] => :filters_connector,
|
[:available_images, :add_available_images, :delete_available_images] => :filters_connector,
|
||||||
[:project, :projects_all, :projects, :project_names_with_envs,
|
[:project, :projects_all, :projects, :project_names_with_envs,
|
||||||
:projects_by_image, :projects_by_user, :project_insert, :project_update,
|
:projects_by_image, :projects_by_user, :project_insert, :project_update,
|
||||||
:project_delete, :is_project_exists?, :check_project_auth, :set_project_run_list, :set_project_env_run_list, :add_deploy_env_to_project] => :projects_connector,
|
:project_delete, :is_project_exists?, :check_project_auth, :set_project_run_list, :set_project_env_run_list, :add_deploy_env_to_project, :remove_deploy_env_from_project] => :projects_connector,
|
||||||
[:project_templates, :project_template_insert, :project_template_update,
|
[:project_templates, :project_template_insert, :project_template_update,
|
||||||
:project_template_delete] => :projects_templates_connector,
|
:project_template_delete] => :projects_templates_connector,
|
||||||
[:servers_find, :servers, :stack_servers, :servers_by_names, :server_by_instance_id,
|
[:servers_find, :servers, :stack_servers, :servers_by_names, :server_by_instance_id,
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user