diff --git a/src/GamCommands.txt b/src/GamCommands.txt index 44cc9099..677ec4eb 100644 --- a/src/GamCommands.txt +++ b/src/GamCommands.txt @@ -1396,6 +1396,9 @@ gam print chromeaues [todrive] [ou|org|orgunit ] [minauedate ] [maxauedate ] +gam print chromeneedsattn [todrive] + [ou|org|orgunit ] + gam print chromeversions [todrive] [ou|org|orgunit ] [start ] [end ] [recentfirst] diff --git a/src/gam/__init__.py b/src/gam/__init__.py index 1f8fc647..e9a6a7c0 100755 --- a/src/gam/__init__.py +++ b/src/gam/__init__.py @@ -11890,6 +11890,8 @@ def ProcessGAMCommand(args): gapi_chromemanagement.printAppDevices() elif argument in ['chromeaues']: gapi_chromemanagement.printAUEs() + elif argument in ['chromeneedsattn']: + gapi_chromemanagement.printNeedsAttn() elif argument in ['chromeversions']: gapi_chromemanagement.printVersions() elif argument in ['chromehistory']: diff --git a/src/gam/gapi/chromemanagement.py b/src/gam/gapi/chromemanagement.py index c1121cb3..f63bd6f8 100644 --- a/src/gam/gapi/chromemanagement.py +++ b/src/gam/gapi/chromemanagement.py @@ -335,14 +335,16 @@ def printAUEs(): maxAueDate = _getFilterDate(sys.argv[i + 1]).strftime(YYYYMMDD_FORMAT) i += 2 else: - msg = f'{myarg} is not a valid argument to "gam print chromeversions"' + msg = f'{myarg} is not a valid argument to "gam print chromeaues"' controlflow.system_error_exit(3, msg) if orgunit: orgUnitPath = gapi_directory_orgunits.orgunit_from_orgunitid(orgunit, None) + query = f'orgUnitPath={orgUnitPath}' titles.append('orgUnitPath') else: orgUnitPath = '/' - gam.printGettingAllItems('Chrome Auto Update Expirations', orgUnitPath) + query = None + gam.printGettingAllItems('Chrome Auto Update Expirations', query) aues = gapi.call(cm.customers().reports(), 'countChromeDevicesReachingAutoExpirationDate', customer=customer, orgUnitId=orgunit, @@ -354,6 +356,48 @@ def printAUEs(): display.write_csv_file(csvRows, titles, 'Chrome AUEs', todrive) +CHROME_NEEDSATTN_TITLES = [ + 'noRecentPolicySyncCount', 'noRecentUserActivityCount', 'pendingUpdate', + 'osVersionNotCompliantCount', 'unsupportedPolicyCount' + ] +def printNeedsAttn(): + cm = build() + customer = _get_customerid() + todrive = False + titles = CHROME_NEEDSATTN_TITLES[:] + csvRows = [] + orgunit = None + i = 3 + while i < len(sys.argv): + myarg = sys.argv[i].lower().replace('_', '') + if myarg == 'todrive': + todrive = True + i += 1 + elif myarg in ['ou', 'org', 'orgunit']: + orgunit = _get_orgunit(sys.argv[i+1]) + i += 2 + else: + msg = f'{myarg} is not a valid argument to "gam print chromeneedsattn"' + controlflow.system_error_exit(3, msg) + if orgunit: + orgUnitPath = gapi_directory_orgunits.orgunit_from_orgunitid(orgunit, None) + query = f'orgUnitPath={orgUnitPath}' + titles.append('orgUnitPath') + else: + orgUnitPath = '/' + query = None + gam.printGettingAllItems('Chrome Devices Needing Attention', query) + result = gapi.call(cm.customers().reports(), + 'countChromeDevicesThatNeedAttention', + customer=customer, orgUnitId=orgunit, readMask=','.join(CHROME_NEEDSATTN_TITLES)) + for field in CHROME_NEEDSATTN_TITLES: + result.setdefault(field, 0) + if orgunit: + result['orgUnitPath'] = orgUnitPath + csvRows.append(result) + display.write_csv_file(csvRows, titles, 'Chrome Devices Needing Attention', todrive) + + CHROME_VERSIONS_TITLES = [ 'version', 'count', 'channel', 'deviceOsVersion', 'system' ] @@ -367,6 +411,7 @@ def printVersions(): startDate = None endDate = None pfilter = None + query = None reverse = False i = 3 while i < len(sys.argv): @@ -397,12 +442,18 @@ def printVersions(): else: pfilter = '' pfilter += f'last_active_date>={startDate}' + query = pfilter if orgunit: orgUnitPath = gapi_directory_orgunits.orgunit_from_orgunitid(orgunit, None) + if query: + query += ' AND ' + else: + query = '' + query += f'orgUnitPath={orgUnitPath}' titles.append('orgUnitPath') else: orgUnitPath = '/' - gam.printGettingAllItems('Chrome Versions', pfilter) + gam.printGettingAllItems('Chrome Versions', query) page_message = gapi.got_total_items_msg('Chrome Versions', '...\n') versions = gapi.get_all_pages(cm.customers().reports(), 'countChromeVersions', diff --git a/src/gam/var.py b/src/gam/var.py index 08caec75..b5ef3f06 100644 --- a/src/gam/var.py +++ b/src/gam/var.py @@ -984,6 +984,8 @@ CROS_ARGUMENT_TO_PROPERTY_MAP = { 'autoupdateexpiration': ['autoUpdateExpiration',], 'bootmode': ['bootMode',], 'cpustatusreports': ['cpuStatusReports',], + 'deprovisionreason': ['deprovisionReason',], + 'lastDeprovisionTimestamp': ['lastDeprovisionTimestamp',], 'devicefiles': ['deviceFiles',], 'deviceid': ['deviceId',], 'dockmacaddress': ['dockMacAddress',], @@ -991,6 +993,7 @@ CROS_ARGUMENT_TO_PROPERTY_MAP = { 'ethernetmacaddress': ['ethernetMacAddress',], 'ethernetmacaddress0': ['ethernetMacAddress0',], 'firmwareversion': ['firmwareVersion',], + 'firstenrollmenttime': ['firstEnrollmentTime',], 'lastenrollmenttime': ['lastEnrollmentTime',], 'lastknownnetwork': ['lastKnownNetwork'], 'lastsync': ['lastSync',], @@ -1048,7 +1051,10 @@ CROS_SCALAR_PROPERTY_PRINT_ORDER = [ 'ethernetMacAddress0', 'macAddress', 'systemRamTotal', + 'firstEnrollmentTime', 'lastEnrollmentTime', + 'deprovisionReason', + 'lastDeprovisionTimestamp', 'orderNumber', 'manufactureDate', 'supportEndDate',