From 684a48f6dd670c5fd7b3a9c86298ae2a1630e34a Mon Sep 17 00:00:00 2001 From: amartynov Date: Tue, 22 Sep 2015 14:30:52 +0300 Subject: [PATCH] some fixes to create project --- devops-service/app/api2/handlers/project.rb | 4 +++- devops-service/app/api2/parsers/project.rb | 4 +--- devops-service/core/devops-messages.rb | 2 +- devops-service/db/mongo/models/deploy_env/deploy_env_base.rb | 4 ++++ devops-service/db/mongo/models/project.rb | 4 ++-- devops-service/db/mongo/mongo_connector.rb | 3 ++- 6 files changed, 13 insertions(+), 8 deletions(-) diff --git a/devops-service/app/api2/handlers/project.rb b/devops-service/app/api2/handlers/project.rb index 3bd24a8..cad9a1f 100644 --- a/devops-service/app/api2/handlers/project.rb +++ b/devops-service/app/api2/handlers/project.rb @@ -57,7 +57,9 @@ module Devops p = parser.create_project raise InvalidRecord.new("Project '#{p.id}' already exist") if Devops::Db.connector.is_project_exists?(p) - p.add_authorized_user [parser.current_user] + p.deploy_envs.each do |env| + env.add_users [parser.current_user] + end p.create if p.multi? "Project '#{p.id}' with type 'multi' created" diff --git a/devops-service/app/api2/parsers/project.rb b/devops-service/app/api2/parsers/project.rb index c82d934..4602642 100644 --- a/devops-service/app/api2/parsers/project.rb +++ b/devops-service/app/api2/parsers/project.rb @@ -34,7 +34,7 @@ module Devops body = create_object_from_json_body check_string(body["name"], "Parameter 'name' must be a not empty string") check_array(body["deploy_envs"], "Parameter 'deploy_envs' must be a not empty array of objects", Hash) - rl = check_array(body["run_list"], "Parameter 'run_list' should be an array of string", String, true) + rl = check_array(body["run_list"], "Parameter 'run_list' should be an array of string", String, true, true) Validators::Helpers::RunList.new(rl).validate! unless rl.nil? Devops::Model::Project.new(body) end @@ -53,10 +53,8 @@ module Devops def update body = create_object_from_json_body 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) rl = 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 diff --git a/devops-service/core/devops-messages.rb b/devops-service/core/devops-messages.rb index 4808fe5..b96c395 100644 --- a/devops-service/core/devops-messages.rb +++ b/devops-service/core/devops-messages.rb @@ -30,7 +30,7 @@ module Devops raise "Invalid message value with key '#{key}', it must be a string" unless msg.is_a?(String) unless msg.nil? params.each do |k, v| - msg = msg.gsub('%{#{k}}', v) + msg = msg.gsub("%{#{k}}", v) end end msg diff --git a/devops-service/db/mongo/models/deploy_env/deploy_env_base.rb b/devops-service/db/mongo/models/deploy_env/deploy_env_base.rb index 8f02d50..5fecd43 100644 --- a/devops-service/db/mongo/models/deploy_env/deploy_env_base.rb +++ b/devops-service/db/mongo/models/deploy_env/deploy_env_base.rb @@ -37,6 +37,10 @@ module Devops } end + def add_users users + self.users = (self.users + users).uniq + end + def build_error_message(message) "Deploy environment '#{self.identifier}'. " + message end diff --git a/devops-service/db/mongo/models/project.rb b/devops-service/db/mongo/models/project.rb index c934d56..47cc179 100644 --- a/devops-service/db/mongo/models/project.rb +++ b/devops-service/db/mongo/models/project.rb @@ -72,13 +72,13 @@ module Devops if env.nil? self.deploy_envs.each do |e| return unless e.users.is_a?(Array) - e.users = (e.users + new_users).uniq + e.add_users new_users Devops::Db.connector.set_project_deploy_env_field(self.id, e.identifier, "users", e.users) end else e = self.deploy_env(env) return unless e.users.is_a?(Array) - e.users = (e.users + new_users).uniq + e.add_users new_users Devops::Db.connector.set_project_deploy_env_field(self.id, e.identifier, "users", e.users) end end diff --git a/devops-service/db/mongo/mongo_connector.rb b/devops-service/db/mongo/mongo_connector.rb index 75bb8a1..ca7ed71 100644 --- a/devops-service/db/mongo/mongo_connector.rb +++ b/devops-service/db/mongo/mongo_connector.rb @@ -21,7 +21,8 @@ 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_deploy_env_field, :set_project_env_run_list, :add_deploy_env_to_project, :remove_deploy_env_from_project, :project_update_field] => :projects_connector, + :project_delete, :is_project_exists?, :check_project_auth, :set_project_run_list, :set_project_deploy_env_field, :set_project_env_run_list, :add_deploy_env_to_project, :remove_deploy_env_from_project, :project_update_field, + :archive_project, :unarchive_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,