/* * Copyright (c) 2015 EMC Corporation * All Rights Reserved */ package com.emc.storageos.util; import java.net.URI; import java.util.Collection; import java.util.Iterator; import java.util.List; import java.util.concurrent.ExecutorService; import org.joda.time.DateTime; import com.emc.storageos.db.client.DbAggregatorItf; import com.emc.storageos.db.client.DbClient; import com.emc.storageos.db.client.TimeSeriesMetadata; import com.emc.storageos.db.client.TimeSeriesMetadata.TimeBucket; import com.emc.storageos.db.client.TimeSeriesQueryResult; import com.emc.storageos.db.client.URIUtil; import com.emc.storageos.db.client.constraint.Constraint; import com.emc.storageos.db.client.constraint.QueryResultList; import com.emc.storageos.db.client.model.DataObject; import com.emc.storageos.db.client.model.NamedURI; import com.emc.storageos.db.client.model.Operation; import com.emc.storageos.db.client.model.TimeSeries; import com.emc.storageos.db.client.model.TimeSeriesSerializer.DataPoint; import com.emc.storageos.db.client.model.VirtualDataCenter; import com.emc.storageos.db.exceptions.DatabaseException; import com.emc.storageos.model.ResourceOperationTypeEnum; import com.emc.storageos.svcs.errorhandling.model.ServiceCoded; import com.google.common.collect.Lists; /** * This is used in test programs to fix URIUtil which insists looking things up in the database. * This is not convenient for test programs. * This is the solution the infrastructure team (i.e. Ben Perkins) proposed. */ public class DummyDbClient implements DbClient { private List<VirtualDataCenter> vdcs; public DummyDbClient() { VirtualDataCenter vdc = new VirtualDataCenter(); vdc.setId(URIUtil.createVirtualDataCenterId("1")); vdc.setShortId("vdc1"); vdc.setApiEndpoint("https://localhost"); vdc.setLocal(true); vdcs = Lists.newArrayList(vdc); } @Override public DataObject queryObject(URI id) throws DatabaseException { return null; // To change body of implemented methods use File | Settings | File Templates. } @Override public <T extends DataObject> T queryObject(Class<T> clazz, URI id) throws DatabaseException { // TODO Auto-generated method stub return null; } @Override public <T extends DataObject> T queryObject(Class<T> clazz, NamedURI id) throws DatabaseException { // TODO Auto-generated method stub return null; } @Override public <T extends DataObject> List<T> queryObject(Class<T> clazz, Collection<URI> id) throws DatabaseException { // TODO Auto-generated method stub return null; } @Override public <T extends DataObject> List<T> queryObject(Class<T> clazz, Collection<URI> ids, boolean activeOnly) throws DatabaseException { // TODO Auto-generated method stub return null; } @Override public <T extends DataObject> List<T> queryObject(Class<T> clazz, URI... id) throws DatabaseException { // TODO Auto-generated method stub return null; } @Override public <T extends DataObject> Iterator<T> queryIterativeObjects(Class<T> clazz, Collection<URI> id) throws DatabaseException { if (clazz.equals(VirtualDataCenter.class)) { return (Iterator<T>) vdcs.iterator(); } else { return null; } } @Override public <T extends DataObject> Iterator<T> queryIterativeObjects(Class<T> clazz, Collection<URI> ids, boolean activeOnly) throws DatabaseException { // TODO Auto-generated method stub return null; } @Override public <T extends DataObject> List<T> queryObjectField(Class<T> clazz, String fieldName, Collection<URI> ids) throws DatabaseException { // TODO Auto-generated method stub return null; } @Override public <T extends DataObject> Iterator<T> queryIterativeObjectField(Class<T> clazz, String fieldName, Collection<URI> ids) throws DatabaseException { // TODO Auto-generated method stub return null; } @Override public <T extends DataObject> void aggregateObjectField(Class<T> clazz, Iterator<URI> ids, DbAggregatorItf aggregator) throws DatabaseException { // TODO Auto-generated method stub } @Override public <T extends DataObject> List<URI> queryByType(Class<T> clazz, boolean activeOnly) throws DatabaseException { if (clazz.equals(VirtualDataCenter.class)) { return Lists.newArrayList(vdcs.get(0).getId()); } else { return null; } } @Override public <T extends DataObject> List<URI> queryByType(Class<T> clazz, boolean activeOnly, URI startId, int count) throws DatabaseException { // TODO Auto-generated method stub return null; } @Override public <T extends DataObject> void queryInactiveObjects(Class<T> clazz, final long timeBefore, QueryResultList<URI> result) throws DatabaseException { throw new UnsupportedOperationException(); } @Override public List<URI> queryByConstraint(Constraint constraint) throws DatabaseException { // TODO Auto-generated method stub return null; } @Override public <T> void queryByConstraint(Constraint constraint, QueryResultList<T> result) throws DatabaseException { // TODO Auto-generated method stub } @Override public <T> void queryByConstraint(Constraint constraint, QueryResultList<T> result, URI startId, int maxCount) throws DatabaseException { // TODO Auto-generated method stub } @Override public Integer countObjects(Class<? extends DataObject> type, String columnField, URI uri) throws DatabaseException { // TODO Auto-generated method stub return null; } @Override public <T extends DataObject> void createObject(T object) throws DatabaseException { // TODO Auto-generated method stub } @Override public <T extends DataObject> void createObject(Collection<T> object) throws DatabaseException { // TODO Auto-generated method stub } @Override public <T extends DataObject> void createObject(T... object) throws DatabaseException { // TODO Auto-generated method stub } @Override public <T extends DataObject> void persistObject(T object) throws DatabaseException { // TODO Auto-generated method stub } @Override public <T extends DataObject> void persistObject(Collection<T> object) throws DatabaseException { // TODO Auto-generated method stub } @Override public <T extends DataObject> void persistObject(T... object) throws DatabaseException { // TODO Auto-generated method stub } @Override public <T extends DataObject> void updateAndReindexObject(T object) throws DatabaseException { // TODO Auto-generated method stub } @Override public <T extends DataObject> void updateAndReindexObject(Collection<T> object) throws DatabaseException { // TODO Auto-generated method stub } @Override public <T extends DataObject> void updateAndReindexObject(T... object) throws DatabaseException { // TODO Auto-generated method stub } @Override public <T extends DataObject> void updateObject(T object) { // TODO Auto-generated method stub } @Override public <T extends DataObject> void updateObject(Collection<T> objects) { // TODO Auto-generated method stub } @Override public <T extends DataObject> void updateObject(T... object) { // TODO Auto-generated method stub } @Override public Operation ready(Class<? extends DataObject> clazz, URI id, String opId) throws DatabaseException { // TODO Auto-generated method stub return null; } @Override public Operation ready(Class<? extends DataObject> clazz, URI id, String opId, String message) throws DatabaseException { // TODO Auto-generated method stub return null; } @Override public Operation pending(Class<? extends DataObject> clazz, URI id, String opId, String message) throws DatabaseException { // TODO Auto-generated method stub return null; } /* (non-Javadoc) * @see com.emc.storageos.db.client.DbClient#pending(java.lang.Class, java.net.URI, java.lang.String, java.lang.String, boolean) */ @Override public Operation pending(Class<? extends DataObject> clazz, URI id, String opId, String message, boolean resetStartTime) { return null; } @Override public Operation error(Class<? extends DataObject> clazz, URI id, String opId, ServiceCoded serviceCoded) throws DatabaseException { // TODO Auto-generated method stub return null; } @Override public void setStatus(Class<? extends DataObject> clazz, URI id, String opId, String status) throws DatabaseException { // TODO Auto-generated method stub } @Override public void setStatus(Class<? extends DataObject> clazz, URI id, String opId, String status, String message) throws DatabaseException { // TODO Auto-generated method stub } @Override public Operation createTaskOpStatus(Class<? extends DataObject> clazz, URI id, String opId, Operation newOperation) throws DatabaseException { // TODO Auto-generated method stub return null; } @Override public Operation updateTaskOpStatus(Class<? extends DataObject> clazz, URI id, String opId, Operation updateOperation) throws DatabaseException { // TODO Auto-generated method stub return null; } @Override public void markForDeletion(DataObject object) throws DatabaseException { // TODO Auto-generated method stub } @Override public void markForDeletion(Collection<? extends DataObject> object) throws DatabaseException { // TODO Auto-generated method stub } @Override public <T extends DataObject> void markForDeletion(T... object) throws DatabaseException { // TODO Auto-generated method stub } @Override public void removeObject(DataObject... object) throws DatabaseException { // TODO Auto-generated method stub } @Override public <T extends DataPoint> String insertTimeSeries(Class<? extends TimeSeries> tsType, T... data) throws DatabaseException { // TODO Auto-generated method stub return null; } @Override public <T extends DataPoint> String insertTimeSeries(Class<? extends TimeSeries> tsType, DateTime time, T data) throws DatabaseException { // TODO Auto-generated method stub return null; } @Override public <T extends DataPoint> void queryTimeSeries(Class<? extends TimeSeries> tsType, DateTime timeBucket, TimeSeriesQueryResult<T> callback, ExecutorService workerThreads) throws DatabaseException { // TODO Auto-generated method stub } @Override public <T extends DataPoint> void queryTimeSeries(Class<? extends TimeSeries> tsType, DateTime timeBucket, TimeBucket bucket, TimeSeriesQueryResult<T> callback, ExecutorService workerThreads) throws DatabaseException { // TODO Auto-generated method stub } @Override public TimeSeriesMetadata queryTimeSeriesMetadata(Class<? extends TimeSeries> tsType) throws DatabaseException { // TODO Auto-generated method stub return null; } @Override public void start() { // TODO Auto-generated method stub } @Override public void stop() { // TODO Auto-generated method stub } @Override public <T extends DataObject> Collection<T> queryObjectFields(Class<T> clazz, Collection<String> fieldNames, Collection<URI> ids) { // TODO Auto-generated method stub return null; } @Override public String getSchemaVersion() { // TODO Auto-generated method stub return null; } @Override public String getLocalShortVdcId() { // TODO Auto-generated method stub return null; } @Override public URI getVdcUrn(String shortVdcId) { // TODO Auto-generated method stub return null; } @Override public void invalidateVdcUrnCache() { // TODO Auto-generated method stub } @Override public <T extends DataObject> Iterator<T> queryIterativeObjectFields( Class<T> clazz, Collection<String> fieldNames, Collection<URI> ids) { // TODO Auto-generated method stub return null; } @Override public Operation createTaskOpStatus(Class<? extends DataObject> clazz, URI id, String opId, ResourceOperationTypeEnum type) throws DatabaseException { // TODO Auto-generated method stub return null; } @Override public Operation createTaskOpStatus(Class<? extends DataObject> clazz, URI id, String opId, ResourceOperationTypeEnum type, String associatedResources) throws DatabaseException { // TODO Auto-generated method stub return null; } @Override public boolean checkGeoCompatible(String expectVersion) { return true; } @Override public boolean hasUsefulData() { // TODO Auto-generated method stub return false; } @Override public Operation suspended_no_error(Class<? extends DataObject> clazz, URI id, String opId, String message) throws DatabaseException { // TODO Auto-generated method stub return null; } @Override public Operation suspended_no_error(Class<? extends DataObject> clazz, URI id, String opId) throws DatabaseException { // TODO Auto-generated method stub return null; } @Override public Operation suspended_error(Class<? extends DataObject> clazz, URI id, String opId, ServiceCoded serviceCoded) throws DatabaseException { // TODO Auto-generated method stub return null; } }