#688: done
This commit is contained in:
parent
4bf2bc0c3c
commit
8da62ce02a
@ -98,13 +98,17 @@ module Devops
|
||||
end
|
||||
end
|
||||
|
||||
def delete_deploy_env id, deploy_env
|
||||
project = Devops::Db.connector.project(id)
|
||||
servers = Devops::Db.connector.servers_by_project_and_deploy_env(id, deploy_env)
|
||||
raise InvalidRecord.new("Can not delete environment '#{deploy_env}', there are #{servers.size} servers on it") unless servers.empty?
|
||||
project.delete_deploy_env(deploy_env)
|
||||
end
|
||||
|
||||
def update_project id
|
||||
project = parser.update
|
||||
project.id = id
|
||||
body = parser.update
|
||||
old_project = Devops::Db.connector.project id
|
||||
Devops::Db.connector.project_update project
|
||||
# roles = create_new_roles(old_project, project)
|
||||
# create_roles_response(roles)
|
||||
Devops::Db.connector.project_update id, body
|
||||
end
|
||||
|
||||
# TODO: multi project
|
||||
|
||||
@ -52,9 +52,14 @@ module Devops
|
||||
|
||||
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)
|
||||
# check_array(body["run_list"], "Parameter 'run_list' must be a not empty array of string", String, false, true)
|
||||
Devops::Model::Project.new(body)
|
||||
check_string(body["name"], "Parameter 'name' must be a not empty string", true, false)
|
||||
check_string(body["description"], "Parameter 'description' must be a string", true, true)
|
||||
#check_array(body["deploy_envs"], "Parameter 'deploy_envs' must be a not empty array of objects", Hash)
|
||||
check_array(body["run_list"], "Parameter 'run_list' must be an array of string", String, true, true)
|
||||
Validators::Helpers::RunList.new(rl).validate! unless rl.nil?
|
||||
#raise InvalidRecord.new("'components' key not found") if c["components"].nil?
|
||||
#Devops::Model::Project.new(body)
|
||||
body
|
||||
end
|
||||
|
||||
def delete
|
||||
|
||||
@ -77,7 +77,7 @@ module Devops
|
||||
json Devops::API2_0::Handler::Project.new(request).project(project)
|
||||
}
|
||||
|
||||
# Update project and create chef roles
|
||||
# Update project
|
||||
#
|
||||
# * *Request*
|
||||
# - method : PUT
|
||||
@ -115,8 +115,7 @@ module Devops
|
||||
hash["PUT"] = lambda { |project|
|
||||
check_privileges("project", "w")
|
||||
r = Devops::API2_0::Handler::Project.new(request).update_project project
|
||||
info = "Project '#{project}' has been updated."
|
||||
create_response(info)
|
||||
create_response("Project '#{project}' has been updated.")
|
||||
}
|
||||
|
||||
# Delete project
|
||||
@ -212,18 +211,77 @@ module Devops
|
||||
json Devops::API2_0::Handler::Project.new(request).project_deploy_envs(project)
|
||||
end
|
||||
|
||||
deploy_env_hash = {}
|
||||
# Get project deploy environment
|
||||
#
|
||||
# * *Request*
|
||||
# - method : GET
|
||||
# - headers :
|
||||
# - Accept: application/json
|
||||
app.get_with_headers "/project/:project/deploy_envs/:env", :headers => [:accept] do |project, env|
|
||||
deploy_env_hash["GET"] = lambda{|project, env|
|
||||
check_privileges("project", "r")
|
||||
json Devops::API2_0::Handler::Project.new(request).project_deploy_env(project, env)
|
||||
end
|
||||
}
|
||||
|
||||
# Create project and chef roles
|
||||
# Add or update deploy_env
|
||||
#
|
||||
# * *Request*
|
||||
# - method : PUT
|
||||
# - 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 - Updated
|
||||
deploy_env_hash["PUT"] = lambda{|id, deploy_env|
|
||||
check_privileges("project", "w")
|
||||
begin
|
||||
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)
|
||||
end
|
||||
}
|
||||
|
||||
# Delete deploy_env
|
||||
#
|
||||
# * *Request*
|
||||
# - method : DELETE
|
||||
# - headers :
|
||||
# - Accept: application/json
|
||||
#
|
||||
# * *Returns* :
|
||||
# 200 - Deleted
|
||||
deploy_env_hash["DELETE"] = lambda{|id, deploy_env|
|
||||
check_privileges("project", "w")
|
||||
begin
|
||||
res = Devops::API2_0::Handler::Project.new(request).delete_deploy_env(id, deploy_env)
|
||||
create_response(res, nil, 200)
|
||||
rescue InvalidRecord => e
|
||||
halt_response(e.message)
|
||||
end
|
||||
}
|
||||
app.multi_routes "/project/:id/deploy_envs/:deploy_env", {}, deploy_env_hash
|
||||
|
||||
# Create project
|
||||
#
|
||||
# * *Request*
|
||||
# - method : POST
|
||||
@ -269,6 +327,7 @@ module Devops
|
||||
end
|
||||
end
|
||||
|
||||
=begin
|
||||
# Set components to project
|
||||
#
|
||||
# * *Request*
|
||||
@ -290,44 +349,7 @@ module Devops
|
||||
res = Devops::API2_0::Handler::Project.new(request).set_project_components(id)
|
||||
create_response(res)
|
||||
end
|
||||
|
||||
# Add or update deploy_env
|
||||
#
|
||||
# * *Request*
|
||||
# - method : PUT
|
||||
# - 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 - 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_or_update_deploy_env(id, deploy_env)
|
||||
create_response(res, nil, 200)
|
||||
rescue InvalidRecord => e
|
||||
halt_response(e.message)
|
||||
end
|
||||
end
|
||||
=end
|
||||
|
||||
users_hash = {}
|
||||
# Add users to project environment
|
||||
@ -484,7 +506,7 @@ module Devops
|
||||
# - delete server
|
||||
#
|
||||
# * *Request*
|
||||
# - method : DELETE
|
||||
# - method : POST
|
||||
# - headers :
|
||||
# - Accept: application/json
|
||||
# - Content-Type: application/json
|
||||
|
||||
@ -3,8 +3,8 @@ module Connectors
|
||||
include Helpers::InsertCommand,
|
||||
Helpers::ShowCommand,
|
||||
# Helpers::ListCommand,
|
||||
Helpers::DeleteCommand,
|
||||
Helpers::UpdateCommand
|
||||
Helpers::DeleteCommand
|
||||
# Helpers::UpdateCommand
|
||||
|
||||
|
||||
def initialize(db)
|
||||
@ -118,6 +118,13 @@ module Connectors
|
||||
@collection.update({"_id" => id}, {'$set' => obj })
|
||||
end
|
||||
|
||||
def project_update id, params
|
||||
raise InvalidRecord.new("You can not change project name for '#{id}'.") if params["name"]
|
||||
keys = %w(run_list description)
|
||||
params.delete_if{|k,v| !keys.include?(k)}
|
||||
@collection.update({"_id" => id}, {'$set' => params })
|
||||
end
|
||||
|
||||
private
|
||||
|
||||
def list(query={}, query_options={})
|
||||
|
||||
Loading…
Reference in New Issue
Block a user