Commit f9a36f3a authored by Tien Mai's avatar Tien Mai Committed by Commit Bot

Update extension query scripts to fix some bugs.

Change-Id: Ib59e7384ad52409fbeb7ee32e8742810858b41b8
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2254458Reviewed-by: default avatarOwen Min <zmin@chromium.org>
Commit-Queue: Owen Min <zmin@chromium.org>
Auto-Submit: Tien Mai <tienmai@chromium.org>
Cr-Commit-Position: refs/heads/master@{#780440}
parent 7755deb8
#!/usr/bin/env python #!/usr/bin/env python
# Copyright (c) 2020 The Chromium Authors. All rights reserved. # Copyright 2020 The Chromium Authors. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be # Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file. # found in the LICENSE file.
"""Transform CBCM Takeout API Data (Python3).""" """Transform CBCM Takeout API Data (Python3)."""
...@@ -8,6 +8,7 @@ import argparse ...@@ -8,6 +8,7 @@ import argparse
import csv import csv
import json import json
import sys import sys
import time
import google_auth_httplib2 import google_auth_httplib2
...@@ -41,26 +42,20 @@ def ComputeExtensionsList(extensions_list, data): ...@@ -41,26 +42,20 @@ def ComputeExtensionsList(extensions_list, data):
key = key + ' @ ' + extension['version'] key = key + ' @ ' + extension['version']
if key not in extensions_list: if key not in extensions_list:
current_extension = { current_extension = {
'name': 'name': extension.get('name', ''),
extension['name'], 'permissions': extension.get('permissions', ''),
'permissions': 'installed': set(),
extension['permissions'] 'disabled': set(),
if 'permissions' in extension else '', 'forced': set()
'installed':
set(),
'disabled':
set(),
'forced':
set()
} }
else: else:
current_extension = extensions_list[key] current_extension = extensions_list[key]
machine_name = device['machineName'] machine_name = device['machineName']
current_extension['installed'].add(machine_name) current_extension['installed'].add(machine_name)
if 'installType' in extension and extension['installType'] == 3: if extension.get('installType', '') == 'ADMIN':
current_extension['forced'].add(machine_name) current_extension['forced'].add(machine_name)
if 'disabled' in extension and extension['disabled']: if extension.get('disabled', False):
current_extension['disabled'].add(machine_name) current_extension['disabled'].add(machine_name)
extensions_list[key] = current_extension extensions_list[key] = current_extension
...@@ -170,11 +165,21 @@ def main(args): ...@@ -170,11 +165,21 @@ def main(args):
browsers_processed = 0 browsers_processed = 0
while True: while True:
print('Making request to server ...') print('Making request to server ...')
retrycount = 0
while retrycount < 5:
response = http.request(base_request_url + '?' + request_parameters, response = http.request(base_request_url + '?' + request_parameters,
'GET')[1] 'GET')[1]
if isinstance(response, bytes): if isinstance(response, bytes):
response = response.decode('utf-8') response = response.decode('utf-8')
data = json.loads(response) data = json.loads(response)
if 'browsers' not in data:
print('Response error, retrying...')
time.sleep(3)
retrycount += 1
else:
break
browsers_in_data = len(data['browsers']) browsers_in_data = len(data['browsers'])
print('Request returned %s results, analyzing ...' % (browsers_in_data)) print('Request returned %s results, analyzing ...' % (browsers_in_data))
......
#!/usr/bin/env python #!/usr/bin/env python
# Copyright (c) 2020 The Chromium Authors. All rights reserved. # Copyright 2020 The Chromium Authors. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be # Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file. # found in the LICENSE file.
"""Transform CBCM Takeout API Data (Python2).""" """Transform CBCM Takeout API Data (Python2)."""
from __future__ import print_function from __future__ import print_function
...@@ -44,30 +43,25 @@ def ComputeExtensionsList(extensions_list, data): ...@@ -44,30 +43,25 @@ def ComputeExtensionsList(extensions_list, data):
key = key + ' @ ' + extension['version'] key = key + ' @ ' + extension['version']
if key not in extensions_list: if key not in extensions_list:
current_extension = { current_extension = {
'name': 'name': extension.get('name', ''),
extension['name'], 'permissions': extension.get('permissions', ''),
'permissions': 'installed': set(),
extension['permissions'] 'disabled': set(),
if 'permissions' in extension else '', 'forced': set()
'installed':
set(),
'disabled':
set(),
'forced':
set()
} }
else: else:
current_extension = extensions_list[key] current_extension = extensions_list[key]
machine_name = device['machineName'] machine_name = device['machineName']
current_extension['installed'].add(machine_name) current_extension['installed'].add(machine_name)
if 'installType' in extension and extension['installType'] == 3: if extension.get('installType', '') == 'ADMIN':
current_extension['forced'].add(machine_name) current_extension['forced'].add(machine_name)
if 'disabled' in extension and extension['disabled']: if extension.get('disabled', False):
current_extension['disabled'].add(machine_name) current_extension['disabled'].add(machine_name)
extensions_list[key] = current_extension extensions_list[key] = current_extension
def ToUtf8(data): def ToUtf8(data):
"""Ensures all the values in |data| are encoded as UTF-8. """Ensures all the values in |data| are encoded as UTF-8.
...@@ -84,6 +78,7 @@ def ToUtf8(data): ...@@ -84,6 +78,7 @@ def ToUtf8(data):
entry[prop] = unicode(value).encode('utf-8') entry[prop] = unicode(value).encode('utf-8')
yield entry yield entry
def DictToList(data, key_name='id'): def DictToList(data, key_name='id'):
"""Converts a dict into a list. """Converts a dict into a list.
...@@ -181,9 +176,18 @@ def main(args): ...@@ -181,9 +176,18 @@ def main(args):
browsers_processed = 0 browsers_processed = 0
while True: while True:
print('Making request to server ...') print('Making request to server ...')
retrycount = 0
while retrycount < 5:
data = json.loads( data = json.loads(
http.request(base_request_url + '?' + request_parameters, 'GET')[1]) http.request(base_request_url + '?' + request_parameters, 'GET')[1])
if 'browsers' not in data:
print('Response error, retrying...')
time.sleep(3)
retrycount += 1
else:
break
browsers_in_data = len(data['browsers']) browsers_in_data = len(data['browsers'])
print('Request returned %s results, analyzing ...' % (browsers_in_data)) print('Request returned %s results, analyzing ...' % (browsers_in_data))
ComputeExtensionsList(extensions_list, data) ComputeExtensionsList(extensions_list, data)
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment