/*
* 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.vmware.vim25.StoragePlacementResult;
import com.vmware.vim25.mo.Datastore;
import com.vmware.vim25.mo.Task;
public class EnterMaintenanceMode extends VMwareTask<Void> {
@Inject
private VCenterAPI vcenter;
private Datastore datastore;
public EnterMaintenanceMode(Datastore datastore) {
this.datastore = datastore;
provideDetailArgs(datastore.getName());
}
@Override
public void execute() throws Exception {
StoragePlacementResult result = datastore.datastoreEnterMaintenanceMode();
Task task = vcenter.lookupManagedObject(result.getTask());
try {
waitForTask(task);
} catch (Exception e) {
cancelTask(task);
throw e;
}
}
}