From 682428022591166dd09810c8e67443a0268e336f Mon Sep 17 00:00:00 2001 From: Anton Chuchkalov Date: Mon, 31 Aug 2015 14:26:16 +0300 Subject: [PATCH] fix deleting servers after stack deleting --- devops-service/app/api2/handlers/stack.rb | 5 +---- devops-service/providers/openstack.rb | 13 ++++++++++++- devops-service/workers/stack_bootstrap_worker.rb | 4 ++-- 3 files changed, 15 insertions(+), 7 deletions(-) diff --git a/devops-service/app/api2/handlers/stack.rb b/devops-service/app/api2/handlers/stack.rb index 1a2d2b2..0dbc850 100644 --- a/devops-service/app/api2/handlers/stack.rb +++ b/devops-service/app/api2/handlers/stack.rb @@ -39,9 +39,6 @@ module Devops raise InvalidRecord.new("Environment '#{env.identifier}' of project '#{project.id}' has no stack template") if env.stack_template.nil? object["stack_template"] = env.stack_template object["owner"] = parser.current_user -# stack_model = Model::StackFactory.create(env.provider, object) -# stack_model.owner = owner_from_request - #Devops::Db.connector.stack_insert(stack_model) file = JobStarter.start_job(:worker, :stack_bootstrap, provider: env.provider, @@ -59,7 +56,7 @@ module Devops def delete_stack name stack = self.stack(name) stack.delete_stack_in_cloud! - Devops::Db.connector.stack_servers_delete(stack.id) + Devops::Db.connector.stack_servers_delete(stack.name) Devops::Db.connector.stack_delete(stack.id) end diff --git a/devops-service/providers/openstack.rb b/devops-service/providers/openstack.rb index 3a6d161..c9a3d87 100644 --- a/devops-service/providers/openstack.rb +++ b/devops-service/providers/openstack.rb @@ -251,7 +251,18 @@ module Provider end def stack_servers(stack) - stack_resources(stack).map{|r| compute.servers.get(r['physical_resource_id'])} + stack_resources(stack).map do |r| + server = compute.servers.get(r['physical_resource_id']) + net = server.addresses.first + ip = net.last.first['addr'] + { + 'name' => server.name, + 'id' => server.id, + 'key_name' => server.key_name, + 'private_ip' => ip, + 'public_ip' => ip + } + end end private diff --git a/devops-service/workers/stack_bootstrap_worker.rb b/devops-service/workers/stack_bootstrap_worker.rb index 18b266b..5e958a4 100644 --- a/devops-service/workers/stack_bootstrap_worker.rb +++ b/devops-service/workers/stack_bootstrap_worker.rb @@ -50,7 +50,7 @@ class StackBootstrapWorker < Worker project = mongo.project(stack.project) deploy_env = project.deploy_env(stack.deploy_env) - provider.stack_servers(stack).map do |extended_info | + provider.stack_servers(stack).map do |extended_info| server_attrs = { 'provider' => provider.name, 'project' => project.id, @@ -68,7 +68,7 @@ class StackBootstrapWorker < Worker server = ::Devops::Model::Server.new(server_attrs) mongo.server_insert(server) -# server.chef_node_name = provider.create_default_chef_node_name(server) + # server.chef_node_name = provider.create_default_chef_node_name(server) server end end