[baremetal] Bring in opendaylight scenario
[fuel.git] / deploy / install_fuel_master.py
index 4f6a052..2da69e3 100644 (file)
@@ -16,12 +16,11 @@ from dha_adapters.libvirt_adapter import LibvirtAdapter
 from common import (
     log,
     err,
-    clean,
     delete,
 )
 
 TRANSPLANT_FUEL_SETTINGS = 'transplant_fuel_settings.py'
-BOOTSTRAP_ADMIN = '/usr/local/sbin/bootstrap_admin_node'
+BOOTSTRAP_ADMIN = 'bootstrap_admin_node'
 FUEL_CLIENT_CONFIG = '/etc/fuel/client/config.yaml'
 PLUGINS_DIR = '~/plugins'
 LOCAL_PLUGIN_FOLDER = '/opt/opnfv'
@@ -54,8 +53,12 @@ class InstallFuelMaster(object):
 
         self.dha.node_power_off(self.fuel_node_id)
 
-        log('Zero the MBR')
-        self.dha.node_zero_mbr(self.fuel_node_id)
+        if os.environ.get('LIBVIRT_DEFAULT_URI'):
+            log('Upload ISO to pool')
+            self.iso_file = self.dha.upload_iso(self.iso_file)
+        else:
+            log('Zero the MBR')
+            self.dha.node_zero_mbr(self.fuel_node_id)
 
         self.dha.node_set_boot_order(self.fuel_node_id, ['disk', 'iso'])
 
@@ -80,8 +83,8 @@ class InstallFuelMaster(object):
         log('Wait until Fuel menu is up')
         fuel_menu_pid = self.wait_until_fuel_menu_up()
 
-        log('Inject our own astute.yaml settings')
-        self.inject_own_astute_yaml()
+        log('Inject our own astute.yaml and fuel_bootstrap_cli.yaml settings')
+        self.inject_own_astute_and_bootstrap_yaml()
 
         log('Let the Fuel deployment continue')
         log('Found FUEL menu as PID %s, now killing it' % fuel_menu_pid)
@@ -152,13 +155,12 @@ class InstallFuelMaster(object):
     def wait_until_fuel_menu_up(self):
         WAIT_LOOP = 60
         SLEEP_TIME = 10
-        CMD = 'ps -ef'
-        SEARCH = 'fuelmenu'
+        CMD = 'pgrep -f fuelmenu'
         fuel_menu_pid = None
         with self.ssh:
             for i in range(WAIT_LOOP):
                 ret = self.ssh.exec_cmd(CMD)
-                fuel_menu_pid = self.get_fuel_menu_pid(ret, SEARCH)
+                fuel_menu_pid = ret.strip()
                 if not fuel_menu_pid:
                     time.sleep(SLEEP_TIME)
                 else:
@@ -167,17 +169,12 @@ class InstallFuelMaster(object):
             raise Exception('Could not find the Fuel Menu Process ID')
         return fuel_menu_pid
 
-    def get_fuel_menu_pid(self, printout, search):
-        for line in printout.splitlines():
-            if line.endswith(search):
-                return clean(line)[1]
-
     def ssh_exec_cmd(self, cmd, check=True):
         with self.ssh:
             ret = self.ssh.exec_cmd(cmd, check=check)
         return ret
 
-    def inject_own_astute_yaml(self):
+    def inject_own_astute_and_bootstrap_yaml(self):
         with self.ssh as s:
             s.exec_cmd('rm -rf %s' % self.work_dir, False)
             s.exec_cmd('mkdir %s' % self.work_dir)
@@ -194,7 +191,7 @@ class InstallFuelMaster(object):
     def wait_until_installation_completed(self):
         WAIT_LOOP = 360
         SLEEP_TIME = 10
-        CMD = 'ps -ef | grep %s | grep -v grep' % BOOTSTRAP_ADMIN
+        CMD = 'pgrep -f %s' % BOOTSTRAP_ADMIN
 
         install_completed = False
         with self.ssh: