2014-05-08 15:34:26 +04:00
|
|
|
require "mongo"
|
2015-02-12 13:01:05 +03:00
|
|
|
require "forwardable"
|
2014-05-08 15:34:26 +04:00
|
|
|
|
2015-02-12 13:01:05 +03:00
|
|
|
require "db/mongo/connectors/base"
|
2015-08-28 14:44:28 +03:00
|
|
|
|
|
|
|
|
helpers_files = File.join(Devops::Application.root, "db/mongo/connectors/helpers/*.rb")
|
|
|
|
|
Dir[helpers_files].each {|file| require file }
|
|
|
|
|
|
|
|
|
|
connectors_files = File.join(Devops::Application.root, "db/mongo/connectors/*.rb")
|
|
|
|
|
Dir[connectors_files].each {|file| require file }
|
2014-05-08 15:34:26 +04:00
|
|
|
|
|
|
|
|
include Mongo
|
|
|
|
|
|
|
|
|
|
class MongoConnector
|
2015-02-12 13:01:05 +03:00
|
|
|
extend Forwardable
|
|
|
|
|
|
|
|
|
|
delegate(
|
2015-07-15 16:25:06 +03:00
|
|
|
[:stack_templates, :stack_template, :stack_template_insert, :stack_template_delete, :stack_template_update] => :stack_templates_connector,
|
2016-04-04 13:17:07 +03:00
|
|
|
[:stacks, :stack, :stack_insert, :stack_delete, :stack_update, :set_stack_run_list,
|
2018-04-04 22:44:39 +03:00
|
|
|
:stack_by_id, :lock_persisting_stack, :unlock_persisting_stack] => :stacks_connector,
|
2015-07-10 15:00:13 +03:00
|
|
|
[:project_templates, :project_template_insert, :project_template_update,
|
|
|
|
|
:project_template_delete] => :projects_templates_connector,
|
2015-08-05 15:06:18 +03:00
|
|
|
[:servers_find, :servers, :stack_servers, :servers_by_names, :server_by_instance_id,
|
2015-02-12 13:01:05 +03:00
|
|
|
:server_by_chef_node_name, :servers_by_key, :server_insert,
|
2018-04-04 22:44:39 +03:00
|
|
|
:server_delete, :server_update, :server_set_chef_node_name, :stack_servers_delete, :set_server_run_list, :servers_by_project_and_deploy_env] => :servers_connector,
|
2015-02-12 13:01:05 +03:00
|
|
|
[:user_auth, :user, :users, :users_names, :user_insert, :user_delete,
|
|
|
|
|
:user_update, :create_root_user, :check_user_privileges] => :users_connector,
|
|
|
|
|
[:keys, :key, :key_insert, :key_delete] => :keys_connector,
|
2015-10-22 12:39:22 +03:00
|
|
|
[:insert_statistic, :search_statistic] => :statistics_connector,
|
2015-12-10 17:47:36 +03:00
|
|
|
[:provider_accounts, :provider_account_insert, :provider_account_delete, :provider_account] => :provider_accounts_connector
|
2015-02-12 13:01:05 +03:00
|
|
|
)
|
2014-05-08 15:34:26 +04:00
|
|
|
|
|
|
|
|
def initialize(db, host, port=27017, user=nil, password=nil)
|
2015-02-12 13:01:05 +03:00
|
|
|
@db = MongoClient.new(host, port).db(db)
|
2014-05-08 15:34:26 +04:00
|
|
|
@db.authenticate(user, password) unless user.nil? or password.nil?
|
|
|
|
|
end
|
|
|
|
|
|
2015-02-12 13:01:05 +03:00
|
|
|
private
|
2014-05-08 15:34:26 +04:00
|
|
|
|
2015-10-22 12:39:22 +03:00
|
|
|
def provider_accounts_connector
|
2015-12-10 17:47:36 +03:00
|
|
|
@provider_accounts_connector ||= Connectors::ProviderAccount.new(@db)
|
2015-10-22 12:39:22 +03:00
|
|
|
end
|
|
|
|
|
|
2015-02-12 13:01:05 +03:00
|
|
|
def stack_templates_connector
|
|
|
|
|
@stack_templates_connector ||= Connectors::StackTemplate.new(@db)
|
2014-05-08 15:34:26 +04:00
|
|
|
end
|
|
|
|
|
|
2015-02-12 13:01:05 +03:00
|
|
|
def stacks_connector
|
|
|
|
|
@stack_connector ||= Connectors::Stack.new(@db)
|
2014-05-08 15:34:26 +04:00
|
|
|
end
|
|
|
|
|
|
2015-06-30 16:06:48 +03:00
|
|
|
def projects_templates_connector
|
2015-09-24 15:37:11 +03:00
|
|
|
@projects_templates_connector ||= Connectors::ProjectTemplates.new(@db)
|
2015-06-30 16:06:48 +03:00
|
|
|
end
|
|
|
|
|
|
2015-02-12 13:01:05 +03:00
|
|
|
def servers_connector
|
|
|
|
|
@servers_connector ||= Connectors::Server.new(@db)
|
2014-11-17 14:23:59 +03:00
|
|
|
end
|
|
|
|
|
|
2014-05-08 15:34:26 +04:00
|
|
|
end
|