osi-dump 0.1.2.7__py3-none-any.whl → 0.1.2.9__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.
@@ -9,6 +9,8 @@ import numpy as np
9
9
  from openstack.connection import Connection
10
10
  from openstack.network.v2.port import Port as OSPort
11
11
  from openstack.network.v2.subnet import Subnet as OSSubnet
12
+ from openstack.network.v2.floating_ip import FloatingIP as OSFloatingIP
13
+ from openstack.network.v2.router import Router as OSRouter
12
14
 
13
15
  from osi_dump.importer.external_port.external_port_importer import ExternalPortImporter
14
16
  from osi_dump.model.external_port import ExternalPort
@@ -108,9 +110,20 @@ class OpenStackExternalPortImporter(ExternalPortImporter):
108
110
  except Exception as e:
109
111
  logger.warning(f"No subnet cidr found for port {external_port.id}")
110
112
 
113
+ mapped_device_project = ["network:floatingip", "network:router_gateway"]
114
+
115
+ project_id = (
116
+ external_port.project_id
117
+ if external_port.device_owner not in mapped_device_project
118
+ else self._map_project_id(
119
+ device_owner=external_port.device_owner,
120
+ device_id=external_port.device_id,
121
+ )
122
+ )
123
+
111
124
  external_port_ret = ExternalPort(
112
125
  port_id=external_port.id,
113
- project_id=external_port.project_id,
126
+ project_id=project_id,
114
127
  network_id=external_port.network_id,
115
128
  subnet_id=subnet_id,
116
129
  subnet_cidr=subnet_cidr,
@@ -122,3 +135,22 @@ class OpenStackExternalPortImporter(ExternalPortImporter):
122
135
  )
123
136
 
124
137
  return external_port_ret
138
+
139
+ def _map_project_id(self, device_owner: str, device_id: str) -> str:
140
+
141
+ if device_owner == "network:router_gateway":
142
+ return self._map_project_id_router(device_id=device_id)
143
+ elif device_owner == "network:floatingip":
144
+ return self._map_project_id_floating(device_id=device_id)
145
+
146
+ return ""
147
+
148
+ def _map_project_id_router(self, device_id: str) -> str:
149
+ router: OSRouter = self.connection.get_router(name_or_id=device_id)
150
+
151
+ return router.project_id
152
+
153
+ def _map_project_id_floating(self, device_id: str) -> str:
154
+ floating_ip: OSFloatingIP = self.connection.get_floating_ip(id=device_id)
155
+
156
+ return floating_ip.project_id
osi_dump/model/image.py CHANGED
@@ -12,7 +12,7 @@ class Image(BaseModel):
12
12
  min_disk: int
13
13
  min_ram: int
14
14
  image_name: Optional[str]
15
- owner: str
15
+ owner: Optional[str]
16
16
 
17
17
  os_distro: Optional[str]
18
18
  properties: Optional[dict]
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: osi-dump
3
- Version: 0.1.2.7
3
+ Version: 0.1.2.9
4
4
  Summary: OpenStack information dump tool
5
5
  Author: TVKain
6
6
  License: Apache-2.0
@@ -52,7 +52,7 @@ osi_dump/exporter/volume/excel_volume_exporter.py,sha256=BhesTGXMQF3BAwHgJMYfnxF
52
52
  osi_dump/exporter/volume/volume_exporter.py,sha256=YoPvytC0ctWeWwVcG6pb0XwkF4N0QcGAoUHa3QldkEg,155
53
53
  osi_dump/importer/external_port/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
54
54
  osi_dump/importer/external_port/external_port_importer.py,sha256=mLFNwjaYiUNk3DO74GUCXC1eCaWbymGjKJKex3O2z-U,218
55
- osi_dump/importer/external_port/openstack_external_port_importer.py,sha256=F_tHT70rfIHZO0kK8x80ym-zDDh-oztRPCJySFflxGQ,3876
55
+ osi_dump/importer/external_port/openstack_external_port_importer.py,sha256=RC2_ren_62oFPNJS_mkfVAuN_Yyt8JJBkxgewummWQs,5071
56
56
  osi_dump/importer/flavor/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
57
57
  osi_dump/importer/flavor/flavor_importer.py,sha256=IfU2L8N8EO4eESnEDirwe9U-GXSTuTcsdrlDxD95tcQ,186
58
58
  osi_dump/importer/flavor/openstack_flavor_importer.py,sha256=y3uFCls7H-l1tu11T_PaEoWghhdxINsf7baRAShXC1w,1876
@@ -89,7 +89,7 @@ osi_dump/model/external_port.py,sha256=4FlyG8ZmQO7nNdavmRBhK8ZMsNogmhMqEBa03okvq
89
89
  osi_dump/model/flavor.py,sha256=-G8FaH_qiVrgtRxAWhdpC1c9FRdXLRroG-WJ03-DRZ4,318
90
90
  osi_dump/model/floating_ip.py,sha256=CRJufC5ZaxxcbGvdot7Af-sO8uyKbyQK9zHljfBnyFA,427
91
91
  osi_dump/model/hypervisor.py,sha256=pToa-rg7LldKd-h3aNZDJQPy5dhYDIXehq-tr8_xv1I,336
92
- osi_dump/model/image.py,sha256=bCwxdldJC7XpCJZ6Se6kIcQlc3qSRQHTxgr0bYVaRFQ,494
92
+ osi_dump/model/image.py,sha256=5dXlBsiT0BWo5orQj38jEGtiFEwiRCJDmdhghg3RcTc,504
93
93
  osi_dump/model/instance.py,sha256=DSQ0F0CTHL0f_GMZ4GwH2D-Q_KvRmrNyCWTpCzDlqBs,494
94
94
  osi_dump/model/load_balancer.py,sha256=T5RU6gm36ePYCh3KQ_OYO44FHMfxTcSNaiuKP5E_9CY,352
95
95
  osi_dump/model/project.py,sha256=3fNsDcWxuRVBS96W98C_Fia82qt14InjUM7n7rBCX6E,679
@@ -106,8 +106,8 @@ osi_dump/util/export_data_excel.py,sha256=VYSxDBZ7dgSbTj3n_8RRPqe183tILNh6wJW-Un
106
106
  osi_dump/util/extract_hostname.py,sha256=IpdklGHevmtRu67xeSRE_5n2mvWGI1sDsnJwExo_AR0,111
107
107
  osi_dump/util/panda_excel.py,sha256=GHHLguKLMm1sq4FHTPHABTjx7IqpOcGF_3OJT-cJORE,1011
108
108
  osi_dump/util/validate_dir_path.py,sha256=pL_OrY8JnNwk3vj6Zp6bsZtgHXhszSGRoqIt-1G5S90,507
109
- osi_dump-0.1.2.7.dist-info/METADATA,sha256=DAVAiuD-M_6yn5a8NsXapT3J8Q7D5bMFghND7-IY6ys,675
110
- osi_dump-0.1.2.7.dist-info/WHEEL,sha256=HiCZjzuy6Dw0hdX5R3LCFPDmFS4BWl8H-8W39XfmgX4,91
111
- osi_dump-0.1.2.7.dist-info/entry_points.txt,sha256=ozm5sIBtXzLv6_FiUe26v1BgA3_xUReGLPhKQKZ56wQ,46
112
- osi_dump-0.1.2.7.dist-info/top_level.txt,sha256=OtAAwmJfcoPvlw_Cemo_H1aXIGV_7w0O2941KQt6faQ,9
113
- osi_dump-0.1.2.7.dist-info/RECORD,,
109
+ osi_dump-0.1.2.9.dist-info/METADATA,sha256=wKSCwOTVb8CW-3s1qjjvcFZrI2uxFkpKkRJltfSUTok,675
110
+ osi_dump-0.1.2.9.dist-info/WHEEL,sha256=HiCZjzuy6Dw0hdX5R3LCFPDmFS4BWl8H-8W39XfmgX4,91
111
+ osi_dump-0.1.2.9.dist-info/entry_points.txt,sha256=ozm5sIBtXzLv6_FiUe26v1BgA3_xUReGLPhKQKZ56wQ,46
112
+ osi_dump-0.1.2.9.dist-info/top_level.txt,sha256=OtAAwmJfcoPvlw_Cemo_H1aXIGV_7w0O2941KQt6faQ,9
113
+ osi_dump-0.1.2.9.dist-info/RECORD,,