From a7a7bc3ebee3c00ace383a4369a82fb22aee13d6 Mon Sep 17 00:00:00 2001 From: Ross Scroggs Date: Fri, 13 Mar 2020 04:36:22 -0700 Subject: [PATCH] Cleanup (#1115) --- src/gam.py | 14 +++++++------- src/gapi/calendar.py | 25 ++++++++++++++----------- src/gapi/directory/cros.py | 4 ++-- src/gapi/reports.py | 2 +- src/gapi/vault.py | 22 ++++++++++++---------- src/utils.py | 2 +- 6 files changed, 37 insertions(+), 32 deletions(-) diff --git a/src/gam.py b/src/gam.py index ddc63f8f..35c010e0 100755 --- a/src/gam.py +++ b/src/gam.py @@ -705,7 +705,7 @@ def readDiscoveryFile(api_version): def getOauth2TxtStorageCredentials(): oauth_string = fileutils.read_file(GC_Values[GC_OAUTH2_TXT], continue_on_error=True, display_errors=False) if not oauth_string: - return + return None oauth_data = json.loads(oauth_string) creds = google.oauth2.credentials.Credentials.from_authorized_user_file(GC_Values[GC_OAUTH2_TXT]) creds.token = oauth_data.get('token', oauth_data.get('auth_token', '')) @@ -6047,7 +6047,7 @@ def getUserAttributes(i, cd, updateCmd): location['area'] = sys.argv[i+1] i += 2 elif myopt in ['building', 'buildingid']: - location['buildingId'] = gapi.directory.resources.getBuildingByNameOrId(cd, sys.argv[i+1]) + location['buildingId'] = gapi.directory.resource.getBuildingByNameOrId(cd, sys.argv[i+1]) i += 2 elif myopt in ['desk', 'deskcode']: location['deskCode'] = sys.argv[i+1] @@ -7195,9 +7195,9 @@ def doCreateGroup(): gs_body = dict(list(current_settings.items()) + list(gs_body.items())) if gs_body: gapi.call(gs.groups(), 'update', groupUniqueId=body['email'], - body=gs_body, - retry_reasons=[gapi.errors.ErrorReason.SERVICE_LIMIT, - gapi.errors.ErrorReason.NOT_FOUND]) + retry_reasons=[gapi.errors.ErrorReason.SERVICE_LIMIT, + gapi.errors.ErrorReason.NOT_FOUND], + body=gs_body) def doCreateAlias(): cd = buildGAPIObject('directory') @@ -11400,7 +11400,7 @@ def ProcessGAMCommand(args): if transferWhat == 'drive': transferDriveFiles(users) elif transferWhat == 'seccals': - transferSecCals(users) + gapi.calendar.transferSecCals(users) else: controlflow.invalid_argument_exit(transferWhat, "gam transfer") elif command == 'show': @@ -11639,7 +11639,7 @@ def ProcessGAMCommand(args): elif command == 'info': infoWhat = sys.argv[4].lower() if infoWhat == 'calendar': - infoCalendar(users) + gapi.calendar.infoCalendar(users) elif infoWhat in ['filter', 'filters']: infoFilters(users) elif infoWhat in ['forwardingaddress', 'forwardingaddresses']: diff --git a/src/gapi/calendar.py b/src/gapi/calendar.py index a9212581..e86b241f 100644 --- a/src/gapi/calendar.py +++ b/src/gapi/calendar.py @@ -1,3 +1,4 @@ +import csv import sys import uuid @@ -5,7 +6,9 @@ import uuid import __main__ from var import * +import controlflow import display +import fileutils import gapi import utils @@ -124,7 +127,7 @@ def addACL(function): while i < len(sys.argv): myarg = sys.argv[i].lower().replace('_', '') if myarg == 'sendnotifications': - sendNotifications = getBoolean(sys.argv[i+1], myarg) + sendNotifications = __main__.getBoolean(sys.argv[i+1], myarg) i += 2 else: controlflow.invalid_argument_exit( @@ -231,7 +234,7 @@ def getSendUpdates(myarg, i, cal): sendUpdates = 'all' i += 1 elif myarg == 'sendnotifications': - sendUpdates = 'all' if getBoolean(sys.argv[i+1], myarg) else 'none' + sendUpdates = 'all' if __main__.getBoolean(sys.argv[i+1], myarg) else 'none' i += 2 else: # 'sendupdates': sendUpdatesMap = {} @@ -319,7 +322,7 @@ def addOrUpdateEvent(action): body = gapi.call(cal.events(), 'get', calendarId=calendarId, eventId=eventId) break - sendUpdates, body = getEventAttributes(i, cal, body, action) + sendUpdates, body = getEventAttributes(i, calendarId, cal, body, action) result = gapi.call(cal.events(), func, conferenceDataVersion=1, supportsAttachments=True, calendarId=calendarId, sendUpdates=sendUpdates, body=body, fields='id', @@ -328,11 +331,11 @@ def addOrUpdateEvent(action): def _remove_attendee(attendees, remove_email): - return [attendee for attendee in body['attendees'] + return [attendee for attendee in attendees if not attendee['email'].lower() == remove_email] -def getEventAttributes(i, cal, body, action): +def getEventAttributes(i, calendarId, cal, body, action): # Default to external only so non-Google # calendars are notified of changes sendUpdates = 'externalOnly' @@ -376,7 +379,7 @@ def getEventAttributes(i, cal, body, action): i += 2 elif myarg == 'end': if sys.argv[i+1].lower() == 'allday': - body['end'] = {'date': getYYYYMMDD(sys.argv[i+2])} + body['end'] = {'date': __main__.getYYYYMMDD(sys.argv[i+2])} i += 3 else: end_time = utils.get_time_or_delta_from_now(sys.argv[i+1]) @@ -642,10 +645,10 @@ def getCalendarAttributes(i, body, function): while i < len(sys.argv): myarg = sys.argv[i].lower().replace('_', '') if myarg == 'selected': - body['selected'] = getBoolean(sys.argv[i+1], myarg) + body['selected'] = __main__.getBoolean(sys.argv[i+1], myarg) i += 2 elif myarg == 'hidden': - body['hidden'] = getBoolean(sys.argv[i+1], myarg) + body['hidden'] = __main__.getBoolean(sys.argv[i+1], myarg) i += 2 elif myarg == 'summary': body['summaryOverride'] = sys.argv[i+1] @@ -656,11 +659,11 @@ def getCalendarAttributes(i, body, function): maxVal=CALENDAR_MAX_COLOR_INDEX) i += 2 elif myarg == 'backgroundcolor': - body['backgroundColor'] = getColor(sys.argv[i+1]) + body['backgroundColor'] = __main__.getColor(sys.argv[i+1]) colorRgbFormat = True i += 2 elif myarg == 'foregroundcolor': - body['foregroundColor'] = getColor(sys.argv[i+1]) + body['foregroundColor'] = __main__.getColor(sys.argv[i+1]) colorRgbFormat = True i += 2 elif myarg == 'reminder': @@ -855,7 +858,7 @@ def transferSecCals(users): remove_source_user = False i += 1 elif myarg == 'sendnotifications': - sendNotifications = getBoolean(sys.argv[i+1], myarg) + sendNotifications = __main__.getBoolean(sys.argv[i+1], myarg) i += 2 else: controlflow.invalid_argument_exit( diff --git a/src/gapi/directory/cros.py b/src/gapi/directory/cros.py index b43e5c58..85caaf2e 100644 --- a/src/gapi/directory/cros.py +++ b/src/gapi/directory/cros.py @@ -743,9 +743,9 @@ def doPrintCrosDevices(): def getCrOSDeviceEntity(i, cd): myarg = sys.argv[i].lower() if myarg == 'cros_sn': - return i+2, getUsersToModify('cros_sn', sys.argv[i+1]) + return i+2, __main__.getUsersToModify('cros_sn', sys.argv[i+1]) if myarg == 'query': - return i+2, getUsersToModify('crosquery', sys.argv[i+1]) + return i+2, __main__.getUsersToModify('crosquery', sys.argv[i+1]) if myarg[:6] == 'query:': query = sys.argv[i][6:] if query[:12].lower() == 'orgunitpath:': diff --git a/src/gapi/reports.py b/src/gapi/reports.py index 92e29690..4d40d988 100644 --- a/src/gapi/reports.py +++ b/src/gapi/reports.py @@ -60,7 +60,7 @@ def showReport(): tryDate = utils.get_yyyymmdd(sys.argv[i+1]) i += 2 elif myarg in ['orgunit', 'org', 'ou']: - _, orgUnitId = getOrgUnitId(sys.argv[i+1]) + _, orgUnitId = __main__.getOrgUnitId(sys.argv[i+1]) i += 2 elif myarg == 'fulldatarequired': fullDataRequired = [] diff --git a/src/gapi/vault.py b/src/gapi/vault.py index f7004610..fac04c2e 100644 --- a/src/gapi/vault.py +++ b/src/gapi/vault.py @@ -1,4 +1,5 @@ import datetime +import json import sys import googleapiclient.http @@ -9,6 +10,7 @@ import controlflow import display import fileutils import gapi +import storage import utils @@ -122,7 +124,7 @@ def createExport(): i += 2 elif searchMethod == 'ORG_UNIT': body['query']['orgUnitInfo'] = { - 'orgUnitId': getOrgUnitId(sys.argv[i+1])[1]} + 'orgUnitId': __main__.getOrgUnitId(sys.argv[i+1])[1]} i += 2 elif searchMethod == 'SHARED_DRIVE': body['query']['sharedDriveInfo'] = { @@ -156,7 +158,7 @@ def createExport(): i += 2 elif myarg in ['excludedrafts']: body['query']['mailOptions'] = { - 'excludeDrafts': getBoolean(sys.argv[i+1], myarg)} + 'excludeDrafts': __main__.getBoolean(sys.argv[i+1], myarg)} i += 2 elif myarg in ['driveversiondate']: body['query'].setdefault('driveOptions', {})['versionDate'] = \ @@ -164,11 +166,11 @@ def createExport(): i += 2 elif myarg in ['includeshareddrives', 'includeteamdrives']: body['query'].setdefault('driveOptions', {})[ - 'includeSharedDrives'] = getBoolean(sys.argv[i+1], myarg) + 'includeSharedDrives'] = __main__.getBoolean(sys.argv[i+1], myarg) i += 2 elif myarg in ['includerooms']: body['query']['hangoutsChatOptions'] = { - 'includeRooms': getBoolean(sys.argv[i+1], myarg)} + 'includeRooms': __main__.getBoolean(sys.argv[i+1], myarg)} i += 2 elif myarg in ['format']: export_format = sys.argv[i+1].upper() @@ -177,7 +179,7 @@ def createExport(): "export format", ", ".join(allowed_formats), export_format) i += 2 elif myarg in ['showconfidentialmodecontent']: - showConfidentialModeContent = getBoolean(sys.argv[i+1], myarg) + showConfidentialModeContent = __main__.getBoolean(sys.argv[i+1], myarg) i += 2 elif myarg in ['region']: allowed_regions = gapi.get_enum_values_minus_unspecified( @@ -190,7 +192,7 @@ def createExport(): i += 2 elif myarg in ['includeaccessinfo']: body['exportOptions'].setdefault('driveOptions', {})[ - 'includeAccessInfo'] = getBoolean(sys.argv[i+1], myarg) + 'includeAccessInfo'] = __main__.getBoolean(sys.argv[i+1], myarg) i += 2 else: controlflow.invalid_argument_exit(sys.argv[i], "gam create export") @@ -377,7 +379,7 @@ def getHoldInfo(): uid, cd, [account_type]) results['accounts'][i]['email'] = acct_email if 'orgUnit' in results: - results['orgUnit']['orgUnitPath'] = doGetOrgInfo( + results['orgUnit']['orgUnitPath'] = __main__.doGetOrgInfo( results['orgUnit']['orgUnitId'], return_attrib='orgUnitPath') display.print_json(results) @@ -454,7 +456,7 @@ def updateHold(): query = sys.argv[i+1] i += 2 elif myarg in ['orgunit', 'ou']: - body['orgUnit'] = {'orgUnitId': getOrgUnitId(sys.argv[i+1])[1]} + body['orgUnit'] = {'orgUnitId': __main__.getOrgUnitId(sys.argv[i+1])[1]} i += 2 elif myarg in ['start', 'starttime']: start_time = utils.get_date_zero_time_or_full_time(sys.argv[i+1]) @@ -506,7 +508,7 @@ def updateHold(): cd = __main__.buildGAPIObject('directory') for account in add_accounts: print(f'adding {account} to hold.') - add_body = {'accountId': convertEmailAddressToUID(account, cd)} + add_body = {'accountId': __main__.convertEmailAddressToUID(account, cd)} gapi.call(v.matters().holds().accounts(), 'create', matterId=matterId, holdId=holdId, body=add_body) for account in del_accounts: @@ -586,7 +588,7 @@ def getMatterInfo(): cd = __main__.buildGAPIObject('directory') for i in range(0, len(result['matterPermissions'])): uid = f'uid:{result["matterPermissions"][i]["accountId"]}' - user_email = convertUIDtoEmailAddress(uid, cd) + user_email = __main__.convertUIDtoEmailAddress(uid, cd) result['matterPermissions'][i]['email'] = user_email display.print_json(result) diff --git a/src/utils.py b/src/utils.py index fdde8562..bf86529f 100644 --- a/src/utils.py +++ b/src/utils.py @@ -212,7 +212,7 @@ def get_row_filter_date_or_delta_from_now(date_string): pass return (False, YYYYMMDD_FORMAT_REQUIRED) -def get_row_filter_date_or_delta_from_now(time_string): +def get_row_filter_time_or_delta_from_now(time_string): """Get an ISO 8601 time or a positive/negative delta applied to now. Args: time_string (string): The time or delta (e.g. '2017-09-01T12:34:56Z' or '-4h')