Skip to content

Commit 9093b6b

Browse files
committed
update error handle
1 parent e4a9694 commit 9093b6b

1 file changed

Lines changed: 15 additions & 8 deletions

File tree

shells/backends/gcp_tf_backend/src/driver.py

Lines changed: 15 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@
88
from google.cloud import storage
99
import os
1010
import json
11+
import sys
1112

1213
from constants import GCP_MODELS, GOOGLE_APPLICATION_CREDENTIALS
1314
from data_model import GcpTfBackend
@@ -62,7 +63,7 @@ def get_inventory(self, context):
6263
try:
6364
gcp_service = self._can_conntect_to_gcp(context, logger)
6465
if not gcp_service:
65-
self._raise_and_log(logger, "There was an issue accessing GCP, please check authentication credentials.")
66+
logger.exception("There was an issue accessing GCP, please check authentication credentials.")
6667
except Exception as e:
6768
self._raise_and_log(logger, f"There was an issue initialization GCP provider resource. {e}")
6869
return AutoLoadDetails([], [])
@@ -74,7 +75,7 @@ def _validate_bucket_exists(self, bucket_name: str, context, logger):
7475
storage_client = storage.Client()
7576
get_bucket = storage_client.get_bucket(bucket_name)
7677
if len(str(get_bucket)) < 0:
77-
self._raise_and_log(logger, f"Bucket {bucket_name} not found")
78+
logger.exception(f"Bucket {bucket_name} not found")
7879
except Exception as e:
7980
self._raise_and_log(logger, f"There was an issue accessing the bucket {bucket_name}.{e}")
8081

@@ -118,9 +119,9 @@ def delete_tfstate_file(self, context, tf_state_unique_name: str):
118119
"""Delete object under folder"""
119120
blobs = list(bucket.list_blobs(prefix=tf_state_unique_name))
120121
if len(blobs) == 0:
121-
self._raise_and_log(logger, f"Folder {tf_state_unique_name} not exists.")
122+
logger.exception(f"Folder {tf_state_unique_name} not exists.")
122123
elif len(blobs) > 1:
123-
self._raise_and_log(logger, f"There are more than 1 Folder {tf_state_unique_name} currenlty {len(blobs)} folders exist.")
124+
logger.exception(f"There are more than 1 Folder {tf_state_unique_name} currenlty {len(blobs)} folders exist.")
124125
else:
125126
bucket.delete_blobs(blobs)
126127
logger.info(f"Folder {tf_state_unique_name} deleted.")
@@ -145,14 +146,14 @@ def _create_gcp_session(self, context, project_id: str, logger):
145146
# json_path defines on GCP TF BACKEND RESOURCE
146147
if json_path:
147148
if gcp_backend_resource.cloud_provider:
148-
self._raise_and_log(logger, "Only one method of authentication should be filled")
149+
logger.exception("Only one method of authentication should be filled")
149150
os.environ[GOOGLE_APPLICATION_CREDENTIALS] = json_path
150151
os.environ["GOOGLE_PROJECT"] = project_id
151152
# Keys not defines on GCP TF BACKEND RESOURCE (CLP reference should have been set)
152153
else:
153154
# CLP had not been set...
154155
if not gcp_backend_resource.cloud_provider:
155-
self._raise_and_log(logger, "At least one method of authentication should be filled")
156+
logger.exception("At least one method of authentication should be filled")
156157

157158
# Check a correct CLP has been reference
158159
clp_details = api.GetResourceDetails
@@ -177,10 +178,16 @@ def _get_and_validate_clp(self, clp_details, gcp_backend_resource: str, logger)
177178
clpr_res_fam = clp_details_resource.ResourceFamilyName
178179
if (clpr_res_fam != 'Cloud Provider' and clpr_res_fam != 'CS_CloudProvider') or \
179180
clp_res_model not in GCP_MODELS:
180-
self._raise_and_log(logger, f"Cloud Provider does not have the expected type:{clpr_res_fam}")
181+
logger.exception(f"Cloud Provider does not have the expected type:{clpr_res_fam}")
181182
clp_name = clp_details(clp_details_resource.Name)
182183
return clp_name
183184

184-
def _raise_and_log(self, logger, msg):
185+
def _raise_and_log(self, logger, msg, error_type=None):
185186
logger.exception(msg)
187+
if error_type:
188+
raise error_type(msg)
189+
190+
(err_type, value, traceback) = sys.exc_info()
191+
if err_type:
192+
raise # re-raising original exception
186193
raise RuntimeError(msg)

0 commit comments

Comments
 (0)