############################# # # Instanciate nbdserver # ############################# [buildout] parts = nbd-promise onetimeupload-promise publish-connection-information eggs-directory = ${buildout:eggs-directory} develop-eggs-directory = ${buildout:develop-eggs-directory} offline = true [rootdirectory] recipe = slapos.cookbook:mkdirectory etc = $${buildout:directory}/etc srv = $${buildout:directory}/srv log = $${buildout:directory}/log [basedirectory] recipe = slapos.cookbook:mkdirectory services = $${rootdirectory:etc}/run promises = $${rootdirectory:etc}/promise [nbd-instance] recipe = slapos.cookbook:generic.nbdserver ip = $${slap-network-information:global-ipv6} port = 1024 image-path = $${onetimeupload-instance:image-path} qemu-path = ${kvm:location}/bin/qemu-nbd shell-path = ${dash:location}/bin/dash # XXX TODO: Wait for the iso to be uploaded (execute_wait) path = $${basedirectory:services}/nbdserver [nbd-promise] recipe = slapos.cookbook:check_port_listening path = $${basedirectory:promises}/nbd_promise hostname = $${nbd-instance:ip} port = $${nbd-instance:port} [onetimeupload-instance] recipe = slapos.cookbook:generic.onetimeupload ip = $${slap-network-information:global-ipv6} port = 9999 image-path = $${rootdirectory:srv}/cdrom.iso log-path = $${rootdirectory:log}/onetimeupload.log shell-path = ${dash:location}/bin/dash onetimeupload-path = ${buildout:bin-directory}/onetimeupload path = $${basedirectory:services}/onetimeupload [onetimeupload-promise] recipe = slapos.cookbook:check_port_listening path = $${basedirectory:promises}/onetimeupload_promise hostname = $${onetimeupload-instance:ip} port = $${onetimeupload-instance:port} [publish-connection-information] recipe = slapos.cookbook:publish nbd_url = nbd://[$${nbd-instance:ip}]:$${nbd-instance:port} upload_url = http://[$${onetimeupload-instance:ip}]:$${onetimeupload-instance:port}/ upload_key = $${onetimeupload-instance:key}