From df3ea385ee1dd41bada8a4b69c1ad0dd8a824d24 Mon Sep 17 00:00:00 2001 From: Ross Scroggs Date: Wed, 2 Jan 2019 12:43:35 -0800 Subject: [PATCH] Updated gam report users to support new orgUnitID argument in Reports API (#833) --- src/GamCommands.txt | 2 +- src/gam.py | 9 ++++++--- 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/src/GamCommands.txt b/src/GamCommands.txt index 263352fc..dbaf4e80 100644 --- a/src/GamCommands.txt +++ b/src/GamCommands.txt @@ -830,7 +830,7 @@ gam info resoldsubscriptions [customer_auth_token ] ::= "(,)*" gam report users|user [todrive] [date ] [fulldatarequired all|] - [(user all|)] [filter|filters ] [fields|parameters ] + [(user all|)|(orgunit|org|ou )] [filter|filters ] [fields|parameters ] gam report customers|customer|domain [todrive] [date ] [fulldatarequired all|] [fields|parameters ] gam report admin|calendar|calendars|drive|docs|doc|groups|group|logins|login|mobile|tokens|token [todrive] diff --git a/src/gam.py b/src/gam.py index fac4bb30..22e7b7a6 100755 --- a/src/gam.py +++ b/src/gam.py @@ -1272,7 +1272,7 @@ def showReport(): customerId = GC_Values[GC_CUSTOMER_ID] if customerId == MY_CUSTOMER: customerId = None - filters = parameters = actorIpAddress = startTime = endTime = eventName = None + filters = parameters = actorIpAddress = startTime = endTime = eventName = orgUnitId = None tryDate = datetime.date.today().strftime(YYYYMMDD_FORMAT) to_drive = False userKey = u'all' @@ -1283,6 +1283,9 @@ def showReport(): if myarg == u'date': tryDate = getYYYYMMDD(sys.argv[i+1]) i += 2 + elif myarg in [u'orgunit', u'org', u'ou']: + _, orgUnitId = getOrgUnitId(sys.argv[i+1]) + i += 2 elif myarg == u'fulldatarequired': fullDataRequired = [] fdr = sys.argv[i+1].lower() @@ -1321,7 +1324,7 @@ def showReport(): if fullDataRequired is not None: warnings = callGAPIitems(rep.userUsageReport(), u'get', u'warnings', throw_reasons=[GAPI_INVALID], - date=tryDate, userKey=userKey, customerId=customerId, fields=u'warnings') + date=tryDate, userKey=userKey, customerId=customerId, orgUnitID=orgUnitId, fields=u'warnings') fullData, tryDate = _checkFullDataAvailable(warnings, tryDate, fullDataRequired) if fullData < 0: print u'No user report available.' @@ -1330,7 +1333,7 @@ def showReport(): continue page_message = u'Got %%num_items%% Users\n' usage = callGAPIpages(rep.userUsageReport(), u'get', u'usageReports', page_message=page_message, throw_reasons=[GAPI_INVALID], - date=tryDate, userKey=userKey, customerId=customerId, filters=filters, parameters=parameters) + date=tryDate, userKey=userKey, customerId=customerId, orgUnitID=orgUnitId, filters=filters, parameters=parameters) break except GAPI_invalid as e: tryDate = _adjustDate(str(e))