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