cloud-governance 1.1.355__py3-none-any.whl → 1.1.357__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.
@@ -51,6 +51,8 @@ class IBMCostReport:
51
51
  hardware_tags = self.collect_tags_from_machines(
52
52
  tags=self.classic_operations.get_hardware_tags(hardware_id=str(hardware.get('id'))))
53
53
  hardware_tags['fqdn'] = hardware.get('fullyQualifiedDomainName').lower()
54
+ if 'budget' not in hardware_tags:
55
+ hardware_tags['budget'] = self.__environment_variables_dict.get('account')
54
56
  collect_machines_data[hardware_tags['fqdn']] = hardware_tags
55
57
  return collect_machines_data
56
58
 
@@ -86,7 +88,8 @@ class IBMCostReport:
86
88
  if fqdn not in collect_machines_data:
87
89
  user = [user for user in users if user in fqdn]
88
90
  if user:
89
- user_tags = self.ibm_account.get_user_tags_from_gsheet(username=f'{user[0]}@redhat.com', user_email='yes')
91
+ user_tags = self.ibm_account.get_user_tags_from_gsheet(username=f'{user[0]}@redhat.com',
92
+ user_email='yes')
90
93
  invoice_data[fqdn].update(self.collect_tags_from_machines(user_tags))
91
94
  return invoice_data
92
95
 
@@ -112,15 +115,17 @@ class IBMCostReport:
112
115
  collect_machines_data = self.get_hardware_data()
113
116
  collect_machines_data.update(self.get_virtual_machine_data())
114
117
  invoice_data = self.get_invoice_data(collect_machines_data=collect_machines_data)
115
- cost_invoice_resource_data = self.concatenate_dictionaries(resource_data=collect_machines_data, invoice_data=invoice_data)
118
+ cost_invoice_resource_data = self.concatenate_dictionaries(resource_data=collect_machines_data,
119
+ invoice_data=invoice_data)
116
120
  for tag_name in self.owned_tags:
117
121
  cost_list_items = []
118
122
  for _, data in cost_invoice_resource_data.items():
119
- if data[tag_name] != 0 or tag_name == 'budget':
123
+ if data.get(tag_name) != 0 or tag_name == 'budget':
120
124
  cost_list_items.append({
121
125
  tag_name.capitalize(): data[tag_name],
122
126
  'Cost': data['cost'],
123
127
  'Budget': self._elastic_upload.account
124
128
  })
125
- self._elastic_upload.es_upload_data(items=cost_list_items, es_index=f'{self._elastic_upload.es_index}-{tag_name.lower()}')
129
+ self._elastic_upload.es_upload_data(items=cost_list_items,
130
+ es_index=f'{self._elastic_upload.es_index}-{tag_name.lower()}')
126
131
  return True
@@ -811,9 +811,13 @@ class TagClusterResources(TagClusterOperations):
811
811
  for bucket in response['Buckets']:
812
812
  # starts with cluster name
813
813
  if bucket['Name'].startswith(cluster_key):
814
- bucket_tags = self.s3_client.get_bucket_tagging(Bucket=bucket.get('Name'))
814
+ try:
815
+ bucket_tags = self.s3_client.get_bucket_tagging(Bucket=bucket.get('Name'))
816
+ except Exception as err:
817
+ logger.info(err)
818
+ bucket_tags = {}
815
819
  if bucket_tags:
816
- bucket_tags = bucket_tags['TagSet']
820
+ bucket_tags = bucket_tags.get('TagSet')
817
821
  # search that not exist permanent tags in the resource
818
822
  if not self.__validate_existing_tag(bucket_tags):
819
823
  add_tags = []
@@ -23,6 +23,9 @@ class UploadS3(AbstractUpload):
23
23
  """
24
24
  if self._policy_output:
25
25
  data = json.dumps(data, cls=JsonDateTimeEncoder)
26
- self._s3operations.save_results_to_s3(policy=self._policy.replace('_', '-'),
27
- policy_output=self._policy_output, policy_result=data)
28
- logger.info(f"Uploaded the data s3 Bucket: {self._policy_output}")
26
+ try:
27
+ self._s3operations.save_results_to_s3(policy=self._policy.replace('_', '-'),
28
+ policy_output=self._policy_output, policy_result=data)
29
+ logger.info(f"Uploaded the data s3 Bucket: {self._policy_output}")
30
+ except Exception as err:
31
+ logger.error(f"Exection raised on uploading to s3, {err}")
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: cloud-governance
3
- Version: 1.1.355
3
+ Version: 1.1.357
4
4
  Summary: Cloud Governance Tool
5
5
  Home-page: https://github.com/redhat-performance/cloud-governance
6
6
  Author: Red Hat
@@ -200,7 +200,7 @@ cloud_governance/policy/ibm/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMp
200
200
  cloud_governance/policy/ibm/cost_billing_reports.py,sha256=3qQlgugtBQGw_W3PhrsQCehi4r4o1QPr6G50ZWGATnE,4118
201
201
  cloud_governance/policy/ibm/cost_usage_reports.py,sha256=UoiGugo9wCtoEKBWd-a4hbkbFhfWOf5BgM8Z6VkWnNU,2298
202
202
  cloud_governance/policy/ibm/ibm_cost_over_usage.py,sha256=C9ZkpMjRao9FQ2iZSXFdXqGxctBZVoLe-JXEupqIJ10,3595
203
- cloud_governance/policy/ibm/ibm_cost_report.py,sha256=3DbC_Os_vy-V4dD7i63JvWvd25dXgZa7oJHQIHETrec,5385
203
+ cloud_governance/policy/ibm/ibm_cost_report.py,sha256=xv-TX4eDgnTt5EM_iCLrUwj5hXRmHrsCfE6bs-bSlIo,5716
204
204
  cloud_governance/policy/ibm/tag_baremetal.py,sha256=7vVh3t4mqs_RDEzSwUS1E2xQzHnwJYPs3lGn5V7d3RU,5329
205
205
  cloud_governance/policy/ibm/tag_resources.py,sha256=g0ypZuKsQrJxscWDmcCdXHm9AS2fpMWsqpMCorF_Tdc,6324
206
206
  cloud_governance/policy/ibm/tag_vm.py,sha256=G3QLYwuB2cWSHAsoR40BHVBV5nmGVcVzLtJLmM3MenA,4836
@@ -215,7 +215,7 @@ cloud_governance/policy/policy_operations/aws/tag_cluster/__init__.py,sha256=47D
215
215
  cloud_governance/policy/policy_operations/aws/tag_cluster/remove_cluster_tags.py,sha256=uNaDEvF4r8d9gcFpR29WbbWC5ezQSbtrNwe-_rSuemc,25603
216
216
  cloud_governance/policy/policy_operations/aws/tag_cluster/run_tag_cluster_resouces.py,sha256=3FF70eXrGkqRC1uZ-XaAfoydq5kViw6d_Aplv3G2GPw,5114
217
217
  cloud_governance/policy/policy_operations/aws/tag_cluster/tag_cluster_operations.py,sha256=uivH-ZBNS9eXId9EhSk8BVVx5tx5lTX6JZCoPuM6Jx0,3862
218
- cloud_governance/policy/policy_operations/aws/tag_cluster/tag_cluster_resouces.py,sha256=rUd_ukxMhM_CLdugoYNS6_831KQBPw5FS5HckqfK-ps,44188
218
+ cloud_governance/policy/policy_operations/aws/tag_cluster/tag_cluster_resouces.py,sha256=NrQcdeDqcSiRWnQMuZXu1XdoySLuoDuBSnn8XHOSxJg,44380
219
219
  cloud_governance/policy/policy_operations/aws/tag_non_cluster/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
220
220
  cloud_governance/policy/policy_operations/aws/tag_non_cluster/non_cluster_operations.py,sha256=PUWS0SE7T56BejBa3FRUK-txq70gVHztNAj1JmB-Ra0,9497
221
221
  cloud_governance/policy/policy_operations/aws/tag_non_cluster/remove_non_cluster_tags.py,sha256=d-RKpWSaZi2ALQaA9_MwqxHwzbSpsdyjQTBacJVoOLw,8362
@@ -253,7 +253,7 @@ cloud_governance/policy/policy_runners/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JC
253
253
  cloud_governance/policy/policy_runners/common_policy_runner.py,sha256=p3CYga0q3PqdiEu4SEnM6UnDd1bwtBPEsLFnw8U4BPY,1174
254
254
  cloud_governance/policy/policy_runners/aws/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
255
255
  cloud_governance/policy/policy_runners/aws/policy_runner.py,sha256=biDRpgtBgXakdBeFloZngmtOzc1dZmtqyDtYw5spvvI,1858
256
- cloud_governance/policy/policy_runners/aws/upload_s3.py,sha256=01y1BiBhDcpqC7PpYMC5JtEDY166RnyIIjF_Pz2vTbc,1054
256
+ cloud_governance/policy/policy_runners/aws/upload_s3.py,sha256=myw36EEnufq0df4biunQh5kI-b77P5aTqI1WcNA-TKM,1195
257
257
  cloud_governance/policy/policy_runners/azure/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
258
258
  cloud_governance/policy/policy_runners/azure/policy_runner.py,sha256=5jGuVuFZFzn2V9zuviZ3TJS3xNwVuy2B0Cb2hnWhzxI,975
259
259
  cloud_governance/policy/policy_runners/common/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
@@ -263,8 +263,8 @@ cloud_governance/policy/policy_runners/elasticsearch/__init__.py,sha256=47DEQpj8
263
263
  cloud_governance/policy/policy_runners/elasticsearch/upload_elastic_search.py,sha256=pOwUJWXjJbyTy8iv3Ap8xJGnqQe-5lZgoR8-vGfAVos,1881
264
264
  cloud_governance/policy/policy_runners/ibm/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
265
265
  cloud_governance/policy/policy_runners/ibm/policy_runner.py,sha256=V0E_f7F3hXit0aSq4BlfX1Jd4vjR2NEvOWsJ5upvZ4o,1302
266
- cloud_governance-1.1.355.dist-info/licenses/LICENSE,sha256=xx0jnfkXJvxRnG63LTGOxlggYnIysveWIZ6H3PNdCrQ,11357
267
- cloud_governance-1.1.355.dist-info/METADATA,sha256=-gNmzHnA6GTcCPgADOqlBJX8SFkBeX_5C9tpkFUEBYE,11364
268
- cloud_governance-1.1.355.dist-info/WHEEL,sha256=1tXe9gY0PYatrMPMDd6jXqjfpz_B-Wqm32CPfRC58XU,91
269
- cloud_governance-1.1.355.dist-info/top_level.txt,sha256=jfB1fgj7jvx3YZkZA4G6hFeS1RHO7J7XtnbjuMNMRww,17
270
- cloud_governance-1.1.355.dist-info/RECORD,,
266
+ cloud_governance-1.1.357.dist-info/licenses/LICENSE,sha256=xx0jnfkXJvxRnG63LTGOxlggYnIysveWIZ6H3PNdCrQ,11357
267
+ cloud_governance-1.1.357.dist-info/METADATA,sha256=usz6LlExIPvmpIG16VhTuw4WsCUNgRkUhK6BzJ4ieXs,11364
268
+ cloud_governance-1.1.357.dist-info/WHEEL,sha256=CmyFI0kx5cdEMTLiONQRbGQwjIoR1aIYB7eCAQ4KPJ0,91
269
+ cloud_governance-1.1.357.dist-info/top_level.txt,sha256=jfB1fgj7jvx3YZkZA4G6hFeS1RHO7J7XtnbjuMNMRww,17
270
+ cloud_governance-1.1.357.dist-info/RECORD,,
@@ -1,5 +1,5 @@
1
1
  Wheel-Version: 1.0
2
- Generator: setuptools (77.0.3)
2
+ Generator: setuptools (78.1.0)
3
3
  Root-Is-Purelib: true
4
4
  Tag: py3-none-any
5
5