#716: new db query
This commit is contained in:
parent
762572553c
commit
df07455d40
@ -41,19 +41,15 @@ module Devops
|
||||
|
||||
private
|
||||
|
||||
#TODO: projects and env should be returned from mongo
|
||||
def envs_using_stack_template(id)
|
||||
projects = Devops::Db.connector.projects_all
|
||||
projects = Devops::Db.connector.projects_and_deploy_envs_by_field('stack_template', id)
|
||||
envs_with_this_template = []
|
||||
|
||||
projects.each do |project|
|
||||
project.deploy_envs.each do |env|
|
||||
next unless env.respond_to?(:stack_template)
|
||||
if env.stack_template == id
|
||||
envs_with_this_template << "#{project.id}-#{env.identifier}"
|
||||
end
|
||||
end
|
||||
end
|
||||
envs_with_this_template
|
||||
end
|
||||
|
||||
|
||||
@ -97,6 +97,13 @@ module Connectors
|
||||
project
|
||||
end
|
||||
|
||||
def projects_and_deploy_envs_by_field field, value
|
||||
q = {}
|
||||
q[field] = value
|
||||
# {find all projects with deploy_envs with field=value}, {return deploy_envs with field=value}
|
||||
list({'deploy_envs' => {'$elemMatch' => q}}, {'deploy_envs' => {'$elemMatch' => q}})
|
||||
end
|
||||
|
||||
def set_project_deploy_env_field(project_id, env, field, value)
|
||||
@collection.update({"_id" => project_id, "deploy_envs.identifier" => env}, {"$set" => {"deploy_envs.$.#{field}" => value}})
|
||||
end
|
||||
|
||||
@ -22,7 +22,7 @@ class MongoConnector
|
||||
[:project, :projects_all, :projects, :project_names_with_envs,
|
||||
:projects_by_image, :projects_by_user, :project_insert, :project_update,
|
||||
:project_delete, :is_project_exists?, :check_project_auth, :set_project_run_list, :set_project_deploy_env_field, :set_project_env_run_list, :add_deploy_env_to_project, :remove_deploy_env_from_project, :project_update_field,
|
||||
:archive_project, :unarchive_project] => :projects_connector,
|
||||
:archive_project, :unarchive_project, :projects_and_deploy_envs_by_field] => :projects_connector,
|
||||
[:project_templates, :project_template_insert, :project_template_update,
|
||||
:project_template_delete] => :projects_templates_connector,
|
||||
[:servers_find, :servers, :stack_servers, :servers_by_names, :server_by_instance_id,
|
||||
@ -67,7 +67,7 @@ class MongoConnector
|
||||
end
|
||||
|
||||
def projects_templates_connector
|
||||
@projects__templates_connector ||= Connectors::ProjectTemplates.new(@db)
|
||||
@projects_templates_connector ||= Connectors::ProjectTemplates.new(@db)
|
||||
end
|
||||
|
||||
def servers_connector
|
||||
|
||||
Loading…
Reference in New Issue
Block a user