osi-dump 0.1.5__py3-none-any.whl → 0.1.6__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.
Files changed (49) hide show
  1. osi_dump/batch_handler/external_port_batch_handler.py +8 -26
  2. osi_dump/batch_handler/flavor_batch_handler.py +4 -18
  3. osi_dump/batch_handler/hypervisor_batch_handler.py +5 -17
  4. osi_dump/batch_handler/image_batch_handler.py +4 -18
  5. osi_dump/batch_handler/network_batch_handler.py +5 -19
  6. osi_dump/batch_handler/project_batch_handler.py +5 -17
  7. osi_dump/batch_handler/router_batch_handler.py +4 -16
  8. osi_dump/batch_handler/volume_batch_handler.py +4 -10
  9. osi_dump/exporter/external_port/excel_external_port_exporter.py +16 -11
  10. osi_dump/exporter/external_port/external_port_exporter.py +4 -3
  11. osi_dump/exporter/flavor/excel_flavor_exporter.py +10 -9
  12. osi_dump/exporter/flavor/flavor_exporter.py +4 -2
  13. osi_dump/exporter/floating_ip/excel_floating_ip_exporter.py +17 -11
  14. osi_dump/exporter/floating_ip/floating_ip_exporter.py +4 -2
  15. osi_dump/exporter/hypervisor/excel_hypervisor_exporter.py +14 -13
  16. osi_dump/exporter/hypervisor/hypervisor_exporter.py +4 -3
  17. osi_dump/exporter/image/excel_image_exporter.py +10 -7
  18. osi_dump/exporter/image/image_exporter.py +4 -2
  19. osi_dump/exporter/network/excel_network_exporter.py +13 -11
  20. osi_dump/exporter/network/network_exporter.py +4 -3
  21. osi_dump/exporter/project/excel_project_exporter.py +11 -11
  22. osi_dump/exporter/project/project_exporter.py +4 -3
  23. osi_dump/exporter/router/excel_router_exporter.py +9 -8
  24. osi_dump/exporter/router/router_exporter.py +3 -2
  25. osi_dump/exporter/volume/excel_volume_exporter.py +10 -8
  26. osi_dump/exporter/volume/volume_exporter.py +4 -2
  27. osi_dump/importer/external_port/external_port_importer.py +3 -4
  28. osi_dump/importer/external_port/openstack_external_port_importer.py +44 -131
  29. osi_dump/importer/flavor/flavor_importer.py +3 -3
  30. osi_dump/importer/flavor/openstack_flavor_importer.py +13 -35
  31. osi_dump/importer/floating_ip/floating_ip_importer.py +3 -3
  32. osi_dump/importer/floating_ip/openstack_floating_ip_importer.py +11 -38
  33. osi_dump/importer/hypervisor/hypervisor_importer.py +3 -4
  34. osi_dump/importer/hypervisor/openstack_hypervisor_importer.py +44 -88
  35. osi_dump/importer/image/image_importer.py +3 -3
  36. osi_dump/importer/image/openstack_image_importer.py +16 -44
  37. osi_dump/importer/network/network_importer.py +3 -4
  38. osi_dump/importer/network/openstack_network_importer.py +23 -52
  39. osi_dump/importer/project/openstack_project_importer.py +45 -83
  40. osi_dump/importer/project/project_importer.py +3 -4
  41. osi_dump/importer/router/openstack_router_importer.py +18 -53
  42. osi_dump/importer/router/router_importer.py +2 -3
  43. osi_dump/importer/volume/openstack_volume_importer.py +15 -45
  44. osi_dump/importer/volume/volume_importer.py +3 -4
  45. {osi_dump-0.1.5.dist-info → osi_dump-0.1.6.dist-info}/METADATA +1 -1
  46. {osi_dump-0.1.5.dist-info → osi_dump-0.1.6.dist-info}/RECORD +49 -49
  47. {osi_dump-0.1.5.dist-info → osi_dump-0.1.6.dist-info}/WHEEL +0 -0
  48. {osi_dump-0.1.5.dist-info → osi_dump-0.1.6.dist-info}/entry_points.txt +0 -0
  49. {osi_dump-0.1.5.dist-info → osi_dump-0.1.6.dist-info}/top_level.txt +0 -0
@@ -1,9 +1,8 @@
1
1
  from abc import ABC, abstractmethod
2
-
2
+ from typing import Generator
3
3
  from osi_dump.model.project import Project
4
4
 
5
-
6
5
  class ProjectImporter(ABC):
7
6
  @abstractmethod
8
- def import_projects(self) -> list[Project]:
9
- pass
7
+ def import_projects(self) -> Generator[Project, None, None]:
8
+ pass
@@ -1,78 +1,45 @@
1
1
  import logging
2
-
3
- import concurrent
4
-
2
+ from typing import Generator
5
3
  from openstack.connection import Connection
6
4
  from openstack.network.v2.router import Router as OSRouter
7
5
 
8
- from osi_dump.importer.router.router_importer import (
9
- RouterImporter,
10
- )
6
+ from osi_dump.importer.router.router_importer import RouterImporter
11
7
  from osi_dump.model.router import Router
12
8
 
13
9
  logger = logging.getLogger(__name__)
14
10
 
15
-
16
11
  class OpenStackRouterImporter(RouterImporter):
17
12
  def __init__(self, connection: Connection):
18
13
  self.connection = connection
19
14
 
20
- def import_routers(self) -> list[Router]:
21
- """Import routers information from Openstack
22
-
23
- Raises:
24
- Exception: Raises exception if fetching router failed
25
-
26
- Returns:
27
- list[Router]: _description_
28
- """
29
-
15
+ def import_routers(self) -> Generator[Router, None, None]:
30
16
  logger.info(f"Importing routers for {self.connection.auth['auth_url']}")
31
-
32
17
  try:
33
- osrouters: list[OSRouter] = list(self.connection.network.routers())
34
- except Exception as e:
35
- raise Exception(
36
- f"Can not fetch routers for {self.connection.auth['auth_url']}"
37
- ) from e
18
+ router_iterator = self.connection.network.routers()
38
19
 
39
- routers: list[Router] = []
20
+ for osrouter in router_iterator:
21
+ yield self._get_router_info(osrouter)
40
22
 
41
- with concurrent.futures.ThreadPoolExecutor() as executor:
42
- futures = [
43
- executor.submit(self._get_router_info, router) for router in osrouters
44
- ]
45
- for future in concurrent.futures.as_completed(futures):
46
- routers.append(future.result())
23
+ except Exception as e:
24
+ logger.error(f"Cannot fetch routers for {self.connection.auth['auth_url']}: {e}")
25
+ return
47
26
 
48
- logger.info(f"Imported routers for {self.connection.auth['auth_url']}")
27
+ logger.info(f"Finished importing routers for {self.connection.auth['auth_url']}")
49
28
 
50
- return routers
51
29
 
52
30
  def _get_router_info(self, router: OSRouter) -> Router:
53
- """
54
- {"network_id": "49760654-71d8-4967-8fdd-5a35d3ff78ef", "external_fixed_ips": [{"subnet_id": |
55
- | | "c044a5c0-4b11-4d8d-ae5e-9ff4ce6c1be6", "ip_address": "10.0.2.188"}], "enable_snat": true}
56
- """
57
-
58
31
  external_net_id = None
59
-
60
- try:
61
- external_net_id = router.external_gateway_info["network_id"]
62
- except Exception as e:
63
- logger.warning(f"Could not get external net id for router: {router.id}")
32
+ if router.external_gateway_info:
33
+ external_net_id = router.external_gateway_info.get("network_id")
64
34
 
65
35
  external_net_ip = None
36
+ if router.external_gateway_info and router.external_gateway_info.get("external_fixed_ips"):
37
+ try:
38
+ external_net_ip = router.external_gateway_info["external_fixed_ips"][0].get("ip_address")
39
+ except (IndexError, KeyError) as e:
40
+ logger.warning(f"Could not get external net ip for router {router.id}: {e}")
66
41
 
67
- try:
68
- external_net_ip = router.external_gateway_info["external_fixed_ips"][0][
69
- "ip_address"
70
- ]
71
-
72
- except Exception as e:
73
- logger.warning(f"Could not get external net ip for router {router.id}")
74
-
75
- router_ret = Router(
42
+ return Router(
76
43
  router_id=router.id,
77
44
  name=router.name,
78
45
  external_net_id=external_net_id,
@@ -83,5 +50,3 @@ class OpenStackRouterImporter(RouterImporter):
83
50
  created_at=router.created_at,
84
51
  updated_at=router.updated_at,
85
52
  )
86
-
87
- return router_ret
@@ -1,9 +1,8 @@
1
1
  from abc import ABC, abstractmethod
2
-
2
+ from typing import Generator
3
3
  from osi_dump.model.router import Router
4
4
 
5
-
6
5
  class RouterImporter(ABC):
7
6
  @abstractmethod
8
- def import_routers(self) -> list[Router]:
7
+ def import_routers(self) -> Generator[Router, None, None]:
9
8
  pass
@@ -1,9 +1,6 @@
1
1
  import logging
2
-
3
- import concurrent
4
-
2
+ from typing import Generator
5
3
  from openstack.connection import Connection
6
-
7
4
  from openstack.block_storage.v3.volume import Volume as OSVolume
8
5
 
9
6
  from osi_dump.importer.volume.volume_importer import VolumeImporter
@@ -11,61 +8,36 @@ from osi_dump.model.volume import Volume
11
8
 
12
9
  logger = logging.getLogger(__name__)
13
10
 
14
-
15
11
  class OpenStackVolumeImporter(VolumeImporter):
16
12
  def __init__(self, connection: Connection):
17
13
  self.connection = connection
18
14
 
19
- def import_volumes(self) -> list[Volume]:
20
- """Import hypervisors information from Openstack
21
-
22
- Raises:
23
- Exception: Raises exception if fetching hypervisor failed
24
-
25
- Returns:
26
- list[Hypervisor]: _description_
27
- """
28
-
15
+ def import_volumes(self) -> Generator[Volume, None, None]:
29
16
  logger.info(f"Importing volumes for {self.connection.auth['auth_url']}")
30
-
31
17
  try:
32
- osvolumes: list[OSVolume] = list(
33
- self.connection.block_storage.volumes(details=True, all_projects=True)
34
- )
35
- except Exception as e:
36
- raise Exception(
37
- f"Can not fetch volumes for {self.connection.auth['auth_url']}"
38
- ) from e
39
-
40
- volumes: list[Volume] = []
41
-
42
- with concurrent.futures.ThreadPoolExecutor() as executor:
43
- futures = [
44
- executor.submit(self._get_volume_info, volume) for volume in osvolumes
45
- ]
46
- for future in concurrent.futures.as_completed(futures):
47
- volumes.append(future.result())
48
-
49
- logger.info(f"Imported volumes for {self.connection.auth['auth_url']}")
18
+ osvolume_iterator = self.connection.block_storage.volumes(details=True, all_projects=True)
19
+
20
+ for volume in osvolume_iterator:
21
+ yield self._get_volume_info(volume)
50
22
 
51
- return volumes
23
+ except Exception as e:
24
+ logger.error(f"Cannot fetch volumes for {self.connection.auth['auth_url']}: {e}")
25
+ return
26
+
27
+ logger.info(f"Finished importing volumes for {self.connection.auth['auth_url']}")
52
28
 
53
29
  def _get_volume_info(self, volume: OSVolume) -> Volume:
54
-
55
30
  snapshots = []
56
31
  try:
57
- snapshots = list(
58
- self.connection.block_storage.snapshots(
59
- details=False, all_projects=True, volume_id=volume.id
60
- )
32
+ snapshot_list = self.connection.block_storage.snapshots(
33
+ details=False, all_projects=True, volume_id=volume.id
61
34
  )
62
-
63
- snapshots = [snapshot["id"] for snapshot in snapshots]
35
+ snapshots = [snapshot.id for snapshot in snapshot_list]
64
36
 
65
37
  except Exception as e:
66
38
  logger.warning(f"Fetching snapshots failed for {volume.id} error: {e}")
67
39
 
68
- ret_volume = Volume(
40
+ return Volume(
69
41
  volume_id=volume.id,
70
42
  volume_name=volume.name,
71
43
  project_id=volume.project_id,
@@ -77,5 +49,3 @@ class OpenStackVolumeImporter(VolumeImporter):
77
49
  updated_at=volume.updated_at,
78
50
  created_at=volume.created_at,
79
51
  )
80
-
81
- return ret_volume
@@ -1,9 +1,8 @@
1
1
  from abc import ABC, abstractmethod
2
-
2
+ from typing import Generator
3
3
  from osi_dump.model.volume import Volume
4
4
 
5
-
6
5
  class VolumeImporter(ABC):
7
6
  @abstractmethod
8
- def import_volumes(self) -> list[Volume]:
9
- pass
7
+ def import_volumes(self) -> Generator[Volume, None, None]:
8
+ pass
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: osi-dump
3
- Version: 0.1.5
3
+ Version: 0.1.6
4
4
  Summary: OpenStack information dump tool
5
5
  Author: TVKain
6
6
  License: Apache-2.0
@@ -7,35 +7,35 @@ osi_dump/api/neutron.py,sha256=YzVtbr2ySAyb88zYIHpYqZ3xn4ISdCWdvkNcDu9eCK8,1853
7
7
  osi_dump/api/octavia.py,sha256=1488xe3LJOpVm8W_vF30EcJiTfVKvNqRAhvl6cyiic4,2680
8
8
  osi_dump/api/placement.py,sha256=vLL8GWAKDT6_glSmiesI_0cQBKKCjfAijmKaEgAg0dg,1137
9
9
  osi_dump/batch_handler/__init__.py,sha256=ii_uSQZ3f4llytLNPZENCxI3aKstwfkC8maM58foRxw,360
10
- osi_dump/batch_handler/external_port_batch_handler.py,sha256=zs-H7MvQrKL83tzFEKanDPxLn8GkzfzvLv8HCHLH8_g,1838
11
- osi_dump/batch_handler/flavor_batch_handler.py,sha256=CKI-SF7HAeWSMt0Biau4396MYby0yOX0w-5SCNDq09I,1640
10
+ osi_dump/batch_handler/external_port_batch_handler.py,sha256=_EN2AUZlaK768EC3OyRisQZwwAL3ppPTeQQTxA1gYiE,1497
11
+ osi_dump/batch_handler/flavor_batch_handler.py,sha256=Oks5krDxQ0LfdJe25uOBkRsERgGKcliQJmIJxHgb2e4,1618
12
12
  osi_dump/batch_handler/floating_ip_batch_handler.py,sha256=w6s4KO7af71WUCquqFKpgKUU_0-z3CDHV9zeUJqaRTQ,1828
13
- osi_dump/batch_handler/hypervisor_batch_handler.py,sha256=6-QgTKev0FsReva9voHFGBxokpcRo8d4_0m9qKYf5W0,1810
14
- osi_dump/batch_handler/image_batch_handler.py,sha256=xav8_Db3vKvoVyQMrK4DSNsVTtRsPf71I0RRSXZeWyg,1615
13
+ osi_dump/batch_handler/hypervisor_batch_handler.py,sha256=4683dRjBkU8umzB3tkjcgLGoYCYTYk7_6RnjE_LIhYk,1790
14
+ osi_dump/batch_handler/image_batch_handler.py,sha256=Bqp6XUqoxdzG1ESy3-Bz912ZYUMuQaWjDNOuUMX2J-Y,1593
15
15
  osi_dump/batch_handler/instance_batch_handler.py,sha256=9Q6T7qLGgxVWGMWX9Re7rW0UcBN5T_pD1lplgFqVoZ0,1883
16
16
  osi_dump/batch_handler/load_balancer_batch_handler.py,sha256=57M8umBGPGkzJfES8Ge7NyW2PPkURTIH-jo5TfNKvhE,1855
17
- osi_dump/batch_handler/network_batch_handler.py,sha256=k-WLnz5UCiX70fGjLywRV_ufEMySSP8UZbdlI0W1DSM,1665
18
- osi_dump/batch_handler/project_batch_handler.py,sha256=8tpF3_yJMXXvOogX2iN1C4xx5_IKt_xIP71ZFwOzNPI,1677
17
+ osi_dump/batch_handler/network_batch_handler.py,sha256=QmmYrQxly9HvEbZeMUHe79Zkw7aNQRpGp8qa_5jmUR0,1641
18
+ osi_dump/batch_handler/project_batch_handler.py,sha256=hewicZt99chM5Ty7fq_Gudc06FwCuQp-CZxDOOydWro,1657
19
19
  osi_dump/batch_handler/role_assignment_batch_handler.py,sha256=Ms1BkmoBqAeVlLOlb6lR-gj9rymI-xSdXIRiGSxK5T0,1747
20
- osi_dump/batch_handler/router_batch_handler.py,sha256=cjccPBF7nBzLMxaMgPYa7yNU6YLWz6Wcsbur7o9Jwa4,1636
20
+ osi_dump/batch_handler/router_batch_handler.py,sha256=75eRTFmLEe2VefnF_Pfa10M6bUMmdklnDQlHxo5t8pU,1618
21
21
  osi_dump/batch_handler/security_group_batch_handler.py,sha256=iI5s-Lup9masy1s0TNtdKTCYpbQ1Hznwqc3edfRsPyo,1747
22
- osi_dump/batch_handler/volume_batch_handler.py,sha256=Lqd5CHsdRZzr7dxCy0jiXKatTHFdqU4H7AdO0OFHiYU,1614
22
+ osi_dump/batch_handler/volume_batch_handler.py,sha256=ONAL-yw1DAziAVWBm5dFaYWm9L47UnOlPixei9Af6Og,1738
23
23
  osi_dump/exporter/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
24
24
  osi_dump/exporter/external_port/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
25
- osi_dump/exporter/external_port/excel_external_port_exporter.py,sha256=6QHhgu6AJgnaIRGlNL0MJbPqejVdKOTpJXjvgqywc2A,1142
26
- osi_dump/exporter/external_port/external_port_exporter.py,sha256=VWdVoebM1_2GgfbEOI5hoYMNiHKosDzHiVxaYx_Itpw,176
25
+ osi_dump/exporter/external_port/excel_external_port_exporter.py,sha256=MtETtJn5q6YGuAhj5wWpmo4wbt5UR-agrucp53Gt2Dk,1653
26
+ osi_dump/exporter/external_port/external_port_exporter.py,sha256=Cg0vY5yKpI70N9u5Lv72dFzLM7OyCNmOn4ZtB16xlwQ,282
27
27
  osi_dump/exporter/flavor/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
28
- osi_dump/exporter/flavor/excel_flavor_exporter.py,sha256=urK95TkpaRJlpZCVXeMGDnI0wdFy0UWCgFMTbZptl1g,901
29
- osi_dump/exporter/flavor/flavor_exporter.py,sha256=b9jpE29fXuJTcApCtwuUm41bGU1ikzFNmdqsYRn82_M,162
28
+ osi_dump/exporter/flavor/excel_flavor_exporter.py,sha256=7a93H-yD1fON5hYSAf7nWUii_8oWUxt1X3FdnLIKyew,1183
29
+ osi_dump/exporter/flavor/flavor_exporter.py,sha256=SO5sDdWHUr8wFbMH4J9zytHxqdrAJvpxVKaYGhSY1o8,247
30
30
  osi_dump/exporter/floating_ip/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
31
- osi_dump/exporter/floating_ip/excel_floating_ip_exporter.py,sha256=O1SGyYDOuvkltuWAE0YYDzT8LvO-l9o1DppPl2qCuV4,1005
32
- osi_dump/exporter/floating_ip/floating_ip_exporter.py,sha256=nq8MewRi9WoYZNo3fujkUZorkzZKIc77Jkn5b0YmfSA,176
31
+ osi_dump/exporter/floating_ip/excel_floating_ip_exporter.py,sha256=aAYAW5knZr-hOxdksU7cbAUomkggNJAAjegPlolADaU,1460
32
+ osi_dump/exporter/floating_ip/floating_ip_exporter.py,sha256=Sb5aztHAtM-A68v0O8Ol85Lf_SKiwbWNj4gT2gqyCrY,274
33
33
  osi_dump/exporter/hypervisor/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
34
- osi_dump/exporter/hypervisor/excel_hypervisor_exporter.py,sha256=-TNI8Xyqbq6FFBp9ZA0nA5fdwYYdxCeMOOjcEpcZkF4,1052
35
- osi_dump/exporter/hypervisor/hypervisor_exporter.py,sha256=B9fpcgG4tkpLN9RUbKLgdbWIS1lvx_4xOZiZAN2RXjc,174
34
+ osi_dump/exporter/hypervisor/excel_hypervisor_exporter.py,sha256=0yOLHACPd5kVrzQuoqKBC9D8ceKmZT01tqFLhFygcIE,1320
35
+ osi_dump/exporter/hypervisor/hypervisor_exporter.py,sha256=QZAdEkmaRWkn_WXPcP_o911FWecOyXylvcBn8PzHN64,267
36
36
  osi_dump/exporter/image/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
37
- osi_dump/exporter/image/excel_image_exporter.py,sha256=iq64q5KdMAbyCdv3WnTZoPK-v3vl53RzWU1K-yhLwBI,881
38
- osi_dump/exporter/image/image_exporter.py,sha256=DrY5Eubf3RE7MvD3i0o6NrOWjv-iGzqxfq4xY8vjrd4,159
37
+ osi_dump/exporter/image/excel_image_exporter.py,sha256=NtfJBaPS9RjImtRSPZ2FoRNl5uH8C2WNbyM0VYzAkTE,1164
38
+ osi_dump/exporter/image/image_exporter.py,sha256=eWqvejuu-WSOidhuRly_oa8szCgfiIx_P9dalPcNmGg,241
39
39
  osi_dump/exporter/instance/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
40
40
  osi_dump/exporter/instance/excel_instance_exporter.py,sha256=ngBOvN7ACpozkrl7yYXQz0XBd3jJAGi_NVY99TN8oi8,1153
41
41
  osi_dump/exporter/instance/instance_exporter.py,sha256=UZb5lcD2fongm1qCyZZvWe6LrqulW3arCmrfvNyav5g,255
@@ -43,37 +43,37 @@ osi_dump/exporter/load_balancer/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm
43
43
  osi_dump/exporter/load_balancer/excel_load_balancer_exporter.py,sha256=e99rozMi7KkjZ5_WD5qM8pM5KPmzcv-7PK8jpuz1esc,1141
44
44
  osi_dump/exporter/load_balancer/load_balancer_exporter.py,sha256=zapsGrSyGY7P_7qKI9VKAl3YANN0rZW7v_ywBnVgRAI,182
45
45
  osi_dump/exporter/network/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
46
- osi_dump/exporter/network/excel_network_exporter.py,sha256=mXWlrWg7das2afN_LBAVny_CoUgpOYT_ynzqrxia-gQ,982
47
- osi_dump/exporter/network/network_exporter.py,sha256=geUDKQ3_Vm8JiY9ItH_O47IPZ_NGcni6MaBM9AIZCDk,165
46
+ osi_dump/exporter/network/excel_network_exporter.py,sha256=8YZvbUHownjNiKkUs7SHRlo65Z73LLxvU6RPJOWKkQw,1285
47
+ osi_dump/exporter/network/network_exporter.py,sha256=qblL5jse0FsbsbFPTvCTDb5dOpz7NPkY6sCm0pPVwZw,249
48
48
  osi_dump/exporter/project/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
49
- osi_dump/exporter/project/excel_project_exporter.py,sha256=mr0QKYxkTt8ilFLyIjBZ9SFIFBOKV5hEaq5D0enam6A,946
50
- osi_dump/exporter/project/project_exporter.py,sha256=iD0TfkhNCGzu6GXDoK5amabPWNwbio8n16I68ezNWfc,165
49
+ osi_dump/exporter/project/excel_project_exporter.py,sha256=yeZsYyZeZc0OhKfnktmK_YIwUFHnRiSMERYjBh-bn6s,1189
50
+ osi_dump/exporter/project/project_exporter.py,sha256=m4wlvikDPBUbYjZ-GVpSarZq7vUVevypHE3jDWm_naw,249
51
51
  osi_dump/exporter/role_assignment/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
52
52
  osi_dump/exporter/role_assignment/excel_role_assignment_exporter.py,sha256=nj4wCKHsQ39FtVLik93vs47f4YN78xPSTKGICJimp2Y,1524
53
53
  osi_dump/exporter/role_assignment/role_assignment_exporter.py,sha256=7PJuwTTkSolSWalbKY5iydniPGPUS5eoB3kf1mMFlNQ,277
54
54
  osi_dump/exporter/router/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
55
- osi_dump/exporter/router/excel_router_exporter.py,sha256=rckGg5SMCK6Y1gbXjasWpkOnkBEWSj6c1jrtt0Pd-wU,930
56
- osi_dump/exporter/router/router_exporter.py,sha256=mAl4tvY-w1j49FHc_-hRQbZ-dEEUG1Y_K98RvciQH3k,162
55
+ osi_dump/exporter/router/excel_router_exporter.py,sha256=PFr3npiPO97Ucpyu1dv9gzvpwURTtHl35jvl18BFpck,1164
56
+ osi_dump/exporter/router/router_exporter.py,sha256=9mR3EzRJWVwVo2QO8wSDE6wIcILXzu9lfhhF0590X6A,245
57
57
  osi_dump/exporter/security_group/excel_security_group_exporter.py,sha256=Vixd9rDEZhgarmORDWdQGHvoicT7HSSHJ5dDkINc5BA,1390
58
58
  osi_dump/exporter/security_group/security_group_exporter.py,sha256=u_kfBH9xSZldCd7tqTpr5WBvQEbNSlj0DwNx2z0nh4U,288
59
59
  osi_dump/exporter/volume/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
60
- osi_dump/exporter/volume/excel_volume_exporter.py,sha256=6LxyjYV3fKEE5gbnrk6NmWqO6L1rDgejJO6stmh4qGQ,894
61
- osi_dump/exporter/volume/volume_exporter.py,sha256=_cqyBCc0Pbl5_zQ7aHUKiYrgQtqFzQUoztJvHgPalAI,162
60
+ osi_dump/exporter/volume/excel_volume_exporter.py,sha256=F9kRGbNPAork5OCdQ5j5kTJAaIIqCO5oxEkGsIpzPTM,1166
61
+ osi_dump/exporter/volume/volume_exporter.py,sha256=uM-2eroJtriHQJZMSkPqm__q4VITxpK_rZR_nT__3yI,247
62
62
  osi_dump/importer/external_port/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
63
- osi_dump/importer/external_port/external_port_importer.py,sha256=-VKEEnCHtqi5yJ10FYS0pJtbll1kM0CCc64-p21Z6EE,227
64
- osi_dump/importer/external_port/openstack_external_port_importer.py,sha256=Rin6p26N91thvd5D2EmQxVOPxRvnHXUWtxh2cwFmD_s,5977
63
+ osi_dump/importer/external_port/external_port_importer.py,sha256=VoN9xip9Af5AQaLCBpG6Qz0XRHeAXAm0A3d1V2nTSSo,268
64
+ osi_dump/importer/external_port/openstack_external_port_importer.py,sha256=FT7zUyroX7XsUgWcFVzvgNkoIrEjQZQrzoIZ092zVHk,3999
65
65
  osi_dump/importer/flavor/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
66
- osi_dump/importer/flavor/flavor_importer.py,sha256=tZJAuSV-4BljB5Qw_zhL7-uUDMmtUcOgnfJf-JkcES4,195
67
- osi_dump/importer/flavor/openstack_flavor_importer.py,sha256=EVLz6nY6Cu7lvkk8QUZ5r_IXq15Y-fwgEVT11AS9zfY,1940
66
+ osi_dump/importer/flavor/flavor_importer.py,sha256=CuLM4fiSNEflIDwZ0v4M2KHTvuCxZAGNbm_bEVAeTI8,240
67
+ osi_dump/importer/flavor/openstack_flavor_importer.py,sha256=-rQzsUdc20y_1oqyVP-4O3U_LplJZ-6yvD311lkUX2Y,1445
68
68
  osi_dump/importer/floating_ip/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
69
- osi_dump/importer/floating_ip/floating_ip_importer.py,sha256=YQVPRQI18J5b2UjCEuyM8URQCtlQs9F8ndXQQ9LuAWM,217
70
- osi_dump/importer/floating_ip/openstack_floating_ip_importer.py,sha256=3-AL7J1TW8wsZyRbACY5PDlL589nug3iJUrot1U-zY0,2354
69
+ osi_dump/importer/floating_ip/floating_ip_importer.py,sha256=tKa0Uc1F1bhhO2YuXnn_dWFLzniEEeysqlD02DjkuQ4,262
70
+ osi_dump/importer/floating_ip/openstack_floating_ip_importer.py,sha256=oC7GriSkJRg06bd4-QgoCQ6aAnfzie_aSi3XGKNlQmY,1746
71
71
  osi_dump/importer/hypervisor/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
72
- osi_dump/importer/hypervisor/hypervisor_importer.py,sha256=2MpvYwh3pT-fs1laEYTqJtZmdTJipaebMdoCoSQThOQ,215
73
- osi_dump/importer/hypervisor/openstack_hypervisor_importer.py,sha256=vUG7BTKLNnIeswxYdVH3Q6HaonlUZv6S_3Nuv_8m1WM,4421
72
+ osi_dump/importer/hypervisor/hypervisor_importer.py,sha256=n60CYfF0U1cv-0BetxEUcYNb5ltz-qqxDbOJF6fajLk,256
73
+ osi_dump/importer/hypervisor/openstack_hypervisor_importer.py,sha256=LTxbQSda8Vt56rlmimOBgnoc9JvlLGFb-FJW4M_RHNc,4006
74
74
  osi_dump/importer/image/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
75
- osi_dump/importer/image/image_importer.py,sha256=-S4zjWvnEONK_G_D8cJaK7txDgICgmdeP8UWKKbuAgY,190
76
- osi_dump/importer/image/openstack_image_importer.py,sha256=jf0bE6SNV8vMInGsrMNWrtAt1U7cJqbRLMEPNpGQLGg,2666
75
+ osi_dump/importer/image/image_importer.py,sha256=Jzw4YgSfOKqNZoms6UR4ODzHmiPT_kAqyRoKsj1fFTM,235
76
+ osi_dump/importer/image/openstack_image_importer.py,sha256=M7oLhH3wt7JHAgyxQVX3auDZhS37FKI7kD9TqMqvRCI,2018
77
77
  osi_dump/importer/instance/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
78
78
  osi_dump/importer/instance/instance_importer.py,sha256=PaTGNBzMtIht624LGTumlXEZVdcLS2WkXvzeAtDNAHA,246
79
79
  osi_dump/importer/instance/openstack_instance_importer.py,sha256=aQIbIL_ftgW-sMYXBK65ZQ1cFsoFMN3ICX9m67pAo24,4100
@@ -81,22 +81,22 @@ osi_dump/importer/load_balancer/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm
81
81
  osi_dump/importer/load_balancer/load_balancer_importer.py,sha256=8QPbe0DmaLEOcRcr82IcCuB1gRc0ZG-vIuSXiO_QfhQ,227
82
82
  osi_dump/importer/load_balancer/openstack_load_balancer_importer.py,sha256=U1DyAc_ca0fXR1n27sMk14R_X_vI2rQESOGBEpdlR4I,4146
83
83
  osi_dump/importer/network/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
84
- osi_dump/importer/network/network_importer.py,sha256=zmzW1fDPl9ElojBLgcMO_WwcTGVqm76KTuEcdPNEQm4,200
85
- osi_dump/importer/network/openstack_network_importer.py,sha256=gAOdGwxMJOypLvzj6nI-vZFdDAb9C9utyfLKCZuNA8E,2796
84
+ osi_dump/importer/network/network_importer.py,sha256=XrVG82fsePQs7SuXVoTb1DhPpl237cMZKClKoMY2kHA,241
85
+ osi_dump/importer/network/openstack_network_importer.py,sha256=4I9hQLGUNO8q_c_hhCEZxnCi2-ovOziCvHcNy-8qdis,2501
86
86
  osi_dump/importer/project/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
87
- osi_dump/importer/project/openstack_project_importer.py,sha256=wlPPGEi1uOBDCU0eoxsof6KjIs2lVy3laXiRvt53QyQ,5105
88
- osi_dump/importer/project/project_importer.py,sha256=DYQFTIPsROt0BYgPWI8NNRwyvnjmaTNThXoCB415xe8,200
87
+ osi_dump/importer/project/openstack_project_importer.py,sha256=OLMaFJ1NUNbr2g4PCABZCSg_eSB2eBCJJ_QU5Ychlaw,4685
88
+ osi_dump/importer/project/project_importer.py,sha256=kXkzRlGllvB4SBesF-yuo6iB3YAIkpqD2CEet1he2QM,241
89
89
  osi_dump/importer/role_assignment/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
90
90
  osi_dump/importer/role_assignment/openstack_role_assignment_importer.py,sha256=ezUFhMIMNvRH-4Wbz8PtBkmmA5AqEvDO-9hm01mlQBo,3388
91
91
  osi_dump/importer/role_assignment/role_assignment_importer.py,sha256=fNHhTufpopzUo-0j3HlHVa2pQSCxAxcS68Z16P7TW9w,543
92
92
  osi_dump/importer/router/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
93
- osi_dump/importer/router/openstack_router_importer.py,sha256=cV-R4qUFUYlAIVLFxxozlD6howOfjZ-O4vgU4mL5UhE,2868
94
- osi_dump/importer/router/router_importer.py,sha256=4tEbkMPErSrFiW648fSRwnd80DtSKbz70et-gzzRJMA,195
93
+ osi_dump/importer/router/openstack_router_importer.py,sha256=-Bqmi4hqpoYC_WpcuSrzmW9SqaDuxBgb3X8o9L5tO8o,2043
94
+ osi_dump/importer/router/router_importer.py,sha256=_tTnRzdlvy3g119_JblZKn8GQB0jpvJHLnaxLFMM0Bg,238
95
95
  osi_dump/importer/security_group/openstack_security_group_importer.py,sha256=VRM_wKUFWNd6jRFQRSHk8ICZv2-U1IefKtXMpW97XW4,2332
96
96
  osi_dump/importer/security_group/security_group_importer.py,sha256=8WZCwYWD1_Br3sZefglrIHgoIX6WqgJbhcRj7Vb-Inw,274
97
97
  osi_dump/importer/volume/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
98
- osi_dump/importer/volume/openstack_volume_importer.py,sha256=iRvuABQOtFaFRmLog5kf-HgooU4Z6Y2VdxRgxA5p34E,2572
99
- osi_dump/importer/volume/volume_importer.py,sha256=5yn4O62myxg7xWjm5EFYjRdLTwhhBxcUu2K2Mvkj3NU,195
98
+ osi_dump/importer/volume/openstack_volume_importer.py,sha256=kNY6GTFOtlH8YUrq-r-uC5nfrintnqx-7qsFl0kHQ48,1976
99
+ osi_dump/importer/volume/volume_importer.py,sha256=KYuj_siXixn3BVibyiJmmg_kPxHVMsNvbfJTQarDY3k,236
100
100
  osi_dump/model/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
101
101
  osi_dump/model/authentication_info.py,sha256=VaMCahiZuRpTlXxJSGDb3AyS2a-mq7c4zZnh2E6uBSY,341
102
102
  osi_dump/model/external_port.py,sha256=D1Ng_DIZqEbJlDGhCt95ieDEDVJ1Hq7kBAxule_04ZA,571
@@ -123,8 +123,8 @@ osi_dump/util/extract_hostname.py,sha256=NdpF2tYt-Gl1Wx4nVZA0FkBzh-IbPfid_dLGQrA
123
123
  osi_dump/util/openstack_util.py,sha256=m8Xcp2KNNf3jzo-J7BYj_SdnoNymRN-1DJeQcOwygDg,1347
124
124
  osi_dump/util/panda_excel.py,sha256=db53jqLsBhSE1oM14GbeKJZpF7RAUA7bHBjDh9Be8H4,760
125
125
  osi_dump/util/validate_dir_path.py,sha256=JHjZBsQIT5ubw8rnsHbw2hkKDBFzYMjmjQ_oJT8EtJc,527
126
- osi_dump-0.1.5.dist-info/METADATA,sha256=K1Em-pKBquQWRPhuIMAqMfuqJJZwzkJrqKYFFjA9PVc,719
127
- osi_dump-0.1.5.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
128
- osi_dump-0.1.5.dist-info/entry_points.txt,sha256=ozm5sIBtXzLv6_FiUe26v1BgA3_xUReGLPhKQKZ56wQ,46
129
- osi_dump-0.1.5.dist-info/top_level.txt,sha256=OtAAwmJfcoPvlw_Cemo_H1aXIGV_7w0O2941KQt6faQ,9
130
- osi_dump-0.1.5.dist-info/RECORD,,
126
+ osi_dump-0.1.6.dist-info/METADATA,sha256=Qoadw6Rgn-1tcE-bejsJsbUhtDFpUJrJMNJmi0zMLzg,719
127
+ osi_dump-0.1.6.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
128
+ osi_dump-0.1.6.dist-info/entry_points.txt,sha256=ozm5sIBtXzLv6_FiUe26v1BgA3_xUReGLPhKQKZ56wQ,46
129
+ osi_dump-0.1.6.dist-info/top_level.txt,sha256=OtAAwmJfcoPvlw_Cemo_H1aXIGV_7w0O2941KQt6faQ,9
130
+ osi_dump-0.1.6.dist-info/RECORD,,