| 
									
										
										
										
											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( | 
					
						
							|  |  |  |     [: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-22 14:30:52 +03:00
										 |  |  |     :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, | 
					
						
							| 
									
										
										
										
											2015-09-24 15:37:11 +03:00
										 |  |  |     :archive_project, :unarchive_project, :projects_and_deploy_envs_by_field] => :projects_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, | 
					
						
							| 
									
										
										
										
											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, | 
					
						
							| 
									
										
										
										
											2016-02-10 20:39:49 +03:00
										 |  |  |     [:save_report, :report_update, :report, :reports, :set_report_status, :set_report_server_data, :add_report_subreports] => :reports_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-09-15 14:27:06 +03:00
										 |  |  |   def create_indexes | 
					
						
							|  |  |  |     reports_connector.create_indexes | 
					
						
							|  |  |  |   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 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 | 
					
						
							| 
									
										
										
										
											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 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											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 |