summaryrefslogtreecommitdiffstats
path: root/config-provisioning/src/main/java/com/yahoo/config/provision/Provisioner.java
diff options
context:
space:
mode:
Diffstat (limited to 'config-provisioning/src/main/java/com/yahoo/config/provision/Provisioner.java')
-rw-r--r--config-provisioning/src/main/java/com/yahoo/config/provision/Provisioner.java22
1 files changed, 22 insertions, 0 deletions
diff --git a/config-provisioning/src/main/java/com/yahoo/config/provision/Provisioner.java b/config-provisioning/src/main/java/com/yahoo/config/provision/Provisioner.java
index 2a1528f5368..1eb2c1e61b2 100644
--- a/config-provisioning/src/main/java/com/yahoo/config/provision/Provisioner.java
+++ b/config-provisioning/src/main/java/com/yahoo/config/provision/Provisioner.java
@@ -31,17 +31,36 @@ public interface Provisioner {
* @param application The {@link ApplicationId} that was activated.
* @param hosts a set of {@link HostSpec}.
*/
+ // TODO(mpolden): Remove
void activate(NestedTransaction transaction, ApplicationId application, Collection<HostSpec> hosts);
/**
+ * Activates the allocation of nodes to this application captured in the hosts argument.
+ *
+ * @param transaction Transaction with operations to commit together with any operations done within the provisioner.
+ * @param hosts a set of {@link HostSpec}.
+ * @param lock A provision lock for the relevant application. This must be held when calling this.
+ */
+ void activate(NestedTransaction transaction, Collection<HostSpec> hosts, ProvisionLock lock);
+
+ /**
* Transactionally remove this application.
*
* @param transaction Transaction with operations to commit together with any operations done within the provisioner.
* @param application the application to remove
*/
+ // TODO(mpolden): Remove
void remove(NestedTransaction transaction, ApplicationId application);
/**
+ * Transactionally remove application guarded by given lock.
+ *
+ * @param transaction Transaction with operations to commit together with any operations done within the provisioner.
+ * @param lock A provision lock for the relevant application. This must be held when calling this.
+ */
+ void remove(NestedTransaction transaction, ProvisionLock lock);
+
+ /**
* Requests a restart of the services of the given application
*
* @param application the application to restart
@@ -49,4 +68,7 @@ public interface Provisioner {
*/
void restart(ApplicationId application, HostFilter filter);
+ /** Returns a provision lock for the given application */
+ ProvisionLock lock(ApplicationId application);
+
}