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,
- )
- openstack_metric_name = (
- METRIC_MAPPINGS_FOR_ROCKY_AND_NEWER_RELEASES[
- metric_name
- ]
+ resource_id
)
+ 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 ../common/requirements.txt
+ # via -r https://osm.etsi.org/gitweb/?p=osm/common.git;a=blob_plain;f=requirements.txt;hb=master
async-timeout==3.0.1
# via
- # -r ../N2VC/requirements.txt
+ # -r https://osm.etsi.org/gitweb/?p=osm/N2VC.git;a=blob_plain;f=requirements.txt;hb=master
# retrying-async
-bcrypt==4.0.1
+bcrypt==3.2.2
# via
- # -r ../N2VC/requirements.txt
+ # -r https://osm.etsi.org/gitweb/?p=osm/N2VC.git;a=blob_plain;f=requirements.txt;hb=master
# paramiko
-cachetools==5.3.0
+cachetools==5.2.0
# via
- # -r ../N2VC/requirements.txt
+ # -r https://osm.etsi.org/gitweb/?p=osm/N2VC.git;a=blob_plain;f=requirements.txt;hb=master
# google-auth
-certifi==2022.12.7
+certifi==2022.6.15
# via
- # -r ../N2VC/requirements.txt
+ # -r https://osm.etsi.org/gitweb/?p=osm/N2VC.git;a=blob_plain;f=requirements.txt;hb=master
# kubernetes
# requests
-cffi==1.15.1
+cffi==1.15.0
# via
- # -r ../N2VC/requirements.txt
+ # -r https://osm.etsi.org/gitweb/?p=osm/N2VC.git;a=blob_plain;f=requirements.txt;hb=master
+ # bcrypt
# cryptography
# pynacl
-charset-normalizer==3.1.0
+charset-normalizer==2.0.12
# via
- # -r ../N2VC/requirements.txt
+ # -r https://osm.etsi.org/gitweb/?p=osm/N2VC.git;a=blob_plain;f=requirements.txt;hb=master
# requests
-cryptography==40.0.2
+cryptography==37.0.2
# via
- # -r ../N2VC/requirements.txt
+ # -r https://osm.etsi.org/gitweb/?p=osm/N2VC.git;a=blob_plain;f=requirements.txt;hb=master
# paramiko
dataclasses==0.6
- # via -r ../common/requirements.txt
-google-auth==2.17.3
+ # 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 ../N2VC/requirements.txt
+ # -r https://osm.etsi.org/gitweb/?p=osm/N2VC.git;a=blob_plain;f=requirements.txt;hb=master
# kubernetes
-idna==3.4
+idna==3.3
# via
- # -r ../N2VC/requirements.txt
+ # -r https://osm.etsi.org/gitweb/?p=osm/N2VC.git;a=blob_plain;f=requirements.txt;hb=master
# requests
-juju==2.9.42.1
- # via -r ../N2VC/requirements.txt
+juju==2.9.10
+ # via -r https://osm.etsi.org/gitweb/?p=osm/N2VC.git;a=blob_plain;f=requirements.txt;hb=master
jujubundlelib==0.5.7
# via
- # -r ../N2VC/requirements.txt
+ # -r https://osm.etsi.org/gitweb/?p=osm/N2VC.git;a=blob_plain;f=requirements.txt;hb=master
# theblues
kafka-python==2.0.2
# via
- # -r ../common/requirements.txt
+ # -r https://osm.etsi.org/gitweb/?p=osm/common.git;a=blob_plain;f=requirements.txt;hb=master
# aiokafka
-kubernetes==26.1.0
+kubernetes==24.2.0
# via
- # -r ../N2VC/requirements.txt
+ # -r https://osm.etsi.org/gitweb/?p=osm/N2VC.git;a=blob_plain;f=requirements.txt;hb=master
# juju
macaroonbakery==1.3.1
# via
- # -r ../N2VC/requirements.txt
+ # -r https://osm.etsi.org/gitweb/?p=osm/N2VC.git;a=blob_plain;f=requirements.txt;hb=master
# juju
# theblues
motor==1.3.1
- # 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
+mypy-extensions==0.4.3
# via
- # -r ../N2VC/requirements.txt
+ # -r https://osm.etsi.org/gitweb/?p=osm/N2VC.git;a=blob_plain;f=requirements.txt;hb=master
# typing-inspect
-oauthlib==3.2.2
+oauthlib==3.2.0
# via
- # -r ../N2VC/requirements.txt
+ # -r https://osm.etsi.org/gitweb/?p=osm/N2VC.git;a=blob_plain;f=requirements.txt;hb=master
# requests-oauthlib
-paramiko==2.12.0
+paramiko==2.11.0
# via
- # -r ../N2VC/requirements.txt
+ # -r https://osm.etsi.org/gitweb/?p=osm/N2VC.git;a=blob_plain;f=requirements.txt;hb=master
# juju
-protobuf==3.20.3
+protobuf==3.20.1
# via
- # -r ../N2VC/requirements.txt
+ # -r https://osm.etsi.org/gitweb/?p=osm/N2VC.git;a=blob_plain;f=requirements.txt;hb=master
# macaroonbakery
pyasn1==0.4.8
# via
- # -r ../N2VC/requirements.txt
+ # -r https://osm.etsi.org/gitweb/?p=osm/N2VC.git;a=blob_plain;f=requirements.txt;hb=master
# juju
# pyasn1-modules
# rsa
pyasn1-modules==0.2.8
# via
- # -r ../N2VC/requirements.txt
+ # -r https://osm.etsi.org/gitweb/?p=osm/N2VC.git;a=blob_plain;f=requirements.txt;hb=master
# google-auth
pycparser==2.21
# via
- # -r ../N2VC/requirements.txt
+ # -r https://osm.etsi.org/gitweb/?p=osm/N2VC.git;a=blob_plain;f=requirements.txt;hb=master
# cffi
pycrypto==2.6.1
- # via -r ../common/requirements.txt
+ # via -r https://osm.etsi.org/gitweb/?p=osm/common.git;a=blob_plain;f=requirements.txt;hb=master
pymacaroons==0.13.0
# via
- # -r ../N2VC/requirements.txt
+ # -r https://osm.etsi.org/gitweb/?p=osm/N2VC.git;a=blob_plain;f=requirements.txt;hb=master
# macaroonbakery
pymongo==3.12.3
# via
- # -r ../N2VC/requirements.txt
- # -r ../common/requirements.txt
+ # -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
# motor
pynacl==1.5.0
# via
- # -r ../N2VC/requirements.txt
+ # -r https://osm.etsi.org/gitweb/?p=osm/N2VC.git;a=blob_plain;f=requirements.txt;hb=master
# macaroonbakery
# paramiko
# pymacaroons
pyrfc3339==1.1
# via
- # -r ../N2VC/requirements.txt
+ # -r https://osm.etsi.org/gitweb/?p=osm/N2VC.git;a=blob_plain;f=requirements.txt;hb=master
# juju
# macaroonbakery
python-dateutil==2.8.2
# via
- # -r ../N2VC/requirements.txt
+ # -r https://osm.etsi.org/gitweb/?p=osm/N2VC.git;a=blob_plain;f=requirements.txt;hb=master
# kubernetes
-pytz==2023.3
+pytz==2022.1
# via
- # -r ../N2VC/requirements.txt
+ # -r https://osm.etsi.org/gitweb/?p=osm/N2VC.git;a=blob_plain;f=requirements.txt;hb=master
# pyrfc3339
pyyaml==5.4.1
# via
- # -r ../N2VC/requirements.txt
- # -r ../common/requirements.txt
+ # -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
# juju
# jujubundlelib
# kubernetes
-requests==2.28.2
+requests==2.28.0
# via
- # -r ../N2VC/requirements.txt
+ # -r https://osm.etsi.org/gitweb/?p=osm/N2VC.git;a=blob_plain;f=requirements.txt;hb=master
# kubernetes
# macaroonbakery
# requests-oauthlib
# theblues
requests-oauthlib==1.3.1
# via
- # -r ../N2VC/requirements.txt
+ # -r https://osm.etsi.org/gitweb/?p=osm/N2VC.git;a=blob_plain;f=requirements.txt;hb=master
# kubernetes
retrying-async==2.0.0
- # 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
+rsa==4.8
# via
- # -r ../N2VC/requirements.txt
+ # -r https://osm.etsi.org/gitweb/?p=osm/N2VC.git;a=blob_plain;f=requirements.txt;hb=master
# google-auth
six==1.16.0
# via
- # -r ../N2VC/requirements.txt
+ # -r https://osm.etsi.org/gitweb/?p=osm/N2VC.git;a=blob_plain;f=requirements.txt;hb=master
# google-auth
# kubernetes
# macaroonbakery
# python-dateutil
theblues==0.5.2
# via
- # -r ../N2VC/requirements.txt
+ # -r https://osm.etsi.org/gitweb/?p=osm/N2VC.git;a=blob_plain;f=requirements.txt;hb=master
# juju
-toposort==1.10
+toposort==1.7
# via
- # -r ../N2VC/requirements.txt
+ # -r https://osm.etsi.org/gitweb/?p=osm/N2VC.git;a=blob_plain;f=requirements.txt;hb=master
# juju
-typing-extensions==4.5.0
+typing-extensions==4.2.0
# via
- # -r ../N2VC/requirements.txt
+ # -r https://osm.etsi.org/gitweb/?p=osm/N2VC.git;a=blob_plain;f=requirements.txt;hb=master
# typing-inspect
-typing-inspect==0.8.0
+typing-inspect==0.7.1
# via
- # -r ../N2VC/requirements.txt
+ # -r https://osm.etsi.org/gitweb/?p=osm/N2VC.git;a=blob_plain;f=requirements.txt;hb=master
# juju
-urllib3==1.26.15
+urllib3==1.26.9
# via
- # -r ../N2VC/requirements.txt
+ # -r https://osm.etsi.org/gitweb/?p=osm/N2VC.git;a=blob_plain;f=requirements.txt;hb=master
# kubernetes
# requests
-websocket-client==1.5.1
+websocket-client==1.3.3
# via
- # -r ../N2VC/requirements.txt
+ # -r https://osm.etsi.org/gitweb/?p=osm/N2VC.git;a=blob_plain;f=requirements.txt;hb=master
# kubernetes
websockets==7.0
# via
- # -r ../N2VC/requirements.txt
+ # -r https://osm.etsi.org/gitweb/?p=osm/N2VC.git;a=blob_plain;f=requirements.txt;hb=master
# 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.12.7
+certifi==2022.6.15
# via requests
-charset-normalizer==3.1.0
+charset-normalizer==2.0.12
# via requests
-coverage==7.2.3
- # via -r requirements-test.in
-idna==3.4
+coverage==6.4.1
+ # via
+ # -r requirements-test.in
+ # nose2
+idna==3.3
# via requests
-mock==5.0.2
+mock==4.0.3
# via -r requirements-test.in
-nose2==0.12.0
+nose2==0.11.0
# via -r requirements-test.in
-requests==2.28.2
+requests==2.28.0
# via requests-mock
-requests-mock==1.10.0
+requests-mock==1.9.3
# via -r requirements-test.in
six==1.16.0
- # via requests-mock
-urllib3==1.26.15
+ # via
+ # nose2
+ # requests-mock
+urllib3==1.26.9
# via requests
# via -r requirements.in
appdirs==1.4.4
# via openstacksdk
-async-timeout==3.0.1
- # via aiokafka
-attrs==23.1.0
+attrs==21.4.0
# via cmd2
autopage==0.5.1
# via cliff
# via
# pytz-deprecation-shim
# tzlocal
-certifi==2022.12.7
+certifi==2022.6.15
# via requests
-cffi==1.15.1
+cffi==1.15.0
# via cryptography
-charset-normalizer==3.1.0
+charset-normalizer==2.0.12
# via requests
-cliff==4.2.0
+cliff==3.10.1
# via
# gnocchiclient
# osc-lib
# python-neutronclient
-cmd2==2.4.3
+cmd2==2.4.1
# via cliff
-contourpy==1.0.7
- # via matplotlib
-cryptography==40.0.2
+cryptography==37.0.2
# via openstacksdk
cycler==0.11.0
# via matplotlib
-dateparser==1.1.8
+dateparser==1.1.1
# via prometheus-api-client
debtcollector==2.5.0
# via
# via
# dogpile-cache
# openstacksdk
-dogpile-cache==1.1.8
+dogpile-cache==1.1.6
# via openstacksdk
-fonttools==4.39.3
+fonttools==4.33.3
# via matplotlib
futurist==2.4.1
# via gnocchiclient
-gnocchiclient==7.0.8
+gnocchiclient==7.0.7
# via -r requirements.in
httmock==1.4.0
# via prometheus-api-client
# via
# -r requirements.in
# pyvcloud
-idna==3.4
+idna==3.3
# via requests
-importlib-metadata==6.5.0
- # via cliff
-importlib-resources==5.12.0
- # via matplotlib
-iso8601==1.1.0
+iso8601==1.0.2
# via
# gnocchiclient
# keystoneauth1
# via jsonpatch
kafka-python==2.0.2
# via aiokafka
-keystoneauth1==5.1.2
+keystoneauth1==4.6.0
# via
# gnocchiclient
# openstacksdk
# python-keystoneclient
# python-neutronclient
# python-novaclient
-kiwisolver==1.4.4
+kiwisolver==1.4.3
# via matplotlib
-lxml==4.9.2
+lxml==4.9.0
# via
# -r requirements.in
# pyvcloud
# unittest-xml-reporting
-matplotlib==3.7.1
+matplotlib==3.5.2
# via prometheus-api-client
-msgpack==1.0.5
+monotonic==1.6
+ # via gnocchiclient
+msgpack==1.0.4
# via oslo-serialization
+munch==2.5.0
+ # via openstacksdk
netaddr==0.8.0
# via
# oslo-config
# via
# openstacksdk
# oslo-utils
-numpy==1.24.2
+numpy==1.23.0
# via
- # contourpy
# matplotlib
# pandas
# prometheus-api-client
-openstacksdk==1.0.1
+openstacksdk==0.99.0
# via
# os-client-config
# osc-lib
# via
# keystoneauth1
# openstacksdk
-osc-lib==2.7.0
+osc-lib==2.6.0
# via python-neutronclient
-oslo-config==9.1.1
+oslo-config==8.8.0
# via
# oslo-log
# python-keystoneclient
-oslo-context==5.1.1
+oslo-context==4.1.0
# via oslo-log
-oslo-i18n==6.0.0
+oslo-i18n==5.1.0
# via
# osc-lib
# oslo-config
# python-keystoneclient
# python-neutronclient
# python-novaclient
-oslo-log==5.2.0
+oslo-log==5.0.0
# via python-neutronclient
-oslo-serialization==5.1.1
+oslo-serialization==4.3.0
# via
# oslo-log
# python-ceilometerclient
# python-keystoneclient
# python-neutronclient
# python-novaclient
-oslo-utils==6.1.0
+oslo-utils==6.0.0
# via
# osc-lib
# oslo-log
# python-keystoneclient
# python-neutronclient
# python-novaclient
-packaging==23.1
+packaging==21.3
# via
- # aiokafka
# matplotlib
# oslo-utils
# python-keystoneclient
# pyvcloud
-pandas==2.0.0
+pandas==1.4.3
# via prometheus-api-client
-pbr==5.11.1
+pbr==5.9.0
# via
+ # cliff
+ # gnocchiclient
# keystoneauth1
# openstacksdk
# os-service-types
# python-neutronclient
# python-novaclient
# stevedore
-pillow==9.5.0
+pillow==9.1.1
# via matplotlib
prettytable==0.7.2
# via
# python-ceilometerclient
# python-cinderclient
# python-novaclient
-prometheus-api-client==0.5.3
+prometheus-api-client==0.5.1
# via -r requirements.in
-prometheus-client==0.16.0
+prometheus-client==0.14.1
# via -r requirements.in
pycparser==2.21
# via cffi
-pygments==2.15.1
+pygments==2.12.0
# 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==9.3.0
+python-cinderclient==8.3.0
# via -r requirements.in
python-dateutil==2.8.2
# via
# oslo-log
# pandas
# pyvcloud
-python-keystoneclient==5.1.0
+python-keystoneclient==4.5.0
# via
# -r requirements.in
# python-neutronclient
-python-neutronclient==9.0.0
+python-neutronclient==7.8.0
# via -r requirements.in
-python-novaclient==18.3.0
+python-novaclient==18.0.0
# via -r requirements.in
-pytz==2023.3
+pytz==2022.1
# via
# dateparser
# oslo-serialization
# pandas
pytz-deprecation-shim==0.1.0.post0
# via tzlocal
-pyvcloud==23.0.4
+pyvcloud==23.0.3
# via -r requirements.in
pyyaml==5.4.1
# via
# openstacksdk
# oslo-config
# pyvcloud
-regex==2023.3.23
+regex==2022.3.2
# via dateparser
-requests==2.28.2
+requests==2.28.0
# via
# -r requirements.in
# httmock
# via openstacksdk
rfc3986==2.0.0
# via oslo-config
-simplejson==3.19.1
+simplejson==3.17.6
# 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==5.0.0
+stevedore==3.5.0
# via
# cliff
# dogpile-cache
# python-cinderclient
# python-keystoneclient
# python-novaclient
-tzdata==2023.3
- # via
- # pandas
- # pytz-deprecation-shim
-tzlocal==4.3
+tzdata==2022.1
+ # via pytz-deprecation-shim
+tzlocal==4.2
# via dateparser
-ujson==5.7.0
+ujson==5.3.0
# via gnocchiclient
unittest-xml-reporting==3.2.0
# via pyvcloud
-urllib3==1.26.15
+urllib3==1.26.9
# via requests
vcd-api-schemas-type==10.3.0.dev72
# via pyvcloud
-wcwidth==0.2.6
+wcwidth==0.2.5
# via cmd2
-wrapt==1.15.0
+wrapt==1.14.1
# via debtcollector
-zipp==3.15.0
- # via
- # importlib-metadata
- # importlib-resources