diff options
author | Håkon Hallingstad <hakon@verizonmedia.com> | 2020-04-21 09:48:50 +0200 |
---|---|---|
committer | Håkon Hallingstad <hakon@verizonmedia.com> | 2020-04-21 09:48:50 +0200 |
commit | 22af0d12336a8ea7de75eebb36922d252e2bc84b (patch) | |
tree | 171f43e960abe9221419859d65035b904fa64a2b /controller-server/src/main/java | |
parent | 9ab0ef70e9ed4f422df67603f26bcb0c7918fdc4 (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.java | 25 |
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)); |