Added CSIT for Macroflow with HEAT
[integration/csit.git] / plans / so / integration-etsi-testing / so-simulators / aai-simulator / src / main / java / org / onap / so / aaisimulator / service / providers / NodesCacheServiceProviderImpl.java
index 7e8450f..4ea255f 100644 (file)
  */
 package org.onap.so.aaisimulator.service.providers;
 
-import static org.onap.so.aaisimulator.utils.Constants.NODES_CACHE;
+import static org.onap.so.aaisimulator.utils.CacheName.NODES_CACHE;
 import java.util.Optional;
 import java.util.concurrent.ConcurrentHashMap;
+import org.onap.aai.domain.yang.GenericVnf;
+import org.onap.aai.domain.yang.GenericVnfs;
+import org.onap.aai.domain.yang.ServiceInstance;
 import org.onap.so.aaisimulator.models.NodeServiceInstance;
+import org.onap.so.simulator.cache.provider.AbstractCacheServiceProvider;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -37,23 +41,29 @@ import org.springframework.stereotype.Service;
 @Service
 public class NodesCacheServiceProviderImpl extends AbstractCacheServiceProvider implements NodesCacheServiceProvider {
     private static final Logger LOGGER = LoggerFactory.getLogger(NodesCacheServiceProviderImpl.class);
+    private final GenericVnfCacheServiceProvider cacheServiceProvider;
+    private final CustomerCacheServiceProvider customerCacheServiceProvider;
 
 
     @Autowired
-    public NodesCacheServiceProviderImpl(final CacheManager cacheManager) {
+    public NodesCacheServiceProviderImpl(final CacheManager cacheManager,
+            final GenericVnfCacheServiceProvider cacheServiceProvider,
+            final CustomerCacheServiceProvider customerCacheServiceProvider) {
         super(cacheManager);
+        this.cacheServiceProvider = cacheServiceProvider;
+        this.customerCacheServiceProvider = customerCacheServiceProvider;
     }
 
     @Override
     public void putNodeServiceInstance(final String serviceInstanceId, final NodeServiceInstance nodeServiceInstance) {
-        final Cache cache = getCache(NODES_CACHE);
+        final Cache cache = getCache(NODES_CACHE.getName());
         LOGGER.info("Adding {} to cache with key: {}...", nodeServiceInstance, serviceInstanceId);
         cache.put(serviceInstanceId, nodeServiceInstance);
     }
 
     @Override
     public Optional<NodeServiceInstance> getNodeServiceInstance(final String serviceInstanceId) {
-        final Cache cache = getCache(NODES_CACHE);
+        final Cache cache = getCache(NODES_CACHE.getName());
         final NodeServiceInstance value = cache.get(serviceInstanceId, NodeServiceInstance.class);
         if (value != null) {
             return Optional.of(value);
@@ -62,9 +72,30 @@ public class NodesCacheServiceProviderImpl extends AbstractCacheServiceProvider
         return Optional.empty();
     }
 
+    @Override
+    public Optional<GenericVnfs> getGenericVnfs(final String vnfName) {
+        final Optional<String> genericVnfId = cacheServiceProvider.getGenericVnfId(vnfName);
+        if (genericVnfId.isPresent()) {
+            final Optional<GenericVnf> genericVnf = cacheServiceProvider.getGenericVnf(genericVnfId.get());
+            if (genericVnf.isPresent()) {
+                final GenericVnfs genericVnfs = new GenericVnfs();
+                genericVnfs.getGenericVnf().add(genericVnf.get());
+                return Optional.of(genericVnfs);
+            }
+        }
+        LOGGER.error("Unable to find GenericVnf for name: {}", vnfName);
+        return Optional.empty();
+    }
+
+    @Override
+    public Optional<ServiceInstance> getServiceInstance(final NodeServiceInstance nodeServiceInstance) {
+        return customerCacheServiceProvider.getServiceInstance(nodeServiceInstance.getGlobalCustomerId(),
+                nodeServiceInstance.getServiceType(), nodeServiceInstance.getServiceInstanceId());
+    }
+
     @Override
     public void clearAll() {
-        final Cache cache = getCache(NODES_CACHE);
+        final Cache cache = getCache(NODES_CACHE.getName());
         final ConcurrentHashMap<?, ?> nativeCache = (ConcurrentHashMap<?, ?>) cache.getNativeCache();
         LOGGER.info("Clear all entries from cahce: {}", cache.getName());
         nativeCache.clear();