enb_srs: Use RemoteProcessSafeExit instead of RemoteProcess

It is known that sometimes srsENB hangs until it is killed -9, specially
when using ZMQ backend. Let's use RemoteProcessSafeExit in order to make
sure it is killed in an acceptable time (srs binaries use some
preventive sigalarm 6 seconds auto-kill procedure, hence we use 7
seconds) before next test is started and potentially try to re-use the
same ENB and fails due to previous one still running.

Change-Id: I905bd753c7822feccf1c1bb59752698f1d1b85f0
diff --git a/src/osmo_gsm_tester/obj/enb_srs.py b/src/osmo_gsm_tester/obj/enb_srs.py
index 4311d60..47b373e 100644
--- a/src/osmo_gsm_tester/obj/enb_srs.py
+++ b/src/osmo_gsm_tester/obj/enb_srs.py
@@ -59,6 +59,7 @@
         self.pcap_file = None
         self.process = None
         self.rem_host = None
+        self.remote_run_dir = None
         self.remote_config_file =  None
         self.remote_config_sib_file = None
         self.remote_config_rr_file = None
@@ -111,7 +112,7 @@
         args = (remote_binary, self.remote_config_file)
         args += tuple(self._additional_args)
 
-        self.process = self.rem_host.RemoteProcess(srsENB.BINFILE, args, remote_env=remote_env)
+        self.process = self.rem_host.RemoteProcessSafeExit(srsENB.BINFILE, self.remote_run_dir, args, remote_env=remote_env, wait_time_sec=7)
         self.testenv.remember_to_stop(self.process)
         self.process.launch()
 
@@ -152,14 +153,14 @@
             self.rem_host = remote.RemoteHost(self.run_dir, self.remote_user, self._addr)
             remote_prefix_dir = util.Dir(srsENB.REMOTE_DIR)
             self.remote_inst = util.Dir(remote_prefix_dir.child(os.path.basename(str(self.inst))))
-            remote_run_dir = util.Dir(remote_prefix_dir.child(srsENB.BINFILE))
+            self.remote_run_dir = util.Dir(remote_prefix_dir.child(srsENB.BINFILE))
 
-            self.remote_config_file = remote_run_dir.child(srsENB.CFGFILE)
-            self.remote_config_sib_file = remote_run_dir.child(srsENB.CFGFILE_SIB)
-            self.remote_config_rr_file = remote_run_dir.child(srsENB.CFGFILE_RR)
-            self.remote_config_drb_file = remote_run_dir.child(srsENB.CFGFILE_DRB)
-            self.remote_log_file = remote_run_dir.child(srsENB.LOGFILE)
-            self.remote_pcap_file = remote_run_dir.child(srsENB.PCAPFILE)
+            self.remote_config_file = self.remote_run_dir.child(srsENB.CFGFILE)
+            self.remote_config_sib_file = self.remote_run_dir.child(srsENB.CFGFILE_SIB)
+            self.remote_config_rr_file = self.remote_run_dir.child(srsENB.CFGFILE_RR)
+            self.remote_config_drb_file = self.remote_run_dir.child(srsENB.CFGFILE_DRB)
+            self.remote_log_file = self.remote_run_dir.child(srsENB.LOGFILE)
+            self.remote_pcap_file = self.remote_run_dir.child(srsENB.PCAPFILE)
 
         values = super().configure(['srsenb'])
 
@@ -211,7 +212,7 @@
         if not self.setup_runs_locally():
             self.rem_host.recreate_remote_dir(self.remote_inst)
             self.rem_host.scp('scp-inst-to-remote', str(self.inst), remote_prefix_dir)
-            self.rem_host.recreate_remote_dir(remote_run_dir)
+            self.rem_host.recreate_remote_dir(self.remote_run_dir)
             self.rem_host.scp('scp-cfg-to-remote', self.config_file, self.remote_config_file)
             self.rem_host.scp('scp-cfg-sib-to-remote', self.config_sib_file, self.remote_config_sib_file)
             self.rem_host.scp('scp-cfg-rr-to-remote', self.config_rr_file, self.remote_config_rr_file)