osi-dump 0.1.3.3.3.4__py3-none-any.whl → 0.1.3.3.3.5__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.
@@ -4,10 +4,11 @@ import concurrent
4
4
 
5
5
  from openstack.connection import Connection
6
6
  from openstack.identity.v3.project import Project as OSProject
7
+ from openstack.load_balancer.v2.load_balancer import LoadBalancer as OSLoadBalancer
7
8
 
8
9
  from osi_dump.importer.project.project_importer import ProjectImporter
9
10
  from osi_dump.model.project import Project
10
-
11
+ import osi_dump.api.octavia as octavia_api
11
12
  logger = logging.getLogger(__name__)
12
13
 
13
14
 
@@ -26,6 +27,22 @@ class OpenStackProjectImporter(ProjectImporter):
26
27
  """
27
28
 
28
29
  logger.info(f"Importing projects for {self.connection.auth['auth_url']}")
30
+ try:
31
+ osload_balancers: list[OSLoadBalancer] = octavia_api.get_load_balancers(
32
+ connection=self.connection
33
+ )
34
+ except Exception as e:
35
+ raise Exception(
36
+ f"Can not fetch load_balancers for {self.connection.auth['auth_url']} {e}"
37
+ ) from e
38
+
39
+ project_lb_dict = {}
40
+
41
+ for osload_balancer in osload_balancers:
42
+ if project_lb_dict.get(osload_balancer["project_id"]):
43
+ project_lb_dict[osload_balancer["project_id"]] += 1
44
+ else:
45
+ project_lb_dict[osload_balancer["project_id"]] = 1
29
46
 
30
47
  try:
31
48
  osprojects: list[OSProject] = list(self.connection.identity.projects())
@@ -38,7 +55,7 @@ class OpenStackProjectImporter(ProjectImporter):
38
55
 
39
56
  with concurrent.futures.ThreadPoolExecutor() as executor:
40
57
  futures = [
41
- executor.submit(self._get_project_info, project)
58
+ executor.submit(self._get_project_info, project, project_lb_dict)
42
59
  for project in osprojects
43
60
  ]
44
61
  for future in concurrent.futures.as_completed(futures):
@@ -48,7 +65,7 @@ class OpenStackProjectImporter(ProjectImporter):
48
65
 
49
66
  return projects
50
67
 
51
- def _get_project_info(self, project: OSProject) -> Project:
68
+ def _get_project_info(self, project: OSProject, project_lb_dict: dict) -> Project:
52
69
 
53
70
  usage_instance=None
54
71
  quota_instance=None
@@ -97,6 +114,8 @@ class OpenStackProjectImporter(ProjectImporter):
97
114
  except Exception as e:
98
115
  logger.warning(f"Get domain failed for {project.domain_id} error: {e}")
99
116
 
117
+ lb_count = project_lb_dict.get(project.id)
118
+
100
119
  project_ret = Project(
101
120
  project_id=project.id,
102
121
  project_name=project.name,
@@ -115,7 +134,8 @@ class OpenStackProjectImporter(ProjectImporter):
115
134
  usage_snapshot=usage_snapshot,
116
135
  quota_snapshot=quota_snapshot,
117
136
  usage_storage=usage_storage,
118
- quota_storage=quota_storage
137
+ quota_storage=quota_storage,
138
+ load_balancer_count=lb_count
119
139
  )
120
140
 
121
141
  return project_ret
osi_dump/model/project.py CHANGED
@@ -30,3 +30,5 @@ class Project(BaseModel):
30
30
 
31
31
  usage_storage: Optional[int]
32
32
  quota_storage: Optional[int]
33
+
34
+ load_balancer_count: Optional[int]
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: osi-dump
3
- Version: 0.1.3.3.3.4
3
+ Version: 0.1.3.3.3.5
4
4
  Summary: OpenStack information dump tool
5
5
  Author: TVKain
6
6
  License: Apache-2.0
@@ -74,7 +74,7 @@ osi_dump/importer/load_balancer/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm
74
74
  osi_dump/importer/load_balancer/load_balancer_importer.py,sha256=fzInBlkscqlbhCATeQYXvufc-WHq2pbofTJJifN0zaY,218
75
75
  osi_dump/importer/load_balancer/openstack_load_balancer_importer.py,sha256=tTcZAWEMstRvDAWrmFlRYI1mIc27egaEAeNLsh-htRM,3205
76
76
  osi_dump/importer/project/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
77
- osi_dump/importer/project/openstack_project_importer.py,sha256=0Idzf-bgQEdgSlM85iNwSRZdknibeWXScRJKBdoIuqg,4080
77
+ osi_dump/importer/project/openstack_project_importer.py,sha256=9K9OVwMQt_Kk6Z36tHKUl24FGs4oO9iz1pvJLNtPbZI,4970
78
78
  osi_dump/importer/project/project_importer.py,sha256=jwEvxteFbSwyWMV8hKAtf5Lo2bZysWkQ1L_NVUE8XOQ,191
79
79
  osi_dump/importer/role_assignment/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
80
80
  osi_dump/importer/role_assignment/openstack_role_assignment_importer.py,sha256=p7Ocn27Esh-QipqNyQCviO6xt4TTWuIbqiNQ8oAPVpY,3557
@@ -94,7 +94,7 @@ osi_dump/model/hypervisor.py,sha256=6dWEMVrrjOQolX936FqY994S7RAXpMPATpsLPVNeCyk,
94
94
  osi_dump/model/image.py,sha256=JUr90XQgA6d3EyoZyV-Cyz4Y1GkEBIDhALsf-_eoR-Y,524
95
95
  osi_dump/model/instance.py,sha256=8puhIKWWfoAaTURXb7XUpjG0lQ4nb0UwrsrTQdDaFbs,639
96
96
  osi_dump/model/load_balancer.py,sha256=cInZ_JH8kzZpnJsxejI-nze4nACtK3Yk20pfyl28lLo,436
97
- osi_dump/model/project.py,sha256=_mMaKKM9RQYiorh6zWMrC_WJ3x9RxhZxn4lLa_B3niY,710
97
+ osi_dump/model/project.py,sha256=S5BtjeMoxZfiJ7z7G_5jYfp5mMTzlPi7DWT5fuBGCTw,749
98
98
  osi_dump/model/role_assignment.py,sha256=fNt05y4aFF6b71Yps_EHzWavv8wF-jYx7gd3WAhqy6Y,310
99
99
  osi_dump/model/router.py,sha256=K8B6w97DYcFNRPmXN6CAZatm_0XSo2qIFVTvgdMfufY,417
100
100
  osi_dump/model/volume.py,sha256=C1WdZ_GwlL-iaBqrFpgPMfIQZj3ST2KQHzwXceYxRZg,423
@@ -109,8 +109,8 @@ osi_dump/util/extract_hostname.py,sha256=IpdklGHevmtRu67xeSRE_5n2mvWGI1sDsnJwExo
109
109
  osi_dump/util/openstack_util.py,sha256=_o8LiRmQKtxQ8hU3rbrMNwIAxt0-aWD2rjq-NvVdK9E,1299
110
110
  osi_dump/util/panda_excel.py,sha256=owr8AffIxqN3yY8kIv55Ox4j2dRz7kXZvSZFZeft8dw,734
111
111
  osi_dump/util/validate_dir_path.py,sha256=pL_OrY8JnNwk3vj6Zp6bsZtgHXhszSGRoqIt-1G5S90,507
112
- osi_dump-0.1.3.3.3.4.dist-info/METADATA,sha256=aDqD7WalTunfBVE43PF9AUMtJg2Qxhhgp_snbor7VQs,678
113
- osi_dump-0.1.3.3.3.4.dist-info/WHEEL,sha256=PZUExdf71Ui_so67QXpySuHtCi3-J3wvF4ORK6k_S8U,91
114
- osi_dump-0.1.3.3.3.4.dist-info/entry_points.txt,sha256=ozm5sIBtXzLv6_FiUe26v1BgA3_xUReGLPhKQKZ56wQ,46
115
- osi_dump-0.1.3.3.3.4.dist-info/top_level.txt,sha256=OtAAwmJfcoPvlw_Cemo_H1aXIGV_7w0O2941KQt6faQ,9
116
- osi_dump-0.1.3.3.3.4.dist-info/RECORD,,
112
+ osi_dump-0.1.3.3.3.5.dist-info/METADATA,sha256=bAu5Jdb3RXnf-viANgvWqlX3fBmemBZDZhETcHqqQZs,678
113
+ osi_dump-0.1.3.3.3.5.dist-info/WHEEL,sha256=PZUExdf71Ui_so67QXpySuHtCi3-J3wvF4ORK6k_S8U,91
114
+ osi_dump-0.1.3.3.3.5.dist-info/entry_points.txt,sha256=ozm5sIBtXzLv6_FiUe26v1BgA3_xUReGLPhKQKZ56wQ,46
115
+ osi_dump-0.1.3.3.3.5.dist-info/top_level.txt,sha256=OtAAwmJfcoPvlw_Cemo_H1aXIGV_7w0O2941KQt6faQ,9
116
+ osi_dump-0.1.3.3.3.5.dist-info/RECORD,,