/*
* Copyright (c) 2014 EMC Corporation
* All Rights Reserved
*/
package com.emc.storageos.volumecontroller.impl.plugins.discovery.smis.processor;
import com.emc.storageos.db.client.DbClient;
import com.emc.storageos.db.client.constraint.AlternateIdConstraint;
import com.emc.storageos.db.client.constraint.URIQueryResultList;
import com.emc.storageos.db.client.model.AutoTieringPolicy;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
/**
* Class to provide some common code for use in creating AutoTieringPolicies
*/
public class AutoTieringPolicyProcessorHelper {
private final static Logger logger = LoggerFactory.getLogger(AutoTieringPolicyProcessorHelper.class);
/**
* Look up AutoTieringPolicy object by the given policyID. If found, return it, otherwise return null
*
* @param policyID [in] - Identifier for the policy
* @param dbClient [in] - Database client
* @return
*/
public static AutoTieringPolicy getAutoTieringPolicyByNameFromDB(String policyID, DbClient dbClient) {
AutoTieringPolicy policy = null;
try {
URIQueryResultList result = new URIQueryResultList();
dbClient.queryByConstraint(
AlternateIdConstraint.Factory.getAutoTieringPolicyByNativeGuidConstraint(policyID),
result);
while (result.iterator().hasNext()) {
policy = dbClient.queryObject(AutoTieringPolicy.class, result.iterator()
.next());
}
} catch (Exception e) {
logger.error("AutoTieringPolicy retrieval from DB failed", e);
}
return policy;
}
}