update project components
This commit is contained in:
parent
ed7082596b
commit
feebbd19c7
@ -57,6 +57,15 @@ module Devops
|
|||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def set_project_components id
|
||||||
|
body = parser.set_project_components
|
||||||
|
project = BaseRoutes.mongo.project(id)
|
||||||
|
project.components = body["components"]
|
||||||
|
project.validate_components
|
||||||
|
Devops::Db.connector.project_update id, "components", body["components"]
|
||||||
|
"Updated project '#{project.id}' with components '#{body["components"].inspect}'"
|
||||||
|
end
|
||||||
|
|
||||||
def add_or_update_deploy_env id, deploy_env
|
def add_or_update_deploy_env id, deploy_env
|
||||||
project = Devops::Db.connector.project(id)
|
project = Devops::Db.connector.project(id)
|
||||||
env = parser.add_or_update_deploy_env
|
env = parser.add_or_update_deploy_env
|
||||||
|
|||||||
@ -39,6 +39,12 @@ module Devops
|
|||||||
Devops::Model::Project.new(body)
|
Devops::Model::Project.new(body)
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def set_project_components
|
||||||
|
c = create_object_from_json_body(Hash)
|
||||||
|
raise InvalidRecord.new("'components' key not found") if c["components"].nil?
|
||||||
|
c
|
||||||
|
end
|
||||||
|
|
||||||
def add_or_update_deploy_env
|
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)
|
||||||
|
|||||||
@ -247,6 +247,28 @@ module Devops
|
|||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
# Set components to project
|
||||||
|
#
|
||||||
|
# * *Request*
|
||||||
|
# - method : PUT
|
||||||
|
# - headers :
|
||||||
|
# - Accept: application/json
|
||||||
|
# - Content-Type: application/json
|
||||||
|
# - body :
|
||||||
|
# components: {
|
||||||
|
# "some_id": {
|
||||||
|
# "filename" : "some.war"
|
||||||
|
# }
|
||||||
|
# }
|
||||||
|
#
|
||||||
|
# * *Returns* :
|
||||||
|
# 200 - Updated
|
||||||
|
app.patch_with_headers "/project/:id/components", :headers => [:accept, :content_type] do |id|
|
||||||
|
check_privileges("project", "w")
|
||||||
|
res = Devops::API2_0::Handler::Project.new(request).set_project_components(id)
|
||||||
|
create_response(res)
|
||||||
|
end
|
||||||
|
|
||||||
# Add or update deploy_env
|
# Add or update deploy_env
|
||||||
#
|
#
|
||||||
# * *Request*
|
# * *Request*
|
||||||
|
|||||||
@ -112,6 +112,12 @@ module Connectors
|
|||||||
@collection.update({"_id" => id}, {'$pull' => {deploy_envs: {identifier: env}} })
|
@collection.update({"_id" => id}, {'$pull' => {deploy_envs: {identifier: env}} })
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def project_update id, field, value
|
||||||
|
obj = {}
|
||||||
|
obj[field] = value
|
||||||
|
@collection.update({"_id" => id}, {'$set' => obj })
|
||||||
|
end
|
||||||
|
|
||||||
private
|
private
|
||||||
|
|
||||||
def list(query={}, query_options={})
|
def list(query={}, query_options={})
|
||||||
|
|||||||
@ -194,6 +194,14 @@ module Devops
|
|||||||
Project.new p
|
Project.new p
|
||||||
end
|
end
|
||||||
|
|
||||||
|
#TODO: create validator
|
||||||
|
def validate_components
|
||||||
|
raise InvalidRecord.new "Components is not a hash" unless self.components.is_a?(Hash)
|
||||||
|
self.components.each do |id, c|
|
||||||
|
raise InvalidRecord.new "Component '#{id}' has no attribute 'filename'" unless c.key?("filename")
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|||||||
@ -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, :remove_deploy_env_from_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, :project_update] => :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