| 
									
										
										
										
											2015-08-05 14:05:14 +03:00
										 |  |  | require "providers/provider_factory" | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | module Devops | 
					
						
							|  |  |  |   module Model | 
					
						
							|  |  |  |     module ModelWithProvider | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-11-19 14:09:38 +03:00
										 |  |  | #      attr_accessor :provider, :provider_account | 
					
						
							| 
									
										
										
										
											2015-08-05 14:05:14 +03:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-10-06 13:50:26 +03:00
										 |  |  |       def ModelWithProvider.included(mod) | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-11-19 14:09:38 +03:00
										 |  |  |         mod.set_field_validators :provider, [::Validators::FieldValidator::NotNil, | 
					
						
							| 
									
										
										
										
											2015-10-06 13:50:26 +03:00
										 |  |  |                                             ::Validators::FieldValidator::FieldType::String, | 
					
						
							|  |  |  |                                             ::Validators::FieldValidator::NotEmpty, | 
					
						
							| 
									
										
										
										
											2015-11-19 14:09:38 +03:00
										 |  |  |                                             ::Validators::FieldValidator::Provider] | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |         mod.set_field_validators :provider_account, [::Validators::FieldValidator::Nil, | 
					
						
							|  |  |  |                                                      ::Validators::FieldValidator::FieldType::String, | 
					
						
							|  |  |  |                                                      ::Validators::FieldValidator::NotEmpty, | 
					
						
							|  |  |  |                                                      ::Validators::FieldValidator::ProviderAccount], order: 1
 | 
					
						
							| 
									
										
										
										
											2015-10-06 13:50:26 +03:00
										 |  |  |       end | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-08-05 14:05:14 +03:00
										 |  |  |       def provider_instance | 
					
						
							| 
									
										
										
										
											2015-10-27 12:01:21 +03:00
										 |  |  |         @provider_instance ||= Provider::ProviderFactory.get(self.provider, self.provider_account) | 
					
						
							| 
									
										
										
										
											2015-08-05 14:05:14 +03:00
										 |  |  |       end | 
					
						
							| 
									
										
										
										
											2015-10-27 12:01:21 +03:00
										 |  |  | 
 | 
					
						
							|  |  |  |       def set_provider hash | 
					
						
							|  |  |  |         self.provider = hash["provider"] | 
					
						
							|  |  |  |         self.provider_account = hash["provider_account"] | 
					
						
							|  |  |  |       end | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |       def provider_hash | 
					
						
							|  |  |  |         { | 
					
						
							|  |  |  |           "provider" => self.provider, | 
					
						
							|  |  |  |           "provider_account" => self.provider_account | 
					
						
							|  |  |  |         } | 
					
						
							|  |  |  |       end | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-08-05 14:05:14 +03:00
										 |  |  |     end | 
					
						
							|  |  |  |   end | 
					
						
							|  |  |  | end | 
					
						
							|  |  |  | 
 |