| 
									
										
										
										
											2015-02-12 13:01:05 +03:00
										 |  |  | require_relative "stack_base" | 
					
						
							|  |  |  | require_relative "stack_openstack" | 
					
						
							|  |  |  | require_relative "stack_ec2" | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-03-06 12:20:30 +03:00
										 |  |  | module Devops | 
					
						
							|  |  |  |   module Model | 
					
						
							|  |  |  |     class StackFactory | 
					
						
							| 
									
										
										
										
											2015-02-12 13:01:05 +03:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-03-06 12:20:30 +03:00
										 |  |  |       def self.create(provider, attrs) | 
					
						
							|  |  |  |         get_class(provider).create(attrs) | 
					
						
							|  |  |  |       end | 
					
						
							| 
									
										
										
										
											2015-02-12 13:01:05 +03:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-03-06 12:20:30 +03:00
										 |  |  |       def self.build_from_bson(provider, attrs) | 
					
						
							|  |  |  |         get_class(provider).build_from_bson(attrs) | 
					
						
							|  |  |  |       end | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |       def self.get_class(provider) | 
					
						
							|  |  |  |         case provider | 
					
						
							| 
									
										
										
										
											2015-04-16 17:54:40 +03:00
										 |  |  |           when ::Provider::Openstack::PROVIDER | 
					
						
							|  |  |  |             StackOpenstack | 
					
						
							|  |  |  |           when ::Provider::Ec2::PROVIDER | 
					
						
							|  |  |  |             StackEc2 | 
					
						
							|  |  |  |           else | 
					
						
							|  |  |  |             raise InvalidRecord.new "Invalid provider: '#{provider}'" | 
					
						
							| 
									
										
										
										
											2015-03-06 12:20:30 +03:00
										 |  |  |         end | 
					
						
							|  |  |  |       end | 
					
						
							| 
									
										
										
										
											2015-02-12 13:01:05 +03:00
										 |  |  | 
 | 
					
						
							|  |  |  |     end | 
					
						
							|  |  |  |   end | 
					
						
							|  |  |  | end |