This commit is contained in:
amartynov 2015-09-15 17:14:26 +03:00
parent 2305b1f837
commit 844c11ae3f
5 changed files with 80 additions and 4 deletions

View File

@ -210,14 +210,16 @@ module Devops
end
def set_tags node_name
tags = parser.tags
prepare_tags do |id, provider|
provider.set_tags id, parser.tags
provider.set_tags id, tags
end
end
def unset_tags node_name
tags = parser.tags
prepare_tags do |id, provider|
provider.unset_tags id, parser.tags
provider.unset_tags id, tags
end
end

View File

@ -72,6 +72,30 @@ module Devops
Devops::Db.connector.set_stack_run_list(id, parser.run_list)
end
def set_tags id
tags = parser.tags
prepare_tags do |id, provider|
provider.set_tags id, tags
end
end
def unset_tags id
tags = parser.tags
prepare_tags do |id, provider|
provider.unset_tags id, tags
end
end
def prepare_tags node_name
stack = Devops::Db.connector.stack(id)
Devops::Db.connector.check_project_auth stack.project, stack.deploy_env, parser.current_user
stack_servers = Devops::Db.connector.stack_servers(id)
provider = stack.provider_instance
stack_servers.each do |s|
yield s.id, provider
end
end
def deploy id
stack = self.stack(id)
owner = parser.current_user

View File

@ -21,6 +21,16 @@ module Devops
list
end
def tags
@body ||= create_object_from_json_body
raise InvalidRecord.new("Request body should be an object") unless @body.is_a?(Hash)
@body.each do |k, v|
raise InvalidRecord.new("Invalid key '#{k}', it should be a String") unless k.is_a?(String)
raise InvalidRecord.new("Invalid value '#{v}' for key '#{k}', it should be a String") unless v.is_a?(String)
end
@body
end
def deploy
@body ||= create_object_from_json_body
names = check_array(@body["names"], "Parameter 'names' should be a not empty array of strings", String, true)

View File

@ -305,7 +305,7 @@ module Devops
end
hash = {}
# Add devops server tags
# Add instance tags
#
# * *Request*
# - method : PUT
@ -325,7 +325,7 @@ module Devops
create_response("Added")
}
# Delete devops server tags
# Delete instance tags
#
# * *Request*
# - method : DELETE

View File

@ -111,6 +111,46 @@ module Devops
end
end
hash = {}
# Add tags to stack instances
#
# * *Request*
# - method : PUT
# - headers :
# - Content-Type: application/json
# - body :
# {
# "tag name": "tag value"
# }
#
# * *Returns* :
# 200 - Added
hash["PUT"] = lambda {|id|
check_privileges("stack", "w")
Devops::API2_0::Handler::Stack.new(request).set_tags(id)
create_response("Added")
}
# Delete tags from stack instances
#
# * *Request*
# - method : DELETE
# - headers :
# - Content-Type: application/json
# - body :
# {
# "tag name": "tag value"
# }
#
# * *Returns* :
# 200 - Deleted
hash["DELETE"] = lambda {|id|
check_privileges("stack", "w")
Devops::API2_0::Handler::Stack.new(request).unset_tags(id)
create_response("Deleted")
}
app.multi_routes "/stack/:id/tags", {:headers => [:content_type]}, hash
puts "Stack routes initialized"
end