/* * Copyright (c) 2008-2013 EMC Corporation * All Rights Reserved */ package com.emc.storageos.volumecontroller.impl.plugins.metering.file; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import com.emc.storageos.db.client.DbClient; import com.emc.storageos.db.client.model.FileShare; import com.emc.storageos.db.client.model.Stat; import com.emc.storageos.plugins.BaseCollectionException; import com.emc.storageos.plugins.metering.vnxfile.VNXFileConstants; import com.emc.storageos.plugins.metering.vnxfile.VNXFilePluginException; import com.emc.storageos.volumecontroller.impl.plugins.metering.CassandraInsertion; /** * * FileDBInsertion to populate the FileShare specific attributes in the Stat * object before inserting into db. * */ public class FileDBInsertion extends CassandraInsertion { /** * Logger to log messages. */ private Logger _logger = LoggerFactory.getLogger(FileDBInsertion.class); @Override public void injectColumnsDetails(final Stat statObj, final DbClient client) throws Exception { // resourceID query will be done before this, and its within each // plugin's processor code. final FileShare fileObj = client.queryObject(FileShare.class, statObj.getResourceId()); statObj.setProject(fileObj.getProject().getURI()); _logger.debug("Project :" + statObj.getProject()); statObj.setTenant(fileObj.getTenant().getURI()); _logger.debug("Tenant :" + statObj.getTenant()); statObj.setVirtualPool(fileObj.getVirtualPool()); statObj.setServiceType(VNXFileConstants.FILE); _logger.debug("VPool :" + statObj.getVirtualPool()); } @Override public void throwException(final Exception ex) throws BaseCollectionException { throw new VNXFilePluginException( "Exception occurred while inserting into cassandra.", ex.getCause()); } }