release_config: cleanup how default values are used

Set the flag value to the default value, rather than waiting until the
end to check if it was set anywhere.

This matters when the flag is declared `appends=True`.

Bug: none
Test: manual
Ignore-AOSP-First: Will CP, testing on internal first.
Change-Id: I8384cf8e0e0caedb5fb5a343f8be23f37bf4dc87
Merged-In: I8384cf8e0e0caedb5fb5a343f8be23f37bf4dc87
This commit is contained in:
LaMont Jones
2024-03-27 17:37:32 -07:00
parent f8e7919759
commit 979c1bdfc4

View File

@@ -179,18 +179,23 @@ def release_config(all_flags, all_values):
validate(all_flags, _all_flags_schema) validate(all_flags, _all_flags_schema)
validate(all_values, _all_values_schema) validate(all_values, _all_values_schema)
# Final values.
values = {}
# Validate flags # Validate flags
flag_names = [] flag_names = []
flags_dict = {} flags_dict = {}
for flag in all_flags: for flag in all_flags:
if flag["name"] in flag_names: name = flag["name"]
if equal_flag_declaration(flag, flags_dict[flag["name"]]): if name in flag_names:
if equal_flag_declaration(flag, flags_dict[name]):
continue continue
else: else:
fail(flag["declared_in"] + ": Duplicate declaration of flag " + flag["name"] + fail(flag["declared_in"] + ": Duplicate declaration of flag " + name +
" (declared first in " + flags_dict[flag["name"]]["declared_in"] + ")") " (declared first in " + flags_dict[name]["declared_in"] + ")")
flag_names.append(flag["name"]) flag_names.append(name)
flags_dict[flag["name"]] = flag flags_dict[name] = flag
# Set the flag value to the default value.
values[name] = {"name": name, "value": _format_value(flag["default"]), "set_in": flag["declared_in"]}
# Record which flags go on which partition # Record which flags go on which partition
partitions = {} partitions = {}
@@ -206,7 +211,6 @@ def release_config(all_flags, all_values):
# Generate final values. # Generate final values.
# Only declared flags may have a value. # Only declared flags may have a value.
values = {}
for value in all_values: for value in all_values:
name = value["name"] name = value["name"]
if name not in flag_names: if name not in flag_names:
@@ -227,19 +231,13 @@ def release_config(all_flags, all_values):
for partition, names in partitions.items(): for partition, names in partitions.items():
result["_ALL_RELEASE_FLAGS.PARTITIONS." + partition] = names result["_ALL_RELEASE_FLAGS.PARTITIONS." + partition] = names
for flag in all_flags: for flag in all_flags:
if flag["name"] in values: val = _format_value(values[flag["name"]]["value"])
val = values[flag["name"]]["value"]
set_in = values[flag["name"]]["set_in"]
else:
val = flag["default"]
set_in = flag["declared_in"]
val = _format_value(val)
result[flag["name"]] = val result[flag["name"]] = val
result["_ALL_RELEASE_FLAGS." + flag["name"] + ".PARTITIONS"] = flag["partitions"] result["_ALL_RELEASE_FLAGS." + flag["name"] + ".PARTITIONS"] = flag["partitions"]
result["_ALL_RELEASE_FLAGS." + flag["name"] + ".DEFAULT"] = _format_value(flag["default"]) result["_ALL_RELEASE_FLAGS." + flag["name"] + ".DEFAULT"] = _format_value(flag["default"])
result["_ALL_RELEASE_FLAGS." + flag["name"] + ".VALUE"] = val result["_ALL_RELEASE_FLAGS." + flag["name"] + ".VALUE"] = val
result["_ALL_RELEASE_FLAGS." + flag["name"] + ".DECLARED_IN"] = flag["declared_in"] result["_ALL_RELEASE_FLAGS." + flag["name"] + ".DECLARED_IN"] = flag["declared_in"]
result["_ALL_RELEASE_FLAGS." + flag["name"] + ".SET_IN"] = set_in result["_ALL_RELEASE_FLAGS." + flag["name"] + ".SET_IN"] = values[flag["name"]]["set_in"]
result["_ALL_RELEASE_FLAGS." + flag["name"] + ".ORIGIN"] = flag["origin"] result["_ALL_RELEASE_FLAGS." + flag["name"] + ".ORIGIN"] = flag["origin"]
return result return result