fluke/devops-service/db/mongo/mongo_connector.rb

88 lines
3.2 KiB
Ruby
Raw Normal View History

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"
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(
[:images, :image, :image_insert, :image_delete, :image_update] => :images_connector,
2015-07-15 16:25:06 +03:00
[:stack_templates, :stack_template, :stack_template_insert, :stack_template_delete, :stack_template_update] => :stack_templates_connector,
2015-08-04 12:36:10 +03:00
[:stacks, :stack, :stack_insert, :stack_delete, :stack_update, :set_stack_run_list] => :stacks_connector,
2015-02-12 13:01:05 +03:00
[:available_images, :add_available_images, :delete_available_images] => :filters_connector,
[:project, :projects_all, :projects, :project_names_with_envs,
:projects_by_image, :projects_by_user, :project_insert, :project_update,
2015-09-14 18:43:03 +03:00
:project_delete, :is_project_exists?, :check_project_auth, :set_project_run_list, :set_project_env_run_list, :add_deploy_env_to_project, :remove_deploy_env_from_project, :project_update_field] => :projects_connector,
[: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,
2015-09-11 16:26:41 +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-08-10 13:47:14 +03:00
[:save_report, :report, :reports, :set_report_status, :set_report_server_data] => :reports_connector,
2015-02-12 13:01:05 +03:00
[:statistic] => :statistics_connector
)
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-02-12 13:01:05 +03:00
def images_connector
@image_connector ||= Connectors::Image.new(@db)
2014-05-08 15:34:26 +04: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-02-12 13:01:05 +03:00
def filters_connector
@filter_connector ||= Connectors::Filter.new(@db)
2014-11-17 14:23:59 +03:00
end
2015-02-12 13:01:05 +03:00
def projects_connector
@projects_connector ||= Connectors::Project.new(@db)
2014-11-17 14:23:59 +03:00
end
2015-06-30 16:06:48 +03:00
def projects_templates_connector
@projects__templates_connector ||= Connectors::ProjectTemplates.new(@db)
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
2015-02-12 13:01:05 +03:00
def users_connector
@users_connector ||= Connectors::User.new(@db)
2014-12-04 13:07:25 +03:00
end
2015-02-12 13:01:05 +03:00
def keys_connector
@keys_connector ||= Connectors::Key.new(@db)
2014-05-08 15:34:26 +04:00
end
2015-02-12 13:01:05 +03:00
def reports_connector
@reports_connector ||= Connectors::Report.new(@db)
2014-05-08 15:34:26 +04:00
end
2015-02-12 13:01:05 +03:00
def statistics_connector
@statistics_connector ||= Connectors::Statistic.new(@db)
2014-05-08 15:34:26 +04:00
end
end