Leverage internal shell runner in bootstrap mode 91/107691/4
authorBartek Grzybowski <b.grzybowski@partner.samsung.com>
Thu, 14 May 2020 14:38:54 +0000 (07:38 -0700)
committerBartek Grzybowski <b.grzybowski@partner.samsung.com>
Fri, 15 May 2020 13:42:14 +0000 (06:42 -0700)
Use native python modules for file operations

Change-Id: I1ca505f9a891c722c2aace118536fa470bf50b35
Issue-ID: INT-1577
Signed-off-by: Bartek Grzybowski <b.grzybowski@partner.samsung.com>
test/mocks/mass-pnf-sim/MassPnfSim.py
test/mocks/mass-pnf-sim/pnf-sim-lightweight/simulator.sh
test/mocks/mass-pnf-sim/requirements.txt

index f782b22..980be15 100755 (executable)
@@ -6,6 +6,7 @@ import argparse
 import ipaddress
 from sys import exit
 from os import chdir, getcwd
+from shutil import copytree
 from json import dumps
 from requests import get
 from requests.exceptions import MissingSchema, InvalidSchema, InvalidURL, ConnectionError, ConnectTimeout
@@ -130,14 +131,12 @@ class MassPnfSim():
             PortFtps = start_port + 2
             start_port += 2
 
-            foldername = f"pnf-sim-lw-{i}"
-            completed = subprocess.run('mkdir ' + foldername, shell=True)
-            self.logger.info(f'\tCreating folder: {completed.stdout}')
-            completed = subprocess.run(
-                'cp -r pnf-sim-lightweight/* ' +
-                foldername,
-                shell=True)
-            self.logger.info(f'\tCloning folder: {completed.stdout}')
+            self.logger.info(f'\tCreating {self.sim_dirname_pattern}{i}')
+            try:
+                copytree('pnf-sim-lightweight', f'{self.sim_dirname_pattern}{i}')
+            except FileExistsError:
+                self.logger.error(f'Directory {self.sim_dirname_pattern}{i} already exists, cannot overwrite.')
+                exit(1)
 
             composercmd = " ".join([
                     "./simulator.sh compose",
@@ -156,14 +155,8 @@ class MassPnfSim():
                     str(ftps_pasv_port_end)
                 ])
             self.logger.debug(f"Script cmdline: {composercmd}")
-
-            completed = subprocess.run(
-                'set -x; cd ' +
-                foldername +
-                '; ' +
-                composercmd,
-                shell=True)
-            self.logger.info(f'Cloning: {completed.stdout}')
+            self.logger.info(f"\tCreating instance #{i} configuration ")
+            self._run_cmd(composercmd, f"{self.sim_dirname_pattern}{i}")
 
             ftps_pasv_port_start += ftps_pasv_port_num_of_ports + 1
             ftps_pasv_port_end += ftps_pasv_port_num_of_ports + 1
index 3b229e1..50ef321 100755 (executable)
@@ -91,9 +91,9 @@ function compose(){
 
        write_config $URLVES $IPFILESERVER $TYPEFILESERVER $PORTSFTP $PORTFTPS $IPPNFSIM
 
-       cd config
-    envsubst < vsftpd_ssl-TEMPLATE.conf > vsftpd_ssl.conf
-       cd -
+       pushd config
+       envsubst < vsftpd_ssl-TEMPLATE.conf > vsftpd_ssl.conf
+       popd
 }
 
 function build_image(){