diff options
author | qfel@google.com <qfel@google.com@0039d316-1c4b-4281-b951-d872f2087c98> | 2012-09-20 16:44:32 +0000 |
---|---|---|
committer | qfel@google.com <qfel@google.com@0039d316-1c4b-4281-b951-d872f2087c98> | 2012-09-20 16:44:32 +0000 |
commit | e908adf3342afe0848d9e92a217502fafdecfd02 (patch) | |
tree | e9b0f9e349162594f8105ae21ceead2d3b23fd5c /chrome/tools | |
parent | 33e61c4ffb56cdbac3aab3a24fa793da1719f84a (diff) | |
download | chromium_src-e908adf3342afe0848d9e92a217502fafdecfd02.zip chromium_src-e908adf3342afe0848d9e92a217502fafdecfd02.tar.gz chromium_src-e908adf3342afe0848d9e92a217502fafdecfd02.tar.bz2 |
Record policy usage statistics every 24 hours.
BUG=100869
Review URL: https://chromiumcodereview.appspot.com/10916235
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@157786 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/tools')
-rwxr-xr-x | chrome/tools/build/generate_policy_source.py | 57 |
1 files changed, 25 insertions, 32 deletions
diff --git a/chrome/tools/build/generate_policy_source.py b/chrome/tools/build/generate_policy_source.py index 47d7ad2..6549f50 100755 --- a/chrome/tools/build/generate_policy_source.py +++ b/chrome/tools/build/generate_policy_source.py @@ -11,6 +11,7 @@ chromium_os_flag should be 1 if this is a Chromium OS build template is the path to a .json policy template file.''' from __future__ import with_statement +from collections import namedtuple from optparse import OptionParser import re import sys @@ -32,6 +33,10 @@ TYPE_MAP = { 'string-enum': 'TYPE_STRING', } +PolicyDetails = namedtuple( + 'PolicyDetails', + 'id name vtype platforms is_deprecated is_device_policy') + def main(): parser = OptionParser(usage=__doc__) @@ -107,8 +112,7 @@ def _RemovePlaceholders(text): return result; -# Returns a tuple with details about the given policy: -# (name, type, list_of_platforms, is_deprecated, is_device_policy) +# Returns a PolicyDetails named tuple with details about the given policy. def _GetPolicyDetails(policy): name = policy['name'] if not TYPE_MAP.has_key(policy['type']): @@ -119,7 +123,10 @@ def _GetPolicyDetails(policy): platforms = [ x.split(':')[0] for x in policy['supported_on'] ] is_deprecated = policy.get('deprecated', False) is_device_policy = policy.get('device_only', False) - return (name, vtype, platforms, is_deprecated, is_device_policy) + return PolicyDetails(name=name, vtype=vtype, platforms=platforms, + is_deprecated=is_deprecated, id=policy['id'], + is_device_policy=is_device_policy) + def _GetPolicyList(template_file_contents): policies = [] @@ -129,27 +136,10 @@ def _GetPolicyList(template_file_contents): policies.append(_GetPolicyDetails(sub_policy)) else: policies.append(_GetPolicyDetails(policy)) - # Tuples are sorted in lexicographical order, which will sort by policy name - # in this case. - policies.sort() + policies.sort(key=lambda policy: policy.name) return policies -def _GetPolicyNameList(template_file_contents): - return [name for (name, _, _, _, _) in _GetPolicyList(template_file_contents)] - -def _GetChromePolicyList(template_file_contents): - return [(name, platforms, vtype, is_device_policy) - for (name, vtype, platforms, _, is_device_policy) - in _GetPolicyList(template_file_contents)] - - -def _GetDeprecatedPolicyList(template_file_contents): - return [name for (name, _, _, is_deprecated, _) - in _GetPolicyList(template_file_contents) - if is_deprecated] - - def _LoadJSONFile(json_file): with open(json_file, 'r') as f: text = f.read() @@ -186,6 +176,7 @@ def _WritePolicyConstantHeader(template_file_contents, args, opts): ' const char* name;\n' ' base::Value::Type value_type;\n' ' bool device_policy;\n' + ' int id;\n' ' };\n' '\n' ' const Entry* begin;\n' @@ -199,8 +190,8 @@ def _WritePolicyConstantHeader(template_file_contents, args, opts): 'const PolicyDefinitionList* GetChromePolicyDefinitionList();\n\n') f.write('// Key names for the policy settings.\n' 'namespace key {\n\n') - for policy_name in _GetPolicyNameList(template_file_contents): - f.write('extern const char k' + policy_name + '[];\n') + for policy in _GetPolicyList(template_file_contents): + f.write('extern const char k' + policy.name + '[];\n') f.write('\n} // namespace key\n\n' '} // namespace policy\n\n' '#endif // CHROME_COMMON_POLICY_CONSTANTS_H_\n') @@ -229,11 +220,12 @@ def _WritePolicyConstantSource(template_file_contents, args, opts): f.write('namespace {\n\n') f.write('const PolicyDefinitionList::Entry kEntries[] = {\n') - policy_list = _GetChromePolicyList(template_file_contents) - for (name, platforms, vtype, device_policy) in policy_list: - if (platform in platforms) or (platform_wildcard in platforms): - f.write(' { key::k%s, Value::%s, %s },\n' % - (name, vtype, 'true' if device_policy else 'false')) + for policy in _GetPolicyList(template_file_contents): + if (platform in policy.platforms) or \ + (platform_wildcard in policy.platforms): + f.write(' { key::k%s, Value::%s, %s, %s },\n' % + (policy.name, policy.vtype, + 'true' if policy.is_device_policy else 'false', policy.id)) f.write('};\n\n') f.write('const PolicyDefinitionList kChromePolicyList = {\n' @@ -243,8 +235,9 @@ def _WritePolicyConstantSource(template_file_contents, args, opts): f.write('// List of deprecated policies.\n' 'const char* kDeprecatedPolicyList[] = {\n') - for name in _GetDeprecatedPolicyList(template_file_contents): - f.write(' key::k%s,\n' % name) + for policy in _GetPolicyList(template_file_contents): + if policy.is_deprecated: + f.write(' key::k%s,\n' % policy.name) f.write('};\n\n') f.write('} // namespace\n\n') @@ -276,8 +269,8 @@ def _WritePolicyConstantSource(template_file_contents, args, opts): '}\n\n') f.write('namespace key {\n\n') - for policy_name in _GetPolicyNameList(template_file_contents): - f.write('const char k%s[] = "%s";\n' % (policy_name, policy_name)) + for policy in _GetPolicyList(template_file_contents): + f.write('const char k{name}[] = "{name}";\n'.format(name=policy.name)) f.write('\n} // namespace key\n\n' '} // namespace policy\n') |