| 
									
										
										
										
											2015-10-22 12:39:22 +03:00
										 |  |  | require "db/mongo/models/provider_accounts/provider_account" | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | module Devops | 
					
						
							|  |  |  |   module Model | 
					
						
							|  |  |  |     class Ec2ProviderAccount < ProviderAccount | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-10-26 17:14:48 +03:00
										 |  |  |       attr_accessor :access_key_id, :availability_zone, :secret_access_key | 
					
						
							| 
									
										
										
										
											2015-10-22 12:39:22 +03:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-11-02 17:33:25 +03:00
										 |  |  |       set_field_validators :access_key_id, ::Validators::FieldValidator::NotNil, | 
					
						
							|  |  |  |                                            ::Validators::FieldValidator::FieldType::String, | 
					
						
							|  |  |  |                                            ::Validators::FieldValidator::NotEmpty | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |       set_field_validators :secret_access_key, ::Validators::FieldValidator::NotNil, | 
					
						
							|  |  |  |                                                ::Validators::FieldValidator::FieldType::String, | 
					
						
							|  |  |  |                                                ::Validators::FieldValidator::NotEmpty | 
					
						
							| 
									
										
										
										
											2015-10-22 12:39:22 +03:00
										 |  |  |       def initialize a={} | 
					
						
							|  |  |  |         super(a) | 
					
						
							| 
									
										
										
										
											2015-10-26 12:04:01 +03:00
										 |  |  |         self.provider = Provider::Ec2::PROVIDER | 
					
						
							| 
									
										
										
										
											2015-10-22 12:39:22 +03:00
										 |  |  |         self.availability_zone = a["availability_zone"] | 
					
						
							|  |  |  |         self.access_key_id = a["access_key_id"] | 
					
						
							| 
									
										
										
										
											2015-10-26 17:14:48 +03:00
										 |  |  |         self.secret_access_key = a["secret_access_key"] | 
					
						
							| 
									
										
										
										
											2015-10-22 12:39:22 +03:00
										 |  |  |       end | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |       def to_list_hash | 
					
						
							|  |  |  |         s = super | 
					
						
							|  |  |  |         s["availability_zone"] = self.availability_zone | 
					
						
							| 
									
										
										
										
											2015-10-26 17:14:48 +03:00
										 |  |  |         s["access_key_id"] = self.access_key_id | 
					
						
							| 
									
										
										
										
											2015-10-26 12:04:01 +03:00
										 |  |  |         s | 
					
						
							| 
									
										
										
										
											2015-10-22 12:39:22 +03:00
										 |  |  |       end | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |       def to_mongo_hash | 
					
						
							|  |  |  |         s = super | 
					
						
							|  |  |  |         s["availability_zone"] = self.availability_zone | 
					
						
							|  |  |  |         s["access_key_id"] = self.access_key_id | 
					
						
							| 
									
										
										
										
											2015-10-26 17:14:48 +03:00
										 |  |  |         s["secret_access_key"] = self.secret_access_key | 
					
						
							| 
									
										
										
										
											2015-10-26 12:04:01 +03:00
										 |  |  |         s | 
					
						
							| 
									
										
										
										
											2015-10-22 12:39:22 +03:00
										 |  |  |       end | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |       def self.build_from_bson a | 
					
						
							|  |  |  |         a["account_name"] = a["_id"] | 
					
						
							|  |  |  |         Ec2ProviderAccount.new a | 
					
						
							|  |  |  |       end | 
					
						
							| 
									
										
										
										
											2015-10-26 12:04:01 +03:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-11-02 11:42:20 +03:00
										 |  |  |       def self.account_fields | 
					
						
							|  |  |  |         { | 
					
						
							|  |  |  |           access_key_id: "AWS account access key", | 
					
						
							|  |  |  |           secret_access_key: "AWS account secret key", | 
					
						
							|  |  |  |           availability_zone: "Availability zone, todo: remove field?" | 
					
						
							|  |  |  |         }.merge(ProviderAccount::ACCOUNT_FIELDS) | 
					
						
							|  |  |  |       end | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-10-26 12:04:01 +03:00
										 |  |  |       # TODO: remove | 
					
						
							|  |  |  |       def validate_fields_types | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |       end | 
					
						
							| 
									
										
										
										
											2015-10-22 12:39:22 +03:00
										 |  |  |     end | 
					
						
							|  |  |  |   end | 
					
						
							|  |  |  | end | 
					
						
							|  |  |  | 
 |