| 
									
										
										
										
											2015-10-22 12:39:22 +03:00
										 |  |  | require "app/api2/parsers/provider" | 
					
						
							| 
									
										
										
										
											2015-07-16 17:18:55 +03:00
										 |  |  | require "providers/provider_factory" | 
					
						
							| 
									
										
										
										
											2015-07-27 15:40:10 +03:00
										 |  |  | require_relative "request_handler" | 
					
						
							| 
									
										
										
										
											2015-10-22 12:39:22 +03:00
										 |  |  | require "db/mongo/models/provider_accounts/static_provider_account" | 
					
						
							|  |  |  | require "db/mongo/models/provider_accounts/openstack_provider_account" | 
					
						
							|  |  |  | require "db/mongo/models/provider_accounts/ec2_provider_account" | 
					
						
							| 
									
										
										
										
											2015-07-16 17:18:55 +03:00
										 |  |  | 
 | 
					
						
							|  |  |  | module Devops | 
					
						
							|  |  |  |   module API2_0 | 
					
						
							|  |  |  |     module Handler | 
					
						
							| 
									
										
										
										
											2015-07-27 15:40:10 +03:00
										 |  |  |       class Provider < RequestHandler | 
					
						
							| 
									
										
										
										
											2015-07-16 17:18:55 +03:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-10-26 12:04:01 +03:00
										 |  |  |         set_parser Devops::API2_0::Parser::ProviderParser | 
					
						
							| 
									
										
										
										
											2015-10-22 12:39:22 +03:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-07-16 17:18:55 +03:00
										 |  |  |         def providers | 
					
						
							|  |  |  |           ::Provider::ProviderFactory.providers | 
					
						
							|  |  |  |         end | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-10-22 12:39:22 +03:00
										 |  |  |         def accounts provider | 
					
						
							| 
									
										
										
										
											2015-11-02 17:33:25 +03:00
										 |  |  |           ::Provider::ProviderFactory.get_accounts_factory(provider).accounts | 
					
						
							| 
									
										
										
										
											2015-10-22 12:39:22 +03:00
										 |  |  |         end | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-11-02 11:42:20 +03:00
										 |  |  |         def account_fields provider | 
					
						
							|  |  |  |           ::Provider::ProviderFactory.get_account_class(provider).account_fields | 
					
						
							|  |  |  |         end | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-10-22 12:39:22 +03:00
										 |  |  |         def add_account provider | 
					
						
							| 
									
										
										
										
											2015-11-02 17:33:25 +03:00
										 |  |  |           account = ::Provider::ProviderFactory.get_accounts_factory(provider).create_account(parser.account) | 
					
						
							|  |  |  |           account.validate_fields! | 
					
						
							| 
									
										
										
										
											2015-12-10 17:47:36 +03:00
										 |  |  |           Devops::Db.connector.provider_account_insert(account) | 
					
						
							| 
									
										
										
										
											2015-10-28 17:27:02 +03:00
										 |  |  |           ::Provider::ProviderFactory.add_account(provider, account) | 
					
						
							| 
									
										
										
										
											2015-10-27 13:45:25 +03:00
										 |  |  |           account.to_hash | 
					
						
							| 
									
										
										
										
											2015-10-22 12:39:22 +03:00
										 |  |  |         end | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |         def delete_account name, provider | 
					
						
							| 
									
										
										
										
											2015-11-17 12:14:02 +03:00
										 |  |  |           account = Devops::Db.connector.provider_account(provider, name) | 
					
						
							| 
									
										
										
										
											2015-12-10 17:47:36 +03:00
										 |  |  |           Devops::Db.connector.provider_account_delete(name) | 
					
						
							| 
									
										
										
										
											2015-11-02 17:33:25 +03:00
										 |  |  |           ::Provider::ProviderFactory.delete_account(provider, account) | 
					
						
							| 
									
										
										
										
											2015-10-27 13:45:25 +03:00
										 |  |  |           account.to_hash | 
					
						
							| 
									
										
										
										
											2015-10-22 12:39:22 +03:00
										 |  |  |         end | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-11-17 12:14:02 +03:00
										 |  |  |         def account_vpcs provider, name | 
					
						
							|  |  |  |           Devops::Db.connector.provider_account(provider, name) | 
					
						
							|  |  |  |           ::Provider::ProviderFactory.get(provider, name).describe_vpcs | 
					
						
							|  |  |  |         end | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-07-16 17:18:55 +03:00
										 |  |  |       end | 
					
						
							|  |  |  |     end | 
					
						
							|  |  |  |   end | 
					
						
							|  |  |  | end |