Fix Bug 2234 Upgrading Python libjuju to 2.9.42.1 30/13230/5
authorGulsum Atici <gulsum.atici@canonical.com>
Tue, 18 Apr 2023 20:30:13 +0000 (23:30 +0300)
committerGulsum Atici <gulsum.atici@canonical.com>
Wed, 19 Apr 2023 09:29:25 +0000 (12:29 +0300)
Change-Id: I0b013fbe971c9bbf0f609207bbfe65b56cbc85ed
Signed-off-by: Gulsum Atici <gulsum.atici@canonical.com>
osm_mon/collector/infra_collectors/base_osinfra.py
osm_mon/collector/infra_collectors/vmware.py
osm_mon/collector/vnf_collectors/openstack.py
requirements-dev.txt
requirements-test.txt
requirements.txt

index 018aa9a..8ab34e4 100644 (file)
@@ -66,7 +66,9 @@ class BaseOpenStackInfraCollector(BaseVimInfraCollector):
         metrics.append(vim_status_metric)
         vnfrs = self.common_db.get_vnfrs(vim_account_id=self.vim_account["_id"])
         if self.conf.get("collector", "vm_infra_metrics"):
-            vm_infra_metrics_enabled = str(self.conf.get("collector", "vm_infra_metrics")).lower() in ("yes", "true", "1")
+            vm_infra_metrics_enabled = str(
+                self.conf.get("collector", "vm_infra_metrics")
+            ).lower() in ("yes", "true", "1")
         else:
             vm_infra_metrics_enabled = True
         if vm_infra_metrics_enabled:
@@ -94,7 +96,7 @@ class BaseOpenStackInfraCollector(BaseVimInfraCollector):
                     }
                     try:
                         vm = self.nova.servers.get(resource_uuid)
-                        vm_status = (0 if (vm.status == 'ERROR') else 1)
+                        vm_status = 0 if (vm.status == "ERROR") else 1
                         vm_status_metric = Metric(tags, "vm_status", vm_status)
                     except Exception as e:
                         log.warning("VM status is not OK: %s" % e)
@@ -116,42 +118,104 @@ class BaseOpenStackInfraCollector(BaseVimInfraCollector):
             vimacc_resources = self.vim_account["resources"]
             # Compute resources
             try:
-                com_lim = self.nova.limits.get()._info['absolute']
-                if ("compute" in vimacc_resources) \
-                   and ((vimacc_resources["compute"]["ram"]["total"] != com_lim['maxTotalRAMSize'])
-                   or (vimacc_resources["compute"]["vcpus"]["total"] != com_lim['maxTotalCores'])
-                   or (vimacc_resources["compute"]["ram"]["used"] != com_lim['totalRAMUsed'])
-                   or (vimacc_resources["compute"]["vcpus"]["used"] != com_lim['totalCoresUsed'])
-                   or (vimacc_resources["compute"]["instances"]["total"] != com_lim['maxTotalInstances'])
-                   or (vimacc_resources["compute"]["instances"]["used"] != com_lim['totalInstancesUsed'])):
-                    update_dict = {"resources.compute": {"ram": {"total": com_lim['maxTotalRAMSize'],
-                                                                 "used": com_lim['totalRAMUsed']},
-                                                         "vcpus": {"total": com_lim['maxTotalCores'],
-                                                                   "used": com_lim['totalCoresUsed']},
-                                                         "instances": {"total": com_lim['maxTotalInstances'],
-                                                                       "used": com_lim['totalInstancesUsed']}}}
-                    suc_value = self.common_db.set_vim_account(str(self.vim_account['_id']), update_dict)
+                com_lim = self.nova.limits.get()._info["absolute"]
+                if ("compute" in vimacc_resources) and (
+                    (
+                        vimacc_resources["compute"]["ram"]["total"]
+                        != com_lim["maxTotalRAMSize"]
+                    )
+                    or (
+                        vimacc_resources["compute"]["vcpus"]["total"]
+                        != com_lim["maxTotalCores"]
+                    )
+                    or (
+                        vimacc_resources["compute"]["ram"]["used"]
+                        != com_lim["totalRAMUsed"]
+                    )
+                    or (
+                        vimacc_resources["compute"]["vcpus"]["used"]
+                        != com_lim["totalCoresUsed"]
+                    )
+                    or (
+                        vimacc_resources["compute"]["instances"]["total"]
+                        != com_lim["maxTotalInstances"]
+                    )
+                    or (
+                        vimacc_resources["compute"]["instances"]["used"]
+                        != com_lim["totalInstancesUsed"]
+                    )
+                ):
+                    update_dict = {
+                        "resources.compute": {
+                            "ram": {
+                                "total": com_lim["maxTotalRAMSize"],
+                                "used": com_lim["totalRAMUsed"],
+                            },
+                            "vcpus": {
+                                "total": com_lim["maxTotalCores"],
+                                "used": com_lim["totalCoresUsed"],
+                            },
+                            "instances": {
+                                "total": com_lim["maxTotalInstances"],
+                                "used": com_lim["totalInstancesUsed"],
+                            },
+                        }
+                    }
+                    suc_value = self.common_db.set_vim_account(
+                        str(self.vim_account["_id"]), update_dict
+                    )
                     log.info("Compute resources update in mongoDB  = %s" % suc_value)
             except Exception as e:
                 log.warning("Error in updating compute resources: %s" % e)
 
             # Volume resources
             try:
-                vol_lim = self.cinder.limits.get()._info['absolute']
-                if ("storage" in vimacc_resources) and\
-                   ((vimacc_resources["storage"]["volumes"]["total"] != vol_lim['maxTotalVolumes'])
-                   or (vimacc_resources["storage"]["snapshots"]["total"] != vol_lim['maxTotalSnapshots'])
-                   or (vimacc_resources["storage"]["volumes"]["used"] != vol_lim['totalVolumesUsed'])
-                   or (vimacc_resources["storage"]["snapshots"]["used"] != vol_lim['totalSnapshotsUsed'])
-                   or (vimacc_resources["storage"]["storage"]["total"] != vol_lim['maxTotalVolumeGigabytes'])
-                   or (vimacc_resources["storage"]["storage"]["used"] != vol_lim['totalGigabytesUsed'])):
-                    update_dict = {"resources.storage": {"volumes": {"total": vol_lim['maxTotalVolumes'],
-                                                                     "used": vol_lim['totalVolumesUsed']},
-                                                         "snapshots": {"total": vol_lim['maxTotalSnapshots'],
-                                                                       "used": vol_lim['totalSnapshotsUsed']},
-                                                         "storage": {"total": vol_lim['maxTotalVolumeGigabytes'],
-                                                                     "used": vol_lim['totalGigabytesUsed']}}}
-                    suc_value = self.common_db.set_vim_account(str(self.vim_account['_id']), update_dict)
+                vol_lim = self.cinder.limits.get()._info["absolute"]
+                if ("storage" in vimacc_resources) and (
+                    (
+                        vimacc_resources["storage"]["volumes"]["total"]
+                        != vol_lim["maxTotalVolumes"]
+                    )
+                    or (
+                        vimacc_resources["storage"]["snapshots"]["total"]
+                        != vol_lim["maxTotalSnapshots"]
+                    )
+                    or (
+                        vimacc_resources["storage"]["volumes"]["used"]
+                        != vol_lim["totalVolumesUsed"]
+                    )
+                    or (
+                        vimacc_resources["storage"]["snapshots"]["used"]
+                        != vol_lim["totalSnapshotsUsed"]
+                    )
+                    or (
+                        vimacc_resources["storage"]["storage"]["total"]
+                        != vol_lim["maxTotalVolumeGigabytes"]
+                    )
+                    or (
+                        vimacc_resources["storage"]["storage"]["used"]
+                        != vol_lim["totalGigabytesUsed"]
+                    )
+                ):
+                    update_dict = {
+                        "resources.storage": {
+                            "volumes": {
+                                "total": vol_lim["maxTotalVolumes"],
+                                "used": vol_lim["totalVolumesUsed"],
+                            },
+                            "snapshots": {
+                                "total": vol_lim["maxTotalSnapshots"],
+                                "used": vol_lim["totalSnapshotsUsed"],
+                            },
+                            "storage": {
+                                "total": vol_lim["maxTotalVolumeGigabytes"],
+                                "used": vol_lim["totalGigabytesUsed"],
+                            },
+                        }
+                    }
+                    suc_value = self.common_db.set_vim_account(
+                        str(self.vim_account["_id"]), update_dict
+                    )
                     log.info("Volume resources update in mongoDB = %s" % suc_value)
             except Exception as e:
                 log.warning("Error in updating volume resources: %s" % e)
@@ -159,20 +223,51 @@ class BaseOpenStackInfraCollector(BaseVimInfraCollector):
             # Network resources
             try:
                 net_lim = self.neutron.show_quota_details(self.tenant_id)["quota"]
-                if ("network" in vimacc_resources) and\
-                   ((vimacc_resources["network"]["networks"]["total"] != net_lim["network"]["limit"])
-                   or (vimacc_resources["network"]["networks"]["used"] != net_lim['network']['used'])
-                   or (vimacc_resources["network"]["subnets"]["total"] != net_lim['subnet']['limit'])
-                   or (vimacc_resources["network"]["subnets"]["used"] != net_lim['subnet']['used'])
-                   or (vimacc_resources["network"]["floating_ips"]["total"] != net_lim['floatingip']['limit'])
-                   or (vimacc_resources["network"]["floating_ips"]["used"] != net_lim['floatingip']['used'])):
-                    update_dict = {"resources.network": {"networks": {"total": net_lim['network']['limit'],
-                                                                      "used": net_lim['network']['used']},
-                                                         "subnets": {"total": net_lim['subnet']['limit'],
-                                                                     "used": net_lim['subnet']['used']},
-                                                         "floating_ips": {"total": net_lim['floatingip']['limit'],
-                                                                          "used": net_lim['floatingip']['used']}}}
-                    suc_value = self.common_db.set_vim_account(str(self.vim_account['_id']), update_dict)
+                if ("network" in vimacc_resources) and (
+                    (
+                        vimacc_resources["network"]["networks"]["total"]
+                        != net_lim["network"]["limit"]
+                    )
+                    or (
+                        vimacc_resources["network"]["networks"]["used"]
+                        != net_lim["network"]["used"]
+                    )
+                    or (
+                        vimacc_resources["network"]["subnets"]["total"]
+                        != net_lim["subnet"]["limit"]
+                    )
+                    or (
+                        vimacc_resources["network"]["subnets"]["used"]
+                        != net_lim["subnet"]["used"]
+                    )
+                    or (
+                        vimacc_resources["network"]["floating_ips"]["total"]
+                        != net_lim["floatingip"]["limit"]
+                    )
+                    or (
+                        vimacc_resources["network"]["floating_ips"]["used"]
+                        != net_lim["floatingip"]["used"]
+                    )
+                ):
+                    update_dict = {
+                        "resources.network": {
+                            "networks": {
+                                "total": net_lim["network"]["limit"],
+                                "used": net_lim["network"]["used"],
+                            },
+                            "subnets": {
+                                "total": net_lim["subnet"]["limit"],
+                                "used": net_lim["subnet"]["used"],
+                            },
+                            "floating_ips": {
+                                "total": net_lim["floatingip"]["limit"],
+                                "used": net_lim["floatingip"]["used"],
+                            },
+                        }
+                    }
+                    suc_value = self.common_db.set_vim_account(
+                        str(self.vim_account["_id"]), update_dict
+                    )
                     log.info("Network resources update in mongoDB = %s" % suc_value)
             except Exception as e:
                 log.warning("Error in updating network resources: %s" % e)
@@ -193,4 +288,7 @@ class BaseOpenStackInfraCollector(BaseVimInfraCollector):
     def _build_neutron_client(self, vim_account: dict) -> tuple:
         # sess = OpenstackUtils.get_session(vim_account)
         tenant_id = self.vim_session.get_project_id()
-        return neutron_client.Client("2", session=self.vim_session, timeout=10), tenant_id
+        return (
+            neutron_client.Client("2", session=self.vim_session, timeout=10),
+            tenant_id,
+        )
index 6547ab8..3c65270 100644 (file)
@@ -195,7 +195,9 @@ class VMwareInfraCollector(BaseVimInfraCollector):
         metrics.append(vim_status_metric)
         vnfrs = self.common_db.get_vnfrs(vim_account_id=vim_account_id)
         if self.conf.get("collector", "vm_infra_metrics"):
-            vm_infra_metrics_enabled = str(self.conf.get("collector", "vm_infra_metrics")).lower() in ("yes", "true", "1")
+            vm_infra_metrics_enabled = str(
+                self.conf.get("collector", "vm_infra_metrics")
+            ).lower() in ("yes", "true", "1")
         else:
             vm_infra_metrics_enabled = True
         if vm_infra_metrics_enabled:
index a823b67..be2bdb7 100644 (file)
@@ -63,7 +63,7 @@ METRIC_MAPPINGS_FOR_ROCKY_AND_NEWER_RELEASES = {
     "disk_read_bytes": "disk.device.read.bytes",
     "disk_write_bytes": "disk.device.write.bytes",
     "packets_received": "network.incoming.packets",
-    "packets_sent": "network.outgoing.packets"
+    "packets_sent": "network.outgoing.packets",
 }
 
 METRIC_MULTIPLIERS = {"cpu": 0.0000001}
@@ -89,7 +89,7 @@ class MetricType(Enum):
     INSTANCE = "instance"
     INTERFACE_ALL = "interface_all"
     INTERFACE_ONE = "interface_one"
-    INSTANCEDISK = 'instancedisk'
+    INSTANCEDISK = "instancedisk"
 
 
 class OpenstackCollector(BaseVimCollector):
@@ -161,16 +161,25 @@ class OpenstackCollector(BaseVimCollector):
                             metric_type, openstack_metric_name, resource_id
                         )
 
-                        if value is None and metric_name in METRIC_MAPPINGS_FOR_ROCKY_AND_NEWER_RELEASES and type(self.backend) is not PrometheusTSBDBackend:
+                        if (
+                            value is None
+                            and metric_name
+                            in METRIC_MAPPINGS_FOR_ROCKY_AND_NEWER_RELEASES
+                            and type(self.backend) is not PrometheusTSBDBackend
+                        ):
                             # Reattempting metric collection with new metric names.
                             # Some metric names have changed in newer Openstack releases
                             log.info(
                                 "Reattempting metric collection for type: %s and name: %s and resource_id %s",
                                 metric_type,
                                 metric_name,
-                                resource_id
+                                resource_id,
+                            )
+                            openstack_metric_name = (
+                                METRIC_MAPPINGS_FOR_ROCKY_AND_NEWER_RELEASES[
+                                    metric_name
+                                ]
                             )
-                            openstack_metric_name = METRIC_MAPPINGS_FOR_ROCKY_AND_NEWER_RELEASES[metric_name]
                             value = self.backend.collect_metric(
                                 metric_type, openstack_metric_name, resource_id
                             )
@@ -240,21 +249,23 @@ class PrometheusTSBDBackend(OpenstackBackend):
 
     def _build_prometheus_client(self, vim_account: dict) -> prometheus_client:
         url = vim_account["prometheus-config"]["prometheus_url"]
-        return prometheus_client(url, disable_ssl = True)
+        return prometheus_client(url, disable_ssl=True)
 
     def collect_metric(
         self, metric_type: MetricType, metric_name: str, resource_id: str
-        ):
+    ):
         metric = self.query_metric(metric_name, resource_id)
         return metric["value"][1] if metric else None
 
     def map_metric(self, metric_name: str):
         return self.map[metric_name]
 
-    def query_metric(self, metric_name, resource_id = None):
-        metrics = self.client.get_current_metric_value(metric_name = metric_name)
+    def query_metric(self, metric_name, resource_id=None):
+        metrics = self.client.get_current_metric_value(metric_name=metric_name)
         if resource_id:
-            metric = next(filter(lambda x: resource_id in x["metric"]["resource_id"], metrics))
+            metric = next(
+                filter(lambda x: resource_id in x["metric"]["resource_id"], metrics)
+            )
             return metric
         return metrics
 
@@ -264,10 +275,14 @@ class GnocchiBackend(OpenstackBackend):
         self.client = self._build_gnocchi_client(vim_account, vim_session)
         self.neutron = self._build_neutron_client(vim_account, vim_session)
 
-    def _build_gnocchi_client(self, vim_account: dict, vim_session: object) -> gnocchi_client.Client:
+    def _build_gnocchi_client(
+        self, vim_account: dict, vim_session: object
+    ) -> gnocchi_client.Client:
         return gnocchi_client.Client(session=vim_session)
 
-    def _build_neutron_client(self, vim_account: dict, vim_session: object) -> neutron_client.Client:
+    def _build_neutron_client(
+        self, vim_account: dict, vim_session: object
+    ) -> neutron_client.Client:
         return neutron_client.Client(session=vim_session)
 
     def collect_metric(
@@ -313,20 +328,24 @@ class GnocchiBackend(OpenstackBackend):
     def _collect_instance_disk_metric(self, openstack_metric_name, resource_id):
         value = None
         instances = self.client.resource.search(
-            resource_type='instance_disk',
-            query={'=': {'instance_id': resource_id}},
+            resource_type="instance_disk",
+            query={"=": {"instance_id": resource_id}},
         )
         for instance in instances:
             try:
                 measures = self.client.metric.get_measures(
-                    openstack_metric_name, resource_id=instance['id'], limit=1
+                    openstack_metric_name, resource_id=instance["id"], limit=1
                 )
                 if measures:
                     value = measures[-1][2]
 
             except gnocchiclient.exceptions.NotFound as e:
-                log.debug("No metric %s found for instance disk %s: %s", openstack_metric_name,
-                          instance['id'], e)
+                log.debug(
+                    "No metric %s found for instance disk %s: %s",
+                    openstack_metric_name,
+                    instance["id"],
+                    e,
+                )
         return value
 
     def _collect_instance_metric(self, openstack_metric_name, resource_id):
@@ -396,7 +415,9 @@ class CeilometerBackend(OpenstackBackend):
     def __init__(self, vim_account: dict, vim_session: object):
         self.client = self._build_ceilometer_client(vim_account, vim_session)
 
-    def _build_ceilometer_client(self, vim_account: dict, vim_session: object) -> ceilometer_client.Client:
+    def _build_ceilometer_client(
+        self, vim_account: dict, vim_session: object
+    ) -> ceilometer_client.Client:
         return ceilometer_client.Client("2", session=vim_session)
 
     def collect_metric(
index d6af767..7b20a0c 100644 (file)
 -e git+https://osm.etsi.org/gerrit/osm/common.git@master#egg=osm-common
     # via -r requirements-dev.in
 aiokafka==0.7.2
-    # via -r https://osm.etsi.org/gitweb/?p=osm/common.git;a=blob_plain;f=requirements.txt;hb=master
+    # via -r ../common/requirements.txt
 async-timeout==3.0.1
     # via
-    #   -r https://osm.etsi.org/gitweb/?p=osm/N2VC.git;a=blob_plain;f=requirements.txt;hb=master
+    #   -r ../N2VC/requirements.txt
     #   retrying-async
-bcrypt==3.2.2
+bcrypt==4.0.1
     # via
-    #   -r https://osm.etsi.org/gitweb/?p=osm/N2VC.git;a=blob_plain;f=requirements.txt;hb=master
+    #   -r ../N2VC/requirements.txt
     #   paramiko
-cachetools==5.2.0
+cachetools==5.3.0
     # via
-    #   -r https://osm.etsi.org/gitweb/?p=osm/N2VC.git;a=blob_plain;f=requirements.txt;hb=master
+    #   -r ../N2VC/requirements.txt
     #   google-auth
-certifi==2022.6.15
+certifi==2022.12.7
     # via
-    #   -r https://osm.etsi.org/gitweb/?p=osm/N2VC.git;a=blob_plain;f=requirements.txt;hb=master
+    #   -r ../N2VC/requirements.txt
     #   kubernetes
     #   requests
-cffi==1.15.0
+cffi==1.15.1
     # via
-    #   -r https://osm.etsi.org/gitweb/?p=osm/N2VC.git;a=blob_plain;f=requirements.txt;hb=master
-    #   bcrypt
+    #   -r ../N2VC/requirements.txt
     #   cryptography
     #   pynacl
-charset-normalizer==2.0.12
+charset-normalizer==3.1.0
     # via
-    #   -r https://osm.etsi.org/gitweb/?p=osm/N2VC.git;a=blob_plain;f=requirements.txt;hb=master
+    #   -r ../N2VC/requirements.txt
     #   requests
-cryptography==37.0.2
+cryptography==40.0.2
     # via
-    #   -r https://osm.etsi.org/gitweb/?p=osm/N2VC.git;a=blob_plain;f=requirements.txt;hb=master
+    #   -r ../N2VC/requirements.txt
     #   paramiko
 dataclasses==0.6
-    # via -r https://osm.etsi.org/gitweb/?p=osm/common.git;a=blob_plain;f=requirements.txt;hb=master
-google-auth==2.8.0
+    # via -r ../common/requirements.txt
+google-auth==2.17.3
     # via
-    #   -r https://osm.etsi.org/gitweb/?p=osm/N2VC.git;a=blob_plain;f=requirements.txt;hb=master
+    #   -r ../N2VC/requirements.txt
     #   kubernetes
-idna==3.3
+idna==3.4
     # via
-    #   -r https://osm.etsi.org/gitweb/?p=osm/N2VC.git;a=blob_plain;f=requirements.txt;hb=master
+    #   -r ../N2VC/requirements.txt
     #   requests
-juju==2.9.10
-    # via -r https://osm.etsi.org/gitweb/?p=osm/N2VC.git;a=blob_plain;f=requirements.txt;hb=master
+juju==2.9.42.1
+    # via -r ../N2VC/requirements.txt
 jujubundlelib==0.5.7
     # via
-    #   -r https://osm.etsi.org/gitweb/?p=osm/N2VC.git;a=blob_plain;f=requirements.txt;hb=master
+    #   -r ../N2VC/requirements.txt
     #   theblues
 kafka-python==2.0.2
     # via
-    #   -r https://osm.etsi.org/gitweb/?p=osm/common.git;a=blob_plain;f=requirements.txt;hb=master
+    #   -r ../common/requirements.txt
     #   aiokafka
-kubernetes==24.2.0
+kubernetes==26.1.0
     # via
-    #   -r https://osm.etsi.org/gitweb/?p=osm/N2VC.git;a=blob_plain;f=requirements.txt;hb=master
+    #   -r ../N2VC/requirements.txt
     #   juju
 macaroonbakery==1.3.1
     # via
-    #   -r https://osm.etsi.org/gitweb/?p=osm/N2VC.git;a=blob_plain;f=requirements.txt;hb=master
+    #   -r ../N2VC/requirements.txt
     #   juju
     #   theblues
 motor==1.3.1
-    # via -r https://osm.etsi.org/gitweb/?p=osm/N2VC.git;a=blob_plain;f=requirements.txt;hb=master
-mypy-extensions==0.4.3
+    # via -r ../N2VC/requirements.txt
+mypy-extensions==1.0.0
     # via
-    #   -r https://osm.etsi.org/gitweb/?p=osm/N2VC.git;a=blob_plain;f=requirements.txt;hb=master
+    #   -r ../N2VC/requirements.txt
     #   typing-inspect
-oauthlib==3.2.0
+oauthlib==3.2.2
     # via
-    #   -r https://osm.etsi.org/gitweb/?p=osm/N2VC.git;a=blob_plain;f=requirements.txt;hb=master
+    #   -r ../N2VC/requirements.txt
     #   requests-oauthlib
-paramiko==2.11.0
+paramiko==2.12.0
     # via
-    #   -r https://osm.etsi.org/gitweb/?p=osm/N2VC.git;a=blob_plain;f=requirements.txt;hb=master
+    #   -r ../N2VC/requirements.txt
     #   juju
-protobuf==3.20.1
+protobuf==3.20.3
     # via
-    #   -r https://osm.etsi.org/gitweb/?p=osm/N2VC.git;a=blob_plain;f=requirements.txt;hb=master
+    #   -r ../N2VC/requirements.txt
     #   macaroonbakery
 pyasn1==0.4.8
     # via
-    #   -r https://osm.etsi.org/gitweb/?p=osm/N2VC.git;a=blob_plain;f=requirements.txt;hb=master
+    #   -r ../N2VC/requirements.txt
     #   juju
     #   pyasn1-modules
     #   rsa
 pyasn1-modules==0.2.8
     # via
-    #   -r https://osm.etsi.org/gitweb/?p=osm/N2VC.git;a=blob_plain;f=requirements.txt;hb=master
+    #   -r ../N2VC/requirements.txt
     #   google-auth
 pycparser==2.21
     # via
-    #   -r https://osm.etsi.org/gitweb/?p=osm/N2VC.git;a=blob_plain;f=requirements.txt;hb=master
+    #   -r ../N2VC/requirements.txt
     #   cffi
 pycrypto==2.6.1
-    # via -r https://osm.etsi.org/gitweb/?p=osm/common.git;a=blob_plain;f=requirements.txt;hb=master
+    # via -r ../common/requirements.txt
 pymacaroons==0.13.0
     # via
-    #   -r https://osm.etsi.org/gitweb/?p=osm/N2VC.git;a=blob_plain;f=requirements.txt;hb=master
+    #   -r ../N2VC/requirements.txt
     #   macaroonbakery
 pymongo==3.12.3
     # via
-    #   -r https://osm.etsi.org/gitweb/?p=osm/N2VC.git;a=blob_plain;f=requirements.txt;hb=master
-    #   -r https://osm.etsi.org/gitweb/?p=osm/common.git;a=blob_plain;f=requirements.txt;hb=master
+    #   -r ../N2VC/requirements.txt
+    #   -r ../common/requirements.txt
     #   motor
 pynacl==1.5.0
     # via
-    #   -r https://osm.etsi.org/gitweb/?p=osm/N2VC.git;a=blob_plain;f=requirements.txt;hb=master
+    #   -r ../N2VC/requirements.txt
     #   macaroonbakery
     #   paramiko
     #   pymacaroons
 pyrfc3339==1.1
     # via
-    #   -r https://osm.etsi.org/gitweb/?p=osm/N2VC.git;a=blob_plain;f=requirements.txt;hb=master
+    #   -r ../N2VC/requirements.txt
     #   juju
     #   macaroonbakery
 python-dateutil==2.8.2
     # via
-    #   -r https://osm.etsi.org/gitweb/?p=osm/N2VC.git;a=blob_plain;f=requirements.txt;hb=master
+    #   -r ../N2VC/requirements.txt
     #   kubernetes
-pytz==2022.1
+pytz==2023.3
     # via
-    #   -r https://osm.etsi.org/gitweb/?p=osm/N2VC.git;a=blob_plain;f=requirements.txt;hb=master
+    #   -r ../N2VC/requirements.txt
     #   pyrfc3339
 pyyaml==5.4.1
     # via
-    #   -r https://osm.etsi.org/gitweb/?p=osm/N2VC.git;a=blob_plain;f=requirements.txt;hb=master
-    #   -r https://osm.etsi.org/gitweb/?p=osm/common.git;a=blob_plain;f=requirements.txt;hb=master
+    #   -r ../N2VC/requirements.txt
+    #   -r ../common/requirements.txt
     #   juju
     #   jujubundlelib
     #   kubernetes
-requests==2.28.0
+requests==2.28.2
     # via
-    #   -r https://osm.etsi.org/gitweb/?p=osm/N2VC.git;a=blob_plain;f=requirements.txt;hb=master
+    #   -r ../N2VC/requirements.txt
     #   kubernetes
     #   macaroonbakery
     #   requests-oauthlib
     #   theblues
 requests-oauthlib==1.3.1
     # via
-    #   -r https://osm.etsi.org/gitweb/?p=osm/N2VC.git;a=blob_plain;f=requirements.txt;hb=master
+    #   -r ../N2VC/requirements.txt
     #   kubernetes
 retrying-async==2.0.0
-    # via -r https://osm.etsi.org/gitweb/?p=osm/N2VC.git;a=blob_plain;f=requirements.txt;hb=master
-rsa==4.8
+    # via -r ../N2VC/requirements.txt
+rsa==4.9
     # via
-    #   -r https://osm.etsi.org/gitweb/?p=osm/N2VC.git;a=blob_plain;f=requirements.txt;hb=master
+    #   -r ../N2VC/requirements.txt
     #   google-auth
 six==1.16.0
     # via
-    #   -r https://osm.etsi.org/gitweb/?p=osm/N2VC.git;a=blob_plain;f=requirements.txt;hb=master
+    #   -r ../N2VC/requirements.txt
     #   google-auth
     #   kubernetes
     #   macaroonbakery
@@ -177,32 +176,32 @@ six==1.16.0
     #   python-dateutil
 theblues==0.5.2
     # via
-    #   -r https://osm.etsi.org/gitweb/?p=osm/N2VC.git;a=blob_plain;f=requirements.txt;hb=master
+    #   -r ../N2VC/requirements.txt
     #   juju
-toposort==1.7
+toposort==1.10
     # via
-    #   -r https://osm.etsi.org/gitweb/?p=osm/N2VC.git;a=blob_plain;f=requirements.txt;hb=master
+    #   -r ../N2VC/requirements.txt
     #   juju
-typing-extensions==4.2.0
+typing-extensions==4.5.0
     # via
-    #   -r https://osm.etsi.org/gitweb/?p=osm/N2VC.git;a=blob_plain;f=requirements.txt;hb=master
+    #   -r ../N2VC/requirements.txt
     #   typing-inspect
-typing-inspect==0.7.1
+typing-inspect==0.8.0
     # via
-    #   -r https://osm.etsi.org/gitweb/?p=osm/N2VC.git;a=blob_plain;f=requirements.txt;hb=master
+    #   -r ../N2VC/requirements.txt
     #   juju
-urllib3==1.26.9
+urllib3==1.26.15
     # via
-    #   -r https://osm.etsi.org/gitweb/?p=osm/N2VC.git;a=blob_plain;f=requirements.txt;hb=master
+    #   -r ../N2VC/requirements.txt
     #   kubernetes
     #   requests
-websocket-client==1.3.3
+websocket-client==1.5.1
     # via
-    #   -r https://osm.etsi.org/gitweb/?p=osm/N2VC.git;a=blob_plain;f=requirements.txt;hb=master
+    #   -r ../N2VC/requirements.txt
     #   kubernetes
 websockets==7.0
     # via
-    #   -r https://osm.etsi.org/gitweb/?p=osm/N2VC.git;a=blob_plain;f=requirements.txt;hb=master
+    #   -r ../N2VC/requirements.txt
     #   juju
 
 # The following packages are considered to be unsafe in a requirements file:
index d722d25..4033acf 100644 (file)
 # See the License for the specific language governing permissions and
 # limitations under the License.
 #######################################################################################
-certifi==2022.6.15
+certifi==2022.12.7
     # via requests
-charset-normalizer==2.0.12
+charset-normalizer==3.1.0
     # via requests
-coverage==6.4.1
-    # via
-    #   -r requirements-test.in
-    #   nose2
-idna==3.3
+coverage==7.2.3
+    # via -r requirements-test.in
+idna==3.4
     # via requests
-mock==4.0.3
+mock==5.0.2
     # via -r requirements-test.in
-nose2==0.11.0
+nose2==0.12.0
     # via -r requirements-test.in
-requests==2.28.0
+requests==2.28.2
     # via requests-mock
-requests-mock==1.9.3
+requests-mock==1.10.0
     # via -r requirements-test.in
 six==1.16.0
-    # via
-    #   nose2
-    #   requests-mock
-urllib3==1.26.9
+    # via requests-mock
+urllib3==1.26.15
     # via requests
index a42f768..51846d0 100644 (file)
@@ -18,7 +18,9 @@ aiokafka==0.7.2
     # via -r requirements.in
 appdirs==1.4.4
     # via openstacksdk
-attrs==21.4.0
+async-timeout==3.0.1
+    # via aiokafka
+attrs==23.1.0
     # via cmd2
 autopage==0.5.1
     # via cliff
@@ -26,24 +28,26 @@ backports-zoneinfo==0.2.1
     # via
     #   pytz-deprecation-shim
     #   tzlocal
-certifi==2022.6.15
+certifi==2022.12.7
     # via requests
-cffi==1.15.0
+cffi==1.15.1
     # via cryptography
-charset-normalizer==2.0.12
+charset-normalizer==3.1.0
     # via requests
-cliff==3.10.1
+cliff==4.2.0
     # via
     #   gnocchiclient
     #   osc-lib
     #   python-neutronclient
-cmd2==2.4.1
+cmd2==2.4.3
     # via cliff
-cryptography==37.0.2
+contourpy==1.0.7
+    # via matplotlib
+cryptography==40.0.2
     # via openstacksdk
 cycler==0.11.0
     # via matplotlib
-dateparser==1.1.1
+dateparser==1.1.8
     # via prometheus-api-client
 debtcollector==2.5.0
     # via
@@ -58,13 +62,13 @@ decorator==5.1.1
     # via
     #   dogpile-cache
     #   openstacksdk
-dogpile-cache==1.1.6
+dogpile-cache==1.1.8
     # via openstacksdk
-fonttools==4.33.3
+fonttools==4.39.3
     # via matplotlib
 futurist==2.4.1
     # via gnocchiclient
-gnocchiclient==7.0.7
+gnocchiclient==7.0.8
     # via -r requirements.in
 httmock==1.4.0
     # via prometheus-api-client
@@ -72,9 +76,13 @@ humanfriendly==10.0
     # via
     #   -r requirements.in
     #   pyvcloud
-idna==3.3
+idna==3.4
     # via requests
-iso8601==1.0.2
+importlib-metadata==6.5.0
+    # via cliff
+importlib-resources==5.12.0
+    # via matplotlib
+iso8601==1.1.0
     # via
     #   gnocchiclient
     #   keystoneauth1
@@ -91,7 +99,7 @@ jsonpointer==2.3
     # via jsonpatch
 kafka-python==2.0.2
     # via aiokafka
-keystoneauth1==4.6.0
+keystoneauth1==5.1.2
     # via
     #   gnocchiclient
     #   openstacksdk
@@ -101,21 +109,17 @@ keystoneauth1==4.6.0
     #   python-keystoneclient
     #   python-neutronclient
     #   python-novaclient
-kiwisolver==1.4.3
+kiwisolver==1.4.4
     # via matplotlib
-lxml==4.9.0
+lxml==4.9.2
     # via
     #   -r requirements.in
     #   pyvcloud
     #   unittest-xml-reporting
-matplotlib==3.5.2
+matplotlib==3.7.1
     # via prometheus-api-client
-monotonic==1.6
-    # via gnocchiclient
-msgpack==1.0.4
+msgpack==1.0.5
     # via oslo-serialization
-munch==2.5.0
-    # via openstacksdk
 netaddr==0.8.0
     # via
     #   oslo-config
@@ -125,12 +129,13 @@ netifaces==0.11.0
     # via
     #   openstacksdk
     #   oslo-utils
-numpy==1.23.0
+numpy==1.24.2
     # via
+    #   contourpy
     #   matplotlib
     #   pandas
     #   prometheus-api-client
-openstacksdk==0.99.0
+openstacksdk==1.0.1
     # via
     #   os-client-config
     #   osc-lib
@@ -140,15 +145,15 @@ os-service-types==1.7.0
     # via
     #   keystoneauth1
     #   openstacksdk
-osc-lib==2.6.0
+osc-lib==2.7.0
     # via python-neutronclient
-oslo-config==8.8.0
+oslo-config==9.1.1
     # via
     #   oslo-log
     #   python-keystoneclient
-oslo-context==4.1.0
+oslo-context==5.1.1
     # via oslo-log
-oslo-i18n==5.1.0
+oslo-i18n==6.0.0
     # via
     #   osc-lib
     #   oslo-config
@@ -159,16 +164,16 @@ oslo-i18n==5.1.0
     #   python-keystoneclient
     #   python-neutronclient
     #   python-novaclient
-oslo-log==5.0.0
+oslo-log==5.2.0
     # via python-neutronclient
-oslo-serialization==4.3.0
+oslo-serialization==5.1.1
     # via
     #   oslo-log
     #   python-ceilometerclient
     #   python-keystoneclient
     #   python-neutronclient
     #   python-novaclient
-oslo-utils==6.0.0
+oslo-utils==6.1.0
     # via
     #   osc-lib
     #   oslo-log
@@ -178,18 +183,17 @@ oslo-utils==6.0.0
     #   python-keystoneclient
     #   python-neutronclient
     #   python-novaclient
-packaging==21.3
+packaging==23.1
     # via
+    #   aiokafka
     #   matplotlib
     #   oslo-utils
     #   python-keystoneclient
     #   pyvcloud
-pandas==1.4.3
+pandas==2.0.0
     # via prometheus-api-client
-pbr==5.9.0
+pbr==5.11.1
     # via
-    #   cliff
-    #   gnocchiclient
     #   keystoneauth1
     #   openstacksdk
     #   os-service-types
@@ -204,7 +208,7 @@ pbr==5.9.0
     #   python-neutronclient
     #   python-novaclient
     #   stevedore
-pillow==9.1.1
+pillow==9.5.0
     # via matplotlib
 prettytable==0.7.2
     # via
@@ -212,27 +216,25 @@ prettytable==0.7.2
     #   python-ceilometerclient
     #   python-cinderclient
     #   python-novaclient
-prometheus-api-client==0.5.1
+prometheus-api-client==0.5.3
     # via -r requirements.in
-prometheus-client==0.14.1
+prometheus-client==0.16.0
     # via -r requirements.in
 pycparser==2.21
     # via cffi
-pygments==2.12.0
+pygments==2.15.1
     # via pyvcloud
 pyinotify==0.9.6
     # via oslo-log
 pyparsing==3.0.9
     # via
-    #   cliff
     #   matplotlib
     #   oslo-utils
-    #   packaging
 pyperclip==1.8.2
     # via cmd2
 python-ceilometerclient==2.9.0
     # via -r requirements.in
-python-cinderclient==8.3.0
+python-cinderclient==9.3.0
     # via -r requirements.in
 python-dateutil==2.8.2
     # via
@@ -242,15 +244,15 @@ python-dateutil==2.8.2
     #   oslo-log
     #   pandas
     #   pyvcloud
-python-keystoneclient==4.5.0
+python-keystoneclient==5.1.0
     # via
     #   -r requirements.in
     #   python-neutronclient
-python-neutronclient==7.8.0
+python-neutronclient==9.0.0
     # via -r requirements.in
-python-novaclient==18.0.0
+python-novaclient==18.3.0
     # via -r requirements.in
-pytz==2022.1
+pytz==2023.3
     # via
     #   dateparser
     #   oslo-serialization
@@ -258,7 +260,7 @@ pytz==2022.1
     #   pandas
 pytz-deprecation-shim==0.1.0.post0
     # via tzlocal
-pyvcloud==23.0.3
+pyvcloud==23.0.4
     # via -r requirements.in
 pyyaml==5.4.1
     # via
@@ -267,9 +269,9 @@ pyyaml==5.4.1
     #   openstacksdk
     #   oslo-config
     #   pyvcloud
-regex==2022.3.2
+regex==2023.3.23
     # via dateparser
-requests==2.28.0
+requests==2.28.2
     # via
     #   -r requirements.in
     #   httmock
@@ -285,21 +287,19 @@ requestsexceptions==1.4.0
     # via openstacksdk
 rfc3986==2.0.0
     # via oslo-config
-simplejson==3.17.6
+simplejson==3.19.1
     # via
     #   osc-lib
-    #   python-cinderclient
     #   python-neutronclient
 six==1.16.0
     # via
     #   -r requirements.in
     #   gnocchiclient
     #   keystoneauth1
-    #   munch
     #   python-ceilometerclient
     #   python-dateutil
     #   python-keystoneclient
-stevedore==3.5.0
+stevedore==5.0.0
     # via
     #   cliff
     #   dogpile-cache
@@ -310,19 +310,25 @@ stevedore==3.5.0
     #   python-cinderclient
     #   python-keystoneclient
     #   python-novaclient
-tzdata==2022.1
-    # via pytz-deprecation-shim
-tzlocal==4.2
+tzdata==2023.3
+    # via
+    #   pandas
+    #   pytz-deprecation-shim
+tzlocal==4.3
     # via dateparser
-ujson==5.3.0
+ujson==5.7.0
     # via gnocchiclient
 unittest-xml-reporting==3.2.0
     # via pyvcloud
-urllib3==1.26.9
+urllib3==1.26.15
     # via requests
 vcd-api-schemas-type==10.3.0.dev72
     # via pyvcloud
-wcwidth==0.2.5
+wcwidth==0.2.6
     # via cmd2
-wrapt==1.14.1
+wrapt==1.15.0
     # via debtcollector
+zipp==3.15.0
+    # via
+    #   importlib-metadata
+    #   importlib-resources