ms: Allocate default msisdn internally
Don't wait until adding it to the subscriber data base, since the msisdn
may be needed beforehand (for instance in follow up patch to be passed
to osmo-msc configuration to route emergency calls).
Change-Id: I0d6902687e4beb3d6cdcefd4e343f21496100504
diff --git a/src/osmo_gsm_tester/obj/epc_amarisoft.py b/src/osmo_gsm_tester/obj/epc_amarisoft.py
index 3e91b5c..1291891 100644
--- a/src/osmo_gsm_tester/obj/epc_amarisoft.py
+++ b/src/osmo_gsm_tester/obj/epc_amarisoft.py
@@ -168,8 +168,7 @@
def subscriber_add(self, modem, msisdn=None, algo_str=None):
if msisdn is None:
- msisdn = self.testenv.msisdn()
- modem.set_msisdn(msisdn)
+ msisdn = modem.msisdn()
if algo_str is None:
algo_str = modem.auth_algo() or util.OSMO_AUTH_ALGO_NONE
diff --git a/src/osmo_gsm_tester/obj/epc_srs.py b/src/osmo_gsm_tester/obj/epc_srs.py
index 80f66e8..b5ae0bd 100644
--- a/src/osmo_gsm_tester/obj/epc_srs.py
+++ b/src/osmo_gsm_tester/obj/epc_srs.py
@@ -183,8 +183,7 @@
def subscriber_add(self, modem, msisdn=None, algo_str=None):
if msisdn is None:
- msisdn = self.testenv.msisdn()
- modem.set_msisdn(msisdn)
+ msisdn = modem.msisdn()
if algo_str is None:
algo_str = modem.auth_algo() or util.OSMO_AUTH_ALGO_NONE
diff --git a/src/osmo_gsm_tester/obj/hlr_osmo.py b/src/osmo_gsm_tester/obj/hlr_osmo.py
index ecff75e..b999363 100644
--- a/src/osmo_gsm_tester/obj/hlr_osmo.py
+++ b/src/osmo_gsm_tester/obj/hlr_osmo.py
@@ -106,8 +106,7 @@
def subscriber_add(self, modem, msisdn=None, algo_str=None):
if msisdn is None:
- msisdn = self.testenv.msisdn()
- modem.set_msisdn(msisdn)
+ msisdn = modem.msisdn()
subscriber_id = self.next_subscriber_id
self.next_subscriber_id += 1
diff --git a/src/osmo_gsm_tester/obj/ms.py b/src/osmo_gsm_tester/obj/ms.py
index 417ad52..60103d7 100644
--- a/src/osmo_gsm_tester/obj/ms.py
+++ b/src/osmo_gsm_tester/obj/ms.py
@@ -42,8 +42,9 @@
##############
# PROTECTED
##############
- def __init__(self, name, conf):
+ def __init__(self, name, testenv, conf):
super().__init__(log.C_TST, name)
+ self.testenv = testenv
self._conf = conf
self._msisdn = None
@@ -114,6 +115,9 @@
self._msisdn = msisdn
def msisdn(self):
+ # If none was set, allocate next one available:
+ if self._msisdn is None:
+ self.set_msisdn(self.testenv.msisdn())
return self._msisdn
def get_counter(self, counter_name):
diff --git a/src/osmo_gsm_tester/obj/ms_amarisoft.py b/src/osmo_gsm_tester/obj/ms_amarisoft.py
index f151850..fa16d63 100644
--- a/src/osmo_gsm_tester/obj/ms_amarisoft.py
+++ b/src/osmo_gsm_tester/obj/ms_amarisoft.py
@@ -82,7 +82,7 @@
def __init__(self, testenv, conf):
self._run_node = RunNode.from_conf(conf.get('run_node', {}))
- super().__init__('amarisoftue_%s' % self.addr(), conf)
+ super().__init__('amarisoftue_%s' % self.addr(), testenv, conf)
self.enb = None
self.run_dir = None
self.inst = None
@@ -98,7 +98,6 @@
self.remote_config_rf_file = None
self.remote_log_file = None
self.remote_ifup_file = None
- self.testenv = testenv
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))
if conf.get('rf_dev_type') == 'zmq':
diff --git a/src/osmo_gsm_tester/obj/ms_ofono.py b/src/osmo_gsm_tester/obj/ms_ofono.py
index 0c67e0a..38fa4d4 100644
--- a/src/osmo_gsm_tester/obj/ms_ofono.py
+++ b/src/osmo_gsm_tester/obj/ms_ofono.py
@@ -373,7 +373,7 @@
CTX_PROT_IPv46 = 'dual'
def __init__(self, testenv, conf):
- super().__init__('modem', conf)
+ super().__init__('modem', testenv, conf)
_import_external_modules()
self.syspath = conf.get('path')
self.dbuspath = get_dbuspath_from_syspath(self.syspath)
diff --git a/src/osmo_gsm_tester/obj/ms_osmo_mobile.py b/src/osmo_gsm_tester/obj/ms_osmo_mobile.py
index cc54174..11600ff 100644
--- a/src/osmo_gsm_tester/obj/ms_osmo_mobile.py
+++ b/src/osmo_gsm_tester/obj/ms_osmo_mobile.py
@@ -23,6 +23,9 @@
class MSOsmoMobile(ms.MS):
"""Represent a osmocom-bb mobile."""
+ def __init__(self, testenv, conf):
+ super().__init__('ms_osmo', testenv, conf)
+
def cleanup(self):
# do nothing for a virtual resource
pass
diff --git a/src/osmo_gsm_tester/obj/ms_srs.py b/src/osmo_gsm_tester/obj/ms_srs.py
index 0a7624a..a3505c8 100644
--- a/src/osmo_gsm_tester/obj/ms_srs.py
+++ b/src/osmo_gsm_tester/obj/ms_srs.py
@@ -77,7 +77,7 @@
def __init__(self, testenv, conf):
self._run_node = RunNode.from_conf(conf.get('run_node', {}))
- super().__init__('srsue_%s' % self.addr(), conf)
+ super().__init__('srsue_%s' % self.addr(), testenv, conf)
srslte_common.__init__(self)
self.enb = None
self.run_dir = None
@@ -96,7 +96,6 @@
self.remote_metrics_file = None
self.enable_pcap = False
self.num_carriers = 1
- self.testenv = testenv
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))
diff --git a/src/osmo_gsm_tester/obj/nitb_osmo.py b/src/osmo_gsm_tester/obj/nitb_osmo.py
index c12648f..a424927 100644
--- a/src/osmo_gsm_tester/obj/nitb_osmo.py
+++ b/src/osmo_gsm_tester/obj/nitb_osmo.py
@@ -120,8 +120,7 @@
def subscriber_add(self, modem, msisdn=None, algo=None):
if msisdn is None:
- msisdn = self.testenv.msisdn()
- modem.set_msisdn(msisdn)
+ msisdn = modem.msisdn()
if not algo:
alg_str = modem.auth_algo()