2
# config-changed occurs everytime a new configuration value is updated (juju set)
6
status-set maintenance "Config changed"
10
[[ $JUJU_UNIT_NAME =~ $patt ]] && unit_no=${BASH_REMATCH[1]}
14
sudo sh -c "echo $unit_no > /etc/zookeeper/conf/myid"
17
sudo sh -c "echo `config-get work_dir` > /etc/mesos-master/work_dir"
19
if [ -n "`config-get allocation_interval`" ]
21
sudo sh -c "echo `config-get allocation_interval` > /etc/mesos-master/authenticate"
23
sudo rm -f /etc/mesos-master/authenticate
26
if [ -n "`config-get allocator`" ]
28
sudo sh -c "echo `config-get allocator` > /etc/mesos-master/allocator"
30
sudo rm -f /etc/mesos-master/allocator
33
if [ `config-get authenticate` = "True" ]
35
sudo sh -c "touch /etc/mesos-slave/?authenticate"
37
sudo rm -f "/etc/mesos-master/?authenticate"
40
if [ `config-get authenticate_slaves` = "True" ]
42
sudo sh -c "touch /etc/mesos-slave/?authenticate_slaves"
44
sudo rm -f "/etc/mesos-master/?authenticate_slaves"
47
if [ -n "`config-get cluster`" ]
49
sudo sh -c "echo `config-get cluster` > /etc/mesos-master/cluster"
51
sudo rm -f /etc/mesos-master/cluster
54
if [ -n "`config-get credentials`" ]
56
sudo sh -c "echo `config-get credentials` > /etc/mesos-master/credentials"
58
sudo rm -f /etc/mesos-master/credentials
61
if [ -n "`config-get framework_sorter`" ]
63
sudo sh -c "echo `config-get framework_sorter` > /etc/mesos-master/framework_sorter"
65
sudo rm -f /etc/mesos-master/framework_sorter
68
if [ -n "`config-get hooks`" ]
70
sudo sh -c "echo `config-get hooks` > /etc/mesos-master/hooks"
72
sudo rm -f /etc/mesos-master/hooks
75
if [ -n "`config-get hostname`" ]
77
sudo sh -c "echo `config-get hostname` > /etc/mesos-master/hostname"
79
sudo sh -c "hostname > /etc/mesos-master/hostname"
82
if [ -n "`config-get log_dir`" ]
84
sudo sh -c "echo `config-get log_dir` > /etc/mesos-master/log_dir"
86
sudo rm -f /etc/mesos-master/log_dir
89
if [ -n "`config-get logbufsecs`" ]
91
sudo sh -c "echo `config-get logbufsecs` > /etc/mesos-master/logbufsecs"
93
sudo rm -f /etc/mesos-master/logbufsecs
96
if [ -n "`config-get logging_level`" ]
98
sudo sh -c "echo `config-get logging_level` > /etc/mesos-master/logging_level"
100
sudo rm -f /etc/mesos-master/logging_level
103
if [ `config-get quiet` = "True" ]
105
sudo sh -c "touch /etc/mesos-slave/?quiet"
107
sudo rm -f "/etc/mesos-master/?quiet"
110
if [ -n "`config-get recovery_slave_removal_limit`" ]
112
sudo sh -c "echo `config-get recovery_slave_removal_limit` > /etc/mesos-master/recovery_slave_removal_limit"
114
sudo rm -f /etc/mesos-master/recovery_slave_removal_limit
117
if [ -n "`config-get registry`" ]
119
sudo sh -c "echo `config-get registry` > /etc/mesos-master/registry"
121
sudo rm -f /etc/mesos-master/registry
124
if [ -n "`config-get registry_fetch_timeout`" ]
126
sudo sh -c "echo `config-get registry_fetch_timeout` > /etc/mesos-master/registry_fetch_timeout"
128
sudo rm -f /etc/mesos-master/registry_fetch_timeout
131
if [ -n "`config-get resource_monitoring_interval`" ]
133
sudo sh -c "echo `config-get resource_monitoring_interval` > /etc/mesos-master/resource_monitoring_interval"
135
sudo rm -f /etc/mesos-master/resource_monitoring_interval
138
if [ -n "`config-get registry_store_timeout`" ]
140
sudo sh -c "echo `config-get registry_store_timeout` > /etc/mesos-master/registry_store_timeout"
142
sudo rm -f /etc/mesos-master/registry_store_timeout
145
if [ -n "`config-get roles`" ]
147
sudo sh -c "echo `config-get roles` > /etc/mesos-master/roles"
149
sudo rm -f /etc/mesos-master/roles
152
if [ `config-get root_submissions` = "False" ]
154
sudo sh -c "echo 'false' > /etc/mesos-master/root_submissions"
156
sudo rm -f /etc/mesos-master/root_submissions
159
if [ -n "`config-get slave_reregister_timeout`" ]
161
sudo sh -c "echo `config-get slave_reregister_timeout` > /etc/mesos-master/slave_reregister_timeout"
163
sudo rm -f /etc/mesos-master/slave_reregister_timeout
166
if [ -n "`config-get user_sorter`" ]
168
sudo sh -c "echo `config-get user_sorter` > /etc/mesos-master/user_sorter"
170
sudo rm -f /etc/mesos-master/user_sorter
173
if [ -n "`config-get weights`" ]
175
sudo sh -c "echo `config-get weights` > /etc/mesos-master/weights"
177
sudo rm -f /etc/mesos-master/weights
180
if [ -n "`config-get zk_session_timeout`" ]
182
sudo sh -c "echo `config-get zk_session_timeout` > /etc/mesos-master/zk_session_timeout"
184
sudo rm -f /etc/mesos-master/zk_session_timeout
187
open-port `config-get port`
188
open-port `config-get marathon_port`
191
if [ `config-get mesos-slave` = "True" ]
193
juju-log "Configuring mesos'slave: `config-get mesos-slave`"
194
sudo rm -f /etc/init/mesos-slave.override
196
if [ -n "`config-get slave_hostname`" ]
198
sudo sh -c "echo `config-get slave_hostname` > /etc/mesos-slave/hostname"
200
sudo sh -c "hostname > /etc/mesos-slave/hostname"
203
sudo sh -c "echo `config-get slave_containerizers` > /etc/mesos-slave/containerizers"
204
sudo sh -c "echo `config-get slave_executor_registration_timeout` > /etc/mesos-slave/executor_registration_timeout"
206
if [ -n "`config-get slave_attributes`" ]
208
sudo sh -c "echo `config-get slave_attributes` > /etc/mesos-slave/attributes"
210
sudo rm -f /etc/mesos-slave/attributes
213
if [ -n "`config-get slave_credential`" ]
215
sudo sh -c "echo `config-get slave_credential` > /etc/mesos-slave/credential"
217
sudo rm -f /etc/mesos-slave/credential
220
if [ -n "`config-get slave_default_role`" ]
222
sudo sh -c "echo `config-get slave_default_role` > /etc/mesos-slave/default_role"
224
sudo rm -f /etc/mesos-slave/default_role
227
if [ -n "`config-get slave_isolation`" ]
229
sudo sh -c "echo `config-get slave_isolation` > /etc/mesos-slave/isolation"
231
sudo rm -f /etc/mesos-slave/isolation
234
if [ -n "`config-get slave_logging_level`" ]
236
sudo sh -c "echo `config-get slave_logging_level` > /etc/mesos-slave/logging_level"
238
sudo rm -f /etc/mesos-slave/logging_level
241
if [ -n "`config-get slave_resource_monitoring_interval`" ]
243
sudo sh -c "echo `config-get slave_resource_monitoring_interval` > /etc/mesos-slave/resource_monitoring_interval"
245
sudo rm -f /etc/mesos-slave/resource_monitoring_interval
248
if [ -n "`config-get slave_resources`" ]
250
sudo sh -c "echo `config-get slave_resources` > /etc/mesos-slave/resources"
252
sudo rm -f /etc/mesos-slave/resources
255
if $(service mesos-slave status|grep 'mesos-slave start/running' | wc -l)
257
sudo service mesos-slave stop
260
if $(service docker status|grep 'docker start/running' | wc -l)
262
sudo service docker stop
265
sudo sh -c "echo manual > /etc/init/mesos-slave.override"
268
if [ `config-get switch_user` = "True" ]
270
sudo sh -c "touch /etc/mesos-slave/?switch_user"
271
sudo rm -f "/etc/mesos-slave/?no-switch_user"
273
sudo sh -c "touch /etc/mesos-slave/?no-switch_user"
274
sudo rm -f "/etc/mesos-slave/?switch_user"
278
if [ `config-get mesos-dns` = "True" ]
281
zookeeper=$(cat "$file")
282
httpon=`config-get dns_httpon`
283
dsnon=`config-get dns_dsnon`
284
externalon=`config-get dns_externalon`
286
sudo sh -c "echo '{' > /usr/local/mesos-dns/config.json"
287
sudo sh -c "echo ' \"zk\": \"${zookeeper}\",' >> /usr/local/mesos-dns/config.json"
288
sudo sh -c "echo ' \"refreshSeconds\": `config-get dns_refreshSeconds`,' >> /usr/local/mesos-dns/config.json"
289
sudo sh -c "echo ' \"ttl\": `config-get dns_ttl`,' >> /usr/local/mesos-dns/config.json"
290
sudo sh -c "echo ' \"domain\": \"`config-get dns_domain`\",' >> /usr/local/mesos-dns/config.json"
291
sudo sh -c "echo ' \"port\": `config-get dns_port`,' >> /usr/local/mesos-dns/config.json"
292
sudo sh -c "echo ' \"resolvers\": [\"`unit-get private-address`\", \"8.8.8.8\"],' >> /usr/local/mesos-dns/config.json"
293
sudo sh -c "echo ' \"timeout\": `config-get dns_timeout`,' >> /usr/local/mesos-dns/config.json"
294
sudo sh -c "echo ' \"httpon\": ${httpon,,},' >> /usr/local/mesos-dns/config.json"
295
sudo sh -c "echo ' \"dsnon\": ${dsnon,,},' >> /usr/local/mesos-dns/config.json"
296
sudo sh -c "echo ' \"httpport\": `config-get dns_httpport`,' >> /usr/local/mesos-dns/config.json"
297
sudo sh -c "echo ' \"externalon\": ${externalon,,},' >> /usr/local/mesos-dns/config.json"
298
sudo sh -c "echo ' \"listener\": \"`config-get dns_listener`\",' >> /usr/local/mesos-dns/config.json"
299
sudo sh -c "echo ' \"SOAMname\": \"`config-get dns_SOAMname`\",' >> /usr/local/mesos-dns/config.json"
300
sudo sh -c "echo ' \"SOARname\": \"`config-get dns_SOARname`\",' >> /usr/local/mesos-dns/config.json"
301
sudo sh -c "echo ' \"SOARefresh\": `config-get dns_SOARefresh`,' >> /usr/local/mesos-dns/config.json"
302
sudo sh -c "echo ' \"SOARetry\": `config-get dns_SOARetry`,' >> /usr/local/mesos-dns/config.json"
303
sudo sh -c "echo ' \"SOAExpire\": `config-get dns_SOAExpire`,' >> /usr/local/mesos-dns/config.json"
304
sudo sh -c "echo ' \"SOAMinttl\": `config-get dns_SOAMinttl`,' >> /usr/local/mesos-dns/config.json"
305
sudo sh -c "echo ' \"email\": \"root.mesos-dns.mesos\"' >> /usr/local/mesos-dns/config.json"
306
sudo sh -c "echo '}' >> /usr/local/mesos-dns/config.json"
310
sudo service zookeeper restart
311
sudo service mesos-master restart
312
sudo service marathon restart
314
if [ `config-get mesos-slave` = "True" ]
316
sudo service mesos-slave restart
317
sudo service docker restart
320
if [ `config-get mesos-dns` = "True" ]
322
sudo service mesos-dns restart