/*
* Copyright (c) 2012-2015 iWave Software LLC
* All Rights Reserved
*/
package com.emc.sa.service.vmware.tasks;
import javax.inject.Inject;
import com.iwave.ext.vmware.VCenterAPI;
import com.iwave.ext.vmware.VMWareException;
import com.vmware.vim25.mo.Datastore;
public class FindDatastore extends RetryableTask<Datastore> {
@Inject
private VCenterAPI vcenter;
private String datacenterName;
private String datastoreName;
public FindDatastore(String datacenterName, String datastoreName) {
this.datacenterName = datacenterName;
this.datastoreName = datastoreName;
provideDetailArgs(datastoreName, datacenterName);
}
@Override
protected Datastore tryExecute() {
debug("Executing: %s", getDetail());
Datastore datastore = vcenter.findDatastore(datacenterName, datastoreName);
if (datastore == null) {
throw new VMWareException(
String.format("Unable to find datastore %s in datacenter %s", datastoreName, datacenterName));
}
return datastore;
}
@Override
protected boolean canRetry(VMWareException e) {
return true;
}
}