#819: added 'projects' object into response
This commit is contained in:
parent
3a4a9c59da
commit
3d21cbfb41
@ -35,22 +35,29 @@ module Devops
|
||||
if envs_with_this_template.empty?
|
||||
Devops::Db.connector.stack_template_delete id
|
||||
else
|
||||
raise ConflictException.new("Stack template '#{id}' is already in use in #{envs_with_this_template.join(', ')}")
|
||||
raise ConflictException.new("Stack template '#{id}' is already in use in #{envs_with_this_template.map{|project, envs| "#{project}: #{envs.join(', ')}"}.join('; ')}", {projects: envs_with_this_template})
|
||||
end
|
||||
end
|
||||
|
||||
private
|
||||
|
||||
# returns:
|
||||
# {
|
||||
# "project" => ["deploy_env"]
|
||||
# }
|
||||
def envs_using_stack_template(id)
|
||||
projects = Devops::Db.connector.projects_and_deploy_envs_by_field('stack_template', id)
|
||||
envs_with_this_template = []
|
||||
res = {}
|
||||
|
||||
projects.each do |project|
|
||||
array = []
|
||||
res[project] = array
|
||||
project.deploy_envs.each do |env|
|
||||
envs_with_this_template << "#{project.id}-#{env.identifier}"
|
||||
array << env.identifier
|
||||
end
|
||||
end
|
||||
envs_with_this_template
|
||||
res
|
||||
end
|
||||
|
||||
end
|
||||
|
||||
@ -114,7 +114,7 @@ module Devops
|
||||
error ConflictException do
|
||||
e = env["sinatra.error"]
|
||||
logger.warn e.message
|
||||
halt_response(e.message, 409)
|
||||
create_response(e.message, e.object, 409)
|
||||
end
|
||||
|
||||
error InvalidPrivileges do
|
||||
|
||||
@ -1,4 +1,11 @@
|
||||
class ConflictException < StandardError
|
||||
|
||||
attr_reader :object
|
||||
|
||||
def initialize msg, object=nil
|
||||
super(msg)
|
||||
@object = object
|
||||
end
|
||||
|
||||
end
|
||||
|
||||
|
||||
Loading…
Reference in New Issue
Block a user