patch method to add environment to project
This commit is contained in:
parent
e24aa8765b
commit
3fcc4f16d1
@ -30,7 +30,6 @@ module Devops
|
||||
end
|
||||
|
||||
def project_servers id
|
||||
# check if project exists
|
||||
Devops::Db.connector.project(id)
|
||||
Devops::Db.connector.servers(id, parser.project_servers)
|
||||
end
|
||||
@ -44,7 +43,6 @@ module Devops
|
||||
Devops::Db.connector.stacks(options)
|
||||
end
|
||||
|
||||
# TODO: multi project
|
||||
def create_project
|
||||
p = parser.create_project
|
||||
raise InvalidRecord.new("Project '#{p.id}' already exist") if Devops::Db.connector.is_project_exists?(p)
|
||||
@ -59,7 +57,13 @@ module Devops
|
||||
end
|
||||
end
|
||||
|
||||
# TODO: multi project
|
||||
def add_deploy_env_to_project id
|
||||
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}'"
|
||||
end
|
||||
|
||||
def update_project id
|
||||
project = parser.update
|
||||
project.id = id
|
||||
|
||||
@ -38,6 +38,11 @@ module Devops
|
||||
Devops::Model::Project.new(body)
|
||||
end
|
||||
|
||||
def add_deploy_env_to_project
|
||||
body = create_object_from_json_body
|
||||
Devops::Model::DeployEnvFactory.create(body)
|
||||
end
|
||||
|
||||
def update
|
||||
body = create_object_from_json_body
|
||||
check_array(body["deploy_envs"], "Parameter 'deploy_envs' must be a not empty array of objects", Hash)
|
||||
|
||||
@ -249,6 +249,44 @@ module Devops
|
||||
end
|
||||
end
|
||||
|
||||
# Add new deploy_env to project
|
||||
#
|
||||
# * *Request*
|
||||
# - method : PATCH
|
||||
# - headers :
|
||||
# - Accept: application/json
|
||||
# - Content-Type: application/json
|
||||
# - body :
|
||||
# {
|
||||
# "identifier": "prod",
|
||||
# "provider": "openstack",
|
||||
# "flavor": "m1.small",
|
||||
# "image": "image id",
|
||||
# "subnets": [
|
||||
# "private"
|
||||
# ],
|
||||
# "groups": [
|
||||
# "default"
|
||||
# ],
|
||||
# "users": [
|
||||
# "user"
|
||||
# ],
|
||||
# "run_list": [ ],
|
||||
# "expires": null
|
||||
# }
|
||||
#
|
||||
# * *Returns* :
|
||||
# 200 - Created
|
||||
app.patch_with_headers "/project/:id/deploy_env", :headers => [:accept, :content_type] do |id|
|
||||
check_privileges("project", "w")
|
||||
begin
|
||||
res = Devops::API2_0::Handler::Project.new(request).add_deploy_env_to_project(id)
|
||||
create_response(res, nil, 200)
|
||||
rescue InvalidRecord => e
|
||||
halt_response(e.message)
|
||||
end
|
||||
end
|
||||
|
||||
users_hash = {}
|
||||
# Add users to project environment
|
||||
#
|
||||
|
||||
@ -103,6 +103,11 @@ module Connectors
|
||||
@collection.update({"_id" => project_id}, {"$set" => {run_list: run_list}})
|
||||
end
|
||||
|
||||
def add_deploy_env_to_project id, env
|
||||
env.validate!
|
||||
@collection.update({"_id" => id}, {'$push' => {deploy_envs: env.to_hash} })
|
||||
end
|
||||
|
||||
private
|
||||
|
||||
def list(query={}, query_options={})
|
||||
|
||||
@ -62,6 +62,10 @@ module Devops
|
||||
de
|
||||
end
|
||||
|
||||
def add_deploy_env deploy_env
|
||||
Devops::Db.connector.add_deploy_env_to_project self.id, deploy_env
|
||||
end
|
||||
|
||||
def add_authorized_user user, env=nil
|
||||
return if user.nil?
|
||||
new_users = ( user.is_a?(Array) ? user : [ user ] )
|
||||
|
||||
Loading…
Reference in New Issue
Block a user