summaryrefslogtreecommitdiffstats
path: root/controller-server/src/main/java
diff options
context:
space:
mode:
authorHåkon Hallingstad <hakon@verizonmedia.com>2020-04-21 09:48:50 +0200
committerHåkon Hallingstad <hakon@verizonmedia.com>2020-04-21 09:48:50 +0200
commit22af0d12336a8ea7de75eebb36922d252e2bc84b (patch)
tree171f43e960abe9221419859d65035b904fa64a2b /controller-server/src/main/java
parent9ab0ef70e9ed4f422df67603f26bcb0c7918fdc4 (diff)
Require flag to be defined in target zone
Diffstat (limited to 'controller-server/src/main/java')
-rw-r--r--controller-server/src/main/java/com/yahoo/vespa/hosted/controller/restapi/systemflags/SystemFlagsDeployer.java25
1 files changed, 19 insertions, 6 deletions
diff --git a/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/restapi/systemflags/SystemFlagsDeployer.java b/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/restapi/systemflags/SystemFlagsDeployer.java
index 820384ce810..9bd3b70cfab 100644
--- a/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/restapi/systemflags/SystemFlagsDeployer.java
+++ b/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/restapi/systemflags/SystemFlagsDeployer.java
@@ -96,7 +96,8 @@ class SystemFlagsDeployer {
createNewFlagData(target, dryRun, wantedFlagData, currentFlagData, results, errors);
updateExistingFlagData(target, dryRun, wantedFlagData, currentFlagData, results, errors);
removeOldFlagData(target, dryRun, wantedFlagData, currentFlagData, results, errors);
- warnOnFlagDataForUndefinedFlags(target, wantedFlagData, currentFlagData, definedFlags, warnings);
+ failOnNewFlagDataForUndefinedFlags(target, wantedFlagData, currentFlagData, definedFlags, errors);
+ warnOnExistingFlagDataForUndefinedFlags(target, wantedFlagData, currentFlagData, definedFlags, warnings);
return new SystemFlagsDeployResult(results, errors, warnings);
}
@@ -175,11 +176,23 @@ class SystemFlagsDeployer {
});
}
- private static void warnOnFlagDataForUndefinedFlags(FlagsTarget target,
- Map<FlagId, FlagData> wantedFlagData,
- Map<FlagId, FlagData> currentFlagData,
- List<FlagId> definedFlags,
- List<Warning> warnings) {
+ private static void failOnNewFlagDataForUndefinedFlags(FlagsTarget target,
+ Map<FlagId, FlagData> wantedFlagData,
+ Map<FlagId, FlagData> currentFlagData,
+ List<FlagId> definedFlags,
+ List<OperationError> errors) {
+ for (FlagId flagId : wantedFlagData.keySet()) {
+ if (!currentFlagData.containsKey(flagId) && !definedFlags.contains(flagId)) {
+ errors.add(OperationError.createFailed("Flag not defined in target zone", target, wantedFlagData.get(flagId)));
+ }
+ }
+ }
+
+ private static void warnOnExistingFlagDataForUndefinedFlags(FlagsTarget target,
+ Map<FlagId, FlagData> wantedFlagData,
+ Map<FlagId, FlagData> currentFlagData,
+ List<FlagId> definedFlags,
+ List<Warning> warnings) {
for (FlagId flagId : currentFlagData.keySet()) {
if (wantedFlagData.containsKey(flagId) && !definedFlags.contains(flagId)) {
warnings.add(Warning.dataForUndefinedFlag(target, flagId));