From 19b3858750f6129bba3cb749a6ea5e4dc655fbb2 Mon Sep 17 00:00:00 2001 From: Erik Reid <erik.reid@geant.org> Date: Tue, 10 Mar 2020 15:31:34 +0100 Subject: [PATCH] changed junosspace device hostname derivation --- inventory_provider/juniper.py | 19 +++++++++++-------- 1 file changed, 11 insertions(+), 8 deletions(-) diff --git a/inventory_provider/juniper.py b/inventory_provider/juniper.py index 9a8af475..7cda57d2 100644 --- a/inventory_provider/juniper.py +++ b/inventory_provider/juniper.py @@ -384,22 +384,25 @@ def load_routers_from_junosspace(config): logger.error('%d.%d: %s' % (e.line, e.column, e.message)) assert False - for d in devices.xpath('//devices/device'): - name = d.xpath('./name/text()')[0] + def _derive_hostname(n): # TODO: ask ops if this name->hostname operation is valid + if name.endswith('geant.net'): + return name m = re.match(r'^(.*?)(\.re\d+)?$', name) if m: - hostname = m.group(1) + '.geant.net' - else: - logger.error( - 'unrecognized junosspace device name format :%s' % name) - hostname = None + return m.group(1) + '.geant.net' + logger.error( + 'unrecognized junosspace device name format :%s' % name) + return None + + for d in devices.xpath('//devices/device'): + name = d.xpath('./name/text()')[0] yield { "OSVersion": d.xpath('./OSVersion/text()')[0], "platform": d.xpath('./platform/text()')[0], "address": d.xpath('./ipAddr/text()')[0], "name": name, - "hostname": hostname + "hostname": _derive_hostname(name) } -- GitLab