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', 'linux': 'linux',
'mac': 'mac', 'mac': 'mac',
'macarm64': 'mac_arm64', 'macarm64': 'mac_arm64',
'sebview': 'webview', 'webview': 'webview',
'win': 'win', 'win': 'win',
'win64': 'win64', 'win64': 'win64',
} }
@@ -39,6 +39,7 @@ CHROME_CHANNEL_CHOICE_MAP = {
'canary': 'canary', 'canary': 'canary',
'canaryasan': 'canary_asan', 'canaryasan': 'canary_asan',
'dev': 'dev', 'dev': 'dev',
'extended': 'extended',
'stable': 'stable', 'stable': 'stable',
} }

View File

@@ -1,5 +1,6 @@
"""Chrome Browser Cloud Management API calls""" """Chrome Browser Cloud Management API calls"""
import re
import sys import sys
import googleapiclient.errors import googleapiclient.errors
@@ -301,9 +302,20 @@ def update_policy():
value = value.split(',') value = value.split(',')
if myarg == 'chrome.users.chromebrowserupdates' and \ if myarg == 'chrome.users.chromebrowserupdates' and \
cased_field == 'targetVersionPrefixSetting': cased_field == 'targetVersionPrefixSetting':
if value.find('-') != -1: mg = re.compile(r'^([a-z]+)-(\d+)$').match(value)
channel, minus = value.split('-') if mg:
milestone = gapi_chromehistory.get_relative_milestone(channel, int(minus)) 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}.' value = f'{milestone}.'
body['requests'][-1]['policyValue']['value'][cased_field] = value body['requests'][-1]['policyValue']['value'][cased_field] = value
body['requests'][-1]['updateMask'] += f'{cased_field},' body['requests'][-1]['updateMask'] += f'{cased_field},'