Module: MarathonDeploy::MarathonDefaults

Defined in:
lib/marathon_deploy/marathon_defaults.rb

Constant Summary collapse

DEPLOYMENT_RECHECK_INTERVAL =
3
DEPLOYMENT_TIMEOUT =
300
HEALTHY_WAIT_TIMEOUT =
300
HEALTHY_WAIT_RECHECK_INTERVAL =
3
PRODUCTION_ENVIRONMENT_NAME =
'PRODUCTION'
DEFAULT_ENVIRONMENT_NAME =
'PREPRODUCTION'
DEFAULT_PREPRODUCTION_MARATHON_ENDPOINTS =
['http://localhost:8080']
DEFAULT_PRODUCTION_MARATHON_ENDPOINTS =
['http://localhost:8080']
DEFAULT_DEPLOYFILE =
'deploy.yml'
DEFAULT_LOGFILE =
false
DEFAULT_LOGLEVEL =
Logger::INFO
MARATHON_APPS_REST_PATH =
'/v2/apps/'
MARATHON_DEPLOYMENT_REST_PATH =
'/v2/deployments/'
DEFAULT_FORCE_DEPLOY =
false
DEFAULT_NOOP =
false
ENVIRONMENT_VARIABLE_PREFIX =
'MARATHON_DEPLOY_'
@@preproduction_override =
{
  :instances => 5,
  :mem => 4096,
  :cpus => 0.5      
}
@@preproduction_env =
{
  :DATACENTER_NUMBER => "44"
}
@@required_marathon_env_variables =
%w[]
@@required_marathon_attributes =

@@required_marathon_attributes = %w[id env container healthChecks args storeUrls].map(&:to_sym)

%w[id].map(&:to_sym)

Class Method Summary collapse

Class Method Details

.missing_attributes(json) ⇒ Object



40
41
42
43
44
45
46
47
48
49
# File 'lib/marathon_deploy/marathon_defaults.rb', line 40

def self.missing_attributes(json)
  json = Utils.symbolize(json)
  missing = []
  @@required_marathon_attributes.each do |att|
    if (!json[att])
      missing << att 
    end
  end
  return missing
end

.missing_envs(json) ⇒ Object



51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
# File 'lib/marathon_deploy/marathon_defaults.rb', line 51

def self.missing_envs(json)
  json = Utils.symbolize(json)
  
  if (!json.key?(:env))
    raise Error::MissingMarathonAttributesError, "no env attribute found in deployment file", caller 
  end
  
  missing = []
  @@required_marathon_env_variables.each do |variable|
    if (!json[:env][variable])
      missing << variable 
    end
  end
  return missing
end

.overlay_preproduction_settings(json) ⇒ Object



67
68
69
70
71
72
73
74
75
76
77
78
79
80
# File 'lib/marathon_deploy/marathon_defaults.rb', line 67

def self.overlay_preproduction_settings(json)
  json = Utils.deep_symbolize(json)
    @@preproduction_override.each do |property,value|
      given_value = json[property]
      if (given_value > @@preproduction_override[property])
        $LOG.debug("Overriding property [#{property}: #{json[property]}] with preproduction default [#{property}: #{@@preproduction_override[property]}]")
        json[property] = @@preproduction_override[property]
      end
    end
    @@preproduction_env.each do |name,value|
      json[:env][name] = value
    end
    return json
end