40 lines
		
	
	
		
			906 B
		
	
	
	
		
			Ruby
		
	
	
	
	
	
			
		
		
	
	
			40 lines
		
	
	
		
			906 B
		
	
	
	
		
			Ruby
		
	
	
	
	
	
| require "db/mongo/models/mongo_model"
 | |
| require "db/exceptions/invalid_record"
 | |
| require "commands/deploy_env"
 | |
| 
 | |
| class DeployEnvBase < MongoModel
 | |
| 
 | |
|   include DeployEnvCommands
 | |
| 
 | |
|   attr_accessor :identifier, :run_list, :expires, :provider, :users
 | |
| 
 | |
|   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 validate!
 | |
|     super
 | |
|     Validators::DeployEnv::RunList.new(self).validate!
 | |
|     Validators::DeployEnv::Expiration.new(self).validate!
 | |
| 
 | |
|     check_users!(self.users)
 | |
|   end
 | |
| 
 | |
|   def to_hash
 | |
|     {
 | |
|       "identifier" => self.identifier,
 | |
|       "run_list" => self.run_list,
 | |
|       "expires" => self.expires,
 | |
|       "provider" => self.provider,
 | |
|       "users" => self.users
 | |
|     }
 | |
|   end
 | |
| 
 | |
| end
 | 
