diff --git a/src/GamCommands.txt b/src/GamCommands.txt index 6b42502c..869ea055 100644 --- a/src/GamCommands.txt +++ b/src/GamCommands.txt @@ -1146,18 +1146,17 @@ gam block deviceuser [id] gam delete deviceuser [id] gam cancelwipe deviceuser [id] gam wipe deviceuser [id] -gam print devices [todrive] [query ] +gam print devices [todrive] [filter|query ] [orderby [ascending|descending]] - [nocompanydevices] [nouserdevices] [nousers] - [formatjson [quotechar ]] -gam sync devices + [company|personal|nocompanydevices|nopersonaldevices] + [nodeviceusers] +gam sync devices [filter|query ] csvfile - [serialnumber_column ] - [devicetype_column ] - [assetid_column ] - [static_devicetype ] - [unassigned_missing_action delete|wipe|nonothing] - [assigned_missing_action delete|wipe|nonothing] + (devicetype_column )|(static_devicetype ) + serialnumber_column + [assettag_column ] + [unassigned_missing_action delete|wipe|donothing] + [assigned_missing_action delete|wipe|donothing] gam update mobile |query: action [doit] [if_users|match_users ] gam delete mobile diff --git a/src/gam/gapi/cloudidentity/devices.py b/src/gam/gapi/cloudidentity/devices.py index 46bad4b4..fa5fd303 100644 --- a/src/gam/gapi/cloudidentity/devices.py +++ b/src/gam/gapi/cloudidentity/devices.py @@ -117,7 +117,7 @@ def print_(): parent = 'devices/-' device_filter = None get_device_users = True - get_device_views = ['COMPANY_INVENTORY', 'USER_ASSIGNED_DEVICES'] + view = None orderByList = [] titles = [] csvRows = [] @@ -127,13 +127,19 @@ def print_(): while i < len(sys.argv): myarg = sys.argv[i].lower().replace('_', '') if myarg in ['filter', 'query']: - device_filter = sys.argv[i+1] - i += 2 + device_filter = sys.argv[i+1] + i += 2 + elif myarg == 'company': + view = 'COMPANY_INVENTORY' + i += 1 + elif myarg == 'personal': + view = 'USER_ASSIGNED_DEVICES' + i += 1 elif myarg == 'nocompanydevices': - get_device_views.remove('COMPANY_INVENTORY') + view = 'USER_ASSIGNED_DEVICES' i += 1 elif myarg == 'nopersonaldevices': - get_device_views.remove('USER_ASSIGNED_DEVICES') + view = 'COMPANY_INVENTORY' i += 1 elif myarg == 'nodeviceusers': get_device_users = False @@ -166,6 +172,7 @@ def print_(): else: controlflow.invalid_argument_exit(sys.argv[i], 'gam print devices') view_name_map = { + None: 'Devices', 'COMPANY_INVENTORY': 'Company Devices', 'USER_ASSIGNED_DEVICES': 'Personal Devices', } @@ -174,12 +181,10 @@ def print_(): else: orderBy = None devices = [] - for view in get_device_views: - view_name = view_name_map.get(view, 'Devices') - page_message = gapi.got_total_items_msg(view_name, '...\n') - devices += gapi.get_all_pages(ci.devices(), 'list', 'devices', - customer=customer, page_message=page_message, - pageSize=100, filter=device_filter, view=view, orderBy=orderBy) + page_message = gapi.got_total_items_msg(view_name_map[view], '...\n') + devices += gapi.get_all_pages(ci.devices(), 'list', 'devices', + customer=customer, page_message=page_message, + pageSize=100, filter=device_filter, view=view, orderBy=orderBy) if get_device_users: page_message = gapi.got_total_items_msg('Device Users', '...\n') device_users = gapi.get_all_pages(ci.devices().deviceUsers(), 'list', @@ -273,8 +278,7 @@ def sync(): for row in input_file: # upper() is very important to comparison since Google # always return uppercase serials - serialnumber = row[serialnumber_column].strip().upper() - local_device = {'serialNumber': serialnumber} + local_device = {'serialNumber': row[serialnumber_column].strip().upper()} if static_devicetype: local_device['deviceType'] = static_devicetype else: @@ -294,10 +298,10 @@ def sync(): remote_device_map = {} for remote_device in remote_devices: sn = remote_device['serialNumber'] - last_sync = remote_device.pop('lastSyncTime') + last_sync = remote_device.pop('lastSyncTime', NEVER_TIME_NOMS) name = remote_device.pop('name') remote_device_map[sn] = {'name': name} - if last_sync == '1970-01-01T00:00:00Z': + if last_sync == NEVER_TIME_NOMS: remote_device_map[sn]['unassigned'] = True devices_to_add = [device for device in local_devices if device not in remote_devices] missing_devices = [device for device in remote_devices if device not in local_devices] diff --git a/src/gam/var.py b/src/gam/var.py index 58b94014..35217bab 100644 --- a/src/gam/var.py +++ b/src/gam/var.py @@ -1359,6 +1359,7 @@ GC_VAR_INFO = { # Google API constants NEVER_TIME = '1970-01-01T00:00:00.000Z' +NEVER_TIME_NOMS = '1970-01-01T00:00:00Z' ROLE_MANAGER = 'MANAGER' ROLE_MEMBER = 'MEMBER' ROLE_OWNER = 'OWNER'