osi-dump 0.1.2.9__tar.gz → 0.1.3.1__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.2.9 → osi_dump-0.1.3.1}/PKG-INFO +1 -1
  2. {osi_dump-0.1.2.9 → osi_dump-0.1.3.1}/pyproject.toml +1 -1
  3. osi_dump-0.1.3.1/src/osi_dump/api/neutron.py +44 -0
  4. {osi_dump-0.1.2.9 → osi_dump-0.1.3.1}/src/osi_dump/api/octavia.py +7 -4
  5. {osi_dump-0.1.2.9 → osi_dump-0.1.3.1}/src/osi_dump/api/placement.py +4 -2
  6. {osi_dump-0.1.2.9 → osi_dump-0.1.3.1}/src/osi_dump/importer/external_port/openstack_external_port_importer.py +10 -4
  7. {osi_dump-0.1.2.9 → osi_dump-0.1.3.1}/src/osi_dump/importer/instance/openstack_instance_importer.py +24 -0
  8. {osi_dump-0.1.2.9 → osi_dump-0.1.3.1}/src/osi_dump/importer/router/openstack_router_importer.py +1 -0
  9. {osi_dump-0.1.2.9 → osi_dump-0.1.3.1}/src/osi_dump/model/image.py +2 -2
  10. {osi_dump-0.1.2.9 → osi_dump-0.1.3.1}/src/osi_dump/model/instance.py +2 -0
  11. {osi_dump-0.1.2.9 → osi_dump-0.1.3.1}/src/osi_dump/model/router.py +4 -2
  12. {osi_dump-0.1.2.9 → osi_dump-0.1.3.1}/src/osi_dump/model/volume.py +2 -2
  13. osi_dump-0.1.3.1/src/osi_dump/util/openstack_util.py +20 -0
  14. {osi_dump-0.1.2.9 → osi_dump-0.1.3.1}/src/osi_dump.egg-info/PKG-INFO +1 -1
  15. {osi_dump-0.1.2.9 → osi_dump-0.1.3.1}/src/osi_dump.egg-info/SOURCES.txt +2 -0
  16. {osi_dump-0.1.2.9 → osi_dump-0.1.3.1}/README.md +0 -0
  17. {osi_dump-0.1.2.9 → osi_dump-0.1.3.1}/setup.cfg +0 -0
  18. {osi_dump-0.1.2.9 → osi_dump-0.1.3.1}/src/osi_dump/__init__.py +0 -0
  19. {osi_dump-0.1.2.9 → osi_dump-0.1.3.1}/src/osi_dump/__main__.py +0 -0
  20. {osi_dump-0.1.2.9 → osi_dump-0.1.3.1}/src/osi_dump/api/__init__.py +0 -0
  21. {osi_dump-0.1.2.9 → osi_dump-0.1.3.1}/src/osi_dump/batch_handler/__init__.py +0 -0
  22. {osi_dump-0.1.2.9 → osi_dump-0.1.3.1}/src/osi_dump/batch_handler/external_port_batch_handler.py +0 -0
  23. {osi_dump-0.1.2.9 → osi_dump-0.1.3.1}/src/osi_dump/batch_handler/flavor_batch_handler.py +0 -0
  24. {osi_dump-0.1.2.9 → osi_dump-0.1.3.1}/src/osi_dump/batch_handler/floating_ip_batch_handler.py +0 -0
  25. {osi_dump-0.1.2.9 → osi_dump-0.1.3.1}/src/osi_dump/batch_handler/hypervisor_batch_handler.py +0 -0
  26. {osi_dump-0.1.2.9 → osi_dump-0.1.3.1}/src/osi_dump/batch_handler/image_batch_handler.py +0 -0
  27. {osi_dump-0.1.2.9 → osi_dump-0.1.3.1}/src/osi_dump/batch_handler/instance_batch_handler.py +0 -0
  28. {osi_dump-0.1.2.9 → osi_dump-0.1.3.1}/src/osi_dump/batch_handler/load_balancer_batch_handler.py +0 -0
  29. {osi_dump-0.1.2.9 → osi_dump-0.1.3.1}/src/osi_dump/batch_handler/project_batch_handler.py +0 -0
  30. {osi_dump-0.1.2.9 → osi_dump-0.1.3.1}/src/osi_dump/batch_handler/role_assignment_batch_handler.py +0 -0
  31. {osi_dump-0.1.2.9 → osi_dump-0.1.3.1}/src/osi_dump/batch_handler/router_batch_handler.py +0 -0
  32. {osi_dump-0.1.2.9 → osi_dump-0.1.3.1}/src/osi_dump/batch_handler/volume_batch_handler.py +0 -0
  33. {osi_dump-0.1.2.9 → osi_dump-0.1.3.1}/src/osi_dump/cli.py +0 -0
  34. {osi_dump-0.1.2.9 → osi_dump-0.1.3.1}/src/osi_dump/exporter/__init__.py +0 -0
  35. {osi_dump-0.1.2.9 → osi_dump-0.1.3.1}/src/osi_dump/exporter/external_port/__init__.py +0 -0
  36. {osi_dump-0.1.2.9 → osi_dump-0.1.3.1}/src/osi_dump/exporter/external_port/excel_external_port_exporter.py +0 -0
  37. {osi_dump-0.1.2.9 → osi_dump-0.1.3.1}/src/osi_dump/exporter/external_port/external_port_exporter.py +0 -0
  38. {osi_dump-0.1.2.9 → osi_dump-0.1.3.1}/src/osi_dump/exporter/flavor/__init__.py +0 -0
  39. {osi_dump-0.1.2.9 → osi_dump-0.1.3.1}/src/osi_dump/exporter/flavor/excel_flavor_exporter.py +0 -0
  40. {osi_dump-0.1.2.9 → osi_dump-0.1.3.1}/src/osi_dump/exporter/flavor/flavor_exporter.py +0 -0
  41. {osi_dump-0.1.2.9 → osi_dump-0.1.3.1}/src/osi_dump/exporter/floating_ip/__init__.py +0 -0
  42. {osi_dump-0.1.2.9 → osi_dump-0.1.3.1}/src/osi_dump/exporter/floating_ip/excel_floating_ip_exporter.py +0 -0
  43. {osi_dump-0.1.2.9 → osi_dump-0.1.3.1}/src/osi_dump/exporter/floating_ip/floating_ip_exporter.py +0 -0
  44. {osi_dump-0.1.2.9 → osi_dump-0.1.3.1}/src/osi_dump/exporter/hypervisor/__init__.py +0 -0
  45. {osi_dump-0.1.2.9 → osi_dump-0.1.3.1}/src/osi_dump/exporter/hypervisor/excel_hypervisor_exporter.py +0 -0
  46. {osi_dump-0.1.2.9 → osi_dump-0.1.3.1}/src/osi_dump/exporter/hypervisor/hypervisor_exporter.py +0 -0
  47. {osi_dump-0.1.2.9 → osi_dump-0.1.3.1}/src/osi_dump/exporter/image/__init__.py +0 -0
  48. {osi_dump-0.1.2.9 → osi_dump-0.1.3.1}/src/osi_dump/exporter/image/excel_image_exporter.py +0 -0
  49. {osi_dump-0.1.2.9 → osi_dump-0.1.3.1}/src/osi_dump/exporter/image/image_exporter.py +0 -0
  50. {osi_dump-0.1.2.9 → osi_dump-0.1.3.1}/src/osi_dump/exporter/instance/__init__.py +0 -0
  51. {osi_dump-0.1.2.9 → osi_dump-0.1.3.1}/src/osi_dump/exporter/instance/excel_instance_exporter.py +0 -0
  52. {osi_dump-0.1.2.9 → osi_dump-0.1.3.1}/src/osi_dump/exporter/instance/instance_exporter.py +0 -0
  53. {osi_dump-0.1.2.9 → osi_dump-0.1.3.1}/src/osi_dump/exporter/load_balancer/__init__.py +0 -0
  54. {osi_dump-0.1.2.9 → osi_dump-0.1.3.1}/src/osi_dump/exporter/load_balancer/excel_load_balancer_exporter.py +0 -0
  55. {osi_dump-0.1.2.9 → osi_dump-0.1.3.1}/src/osi_dump/exporter/load_balancer/load_balancer_exporter.py +0 -0
  56. {osi_dump-0.1.2.9 → osi_dump-0.1.3.1}/src/osi_dump/exporter/project/__init__.py +0 -0
  57. {osi_dump-0.1.2.9 → osi_dump-0.1.3.1}/src/osi_dump/exporter/project/excel_project_exporter.py +0 -0
  58. {osi_dump-0.1.2.9 → osi_dump-0.1.3.1}/src/osi_dump/exporter/project/project_exporter.py +0 -0
  59. {osi_dump-0.1.2.9 → osi_dump-0.1.3.1}/src/osi_dump/exporter/role_assignment/__init__.py +0 -0
  60. {osi_dump-0.1.2.9 → osi_dump-0.1.3.1}/src/osi_dump/exporter/role_assignment/excel_role_assignment_exporter.py +0 -0
  61. {osi_dump-0.1.2.9 → osi_dump-0.1.3.1}/src/osi_dump/exporter/role_assignment/role_assignment_exporter.py +0 -0
  62. {osi_dump-0.1.2.9 → osi_dump-0.1.3.1}/src/osi_dump/exporter/router/__init__.py +0 -0
  63. {osi_dump-0.1.2.9 → osi_dump-0.1.3.1}/src/osi_dump/exporter/router/excel_router_exporter.py +0 -0
  64. {osi_dump-0.1.2.9 → osi_dump-0.1.3.1}/src/osi_dump/exporter/router/router_exporter.py +0 -0
  65. {osi_dump-0.1.2.9 → osi_dump-0.1.3.1}/src/osi_dump/exporter/volume/__init__.py +0 -0
  66. {osi_dump-0.1.2.9 → osi_dump-0.1.3.1}/src/osi_dump/exporter/volume/excel_volume_exporter.py +0 -0
  67. {osi_dump-0.1.2.9 → osi_dump-0.1.3.1}/src/osi_dump/exporter/volume/volume_exporter.py +0 -0
  68. {osi_dump-0.1.2.9 → osi_dump-0.1.3.1}/src/osi_dump/importer/external_port/__init__.py +0 -0
  69. {osi_dump-0.1.2.9 → osi_dump-0.1.3.1}/src/osi_dump/importer/external_port/external_port_importer.py +0 -0
  70. {osi_dump-0.1.2.9 → osi_dump-0.1.3.1}/src/osi_dump/importer/flavor/__init__.py +0 -0
  71. {osi_dump-0.1.2.9 → osi_dump-0.1.3.1}/src/osi_dump/importer/flavor/flavor_importer.py +0 -0
  72. {osi_dump-0.1.2.9 → osi_dump-0.1.3.1}/src/osi_dump/importer/flavor/openstack_flavor_importer.py +0 -0
  73. {osi_dump-0.1.2.9 → osi_dump-0.1.3.1}/src/osi_dump/importer/floating_ip/__init__.py +0 -0
  74. {osi_dump-0.1.2.9 → osi_dump-0.1.3.1}/src/osi_dump/importer/floating_ip/floating_ip_importer.py +0 -0
  75. {osi_dump-0.1.2.9 → osi_dump-0.1.3.1}/src/osi_dump/importer/floating_ip/openstack_floating_ip_importer.py +0 -0
  76. {osi_dump-0.1.2.9 → osi_dump-0.1.3.1}/src/osi_dump/importer/hypervisor/__init__.py +0 -0
  77. {osi_dump-0.1.2.9 → osi_dump-0.1.3.1}/src/osi_dump/importer/hypervisor/hypervisor_importer.py +0 -0
  78. {osi_dump-0.1.2.9 → osi_dump-0.1.3.1}/src/osi_dump/importer/hypervisor/openstack_hypervisor_importer.py +0 -0
  79. {osi_dump-0.1.2.9 → osi_dump-0.1.3.1}/src/osi_dump/importer/image/__init__.py +0 -0
  80. {osi_dump-0.1.2.9 → osi_dump-0.1.3.1}/src/osi_dump/importer/image/image_importer.py +0 -0
  81. {osi_dump-0.1.2.9 → osi_dump-0.1.3.1}/src/osi_dump/importer/image/openstack_image_importer.py +0 -0
  82. {osi_dump-0.1.2.9 → osi_dump-0.1.3.1}/src/osi_dump/importer/instance/__init__.py +0 -0
  83. {osi_dump-0.1.2.9 → osi_dump-0.1.3.1}/src/osi_dump/importer/instance/instance_importer.py +0 -0
  84. {osi_dump-0.1.2.9 → osi_dump-0.1.3.1}/src/osi_dump/importer/load_balancer/__init__.py +0 -0
  85. {osi_dump-0.1.2.9 → osi_dump-0.1.3.1}/src/osi_dump/importer/load_balancer/load_balancer_importer.py +0 -0
  86. {osi_dump-0.1.2.9 → osi_dump-0.1.3.1}/src/osi_dump/importer/load_balancer/openstack_load_balancer_importer.py +0 -0
  87. {osi_dump-0.1.2.9 → osi_dump-0.1.3.1}/src/osi_dump/importer/project/__init__.py +0 -0
  88. {osi_dump-0.1.2.9 → osi_dump-0.1.3.1}/src/osi_dump/importer/project/openstack_project_importer.py +0 -0
  89. {osi_dump-0.1.2.9 → osi_dump-0.1.3.1}/src/osi_dump/importer/project/project_importer.py +0 -0
  90. {osi_dump-0.1.2.9 → osi_dump-0.1.3.1}/src/osi_dump/importer/role_assignment/__init__.py +0 -0
  91. {osi_dump-0.1.2.9 → osi_dump-0.1.3.1}/src/osi_dump/importer/role_assignment/openstack_role_assignment_importer.py +0 -0
  92. {osi_dump-0.1.2.9 → osi_dump-0.1.3.1}/src/osi_dump/importer/role_assignment/role_assignment_importer.py +0 -0
  93. {osi_dump-0.1.2.9 → osi_dump-0.1.3.1}/src/osi_dump/importer/router/__init__.py +0 -0
  94. {osi_dump-0.1.2.9 → osi_dump-0.1.3.1}/src/osi_dump/importer/router/router_importer.py +0 -0
  95. {osi_dump-0.1.2.9 → osi_dump-0.1.3.1}/src/osi_dump/importer/volume/__init__.py +0 -0
  96. {osi_dump-0.1.2.9 → osi_dump-0.1.3.1}/src/osi_dump/importer/volume/openstack_volume_importer.py +0 -0
  97. {osi_dump-0.1.2.9 → osi_dump-0.1.3.1}/src/osi_dump/importer/volume/volume_importer.py +0 -0
  98. {osi_dump-0.1.2.9 → osi_dump-0.1.3.1}/src/osi_dump/model/__init__.py +0 -0
  99. {osi_dump-0.1.2.9 → osi_dump-0.1.3.1}/src/osi_dump/model/authentication_info.py +0 -0
  100. {osi_dump-0.1.2.9 → osi_dump-0.1.3.1}/src/osi_dump/model/external_port.py +0 -0
  101. {osi_dump-0.1.2.9 → osi_dump-0.1.3.1}/src/osi_dump/model/flavor.py +0 -0
  102. {osi_dump-0.1.2.9 → osi_dump-0.1.3.1}/src/osi_dump/model/floating_ip.py +0 -0
  103. {osi_dump-0.1.2.9 → osi_dump-0.1.3.1}/src/osi_dump/model/hypervisor.py +0 -0
  104. {osi_dump-0.1.2.9 → osi_dump-0.1.3.1}/src/osi_dump/model/load_balancer.py +0 -0
  105. {osi_dump-0.1.2.9 → osi_dump-0.1.3.1}/src/osi_dump/model/project.py +0 -0
  106. {osi_dump-0.1.2.9 → osi_dump-0.1.3.1}/src/osi_dump/model/role_assignment.py +0 -0
  107. {osi_dump-0.1.2.9 → osi_dump-0.1.3.1}/src/osi_dump/os_connection/__init__.py +0 -0
  108. {osi_dump-0.1.2.9 → osi_dump-0.1.3.1}/src/osi_dump/os_connection/get_connections.py +0 -0
  109. {osi_dump-0.1.2.9 → osi_dump-0.1.3.1}/src/osi_dump/util/__init__.py +0 -0
  110. {osi_dump-0.1.2.9 → osi_dump-0.1.3.1}/src/osi_dump/util/create_file.py +0 -0
  111. {osi_dump-0.1.2.9 → osi_dump-0.1.3.1}/src/osi_dump/util/excel_autosize_column.py +0 -0
  112. {osi_dump-0.1.2.9 → osi_dump-0.1.3.1}/src/osi_dump/util/excel_sort_sheet.py +0 -0
  113. {osi_dump-0.1.2.9 → osi_dump-0.1.3.1}/src/osi_dump/util/export_data_excel.py +0 -0
  114. {osi_dump-0.1.2.9 → osi_dump-0.1.3.1}/src/osi_dump/util/extract_hostname.py +0 -0
  115. {osi_dump-0.1.2.9 → osi_dump-0.1.3.1}/src/osi_dump/util/panda_excel.py +0 -0
  116. {osi_dump-0.1.2.9 → osi_dump-0.1.3.1}/src/osi_dump/util/validate_dir_path.py +0 -0
  117. {osi_dump-0.1.2.9 → osi_dump-0.1.3.1}/src/osi_dump.egg-info/dependency_links.txt +0 -0
  118. {osi_dump-0.1.2.9 → osi_dump-0.1.3.1}/src/osi_dump.egg-info/entry_points.txt +0 -0
  119. {osi_dump-0.1.2.9 → osi_dump-0.1.3.1}/src/osi_dump.egg-info/requires.txt +0 -0
  120. {osi_dump-0.1.2.9 → osi_dump-0.1.3.1}/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.2.9
3
+ Version: 0.1.3.1
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.2.9"
3
+ version = "0.1.3.1"
4
4
  description = "OpenStack information dump tool"
5
5
  readme = "README.md"
6
6
  authors = [{ name = "TVKain" }]
@@ -0,0 +1,44 @@
1
+ import logging
2
+
3
+ from openstack.connection import Connection
4
+ from openstack.identity.v3.service import Service
5
+ from openstack.load_balancer.v2.load_balancer import LoadBalancer
6
+
7
+ import osi_dump.util.openstack_util as os_util
8
+
9
+ logger = logging.getLogger(__name__)
10
+
11
+
12
+ def get_floating_ip_project(connection: Connection, floating_ip_id: str):
13
+ neutron_endpoint = os_util.get_endpoint(
14
+ connection=connection, service_type="network", interface="public"
15
+ )
16
+
17
+ try:
18
+ url = f"{neutron_endpoint}/v2.0/floatingips/{floating_ip_id}?fields=project_id"
19
+ response = connection.session.get(url)
20
+
21
+ except Exception as e:
22
+ print(e)
23
+
24
+ data = response.json()
25
+
26
+ return data["floatingip"]["project_id"]
27
+
28
+
29
+ def get_router_project(connection: Connection, router_id: str):
30
+ neutron_endpoint = os_util.get_endpoint(
31
+ connection=connection, service_type="network", interface="internal"
32
+ )
33
+
34
+ try:
35
+ url = f"{neutron_endpoint}/v2.0/routers/{router_id}?fields=project_id"
36
+
37
+ response = connection.session.get(url)
38
+
39
+ except Exception as e:
40
+ print(e)
41
+
42
+ data = response.json()
43
+
44
+ return data["router"]["project_id"]
@@ -3,9 +3,12 @@ from openstack.identity.v3.service import Service
3
3
  from openstack.load_balancer.v2.load_balancer import LoadBalancer
4
4
 
5
5
 
6
+ import osi_dump.util.openstack_util as os_util
7
+
8
+
6
9
  def get_load_balancers(connection: Connection) -> list[LoadBalancer]:
7
- octavia_endpoint = connection.endpoint_for(
8
- service_type="load-balancer", interface="public"
10
+ octavia_endpoint = os_util.get_endpoint(
11
+ connection=connection, service_type="load-balancer", interface="public"
9
12
  )
10
13
 
11
14
  url = f"{octavia_endpoint}/v2.0/lbaas/loadbalancers"
@@ -19,8 +22,8 @@ def get_load_balancers(connection: Connection) -> list[LoadBalancer]:
19
22
 
20
23
  def get_amphoraes(connection: Connection, load_balancer_id: str) -> list[dict]:
21
24
 
22
- octavia_endpoint = connection.endpoint_for(
23
- service_type="load-balancer", interface="public"
25
+ octavia_endpoint = os_util.get_endpoint(
26
+ connection=connection, service_type="load-balancer", interface="public"
24
27
  )
25
28
 
26
29
  url = f"{octavia_endpoint}/v2/octavia/amphorae?load_balancer_id={load_balancer_id}&fields=status&fields=compute_id"
@@ -1,11 +1,13 @@
1
1
  from openstack.connection import Connection
2
2
  from openstack.identity.v3.service import Service
3
3
 
4
+ import osi_dump.util.openstack_util as os_util
5
+
4
6
 
5
7
  def get_usage(connection: Connection, resource_provider_id: str):
6
8
 
7
- placement_endpoint = connection.endpoint_for(
8
- service_type="placement", interface="public"
9
+ placement_endpoint = os_util.get_endpoint(
10
+ connection=connection, service_type="placement", interface="public"
9
11
  )
10
12
 
11
13
  url = f"{placement_endpoint}/resource_providers/{resource_provider_id}/usages"
@@ -15,6 +15,8 @@ from openstack.network.v2.router import Router as OSRouter
15
15
  from osi_dump.importer.external_port.external_port_importer import ExternalPortImporter
16
16
  from osi_dump.model.external_port import ExternalPort
17
17
 
18
+ import osi_dump.api.neutron as osi_neutron
19
+
18
20
  logger = logging.getLogger(__name__)
19
21
 
20
22
 
@@ -146,11 +148,15 @@ class OpenStackExternalPortImporter(ExternalPortImporter):
146
148
  return ""
147
149
 
148
150
  def _map_project_id_router(self, device_id: str) -> str:
149
- router: OSRouter = self.connection.get_router(name_or_id=device_id)
151
+ project_id = osi_neutron.get_router_project(
152
+ self.connection, router_id=device_id
153
+ )
150
154
 
151
- return router.project_id
155
+ return project_id
152
156
 
153
157
  def _map_project_id_floating(self, device_id: str) -> str:
154
- floating_ip: OSFloatingIP = self.connection.get_floating_ip(id=device_id)
158
+ project_id = osi_neutron.get_floating_ip_project(
159
+ self.connection, floating_ip_id=device_id
160
+ )
155
161
 
156
- return floating_ip.project_id
162
+ return project_id
@@ -5,6 +5,8 @@ import concurrent
5
5
  from openstack.connection import Connection
6
6
  from openstack.compute.v2.server import Server
7
7
 
8
+ from openstack.compute.v2.flavor import Flavor as OSFlavor
9
+
8
10
  from osi_dump.importer.instance.instance_importer import InstanceImporter
9
11
  from osi_dump.model.instance import Instance
10
12
 
@@ -87,6 +89,26 @@ class OpenStackInstanceImporter(InstanceImporter):
87
89
  f"Unable to obtain IP address information for instance {server.name}: {e}"
88
90
  )
89
91
 
92
+ vgpus = None
93
+ vgpu_type = None
94
+
95
+ vgpu_metadata_property = "pci_passthrough:alias"
96
+
97
+ try:
98
+ flavor: OSFlavor = self.connection.get_flavor(
99
+ name_or_id=server.flavor["id"]
100
+ )
101
+
102
+ vgpu_prop: str = flavor.extra_specs[vgpu_metadata_property]
103
+
104
+ vgpu_props = vgpu_prop.split(":")
105
+
106
+ vgpu_type = vgpu_props[0]
107
+ vgpus = int(vgpu_props[1])
108
+
109
+ except Exception as e:
110
+ pass
111
+
90
112
  instance = Instance(
91
113
  instance_id=server.id,
92
114
  instance_name=server.name,
@@ -101,6 +123,8 @@ class OpenStackInstanceImporter(InstanceImporter):
101
123
  vcpus=server.flavor["vcpus"],
102
124
  created_at=server.created_at,
103
125
  updated_at=server.updated_at,
126
+ vgpus=vgpus,
127
+ vgpu_type=vgpu_type,
104
128
  )
105
129
 
106
130
  return instance
@@ -78,6 +78,7 @@ class OpenStackRouterImporter(RouterImporter):
78
78
  external_net_id=external_net_id,
79
79
  external_net_ip=external_net_ip,
80
80
  status=router.status,
81
+ admin_state=router.is_admin_state_up,
81
82
  project_id=router.project_id,
82
83
  created_at=router.created_at,
83
84
  updated_at=router.updated_at,
@@ -23,5 +23,5 @@ class Image(BaseModel):
23
23
  virtual_size: Optional[int]
24
24
  visibility: str
25
25
 
26
- created_at: str
27
- updated_at: str
26
+ created_at: Optional[str]
27
+ updated_at: Optional[str]
@@ -16,6 +16,8 @@ class Instance(BaseModel):
16
16
  status: str
17
17
  ram: int
18
18
  vcpus: int
19
+ vgpus: Optional[int]
20
+ vgpu_type: Optional[str]
19
21
  hypervisor: Optional[str]
20
22
  created_at: str
21
23
  updated_at: str
@@ -13,8 +13,10 @@ class Router(BaseModel):
13
13
  external_net_id: Optional[str]
14
14
  external_net_ip: Optional[str]
15
15
 
16
+ admin_state: Optional[bool]
17
+
16
18
  status: str
17
19
  project_id: Optional[str]
18
20
 
19
- created_at: str
20
- updated_at: str
21
+ created_at: Optional[str]
22
+ updated_at: Optional[str]
@@ -19,5 +19,5 @@ class Volume(BaseModel):
19
19
 
20
20
  snapshots: Optional[list[str]]
21
21
 
22
- updated_at: str
23
- created_at: str
22
+ updated_at: Optional[str]
23
+ created_at: Optional[str]
@@ -0,0 +1,20 @@
1
+ import urllib
2
+ import urllib.parse
3
+
4
+ from openstack.connection import Connection
5
+
6
+
7
+ def get_endpoint(connection: Connection, service_type: str, interface: str) -> str:
8
+ endpoint = connection.endpoint_for(service_type=service_type, interface=interface)
9
+
10
+ parsed_endpoint = urllib.parse.urlparse(endpoint)
11
+
12
+ new_hostname = urllib.parse.urlparse(connection.auth["auth_url"]).hostname
13
+
14
+ port = parsed_endpoint.port
15
+
16
+ ret = urllib.parse.urlunparse(
17
+ parsed_endpoint._replace(netloc=f"{new_hostname}:{port}")
18
+ )
19
+
20
+ return ret
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: osi-dump
3
- Version: 0.1.2.9
3
+ Version: 0.1.3.1
4
4
  Summary: OpenStack information dump tool
5
5
  Author: TVKain
6
6
  License: Apache-2.0
@@ -10,6 +10,7 @@ src/osi_dump.egg-info/entry_points.txt
10
10
  src/osi_dump.egg-info/requires.txt
11
11
  src/osi_dump.egg-info/top_level.txt
12
12
  src/osi_dump/api/__init__.py
13
+ src/osi_dump/api/neutron.py
13
14
  src/osi_dump/api/octavia.py
14
15
  src/osi_dump/api/placement.py
15
16
  src/osi_dump/batch_handler/__init__.py
@@ -112,5 +113,6 @@ src/osi_dump/util/excel_autosize_column.py
112
113
  src/osi_dump/util/excel_sort_sheet.py
113
114
  src/osi_dump/util/export_data_excel.py
114
115
  src/osi_dump/util/extract_hostname.py
116
+ src/osi_dump/util/openstack_util.py
115
117
  src/osi_dump/util/panda_excel.py
116
118
  src/osi_dump/util/validate_dir_path.py
File without changes
File without changes