/*
* Copyright (c) 2016-2017
* All Rights Reserved
*/
package com.emc.sa.service.vipr.tasks;
import com.emc.sa.engine.ExecutionTask;
import com.emc.sa.engine.ExecutionUtils;
import com.emc.storageos.db.client.model.Cluster;
public class AcquireClusterLock extends ExecutionTask<Void> {
private Cluster cluster;
public AcquireClusterLock(Cluster cluster) {
this.cluster = cluster;
provideDetailArgs(cluster.getLabel(), cluster.getId());
}
@Override
public void execute() throws Exception {
acquireClusterLock();
}
private void acquireClusterLock() {
if (cluster != null) {
String lockName = cluster.getId().toString();
if (!ExecutionUtils.acquireLock(lockName)) {
throw stateException("AcquireHostLock.illegalState.failedClusterLock", lockName);
}
}
}
}