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:
}
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)
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)
# 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)
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,
+ )
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:
"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}
INSTANCE = "instance"
INTERFACE_ALL = "interface_all"
INTERFACE_ONE = "interface_one"
- INSTANCEDISK = 'instancedisk'
+ INSTANCEDISK = "instancedisk"
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
)
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
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(
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):
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(
-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
# 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:
# 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
# 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
# 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
# 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
# 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
# via jsonpatch
kafka-python==2.0.2
# via aiokafka
-keystoneauth1==4.6.0
+keystoneauth1==5.1.2
# via
# gnocchiclient
# openstacksdk
# 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
# 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
# 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
# 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
# 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
# python-neutronclient
# python-novaclient
# stevedore
-pillow==9.1.1
+pillow==9.5.0
# via matplotlib
prettytable==0.7.2
# via
# 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
# 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
# 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
# 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
# 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
# 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