From 89c73ef89576d41741fb43c8675fd564cf223c36 Mon Sep 17 00:00:00 2001 From: Anton Chuchkalov Date: Wed, 30 Mar 2016 14:07:31 +0300 Subject: [PATCH] CID-422: fix env adding and add possibility to set stack_template --- .../handler/deploy_envs/deploy_env_ec2.rb | 9 +++++++++ devops-client/lib/devops-client/handler/project.rb | 12 ++++++++---- devops-client/locales/en.yml | 2 ++ 3 files changed, 19 insertions(+), 4 deletions(-) diff --git a/devops-client/lib/devops-client/handler/deploy_envs/deploy_env_ec2.rb b/devops-client/lib/devops-client/handler/deploy_envs/deploy_env_ec2.rb index 1945f77..7352908 100644 --- a/devops-client/lib/devops-client/handler/deploy_envs/deploy_env_ec2.rb +++ b/devops-client/lib/devops-client/handler/deploy_envs/deploy_env_ec2.rb @@ -16,6 +16,7 @@ class DeployEnvEc2 < DeployEnv def fill obj super(obj) do |o| + set_stack_template(o) set_flavor(o) set_image(o) vpc_id = set_subnets(o) @@ -55,4 +56,12 @@ class DeployEnvEc2 < DeployEnv end end + def set_stack_template(d) + if question(I18n.t("handler.project.question.set_stack_template")) + set_parameter d, :stack_template do + resources_selector.select_available_stack_template(provider: 'ec2') + end + end + end + end diff --git a/devops-client/lib/devops-client/handler/project.rb b/devops-client/lib/devops-client/handler/project.rb index f1657a4..c372e3a 100644 --- a/devops-client/lib/devops-client/handler/project.rb +++ b/devops-client/lib/devops-client/handler/project.rb @@ -305,13 +305,17 @@ protected project = get_project_info_obj(project_name) puts_warn I18n.t("handler.project.exist", :project => project_name) names = project["deploy_envs"].map{|de| de["identifier"]} + new_envs = [] while question(I18n.t("handler.project.question.add_env")) - d = method(env_method_name).call(project_name, providers, names) - project["deploy_envs"].push d + new_envs << method(env_method_name).call(project_name, providers, names) break if self.options[:no_ask] end - puts json = JSON.pretty_generate(project) - update_object_from_json("project", project_name, json) if question(I18n.t("handler.project.question.update")) + puts JSON.pretty_generate(new_envs) + if question(I18n.t("handler.project.question.update_with_new_envs")) + new_envs.each do |env| + post "/project/#{project_name}/deploy_env", env + end + end rescue NotFound => e project = create_project_cmd(project_name, providers, env_method_name) project[:name] = args[2] diff --git a/devops-client/locales/en.yml b/devops-client/locales/en.yml index 2c216c3..0620a69 100644 --- a/devops-client/locales/en.yml +++ b/devops-client/locales/en.yml @@ -73,6 +73,8 @@ en: create: "Create project?" update: "Update project?" add_env: "Add environment?" + update_with_new_envs: "Add these envs to project?" + set_stack_template: "Set stack template?" parameter: run_list: empty: "WARN: run list is empty, continue?"