* ============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;
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;
//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";
protected abstract Logger getLogger();
public abstract AAIExecutorInterface getExecutor();
+
+ private static final String RELATIONSHIP_DATA= "Retrofitting relationship data: ";
@Override
if(!tmpParams.isEmpty()) {
params.putAll(tmpParams);
}
- if("named-query".equals(resource))
- request.setRequestObject(extractNamedQueryDataFromQueryPrefix(nameValues, params));
}
String rv = getExecutor().get(request);
}
}
- 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();
AAIServiceUtils.populateRelationshipDataFromPath(list);
}
} catch(Exception exc) {
- getLogger().debug("Retrofiting relationship data: " + exc.getMessage());
+ getLogger().debug(RELATIONSHIP_DATA + exc.getMessage());
}
String preFix;
try {
getRelationshipListMethod = resourceClass.getMethod("getRelationshipList");
} catch(Exception exc) {
- getLogger().debug("Retrofiting relationship data: " + exc.getMessage());
+ getLogger().debug(RELATIONSHIP_DATA + exc.getMessage());
}
if(getRelationshipListMethod != null){
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<>();
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 {
}
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")) {
try {
obj = getMetadataMethod.invoke(instance);
} catch (InvocationTargetException x) {
- Throwable cause = x.getCause();
+ Throwable cause = x.getCause();
}
}
if(obj != null && obj instanceof Metadata){
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 {
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;
}