mirror of
https://github.com/GAM-team/GAM.git
synced 2026-06-29 10:21:35 +00:00
Updated gam update|delete|info adminrole to handle the following error:
ERROR: 400: failedPrecondition - Precondition check failed.
This commit is contained in:
@@ -10,6 +10,13 @@ Add the `-s` option to the end of the above commands to suppress creating the `g
|
|||||||
|
|
||||||
See [Downloads](https://github.com/taers232c/GAMADV-XTD3/wiki/Downloads) for Windows or other options, including manual installation
|
See [Downloads](https://github.com/taers232c/GAMADV-XTD3/wiki/Downloads) for Windows or other options, including manual installation
|
||||||
|
|
||||||
|
### 6.76.09
|
||||||
|
|
||||||
|
Updated `gam update|delete|info adminrole` to handle the following error:
|
||||||
|
```
|
||||||
|
ERROR: 400: failedPrecondition - Precondition check failed.
|
||||||
|
```
|
||||||
|
|
||||||
### 6.76.08
|
### 6.76.08
|
||||||
|
|
||||||
Updated `<SchemaNameList>` to `"<SchemaName>|<SchemaFieldName>(,<SchemaName>|<SchemaFieldName>)*"`
|
Updated `<SchemaNameList>` to `"<SchemaName>|<SchemaFieldName>(,<SchemaName>|<SchemaFieldName>)*"`
|
||||||
|
|||||||
@@ -335,7 +335,7 @@ writes the credentials into the file oauth2.txt.
|
|||||||
admin@server:/Users/admin/bin/gamadv-xtd3$ rm -f /Users/admin/GAMConfig/oauth2.txt
|
admin@server:/Users/admin/bin/gamadv-xtd3$ rm -f /Users/admin/GAMConfig/oauth2.txt
|
||||||
admin@server:/Users/admin/bin/gamadv-xtd3$ ./gam version
|
admin@server:/Users/admin/bin/gamadv-xtd3$ ./gam version
|
||||||
WARNING: Config File: /Users/admin/GAMConfig/gam.cfg, Section: DEFAULT, Item: oauth2_txt, Value: /Users/admin/GAMConfig/oauth2.txt, Not Found
|
WARNING: Config File: /Users/admin/GAMConfig/gam.cfg, Section: DEFAULT, Item: oauth2_txt, Value: /Users/admin/GAMConfig/oauth2.txt, Not Found
|
||||||
GAMADV-XTD3 6.76.08 - https://github.com/taers232c/GAMADV-XTD3 - pythonsource
|
GAMADV-XTD3 6.76.09 - https://github.com/taers232c/GAMADV-XTD3 - pythonsource
|
||||||
Ross Scroggs <ross.scroggs@gmail.com>
|
Ross Scroggs <ross.scroggs@gmail.com>
|
||||||
Python 3.12.3 64-bit final
|
Python 3.12.3 64-bit final
|
||||||
MacOS Sonoma 14.4.1 x86_64
|
MacOS Sonoma 14.4.1 x86_64
|
||||||
@@ -1009,7 +1009,7 @@ writes the credentials into the file oauth2.txt.
|
|||||||
C:\GAMADV-XTD3>del C:\GAMConfig\oauth2.txt
|
C:\GAMADV-XTD3>del C:\GAMConfig\oauth2.txt
|
||||||
C:\GAMADV-XTD3>gam version
|
C:\GAMADV-XTD3>gam version
|
||||||
WARNING: Config File: C:\GAMConfig\gam.cfg, Section: DEFAULT, Item: oauth2_txt, Value: C:\GAMConfig\oauth2.txt, Not Found
|
WARNING: Config File: C:\GAMConfig\gam.cfg, Section: DEFAULT, Item: oauth2_txt, Value: C:\GAMConfig\oauth2.txt, Not Found
|
||||||
GAMADV-XTD3 6.76.08 - https://github.com/taers232c/GAMADV-XTD3 - pythonsource
|
GAMADV-XTD3 6.76.09 - https://github.com/taers232c/GAMADV-XTD3 - pythonsource
|
||||||
Ross Scroggs <ross.scroggs@gmail.com>
|
Ross Scroggs <ross.scroggs@gmail.com>
|
||||||
Python 3.12.3 64-bit final
|
Python 3.12.3 64-bit final
|
||||||
Windows-10-10.0.17134 AMD64
|
Windows-10-10.0.17134 AMD64
|
||||||
|
|||||||
@@ -1036,6 +1036,10 @@ When `allfields` is specified (or no fields are specified), use `showshareddrive
|
|||||||
when shared drives are queried/selected. In this case, the Drive API returns the permission IDs
|
when shared drives are queried/selected. In this case, the Drive API returns the permission IDs
|
||||||
but not the permissions themselves so GAM makes an additional API call per file to get the permissions.
|
but not the permissions themselves so GAM makes an additional API call per file to get the permissions.
|
||||||
|
|
||||||
|
By default, when `showimimetype` and `filepath|fullpath`are both specified, GAM locally filters files by MimeType;
|
||||||
|
this may be slow if the user has a large number of files. Adding the option `mimetypeinquery` or `mimetypeinquery true`
|
||||||
|
causes GAM to have Google filter files by MimeType; this will increase performance.
|
||||||
|
|
||||||
See [Select files for Display file counts, list, tree](#select-files-for-display-file-counts-list-tree)
|
See [Select files for Display file counts, list, tree](#select-files-for-display-file-counts-list-tree)
|
||||||
|
|
||||||
## File selection by name and entity shortcuts for Display file list
|
## File selection by name and entity shortcuts for Display file list
|
||||||
|
|||||||
@@ -3,7 +3,7 @@
|
|||||||
Print the current version of Gam with details
|
Print the current version of Gam with details
|
||||||
```
|
```
|
||||||
gam version
|
gam version
|
||||||
GAMADV-XTD3 6.76.08 - https://github.com/taers232c/GAMADV-XTD3 - pythonsource
|
GAMADV-XTD3 6.76.09 - https://github.com/taers232c/GAMADV-XTD3 - pythonsource
|
||||||
Ross Scroggs <ross.scroggs@gmail.com>
|
Ross Scroggs <ross.scroggs@gmail.com>
|
||||||
Python 3.12.3 64-bit final
|
Python 3.12.3 64-bit final
|
||||||
MacOS Sonoma 14.4.1 x86_64
|
MacOS Sonoma 14.4.1 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
|
Print the current version of Gam with details and time offset information
|
||||||
```
|
```
|
||||||
gam version timeoffset
|
gam version timeoffset
|
||||||
GAMADV-XTD3 6.76.08 - https://github.com/taers232c/GAMADV-XTD3 - pythonsource
|
GAMADV-XTD3 6.76.09 - https://github.com/taers232c/GAMADV-XTD3 - pythonsource
|
||||||
Ross Scroggs <ross.scroggs@gmail.com>
|
Ross Scroggs <ross.scroggs@gmail.com>
|
||||||
Python 3.12.3 64-bit final
|
Python 3.12.3 64-bit final
|
||||||
MacOS Sonoma 14.4.1 x86_64
|
MacOS Sonoma 14.4.1 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
|
Print the current version of Gam with extended details and SSL information
|
||||||
```
|
```
|
||||||
gam version extended
|
gam version extended
|
||||||
GAMADV-XTD3 6.76.08 - https://github.com/taers232c/GAMADV-XTD3 - pythonsource
|
GAMADV-XTD3 6.76.09 - https://github.com/taers232c/GAMADV-XTD3 - pythonsource
|
||||||
Ross Scroggs <ross.scroggs@gmail.com>
|
Ross Scroggs <ross.scroggs@gmail.com>
|
||||||
Python 3.12.3 64-bit final
|
Python 3.12.3 64-bit final
|
||||||
MacOS Sonoma 14.4.1 x86_64
|
MacOS Sonoma 14.4.1 x86_64
|
||||||
@@ -64,7 +64,7 @@ MacOS High Sierra 10.13.6 x86_64
|
|||||||
Path: /Users/Admin/bin/gamadv-xtd3
|
Path: /Users/Admin/bin/gamadv-xtd3
|
||||||
Version Check:
|
Version Check:
|
||||||
Current: 5.35.08
|
Current: 5.35.08
|
||||||
Latest: 6.76.08
|
Latest: 6.76.09
|
||||||
echo $?
|
echo $?
|
||||||
1
|
1
|
||||||
```
|
```
|
||||||
@@ -72,7 +72,7 @@ echo $?
|
|||||||
Print the current version number without details
|
Print the current version number without details
|
||||||
```
|
```
|
||||||
gam version simple
|
gam version simple
|
||||||
6.76.08
|
6.76.09
|
||||||
```
|
```
|
||||||
In Linux/MacOS you can do:
|
In Linux/MacOS you can do:
|
||||||
```
|
```
|
||||||
@@ -82,7 +82,7 @@ echo $VER
|
|||||||
Print the current version of Gam and address of this Wiki
|
Print the current version of Gam and address of this Wiki
|
||||||
```
|
```
|
||||||
gam help
|
gam help
|
||||||
GAM 6.76.08 - https://github.com/taers232c/GAMADV-XTD3
|
GAM 6.76.09 - https://github.com/taers232c/GAMADV-XTD3
|
||||||
Ross Scroggs <ross.scroggs@gmail.com>
|
Ross Scroggs <ross.scroggs@gmail.com>
|
||||||
Python 3.12.3 64-bit final
|
Python 3.12.3 64-bit final
|
||||||
MacOS Sonoma 14.4.1 x86_64
|
MacOS Sonoma 14.4.1 x86_64
|
||||||
|
|||||||
@@ -2,6 +2,13 @@
|
|||||||
|
|
||||||
Merged GAM-Team version
|
Merged GAM-Team version
|
||||||
|
|
||||||
|
6.76.09
|
||||||
|
|
||||||
|
Updated `gam update|delete|info adminrole` to handle the following error:
|
||||||
|
```
|
||||||
|
ERROR: 400: failedPrecondition - Precondition check failed.
|
||||||
|
```
|
||||||
|
|
||||||
6.76.08
|
6.76.08
|
||||||
|
|
||||||
Updated `<SchemaNameList>` to `"<SchemaName>|<SchemaFieldName>(,<SchemaName>|<SchemaFieldName>)*"`
|
Updated `<SchemaNameList>` to `"<SchemaName>|<SchemaFieldName>(,<SchemaName>|<SchemaFieldName>)*"`
|
||||||
|
|||||||
@@ -16186,12 +16186,12 @@ def doCreateUpdateAdminRoles():
|
|||||||
customer=GC.Values[GC.CUSTOMER_ID], body=body, fields='roleId,roleName')
|
customer=GC.Values[GC.CUSTOMER_ID], body=body, fields='roleId,roleName')
|
||||||
else:
|
else:
|
||||||
result = callGAPI(cd.roles(), 'patch',
|
result = callGAPI(cd.roles(), 'patch',
|
||||||
throwReasons=[GAPI.BAD_REQUEST, GAPI.CUSTOMER_NOT_FOUND, GAPI.FORBIDDEN]+[GAPI.NOT_FOUND],
|
throwReasons=[GAPI.BAD_REQUEST, GAPI.CUSTOMER_NOT_FOUND, GAPI.FORBIDDEN]+[GAPI.NOT_FOUND, GAPI.FAILED_PRECONDITION],
|
||||||
customer=GC.Values[GC.CUSTOMER_ID], roleId=roleId, body=body, fields='roleId,roleName')
|
customer=GC.Values[GC.CUSTOMER_ID], roleId=roleId, body=body, fields='roleId,roleName')
|
||||||
entityActionPerformed([Ent.ADMIN_ROLE, f"{result['roleName']}({result['roleId']})"])
|
entityActionPerformed([Ent.ADMIN_ROLE, f"{result['roleName']}({result['roleId']})"])
|
||||||
except GAPI.duplicate as e:
|
except GAPI.duplicate as e:
|
||||||
entityActionFailedWarning([Ent.ADMIN_ROLE, f"{body['roleName']}"], str(e))
|
entityActionFailedWarning([Ent.ADMIN_ROLE, f"{body['roleName']}"], str(e))
|
||||||
except (GAPI.notFound, GAPI.forbidden) as e:
|
except (GAPI.notFound, GAPI.forbidden, GAPI.failedPrecondition) as e:
|
||||||
entityActionFailedWarning([Ent.ADMIN_ROLE, roleId], str(e))
|
entityActionFailedWarning([Ent.ADMIN_ROLE, roleId], str(e))
|
||||||
except (GAPI.badRequest, GAPI.customerNotFound):
|
except (GAPI.badRequest, GAPI.customerNotFound):
|
||||||
accessErrorExit(cd)
|
accessErrorExit(cd)
|
||||||
@@ -16203,10 +16203,10 @@ def doDeleteAdminRole():
|
|||||||
checkForExtraneousArguments()
|
checkForExtraneousArguments()
|
||||||
try:
|
try:
|
||||||
callGAPI(cd.roles(), 'delete',
|
callGAPI(cd.roles(), 'delete',
|
||||||
throwReasons=[GAPI.BAD_REQUEST, GAPI.CUSTOMER_NOT_FOUND, GAPI.FORBIDDEN]+[GAPI.NOT_FOUND],
|
throwReasons=[GAPI.BAD_REQUEST, GAPI.CUSTOMER_NOT_FOUND, GAPI.FORBIDDEN]+[GAPI.NOT_FOUND, GAPI.FAILED_PRECONDITION],
|
||||||
customer=GC.Values[GC.CUSTOMER_ID], roleId=roleId)
|
customer=GC.Values[GC.CUSTOMER_ID], roleId=roleId)
|
||||||
entityActionPerformed([Ent.ADMIN_ROLE, f"{role}({roleId})"])
|
entityActionPerformed([Ent.ADMIN_ROLE, f"{role}({roleId})"])
|
||||||
except (GAPI.notFound, GAPI.forbidden) as e:
|
except (GAPI.notFound, GAPI.forbidden, GAPI.failedPrecondition) as e:
|
||||||
entityActionFailedWarning([Ent.ADMIN_ROLE, roleId], str(e))
|
entityActionFailedWarning([Ent.ADMIN_ROLE, roleId], str(e))
|
||||||
except (GAPI.badRequest, GAPI.customerNotFound):
|
except (GAPI.badRequest, GAPI.customerNotFound):
|
||||||
accessErrorExit(cd)
|
accessErrorExit(cd)
|
||||||
@@ -16247,12 +16247,12 @@ def doInfoAdminRole():
|
|||||||
fields = ','.join(set(fieldsList))
|
fields = ','.join(set(fieldsList))
|
||||||
try:
|
try:
|
||||||
role = callGAPI(cd.roles(), 'get',
|
role = callGAPI(cd.roles(), 'get',
|
||||||
throwReasons=[GAPI.BAD_REQUEST, GAPI.CUSTOMER_NOT_FOUND, GAPI.FORBIDDEN]+[GAPI.NOT_FOUND],
|
throwReasons=[GAPI.BAD_REQUEST, GAPI.CUSTOMER_NOT_FOUND, GAPI.FORBIDDEN]+[GAPI.NOT_FOUND, GAPI.FAILED_PRECONDITION],
|
||||||
customer=GC.Values[GC.CUSTOMER_ID], roleId=roleId, fields=fields)
|
customer=GC.Values[GC.CUSTOMER_ID], roleId=roleId, fields=fields)
|
||||||
role.setdefault('isSuperAdminRole', False)
|
role.setdefault('isSuperAdminRole', False)
|
||||||
role.setdefault('isSystemRole', False)
|
role.setdefault('isSystemRole', False)
|
||||||
_showAdminRole(role)
|
_showAdminRole(role)
|
||||||
except (GAPI.notFound, GAPI.forbidden) as e:
|
except (GAPI.notFound, GAPI.forbidden, GAPI.failedPrecondition) as e:
|
||||||
entityActionFailedWarning([Ent.ADMIN_ROLE, roleId], str(e))
|
entityActionFailedWarning([Ent.ADMIN_ROLE, roleId], str(e))
|
||||||
except (GAPI.badRequest, GAPI.customerNotFound):
|
except (GAPI.badRequest, GAPI.customerNotFound):
|
||||||
accessErrorExit(cd)
|
accessErrorExit(cd)
|
||||||
@@ -16406,9 +16406,9 @@ def doPrintShowAdmins():
|
|||||||
if roleId not in rolePrivileges:
|
if roleId not in rolePrivileges:
|
||||||
try:
|
try:
|
||||||
rolePrivileges[roleId] = callGAPI(cd.roles(), 'get',
|
rolePrivileges[roleId] = callGAPI(cd.roles(), 'get',
|
||||||
throwReasons=[GAPI.BAD_REQUEST, GAPI.CUSTOMER_NOT_FOUND, GAPI.FORBIDDEN]+[GAPI.NOT_FOUND],
|
throwReasons=[GAPI.BAD_REQUEST, GAPI.CUSTOMER_NOT_FOUND, GAPI.FORBIDDEN]+[GAPI.NOT_FOUND, GAPI.FAILED_PRECONDITION],
|
||||||
customer=GC.Values[GC.CUSTOMER_ID], roleId=roleId, fields='rolePrivileges')
|
customer=GC.Values[GC.CUSTOMER_ID], roleId=roleId, fields='rolePrivileges')
|
||||||
except (GAPI.notFound, GAPI.forbidden) as e:
|
except (GAPI.notFound, GAPI.forbidden, GAPI.failedPrecondition) as e:
|
||||||
entityActionFailedExit([Ent.USER, userKey, Ent.ADMIN_ROLE, admin['roleId']], str(e))
|
entityActionFailedExit([Ent.USER, userKey, Ent.ADMIN_ROLE, admin['roleId']], str(e))
|
||||||
rolePrivileges[roleId] = None
|
rolePrivileges[roleId] = None
|
||||||
except (GAPI.badRequest, GAPI.customerNotFound):
|
except (GAPI.badRequest, GAPI.customerNotFound):
|
||||||
@@ -43392,7 +43392,7 @@ def doPrintUsers(entityList=None):
|
|||||||
elif schemaParms['customFieldMask'] and not query:
|
elif schemaParms['customFieldMask'] and not query:
|
||||||
entityActionFailedWarning([Ent.USER, None], invalidUserSchema(schemaParms['customFieldMask']))
|
entityActionFailedWarning([Ent.USER, None], invalidUserSchema(schemaParms['customFieldMask']))
|
||||||
elif query and schemaParms['customFieldMask']:
|
elif query and schemaParms['customFieldMask']:
|
||||||
entityActionFailedWarning([Ent.USER, None], f'{invalidQuery(query)} or {invalidUserSchema(schemaParms['customFieldMask'])}')
|
entityActionFailedWarning([Ent.USER, None], f'{invalidQuery(query)} or {invalidUserSchema(schemaParms["customFieldMask"])}')
|
||||||
else:
|
else:
|
||||||
entityActionFailedWarning([Ent.USER, None], str(e))
|
entityActionFailedWarning([Ent.USER, None], str(e))
|
||||||
continue
|
continue
|
||||||
|
|||||||
Reference in New Issue
Block a user