[buildout] parts = neo-master-promise [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.get('partitions', 12)) }} replicas = {{ dumps(slapparameter_dict.get('replicas', 0)) }} # "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