use of com.emc.storageos.db.client.model.Task in project coprhd-controller by CoprHD.
the class TaskMapper method toCompletedTask.
/**
* Generate a task that is a complete state. This could be used for cases where the operation
* does not need to go the controller. That is, it's completed within in the API layer.
*
* @param resource
* [in] - DataObject, ViPR model object
* @param taskId
* [in] - String task identifier
* @param operation
* [in] - Operation
* @return TaskResourceRep representing a Task that is completed.
*/
public static TaskResourceRep toCompletedTask(DataObject resource, String taskId, Operation operation) {
Task task = operation.getTask(resource.getId());
if (task != null) {
task.setProgress(100);
task.setStatus(Operation.Status.ready.name());
getConfig().getDbClient().persistObject(task);
return toTask(task);
} else {
// It wasn't recently serialized, so fallback to looking for the task in the DB
task = TaskUtils.findTaskForRequestId(getConfig().getDbClient(), resource.getId(), taskId);
if (task != null) {
task.setProgress(100);
task.setStatus(Operation.Status.ready.name());
getConfig().getDbClient().persistObject(task);
return toTask(task);
} else {
throw new IllegalStateException(String.format("Task not found for resource %s, op %s in either the operation or the database", resource.getId(), taskId));
}
}
}
use of com.emc.storageos.db.client.model.Task in project coprhd-controller by CoprHD.
the class TaskUtils method findTaskForRequestId.
public static Task findTaskForRequestId(DbClient dbClient, URI resourceId, String requestId) {
URIQueryResultList results = new URIQueryResultList();
dbClient.queryByConstraint(AlternateIdConstraint.Factory.getTasksByRequestIdConstraint(requestId), results);
Iterator<URI> it = results.iterator();
while (it.hasNext()) {
Task task = dbClient.queryObject(Task.class, it.next());
if (task.getResource().getURI().equals(resourceId)) {
return task;
}
}
return null;
}
use of com.emc.storageos.db.client.model.Task in project coprhd-controller by CoprHD.
the class TaskUtils method getTasks.
private static List<Task> getTasks(DbClient dbClient, Constraint constraint) {
URIQueryResultList results = new URIQueryResultList();
dbClient.queryByConstraint(constraint, results);
List<Task> tasks = Lists.newArrayList();
Iterator<URI> it = results.iterator();
while (it.hasNext()) {
Task task = dbClient.queryObject(Task.class, it.next());
if (task != null) {
tasks.add(task);
}
}
return tasks;
}
use of com.emc.storageos.db.client.model.Task in project coprhd-controller by CoprHD.
the class TaskUtils method findTaskForRequestIdAssociatedResource.
public static Task findTaskForRequestIdAssociatedResource(DbClient dbClient, URI resourceId, String requestId) {
URIQueryResultList results = new URIQueryResultList();
dbClient.queryByConstraint(AlternateIdConstraint.Factory.getTasksByRequestIdConstraint(requestId), results);
Iterator<URI> it = results.iterator();
while (it.hasNext()) {
Task task = dbClient.queryObject(Task.class, it.next());
if (task.getAssociatedResourcesList().contains(resourceId)) {
return task;
}
}
return null;
}
use of com.emc.storageos.db.client.model.Task in project coprhd-controller by CoprHD.
the class TaskUtils method findTasksForRequestId.
public static List<Task> findTasksForRequestId(DbClient dbClient, String requestId) {
URIQueryResultList results = new URIQueryResultList();
dbClient.queryByConstraint(AlternateIdConstraint.Factory.getTasksByRequestIdConstraint(requestId), results);
List<Task> tasks = Lists.newArrayList();
Iterator<URI> it = results.iterator();
while (it.hasNext()) {
Task task = dbClient.queryObject(Task.class, it.next());
tasks.add(task);
}
return tasks;
}
Aggregations