ms_{srs,amarisoft}: Reuse run_node to hold run info
Change-Id: Ifdea48fed0bfc152131c53b87c34b4514c632917
diff --git a/src/osmo_gsm_tester/obj/ms_amarisoft.py b/src/osmo_gsm_tester/obj/ms_amarisoft.py
index d79756b..5067048 100644
--- a/src/osmo_gsm_tester/obj/ms_amarisoft.py
+++ b/src/osmo_gsm_tester/obj/ms_amarisoft.py
@@ -27,6 +27,10 @@
from .ms import MS
def on_register_schemas():
+ resource_schema = {}
+ for key, val in RunNode.schema().items():
+ resource_schema['run_node.%s' % key] = val
+ schema.register_resource_schema('modem', resource_schema)
config_schema = {
'license_server_addr': schema.IPV4,
}
@@ -79,10 +83,8 @@
IFUPFILE = 'ue-ifup'
def __init__(self, testenv, conf):
- self._addr = conf.get('addr', None)
- if self._addr is None:
- raise log.Error('addr not set')
- super().__init__('amarisoftue_%s' % self._addr, conf)
+ self._run_node = RunNode.from_conf(conf.get('run_node', {}))
+ super().__init__('amarisoftue_%s' % self.addr(), conf)
self.enb = None
self.run_dir = None
self.inst = None
@@ -99,7 +101,6 @@
self.remote_log_file = None
self.remote_ifup_file = None
self.testenv = testenv
- self.remote_user = conf.get('remote_user', None)
if not rf_type_valid(conf.get('rf_dev_type', None)):
raise log.Error('Invalid rf_dev_type=%s' % conf.get('rf_dev_type', None))
@@ -113,7 +114,7 @@
def cleanup(self):
if self.process is None:
return
- if self.setup_runs_locally():
+ if self._run_node.is_local():
return
# copy back files (may not exist, for instance if there was an early error of process):
try:
@@ -121,9 +122,6 @@
except Exception as e:
self.log(repr(e))
- def setup_runs_locally(self):
- return self.remote_user is None
-
def netns(self):
return "amarisoftue1"
@@ -135,7 +133,7 @@
self.enb = enb
self.run_dir = util.Dir(self.testenv.test().get_run_dir().new_dir(self.name()))
self.configure()
- if self.setup_runs_locally():
+ if self._run_node.is_local():
self.start_locally()
else:
self.start_remotely()
@@ -219,8 +217,8 @@
''' % (self.netns(), self.netns())
f.write(r)
- if not self.setup_runs_locally():
- self.rem_host = remote.RemoteHost(self.run_dir, self.remote_user, self._addr)
+ if not self._run_node.is_local():
+ self.rem_host = remote.RemoteHost(self.run_dir, self._run_node.ssh_user(), self._run_node.ssh_addr())
remote_prefix_dir = util.Dir(AmarisoftUE.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(AmarisoftUE.BINFILE))
@@ -235,10 +233,11 @@
config.overlay(values, dict(ue=self.testenv.suite().config().get('amarisoft', {})))
config.overlay(values, dict(ue=self.testenv.suite().config().get('modem', {})))
config.overlay(values, dict(ue=self._conf))
- config.overlay(values, dict(ue=dict(num_antennas = self.enb.num_ports())))
+ config.overlay(values, dict(ue=dict(addr = self.addr(),
+ num_antennas = self.enb.num_ports())))
- logfile = self.log_file if self.setup_runs_locally() else self.remote_log_file
- ifupfile = self.ifup_file if self.setup_runs_locally() else self.remote_ifup_file
+ logfile = self.log_file if self._run_node.is_local() else self.remote_log_file
+ ifupfile = self.ifup_file if self._run_node.is_local() else self.remote_ifup_file
config.overlay(values, dict(ue=dict(log_filename=logfile,
ifup_filename=ifupfile)))
@@ -289,7 +288,7 @@
self.gen_conf_file(self.config_file, AmarisoftUE.CFGFILE, values)
self.gen_conf_file(self.config_rf_file, AmarisoftUE.CFGFILE_RF, values)
- if not self.setup_runs_locally():
+ if not self._run_node.is_local():
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)
@@ -309,13 +308,13 @@
return not self.process.terminated()
def addr(self):
- return self._addr
+ return self._run_node.run_addr()
def run_node(self):
- return RunNode(RunNode.T_REM_SSH, self._addr, self.remote_user, self._addr)
+ return self._run_node
def run_netns_wait(self, name, popen_args):
- if self.setup_runs_locally():
+ if self._run_node.is_local():
proc = process.NetNSProcess(name, self.run_dir.new_dir(name), self.netns(), popen_args, env={})
else:
proc = self.rem_host.RemoteNetNSProcess(name, self.netns(), popen_args, env={})
diff --git a/src/osmo_gsm_tester/obj/ms_srs.py b/src/osmo_gsm_tester/obj/ms_srs.py
index 389ed6b..1efa7c1 100644
--- a/src/osmo_gsm_tester/obj/ms_srs.py
+++ b/src/osmo_gsm_tester/obj/ms_srs.py
@@ -31,8 +31,6 @@
def on_register_schemas():
resource_schema = {
- 'remote_user': schema.STR,
- 'addr': schema.IPV4,
'rf_dev_type': schema.STR,
'rf_dev_args': schema.STR,
'num_carriers': schema.UINT,
@@ -42,6 +40,8 @@
'tx_gain': schema.UINT,
'rx_gain': schema.UINT,
}
+ for key, val in RunNode.schema().items():
+ resource_schema['run_node.%s' % key] = val
schema.register_resource_schema('modem', resource_schema)
config_schema = {
@@ -78,10 +78,8 @@
METRICSFILE = 'srsue_metrics.csv'
def __init__(self, testenv, conf):
- self._addr = conf.get('addr', None)
- if self._addr is None:
- raise log.Error('addr not set')
- super().__init__('srsue_%s' % self._addr, conf)
+ self._run_node = RunNode.from_conf(conf.get('run_node', {}))
+ super().__init__('srsue_%s' % self.addr(), conf)
self.enb = None
self.run_dir = None
self.config_file = None
@@ -100,7 +98,6 @@
self.enable_pcap = False
self.num_carriers = 1
self.testenv = testenv
- self.remote_user = conf.get('remote_user', None)
self._additional_args = []
if not rf_type_valid(conf.get('rf_dev_type', None)):
raise log.Error('Invalid rf_dev_type=%s' % conf.get('rf_dev_type', None))
@@ -108,7 +105,7 @@
def cleanup(self):
if self.process is None:
return
- if self.setup_runs_locally():
+ if self._run_node.is_local():
return
# Make sure we give the UE time to tear down
@@ -125,9 +122,6 @@
except Exception as e:
self.log(repr(e))
- def setup_runs_locally(self):
- return self.remote_user is None
-
def netns(self):
return "srsue1"
@@ -146,7 +140,7 @@
self.enb = enb
self.run_dir = util.Dir(self.testenv.test().get_run_dir().new_dir(self.name()))
self.configure()
- if self.setup_runs_locally():
+ if self._run_node.is_local():
self.start_locally()
else:
self.start_remotely()
@@ -215,8 +209,8 @@
self.pcap_file = self.run_dir.child(srsUE.PCAPFILE)
self.metrics_file = self.run_dir.child(srsUE.METRICSFILE)
- if not self.setup_runs_locally():
- self.rem_host = remote.RemoteHost(self.run_dir, self.remote_user, self._addr)
+ if not self._run_node.is_local():
+ self.rem_host = remote.RemoteHost(self.run_dir, self._run_node.ssh_user(), self._run_node.ssh_addr())
remote_prefix_dir = util.Dir(srsUE.REMOTE_DIR)
self.remote_inst = util.Dir(remote_prefix_dir.child(os.path.basename(str(self.inst))))
self.remote_run_dir = util.Dir(remote_prefix_dir.child(srsUE.BINFILE))
@@ -230,9 +224,9 @@
config.overlay(values, dict(ue=self._conf))
config.overlay(values, dict(ue=dict(num_antennas = self.enb.num_ports())))
- metricsfile = self.metrics_file if self.setup_runs_locally() else self.remote_metrics_file
- logfile = self.log_file if self.setup_runs_locally() else self.remote_log_file
- pcapfile = self.pcap_file if self.setup_runs_locally() else self.remote_pcap_file
+ metricsfile = self.metrics_file if self._run_node.is_local() else self.remote_metrics_file
+ logfile = self.log_file if self._run_node.is_local() else self.remote_log_file
+ pcapfile = self.pcap_file if self._run_node.is_local() else self.remote_pcap_file
config.overlay(values, dict(ue=dict(metrics_filename=metricsfile,
log_filename=logfile,
pcap_filename=pcapfile)))
@@ -300,7 +294,7 @@
self.dbg(r)
f.write(r)
- if not self.setup_runs_locally():
+ if not self._run_node.is_local():
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(self.remote_run_dir)
@@ -316,13 +310,13 @@
return not self.process.terminated()
def addr(self):
- return self._addr
+ return self._run_node.run_addr()
def run_node(self):
- return RunNode(RunNode.T_REM_SSH, self._addr, self.remote_user, self._addr)
+ return self._run_node
def run_netns_wait(self, name, popen_args):
- if self.setup_runs_locally():
+ if self._run_node.is_local():
proc = process.NetNSProcess(name, self.run_dir.new_dir(name), self.netns(), popen_args, env={})
else:
proc = self.rem_host.RemoteNetNSProcess(name, self.netns(), popen_args, env={})
@@ -348,7 +342,7 @@
if self.running():
self.stop()
- if not self.setup_runs_locally():
+ if not self._run_node.is_local():
try:
self.rem_host.scpfrom('scp-back-metrics', self.remote_metrics_file, self.metrics_file)
except Exception as e: