Validate chrome.users.chromebrowserupdates targetVersionPrefixSetting channel-offset (#1359)

* Validate chrome.users.chromebrowserupdates targetVersionPrefixSetting channel-offset

* Fix typo, add extended channel

Pass extended on to maintainer of :
https://developer.chrome.com/docs/versionhistory/reference/#channel-identifiers
This commit is contained in:
Ross Scroggs
2021-04-07 12:09:45 -07:00
committed by GitHub
parent 8682e66eb0
commit 4da4132220
2 changed files with 19 additions and 6 deletions

View File

@@ -29,7 +29,7 @@ CHROME_PLATFORM_CHOICE_MAP = {
'linux': 'linux',
'mac': 'mac',
'macarm64': 'mac_arm64',
'sebview': 'webview',
'webview': 'webview',
'win': 'win',
'win64': 'win64',
}
@@ -39,6 +39,7 @@ CHROME_CHANNEL_CHOICE_MAP = {
'canary': 'canary',
'canaryasan': 'canary_asan',
'dev': 'dev',
'extended': 'extended',
'stable': 'stable',
}

View File

@@ -1,5 +1,6 @@
"""Chrome Browser Cloud Management API calls"""
import re
import sys
import googleapiclient.errors
@@ -300,11 +301,22 @@ def update_policy():
elif vtype in ['TYPE_LIST']:
value = value.split(',')
if myarg == 'chrome.users.chromebrowserupdates' and \
cased_field == 'targetVersionPrefixSetting':
if value.find('-') != -1:
channel, minus = value.split('-')
milestone = gapi_chromehistory.get_relative_milestone(channel, int(minus))
value = f'{milestone}.'
cased_field == 'targetVersionPrefixSetting':
mg = re.compile(r'^([a-z]+)-(\d+)$').match(value)
if mg:
channel = mg.group(1).lower().replace('_', '')
minus = mg.group(2)
if channel not in gapi_chromehistory.CHROME_CHANNEL_CHOICE_MAP:
expected_channels = ', '.join(gapi_chromehistory.CHROME_CHANNEL_CHOICE_MAP)
msg = f'Expected {myarg} {cased_field} channel to be one of ' \
f'{expected_channels}, got {channel}'
controlflow.system_error_exit(8, msg)
milestone = gapi_chromehistory.get_relative_milestone(
gapi_chromehistory.CHROME_CHANNEL_CHOICE_MAP[channel], int(minus))
if not milestone:
msg = f'{myarg} {cased_field} channel {channel} offset {minus} does not exist'
controlflow.system_error_exit(8, msg)
value = f'{milestone}.'
body['requests'][-1]['policyValue']['value'][cased_field] = value
body['requests'][-1]['updateMask'] += f'{cased_field},'
i += 2