This is merely a historical archive of years 2008-2021, before the migration to mailman3.
A maintained and still updated list archive can be found at https://lists.osmocom.org/hyperkitty/list/gerrit-log@lists.osmocom.org/.
pespin gerrit-no-reply at lists.osmocom.orgpespin has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-gsm-tester/+/18482 ) Change subject: enb: Reuse run_node to hold run info ...................................................................... enb: Reuse run_node to hold run info Change-Id: If396940f154813d42ff3d3364c44b8979179127f --- M doc/examples/4g_srsLTE/resources.conf M src/osmo_gsm_tester/obj/enb.py M src/osmo_gsm_tester/obj/enb_amarisoft.py M src/osmo_gsm_tester/obj/enb_srs.py M src/osmo_gsm_tester/obj/run_node.py M sysmocom/resources.conf.prod 6 files changed, 58 insertions(+), 50 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-gsm-tester refs/changes/82/18482/1 diff --git a/doc/examples/4g_srsLTE/resources.conf b/doc/examples/4g_srsLTE/resources.conf index a1bdcbc..f0db3c0 100644 --- a/doc/examples/4g_srsLTE/resources.conf +++ b/doc/examples/4g_srsLTE/resources.conf @@ -11,15 +11,21 @@ - label: srsENB-zmq type: srsenb rf_dev_type: zmq - remote_user: jenkins - addr: 172.18.50.101 + run_node: + run_type: ssh + run_addr: 172.18.50.101 + ssh_user: jenkins + ssh_addr: 172.18.50.101 - label: srsENB-B200 type: srsenb rf_dev_type: uhd rf_dev_args: 'type=b200,serial=317B9FE' - remote_user: jenkins - addr: 172.18.50.102 + run_node: + run_type: ssh + run_addr: 172.18.50.102 + ssh_user: jenkins + ssh_addr: 172.18.50.102 modem: - label: srsUE-zmq diff --git a/src/osmo_gsm_tester/obj/enb.py b/src/osmo_gsm_tester/obj/enb.py index 42ff647..3c4f48f 100644 --- a/src/osmo_gsm_tester/obj/enb.py +++ b/src/osmo_gsm_tester/obj/enb.py @@ -20,13 +20,12 @@ from abc import ABCMeta, abstractmethod from ..core import log, config from ..core import schema +from . import run_node def on_register_schemas(): resource_schema = { 'label': schema.STR, 'type': schema.STR, - 'remote_user': schema.STR, - 'addr': schema.IPV4, 'gtp_bind_addr': schema.IPV4, 'id': schema.UINT, 'num_prb': schema.UINT, @@ -60,6 +59,8 @@ 'cell_list[].dl_rfemu.addr': schema.IPV4, 'cell_list[].dl_rfemu.ports[]': schema.UINT, } + for key, val in run_node.RunNode.schema().items(): + resource_schema['run_node.%s' % key] = val schema.register_resource_schema('enb', resource_schema) class eNodeB(log.Origin, metaclass=ABCMeta): @@ -70,13 +71,11 @@ def __init__(self, testenv, conf, name): super().__init__(log.C_RUN, '%s' % name) self._conf = conf - self._addr = conf.get('addr', None) - if self._addr is None: - raise log.Error('addr not set') + self._run_node = run_node.RunNode.from_conf(conf.get('run_node', {})) self._gtp_bind_addr = conf.get('gtp_bind_addr', None) if self._gtp_bind_addr is None: - self._gtp_bind_addr = self._addr - self.set_name('%s_%s' % (name, self._addr)) + self._gtp_bind_addr = self._run_node.run_addr() + self.set_name('%s_%s' % (name, self._run_node.run_addr())) self._txmode = 0 self._id = None self._num_prb = 0 @@ -99,6 +98,7 @@ assert self._txmode config.overlay(values, dict(enb={ 'num_ports': self.num_ports() })) assert self._epc is not None + config.overlay(values, dict(enb={ 'addr': self.addr() })) config.overlay(values, dict(enb={ 'mme_addr': self._epc.addr() })) config.overlay(values, dict(enb={ 'gtp_bind_addr': self._gtp_bind_addr })) self._num_cells = int(values['enb'].get('num_cells', None)) @@ -235,7 +235,7 @@ pass def addr(self): - return self._addr + return self._run_node.run_addr() def ue_max_rate(self, downlink=True): # The max rate for a single UE per PRB configuration in TM1 diff --git a/src/osmo_gsm_tester/obj/enb_amarisoft.py b/src/osmo_gsm_tester/obj/enb_amarisoft.py index fa79cbf..c331cd8 100644 --- a/src/osmo_gsm_tester/obj/enb_amarisoft.py +++ b/src/osmo_gsm_tester/obj/enb_amarisoft.py @@ -69,7 +69,6 @@ self.remote_log_file = None self.enable_measurements = False 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)) @@ -83,7 +82,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: @@ -91,10 +90,6 @@ except Exception as e: self.log(repr(e)) - - def setup_runs_locally(self): - return self.remote_user is None - def start(self, epc): self.log('Starting AmarisoftENB') self._epc = epc @@ -107,7 +102,7 @@ self.process.stdin_write('t\n') def _start(self): - if self.setup_runs_locally(): + if self._run_node.is_local(): env = { 'LD_LIBRARY_PATH': util.prepend_library_path(self.inst) } binary = self.inst.child('.', AmarisoftENB.BINFILE) self.dbg(run_dir=self.run_dir, binary=binary, env=env) @@ -141,8 +136,8 @@ self.config_drb_file = self.run_dir.child(AmarisoftENB.CFGFILE_DRB) self.log_file = self.run_dir.child(AmarisoftENB.LOGFILE) - 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(AmarisoftENB.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(AmarisoftENB.BINFILE)) @@ -186,7 +181,7 @@ config.overlay(values, dict(enb=dict(rf_dev_args=rf_dev_args))) - logfile = self.log_file if self.setup_runs_locally() else self.remote_log_file + logfile = self.log_file if self._run_node.is_local() else self.remote_log_file config.overlay(values, dict(enb=dict(log_filename=logfile))) # rf driver is shared between amarisoft enb and ue, so it has a @@ -205,7 +200,7 @@ self.gen_conf_file(self.config_rf_file, AmarisoftENB.CFGFILE_RF, values) self.gen_conf_file(self.config_drb_file, AmarisoftENB.CFGFILE_DRB, 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) diff --git a/src/osmo_gsm_tester/obj/enb_srs.py b/src/osmo_gsm_tester/obj/enb_srs.py index 47b373e..9e93541 100644 --- a/src/osmo_gsm_tester/obj/enb_srs.py +++ b/src/osmo_gsm_tester/obj/enb_srs.py @@ -68,7 +68,6 @@ self.remote_pcap_file = None self.enable_pcap = False 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)) @@ -76,7 +75,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: @@ -89,18 +88,15 @@ except Exception as e: self.log(repr(e)) - def setup_runs_locally(self): - return self.remote_user is None - def start(self, epc): self.log('Starting srsENB') self._epc = epc self.run_dir = util.Dir(self.testenv.test().get_run_dir().new_dir(self.name())) self.configure() - if self.remote_user: - self.start_remotely() - else: + if self._run_node.is_local(): self.start_locally() + else: + self.start_remotely() # send t+Enter to enable console trace self.dbg('Enabling console trace') @@ -149,8 +145,8 @@ self.log_file = self.run_dir.child(srsENB.LOGFILE) self.pcap_file = self.run_dir.child(srsENB.PCAPFILE) - 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(srsENB.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(srsENB.BINFILE)) @@ -164,11 +160,11 @@ values = super().configure(['srsenb']) - sibfile = self.config_sib_file if self.setup_runs_locally() else self.remote_config_sib_file - rrfile = self.config_rr_file if self.setup_runs_locally() else self.remote_config_rr_file - drbfile = self.config_drb_file if self.setup_runs_locally() else self.remote_config_drb_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 + sibfile = self.config_sib_file if self._run_node.is_local() else self.remote_config_sib_file + rrfile = self.config_rr_file if self._run_node.is_local() else self.remote_config_rr_file + drbfile = self.config_drb_file if self._run_node.is_local() else self.remote_config_drb_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(enb=dict(sib_filename=sibfile, rr_filename=rrfile, drb_filename=drbfile, @@ -209,7 +205,7 @@ self.gen_conf_file(self.config_rr_file, srsENB.CFGFILE_RR, values) self.gen_conf_file(self.config_drb_file, srsENB.CFGFILE_DRB, 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(self.remote_run_dir) diff --git a/src/osmo_gsm_tester/obj/run_node.py b/src/osmo_gsm_tester/obj/run_node.py index bd502af..6a030ac 100644 --- a/src/osmo_gsm_tester/obj/run_node.py +++ b/src/osmo_gsm_tester/obj/run_node.py @@ -21,13 +21,7 @@ from ..core import schema def on_register_schemas(): - resource_schema = { - 'run_type': schema.STR, - 'run_addr': schema.IPV4, - 'ssh_user': schema.STR, - 'ssh_addr': schema.IPV4, - 'run_label': schema.STR, - } + resource_schema = RunNode.schema() schema.register_resource_schema('run_node', resource_schema) @@ -63,6 +57,17 @@ conf.get('ssh_user', None), conf.get('ssh_addr', None), conf.get('run_label', None)) + @classmethod + def schema(cls): + resource_schema = { + 'run_type': schema.STR, + 'run_addr': schema.IPV4, + 'ssh_user': schema.STR, + 'ssh_addr': schema.IPV4, + 'run_label': schema.STR, + } + return resource_schema + def is_local(self): return self._type == RunNode.T_LOCAL diff --git a/sysmocom/resources.conf.prod b/sysmocom/resources.conf.prod index c66cafa..ec148f3 100644 --- a/sysmocom/resources.conf.prod +++ b/sysmocom/resources.conf.prod @@ -159,15 +159,21 @@ type: srsenb rf_dev_type: zmq rf_dev_args: auto - remote_user: jenkins - addr: 10.42.42.117 + run_node: + run_type: ssh + run_addr: 10.42.42.117 + ssh_user: jenkins + ssh_addr: 10.42.42.117 - label: srsENB-B200 type: srsenb rf_dev_type: uhd rf_dev_args: "type=b200,serial=306BD11" - remote_user: jenkins - addr: 10.42.42.117 + run_node: + run_type: ssh + run_addr: 10.42.42.117 + ssh_user: jenkins + ssh_addr: 10.42.42.117 arfcn: - arfcn: 512 -- To view, visit https://gerrit.osmocom.org/c/osmo-gsm-tester/+/18482 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-gsm-tester Gerrit-Branch: master Gerrit-Change-Id: If396940f154813d42ff3d3364c44b8979179127f Gerrit-Change-Number: 18482 Gerrit-PatchSet: 1 Gerrit-Owner: pespin <pespin at sysmocom.de> Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.osmocom.org/pipermail/gerrit-log/attachments/20200526/d64ffde3/attachment.htm>