bts: Refactor conf_for_bsc_osmo

Move duplicated code into a method in the superclass.

Change-Id: Ie27932f94142f667c3fb8c054b77e04afa0d5cbb
This commit is contained in:
Pau Espin 2018-05-07 02:26:18 +02:00
parent c9b6376796
commit 530681fd86
5 changed files with 21 additions and 60 deletions

View File

@ -56,21 +56,7 @@ class NanoBts(bts.Bts):
########################
def conf_for_bsc(self):
values = config.get_defaults('bsc_bts')
config.overlay(values, config.get_defaults('nanobts'))
if self.lac is not None:
config.overlay(values, { 'location_area_code': self.lac })
if self.rac is not None:
config.overlay(values, { 'routing_area_code': self.rac })
if self.cellid is not None:
config.overlay(values, { 'cell_identity': self.cellid })
if self.bvci is not None:
config.overlay(values, { 'bvci': self.bvci })
config.overlay(values, self.conf)
sgsn_conf = {} if self.sgsn is None else self.sgsn.conf_for_client()
config.overlay(values, sgsn_conf)
values = self.conf_for_bsc_osmo('nanobts')
# Hack until we have proper ARFCN resource allocation support (OS#2230)
band = values.get('band')
trx_list = values.get('trx_list')

View File

@ -112,21 +112,7 @@ class OsmoBtsOctphy(bts_osmo.OsmoBtsMainUnit):
# PUBLIC - INTERNAL API
########################
def conf_for_bsc(self):
values = config.get_defaults('bsc_bts')
config.overlay(values, config.get_defaults('osmo_bts_octphy'))
if self.lac is not None:
config.overlay(values, { 'location_area_code': self.lac })
if self.rac is not None:
config.overlay(values, { 'routing_area_code': self.rac })
if self.cellid is not None:
config.overlay(values, { 'cell_identity': self.cellid })
if self.bvci is not None:
config.overlay(values, { 'bvci': self.bvci })
config.overlay(values, self.conf)
sgsn_conf = {} if self.sgsn is None else self.sgsn.conf_for_client()
config.overlay(values, sgsn_conf)
values = self.conf_for_bsc_osmo('osmo_bts_octphy')
self.dbg(conf=values)
return values

View File

@ -35,6 +35,23 @@ class OsmoBts(bts.Bts, metaclass=ABCMeta):
if len(self.pcu_socket_path().encode()) > 107:
raise log.Error('Path for pcu socket is longer than max allowed len for unix socket path (107):', self.pcu_socket_path())
def conf_for_bsc_osmo(self, bts_defaults_name):
values = config.get_defaults('bsc_bts')
config.overlay(values, config.get_defaults(bts_defaults_name))
if self.lac is not None:
config.overlay(values, { 'location_area_code': self.lac })
if self.rac is not None:
config.overlay(values, { 'routing_area_code': self.rac })
if self.cellid is not None:
config.overlay(values, { 'cell_identity': self.cellid })
if self.bvci is not None:
config.overlay(values, { 'bvci': self.bvci })
config.overlay(values, self.conf)
sgsn_conf = {} if self.sgsn is None else self.sgsn.conf_for_client()
config.overlay(values, sgsn_conf)
return values
########################
# PUBLIC - INTERNAL API
########################

View File

@ -92,21 +92,7 @@ class OsmoBtsTrx(bts_osmo.OsmoBtsMainUnit):
# PUBLIC - INTERNAL API
########################
def conf_for_bsc(self):
values = config.get_defaults('bsc_bts')
config.overlay(values, config.get_defaults('osmo_bts_trx'))
if self.lac is not None:
config.overlay(values, { 'location_area_code': self.lac })
if self.rac is not None:
config.overlay(values, { 'routing_area_code': self.rac })
if self.cellid is not None:
config.overlay(values, { 'cell_identity': self.cellid })
if self.bvci is not None:
config.overlay(values, { 'bvci': self.bvci })
config.overlay(values, self.conf)
sgsn_conf = {} if self.sgsn is None else self.sgsn.conf_for_client()
config.overlay(values, sgsn_conf)
values = self.conf_for_bsc_osmo('osmo_bts_trx')
self.dbg(conf=values)
return values

View File

@ -103,21 +103,7 @@ class SysmoBts(bts_osmo.OsmoBts):
return os.path.join(SysmoBts.REMOTE_DIR, 'pcu_bts')
def conf_for_bsc(self):
values = config.get_defaults('bsc_bts')
config.overlay(values, config.get_defaults('osmo_bts_sysmo'))
if self.lac is not None:
config.overlay(values, { 'location_area_code': self.lac })
if self.rac is not None:
config.overlay(values, { 'routing_area_code': self.rac })
if self.cellid is not None:
config.overlay(values, { 'cell_identity': self.cellid })
if self.bvci is not None:
config.overlay(values, { 'bvci': self.bvci })
config.overlay(values, self.conf)
sgsn_conf = {} if self.sgsn is None else self.sgsn.conf_for_client()
config.overlay(values, sgsn_conf)
values = self.conf_for_bsc_osmo('osmo_bts_sysmo')
self.dbg(conf=values)
return values