/* * Copyright (c) 2012 EMC Corporation * All Rights Reserved */ package com.emc.storageos.volumecontroller.impl.plugins.discovery.smis; import java.io.Serializable; import com.emc.storageos.db.client.DbClient; import com.emc.storageos.db.client.model.DataObject; import com.emc.storageos.exceptions.DeviceControllerException; import com.emc.storageos.svcs.errorhandling.model.ServiceCoded; import org.slf4j.Logger; import org.slf4j.LoggerFactory; /** * Job for Discover. */ public class DataCollectionDiscoverJob extends DataCollectionJob implements Serializable { private static final long serialVersionUID = -4345688816281981819L; private static final Logger logger = LoggerFactory .getLogger(DataCollectionDiscoverJob.class); private final DataCollectionTaskCompleter _completer; private String _namespace; public DataCollectionDiscoverJob(DiscoverTaskCompleter completer, String namespace) { this(completer, JobOrigin.USER_API, namespace); } DataCollectionDiscoverJob(DiscoverTaskCompleter completer, JobOrigin origin, String namespace) { super(origin); _completer = completer; _namespace = namespace; } @Override public DataCollectionTaskCompleter getCompleter() { return _completer; } @Override public void ready(DbClient dbClient) throws DeviceControllerException { _completer.ready(dbClient); } @Override public void error(DbClient dbClient, ServiceCoded serviceCoded) throws DeviceControllerException { _completer.error(dbClient, serviceCoded); } @Override public void schedule(DbClient dbClient) { _completer.schedule(dbClient); } @Override final public void setTaskError(DbClient dbClient, ServiceCoded code) { _completer.statusError(dbClient, code); } @Override final public void setTaskReady(DbClient dbClient, String message) { _completer.statusReady(dbClient, message); } @Override final public void updateTask(DbClient dbClient, String message) { _completer.statusPending(dbClient, message); } public String getType() { return _completer.getJobType(); } public String systemString() { String sys = null; try { sys = getCompleter().getId().toString(); } catch (Exception ex) { logger.error("Exception occurred while geting system id from completer", ex); } return sys; } public String getNamespace() { return _namespace; } public boolean isActiveJob(DbClient dbClient) { DataObject dbObject = dbClient.queryObject(_completer.getType(), _completer.getId()); return (dbObject != null && !dbObject.getInactive()) ? true : false; } }