From 6fb43483771415eb9c15937238f5d07ce9689b35 Mon Sep 17 00:00:00 2001 From: Robert Latta <robert.latta@geant.org> Date: Thu, 9 Jun 2022 15:41:29 +0000 Subject: [PATCH] added customer type to related customers data --- inventory_provider/db/ims.py | 11 +++++++++++ inventory_provider/db/ims_data.py | 27 +++++++++++++-------------- 2 files changed, 24 insertions(+), 14 deletions(-) diff --git a/inventory_provider/db/ims.py b/inventory_provider/db/ims.py index da9de868..ef5210af 100644 --- a/inventory_provider/db/ims.py +++ b/inventory_provider/db/ims.py @@ -148,6 +148,17 @@ IMS_SERVICE_NAMES = { } +class CustomerType(Enum): + COMMERCIAL_PEER = 1 + CONNECTIVITY_SUPPLIER = 2 + EU_NREN = 3 + HOUSING_SUPPLIER = 4 + IX_SUPPLIER = 5 + OTHER = 6 + R_AND_E_PEER = 7 + UNKNOWN = 'UNKNOWN' + + class InventoryStatus(Enum): PLANNED = 1 READY_FOR_SERVICE = 2 diff --git a/inventory_provider/db/ims_data.py b/inventory_provider/db/ims_data.py index f6e15153..2d616f09 100644 --- a/inventory_provider/db/ims_data.py +++ b/inventory_provider/db/ims_data.py @@ -2,8 +2,7 @@ import logging import re from collections import defaultdict from copy import copy -from itertools import chain, groupby -from operator import itemgetter +from itertools import chain from inventory_provider import environment from inventory_provider.db import ims @@ -127,20 +126,20 @@ def get_customer_service_emails(ds: IMS): def get_circuit_related_customers(ds: IMS): - relations = sorted( - list( - ds.get_filtered_entities( + + return_value = defaultdict(list) + for ccr in ds.get_filtered_entities( 'CircuitCustomerRelation', 'circuit.inventoryStatusId== 3', - ims.CIRCUIT_CUSTOMER_RELATION['Customer'] - ) - ), key=itemgetter('circuitid')) - - return {k: [{ - 'id': c['customer']['id'], - 'name': c['customer']['name'] - } for c in v] for k, v in - groupby(relations, key=itemgetter('circuitid'))} + ims.CIRCUIT_CUSTOMER_RELATION['Customer']): + return_value[ccr['circuitid']].append( + { + 'id': ccr['customer']['id'], + 'name': ccr['customer']['name'], + 'type': ccr['customer']['customertypeid'] + } + ) + return return_value def get_port_id_services(ds: IMS): -- GitLab