use of org.apache.cloudstack.backup.veeam.api.JobCloneSpec in project cloudstack by apache.
the class VeeamClient method cloneVeeamJob.
public boolean cloneVeeamJob(final Job parentJob, final String clonedJobName) {
LOG.debug("Trying to clone veeam job: " + parentJob.getUid() + " with backup uuid: " + clonedJobName);
try {
final Ref repositoryRef = listBackupRepository(parentJob.getBackupServerId(), parentJob.getName());
if (repositoryRef == null) {
throw new CloudRuntimeException(String.format("Failed to clone backup job because couldn't find any " + "repository associated with backup job [id: %s, uid: %s, backupServerId: %s, name: %s].", parentJob.getId(), parentJob.getUid(), parentJob.getBackupServerId(), parentJob.getName()));
}
final BackupJobCloneInfo cloneInfo = new BackupJobCloneInfo();
cloneInfo.setJobName(clonedJobName);
cloneInfo.setFolderName(clonedJobName);
cloneInfo.setRepositoryUid(repositoryRef.getUid());
final JobCloneSpec cloneSpec = new JobCloneSpec(cloneInfo);
final HttpResponse response = post(String.format("/jobs/%s?action=clone", parentJob.getId()), cloneSpec);
return checkTaskStatus(response);
} catch (final Exception e) {
LOG.warn("Exception caught while trying to clone Veeam job:", e);
}
return false;
}
Aggregations