/*
* Copyright (c) 2008-2015 EMC Corporation
* All Rights Reserved
*/
package com.emc.storageos.systemservices.impl.jobs.consumer;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import com.emc.storageos.coordinator.client.service.DistributedQueueItemProcessedCallback;
import com.emc.storageos.coordinator.client.service.impl.DistributedQueueConsumer;
import com.emc.storageos.systemservices.impl.jobs.backupscheduler.BackupScheduler;
import com.emc.vipr.model.sys.backup.BackupUploadStatus;
public class BackupUploadJobConsumer extends DistributedQueueConsumer<BackupUploadStatus> {
private static final Logger log = LoggerFactory.getLogger(BackupUploadJobConsumer.class);
private BackupScheduler backupScheduler;
/**
* Sets backup scheduler client
*
* @param backupScheduler the backup scheduler client instance
*/
public void setBackupScheduler(BackupScheduler backupScheduler) {
this.backupScheduler = backupScheduler;
}
@Override
public void consumeItem(BackupUploadStatus job, DistributedQueueItemProcessedCallback callback) throws Exception {
try {
log.info("Upload backup({}) begin", job.getBackupName());
backupScheduler.getUploadExecutor().upload(job.getBackupName(), false);
log.info("Upload backup({}) finish", job.getBackupName());
} catch (Exception e) {
log.error("Upload backup({}) failed", job.getBackupName(), e);
} finally {
callback.itemProcessed();
log.info("Upload backup job done");
}
}
}