31 lines
		
	
	
		
			679 B
		
	
	
	
		
			Ruby
		
	
	
	
	
	
			
		
		
	
	
			31 lines
		
	
	
		
			679 B
		
	
	
	
		
			Ruby
		
	
	
	
	
	
| require_relative "stack_base"
 | |
| require_relative "stack_openstack"
 | |
| require_relative "stack_ec2"
 | |
| 
 | |
| module Devops
 | |
|   module Model
 | |
|     class StackFactory
 | |
| 
 | |
|       def self.create(provider, attrs, out)
 | |
|         get_class(provider).create(attrs, out)
 | |
|       end
 | |
| 
 | |
|       def self.build_from_bson(provider, attrs)
 | |
|         get_class(provider).build_from_bson(attrs)
 | |
|       end
 | |
| 
 | |
|       def self.get_class(provider)
 | |
|         case provider
 | |
|           when ::Provider::Openstack::PROVIDER
 | |
|             StackOpenstack
 | |
|           when ::Provider::Ec2::PROVIDER
 | |
|             StackEc2
 | |
|           else
 | |
|             raise InvalidRecord.new "Invalid provider: '#{provider}'"
 | |
|         end
 | |
|       end
 | |
| 
 | |
|     end
 | |
|   end
 | |
| end
 |