osi-dump 0.1.3.3.4.3__tar.gz → 0.1.4__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 (141) hide show
  1. {osi_dump-0.1.3.3.4.3 → osi_dump-0.1.4}/PKG-INFO +40 -40
  2. {osi_dump-0.1.3.3.4.3 → osi_dump-0.1.4}/README.md +22 -22
  3. {osi_dump-0.1.3.3.4.3 → osi_dump-0.1.4}/pyproject.toml +24 -24
  4. {osi_dump-0.1.3.3.4.3 → osi_dump-0.1.4}/setup.cfg +4 -4
  5. {osi_dump-0.1.3.3.4.3 → osi_dump-0.1.4}/src/osi_dump/__main__.py +4 -4
  6. {osi_dump-0.1.3.3.4.3 → osi_dump-0.1.4}/src/osi_dump/api/keystone.py +70 -70
  7. {osi_dump-0.1.3.3.4.3 → osi_dump-0.1.4}/src/osi_dump/api/neutron.py +65 -65
  8. {osi_dump-0.1.3.3.4.3 → osi_dump-0.1.4}/src/osi_dump/api/octavia.py +94 -94
  9. {osi_dump-0.1.3.3.4.3 → osi_dump-0.1.4}/src/osi_dump/api/placement.py +41 -41
  10. {osi_dump-0.1.3.3.4.3 → osi_dump-0.1.4}/src/osi_dump/batch_handler/__init__.py +6 -5
  11. {osi_dump-0.1.3.3.4.3 → osi_dump-0.1.4}/src/osi_dump/batch_handler/external_port_batch_handler.py +55 -55
  12. {osi_dump-0.1.3.3.4.3 → osi_dump-0.1.4}/src/osi_dump/batch_handler/flavor_batch_handler.py +51 -51
  13. {osi_dump-0.1.3.3.4.3 → osi_dump-0.1.4}/src/osi_dump/batch_handler/floating_ip_batch_handler.py +57 -57
  14. {osi_dump-0.1.3.3.4.3 → osi_dump-0.1.4}/src/osi_dump/batch_handler/hypervisor_batch_handler.py +55 -55
  15. {osi_dump-0.1.3.3.4.3 → osi_dump-0.1.4}/src/osi_dump/batch_handler/image_batch_handler.py +51 -51
  16. {osi_dump-0.1.3.3.4.3 → osi_dump-0.1.4}/src/osi_dump/batch_handler/instance_batch_handler.py +46 -54
  17. {osi_dump-0.1.3.3.4.3 → osi_dump-0.1.4}/src/osi_dump/batch_handler/load_balancer_batch_handler.py +59 -59
  18. {osi_dump-0.1.3.3.4.3 → osi_dump-0.1.4}/src/osi_dump/batch_handler/network_batch_handler.py +51 -51
  19. {osi_dump-0.1.3.3.4.3 → osi_dump-0.1.4}/src/osi_dump/batch_handler/project_batch_handler.py +51 -51
  20. {osi_dump-0.1.3.3.4.3 → osi_dump-0.1.4}/src/osi_dump/batch_handler/role_assignment_batch_handler.py +38 -61
  21. {osi_dump-0.1.3.3.4.3 → osi_dump-0.1.4}/src/osi_dump/batch_handler/router_batch_handler.py +49 -49
  22. osi_dump-0.1.4/src/osi_dump/batch_handler/security_group_batch_handler.py +37 -0
  23. {osi_dump-0.1.3.3.4.3 → osi_dump-0.1.4}/src/osi_dump/batch_handler/volume_batch_handler.py +45 -45
  24. {osi_dump-0.1.3.3.4.3 → osi_dump-0.1.4}/src/osi_dump/cli.py +267 -257
  25. {osi_dump-0.1.3.3.4.3 → osi_dump-0.1.4}/src/osi_dump/exporter/external_port/excel_external_port_exporter.py +34 -34
  26. {osi_dump-0.1.3.3.4.3 → osi_dump-0.1.4}/src/osi_dump/exporter/external_port/external_port_exporter.py +7 -7
  27. {osi_dump-0.1.3.3.4.3 → osi_dump-0.1.4}/src/osi_dump/exporter/flavor/excel_flavor_exporter.py +30 -30
  28. {osi_dump-0.1.3.3.4.3 → osi_dump-0.1.4}/src/osi_dump/exporter/flavor/flavor_exporter.py +7 -7
  29. {osi_dump-0.1.3.3.4.3 → osi_dump-0.1.4}/src/osi_dump/exporter/floating_ip/excel_floating_ip_exporter.py +30 -30
  30. {osi_dump-0.1.3.3.4.3 → osi_dump-0.1.4}/src/osi_dump/exporter/floating_ip/floating_ip_exporter.py +7 -7
  31. {osi_dump-0.1.3.3.4.3 → osi_dump-0.1.4}/src/osi_dump/exporter/hypervisor/excel_hypervisor_exporter.py +32 -32
  32. {osi_dump-0.1.3.3.4.3 → osi_dump-0.1.4}/src/osi_dump/exporter/hypervisor/hypervisor_exporter.py +7 -7
  33. {osi_dump-0.1.3.3.4.3 → osi_dump-0.1.4}/src/osi_dump/exporter/image/excel_image_exporter.py +28 -28
  34. {osi_dump-0.1.3.3.4.3 → osi_dump-0.1.4}/src/osi_dump/exporter/image/image_exporter.py +7 -7
  35. {osi_dump-0.1.3.3.4.3 → osi_dump-0.1.4}/src/osi_dump/exporter/instance/excel_instance_exporter.py +29 -29
  36. osi_dump-0.1.4/src/osi_dump/exporter/instance/instance_exporter.py +8 -0
  37. {osi_dump-0.1.3.3.4.3 → osi_dump-0.1.4}/src/osi_dump/exporter/load_balancer/excel_load_balancer_exporter.py +36 -36
  38. {osi_dump-0.1.3.3.4.3 → osi_dump-0.1.4}/src/osi_dump/exporter/load_balancer/load_balancer_exporter.py +7 -7
  39. {osi_dump-0.1.3.3.4.3 → osi_dump-0.1.4}/src/osi_dump/exporter/network/excel_network_exporter.py +32 -32
  40. {osi_dump-0.1.3.3.4.3 → osi_dump-0.1.4}/src/osi_dump/exporter/network/network_exporter.py +7 -7
  41. {osi_dump-0.1.3.3.4.3 → osi_dump-0.1.4}/src/osi_dump/exporter/project/excel_project_exporter.py +30 -30
  42. {osi_dump-0.1.3.3.4.3 → osi_dump-0.1.4}/src/osi_dump/exporter/project/project_exporter.py +7 -7
  43. osi_dump-0.1.4/src/osi_dump/exporter/role_assignment/excel_role_assignment_exporter.py +43 -0
  44. osi_dump-0.1.4/src/osi_dump/exporter/role_assignment/role_assignment_exporter.py +7 -0
  45. {osi_dump-0.1.3.3.4.3 → osi_dump-0.1.4}/src/osi_dump/exporter/router/excel_router_exporter.py +30 -30
  46. {osi_dump-0.1.3.3.4.3 → osi_dump-0.1.4}/src/osi_dump/exporter/router/router_exporter.py +7 -7
  47. osi_dump-0.1.4/src/osi_dump/exporter/security_group/excel_security_group_exporter.py +35 -0
  48. osi_dump-0.1.4/src/osi_dump/exporter/security_group/security_group_exporter.py +8 -0
  49. {osi_dump-0.1.3.3.4.3 → osi_dump-0.1.4}/src/osi_dump/exporter/volume/excel_volume_exporter.py +29 -29
  50. {osi_dump-0.1.3.3.4.3 → osi_dump-0.1.4}/src/osi_dump/exporter/volume/volume_exporter.py +7 -7
  51. {osi_dump-0.1.3.3.4.3 → osi_dump-0.1.4}/src/osi_dump/importer/external_port/external_port_importer.py +9 -9
  52. {osi_dump-0.1.3.3.4.3 → osi_dump-0.1.4}/src/osi_dump/importer/external_port/openstack_external_port_importer.py +177 -177
  53. {osi_dump-0.1.3.3.4.3 → osi_dump-0.1.4}/src/osi_dump/importer/flavor/flavor_importer.py +9 -9
  54. {osi_dump-0.1.3.3.4.3 → osi_dump-0.1.4}/src/osi_dump/importer/flavor/openstack_flavor_importer.py +64 -64
  55. {osi_dump-0.1.3.3.4.3 → osi_dump-0.1.4}/src/osi_dump/importer/floating_ip/floating_ip_importer.py +9 -9
  56. {osi_dump-0.1.3.3.4.3 → osi_dump-0.1.4}/src/osi_dump/importer/floating_ip/openstack_floating_ip_importer.py +68 -68
  57. {osi_dump-0.1.3.3.4.3 → osi_dump-0.1.4}/src/osi_dump/importer/hypervisor/hypervisor_importer.py +9 -9
  58. {osi_dump-0.1.3.3.4.3 → osi_dump-0.1.4}/src/osi_dump/importer/hypervisor/openstack_hypervisor_importer.py +137 -137
  59. {osi_dump-0.1.3.3.4.3 → osi_dump-0.1.4}/src/osi_dump/importer/image/image_importer.py +9 -9
  60. {osi_dump-0.1.3.3.4.3 → osi_dump-0.1.4}/src/osi_dump/importer/image/openstack_image_importer.py +81 -81
  61. {osi_dump-0.1.3.3.4.3 → osi_dump-0.1.4}/src/osi_dump/importer/instance/instance_importer.py +8 -9
  62. {osi_dump-0.1.3.3.4.3 → osi_dump-0.1.4}/src/osi_dump/importer/instance/openstack_instance_importer.py +136 -136
  63. {osi_dump-0.1.3.3.4.3 → osi_dump-0.1.4}/src/osi_dump/importer/load_balancer/load_balancer_importer.py +9 -9
  64. {osi_dump-0.1.3.3.4.3 → osi_dump-0.1.4}/src/osi_dump/importer/load_balancer/openstack_load_balancer_importer.py +113 -113
  65. {osi_dump-0.1.3.3.4.3 → osi_dump-0.1.4}/src/osi_dump/importer/network/network_importer.py +9 -9
  66. {osi_dump-0.1.3.3.4.3 → osi_dump-0.1.4}/src/osi_dump/importer/network/openstack_network_importer.py +93 -93
  67. {osi_dump-0.1.3.3.4.3 → osi_dump-0.1.4}/src/osi_dump/importer/project/openstack_project_importer.py +141 -141
  68. {osi_dump-0.1.3.3.4.3 → osi_dump-0.1.4}/src/osi_dump/importer/project/project_importer.py +9 -9
  69. osi_dump-0.1.4/src/osi_dump/importer/role_assignment/openstack_role_assignment_importer.py +117 -0
  70. osi_dump-0.1.4/src/osi_dump/importer/role_assignment/role_assignment_importer.py +16 -0
  71. {osi_dump-0.1.3.3.4.3 → osi_dump-0.1.4}/src/osi_dump/importer/router/openstack_router_importer.py +87 -87
  72. {osi_dump-0.1.3.3.4.3 → osi_dump-0.1.4}/src/osi_dump/importer/router/router_importer.py +9 -9
  73. osi_dump-0.1.4/src/osi_dump/importer/security_group/openstack_security_group_importer.py +54 -0
  74. osi_dump-0.1.4/src/osi_dump/importer/security_group/security_group_importer.py +8 -0
  75. {osi_dump-0.1.3.3.4.3 → osi_dump-0.1.4}/src/osi_dump/importer/volume/openstack_volume_importer.py +81 -81
  76. {osi_dump-0.1.3.3.4.3 → osi_dump-0.1.4}/src/osi_dump/importer/volume/volume_importer.py +9 -9
  77. {osi_dump-0.1.3.3.4.3 → osi_dump-0.1.4}/src/osi_dump/model/authentication_info.py +15 -15
  78. {osi_dump-0.1.3.3.4.3 → osi_dump-0.1.4}/src/osi_dump/model/external_port.py +30 -30
  79. {osi_dump-0.1.3.3.4.3 → osi_dump-0.1.4}/src/osi_dump/model/flavor.py +20 -20
  80. {osi_dump-0.1.3.3.4.3 → osi_dump-0.1.4}/src/osi_dump/model/floating_ip.py +24 -24
  81. {osi_dump-0.1.3.3.4.3 → osi_dump-0.1.4}/src/osi_dump/model/hypervisor.py +24 -24
  82. {osi_dump-0.1.3.3.4.3 → osi_dump-0.1.4}/src/osi_dump/model/image.py +27 -27
  83. {osi_dump-0.1.3.3.4.3 → osi_dump-0.1.4}/src/osi_dump/model/instance.py +29 -29
  84. {osi_dump-0.1.3.3.4.3 → osi_dump-0.1.4}/src/osi_dump/model/load_balancer.py +26 -26
  85. {osi_dump-0.1.3.3.4.3 → osi_dump-0.1.4}/src/osi_dump/model/network.py +25 -25
  86. {osi_dump-0.1.3.3.4.3 → osi_dump-0.1.4}/src/osi_dump/model/project.py +33 -33
  87. osi_dump-0.1.4/src/osi_dump/model/role_assignment.py +30 -0
  88. {osi_dump-0.1.3.3.4.3 → osi_dump-0.1.4}/src/osi_dump/model/router.py +23 -23
  89. osi_dump-0.1.4/src/osi_dump/model/security_group.py +22 -0
  90. {osi_dump-0.1.3.3.4.3 → osi_dump-0.1.4}/src/osi_dump/model/volume.py +25 -25
  91. {osi_dump-0.1.3.3.4.3 → osi_dump-0.1.4}/src/osi_dump/os_connection/get_connections.py +67 -67
  92. {osi_dump-0.1.3.3.4.3 → osi_dump-0.1.4}/src/osi_dump/util/__init__.py +7 -7
  93. {osi_dump-0.1.3.3.4.3 → osi_dump-0.1.4}/src/osi_dump/util/create_file.py +11 -11
  94. {osi_dump-0.1.3.3.4.3 → osi_dump-0.1.4}/src/osi_dump/util/excel_autosize_column.py +39 -39
  95. {osi_dump-0.1.3.3.4.3 → osi_dump-0.1.4}/src/osi_dump/util/excel_sort_sheet.py +35 -35
  96. {osi_dump-0.1.3.3.4.3 → osi_dump-0.1.4}/src/osi_dump/util/export_data_excel.py +36 -36
  97. {osi_dump-0.1.3.3.4.3 → osi_dump-0.1.4}/src/osi_dump/util/extract_hostname.py +5 -5
  98. {osi_dump-0.1.3.3.4.3 → osi_dump-0.1.4}/src/osi_dump/util/openstack_util.py +48 -48
  99. {osi_dump-0.1.3.3.4.3 → osi_dump-0.1.4}/src/osi_dump/util/panda_excel.py +26 -26
  100. {osi_dump-0.1.3.3.4.3 → osi_dump-0.1.4}/src/osi_dump/util/validate_dir_path.py +20 -20
  101. {osi_dump-0.1.3.3.4.3 → osi_dump-0.1.4}/src/osi_dump.egg-info/PKG-INFO +40 -40
  102. {osi_dump-0.1.3.3.4.3 → osi_dump-0.1.4}/src/osi_dump.egg-info/SOURCES.txt +6 -0
  103. osi_dump-0.1.3.3.4.3/src/osi_dump/exporter/instance/instance_exporter.py +0 -7
  104. osi_dump-0.1.3.3.4.3/src/osi_dump/exporter/role_assignment/excel_role_assignment_exporter.py +0 -35
  105. osi_dump-0.1.3.3.4.3/src/osi_dump/exporter/role_assignment/role_assignment_exporter.py +0 -7
  106. osi_dump-0.1.3.3.4.3/src/osi_dump/importer/role_assignment/openstack_role_assignment_importer.py +0 -147
  107. osi_dump-0.1.3.3.4.3/src/osi_dump/importer/role_assignment/role_assignment_importer.py +0 -9
  108. osi_dump-0.1.3.3.4.3/src/osi_dump/model/role_assignment.py +0 -23
  109. {osi_dump-0.1.3.3.4.3 → osi_dump-0.1.4}/src/osi_dump/__init__.py +0 -0
  110. {osi_dump-0.1.3.3.4.3 → osi_dump-0.1.4}/src/osi_dump/api/__init__.py +0 -0
  111. {osi_dump-0.1.3.3.4.3 → osi_dump-0.1.4}/src/osi_dump/exporter/__init__.py +0 -0
  112. {osi_dump-0.1.3.3.4.3 → osi_dump-0.1.4}/src/osi_dump/exporter/external_port/__init__.py +0 -0
  113. {osi_dump-0.1.3.3.4.3 → osi_dump-0.1.4}/src/osi_dump/exporter/flavor/__init__.py +0 -0
  114. {osi_dump-0.1.3.3.4.3 → osi_dump-0.1.4}/src/osi_dump/exporter/floating_ip/__init__.py +0 -0
  115. {osi_dump-0.1.3.3.4.3 → osi_dump-0.1.4}/src/osi_dump/exporter/hypervisor/__init__.py +0 -0
  116. {osi_dump-0.1.3.3.4.3 → osi_dump-0.1.4}/src/osi_dump/exporter/image/__init__.py +0 -0
  117. {osi_dump-0.1.3.3.4.3 → osi_dump-0.1.4}/src/osi_dump/exporter/instance/__init__.py +0 -0
  118. {osi_dump-0.1.3.3.4.3 → osi_dump-0.1.4}/src/osi_dump/exporter/load_balancer/__init__.py +0 -0
  119. {osi_dump-0.1.3.3.4.3 → osi_dump-0.1.4}/src/osi_dump/exporter/network/__init__.py +0 -0
  120. {osi_dump-0.1.3.3.4.3 → osi_dump-0.1.4}/src/osi_dump/exporter/project/__init__.py +0 -0
  121. {osi_dump-0.1.3.3.4.3 → osi_dump-0.1.4}/src/osi_dump/exporter/role_assignment/__init__.py +0 -0
  122. {osi_dump-0.1.3.3.4.3 → osi_dump-0.1.4}/src/osi_dump/exporter/router/__init__.py +0 -0
  123. {osi_dump-0.1.3.3.4.3 → osi_dump-0.1.4}/src/osi_dump/exporter/volume/__init__.py +0 -0
  124. {osi_dump-0.1.3.3.4.3 → osi_dump-0.1.4}/src/osi_dump/importer/external_port/__init__.py +0 -0
  125. {osi_dump-0.1.3.3.4.3 → osi_dump-0.1.4}/src/osi_dump/importer/flavor/__init__.py +0 -0
  126. {osi_dump-0.1.3.3.4.3 → osi_dump-0.1.4}/src/osi_dump/importer/floating_ip/__init__.py +0 -0
  127. {osi_dump-0.1.3.3.4.3 → osi_dump-0.1.4}/src/osi_dump/importer/hypervisor/__init__.py +0 -0
  128. {osi_dump-0.1.3.3.4.3 → osi_dump-0.1.4}/src/osi_dump/importer/image/__init__.py +0 -0
  129. {osi_dump-0.1.3.3.4.3 → osi_dump-0.1.4}/src/osi_dump/importer/instance/__init__.py +0 -0
  130. {osi_dump-0.1.3.3.4.3 → osi_dump-0.1.4}/src/osi_dump/importer/load_balancer/__init__.py +0 -0
  131. {osi_dump-0.1.3.3.4.3 → osi_dump-0.1.4}/src/osi_dump/importer/network/__init__.py +0 -0
  132. {osi_dump-0.1.3.3.4.3 → osi_dump-0.1.4}/src/osi_dump/importer/project/__init__.py +0 -0
  133. {osi_dump-0.1.3.3.4.3 → osi_dump-0.1.4}/src/osi_dump/importer/role_assignment/__init__.py +0 -0
  134. {osi_dump-0.1.3.3.4.3 → osi_dump-0.1.4}/src/osi_dump/importer/router/__init__.py +0 -0
  135. {osi_dump-0.1.3.3.4.3 → osi_dump-0.1.4}/src/osi_dump/importer/volume/__init__.py +0 -0
  136. {osi_dump-0.1.3.3.4.3 → osi_dump-0.1.4}/src/osi_dump/model/__init__.py +0 -0
  137. {osi_dump-0.1.3.3.4.3 → osi_dump-0.1.4}/src/osi_dump/os_connection/__init__.py +0 -0
  138. {osi_dump-0.1.3.3.4.3 → osi_dump-0.1.4}/src/osi_dump.egg-info/dependency_links.txt +0 -0
  139. {osi_dump-0.1.3.3.4.3 → osi_dump-0.1.4}/src/osi_dump.egg-info/entry_points.txt +0 -0
  140. {osi_dump-0.1.3.3.4.3 → osi_dump-0.1.4}/src/osi_dump.egg-info/requires.txt +0 -0
  141. {osi_dump-0.1.3.3.4.3 → osi_dump-0.1.4}/src/osi_dump.egg-info/top_level.txt +0 -0
@@ -1,40 +1,40 @@
1
- Metadata-Version: 2.4
2
- Name: osi-dump
3
- Version: 0.1.3.3.4.3
4
- Summary: OpenStack information dump tool
5
- Author: TVKain
6
- License: Apache-2.0
7
- Classifier: License :: OSI Approved :: Apache Software License
8
- Requires-Python: >=3.10
9
- Description-Content-Type: text/markdown
10
- Requires-Dist: typer
11
- Requires-Dist: openstacksdk==3.3.0
12
- Requires-Dist: pydantic
13
- Requires-Dist: pandas
14
- Requires-Dist: openpyxl
15
- Requires-Dist: numpy
16
- Provides-Extra: test
17
- Requires-Dist: pytest; extra == "test"
18
-
19
- # OpenStack Information Dump
20
-
21
- ## Set up
22
-
23
- Create virtual environment
24
-
25
- ```
26
- python3 -m venv venv
27
- ```
28
-
29
- Install packages
30
-
31
- ```
32
- pip install .
33
- ```
34
-
35
- ## Execute
36
-
37
- ```
38
- Usage: osi-dump [OPTIONS] FILE_PATH [OUTPUT_PATH]
39
- ```
40
-
1
+ Metadata-Version: 2.4
2
+ Name: osi-dump
3
+ Version: 0.1.4
4
+ Summary: OpenStack information dump tool
5
+ Author: TVKain
6
+ License: Apache-2.0
7
+ Classifier: License :: OSI Approved :: Apache Software License
8
+ Requires-Python: >=3.10
9
+ Description-Content-Type: text/markdown
10
+ Requires-Dist: typer
11
+ Requires-Dist: openstacksdk==3.3.0
12
+ Requires-Dist: pydantic
13
+ Requires-Dist: pandas
14
+ Requires-Dist: openpyxl
15
+ Requires-Dist: numpy
16
+ Provides-Extra: test
17
+ Requires-Dist: pytest; extra == "test"
18
+
19
+ # OpenStack Information Dump
20
+
21
+ ## Set up
22
+
23
+ Create virtual environment
24
+
25
+ ```
26
+ python3 -m venv venv
27
+ ```
28
+
29
+ Install packages
30
+
31
+ ```
32
+ pip install .
33
+ ```
34
+
35
+ ## Execute
36
+
37
+ ```
38
+ Usage: osi-dump [OPTIONS] FILE_PATH [OUTPUT_PATH]
39
+ ```
40
+
@@ -1,22 +1,22 @@
1
- # OpenStack Information Dump
2
-
3
- ## Set up
4
-
5
- Create virtual environment
6
-
7
- ```
8
- python3 -m venv venv
9
- ```
10
-
11
- Install packages
12
-
13
- ```
14
- pip install .
15
- ```
16
-
17
- ## Execute
18
-
19
- ```
20
- Usage: osi-dump [OPTIONS] FILE_PATH [OUTPUT_PATH]
21
- ```
22
-
1
+ # OpenStack Information Dump
2
+
3
+ ## Set up
4
+
5
+ Create virtual environment
6
+
7
+ ```
8
+ python3 -m venv venv
9
+ ```
10
+
11
+ Install packages
12
+
13
+ ```
14
+ pip install .
15
+ ```
16
+
17
+ ## Execute
18
+
19
+ ```
20
+ Usage: osi-dump [OPTIONS] FILE_PATH [OUTPUT_PATH]
21
+ ```
22
+
@@ -1,24 +1,24 @@
1
- [project]
2
- name = "osi-dump"
3
- version = "0.1.3.3.4.3"
4
- description = "OpenStack information dump tool"
5
- readme = "README.md"
6
- authors = [{ name = "TVKain" }]
7
- license = { text = "Apache-2.0" }
8
- requires-python = ">=3.10"
9
- classifiers = ["License :: OSI Approved :: Apache Software License"]
10
- dependencies = [
11
- "typer",
12
- "openstacksdk==3.3.0",
13
- "pydantic",
14
- "pandas",
15
- "openpyxl",
16
- "numpy",
17
- ]
18
-
19
-
20
- [project.scripts]
21
- osi-dump = "osi_dump.cli:app"
22
-
23
- [project.optional-dependencies]
24
- test = ["pytest"]
1
+ [project]
2
+ name = "osi-dump"
3
+ version = "0.1.4"
4
+ description = "OpenStack information dump tool"
5
+ readme = "README.md"
6
+ authors = [{ name = "TVKain" }]
7
+ license = { text = "Apache-2.0" }
8
+ requires-python = ">=3.10"
9
+ classifiers = ["License :: OSI Approved :: Apache Software License"]
10
+ dependencies = [
11
+ "typer",
12
+ "openstacksdk==3.3.0",
13
+ "pydantic",
14
+ "pandas",
15
+ "openpyxl",
16
+ "numpy",
17
+ ]
18
+
19
+
20
+ [project.scripts]
21
+ osi-dump = "osi_dump.cli:app"
22
+
23
+ [project.optional-dependencies]
24
+ test = ["pytest"]
@@ -1,4 +1,4 @@
1
- [egg_info]
2
- tag_build =
3
- tag_date = 0
4
-
1
+ [egg_info]
2
+ tag_build =
3
+ tag_date = 0
4
+
@@ -1,4 +1,4 @@
1
- if __name__ == "__main__":
2
- from osi_dump.cli import app
3
-
4
- app()
1
+ if __name__ == "__main__":
2
+ from osi_dump.cli import app
3
+
4
+ app()
@@ -1,71 +1,71 @@
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_users(connection: Connection):
13
-
14
- keystone_endpoints = os_util.get_endpoints(connection=connection, service_type="identity", interface="public")
15
-
16
- for keystone_endpoint in keystone_endpoints:
17
- try:
18
- if "v3" not in keystone_endpoint:
19
- url = f"{keystone_endpoint}/v3/users"
20
- else:
21
- url = f"{keystone_endpoint}/users"
22
-
23
- response = connection.session.get(url)
24
- if response.status_code == 200:
25
- break
26
- except Exception as e:
27
- logger.info(e)
28
-
29
-
30
- if response is None:
31
- return []
32
-
33
- return response.json()["users"]
34
-
35
- def get_role_assignments(connection: Connection):
36
- keystone_endpoint = connection.endpoint_for(service_type="identity", interface="public")
37
-
38
- logger.info(keystone_endpoint)
39
-
40
- try:
41
- if "v3" not in keystone_endpoint:
42
- url = f"{keystone_endpoint}/v3/role_assignments?include_names"
43
- else:
44
- url = f"{keystone_endpoint}/role_assignments?include_names"
45
-
46
- logger.info(url)
47
- response = connection.session.get(url)
48
- except Exception as e:
49
- logger.info(e)
50
-
51
- if response is None:
52
- return []
53
-
54
- return response.json()['role_assignments']
55
-
56
- # keystone_endpoints = [connection.endpoint_for(service_type="keystone", interface="public")]
57
-
58
- # for endpoint in keystone_endpoints:
59
- # try:
60
- # url = f"{endpoint}/v3/role_assignments?include_names"
61
- # response = connection.session.get(url)
62
- # if response.status_code == 200:
63
- # break
64
- # except Exception as e:
65
- # logger.info(e)
66
-
67
- # if response is None:
68
- # return []
69
-
70
- # return response.json()['role_assignments']
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_users(connection: Connection):
13
+
14
+ keystone_endpoints = os_util.get_endpoints(connection=connection, service_type="identity", interface="public")
15
+
16
+ for keystone_endpoint in keystone_endpoints:
17
+ try:
18
+ if "v3" not in keystone_endpoint:
19
+ url = f"{keystone_endpoint}/v3/users"
20
+ else:
21
+ url = f"{keystone_endpoint}/users"
22
+
23
+ response = connection.session.get(url)
24
+ if response.status_code == 200:
25
+ break
26
+ except Exception as e:
27
+ logger.info(e)
28
+
29
+
30
+ if response is None:
31
+ return []
32
+
33
+ return response.json()["users"]
34
+
35
+ def get_role_assignments(connection: Connection):
36
+ keystone_endpoint = connection.endpoint_for(service_type="identity", interface="public")
37
+
38
+ logger.info(keystone_endpoint)
39
+
40
+ try:
41
+ if "v3" not in keystone_endpoint:
42
+ url = f"{keystone_endpoint}/v3/role_assignments?include_names"
43
+ else:
44
+ url = f"{keystone_endpoint}/role_assignments?include_names"
45
+
46
+ logger.info(url)
47
+ response = connection.session.get(url)
48
+ except Exception as e:
49
+ logger.info(e)
50
+
51
+ if response is None:
52
+ return []
53
+
54
+ return response.json()['role_assignments']
55
+
56
+ # keystone_endpoints = [connection.endpoint_for(service_type="keystone", interface="public")]
57
+
58
+ # for endpoint in keystone_endpoints:
59
+ # try:
60
+ # url = f"{endpoint}/v3/role_assignments?include_names"
61
+ # response = connection.session.get(url)
62
+ # if response.status_code == 200:
63
+ # break
64
+ # except Exception as e:
65
+ # logger.info(e)
66
+
67
+ # if response is None:
68
+ # return []
69
+
70
+ # return response.json()['role_assignments']
71
71
 
@@ -1,65 +1,65 @@
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
- neutron_endpoints = os_util.get_endpoints(
18
- connection=connection, service_type="network", interface="public"
19
- )
20
-
21
- response = None
22
-
23
- for endpoint in neutron_endpoints:
24
- try:
25
- url = f"{endpoint}/v2.0/floatingips/{floating_ip_id}?fields=project_id"
26
- response = connection.session.get(url)
27
- if response.status_code == 200:
28
- break
29
- except Exception as e:
30
- print(e)
31
-
32
- if response is None:
33
- return None
34
-
35
- return response.json()["floatingip"]["project_id"]
36
-
37
-
38
- def get_router_project(connection: Connection, router_id: str):
39
- # neutron_endpoint = os_util.get_endpoint(
40
- # connection=connection, service_type="network", interface="internal"
41
- # )
42
-
43
- neutron_endpoints = os_util.get_endpoints(
44
- connection=connection, service_type="network", interface="public"
45
- )
46
-
47
- response = None
48
-
49
- for endpoint in neutron_endpoints:
50
- try:
51
- url = f"{endpoint}/v2.0/routers/{router_id}?fields=project_id"
52
-
53
- response = connection.session.get(url)
54
-
55
- if response.status_code == 200:
56
- break
57
- except Exception as e:
58
- print(e)
59
-
60
- if response is None:
61
- return None
62
-
63
- data = response.json()
64
-
65
- return data["router"]["project_id"]
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
+ neutron_endpoints = os_util.get_endpoints(
18
+ connection=connection, service_type="network", interface="public"
19
+ )
20
+
21
+ response = None
22
+
23
+ for endpoint in neutron_endpoints:
24
+ try:
25
+ url = f"{endpoint}/v2.0/floatingips/{floating_ip_id}?fields=project_id"
26
+ response = connection.session.get(url)
27
+ if response.status_code == 200:
28
+ break
29
+ except Exception as e:
30
+ print(e)
31
+
32
+ if response is None:
33
+ return None
34
+
35
+ return response.json()["floatingip"]["project_id"]
36
+
37
+
38
+ def get_router_project(connection: Connection, router_id: str):
39
+ # neutron_endpoint = os_util.get_endpoint(
40
+ # connection=connection, service_type="network", interface="internal"
41
+ # )
42
+
43
+ neutron_endpoints = os_util.get_endpoints(
44
+ connection=connection, service_type="network", interface="public"
45
+ )
46
+
47
+ response = None
48
+
49
+ for endpoint in neutron_endpoints:
50
+ try:
51
+ url = f"{endpoint}/v2.0/routers/{router_id}?fields=project_id"
52
+
53
+ response = connection.session.get(url)
54
+
55
+ if response.status_code == 200:
56
+ break
57
+ except Exception as e:
58
+ print(e)
59
+
60
+ if response is None:
61
+ return None
62
+
63
+ data = response.json()
64
+
65
+ return data["router"]["project_id"]
@@ -1,94 +1,94 @@
1
- from openstack.connection import Connection
2
- from openstack.identity.v3.service import Service
3
- from openstack.load_balancer.v2.load_balancer import LoadBalancer
4
-
5
-
6
- import osi_dump.util.openstack_util as os_util
7
-
8
-
9
- def get_load_balancer_flavor(connection: Connection, flavor_id: str) -> dict:
10
-
11
- if not flavor_id:
12
- return None
13
-
14
- octavia_endpoints = os_util.get_endpoints(
15
- connection=connection, service_type="load-balancer", interface="public"
16
- )
17
-
18
- response = None
19
-
20
- for endpoint in octavia_endpoints:
21
- try:
22
- url = f"{endpoint}/v2.0/lbaas/flavors/{flavor_id}"
23
- response = connection.session.get(url)
24
- if response.status_code == 200:
25
- break
26
- except Exception as e:
27
- print(e)
28
-
29
- if response is None:
30
- return None
31
-
32
- data = response.json()
33
-
34
- return data["flavor"]
35
-
36
- def get_load_balancers(connection: Connection) -> list[LoadBalancer]:
37
- # octavia_endpoint = os_util.get_endpoint(
38
- # connection=connection, service_type="load-balancer", interface="public"
39
- # )
40
-
41
- octavia_endpoints = os_util.get_endpoints(
42
- connection=connection, service_type="load-balancer", interface="public"
43
- )
44
-
45
- response = None
46
-
47
- for endpoint in octavia_endpoints:
48
- try:
49
- url = f"{endpoint}/v2.0/lbaas/loadbalancers"
50
- response = connection.session.get(url)
51
- if response.status_code == 200:
52
- break
53
- except Exception as e:
54
- print(e)
55
-
56
- if response is None:
57
- return None
58
-
59
- data = response.json()
60
-
61
- return data["loadbalancers"]
62
-
63
-
64
- def get_amphoraes(connection: Connection, load_balancer_id: str) -> list[dict]:
65
-
66
- # octavia_endpoint = os_util.get_endpoint(
67
- # connection=connection, service_type="load-balancer", interface="public"
68
- # )
69
-
70
- octavia_endpoints = os_util.get_endpoints(
71
- connection=connection, service_type="load-balancer", interface="public"
72
- )
73
-
74
- response = None
75
-
76
- for endpoint in octavia_endpoints:
77
- try:
78
- url = f"{endpoint}/v2/octavia/amphorae?load_balancer_id={load_balancer_id}&fields=status&fields=compute_id&fields=compute_flavor&fields=role"
79
- response = connection.session.get(url)
80
- if response.status_code == 200:
81
- break
82
- except Exception as e:
83
- print(e)
84
-
85
- if response is None:
86
- return None
87
-
88
- data = response.json()
89
-
90
- amphoraes = data["amphorae"]
91
-
92
- amphoraes = [dict(sorted(amphorae.items())) for amphorae in amphoraes]
93
-
94
- return amphoraes
1
+ from openstack.connection import Connection
2
+ from openstack.identity.v3.service import Service
3
+ from openstack.load_balancer.v2.load_balancer import LoadBalancer
4
+
5
+
6
+ import osi_dump.util.openstack_util as os_util
7
+
8
+
9
+ def get_load_balancer_flavor(connection: Connection, flavor_id: str) -> dict:
10
+
11
+ if not flavor_id:
12
+ return None
13
+
14
+ octavia_endpoints = os_util.get_endpoints(
15
+ connection=connection, service_type="load-balancer", interface="public"
16
+ )
17
+
18
+ response = None
19
+
20
+ for endpoint in octavia_endpoints:
21
+ try:
22
+ url = f"{endpoint}/v2.0/lbaas/flavors/{flavor_id}"
23
+ response = connection.session.get(url)
24
+ if response.status_code == 200:
25
+ break
26
+ except Exception as e:
27
+ print(e)
28
+
29
+ if response is None:
30
+ return None
31
+
32
+ data = response.json()
33
+
34
+ return data["flavor"]
35
+
36
+ def get_load_balancers(connection: Connection) -> list[LoadBalancer]:
37
+ # octavia_endpoint = os_util.get_endpoint(
38
+ # connection=connection, service_type="load-balancer", interface="public"
39
+ # )
40
+
41
+ octavia_endpoints = os_util.get_endpoints(
42
+ connection=connection, service_type="load-balancer", interface="public"
43
+ )
44
+
45
+ response = None
46
+
47
+ for endpoint in octavia_endpoints:
48
+ try:
49
+ url = f"{endpoint}/v2.0/lbaas/loadbalancers"
50
+ response = connection.session.get(url)
51
+ if response.status_code == 200:
52
+ break
53
+ except Exception as e:
54
+ print(e)
55
+
56
+ if response is None:
57
+ return None
58
+
59
+ data = response.json()
60
+
61
+ return data["loadbalancers"]
62
+
63
+
64
+ def get_amphoraes(connection: Connection, load_balancer_id: str) -> list[dict]:
65
+
66
+ # octavia_endpoint = os_util.get_endpoint(
67
+ # connection=connection, service_type="load-balancer", interface="public"
68
+ # )
69
+
70
+ octavia_endpoints = os_util.get_endpoints(
71
+ connection=connection, service_type="load-balancer", interface="public"
72
+ )
73
+
74
+ response = None
75
+
76
+ for endpoint in octavia_endpoints:
77
+ try:
78
+ url = f"{endpoint}/v2/octavia/amphorae?load_balancer_id={load_balancer_id}&fields=status&fields=compute_id&fields=compute_flavor&fields=role"
79
+ response = connection.session.get(url)
80
+ if response.status_code == 200:
81
+ break
82
+ except Exception as e:
83
+ print(e)
84
+
85
+ if response is None:
86
+ return None
87
+
88
+ data = response.json()
89
+
90
+ amphoraes = data["amphorae"]
91
+
92
+ amphoraes = [dict(sorted(amphorae.items())) for amphorae in amphoraes]
93
+
94
+ return amphoraes