X-Git-Url: https://osm.etsi.org/gitweb/?a=blobdiff_plain;ds=sidebyside;f=n2vc%2Fprovisioner.py;fp=n2vc%2Fprovisioner.py;h=32ae94dcc40e54f17bf4f27ef659363091dcaaac;hb=5fe10c3c65fa218ea1619597ace6df233d2a12d9;hp=91d5c0443ca0a79a513755993f775d3c8096edff;hpb=8776f051f855ed6d5e3b25c07848da93ab04d03c;p=osm%2FN2VC.git diff --git a/n2vc/provisioner.py b/n2vc/provisioner.py index 91d5c04..32ae94d 100644 --- a/n2vc/provisioner.py +++ b/n2vc/provisioner.py @@ -85,6 +85,11 @@ firewall-cmd --direct --permanent --add-rule ipv4 nat OUTPUT 0 -d {} -p tcp \ firewall-cmd --reload """ +CLOUD_INIT_WAIT_SCRIPT = """#!/bin/bash +set -e +cloud-init status --wait +""" + class AsyncSSHProvisioner: """Provision a manually created machine via SSH.""" @@ -296,6 +301,12 @@ class AsyncSSHProvisioner: - 127.0.0.1:17070 - '[::1]:17070' """ + try: + # Wait until cloud-init finish + await self._run_configure_script(CLOUD_INIT_WAIT_SCRIPT) + except Exception: + self.log.debug("cloud-init not present in machine {}".format(machine_id)) + if proxy: m = re.search(r"apiaddresses:\n- (\d+\.\d+\.\d+\.\d+):17070", results.script) apiaddress = m.group(1)