Skip to content
Merged
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
14 changes: 12 additions & 2 deletions cloud_governance/common/google_drive/google_drive_operations.py
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,7 @@ class GoogleDriveOperations:
def __init__(self):
self.__environment_variables_dict = environment_variables.environment_variables_dict
self.__service = None
self.__sheet_id_cache = {}
if self.__environment_variables_dict.get('GOOGLE_APPLICATION_CREDENTIALS'):
self.__creds, _ = google.auth.default()
self.__service = build('sheets', 'v4', credentials=self.__creds, num_retries=self.RETRIES)
Expand All @@ -46,6 +47,9 @@ def create_work_sheet(self, gsheet_id: str, sheet_name: str):
if self.__service:
self.__service.spreadsheets().batchUpdate(spreadsheetId=gsheet_id,
body=create_worksheet_meta_data).execute()
cache_key = f"{gsheet_id}:{sheet_name}"
if cache_key in self.__sheet_id_cache:
del self.__sheet_id_cache[cache_key]
logger.info(f'{sheet_name} worksheet created')
else:
logger.info(f'{sheet_name} Worksheet Already present')
Expand Down Expand Up @@ -105,14 +109,20 @@ def find_sheet_id_by_name(self, sheet_name: str, spreadsheet_id: str):
@param spreadsheet_id:
@return:
"""
cache_key = f"{spreadsheet_id}:{sheet_name}"
if cache_key in self.__sheet_id_cache:
return self.__sheet_id_cache[cache_key]

Comment thread
coderabbitai[bot] marked this conversation as resolved.
if self.__service:
sheets_with_properties = self.__service.spreadsheets().get(spreadsheetId=spreadsheet_id,
fields='sheets.properties').execute().get(
'sheets')
for sheet in sheets_with_properties:
if 'title' in sheet['properties'].keys():
if sheet['properties']['title'] == sheet_name:
return sheet['properties']['sheetId']
sheet_id = sheet['properties']['sheetId']
self.__sheet_id_cache[cache_key] = sheet_id
return sheet_id
return ''

@logger_time_stamp
Expand Down Expand Up @@ -143,7 +153,7 @@ def delete_rows(self, spreadsheet_id: str, sheet_name: str, row_number: int):
updating = self.__service.spreadsheets().batchUpdate(spreadsheetId=spreadsheet_id, body=update_data)
updating.execute()
except HttpError as error:
logger.into(f'An error occurred: {error}')
logger.info(f'An error occurred: {error}')

@logger_time_stamp
def paste_csv_to_gsheet(self, csv_path, spreadsheet_id: str, sheet_name: str):
Expand Down