/*
* Copyright (c) 2012-2015 iWave Software LLC
* All Rights Reserved
*/
package com.emc.sa.service.vipr.compute.tasks;
import java.net.URI;
import com.emc.sa.service.vipr.tasks.ViPRExecutionTask;
import com.emc.storageos.db.client.model.Host;
import com.emc.storageos.model.host.HostRestRep;
import com.emc.storageos.model.host.HostUpdateParam;
import com.emc.vipr.client.Task;
public class SetBootVolume extends ViPRExecutionTask<Task<HostRestRep>> {
private URI hostId;
private URI volumeId;
private boolean updateSanBootTargets = false;
public SetBootVolume(Host host, URI volumeId, boolean updateSanBootTargets) {
this.hostId = host.getId();
this.volumeId = volumeId;
this.updateSanBootTargets = updateSanBootTargets;
provideDetailArgs(host.getHostName(), volumeId);
}
public SetBootVolume(HostRestRep host, URI volumeId) {
this.hostId = host.getId();
this.volumeId = volumeId;
provideDetailArgs(host.getHostName(), volumeId);
}
@Override
public Task<HostRestRep> executeTask() throws Exception {
HostUpdateParam update = new HostUpdateParam();
update.setBootVolume(volumeId);
update.setUpdateSanBootTargets(updateSanBootTargets);
Task<HostRestRep> task = getClient().hosts().updateBootVolume(hostId, update);
addOrderIdTag(task.getTaskResource().getId());
return task;
}
}