osi-dump 0.1.3.3.4.0__tar.gz → 0.1.3.3.4.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 (129) hide show
  1. {osi_dump-0.1.3.3.4.0 → osi_dump-0.1.3.3.4.1}/PKG-INFO +2 -2
  2. {osi_dump-0.1.3.3.4.0 → osi_dump-0.1.3.3.4.1}/pyproject.toml +1 -1
  3. {osi_dump-0.1.3.3.4.0 → osi_dump-0.1.3.3.4.1}/src/osi_dump/api/keystone.py +23 -0
  4. {osi_dump-0.1.3.3.4.0 → osi_dump-0.1.3.3.4.1}/src/osi_dump/cli.py +11 -11
  5. {osi_dump-0.1.3.3.4.0 → osi_dump-0.1.3.3.4.1}/src/osi_dump/importer/role_assignment/openstack_role_assignment_importer.py +24 -6
  6. {osi_dump-0.1.3.3.4.0 → osi_dump-0.1.3.3.4.1}/src/osi_dump/model/role_assignment.py +4 -0
  7. {osi_dump-0.1.3.3.4.0 → osi_dump-0.1.3.3.4.1}/src/osi_dump.egg-info/PKG-INFO +2 -2
  8. {osi_dump-0.1.3.3.4.0 → osi_dump-0.1.3.3.4.1}/README.md +0 -0
  9. {osi_dump-0.1.3.3.4.0 → osi_dump-0.1.3.3.4.1}/setup.cfg +0 -0
  10. {osi_dump-0.1.3.3.4.0 → osi_dump-0.1.3.3.4.1}/src/osi_dump/__init__.py +0 -0
  11. {osi_dump-0.1.3.3.4.0 → osi_dump-0.1.3.3.4.1}/src/osi_dump/__main__.py +0 -0
  12. {osi_dump-0.1.3.3.4.0 → osi_dump-0.1.3.3.4.1}/src/osi_dump/api/__init__.py +0 -0
  13. {osi_dump-0.1.3.3.4.0 → osi_dump-0.1.3.3.4.1}/src/osi_dump/api/neutron.py +0 -0
  14. {osi_dump-0.1.3.3.4.0 → osi_dump-0.1.3.3.4.1}/src/osi_dump/api/octavia.py +0 -0
  15. {osi_dump-0.1.3.3.4.0 → osi_dump-0.1.3.3.4.1}/src/osi_dump/api/placement.py +0 -0
  16. {osi_dump-0.1.3.3.4.0 → osi_dump-0.1.3.3.4.1}/src/osi_dump/batch_handler/__init__.py +0 -0
  17. {osi_dump-0.1.3.3.4.0 → osi_dump-0.1.3.3.4.1}/src/osi_dump/batch_handler/external_port_batch_handler.py +0 -0
  18. {osi_dump-0.1.3.3.4.0 → osi_dump-0.1.3.3.4.1}/src/osi_dump/batch_handler/flavor_batch_handler.py +0 -0
  19. {osi_dump-0.1.3.3.4.0 → osi_dump-0.1.3.3.4.1}/src/osi_dump/batch_handler/floating_ip_batch_handler.py +0 -0
  20. {osi_dump-0.1.3.3.4.0 → osi_dump-0.1.3.3.4.1}/src/osi_dump/batch_handler/hypervisor_batch_handler.py +0 -0
  21. {osi_dump-0.1.3.3.4.0 → osi_dump-0.1.3.3.4.1}/src/osi_dump/batch_handler/image_batch_handler.py +0 -0
  22. {osi_dump-0.1.3.3.4.0 → osi_dump-0.1.3.3.4.1}/src/osi_dump/batch_handler/instance_batch_handler.py +0 -0
  23. {osi_dump-0.1.3.3.4.0 → osi_dump-0.1.3.3.4.1}/src/osi_dump/batch_handler/load_balancer_batch_handler.py +0 -0
  24. {osi_dump-0.1.3.3.4.0 → osi_dump-0.1.3.3.4.1}/src/osi_dump/batch_handler/network_batch_handler.py +0 -0
  25. {osi_dump-0.1.3.3.4.0 → osi_dump-0.1.3.3.4.1}/src/osi_dump/batch_handler/project_batch_handler.py +0 -0
  26. {osi_dump-0.1.3.3.4.0 → osi_dump-0.1.3.3.4.1}/src/osi_dump/batch_handler/role_assignment_batch_handler.py +0 -0
  27. {osi_dump-0.1.3.3.4.0 → osi_dump-0.1.3.3.4.1}/src/osi_dump/batch_handler/router_batch_handler.py +0 -0
  28. {osi_dump-0.1.3.3.4.0 → osi_dump-0.1.3.3.4.1}/src/osi_dump/batch_handler/volume_batch_handler.py +0 -0
  29. {osi_dump-0.1.3.3.4.0 → osi_dump-0.1.3.3.4.1}/src/osi_dump/exporter/__init__.py +0 -0
  30. {osi_dump-0.1.3.3.4.0 → osi_dump-0.1.3.3.4.1}/src/osi_dump/exporter/external_port/__init__.py +0 -0
  31. {osi_dump-0.1.3.3.4.0 → osi_dump-0.1.3.3.4.1}/src/osi_dump/exporter/external_port/excel_external_port_exporter.py +0 -0
  32. {osi_dump-0.1.3.3.4.0 → osi_dump-0.1.3.3.4.1}/src/osi_dump/exporter/external_port/external_port_exporter.py +0 -0
  33. {osi_dump-0.1.3.3.4.0 → osi_dump-0.1.3.3.4.1}/src/osi_dump/exporter/flavor/__init__.py +0 -0
  34. {osi_dump-0.1.3.3.4.0 → osi_dump-0.1.3.3.4.1}/src/osi_dump/exporter/flavor/excel_flavor_exporter.py +0 -0
  35. {osi_dump-0.1.3.3.4.0 → osi_dump-0.1.3.3.4.1}/src/osi_dump/exporter/flavor/flavor_exporter.py +0 -0
  36. {osi_dump-0.1.3.3.4.0 → osi_dump-0.1.3.3.4.1}/src/osi_dump/exporter/floating_ip/__init__.py +0 -0
  37. {osi_dump-0.1.3.3.4.0 → osi_dump-0.1.3.3.4.1}/src/osi_dump/exporter/floating_ip/excel_floating_ip_exporter.py +0 -0
  38. {osi_dump-0.1.3.3.4.0 → osi_dump-0.1.3.3.4.1}/src/osi_dump/exporter/floating_ip/floating_ip_exporter.py +0 -0
  39. {osi_dump-0.1.3.3.4.0 → osi_dump-0.1.3.3.4.1}/src/osi_dump/exporter/hypervisor/__init__.py +0 -0
  40. {osi_dump-0.1.3.3.4.0 → osi_dump-0.1.3.3.4.1}/src/osi_dump/exporter/hypervisor/excel_hypervisor_exporter.py +0 -0
  41. {osi_dump-0.1.3.3.4.0 → osi_dump-0.1.3.3.4.1}/src/osi_dump/exporter/hypervisor/hypervisor_exporter.py +0 -0
  42. {osi_dump-0.1.3.3.4.0 → osi_dump-0.1.3.3.4.1}/src/osi_dump/exporter/image/__init__.py +0 -0
  43. {osi_dump-0.1.3.3.4.0 → osi_dump-0.1.3.3.4.1}/src/osi_dump/exporter/image/excel_image_exporter.py +0 -0
  44. {osi_dump-0.1.3.3.4.0 → osi_dump-0.1.3.3.4.1}/src/osi_dump/exporter/image/image_exporter.py +0 -0
  45. {osi_dump-0.1.3.3.4.0 → osi_dump-0.1.3.3.4.1}/src/osi_dump/exporter/instance/__init__.py +0 -0
  46. {osi_dump-0.1.3.3.4.0 → osi_dump-0.1.3.3.4.1}/src/osi_dump/exporter/instance/excel_instance_exporter.py +0 -0
  47. {osi_dump-0.1.3.3.4.0 → osi_dump-0.1.3.3.4.1}/src/osi_dump/exporter/instance/instance_exporter.py +0 -0
  48. {osi_dump-0.1.3.3.4.0 → osi_dump-0.1.3.3.4.1}/src/osi_dump/exporter/load_balancer/__init__.py +0 -0
  49. {osi_dump-0.1.3.3.4.0 → osi_dump-0.1.3.3.4.1}/src/osi_dump/exporter/load_balancer/excel_load_balancer_exporter.py +0 -0
  50. {osi_dump-0.1.3.3.4.0 → osi_dump-0.1.3.3.4.1}/src/osi_dump/exporter/load_balancer/load_balancer_exporter.py +0 -0
  51. {osi_dump-0.1.3.3.4.0 → osi_dump-0.1.3.3.4.1}/src/osi_dump/exporter/network/__init__.py +0 -0
  52. {osi_dump-0.1.3.3.4.0 → osi_dump-0.1.3.3.4.1}/src/osi_dump/exporter/network/excel_network_exporter.py +0 -0
  53. {osi_dump-0.1.3.3.4.0 → osi_dump-0.1.3.3.4.1}/src/osi_dump/exporter/network/network_exporter.py +0 -0
  54. {osi_dump-0.1.3.3.4.0 → osi_dump-0.1.3.3.4.1}/src/osi_dump/exporter/project/__init__.py +0 -0
  55. {osi_dump-0.1.3.3.4.0 → osi_dump-0.1.3.3.4.1}/src/osi_dump/exporter/project/excel_project_exporter.py +0 -0
  56. {osi_dump-0.1.3.3.4.0 → osi_dump-0.1.3.3.4.1}/src/osi_dump/exporter/project/project_exporter.py +0 -0
  57. {osi_dump-0.1.3.3.4.0 → osi_dump-0.1.3.3.4.1}/src/osi_dump/exporter/role_assignment/__init__.py +0 -0
  58. {osi_dump-0.1.3.3.4.0 → osi_dump-0.1.3.3.4.1}/src/osi_dump/exporter/role_assignment/excel_role_assignment_exporter.py +0 -0
  59. {osi_dump-0.1.3.3.4.0 → osi_dump-0.1.3.3.4.1}/src/osi_dump/exporter/role_assignment/role_assignment_exporter.py +0 -0
  60. {osi_dump-0.1.3.3.4.0 → osi_dump-0.1.3.3.4.1}/src/osi_dump/exporter/router/__init__.py +0 -0
  61. {osi_dump-0.1.3.3.4.0 → osi_dump-0.1.3.3.4.1}/src/osi_dump/exporter/router/excel_router_exporter.py +0 -0
  62. {osi_dump-0.1.3.3.4.0 → osi_dump-0.1.3.3.4.1}/src/osi_dump/exporter/router/router_exporter.py +0 -0
  63. {osi_dump-0.1.3.3.4.0 → osi_dump-0.1.3.3.4.1}/src/osi_dump/exporter/volume/__init__.py +0 -0
  64. {osi_dump-0.1.3.3.4.0 → osi_dump-0.1.3.3.4.1}/src/osi_dump/exporter/volume/excel_volume_exporter.py +0 -0
  65. {osi_dump-0.1.3.3.4.0 → osi_dump-0.1.3.3.4.1}/src/osi_dump/exporter/volume/volume_exporter.py +0 -0
  66. {osi_dump-0.1.3.3.4.0 → osi_dump-0.1.3.3.4.1}/src/osi_dump/importer/external_port/__init__.py +0 -0
  67. {osi_dump-0.1.3.3.4.0 → osi_dump-0.1.3.3.4.1}/src/osi_dump/importer/external_port/external_port_importer.py +0 -0
  68. {osi_dump-0.1.3.3.4.0 → osi_dump-0.1.3.3.4.1}/src/osi_dump/importer/external_port/openstack_external_port_importer.py +0 -0
  69. {osi_dump-0.1.3.3.4.0 → osi_dump-0.1.3.3.4.1}/src/osi_dump/importer/flavor/__init__.py +0 -0
  70. {osi_dump-0.1.3.3.4.0 → osi_dump-0.1.3.3.4.1}/src/osi_dump/importer/flavor/flavor_importer.py +0 -0
  71. {osi_dump-0.1.3.3.4.0 → osi_dump-0.1.3.3.4.1}/src/osi_dump/importer/flavor/openstack_flavor_importer.py +0 -0
  72. {osi_dump-0.1.3.3.4.0 → osi_dump-0.1.3.3.4.1}/src/osi_dump/importer/floating_ip/__init__.py +0 -0
  73. {osi_dump-0.1.3.3.4.0 → osi_dump-0.1.3.3.4.1}/src/osi_dump/importer/floating_ip/floating_ip_importer.py +0 -0
  74. {osi_dump-0.1.3.3.4.0 → osi_dump-0.1.3.3.4.1}/src/osi_dump/importer/floating_ip/openstack_floating_ip_importer.py +0 -0
  75. {osi_dump-0.1.3.3.4.0 → osi_dump-0.1.3.3.4.1}/src/osi_dump/importer/hypervisor/__init__.py +0 -0
  76. {osi_dump-0.1.3.3.4.0 → osi_dump-0.1.3.3.4.1}/src/osi_dump/importer/hypervisor/hypervisor_importer.py +0 -0
  77. {osi_dump-0.1.3.3.4.0 → osi_dump-0.1.3.3.4.1}/src/osi_dump/importer/hypervisor/openstack_hypervisor_importer.py +0 -0
  78. {osi_dump-0.1.3.3.4.0 → osi_dump-0.1.3.3.4.1}/src/osi_dump/importer/image/__init__.py +0 -0
  79. {osi_dump-0.1.3.3.4.0 → osi_dump-0.1.3.3.4.1}/src/osi_dump/importer/image/image_importer.py +0 -0
  80. {osi_dump-0.1.3.3.4.0 → osi_dump-0.1.3.3.4.1}/src/osi_dump/importer/image/openstack_image_importer.py +0 -0
  81. {osi_dump-0.1.3.3.4.0 → osi_dump-0.1.3.3.4.1}/src/osi_dump/importer/instance/__init__.py +0 -0
  82. {osi_dump-0.1.3.3.4.0 → osi_dump-0.1.3.3.4.1}/src/osi_dump/importer/instance/instance_importer.py +0 -0
  83. {osi_dump-0.1.3.3.4.0 → osi_dump-0.1.3.3.4.1}/src/osi_dump/importer/instance/openstack_instance_importer.py +0 -0
  84. {osi_dump-0.1.3.3.4.0 → osi_dump-0.1.3.3.4.1}/src/osi_dump/importer/load_balancer/__init__.py +0 -0
  85. {osi_dump-0.1.3.3.4.0 → osi_dump-0.1.3.3.4.1}/src/osi_dump/importer/load_balancer/load_balancer_importer.py +0 -0
  86. {osi_dump-0.1.3.3.4.0 → osi_dump-0.1.3.3.4.1}/src/osi_dump/importer/load_balancer/openstack_load_balancer_importer.py +0 -0
  87. {osi_dump-0.1.3.3.4.0 → osi_dump-0.1.3.3.4.1}/src/osi_dump/importer/network/__init__.py +0 -0
  88. {osi_dump-0.1.3.3.4.0 → osi_dump-0.1.3.3.4.1}/src/osi_dump/importer/network/network_importer.py +0 -0
  89. {osi_dump-0.1.3.3.4.0 → osi_dump-0.1.3.3.4.1}/src/osi_dump/importer/network/openstack_network_importer.py +0 -0
  90. {osi_dump-0.1.3.3.4.0 → osi_dump-0.1.3.3.4.1}/src/osi_dump/importer/project/__init__.py +0 -0
  91. {osi_dump-0.1.3.3.4.0 → osi_dump-0.1.3.3.4.1}/src/osi_dump/importer/project/openstack_project_importer.py +0 -0
  92. {osi_dump-0.1.3.3.4.0 → osi_dump-0.1.3.3.4.1}/src/osi_dump/importer/project/project_importer.py +0 -0
  93. {osi_dump-0.1.3.3.4.0 → osi_dump-0.1.3.3.4.1}/src/osi_dump/importer/role_assignment/__init__.py +0 -0
  94. {osi_dump-0.1.3.3.4.0 → osi_dump-0.1.3.3.4.1}/src/osi_dump/importer/role_assignment/role_assignment_importer.py +0 -0
  95. {osi_dump-0.1.3.3.4.0 → osi_dump-0.1.3.3.4.1}/src/osi_dump/importer/router/__init__.py +0 -0
  96. {osi_dump-0.1.3.3.4.0 → osi_dump-0.1.3.3.4.1}/src/osi_dump/importer/router/openstack_router_importer.py +0 -0
  97. {osi_dump-0.1.3.3.4.0 → osi_dump-0.1.3.3.4.1}/src/osi_dump/importer/router/router_importer.py +0 -0
  98. {osi_dump-0.1.3.3.4.0 → osi_dump-0.1.3.3.4.1}/src/osi_dump/importer/volume/__init__.py +0 -0
  99. {osi_dump-0.1.3.3.4.0 → osi_dump-0.1.3.3.4.1}/src/osi_dump/importer/volume/openstack_volume_importer.py +0 -0
  100. {osi_dump-0.1.3.3.4.0 → osi_dump-0.1.3.3.4.1}/src/osi_dump/importer/volume/volume_importer.py +0 -0
  101. {osi_dump-0.1.3.3.4.0 → osi_dump-0.1.3.3.4.1}/src/osi_dump/model/__init__.py +0 -0
  102. {osi_dump-0.1.3.3.4.0 → osi_dump-0.1.3.3.4.1}/src/osi_dump/model/authentication_info.py +0 -0
  103. {osi_dump-0.1.3.3.4.0 → osi_dump-0.1.3.3.4.1}/src/osi_dump/model/external_port.py +0 -0
  104. {osi_dump-0.1.3.3.4.0 → osi_dump-0.1.3.3.4.1}/src/osi_dump/model/flavor.py +0 -0
  105. {osi_dump-0.1.3.3.4.0 → osi_dump-0.1.3.3.4.1}/src/osi_dump/model/floating_ip.py +0 -0
  106. {osi_dump-0.1.3.3.4.0 → osi_dump-0.1.3.3.4.1}/src/osi_dump/model/hypervisor.py +0 -0
  107. {osi_dump-0.1.3.3.4.0 → osi_dump-0.1.3.3.4.1}/src/osi_dump/model/image.py +0 -0
  108. {osi_dump-0.1.3.3.4.0 → osi_dump-0.1.3.3.4.1}/src/osi_dump/model/instance.py +0 -0
  109. {osi_dump-0.1.3.3.4.0 → osi_dump-0.1.3.3.4.1}/src/osi_dump/model/load_balancer.py +0 -0
  110. {osi_dump-0.1.3.3.4.0 → osi_dump-0.1.3.3.4.1}/src/osi_dump/model/network.py +0 -0
  111. {osi_dump-0.1.3.3.4.0 → osi_dump-0.1.3.3.4.1}/src/osi_dump/model/project.py +0 -0
  112. {osi_dump-0.1.3.3.4.0 → osi_dump-0.1.3.3.4.1}/src/osi_dump/model/router.py +0 -0
  113. {osi_dump-0.1.3.3.4.0 → osi_dump-0.1.3.3.4.1}/src/osi_dump/model/volume.py +0 -0
  114. {osi_dump-0.1.3.3.4.0 → osi_dump-0.1.3.3.4.1}/src/osi_dump/os_connection/__init__.py +0 -0
  115. {osi_dump-0.1.3.3.4.0 → osi_dump-0.1.3.3.4.1}/src/osi_dump/os_connection/get_connections.py +0 -0
  116. {osi_dump-0.1.3.3.4.0 → osi_dump-0.1.3.3.4.1}/src/osi_dump/util/__init__.py +0 -0
  117. {osi_dump-0.1.3.3.4.0 → osi_dump-0.1.3.3.4.1}/src/osi_dump/util/create_file.py +0 -0
  118. {osi_dump-0.1.3.3.4.0 → osi_dump-0.1.3.3.4.1}/src/osi_dump/util/excel_autosize_column.py +0 -0
  119. {osi_dump-0.1.3.3.4.0 → osi_dump-0.1.3.3.4.1}/src/osi_dump/util/excel_sort_sheet.py +0 -0
  120. {osi_dump-0.1.3.3.4.0 → osi_dump-0.1.3.3.4.1}/src/osi_dump/util/export_data_excel.py +0 -0
  121. {osi_dump-0.1.3.3.4.0 → osi_dump-0.1.3.3.4.1}/src/osi_dump/util/extract_hostname.py +0 -0
  122. {osi_dump-0.1.3.3.4.0 → osi_dump-0.1.3.3.4.1}/src/osi_dump/util/openstack_util.py +0 -0
  123. {osi_dump-0.1.3.3.4.0 → osi_dump-0.1.3.3.4.1}/src/osi_dump/util/panda_excel.py +0 -0
  124. {osi_dump-0.1.3.3.4.0 → osi_dump-0.1.3.3.4.1}/src/osi_dump/util/validate_dir_path.py +0 -0
  125. {osi_dump-0.1.3.3.4.0 → osi_dump-0.1.3.3.4.1}/src/osi_dump.egg-info/SOURCES.txt +0 -0
  126. {osi_dump-0.1.3.3.4.0 → osi_dump-0.1.3.3.4.1}/src/osi_dump.egg-info/dependency_links.txt +0 -0
  127. {osi_dump-0.1.3.3.4.0 → osi_dump-0.1.3.3.4.1}/src/osi_dump.egg-info/entry_points.txt +0 -0
  128. {osi_dump-0.1.3.3.4.0 → osi_dump-0.1.3.3.4.1}/src/osi_dump.egg-info/requires.txt +0 -0
  129. {osi_dump-0.1.3.3.4.0 → osi_dump-0.1.3.3.4.1}/src/osi_dump.egg-info/top_level.txt +0 -0
@@ -1,6 +1,6 @@
1
- Metadata-Version: 2.1
1
+ Metadata-Version: 2.2
2
2
  Name: osi-dump
3
- Version: 0.1.3.3.4.0
3
+ Version: 0.1.3.3.4.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.3.3.4.0"
3
+ version = "0.1.3.3.4.1"
4
4
  description = "OpenStack information dump tool"
5
5
  readme = "README.md"
6
6
  authors = [{ name = "TVKain" }]
@@ -9,6 +9,29 @@ import osi_dump.util.openstack_util as os_util
9
9
  logger = logging.getLogger(__name__)
10
10
 
11
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
+
12
35
  def get_role_assignments(connection: Connection):
13
36
  keystone_endpoint = connection.endpoint_for(service_type="identity", interface="public")
14
37
 
@@ -166,29 +166,29 @@ def inner_main(file_path: str, output_path: str):
166
166
 
167
167
  connections = get_connections(file_path=file_path)
168
168
 
169
- _instance(connections=connections, output_path=output_path)
169
+ #_instance(connections=connections, output_path=output_path)
170
170
 
171
- _floating_ip(connections=connections, output_path=output_path)
171
+ #_floating_ip(connections=connections, output_path=output_path)
172
172
 
173
- _volume(connections=connections, output_path=output_path)
173
+ #_volume(connections=connections, output_path=output_path)
174
174
 
175
- _hypervisor(connections=connections, output_path=output_path)
175
+ #_hypervisor(connections=connections, output_path=output_path)
176
176
 
177
- _project(connections=connections, output_path=output_path)
177
+ #_project(connections=connections, output_path=output_path)
178
178
 
179
- _image(connections=connections, output_path=output_path)
179
+ #_image(connections=connections, output_path=output_path)
180
180
 
181
- _flavor(connections=connections, output_path=output_path)
181
+ #_flavor(connections=connections, output_path=output_path)
182
182
 
183
183
  _role_assignment(connections=connections, output_path=output_path)
184
184
 
185
- _load_balancer(connections=connections, output_path=output_path)
185
+ #_load_balancer(connections=connections, output_path=output_path)
186
186
 
187
- _router(connections=connections, output_path=output_path)
187
+ #_router(connections=connections, output_path=output_path)
188
188
 
189
- _external_port(connections=connections, output_path=output_path)
189
+ #_external_port(connections=connections, output_path=output_path)
190
190
 
191
- _network(connections=connections, output_path=output_path)
191
+ #_network(connections=connections, output_path=output_path)
192
192
 
193
193
  util.excel_autosize_column(output_path)
194
194
 
@@ -4,13 +4,15 @@ import concurrent
4
4
 
5
5
  from openstack.connection import Connection
6
6
  from openstack.identity.v3.role_assignment import RoleAssignment as OSRoleAssignment
7
+ from openstack.identity.v3.user import User as OSUser
8
+
7
9
 
8
10
  from osi_dump.importer.role_assignment.role_assignment_importer import (
9
11
  RoleAssignmentImporter,
10
12
  )
11
13
  from osi_dump.model.role_assignment import RoleAssignment
12
14
 
13
- from osi_dump.api.keystone import get_role_assignments
15
+ from osi_dump.api.keystone import get_role_assignments, get_users
14
16
 
15
17
  logger = logging.getLogger(__name__)
16
18
 
@@ -19,14 +21,14 @@ class OpenStackRoleAssignmentImporter(RoleAssignmentImporter):
19
21
  def __init__(self, connection: Connection):
20
22
  self.connection = connection
21
23
 
22
- self.users = {}
24
+ self.users: dict[str, dict] = {}
23
25
  self.roles = {}
24
26
 
25
27
  def _get_users(self):
26
- os_users = self.connection.identity.users()
28
+ os_users = get_users(self.connection)
27
29
 
28
30
  for os_user in os_users:
29
- self.users[os_user.id] = os_user.name
31
+ self.users[os_user["id"]] = os_user
30
32
 
31
33
  def _get_roles(self):
32
34
  os_roles = self.connection.identity.roles()
@@ -90,7 +92,7 @@ class OpenStackRoleAssignmentImporter(RoleAssignmentImporter):
90
92
  role_id = None
91
93
 
92
94
  try:
93
- user_id = role_assignment["user"]["id"]
95
+ user_id: str = role_assignment["user"]["id"]
94
96
  except Exception as e:
95
97
  logger.warning(f"Can not get user id: {e}")
96
98
 
@@ -102,8 +104,11 @@ class OpenStackRoleAssignmentImporter(RoleAssignmentImporter):
102
104
  user_name = None
103
105
  role_name = None
104
106
 
107
+ password_expires_at = None
108
+ options = None
109
+
105
110
  try:
106
- user_name = self.users[user_id]
111
+ user_name = self.users[user_id]["name"]
107
112
  except Exception as e:
108
113
  logger.warning(f"Can not get user name: {e}")
109
114
 
@@ -112,12 +117,25 @@ class OpenStackRoleAssignmentImporter(RoleAssignmentImporter):
112
117
  except Exception as e:
113
118
  logger.warning(f"Can not get role name: {e}")
114
119
 
120
+ try:
121
+ password_expires_at = self.users[user_id]["password_expires_at"]
122
+ except Exception as e:
123
+ logger.warning(f"Can not get password expires at: {e}")
124
+
125
+
126
+ try:
127
+ options = self.users[user_id]["options"]
128
+ except Exception as e:
129
+ logger.warning(f"Can not get option")
130
+
115
131
  role_assignment_ret = RoleAssignment(
116
132
  user_id=user_id,
117
133
  user_name=user_name,
118
134
  role_id=role_id,
119
135
  role_name=role_name,
120
136
  scope=role_assignment["scope"],
137
+ password_expires_at=password_expires_at,
138
+ options=options
121
139
  )
122
140
 
123
141
  return role_assignment_ret
@@ -14,4 +14,8 @@ class RoleAssignment(BaseModel):
14
14
 
15
15
  role_name: Optional[str]
16
16
 
17
+ options: Optional[dict]
18
+
19
+ password_expires_at: Optional[str]
20
+
17
21
  scope: Optional[dict]
@@ -1,6 +1,6 @@
1
- Metadata-Version: 2.1
1
+ Metadata-Version: 2.2
2
2
  Name: osi-dump
3
- Version: 0.1.3.3.4.0
3
+ Version: 0.1.3.3.4.1
4
4
  Summary: OpenStack information dump tool
5
5
  Author: TVKain
6
6
  License: Apache-2.0
File without changes
File without changes