osi-dump 0.1.3__py3-none-any.whl → 0.1.3.1.1__py3-none-any.whl

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.
osi_dump/api/neutron.py CHANGED
@@ -4,12 +4,14 @@ from openstack.connection import Connection
4
4
  from openstack.identity.v3.service import Service
5
5
  from openstack.load_balancer.v2.load_balancer import LoadBalancer
6
6
 
7
+ import osi_dump.util.openstack_util as os_util
8
+
7
9
  logger = logging.getLogger(__name__)
8
10
 
9
11
 
10
12
  def get_floating_ip_project(connection: Connection, floating_ip_id: str):
11
- neutron_endpoint = connection.endpoint_for(
12
- service_type="network", interface="public"
13
+ neutron_endpoint = os_util.get_endpoint(
14
+ connection=connection, service_type="network", interface="public"
13
15
  )
14
16
 
15
17
  try:
@@ -25,12 +27,12 @@ def get_floating_ip_project(connection: Connection, floating_ip_id: str):
25
27
 
26
28
 
27
29
  def get_router_project(connection: Connection, router_id: str):
28
- octavia_endpoint = connection.endpoint_for(
29
- service_type="network", interface="internal"
30
+ neutron_endpoint = os_util.get_endpoint(
31
+ connection=connection, service_type="network", interface="internal"
30
32
  )
31
33
 
32
34
  try:
33
- url = f"{octavia_endpoint}/v2.0/routers/{router_id}?fields=project_id"
35
+ url = f"{neutron_endpoint}/v2.0/routers/{router_id}?fields=project_id"
34
36
 
35
37
  response = connection.session.get(url)
36
38
 
osi_dump/api/octavia.py CHANGED
@@ -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"
osi_dump/api/placement.py CHANGED
@@ -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"
@@ -107,9 +107,7 @@ class OpenStackInstanceImporter(InstanceImporter):
107
107
  vgpus = int(vgpu_props[1])
108
108
 
109
109
  except Exception as e:
110
- logger.warning(
111
- f"Unable to obtain GPU information for instance {server.name}: {e}"
112
- )
110
+ pass
113
111
 
114
112
  instance = Instance(
115
113
  instance_id=server.id,
@@ -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,
osi_dump/model/image.py CHANGED
@@ -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]
osi_dump/model/router.py CHANGED
@@ -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]
osi_dump/model/volume.py CHANGED
@@ -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,22 @@
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}")._replace(
18
+ scheme="https"
19
+ )
20
+ )
21
+
22
+ return ret
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: osi-dump
3
- Version: 0.1.3
3
+ Version: 0.1.3.1.1
4
4
  Summary: OpenStack information dump tool
5
5
  Author: TVKain
6
6
  License: Apache-2.0
@@ -2,9 +2,9 @@ osi_dump/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
2
2
  osi_dump/__main__.py,sha256=fCVTLFipB-P0872_4j7iOJNNosOMBj3YdHr8TH_fhRY,71
3
3
  osi_dump/cli.py,sha256=vLijmcrWieCVK4cSLN2sK9ltWlercw9Zg6yBEvZtPkg,6379
4
4
  osi_dump/api/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
5
- osi_dump/api/neutron.py,sha256=m3pfDbwbE4sWKMYOWPiFDK4PsCHxiJmn4QWu29vvcYw,1082
6
- osi_dump/api/octavia.py,sha256=_vuuZ-Pcj4oV1A3Sf_RSiuc_UxcHXKLty87HEyipPGg,950
7
- osi_dump/api/placement.py,sha256=9yADLulo1HfUnPLE7IJt4ZY8e2jRTaoeV4J4MMiKCew,455
5
+ osi_dump/api/neutron.py,sha256=xRhNkEBDzOoUQHSWmkoI_Tdbcs8kvdS0UpPNkzxQv3g,1170
6
+ osi_dump/api/octavia.py,sha256=sOFoH89knyuI_gkIxvHfjuZ9mCFzc4zBw8GHN_kb794,1039
7
+ osi_dump/api/placement.py,sha256=UvIGwAvowmCLobVARut8WnLVV-IdCDniyW9y16l2B_I,523
8
8
  osi_dump/batch_handler/__init__.py,sha256=wsiE42GCjbKgXBzpiahWEDF_-IXCKzr6PyrLn0oEKSc,288
9
9
  osi_dump/batch_handler/external_port_batch_handler.py,sha256=iGm0htGbLkpTX5RFPcrvXrVVn0eeTpavN3u4s58Z_pE,1783
10
10
  osi_dump/batch_handler/flavor_batch_handler.py,sha256=Cxf-rkuW5MrrOyiKi9N3InsdDGku7Bf0CAaPNhhM0hE,1589
@@ -68,7 +68,7 @@ osi_dump/importer/image/image_importer.py,sha256=6zwAMnS58S2HGwARwebqf4VE9IBQBv5
68
68
  osi_dump/importer/image/openstack_image_importer.py,sha256=ffc13qnIGu07OXnIPaKiVxGdufep82RfQoKqLb1bwHc,2455
69
69
  osi_dump/importer/instance/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
70
70
  osi_dump/importer/instance/instance_importer.py,sha256=TaaPgEFVVMRT3mSXrzQkSaSIBPBwwANpEaWCgRsgImc,196
71
- osi_dump/importer/instance/openstack_instance_importer.py,sha256=FJqVnow-RdI8RI9geJ-E4teo_HTuQALupeFrK8HtUmc,4158
71
+ osi_dump/importer/instance/openstack_instance_importer.py,sha256=o5ld1weNM8X4ibZMQYhfhckTkea5TqVEsG4Zs0q2T90,4049
72
72
  osi_dump/importer/load_balancer/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
73
73
  osi_dump/importer/load_balancer/load_balancer_importer.py,sha256=fzInBlkscqlbhCATeQYXvufc-WHq2pbofTJJifN0zaY,218
74
74
  osi_dump/importer/load_balancer/openstack_load_balancer_importer.py,sha256=sX5ZMHT-QPIuAD4YBwitxj8l5fMvbOsA-BOQxLL84lU,2392
@@ -79,7 +79,7 @@ osi_dump/importer/role_assignment/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeR
79
79
  osi_dump/importer/role_assignment/openstack_role_assignment_importer.py,sha256=bff9rutp2835KA0ibVsvtCZStNgtiTkc7IKUsCmaXRo,3003
80
80
  osi_dump/importer/role_assignment/role_assignment_importer.py,sha256=Faorx0qsgdXjv5y2t-7obpV3wFfbmByx_-8b9yBr7L8,228
81
81
  osi_dump/importer/router/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
82
- osi_dump/importer/router/openstack_router_importer.py,sha256=-8xJ9hV7Y9ZpUXIEl3PHsGvggp9r57-A9hL8Tm_lb7c,2731
82
+ osi_dump/importer/router/openstack_router_importer.py,sha256=T_Wr45nJrCcp2OOdRawmdQkNBDzczA-3DPx9dlewd4g,2781
83
83
  osi_dump/importer/router/router_importer.py,sha256=L2i0Fnh3iZEsP_PFtx1j0yWTpkmgHsc6Pobii8lDRCo,186
84
84
  osi_dump/importer/volume/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
85
85
  osi_dump/importer/volume/openstack_volume_importer.py,sha256=Tte9fX91oxEoRcUZPJd7g6oH6izcWy8WwFCapg_ZY1M,2454
@@ -90,13 +90,13 @@ osi_dump/model/external_port.py,sha256=4FlyG8ZmQO7nNdavmRBhK8ZMsNogmhMqEBa03okvq
90
90
  osi_dump/model/flavor.py,sha256=-G8FaH_qiVrgtRxAWhdpC1c9FRdXLRroG-WJ03-DRZ4,318
91
91
  osi_dump/model/floating_ip.py,sha256=CRJufC5ZaxxcbGvdot7Af-sO8uyKbyQK9zHljfBnyFA,427
92
92
  osi_dump/model/hypervisor.py,sha256=pToa-rg7LldKd-h3aNZDJQPy5dhYDIXehq-tr8_xv1I,336
93
- osi_dump/model/image.py,sha256=5dXlBsiT0BWo5orQj38jEGtiFEwiRCJDmdhghg3RcTc,504
93
+ osi_dump/model/image.py,sha256=JUr90XQgA6d3EyoZyV-Cyz4Y1GkEBIDhALsf-_eoR-Y,524
94
94
  osi_dump/model/instance.py,sha256=z38nK0s5bmZXRMItJVsnZ1rQX6NO6skXR49ZojgSb2Q,548
95
95
  osi_dump/model/load_balancer.py,sha256=T5RU6gm36ePYCh3KQ_OYO44FHMfxTcSNaiuKP5E_9CY,352
96
96
  osi_dump/model/project.py,sha256=3fNsDcWxuRVBS96W98C_Fia82qt14InjUM7n7rBCX6E,679
97
97
  osi_dump/model/role_assignment.py,sha256=fNt05y4aFF6b71Yps_EHzWavv8wF-jYx7gd3WAhqy6Y,310
98
- osi_dump/model/router.py,sha256=nO0XW0mpabr4ajM40Biuva63N8YWulZUrhH5kmPnKgI,363
99
- osi_dump/model/volume.py,sha256=1p5Xw0LPxfroJwSYtE-n_Gv4MsRDA_sSvc7SQY_Uo8I,371
98
+ osi_dump/model/router.py,sha256=bT533cP50XrzPzwbkXwjdnmm5j5nM8jVEIqmfJ2T8G8,416
99
+ osi_dump/model/volume.py,sha256=CPlZ2NUKLZ2QI-WYNcxFrpd2kYEHPITpCztdGRGBHgM,391
100
100
  osi_dump/os_connection/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
101
101
  osi_dump/os_connection/get_connections.py,sha256=1zeir4cEtzJOUOn53zUmlD9lWMvYXhuRr0IhI5U1DAw,1753
102
102
  osi_dump/util/__init__.py,sha256=obJLcem8iWbVC3NIk4GHBMwwAsW-FcrwRdfzphuDjpY,330
@@ -105,10 +105,11 @@ osi_dump/util/excel_autosize_column.py,sha256=zzQ6uXkQhHAqVn9fUAgNjoCH_HiNEC9Dcj
105
105
  osi_dump/util/excel_sort_sheet.py,sha256=o4jXtP1ZFYtAGzkAP5S8Tym4h-SEoFBAI3j24y-24UM,1047
106
106
  osi_dump/util/export_data_excel.py,sha256=VYSxDBZ7dgSbTj3n_8RRPqe183tILNh6wJW-UnFvJUU,882
107
107
  osi_dump/util/extract_hostname.py,sha256=IpdklGHevmtRu67xeSRE_5n2mvWGI1sDsnJwExo_AR0,111
108
+ osi_dump/util/openstack_util.py,sha256=mPWLoVdSg4mukqtX87fN0Q9aDcRicJIqIsIOIIu1PnY,591
108
109
  osi_dump/util/panda_excel.py,sha256=GHHLguKLMm1sq4FHTPHABTjx7IqpOcGF_3OJT-cJORE,1011
109
110
  osi_dump/util/validate_dir_path.py,sha256=pL_OrY8JnNwk3vj6Zp6bsZtgHXhszSGRoqIt-1G5S90,507
110
- osi_dump-0.1.3.dist-info/METADATA,sha256=MaY9IAfpGuRL54svZNwYrkCRQeWsvTxECZr4Rkl056g,673
111
- osi_dump-0.1.3.dist-info/WHEEL,sha256=nCVcAvsfA9TDtwGwhYaRrlPhTLV9m-Ga6mdyDtuwK18,91
112
- osi_dump-0.1.3.dist-info/entry_points.txt,sha256=ozm5sIBtXzLv6_FiUe26v1BgA3_xUReGLPhKQKZ56wQ,46
113
- osi_dump-0.1.3.dist-info/top_level.txt,sha256=OtAAwmJfcoPvlw_Cemo_H1aXIGV_7w0O2941KQt6faQ,9
114
- osi_dump-0.1.3.dist-info/RECORD,,
111
+ osi_dump-0.1.3.1.1.dist-info/METADATA,sha256=OCkJgALyHZdg7eUWvh6_gZmI6EFP9GnU-qMhimiPbR4,677
112
+ osi_dump-0.1.3.1.1.dist-info/WHEEL,sha256=Mdi9PDNwEZptOjTlUcAth7XJDFtKrHYaQMPulZeBCiQ,91
113
+ osi_dump-0.1.3.1.1.dist-info/entry_points.txt,sha256=ozm5sIBtXzLv6_FiUe26v1BgA3_xUReGLPhKQKZ56wQ,46
114
+ osi_dump-0.1.3.1.1.dist-info/top_level.txt,sha256=OtAAwmJfcoPvlw_Cemo_H1aXIGV_7w0O2941KQt6faQ,9
115
+ osi_dump-0.1.3.1.1.dist-info/RECORD,,
@@ -1,5 +1,5 @@
1
1
  Wheel-Version: 1.0
2
- Generator: setuptools (73.0.0)
2
+ Generator: setuptools (73.0.1)
3
3
  Root-Is-Purelib: true
4
4
  Tag: py3-none-any
5
5