Commit e0bd3455 authored by Francisco-Javier Moreno-Muro's avatar Francisco-Javier Moreno-Muro
Browse files

Added sliceID field to the DBs

parent b61629b3
Loading
Loading
Loading
Loading
+4 −3
Original line number Diff line number Diff line
@@ -39,6 +39,7 @@ class ManagementDB():
                    device_id INTEGER,
                    endpoint_id INTEGER,
                    service_id INTEGER,
                    slice_id INTEGER,
                    connection_id INTEGER
                );
            """)
@@ -85,13 +86,13 @@ class ManagementDB():
            LOGGER.debug(f"Alarm table cannot be created in the ManagementDB. {e}")
            raise Exception

    def insert_KPI(self,kpi_description,kpi_sample_type,device_id,endpoint_id,service_id,connection_id):
    def insert_KPI(self,kpi_description,kpi_sample_type,device_id,endpoint_id,service_id,slice_id,connection_id):
        try:
            c = self.client.cursor()
            c.execute("SELECT kpi_id FROM kpi WHERE device_id is ? AND kpi_sample_type is ? AND endpoint_id is ? AND service_id is ? AND connection_id is ?",(device_id,kpi_sample_type,endpoint_id,service_id, connection_id))
            c.execute("SELECT kpi_id FROM kpi WHERE device_id is ? AND kpi_sample_type is ? AND endpoint_id is ? AND service_id is ? AND slice_id is ? AND connection_id is ?",(device_id,kpi_sample_type,endpoint_id,service_id,slice_id,connection_id))
            data=c.fetchone()
            if data is None:
                c.execute("INSERT INTO kpi (kpi_description,kpi_sample_type,device_id,endpoint_id,service_id,connection_id) VALUES (?,?,?,?,?,?)", (kpi_description,kpi_sample_type,device_id,endpoint_id,service_id, connection_id))
                c.execute("INSERT INTO kpi (kpi_description,kpi_sample_type,device_id,endpoint_id,service_id,slice_id,connection_id) VALUES (?,?,?,?,?,?,?)", (kpi_description,kpi_sample_type,device_id,endpoint_id,service_id,slice_id,connection_id))
                self.client.commit()
                kpi_id = c.lastrowid
                LOGGER.debug(f"KPI {kpi_id} succesfully inserted in the ManagementDB")
+3 −1
Original line number Diff line number Diff line
@@ -87,6 +87,7 @@ class MetricsDB():
                    'device_id SYMBOL,' \
                    'endpoint_id SYMBOL,' \
                    'service_id SYMBOL,' \
                    'slice_id SYMBOL,' \
                    'connection_id SYMBOL,' \
                    'timestamp TIMESTAMP,' \
                    'kpi_value DOUBLE)' \
@@ -98,7 +99,7 @@ class MetricsDB():
            LOGGER.debug(f"Table {self.table} cannot be created. {e}")
            raise Exception

    def write_KPI(self, time, kpi_id, kpi_sample_type, device_id, endpoint_id, service_id,connection_id, kpi_value):
    def write_KPI(self, time, kpi_id, kpi_sample_type, device_id, endpoint_id, service_id, slice_id, connection_id, kpi_value):
        counter = 0
        while (counter < self.retries):
            try:
@@ -111,6 +112,7 @@ class MetricsDB():
                            'device_id': device_id,
                            'endpoint_id': endpoint_id,
                            'service_id': service_id,
                            'slice_id': slice_id,
                            'connection_id': connection_id,},
                        columns={
                            'kpi_value': kpi_value},
+19 −16
Original line number Diff line number Diff line
@@ -85,16 +85,16 @@ class MonitoringServiceServicerImpl(MonitoringServiceServicer):
            kpi_device_id = request.device_id.device_uuid.uuid
            kpi_endpoint_id = request.endpoint_id.endpoint_uuid.uuid
            kpi_service_id = request.service_id.service_uuid.uuid
            kpi_slice_id = request.slice_id.slice_uuid.uuid
            kpi_connection_id = request.connection_id.connection_uuid.uuid

            LOGGER.debug(kpi_connection_id)

            if request.kpi_id.kpi_id.uuid is not "":
                response.kpi_id.uuid = request.kpi_id.kpi_id.uuid
            #     Here the code to modify an existing kpi
            else:
                data = self.management_db.insert_KPI(
                    kpi_description, kpi_sample_type, kpi_device_id, kpi_endpoint_id, kpi_service_id, kpi_connection_id)
                    kpi_description, kpi_sample_type, kpi_device_id, kpi_endpoint_id, kpi_service_id, kpi_slice_id, kpi_connection_id)
                response.kpi_id.uuid = str(data)

            return response
@@ -139,7 +139,8 @@ class MonitoringServiceServicerImpl(MonitoringServiceServicer):
                kpiDescriptor.device_id.device_uuid.uuid            = str(kpi_db[3])
                kpiDescriptor.endpoint_id.endpoint_uuid.uuid        = str(kpi_db[4])
                kpiDescriptor.service_id.service_uuid.uuid          = str(kpi_db[5])
                kpiDescriptor.connection_id.connection_uuid.uuid = str(kpi_db[6])
                kpiDescriptor.slice_id.slice_uuid.uuid              = str(kpi_db[6])
                kpiDescriptor.connection_id.connection_uuid.uuid    = str(kpi_db[7])
            return kpiDescriptor
        except ServiceException as e:
            LOGGER.exception('GetKpiDescriptor exception')
@@ -164,7 +165,8 @@ class MonitoringServiceServicerImpl(MonitoringServiceServicer):
                kpi_descriptor.device_id.device_uuid.uuid           = str(item[3])
                kpi_descriptor.endpoint_id.endpoint_uuid.uuid       = str(item[4])
                kpi_descriptor.service_id.service_uuid.uuid         = str(item[5])
                kpi_descriptor.connection_id.connection_uuid.uuid = str(item[6])
                kpi_descriptor.slice_id.slice_uuid.uuid             = str(item[6])
                kpi_descriptor.connection_id.connection_uuid.uuid   = str(item[7])

                kpi_descriptor_list.kpi_descriptor_list.append(kpi_descriptor)

@@ -191,12 +193,13 @@ class MonitoringServiceServicerImpl(MonitoringServiceServicer):
                deviceId = kpiDescriptor.device_id.device_uuid.uuid
                endpointId = kpiDescriptor.endpoint_id.endpoint_uuid.uuid
                serviceId = kpiDescriptor.service_id.service_uuid.uuid
                sliceId   = kpiDescriptor.slice_id.slice_uuid.uuid
                connectionId = kpiDescriptor.connection_id.connection_uuid.uuid
                time_stamp = request.timestamp.timestamp
                kpi_value = getattr(request.kpi_value, request.kpi_value.WhichOneof('value'))

                # Build the structure to be included as point in the MetricsDB
                self.metrics_db.write_KPI(time_stamp, kpiId, kpiSampleType, deviceId, endpointId, serviceId, connectionId, kpi_value)
                self.metrics_db.write_KPI(time_stamp, kpiId, kpiSampleType, deviceId, endpointId, serviceId, sliceId, connectionId, kpi_value)

            return Empty()
        except ServiceException as e:
+3 −0
Original line number Diff line number Diff line
@@ -29,6 +29,7 @@ def create_kpi_request():
    _create_kpi_request.kpi_sample_type                = KpiSampleType.KPISAMPLETYPE_PACKETS_TRANSMITTED
    _create_kpi_request.device_id.device_uuid.uuid     = 'DEV1'     # pylint: disable=maybe-no-member
    _create_kpi_request.service_id.service_uuid.uuid   = 'SERV1'    # pylint: disable=maybe-no-member
    _create_kpi_request.slice_id.slice_uuid.uuid       = 'SLC1'  # pylint: disable=maybe-no-member
    _create_kpi_request.endpoint_id.endpoint_uuid.uuid = 'END1'     # pylint: disable=maybe-no-member
    _create_kpi_request.connection_id.connection_uuid.uuid = 'CON1'  # pylint: disable=maybe-no-member
    return _create_kpi_request
@@ -39,6 +40,7 @@ def create_kpi_request_b():
    _create_kpi_request.kpi_sample_type                = KpiSampleType.KPISAMPLETYPE_PACKETS_RECEIVED
    _create_kpi_request.device_id.device_uuid.uuid     = 'DEV2'     # pylint: disable=maybe-no-member
    _create_kpi_request.service_id.service_uuid.uuid   = 'SERV2'    # pylint: disable=maybe-no-member
    _create_kpi_request.slice_id.slice_uuid.uuid       = 'SLC2'  # pylint: disable=maybe-no-member
    _create_kpi_request.endpoint_id.endpoint_uuid.uuid = 'END2'     # pylint: disable=maybe-no-member
    _create_kpi_request.connection_id.connection_uuid.uuid = 'CON2'  # pylint: disable=maybe-no-member
    return _create_kpi_request
@@ -49,6 +51,7 @@ def create_kpi_request_c():
    _create_kpi_request.kpi_sample_type                = KpiSampleType.KPISAMPLETYPE_PACKETS_RECEIVED
    _create_kpi_request.device_id.device_uuid.uuid     = 'DEV3'     # pylint: disable=maybe-no-member
    _create_kpi_request.service_id.service_uuid.uuid   = 'SERV3'    # pylint: disable=maybe-no-member
    _create_kpi_request.slice_id.slice_uuid.uuid       = 'SLC3'  # pylint: disable=maybe-no-member
    _create_kpi_request.endpoint_id.endpoint_uuid.uuid = 'END3'     # pylint: disable=maybe-no-member
    _create_kpi_request.connection_id.connection_uuid.uuid = 'CON3'  # pylint: disable=maybe-no-member
    return _create_kpi_request
+6 −3
Original line number Diff line number Diff line
@@ -395,9 +395,10 @@ def test_managementdb_tools_insert_kpi(management_db): # pylint: disable=redefin
    kpi_device_id   = _create_kpi_request.device_id.device_uuid.uuid     # pylint: disable=maybe-no-member
    kpi_endpoint_id = _create_kpi_request.endpoint_id.endpoint_uuid.uuid # pylint: disable=maybe-no-member
    kpi_service_id  = _create_kpi_request.service_id.service_uuid.uuid   # pylint: disable=maybe-no-member
    kpi_slice_id = _create_kpi_request.slice_id.slice_uuid.uuid
    kpi_connection_id = _create_kpi_request.connection_id.connection_uuid.uuid

    response = management_db.insert_KPI(kpi_description, kpi_sample_type, kpi_device_id, kpi_endpoint_id, kpi_service_id,kpi_connection_id)
    response = management_db.insert_KPI(kpi_description, kpi_sample_type, kpi_device_id, kpi_endpoint_id, kpi_service_id,kpi_slice_id,kpi_connection_id)
    assert isinstance(response, int)

def test_managementdb_tools_get_kpi(management_db): # pylint: disable=redefined-outer-name
@@ -408,9 +409,10 @@ def test_managementdb_tools_get_kpi(management_db): # pylint: disable=redefined-
    kpi_device_id   = _create_kpi_request.device_id.device_uuid.uuid     # pylint: disable=maybe-no-member
    kpi_endpoint_id = _create_kpi_request.endpoint_id.endpoint_uuid.uuid # pylint: disable=maybe-no-member
    kpi_service_id  = _create_kpi_request.service_id.service_uuid.uuid   # pylint: disable=maybe-no-member
    kpi_slice_id = _create_kpi_request.slice_id.slice_uuid.uuid
    kpi_connection_id  = _create_kpi_request.connection_id.connection_uuid.uuid

    _kpi_id = management_db.insert_KPI(kpi_description, kpi_sample_type, kpi_device_id, kpi_endpoint_id, kpi_service_id,kpi_connection_id)
    _kpi_id = management_db.insert_KPI(kpi_description, kpi_sample_type, kpi_device_id, kpi_endpoint_id, kpi_service_id,kpi_slice_id,kpi_connection_id)
    response = management_db.get_KPI(_kpi_id)
    assert isinstance(response, tuple)

@@ -428,10 +430,11 @@ def test_managementdb_tools_delete_kpi(management_db): # pylint: disable=redefin
    kpi_device_id = _create_kpi_request.device_id.device_uuid.uuid  # pylint: disable=maybe-no-member
    kpi_endpoint_id = _create_kpi_request.endpoint_id.endpoint_uuid.uuid  # pylint: disable=maybe-no-member
    kpi_service_id = _create_kpi_request.service_id.service_uuid.uuid  # pylint: disable=maybe-no-member
    kpi_slice_id = _create_kpi_request.slice_id.slice_uuid.uuid
    kpi_connection_id = _create_kpi_request.connection_id.connection_uuid.uuid

    _kpi_id = management_db.insert_KPI(kpi_description, kpi_sample_type, kpi_device_id, kpi_endpoint_id,
                                        kpi_service_id, kpi_connection_id)
                                        kpi_service_id, kpi_slice_id, kpi_connection_id)

    response = management_db.delete_KPI(_kpi_id)