diff --git a/devops-service/lib/executors/server_executor.rb b/devops-service/lib/executors/server_executor.rb index 1d57df3..ade9585 100644 --- a/devops-service/lib/executors/server_executor.rb +++ b/devops-service/lib/executors/server_executor.rb @@ -74,8 +74,18 @@ module Devops @server end + def create_server_object options + Devops::Model::Server.new({ + "project" => @project.id, + "deploy_env" => @deploy_env.identifier, + "created_by" => options["created_by"], + "provider" => @deploy_env.provider, + "provider_account" => @deploy_env.provider_account + }) + end + def create_server options - @server = Devops::Model::Server.new({"project" => @project.id, "deploy_env" => @deploy_env.identifier, "created_by" => options["created_by"], "provider" => @deploy_env.provider, "provider_account" => @deploy_env.provider_account}) + @server = create_server_object(options) @server.set_last_operation(Devops::Model::Server::OperationType::CREATION) provider = @deploy_env.provider_instance mongo = ::Devops::Db.connector diff --git a/devops-service/providers/ec2.rb b/devops-service/providers/ec2.rb index 52644f8..6a90bcc 100644 --- a/devops-service/providers/ec2.rb +++ b/devops-service/providers/ec2.rb @@ -152,7 +152,8 @@ module Provider end s.public_ip = details["ipAddress"] s.private_ip = details["privateIpAddress"] - tags = set_server_tags(s) + tags = server_tags(s) + compute.create_tags(s.id, tags) out << "\nServer tags: #{tags.inspect}\n" out << "\nDone\n\n" out << s.info @@ -160,16 +161,14 @@ module Provider true end - def set_server_tags s - tags = { - "Name" => s.chef_node_name, - "cid:project" => s.project, - "cid:deployEnv" => s.deploy_env, - "cid:user" => s.created_by, - "cid:remoteUser" => s.remote_user + def server_tags server + { + "Name" => server.chef_node_name, + "cid:project" => server.project, + "cid:deployEnv" => server.deploy_env, + "cid:user" => server.created_by, + "cid:remoteUser" => server.remote_user } - compute.create_tags(s.id, tags) - tags end def delete_server s @@ -231,18 +230,11 @@ module Provider 'TemplateBody' => stack.template_body, 'Parameters' => stack.parameters || {}, 'Capabilities' => ['CAPABILITY_IAM'], - 'Tags' => { - "StackName" => stack.name, - "StackTemplate" => stack.stack_template, - "cid:project" => stack.project, - "cid:deployEnv" => stack.deploy_env, - "cid:user" => stack.owner - } + 'Tags' => stack_tags(stack) } ) stack.id = response.body['StackId'] out << "Stack id: #{stack.id}\n" - #set_stack_tags(stack, out) out.flush rescue Excon::Errors::Conflict => e raise ProviderErrors::NameConflict @@ -260,20 +252,13 @@ module Provider end end - def set_stack_tags stack, out="" - tags = { -# "cid:remoteUser" => s.remote_user + def stack_tags stack + { + "StackTemplate" => stack.stack_template, + "cid:project" => stack.project, + "cid:deployEnv" => stack.deploy_env, + "cid:user" => stack.owner } - #ids = stack_resources(stack).map {|resource| resource['PhysicalResourceId']} - #ids << stack.id - #compute.create_tags(ids, tags) - stack_resources(stack).each do |resource| - begin - compute.create_tags(resource['PhysicalResourceId'], tags) - rescue Fog::Compute::AWS::Error => e - out << "Error: " + e.message - end - end end def validate_stack_template template