diff --git a/inventory_provider/db/opsdb.py b/inventory_provider/db/opsdb.py index 392f235962b121ad21e58514889925c74c46c9b1..092d34861c48b8c9c0df79d1b4946fa2ef4ecf07 100644 --- a/inventory_provider/db/opsdb.py +++ b/inventory_provider/db/opsdb.py @@ -129,7 +129,10 @@ retrieve_services_query = """SELECT * AND pp_b.port = cc.port_b WHERE c.status != 'terminated' AND is_circuit = 1) AS inner_query - WHERE circuit_type IN ('path', 'service', 'l2circuit') + WHERE + equipment IS NOT NULL + AND equipment != '' + AND circuit_type IN ('path', 'service', 'l2circuit') ORDER BY name, FIELD(status, diff --git a/inventory_provider/tasks/worker.py b/inventory_provider/tasks/worker.py index 045bef10e7c2cd8a641673c6b305e01b479ca0ae..a3fd3a270f9fe961e4880f4266c4baeb1a6eed38 100644 --- a/inventory_provider/tasks/worker.py +++ b/inventory_provider/tasks/worker.py @@ -448,6 +448,7 @@ def reload_router_config(self, hostname): def _derive_router_hostnames(config): + logger = logging.getLogger(__name__) r = get_redis(config) junosspace_equipment = set() for k in r.keys('junosspace:*'): @@ -460,8 +461,11 @@ def _derive_router_hostnames(config): m = re.match( 'opsdb:interface_services:([^:]+):.*$', k.decode('utf-8')) - opsdb_equipment.add(m.group(1)) - + if m: + opsdb_equipment.add(m.group(1)) + else: + logger.info("Unable to derive router name from %s" % + k.decode('utf-8')) return junosspace_equipment & opsdb_equipment