55 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			Ruby
		
	
	
	
	
	
			
		
		
	
	
			55 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			Ruby
		
	
	
	
	
	
| require "db/mongo/models/mongo_model"
 | |
| require "providers/provider_factory"
 | |
| require "db/mongo/models/model_with_provider"
 | |
| 
 | |
| module Devops
 | |
|   module Model
 | |
|     class DeployEnvBase < MongoModel
 | |
| 
 | |
|       include ModelWithProvider
 | |
| 
 | |
|       attr_accessor :identifier, :run_list, :expires, :users, :chef_env
 | |
| 
 | |
|       def initialize d={}
 | |
|         self.identifier = d["identifier"]
 | |
|         b = d["run_list"] || []
 | |
|         self.run_list = (b.is_a?(Array) ? b.uniq : b)
 | |
|         self.expires = d["expires"]
 | |
|         self.provider = d["provider"]
 | |
|         b = d["users"] || []
 | |
|         self.users = (b.is_a?(Array) ? b.uniq : b)
 | |
|       end
 | |
| 
 | |
|       def to_hash
 | |
|         {
 | |
|           "identifier" => self.identifier,
 | |
|           "run_list" => self.run_list,
 | |
|           "expires" => self.expires,
 | |
|           "provider" => self.provider,
 | |
|           "users" => self.users
 | |
|         }
 | |
|       end
 | |
| 
 | |
|       def build_error_message(message)
 | |
|         "Deploy environment '#{self.identifier}'. " + message
 | |
|       end
 | |
| 
 | |
|       # class methods
 | |
|       class << self
 | |
| 
 | |
|         def validators
 | |
|           @validators
 | |
|         end
 | |
| 
 | |
|       private
 | |
| 
 | |
|         def set_validators(*validators)
 | |
|           @validators = validators
 | |
|         end
 | |
| 
 | |
|       end
 | |
| 
 | |
|     end
 | |
|   end
 | |
| end
 | 
