[buildout] extends = {{ logrotate_cfg }} parts += neo-master-promise logrotate-master [neo-master] recipe = slapos.cookbook:neoppod.master binary = {{bin_directory}}/neomaster wrapper = ${directory:run}/neomaster logfile = ${directory:log}/neomaster.log ip = ${publish:ip} port = ${publish:port} cluster = {{ dumps(slapparameter_dict['cluster']) }} partitions = {{ dumps(slapparameter_dict['partitions']) }} replicas = {{ dumps(slapparameter_dict['replicas']) }} upstream-cluster = {{ dumps(slapparameter_dict['upstream-cluster']) }} upstream-masters = {{ dumps(slapparameter_dict['upstream-masters']) }} # "masters" parameter is not provided when just requesting a partition. # No actuall installation takes place at that time # (slapos.cookbook:neoppod.master raises), but cfg expansion must succeed. So # this default value is required. masters = {{ dumps(slapparameter_dict.get('masters', '')) }} [publish] recipe = slapos.cookbook:publish # TODO: make port a partition parameter ip = {{ (ipv4_set | list)[0] }} port = 10000 master = ${:ip}:${:port} [directory] recipe = slapos.cookbook:mkdirectory promises = ${buildout:directory}/etc/promises run = ${buildout:directory}/etc/run log = ${buildout:directory}/var/log [neo-master-promise] recipe = slapos.cookbook:check_port_listening hostname = ${neo-master:ip} port = ${neo-master:port} path = ${directory:promises}/neo-master-promise [logrotate-master] recipe = slapos.cookbook:logrotate.d logrotate-entries = ${logrotate:logrotate-entries} backup = ${logrotate:backup} name = neo-master log = ${neo-master:logfile} post = {{ bin_directory }}/slapos-kill -n neomaster -s RTMIN+1 ${:log}