osi-dump 0.1.3.1.1__tar.gz → 0.1.3.1.2__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (120) hide show
  1. {osi_dump-0.1.3.1.1 → osi_dump-0.1.3.1.2}/PKG-INFO +1 -1
  2. {osi_dump-0.1.3.1.1 → osi_dump-0.1.3.1.2}/pyproject.toml +1 -1
  3. {osi_dump-0.1.3.1.1 → osi_dump-0.1.3.1.2}/src/osi_dump/api/octavia.py +1 -1
  4. {osi_dump-0.1.3.1.1 → osi_dump-0.1.3.1.2}/src/osi_dump/importer/hypervisor/openstack_hypervisor_importer.py +28 -2
  5. {osi_dump-0.1.3.1.1 → osi_dump-0.1.3.1.2}/src/osi_dump/importer/instance/openstack_instance_importer.py +1 -0
  6. {osi_dump-0.1.3.1.1 → osi_dump-0.1.3.1.2}/src/osi_dump/importer/load_balancer/openstack_load_balancer_importer.py +5 -0
  7. {osi_dump-0.1.3.1.1 → osi_dump-0.1.3.1.2}/src/osi_dump/importer/volume/openstack_volume_importer.py +1 -0
  8. {osi_dump-0.1.3.1.1 → osi_dump-0.1.3.1.2}/src/osi_dump/model/flavor.py +1 -1
  9. {osi_dump-0.1.3.1.1 → osi_dump-0.1.3.1.2}/src/osi_dump/model/hypervisor.py +5 -0
  10. {osi_dump-0.1.3.1.1 → osi_dump-0.1.3.1.2}/src/osi_dump/model/instance.py +3 -0
  11. {osi_dump-0.1.3.1.1 → osi_dump-0.1.3.1.2}/src/osi_dump/model/router.py +2 -1
  12. {osi_dump-0.1.3.1.1 → osi_dump-0.1.3.1.2}/src/osi_dump/model/volume.py +2 -0
  13. {osi_dump-0.1.3.1.1 → osi_dump-0.1.3.1.2}/src/osi_dump.egg-info/PKG-INFO +1 -1
  14. {osi_dump-0.1.3.1.1 → osi_dump-0.1.3.1.2}/README.md +0 -0
  15. {osi_dump-0.1.3.1.1 → osi_dump-0.1.3.1.2}/setup.cfg +0 -0
  16. {osi_dump-0.1.3.1.1 → osi_dump-0.1.3.1.2}/src/osi_dump/__init__.py +0 -0
  17. {osi_dump-0.1.3.1.1 → osi_dump-0.1.3.1.2}/src/osi_dump/__main__.py +0 -0
  18. {osi_dump-0.1.3.1.1 → osi_dump-0.1.3.1.2}/src/osi_dump/api/__init__.py +0 -0
  19. {osi_dump-0.1.3.1.1 → osi_dump-0.1.3.1.2}/src/osi_dump/api/neutron.py +0 -0
  20. {osi_dump-0.1.3.1.1 → osi_dump-0.1.3.1.2}/src/osi_dump/api/placement.py +0 -0
  21. {osi_dump-0.1.3.1.1 → osi_dump-0.1.3.1.2}/src/osi_dump/batch_handler/__init__.py +0 -0
  22. {osi_dump-0.1.3.1.1 → osi_dump-0.1.3.1.2}/src/osi_dump/batch_handler/external_port_batch_handler.py +0 -0
  23. {osi_dump-0.1.3.1.1 → osi_dump-0.1.3.1.2}/src/osi_dump/batch_handler/flavor_batch_handler.py +0 -0
  24. {osi_dump-0.1.3.1.1 → osi_dump-0.1.3.1.2}/src/osi_dump/batch_handler/floating_ip_batch_handler.py +0 -0
  25. {osi_dump-0.1.3.1.1 → osi_dump-0.1.3.1.2}/src/osi_dump/batch_handler/hypervisor_batch_handler.py +0 -0
  26. {osi_dump-0.1.3.1.1 → osi_dump-0.1.3.1.2}/src/osi_dump/batch_handler/image_batch_handler.py +0 -0
  27. {osi_dump-0.1.3.1.1 → osi_dump-0.1.3.1.2}/src/osi_dump/batch_handler/instance_batch_handler.py +0 -0
  28. {osi_dump-0.1.3.1.1 → osi_dump-0.1.3.1.2}/src/osi_dump/batch_handler/load_balancer_batch_handler.py +0 -0
  29. {osi_dump-0.1.3.1.1 → osi_dump-0.1.3.1.2}/src/osi_dump/batch_handler/project_batch_handler.py +0 -0
  30. {osi_dump-0.1.3.1.1 → osi_dump-0.1.3.1.2}/src/osi_dump/batch_handler/role_assignment_batch_handler.py +0 -0
  31. {osi_dump-0.1.3.1.1 → osi_dump-0.1.3.1.2}/src/osi_dump/batch_handler/router_batch_handler.py +0 -0
  32. {osi_dump-0.1.3.1.1 → osi_dump-0.1.3.1.2}/src/osi_dump/batch_handler/volume_batch_handler.py +0 -0
  33. {osi_dump-0.1.3.1.1 → osi_dump-0.1.3.1.2}/src/osi_dump/cli.py +0 -0
  34. {osi_dump-0.1.3.1.1 → osi_dump-0.1.3.1.2}/src/osi_dump/exporter/__init__.py +0 -0
  35. {osi_dump-0.1.3.1.1 → osi_dump-0.1.3.1.2}/src/osi_dump/exporter/external_port/__init__.py +0 -0
  36. {osi_dump-0.1.3.1.1 → osi_dump-0.1.3.1.2}/src/osi_dump/exporter/external_port/excel_external_port_exporter.py +0 -0
  37. {osi_dump-0.1.3.1.1 → osi_dump-0.1.3.1.2}/src/osi_dump/exporter/external_port/external_port_exporter.py +0 -0
  38. {osi_dump-0.1.3.1.1 → osi_dump-0.1.3.1.2}/src/osi_dump/exporter/flavor/__init__.py +0 -0
  39. {osi_dump-0.1.3.1.1 → osi_dump-0.1.3.1.2}/src/osi_dump/exporter/flavor/excel_flavor_exporter.py +0 -0
  40. {osi_dump-0.1.3.1.1 → osi_dump-0.1.3.1.2}/src/osi_dump/exporter/flavor/flavor_exporter.py +0 -0
  41. {osi_dump-0.1.3.1.1 → osi_dump-0.1.3.1.2}/src/osi_dump/exporter/floating_ip/__init__.py +0 -0
  42. {osi_dump-0.1.3.1.1 → osi_dump-0.1.3.1.2}/src/osi_dump/exporter/floating_ip/excel_floating_ip_exporter.py +0 -0
  43. {osi_dump-0.1.3.1.1 → osi_dump-0.1.3.1.2}/src/osi_dump/exporter/floating_ip/floating_ip_exporter.py +0 -0
  44. {osi_dump-0.1.3.1.1 → osi_dump-0.1.3.1.2}/src/osi_dump/exporter/hypervisor/__init__.py +0 -0
  45. {osi_dump-0.1.3.1.1 → osi_dump-0.1.3.1.2}/src/osi_dump/exporter/hypervisor/excel_hypervisor_exporter.py +0 -0
  46. {osi_dump-0.1.3.1.1 → osi_dump-0.1.3.1.2}/src/osi_dump/exporter/hypervisor/hypervisor_exporter.py +0 -0
  47. {osi_dump-0.1.3.1.1 → osi_dump-0.1.3.1.2}/src/osi_dump/exporter/image/__init__.py +0 -0
  48. {osi_dump-0.1.3.1.1 → osi_dump-0.1.3.1.2}/src/osi_dump/exporter/image/excel_image_exporter.py +0 -0
  49. {osi_dump-0.1.3.1.1 → osi_dump-0.1.3.1.2}/src/osi_dump/exporter/image/image_exporter.py +0 -0
  50. {osi_dump-0.1.3.1.1 → osi_dump-0.1.3.1.2}/src/osi_dump/exporter/instance/__init__.py +0 -0
  51. {osi_dump-0.1.3.1.1 → osi_dump-0.1.3.1.2}/src/osi_dump/exporter/instance/excel_instance_exporter.py +0 -0
  52. {osi_dump-0.1.3.1.1 → osi_dump-0.1.3.1.2}/src/osi_dump/exporter/instance/instance_exporter.py +0 -0
  53. {osi_dump-0.1.3.1.1 → osi_dump-0.1.3.1.2}/src/osi_dump/exporter/load_balancer/__init__.py +0 -0
  54. {osi_dump-0.1.3.1.1 → osi_dump-0.1.3.1.2}/src/osi_dump/exporter/load_balancer/excel_load_balancer_exporter.py +0 -0
  55. {osi_dump-0.1.3.1.1 → osi_dump-0.1.3.1.2}/src/osi_dump/exporter/load_balancer/load_balancer_exporter.py +0 -0
  56. {osi_dump-0.1.3.1.1 → osi_dump-0.1.3.1.2}/src/osi_dump/exporter/project/__init__.py +0 -0
  57. {osi_dump-0.1.3.1.1 → osi_dump-0.1.3.1.2}/src/osi_dump/exporter/project/excel_project_exporter.py +0 -0
  58. {osi_dump-0.1.3.1.1 → osi_dump-0.1.3.1.2}/src/osi_dump/exporter/project/project_exporter.py +0 -0
  59. {osi_dump-0.1.3.1.1 → osi_dump-0.1.3.1.2}/src/osi_dump/exporter/role_assignment/__init__.py +0 -0
  60. {osi_dump-0.1.3.1.1 → osi_dump-0.1.3.1.2}/src/osi_dump/exporter/role_assignment/excel_role_assignment_exporter.py +0 -0
  61. {osi_dump-0.1.3.1.1 → osi_dump-0.1.3.1.2}/src/osi_dump/exporter/role_assignment/role_assignment_exporter.py +0 -0
  62. {osi_dump-0.1.3.1.1 → osi_dump-0.1.3.1.2}/src/osi_dump/exporter/router/__init__.py +0 -0
  63. {osi_dump-0.1.3.1.1 → osi_dump-0.1.3.1.2}/src/osi_dump/exporter/router/excel_router_exporter.py +0 -0
  64. {osi_dump-0.1.3.1.1 → osi_dump-0.1.3.1.2}/src/osi_dump/exporter/router/router_exporter.py +0 -0
  65. {osi_dump-0.1.3.1.1 → osi_dump-0.1.3.1.2}/src/osi_dump/exporter/volume/__init__.py +0 -0
  66. {osi_dump-0.1.3.1.1 → osi_dump-0.1.3.1.2}/src/osi_dump/exporter/volume/excel_volume_exporter.py +0 -0
  67. {osi_dump-0.1.3.1.1 → osi_dump-0.1.3.1.2}/src/osi_dump/exporter/volume/volume_exporter.py +0 -0
  68. {osi_dump-0.1.3.1.1 → osi_dump-0.1.3.1.2}/src/osi_dump/importer/external_port/__init__.py +0 -0
  69. {osi_dump-0.1.3.1.1 → osi_dump-0.1.3.1.2}/src/osi_dump/importer/external_port/external_port_importer.py +0 -0
  70. {osi_dump-0.1.3.1.1 → osi_dump-0.1.3.1.2}/src/osi_dump/importer/external_port/openstack_external_port_importer.py +0 -0
  71. {osi_dump-0.1.3.1.1 → osi_dump-0.1.3.1.2}/src/osi_dump/importer/flavor/__init__.py +0 -0
  72. {osi_dump-0.1.3.1.1 → osi_dump-0.1.3.1.2}/src/osi_dump/importer/flavor/flavor_importer.py +0 -0
  73. {osi_dump-0.1.3.1.1 → osi_dump-0.1.3.1.2}/src/osi_dump/importer/flavor/openstack_flavor_importer.py +0 -0
  74. {osi_dump-0.1.3.1.1 → osi_dump-0.1.3.1.2}/src/osi_dump/importer/floating_ip/__init__.py +0 -0
  75. {osi_dump-0.1.3.1.1 → osi_dump-0.1.3.1.2}/src/osi_dump/importer/floating_ip/floating_ip_importer.py +0 -0
  76. {osi_dump-0.1.3.1.1 → osi_dump-0.1.3.1.2}/src/osi_dump/importer/floating_ip/openstack_floating_ip_importer.py +0 -0
  77. {osi_dump-0.1.3.1.1 → osi_dump-0.1.3.1.2}/src/osi_dump/importer/hypervisor/__init__.py +0 -0
  78. {osi_dump-0.1.3.1.1 → osi_dump-0.1.3.1.2}/src/osi_dump/importer/hypervisor/hypervisor_importer.py +0 -0
  79. {osi_dump-0.1.3.1.1 → osi_dump-0.1.3.1.2}/src/osi_dump/importer/image/__init__.py +0 -0
  80. {osi_dump-0.1.3.1.1 → osi_dump-0.1.3.1.2}/src/osi_dump/importer/image/image_importer.py +0 -0
  81. {osi_dump-0.1.3.1.1 → osi_dump-0.1.3.1.2}/src/osi_dump/importer/image/openstack_image_importer.py +0 -0
  82. {osi_dump-0.1.3.1.1 → osi_dump-0.1.3.1.2}/src/osi_dump/importer/instance/__init__.py +0 -0
  83. {osi_dump-0.1.3.1.1 → osi_dump-0.1.3.1.2}/src/osi_dump/importer/instance/instance_importer.py +0 -0
  84. {osi_dump-0.1.3.1.1 → osi_dump-0.1.3.1.2}/src/osi_dump/importer/load_balancer/__init__.py +0 -0
  85. {osi_dump-0.1.3.1.1 → osi_dump-0.1.3.1.2}/src/osi_dump/importer/load_balancer/load_balancer_importer.py +0 -0
  86. {osi_dump-0.1.3.1.1 → osi_dump-0.1.3.1.2}/src/osi_dump/importer/project/__init__.py +0 -0
  87. {osi_dump-0.1.3.1.1 → osi_dump-0.1.3.1.2}/src/osi_dump/importer/project/openstack_project_importer.py +0 -0
  88. {osi_dump-0.1.3.1.1 → osi_dump-0.1.3.1.2}/src/osi_dump/importer/project/project_importer.py +0 -0
  89. {osi_dump-0.1.3.1.1 → osi_dump-0.1.3.1.2}/src/osi_dump/importer/role_assignment/__init__.py +0 -0
  90. {osi_dump-0.1.3.1.1 → osi_dump-0.1.3.1.2}/src/osi_dump/importer/role_assignment/openstack_role_assignment_importer.py +0 -0
  91. {osi_dump-0.1.3.1.1 → osi_dump-0.1.3.1.2}/src/osi_dump/importer/role_assignment/role_assignment_importer.py +0 -0
  92. {osi_dump-0.1.3.1.1 → osi_dump-0.1.3.1.2}/src/osi_dump/importer/router/__init__.py +0 -0
  93. {osi_dump-0.1.3.1.1 → osi_dump-0.1.3.1.2}/src/osi_dump/importer/router/openstack_router_importer.py +0 -0
  94. {osi_dump-0.1.3.1.1 → osi_dump-0.1.3.1.2}/src/osi_dump/importer/router/router_importer.py +0 -0
  95. {osi_dump-0.1.3.1.1 → osi_dump-0.1.3.1.2}/src/osi_dump/importer/volume/__init__.py +0 -0
  96. {osi_dump-0.1.3.1.1 → osi_dump-0.1.3.1.2}/src/osi_dump/importer/volume/volume_importer.py +0 -0
  97. {osi_dump-0.1.3.1.1 → osi_dump-0.1.3.1.2}/src/osi_dump/model/__init__.py +0 -0
  98. {osi_dump-0.1.3.1.1 → osi_dump-0.1.3.1.2}/src/osi_dump/model/authentication_info.py +0 -0
  99. {osi_dump-0.1.3.1.1 → osi_dump-0.1.3.1.2}/src/osi_dump/model/external_port.py +0 -0
  100. {osi_dump-0.1.3.1.1 → osi_dump-0.1.3.1.2}/src/osi_dump/model/floating_ip.py +0 -0
  101. {osi_dump-0.1.3.1.1 → osi_dump-0.1.3.1.2}/src/osi_dump/model/image.py +0 -0
  102. {osi_dump-0.1.3.1.1 → osi_dump-0.1.3.1.2}/src/osi_dump/model/load_balancer.py +0 -0
  103. {osi_dump-0.1.3.1.1 → osi_dump-0.1.3.1.2}/src/osi_dump/model/project.py +0 -0
  104. {osi_dump-0.1.3.1.1 → osi_dump-0.1.3.1.2}/src/osi_dump/model/role_assignment.py +0 -0
  105. {osi_dump-0.1.3.1.1 → osi_dump-0.1.3.1.2}/src/osi_dump/os_connection/__init__.py +0 -0
  106. {osi_dump-0.1.3.1.1 → osi_dump-0.1.3.1.2}/src/osi_dump/os_connection/get_connections.py +0 -0
  107. {osi_dump-0.1.3.1.1 → osi_dump-0.1.3.1.2}/src/osi_dump/util/__init__.py +0 -0
  108. {osi_dump-0.1.3.1.1 → osi_dump-0.1.3.1.2}/src/osi_dump/util/create_file.py +0 -0
  109. {osi_dump-0.1.3.1.1 → osi_dump-0.1.3.1.2}/src/osi_dump/util/excel_autosize_column.py +0 -0
  110. {osi_dump-0.1.3.1.1 → osi_dump-0.1.3.1.2}/src/osi_dump/util/excel_sort_sheet.py +0 -0
  111. {osi_dump-0.1.3.1.1 → osi_dump-0.1.3.1.2}/src/osi_dump/util/export_data_excel.py +0 -0
  112. {osi_dump-0.1.3.1.1 → osi_dump-0.1.3.1.2}/src/osi_dump/util/extract_hostname.py +0 -0
  113. {osi_dump-0.1.3.1.1 → osi_dump-0.1.3.1.2}/src/osi_dump/util/openstack_util.py +0 -0
  114. {osi_dump-0.1.3.1.1 → osi_dump-0.1.3.1.2}/src/osi_dump/util/panda_excel.py +0 -0
  115. {osi_dump-0.1.3.1.1 → osi_dump-0.1.3.1.2}/src/osi_dump/util/validate_dir_path.py +0 -0
  116. {osi_dump-0.1.3.1.1 → osi_dump-0.1.3.1.2}/src/osi_dump.egg-info/SOURCES.txt +0 -0
  117. {osi_dump-0.1.3.1.1 → osi_dump-0.1.3.1.2}/src/osi_dump.egg-info/dependency_links.txt +0 -0
  118. {osi_dump-0.1.3.1.1 → osi_dump-0.1.3.1.2}/src/osi_dump.egg-info/entry_points.txt +0 -0
  119. {osi_dump-0.1.3.1.1 → osi_dump-0.1.3.1.2}/src/osi_dump.egg-info/requires.txt +0 -0
  120. {osi_dump-0.1.3.1.1 → osi_dump-0.1.3.1.2}/src/osi_dump.egg-info/top_level.txt +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: osi-dump
3
- Version: 0.1.3.1.1
3
+ Version: 0.1.3.1.2
4
4
  Summary: OpenStack information dump tool
5
5
  Author: TVKain
6
6
  License: Apache-2.0
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "osi-dump"
3
- version = "0.1.3.1.1"
3
+ version = "0.1.3.1.2"
4
4
  description = "OpenStack information dump tool"
5
5
  readme = "README.md"
6
6
  authors = [{ name = "TVKain" }]
@@ -26,7 +26,7 @@ def get_amphoraes(connection: Connection, load_balancer_id: str) -> list[dict]:
26
26
  connection=connection, service_type="load-balancer", interface="public"
27
27
  )
28
28
 
29
- url = f"{octavia_endpoint}/v2/octavia/amphorae?load_balancer_id={load_balancer_id}&fields=status&fields=compute_id"
29
+ url = f"{octavia_endpoint}/v2/octavia/amphorae?load_balancer_id={load_balancer_id}&fields=status&fields=compute_id&fields=compute_flavor"
30
30
 
31
31
  response = connection.session.get(url)
32
32
 
@@ -4,6 +4,7 @@ import concurrent
4
4
 
5
5
  from openstack.connection import Connection
6
6
  from openstack.compute.v2.hypervisor import Hypervisor as OSHypervisor
7
+ from openstack.compute.v2.aggregate import Aggregate as OSAggregate
7
8
 
8
9
  from openstack.placement.v1._proxy import Proxy as PlacementProxy
9
10
  from openstack.placement.v1.resource_provider_inventory import ResourceProviderInventory
@@ -29,6 +30,7 @@ class OpenStackHypervisorImporter(HypervisorImporter):
29
30
  Returns:
30
31
  list[Hypervisor]: _description_
31
32
  """
33
+ aggregates = list(self.connection.list_aggregates())
32
34
 
33
35
  try:
34
36
  oshypervisors: list[OSHypervisor] = list(
@@ -44,7 +46,7 @@ class OpenStackHypervisorImporter(HypervisorImporter):
44
46
 
45
47
  with concurrent.futures.ThreadPoolExecutor() as executor:
46
48
  futures = [
47
- executor.submit(self._get_hypervisor_info, hypervisor)
49
+ executor.submit(self._get_hypervisor_info, hypervisor, aggregates)
48
50
  for hypervisor in oshypervisors
49
51
  ]
50
52
  for future in concurrent.futures.as_completed(futures):
@@ -54,7 +56,19 @@ class OpenStackHypervisorImporter(HypervisorImporter):
54
56
 
55
57
  return hypervisors
56
58
 
57
- def _get_hypervisor_info(self, hypervisor: OSHypervisor) -> Hypervisor:
59
+ def _get_hypervisor_info(
60
+ self, hypervisor: OSHypervisor, aggregates: list[OSAggregate]
61
+ ) -> Hypervisor:
62
+ aggregate = self._get_aggregate(hypervisor=hypervisor)
63
+
64
+ aggregate_id = None
65
+ aggregate_name = None
66
+ availability_zone = None
67
+
68
+ if aggregate:
69
+ aggregate_id = aggregate.id
70
+ aggregate_name = aggregate.name
71
+ availability_zone = aggregate.availability_zone
58
72
 
59
73
  placement_proxy: PlacementProxy = self.connection.placement
60
74
 
@@ -83,6 +97,18 @@ class OpenStackHypervisorImporter(HypervisorImporter):
83
97
  memory_usage=usage_data["MEMORY_MB"],
84
98
  local_disk_usage=usage_data["DISK_GB"],
85
99
  vm_count=len(hypervisor.servers),
100
+ aggregate_id=aggregate_id,
101
+ aggregate_name=aggregate_name,
102
+ availability_zone=availability_zone,
86
103
  )
87
104
 
88
105
  return ret_hypervisor
106
+
107
+ def _get_aggregate(self, hypervisor: OSHypervisor) -> OSAggregate:
108
+ aggregates = list(self.connection.list_aggregates())
109
+
110
+ for aggregate in aggregates:
111
+ if hypervisor.name in aggregate.hosts:
112
+ return aggregate
113
+
114
+ return None
@@ -123,6 +123,7 @@ class OpenStackInstanceImporter(InstanceImporter):
123
123
  vcpus=server.flavor["vcpus"],
124
124
  created_at=server.created_at,
125
125
  updated_at=server.updated_at,
126
+ user_id=server.user_id,
126
127
  vgpus=vgpus,
127
128
  vgpu_type=vgpu_type,
128
129
  )
@@ -61,6 +61,11 @@ class OpenStackLoadBalancerImporter(LoadBalancerImporter):
61
61
  connection=self.connection, load_balancer_id=load_balancer["id"]
62
62
  )
63
63
 
64
+ for amphorae in amphoraes:
65
+ flavor = self.connection.get_flavor_by_id(amphorae["compute_flavor"])
66
+ amphorae["ram"] = flavor.ram
67
+ amphorae["vcpus"] = flavor.vcpus
68
+
64
69
  load_balancer_ret = LoadBalancer(
65
70
  id=load_balancer["id"],
66
71
  load_balancer_name=load_balancer["name"],
@@ -67,6 +67,7 @@ class OpenStackVolumeImporter(VolumeImporter):
67
67
 
68
68
  ret_volume = Volume(
69
69
  volume_id=volume.id,
70
+ volume_name=volume.name,
70
71
  project_id=volume.project_id,
71
72
  status=volume.status,
72
73
  attachments=[att["server_id"] for att in volume.attachments],
@@ -1,6 +1,6 @@
1
1
  from typing import Optional
2
2
 
3
- from pydantic import BaseModel, ConfigDict, ValidationError
3
+ from pydantic import BaseModel, ConfigDict
4
4
 
5
5
 
6
6
  class Flavor(BaseModel):
@@ -1,3 +1,4 @@
1
+ from typing import Optional
1
2
  from pydantic import BaseModel, ConfigDict, ValidationError
2
3
 
3
4
 
@@ -17,4 +18,8 @@ class Hypervisor(BaseModel):
17
18
  local_disk_usage: int
18
19
  local_disk_size: int
19
20
 
21
+ availability_zone: Optional[str]
22
+ aggregate_name: Optional[str]
23
+ aggregate_id: Optional[str]
24
+
20
25
  vm_count: int
@@ -19,5 +19,8 @@ class Instance(BaseModel):
19
19
  vgpus: Optional[int]
20
20
  vgpu_type: Optional[str]
21
21
  hypervisor: Optional[str]
22
+
23
+ user_id: Optional[str]
24
+
22
25
  created_at: str
23
26
  updated_at: str
@@ -6,6 +6,8 @@ from pydantic import BaseModel, ConfigDict, ValidationError
6
6
  class Router(BaseModel):
7
7
  model_config = ConfigDict(strict=True)
8
8
 
9
+ project_id: Optional[str]
10
+
9
11
  router_id: str
10
12
 
11
13
  name: Optional[str]
@@ -16,7 +18,6 @@ class Router(BaseModel):
16
18
  admin_state: Optional[bool]
17
19
 
18
20
  status: str
19
- project_id: Optional[str]
20
21
 
21
22
  created_at: Optional[str]
22
23
  updated_at: Optional[str]
@@ -10,6 +10,8 @@ class Volume(BaseModel):
10
10
 
11
11
  project_id: Optional[str]
12
12
 
13
+ volume_name: Optional[str]
14
+
13
15
  attachments: Optional[list[str]]
14
16
 
15
17
  status: str
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: osi-dump
3
- Version: 0.1.3.1.1
3
+ Version: 0.1.3.1.2
4
4
  Summary: OpenStack information dump tool
5
5
  Author: TVKain
6
6
  License: Apache-2.0
File without changes
File without changes