/*
* Copyright (c) 2016 EMC
* All Rights Reserved
*/
package com.emc.sa.service.vipr.application.tasks;
import java.net.URI;
import java.util.List;
import com.emc.sa.service.vipr.tasks.WaitForTasks;
import com.emc.storageos.model.TaskList;
import com.emc.storageos.model.TaskResourceRep;
import com.emc.storageos.model.application.VolumeGroupSnapshotCreateParam;
import com.emc.vipr.client.Tasks;
public class CreateSnapshotForApplication extends WaitForTasks<TaskResourceRep> {
private final URI applicationId;
private final String name;
private final Boolean readOnly;
private final List<URI> volumes;
public CreateSnapshotForApplication(URI applicationId, List<URI> volumes, String name, Boolean readOnly) {
this.applicationId = applicationId;
this.name = name;
this.readOnly = readOnly;
this.volumes = volumes;
provideDetailArgs(applicationId, name);
}
@Override
protected Tasks<TaskResourceRep> doExecute() throws Exception {
VolumeGroupSnapshotCreateParam input = new VolumeGroupSnapshotCreateParam();
input.setName(name);
input.setVolumes(volumes);
input.setPartial(true);
input.setReadOnly(readOnly);
TaskList taskList = getClient().application().createSnapshotOfApplication(applicationId, input);
return new Tasks<TaskResourceRep>(getClient().auth().getClient(), taskList.getTaskList(),
TaskResourceRep.class);
}
}