diff options
-rw-r--r-- | configserver/src/main/java/com/yahoo/vespa/config/server/Rotations.java | 8 | ||||
-rw-r--r-- | zkfacade/src/main/java/com/yahoo/vespa/curator/transaction/CuratorTransaction.java | 5 |
2 files changed, 10 insertions, 3 deletions
diff --git a/configserver/src/main/java/com/yahoo/vespa/config/server/Rotations.java b/configserver/src/main/java/com/yahoo/vespa/config/server/Rotations.java index 54d522e0d63..b8a0d344f09 100644 --- a/configserver/src/main/java/com/yahoo/vespa/config/server/Rotations.java +++ b/configserver/src/main/java/com/yahoo/vespa/config/server/Rotations.java @@ -66,10 +66,12 @@ public class Rotations { } } - /** Returns a transaction which deletes these rotations */ + /** Returns a transaction which deletes these rotations if they exist */ public CuratorTransaction delete(ApplicationId applicationId) { - return CuratorTransaction.from(CuratorOperations.delete(path.append(applicationId.serializedForm()).getAbsolute()), - curator); + Path rotationsPath = path.append(applicationId.serializedForm()); + if ( ! curator.exists(rotationsPath)) return CuratorTransaction.empty(curator); + + return CuratorTransaction.from(CuratorOperations.deleteOrThrow(rotationsPath.getAbsolute()), curator); } } diff --git a/zkfacade/src/main/java/com/yahoo/vespa/curator/transaction/CuratorTransaction.java b/zkfacade/src/main/java/com/yahoo/vespa/curator/transaction/CuratorTransaction.java index 5624f103210..c0d4843f435 100644 --- a/zkfacade/src/main/java/com/yahoo/vespa/curator/transaction/CuratorTransaction.java +++ b/zkfacade/src/main/java/com/yahoo/vespa/curator/transaction/CuratorTransaction.java @@ -19,6 +19,11 @@ public class CuratorTransaction extends AbstractTransaction<CuratorOperation> { this.curator = curator; } + /** Returns an empty curator transaction */ + public static CuratorTransaction empty(Curator curator) { + return new CuratorTransaction(curator); + } + /** Returns a curator transaction having a single operation */ public static CuratorTransaction from(CuratorOperation operation, Curator curator) { CuratorTransaction transaction = new CuratorTransaction(curator); |