[buildout] parts = publish-connection-informations request-slave-instance check-connection-informations-promise eggs-directory = ${buildout:eggs-directory} develop-eggs-directory = ${buildout:develop-eggs-directory} offline = true [directories] recipe = slapos.cookbook:mkdirectory bin = $${buildout:directory}/bin etc = $${buildout:directory}/etc scripts = $${:etc}/run services = $${:etc}/service promises = $${:etc}/promise [slap-configuration] recipe = slapos.cookbook:slapconfiguration.serialised computer = $${slap-connection:computer-id} partition = $${slap-connection:partition-id} url = $${slap-connection:server-url} key = $${slap-connection:key-file} cert = $${slap-connection:cert-file} [request-test-instance] # Deploy a dummy instance <= slap-connection recipe = slapos.cookbook:request name = Test Root Instance software-url = $${slap-connection:software-release-url} software-type = test return = foo slave-instance-list [request-slave-instance] # Deploy a dummy instance <= slap-connection recipe = slapos.cookbook:request name = Test Root Instance - Slave software-url = $${slap-connection:software-release-url} software-type = test slave = true sla-instance_guid = $${request-test-instance:instance-guid} return = foo [publish-connection-informations] recipe = slapos.cookbook:publish note = test-instance-guid should be equal to XXX, test-instance-state should be equal to started, test-instance-slave-instance-list should be NOT empty, and root-instance-slave-instance-list SHOULD be empty, slave-instance-parameter should NOT be empty. test-instance-guid = $${request-test-instance:instance-guid} test-instance-state = $${request-test-instance:instance-state} test-instance-slave-instance-list = $${request-test-instance:connection-slave-instance-list} root-instance-slave-instance-list = $${slap-configuration:slave-instance-list} slave-instance-parameter = $${request-slave-instance:connection-foo} # Create a file containing connection parameters # Then create a promise that will check content of this file [dump-connection-informations] <= publish-connection-informations recipe = slapos.cookbook:jsondump json-output = $${buildout:directory}/connection-parameters.json [check-connection-informations-promise] recipe = collective.recipe.template input = ${promise-template:output} output = $${directories:promises}/checkparameters mode = 700