Updating aai adapter to v19 model
[ccsdk/sli/adaptors.git] / aai-service / provider / src / main / java / org / onap / ccsdk / sli / adaptors / aai / AAIDeclarations.java
index 4a3f923..4066f46 100755 (executable)
@@ -2,10 +2,10 @@
  * ============LICENSE_START=======================================================
  * openECOMP : SDN-C
  * ================================================================================
- * Copyright (C) 2017 AT&T Intellectual Property. All rights
+ * Copyright (C) 2019 AT&T Intellectual Property. All rights
  *             reserved.
  * ================================================================================
- * Modifications Copyright (C) 2018 IBM.
+ * Modifications Copyright (C) 2019 IBM.
  * ================================================================================
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
  * ============LICENSE_END=========================================================
  */
 
+/**
+ * @author Rich Tabedzki
+ *
+ */
 package org.onap.ccsdk.sli.adaptors.aai;
 
 import java.io.IOException;
@@ -51,33 +55,28 @@ import javax.xml.bind.annotation.XmlType;
 import org.apache.commons.lang.StringUtils;
 import org.onap.ccsdk.sli.adaptors.aai.data.AAIDatum;
 import org.onap.ccsdk.sli.adaptors.aai.query.FormattedQueryResultList;
-import org.onap.ccsdk.sli.adaptors.aai.query.InstanceFilter;
-import org.onap.ccsdk.sli.adaptors.aai.query.InstanceFilters;
-import org.onap.ccsdk.sli.adaptors.aai.query.NamedQuery;
-import org.onap.ccsdk.sli.adaptors.aai.query.NamedQueryData;
-import org.onap.ccsdk.sli.adaptors.aai.query.QueryParameters;
 import org.onap.ccsdk.sli.adaptors.aai.query.Result;
 import org.onap.ccsdk.sli.core.sli.SvcLogicContext;
 import org.onap.ccsdk.sli.core.sli.SvcLogicException;
-import org.onap.aai.inventory.v14.GenericVnf;
-import org.onap.aai.inventory.v14.Image;
-import org.onap.aai.inventory.v14.InventoryResponseItem;
-import org.onap.aai.inventory.v14.InventoryResponseItems;
-import org.onap.aai.inventory.v14.L3Network;
-import org.onap.aai.inventory.v14.LogicalLink;
-import org.onap.aai.inventory.v14.Metadata;
-import org.onap.aai.inventory.v14.Metadatum;
-import org.onap.aai.inventory.v14.Pnf;
-import org.onap.aai.inventory.v14.RelatedToProperty;
-import org.onap.aai.inventory.v14.Relationship;
-import org.onap.aai.inventory.v14.RelationshipData;
-import org.onap.aai.inventory.v14.RelationshipList;
-import org.onap.aai.inventory.v14.ResultData;
-import org.onap.aai.inventory.v14.SearchResults;
-import org.onap.aai.inventory.v14.ServiceInstance;
-import org.onap.aai.inventory.v14.Vlan;
-import org.onap.aai.inventory.v14.Vlans;
-import org.onap.aai.inventory.v14.Vserver;
+import org.onap.aai.inventory.v19.GenericVnf;
+import org.onap.aai.inventory.v19.Image;
+import org.onap.aai.inventory.v19.InventoryResponseItem;
+import org.onap.aai.inventory.v19.InventoryResponseItems;
+import org.onap.aai.inventory.v19.L3Network;
+import org.onap.aai.inventory.v19.LogicalLink;
+import org.onap.aai.inventory.v19.Metadata;
+import org.onap.aai.inventory.v19.Metadatum;
+import org.onap.aai.inventory.v19.Pnf;
+import org.onap.aai.inventory.v19.RelatedToProperty;
+import org.onap.aai.inventory.v19.Relationship;
+import org.onap.aai.inventory.v19.RelationshipData;
+import org.onap.aai.inventory.v19.RelationshipList;
+import org.onap.aai.inventory.v19.ResultData;
+import org.onap.aai.inventory.v19.SearchResults;
+import org.onap.aai.inventory.v19.ServiceInstance;
+import org.onap.aai.inventory.v19.Vlan;
+import org.onap.aai.inventory.v19.Vlans;
+import org.onap.aai.inventory.v19.Vserver;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
@@ -132,9 +131,6 @@ public abstract class AAIDeclarations implements AAIClient {
     //Service
     public static final String SERVICE_PATH              = "org.onap.ccsdk.sli.adaptors.aai.path.service";
 
-    // P-Interfaces
-    public static final String P_INTERFACE_PATH       = "org.onap.ccsdk.sli.adaptors.aai.path.pserver.pinterface";
-
     // site-pair-sets
     public static final String SITE_PAIR_SET_PATH     = "org.onap.ccsdk.sli.adaptors.aai.path.site.pair.set";
 
@@ -147,6 +143,8 @@ public abstract class AAIDeclarations implements AAIClient {
 
     protected abstract Logger getLogger();
     public abstract AAIExecutorInterface getExecutor();
+                                                                                
+    private static final String RELATIONSHIP_DATA= "Retrofitting relationship data: ";
 
 
     @Override
@@ -791,8 +789,6 @@ public abstract class AAIDeclarations implements AAIClient {
                 if(!tmpParams.isEmpty()) {
                     params.putAll(tmpParams);
                 }
-                if("named-query".equals(resource))
-                    request.setRequestObject(extractNamedQueryDataFromQueryPrefix(nameValues, params));
             }
             String rv = getExecutor().get(request);
 
@@ -854,14 +850,6 @@ public abstract class AAIDeclarations implements AAIClient {
             }
         }
 
-        if("named-query".equals(resource)) {
-            InventoryResponseItems rd = InventoryResponseItems.class.cast(response);
-            List<InventoryResponseItem> iRIlist = rd.getInventoryResponseItem();
-            if(iRIlist == null || iRIlist.isEmpty()) {
-                return QueryStatus.NOT_FOUND;
-            }
-        }
-
         if("nodes-query".equals(resource)) {
             SearchResults rd = SearchResults.class.cast(response);
             List<ResultData> rdList = rd.getResultData();
@@ -891,7 +879,7 @@ public abstract class AAIDeclarations implements AAIClient {
                 AAIServiceUtils.populateRelationshipDataFromPath(list);
             }
         } catch(Exception exc) {
-            getLogger().debug("Retrofiting relationship data: " + exc.getMessage());
+            getLogger().debug(RELATIONSHIP_DATA + exc.getMessage());
         }
 
         String preFix;
@@ -1226,7 +1214,7 @@ public abstract class AAIDeclarations implements AAIClient {
                 try {
                     getRelationshipListMethod = resourceClass.getMethod("getRelationshipList");
                 } catch(Exception exc) {
-                    getLogger().debug("Retrofiting relationship data: " + exc.getMessage());
+                    getLogger().debug(RELATIONSHIP_DATA + exc.getMessage());
                 }
 
                 if(getRelationshipListMethod != null){
@@ -1277,7 +1265,7 @@ public abstract class AAIDeclarations implements AAIClient {
                     getLogger().debug("About to process related link of {}", relatedLink);
                     if(relatedLink != null) {
                         if(relatedLink.contains("v$"))
-                            relatedLink = relatedLink.replace(VERSION_PATTERN, "/v14/");
+                            relatedLink = relatedLink.replace(VERSION_PATTERN, "/v19/");
                         relationship.setRelatedLink(relatedLink);
                     } else {
                         Map<String, String> relParams = new HashMap<>();
@@ -1509,7 +1497,7 @@ public abstract class AAIDeclarations implements AAIClient {
             try {
                 getRelationshipListMethod = resourceClass.getMethod("getRelationshipList");
             } catch(Exception exc) {
-                getLogger().debug("Retrofiting relationship data: " + exc.getMessage());
+                getLogger().debug(RELATIONSHIP_DATA + exc.getMessage());
             }
             if(getRelationshipListMethod != null){
                 try {
@@ -1630,7 +1618,7 @@ public abstract class AAIDeclarations implements AAIClient {
         }
 
         Class resourceClass = instance.getClass();
-        Set<String> metadataKeys = new TreeSet<String>();
+        Set<String> metadataKeys = new TreeSet<>();
         Set<String> set = params.keySet();
         for(String attribute : set) {
             if(attribute.startsWith("metadata")) {
@@ -1648,7 +1636,7 @@ public abstract class AAIDeclarations implements AAIClient {
                 try {
                     obj = getMetadataMethod.invoke(instance);
                 } catch (InvocationTargetException x) {
-                    Throwable cause = x.getCause();
+                   Throwable cause = x.getCause();
                 }
             }
             if(obj != null && obj instanceof Metadata){
@@ -1798,7 +1786,7 @@ public abstract class AAIDeclarations implements AAIClient {
             try {
                 getRelationshipListMethod = resourceClass.getMethod("getRelationshipList");
             } catch(Exception exc) {
-                getLogger().debug("Retrofiting relationship data: " + exc.getMessage());
+                getLogger().debug(RELATIONSHIP_DATA + exc.getMessage());
             }
             if(getRelationshipListMethod != null){
                 try {
@@ -2010,114 +1998,6 @@ public abstract class AAIDeclarations implements AAIClient {
         return prefixMap;
     }
 
-    /**
-     */
-    protected NamedQueryData extractNamedQueryDataFromQueryPrefix(HashMap<String, String> nameValues, Map<String, String> parms) {
-        if(parms.isEmpty()) {
-            return null;
-        }
-
-        NamedQueryData data = new NamedQueryData();
-
-        // query parameters
-        if(data.getQueryParameters() == null) {
-            data.setQueryParameters(new QueryParameters());
-        }
-        String namedQueryUuid = nameValues.get("named-query-uuid".replaceAll("-", "_"));
-        if(namedQueryUuid == null) {
-            namedQueryUuid = parms.get("query-parameters.named-query.named-query-uuid");
-        }
-        NamedQuery namedQuery = new NamedQuery();
-        namedQuery.setNamedQueryUuid(namedQueryUuid);
-        data.getQueryParameters().setNamedQuery(namedQuery);
-
-        // instance filters
-        if(data.getInstanceFilters() == null) {
-            data.setInstanceFilters(new InstanceFilters());
-        }
-
-
-        String quantity = parms.get("instance-filters.instance-filter_length");
-        if(quantity != null && StringUtils.isNumeric(quantity)) {
-            int max = Integer.parseInt(quantity);
-            for(int i = 0; i < max; i++) {
-                String keyPattern = String.format("instance-filters.instance-filter[%d].", i);
-                Set<String> keys = parms.keySet();
-                for(String key: keys) {
-                    if(key.startsWith(keyPattern)){
-                        String value = parms.get(key);
-                        String remainder = key.substring(keyPattern.length());
-                        String[] split = remainder.split("\\.");
-                        getLogger().debug(String.format("%s", remainder));
-                        if("logical-link".equals(split[0])) {
-                            InstanceFilter insf = null;
-                            if(data.getInstanceFilters().getInstanceFilter().isEmpty()) {
-                                insf = new InstanceFilter();
-                                data.getInstanceFilters().getInstanceFilter().add(insf);
-                            } else {
-                                insf = data.getInstanceFilters().getInstanceFilter().get(0);
-                            }
-                            LogicalLink logicalLink = insf.getLogicalLink();
-                            if(logicalLink == null) {
-                                logicalLink = new LogicalLink();
-                                insf.setLogicalLink(logicalLink);
-                            }
-
-                            switch(split[1]) {
-                                case "link-name":
-                                    logicalLink.setLinkName(value);
-                                    break;
-                                case "link-type":
-                                    logicalLink.setLinkType(value);
-                                    break;
-                                case "operational-state":
-                                    logicalLink.setOperationalStatus(value);
-                                    break;
-                            }
-
-                        } else if("pnf".equals(split[0])) {
-                            Pnf pnf = new Pnf();
-                            pnf.setPnfName(value);
-
-                            InstanceFilter insf = new InstanceFilter();
-                            insf.setPnf(pnf);
-                            data.getInstanceFilters().getInstanceFilter().add(insf);
-
-                        } else if("service-instance".equals(split[0])) {
-                            ServiceInstance serviceInstance = new ServiceInstance();
-                            serviceInstance.setServiceInstanceId(value);
-
-                            InstanceFilter insf = new InstanceFilter();
-                            insf.setServiceInstance(serviceInstance);
-                            data.getInstanceFilters().getInstanceFilter().add(insf);
-
-                        } else if("l3-network".equals(split[0])) {
-                            L3Network l3Network = new L3Network();
-                            if("network-role".equals(split[1])) {
-                                l3Network.setNetworkRole(value);
-                            }
-
-                            InstanceFilter insf = new InstanceFilter();
-                            insf.setL3Network(l3Network);
-                            data.getInstanceFilters().getInstanceFilter().add(insf);
-                        } else if("generic-vnf".equals(split[0])) {
-                            GenericVnf vnf = new GenericVnf();
-                            if("vnf-id".equals(split[1])) {
-                                vnf.setVnfId(value);
-                            }
-
-                            InstanceFilter insf = new InstanceFilter();
-                            insf.setGenericVnf(vnf);
-                            data.getInstanceFilters().getInstanceFilter().add(insf);
-                        }
-                    }
-                }
-            }
-        }
-
-        return data;
-    }
-
     public abstract <T> T getResource(String key, Class<T> type) throws AAIServiceException ;
     protected abstract boolean deleteList(URL url, String caller) throws AAIServiceException;
 }