From 48c23c2f98f3a673ae066d2f0d11726d1831bf9e Mon Sep 17 00:00:00 2001 From: Ross Scroggs Date: Fri, 18 Jul 2025 11:52:04 -0700 Subject: [PATCH] Fixed bug in `gam print|show cigroups|cigroups-members cimember ` --- src/GamUpdate.txt | 13 ++++++++++++- src/gam/__init__.py | 10 +++++----- src/gam/gamlib/glapi.py | 4 ++-- 3 files changed, 19 insertions(+), 8 deletions(-) diff --git a/src/GamUpdate.txt b/src/GamUpdate.txt index 204a2dc7..17c57e63 100644 --- a/src/GamUpdate.txt +++ b/src/GamUpdate.txt @@ -1,6 +1,17 @@ +7.14.02 + +Fixed bug in `gam print|show cigroups|cigroups-members cimember ` that generated the following error: +``` +Cloud Identity Group Print Failed: Request contains an invalid argument. +``` + +7.14.01 + +Don't install yubikey library via pip by default. To install with yubikey support use pip install gam7[yubikey] + 7.14.00 -Added commands to display Google Tag Manager accounts, containers, workspaces and tags. +Added commands to display Google Tag Manager accounts, containers, workspaces, tags and user permissions. * See: https://github.com/GAM-team/GAM/wiki/Users-Tag-Manager diff --git a/src/gam/__init__.py b/src/gam/__init__.py index 32410292..3d909160 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.14.01' +__version__ = '7.14.02' __license__ = 'Apache License 2.0 (http://www.apache.org/licenses/LICENSE-2.0)' #pylint: disable=wrong-import-position @@ -6106,7 +6106,7 @@ def getCIGroupMembershipGraph(ci, member): result = callGAPI(ci.groups().memberships(), 'getMembershipGraph', throwReasons=GAPI.CIGROUP_LIST_THROW_REASONS, retryReasons=GAPI.CIGROUP_RETRY_REASONS, parent=parent, - query=f"member_key_id == '{member}' && CIGROUP_DISCUSSION_FORUM_LABEL in labels") + query=f"member_key_id == '{member}' && '{CIGROUP_DISCUSSION_FORUM_LABEL}' in labels") return (ci, result.get('response', {})) except (GAPI.resourceNotFound, GAPI.domainNotFound, GAPI.domainCannotUseApis, GAPI.forbidden, GAPI.badRequest, GAPI.invalid, GAPI.invalidArgument, @@ -36850,7 +36850,7 @@ def doPrintCIGroups(): showOwnedBy = convertUIDtoEmailAddress(getEmailAddress(), emailTypes=['user']) elif myarg in {'cimember', 'enterprisemember', 'ciowner'}: emailAddress = convertUIDtoEmailAddress(getEmailAddress(), emailTypes=['user', 'group']) - memberQuery = f"member_key_id == '{emailAddress}' && CIGROUP_DISCUSSION_FORUM_LABEL in labels" + memberQuery = f"member_key_id == '{emailAddress}' && '{CIGROUP_DISCUSSION_FORUM_LABEL}' in labels" entitySelection = None if myarg == 'ciowner': showOwnedBy = emailAddress @@ -37273,7 +37273,7 @@ def doPrintCIGroupMembers(): showOwnedBy = convertUIDtoEmailAddress(getEmailAddress(), emailTypes=['user']) elif myarg in {'cimember', 'enterprisemember', 'ciowner'}: emailAddress = convertUIDtoEmailAddress(getEmailAddress(), emailTypes=['user', 'group']) - query = f"member_key_id == '{emailAddress}' && CIGROUP_DISCUSSION_FORUM_LABEL in labels" + query = f"member_key_id == '{emailAddress}' && '{CIGROUP_DISCUSSION_FORUM_LABEL}' in labels" entityList = None if myarg == 'ciowner': showOwnedBy = emailAddress @@ -37492,7 +37492,7 @@ def doShowCIGroupMembers(): showOwnedBy = convertUIDtoEmailAddress(getEmailAddress(), emailTypes=['user']) elif myarg in {'cimember', 'enterprisemember', 'ciowner'}: emailAddress = convertUIDtoEmailAddress(getEmailAddress(), emailTypes=['user', 'group']) - query = f"member_key_id == '{emailAddress}' && CIGROUP_DISCUSSION_FORUM_LABEL in labels" + query = f"member_key_id == '{emailAddress}' && '{CIGROUP_DISCUSSION_FORUM_LABEL}' in labels" entityList = None if myarg == 'ciowner': showOwnedBy = emailAddress diff --git a/src/gam/gamlib/glapi.py b/src/gam/gamlib/glapi.py index c9dfbfb4..4319cac9 100644 --- a/src/gam/gamlib/glapi.py +++ b/src/gam/gamlib/glapi.py @@ -280,7 +280,7 @@ _INFO = { STORAGE: {'name': 'Cloud Storage API', 'version': 'v1', 'v2discovery': True}, STORAGEREAD: {'name': 'Cloud Storage API - Read', 'version': 'v1', 'v2discovery': True, 'mappedAPI': STORAGE}, STORAGEWRITE: {'name': 'Cloud Storage API - Write', 'version': 'v1', 'v2discovery': True, 'mappedAPI': STORAGE}, - TAGMANAGER: {'name': 'Tag Manager API', 'version': 'v2', 'v2discovery': True}, + TAGMANAGER: {'name': 'Tag Manager API - Accounts, Containers, Workspaces, Tags', 'version': 'v2', 'v2discovery': True}, TAGMANAGER_USERS: {'name': 'Tag Manager API - Users', 'version': 'v2', 'v2discovery': True, 'mappedAPI': TAGMANAGER}, TASKS: {'name': 'Tasks API', 'version': 'v1', 'v2discovery': True}, VAULT: {'name': 'Vault API', 'version': 'v1', 'v2discovery': True}, @@ -701,7 +701,7 @@ _SVCACCT_SCOPES = [ 'api': SHEETS, 'subscopes': READONLY, 'scope': 'https://www.googleapis.com/auth/spreadsheets'}, - {'name': 'Tag Manager API - read only', + {'name': 'Tag Manager API - Accounts, Containers, Workspaces, Tags - read only', 'api': TAGMANAGER, 'subscopes': [], 'offByDefault': True,