diff options
Diffstat (limited to 'node-repository/src/main/java/com/yahoo/vespa/hosted/provision/os/CompositeOsUpgrader.java')
-rw-r--r-- | node-repository/src/main/java/com/yahoo/vespa/hosted/provision/os/CompositeOsUpgrader.java | 28 |
1 files changed, 28 insertions, 0 deletions
diff --git a/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/os/CompositeOsUpgrader.java b/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/os/CompositeOsUpgrader.java new file mode 100644 index 00000000000..7aaf37a8ee6 --- /dev/null +++ b/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/os/CompositeOsUpgrader.java @@ -0,0 +1,28 @@ +package com.yahoo.vespa.hosted.provision.os; + +import com.yahoo.config.provision.NodeType; + +import java.util.List; + +/** + * An implementation of {@link OsUpgrader} that delegates calls to multiple implementations. + * + * @author mpolden + */ +public record CompositeOsUpgrader(List<OsUpgrader> upgraders) implements OsUpgrader { + + public CompositeOsUpgrader(List<OsUpgrader> upgraders) { + this.upgraders = List.copyOf(upgraders); + } + + @Override + public void upgradeTo(OsVersionTarget target) { + upgraders.forEach(upgrader -> upgrader.upgradeTo(target)); + } + + @Override + public void disableUpgrade(NodeType type) { + upgraders.forEach(upgrader -> upgrader.disableUpgrade(type)); + } + +} |