40 lines
		
	
	
		
			869 B
		
	
	
	
		
			Ruby
		
	
	
	
	
	
			
		
		
	
	
			40 lines
		
	
	
		
			869 B
		
	
	
	
		
			Ruby
		
	
	
	
	
	
| module Connectors
 | |
|   class Stack < Base
 | |
|     include Helpers::InsertCommand,
 | |
| #      Helpers::ShowCommand,
 | |
|       Helpers::ListCommand,
 | |
|       Helpers::DeleteCommand,
 | |
|       Helpers::UpdateCommand
 | |
| 
 | |
|     def initialize(db)
 | |
|       super(db)
 | |
|     end
 | |
| 
 | |
|     def collection_name
 | |
|       'stacks'
 | |
|     end
 | |
| 
 | |
|     def stacks(options={})
 | |
|       list(options)
 | |
|     end
 | |
| 
 | |
|     def set_stack_run_list id, run_list
 | |
|       collection.update({"_id" => id}, {"$set" => {"run_list" => run_list}})
 | |
|     end
 | |
| 
 | |
|     def stack(name, options={})
 | |
|       query = {'name' => name}.merge(options)
 | |
|       bson = collection.find(query).to_a.first
 | |
|       raise RecordNotFound.new("'#{name}' not found") unless bson
 | |
|       model_from_bson(bson)
 | |
|     end
 | |
| 
 | |
|     private
 | |
| 
 | |
|     def model_from_bson(bson)
 | |
|       provider = bson['provider']
 | |
|       Devops::Model::StackFactory.get_class(provider).build_from_bson(bson)
 | |
|     end
 | |
|   end
 | |
| end
 | 
