update project components
This commit is contained in:
parent
ed7082596b
commit
feebbd19c7
@ -57,6 +57,15 @@ module Devops
|
||||
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
|
||||
project = Devops::Db.connector.project(id)
|
||||
env = parser.add_or_update_deploy_env
|
||||
|
||||
@ -39,6 +39,12 @@ module Devops
|
||||
Devops::Model::Project.new(body)
|
||||
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
|
||||
body = create_object_from_json_body
|
||||
Devops::Model::DeployEnvFactory.create(body)
|
||||
|
||||
@ -247,6 +247,28 @@ module Devops
|
||||
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
|
||||
#
|
||||
# * *Request*
|
||||
|
||||
@ -112,6 +112,12 @@ module Connectors
|
||||
@collection.update({"_id" => id}, {'$pull' => {deploy_envs: {identifier: env}} })
|
||||
end
|
||||
|
||||
def project_update id, field, value
|
||||
obj = {}
|
||||
obj[field] = value
|
||||
@collection.update({"_id" => id}, {'$set' => obj })
|
||||
end
|
||||
|
||||
private
|
||||
|
||||
def list(query={}, query_options={})
|
||||
|
||||
@ -194,6 +194,14 @@ module Devops
|
||||
Project.new p
|
||||
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
|
||||
|
||||
@ -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, :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_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