diff --git a/docs/GamUpdates.md b/docs/GamUpdates.md index 50755ff0..8a378518 100644 --- a/docs/GamUpdates.md +++ b/docs/GamUpdates.md @@ -10,6 +10,18 @@ Add the `-s` option to the end of the above commands to suppress creating the `g See [Downloads-Installs-GAM7](https://github.com/GAM-team/GAM/wiki/Downloads-Installs) for Windows or other options, including manual installation +### 7.00.14 + +Retry the following unexpected errors in `gam print users`. +``` +ERROR: 400: failedPrecondition - Precondition check failed. +ERROR: 500: unknownError - Unknown Error. +``` + +### 7.00.13 + +Version bump in order to confirm MSI installs are operating properly + ### 7.00.12 Updated option `showlastmodification` to `gam print|show filecounts` to handle diff --git a/docs/How-to-Upgrade-Legacy-GAM-to-GAM7.md b/docs/How-to-Upgrade-Legacy-GAM-to-GAM7.md index 1518371b..09a04737 100644 --- a/docs/How-to-Upgrade-Legacy-GAM-to-GAM7.md +++ b/docs/How-to-Upgrade-Legacy-GAM-to-GAM7.md @@ -251,7 +251,7 @@ writes the credentials into the file oauth2.txt. admin@server:/Users/admin$ rm -f /Users/admin/GAMConfig/oauth2.txt admin@server:/Users/admin$ gam version WARNING: Config File: /Users/admin/GAMConfig/gam.cfg, Section: DEFAULT, Item: oauth2_txt, Value: /Users/admin/GAMConfig/oauth2.txt, Not Found -GAM 7.00.13 - https://github.com/GAM-team/GAM - pyinstaller +GAM 7.00.14 - https://github.com/GAM-team/GAM - pyinstaller GAM Team Python 3.12.7 64-bit final MacOS Sonoma 14.5 x86_64 @@ -923,7 +923,7 @@ writes the credentials into the file oauth2.txt. C:\>del C:\GAMConfig\oauth2.txt C:\>gam version WARNING: Config File: C:\GAMConfig\gam.cfg, Section: DEFAULT, Item: oauth2_txt, Value: C:\GAMConfig\oauth2.txt, Not Found -GAM7 7.00.13 - https://github.com/GAM-team/GAM - pythonsource +GAM7 7.00.14 - https://github.com/GAM-team/GAM - pythonsource GAM Team Python 3.12.7 64-bit final Windows-10-10.0.17134 AMD64 diff --git a/docs/Version-and-Help.md b/docs/Version-and-Help.md index 51667834..3dabcbaa 100644 --- a/docs/Version-and-Help.md +++ b/docs/Version-and-Help.md @@ -3,7 +3,7 @@ Print the current version of Gam with details ``` gam version -GAM 7.00.13 - https://github.com/GAM-team/GAM - pyinstaller +GAM 7.00.14 - https://github.com/GAM-team/GAM - pyinstaller GAM Team Python 3.12.7 64-bit final MacOS Sonoma 14.5 x86_64 @@ -15,7 +15,7 @@ Time: 2023-06-02T21:10:00-07:00 Print the current version of Gam with details and time offset information ``` gam version timeoffset -GAM 7.00.13 - https://github.com/GAM-team/GAM - pyinstaller +GAM 7.00.14 - https://github.com/GAM-team/GAM - pyinstaller GAM Team Python 3.12.7 64-bit final MacOS Sonoma 14.5 x86_64 @@ -27,7 +27,7 @@ Your system time differs from www.googleapis.com by less than 1 second Print the current version of Gam with extended details and SSL information ``` gam version extended -GAM 7.00.13 - https://github.com/GAM-team/GAM - pyinstaller +GAM 7.00.14 - https://github.com/GAM-team/GAM - pyinstaller GAM Team Python 3.12.7 64-bit final MacOS Sonoma 14.5 x86_64 @@ -64,7 +64,7 @@ MacOS High Sierra 10.13.6 x86_64 Path: /Users/Admin/bin/gam7 Version Check: Current: 5.35.08 - Latest: 7.00.13 + Latest: 7.00.14 echo $? 1 ``` @@ -72,7 +72,7 @@ echo $? Print the current version number without details ``` gam version simple -7.00.13 +7.00.14 ``` In Linux/MacOS you can do: ``` @@ -82,7 +82,7 @@ echo $VER Print the current version of Gam and address of this Wiki ``` gam help -GAM 7.00.13 - https://github.com/GAM-team/GAM +GAM 7.00.14 - https://github.com/GAM-team/GAM GAM Team Python 3.12.7 64-bit final MacOS Sonoma 14.5 x86_64 diff --git a/src/GamUpdate.txt b/src/GamUpdate.txt index 160b4f13..e3a598c0 100644 --- a/src/GamUpdate.txt +++ b/src/GamUpdate.txt @@ -1,3 +1,11 @@ +7.00.14 + +Retry the following unexpected errors in `gam print users`. +``` +ERROR: 400: failedPrecondition - Precondition check failed. +ERROR: 500: unknownError - Unknown Error. +``` + 7.00.13 Version bump in order to confirm MSI installs are operating properly diff --git a/src/gam/__init__.py b/src/gam/__init__.py index b27a525a..6ac21824 100755 --- a/src/gam/__init__.py +++ b/src/gam/__init__.py @@ -25,7 +25,7 @@ https://github.com/GAM-team/GAM/wiki """ __author__ = 'GAM Team ' -__version__ = '7.00.13' +__version__ = '7.00.14' __license__ = 'Apache License 2.0 (http://www.apache.org/licenses/LICENSE-2.0)' #pylint: disable=wrong-import-position @@ -18536,7 +18536,9 @@ def doPrintAliases(): entityList = callGAPIpages(cd.users(), 'list', 'users', pageMessage=getPageMessage(showFirstLastItems=True), messageAttribute='primaryEmail', throwReasons=[GAPI.INVALID_ORGUNIT, GAPI.INVALID_INPUT, GAPI.DOMAIN_NOT_FOUND, - GAPI.RESOURCE_NOT_FOUND, GAPI.FORBIDDEN, GAPI.BAD_REQUEST], + GAPI.RESOURCE_NOT_FOUND, GAPI.FORBIDDEN, GAPI.BAD_REQUEST, + GAPI.UNKNOWN_ERROR, GAPI.FAILED_PRECONDITION], + retryReasons=[GAPI.UNKNOWN_ERROR, GAPI.FAILED_PRECONDITION], query=query, orderBy='email', fields=f'nextPageToken,users({",".join(userFields)})', maxResults=GC.Values[GC.USER_MAX_RESULTS], **kwargs) @@ -18549,6 +18551,8 @@ def doPrintAliases(): except GAPI.domainNotFound as e: entityActionFailedWarning([Ent.ALIAS, None, Ent.DOMAIN, kwargs['domain']], str(e)) continue + except (GAPI.unknownError, GAPI.failedPrecondition) as e: + entityActionFailedExit([Ent.USER, None], str(e)) except (GAPI.resourceNotFound, GAPI.forbidden, GAPI.badRequest): accessErrorExit(cd) count = len(users) @@ -18631,9 +18635,13 @@ def doPrintAddresses(): try: entityList = callGAPIpages(cd.users(), 'list', 'users', pageMessage=getPageMessage(showFirstLastItems=True), messageAttribute='primaryEmail', - throwReasons=[GAPI.RESOURCE_NOT_FOUND, GAPI.FORBIDDEN, GAPI.BAD_REQUEST], + throwReasons=[GAPI.RESOURCE_NOT_FOUND, GAPI.FORBIDDEN, GAPI.BAD_REQUEST, + GAPI.UNKNOWN_ERROR, GAPI.FAILED_PRECONDITION], + retryReasons=[GAPI.UNKNOWN_ERROR, GAPI.FAILED_PRECONDITION], orderBy='email', fields=f'nextPageToken,users({",".join(userFields)})', maxResults=GC.Values[GC.USER_MAX_RESULTS], **kwargs) + except (GAPI.unknownError, GAPI.failedPrecondition) as e: + entityActionFailedExit([Ent.USER, None], str(e)) except (GAPI.resourceNotFound, GAPI.forbidden, GAPI.badRequest): accessErrorExit(cd) for user in entityList: @@ -44598,7 +44606,9 @@ def doPrintUsers(entityList=None): feed = yieldGAPIpages(cd.users(), 'list', 'users', pageMessage=pageMessage, messageAttribute='primaryEmail', throwReasons=[GAPI.DOMAIN_NOT_FOUND, GAPI.INVALID_ORGUNIT, GAPI.INVALID_INPUT, - GAPI.BAD_REQUEST, GAPI.RESOURCE_NOT_FOUND, GAPI.FORBIDDEN], + GAPI.BAD_REQUEST, GAPI.RESOURCE_NOT_FOUND, GAPI.FORBIDDEN, + GAPI.UNKNOWN_ERROR, GAPI.FAILED_PRECONDITION], + retryReasons=[GAPI.UNKNOWN_ERROR, GAPI.FAILED_PRECONDITION], query=query, fields=fields, showDeleted=showDeleted, orderBy=orderBy, sortOrder=sortOrder, viewType=viewType, projection=schemaParms['projection'], customFieldMask=schemaParms['customFieldMask'], @@ -44639,6 +44649,8 @@ def doPrintUsers(entityList=None): else: entityActionFailedWarning([Ent.USER, None], str(e)) continue + except (GAPI.unknownError, GAPI.failedPrecondition) as e: + entityActionFailedExit([Ent.USER, None], str(e)) except (GAPI.badRequest, GAPI.resourceNotFound, GAPI.forbidden): accessErrorExit(cd) if showItemCountOnly: