package org.onap.sdnc.apps.pomba.networkdiscovery.datamodel;
public class DataQuality {
- public static enum Status {
+ public enum Status {
ok, error
}
private Status status;
private String errorText;
-
+
public Status getStatus() {
return this.status;
}
*/
package org.onap.sdnc.apps.pomba.networkdiscovery.datamodel;
-import java.util.List;
import javax.xml.bind.annotation.XmlRootElement;
@XmlRootElement
</dependencies>
</dependencyManagement>
- <developers>
- <developer>
- <id>${userId}</id>
- </developer>
- </developers>
-
<dependencies>
<!-- Springframework dependencies -->
<dependency>
import javax.ws.rs.core.Response.Status;
public class ApplicationException extends Exception {
- public static enum Error {
+ public enum Error {
GENERAL_FAILURE("NET.0001", "An error occurred: %s"),
MISSING_PARAM("NET.0002", "Missing required parameter %s"),
UNAUTHORIZED("NET.0003", "Unauthorized");
private String basicAuthPassword;
@Bean(name="callbackClient")
- public Client getClient() throws Exception {
+ public Client getClient() {
ClientConfig configuration = new ClientConfig()
.property(ClientProperties.CONNECT_TIMEOUT, this.connectionTimeout)
.property(ClientProperties.READ_TIMEOUT, this.readTimeout)
@Configuration
public class EnricherConfiguration {
- @Autowired
+ @Autowired
private Environment env;
-
- @Value("${enricher.url}")
- private String url;
- @Value("${enricher.keyStorePath}")
- private String keyStorePath;
+ @Value("${enricher.url}")
+ private String url;
- @Value("${enricher.keyStorePassword}")
- private String keyStorePassword;
+ @Value("${enricher.keyStorePath}")
+ private String keyStorePath;
- @Value("${enricher.connectionTimeout:5000}")
- private int connectionTimeout;
+ @Value("${enricher.keyStorePassword}")
+ private String keyStorePassword;
- @Value("${enricher.readTimeout:60000}")
- private int readTimeout;
+ @Value("${enricher.connectionTimeout:5000}")
+ private int connectionTimeout;
- @Bean(name="enricherClient")
- public RestClient restClient() {
- return new RestClient()
- .validateServerHostname(false)
- .validateServerCertChain(false)
- .connectTimeoutMs(this.connectionTimeout)
- .readTimeoutMs(this.readTimeout)
+ @Value("${enricher.readTimeout:60000}")
+ private int readTimeout;
+
+ @Bean(name="enricherClient")
+ public RestClient restClient() {
+ return new RestClient()
+ .validateServerHostname(false)
+ .validateServerCertChain(false)
+ .connectTimeoutMs(this.connectionTimeout)
+ .readTimeoutMs(this.readTimeout)
.clientCertFile(this.keyStorePath)
.clientCertPassword(this.keyStorePassword);
- }
+ }
+
+ @Bean(name="enricherBaseUrl")
+ public String getURL() {
+ return this.url;
+ }
+
+ @Bean(name="enricherTypeURLs")
+ public Map<String, String> enricherTypeURLs() {
+
+ Map<String, String> result = new HashMap<>();
+ String types = this.env.getProperty("enricher.types");
+ if (types == null) {
+ return result;
+ }
- @Bean(name="enricherBaseUrl")
- public String getURL() {
- return this.url;
- }
-
- @Bean(name="enricherTypeURLs")
- public Map<String, String> enricherTypeURLs() {
+ StringTokenizer tokenizer = new StringTokenizer(types, ", ");
+ while (tokenizer.hasMoreTokens()) {
+ String type = tokenizer.nextToken();
+ String enricherUrl = this.env.getProperty("enricher.type." + type + ".url");
+ result.put(type, enricherUrl);
+ }
- Map<String, String> result = new HashMap<>();
- String types = this.env.getProperty("enricher.types");
- if (types == null) {
- return result;
- }
-
- StringTokenizer tokenizer = new StringTokenizer(types, ", ");
- while (tokenizer.hasMoreTokens()) {
- String type = tokenizer.nextToken();
- String url = this.env.getProperty("enricher.type." + type + ".url");
- result.put(type, url);
- }
-
return result;
- }
+ }
}
*/
package org.onap.sdnc.apps.pomba.networkdiscovery;
-import com.fasterxml.jackson.annotation.JsonInclude;
-import com.fasterxml.jackson.databind.DeserializationFeature;
-import com.fasterxml.jackson.databind.MapperFeature;
-import com.fasterxml.jackson.databind.ObjectMapper;
-import com.fasterxml.jackson.databind.SerializationFeature;
import java.util.logging.Logger;
+
import javax.ws.rs.ApplicationPath;
import javax.ws.rs.client.Client;
import javax.ws.rs.client.ClientBuilder;
+
import org.glassfish.jersey.client.ClientConfig;
-import org.glassfish.jersey.filter.LoggingFilter;
+import org.glassfish.jersey.logging.LoggingFeature;
import org.glassfish.jersey.server.ResourceConfig;
import org.glassfish.jersey.servlet.ServletProperties;
import org.onap.sdnc.apps.pomba.networkdiscovery.service.rs.RestServiceImpl;
import org.springframework.context.annotation.Primary;
import org.springframework.stereotype.Component;
+import com.fasterxml.jackson.annotation.JsonInclude;
+import com.fasterxml.jackson.databind.DeserializationFeature;
+import com.fasterxml.jackson.databind.MapperFeature;
+import com.fasterxml.jackson.databind.ObjectMapper;
+import com.fasterxml.jackson.databind.SerializationFeature;
+
@Component
@ApplicationPath("/")
public class JerseyConfiguration extends ResourceConfig {
public JerseyConfiguration() {
register(RestServiceImpl.class);
property(ServletProperties.FILTER_FORWARD_ON_404, true);
- register(new LoggingFilter(log, true));
+ register(new LoggingFeature(log));
}
@Bean
@Resource(name="basicAuthHeader")
private String basicAuthHeader;
- public RestServiceImpl() {
- }
-
@Override
public Response findbyResourceIdAndType(HttpServletRequest request,
String version,
version = "v1";
}
- if (!this.basicAuthHeader.equals(authorization)) {
+ if (authorization == null || !this.basicAuthHeader.equals(authorization)) {
throw new ApplicationException(UNAUTHORIZED, Status.UNAUTHORIZED);
}
if ((fromAppId == null) || fromAppId.trim().isEmpty()) {
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
+ <exclusions>
+ <exclusion>
+ <groupId>com.vaadin.external.google</groupId>
+ <artifactId>android-json</artifactId>
+ </exclusion>
+ </exclusions>
</dependency>
<dependency>
<groupId>org.mockito</groupId>
import javax.ws.rs.core.Response.Status;
public class DiscoveryException extends Exception {
- public static enum Error {
+ public enum Error {
FETCH_RESOURCE_FAILED("SD.0001", "A&AI query failed: %s"),
RELATIONSHIP_LINK_PARSE_ERROR("SD.0002", "Error in parsing relationship link"),
SERVICE_INSTANCE_NOT_FOUND("SD.0003", "Service Instance not Found"),
@org.springframework.stereotype.Service
public class SpringServiceImpl implements SpringService {
private static EELFLogger log = EELFManager.getInstance().getLogger(SpringServiceImpl.class);
- public static String APP_NAME = "ServiceDiscovery";
+ public static final String APP_NAME = "ServiceDiscovery";
@Autowired
private RestClient aaiClient;
adapter.getServiceDescriptor().setServiceName(SERVICE_NAME);
adapter.entering(request);
try {
- if (!this.basicAuthHeader.equals(authorization)) {
+ if (authorization == null || !this.basicAuthHeader.equals(authorization)) {
throw new DiscoveryException(UNAUTHORIZED, Status.UNAUTHORIZED);
}
import static org.onap.sdnc.apps.pomba.servicedecomposition.exception.DiscoveryException.Error.SERVICE_RELATIONSHIP_PARSE_ERROR;
import com.sun.jersey.core.util.MultivaluedMapImpl;
+
import java.text.MessageFormat;
import java.util.ArrayList;
import java.util.Collections;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
+
import javax.ws.rs.core.MediaType;
import javax.ws.rs.core.MultivaluedMap;
import javax.ws.rs.core.Response.Status;
+
import org.json.JSONArray;
import org.json.JSONObject;
import org.onap.aai.restclient.client.OperationResult;
import org.slf4j.LoggerFactory;
+
+
public class RestUtil {
// Parameters for Query AAI Model Data API
// HTTP headers
String url = baseURL + generateServiceInstanceURL(aaiServiceInstancePath, serviceInstanceId);
// Response from service instance API call
JSONObject serviceInstancePayload = new JSONObject(
- getResource(aaiClient, url, transactionId, MediaType.valueOf(MediaType.APPLICATION_XML)));
+ getResource(aaiClient, url, transactionId));
// Handle the case if the service instance is not found in AAI
if (serviceInstancePayload == null || serviceInstancePayload.length() == 0) {
logger.info("Service Instance " + serviceInstanceId + " is not found from AAI");
// Logic to Create the Generic VNF JSON and extract further relationships
for (JSONObject vnfPayload : vnfList) {
List<String> vnfcLinkLst = extractRelatedLink(vnfPayload, Catalog.VNFC.resourceName);
- if (vnfcLinkLst != null && vnfcLinkLst.size() != 0) {
+ if (vnfcLinkLst != null && !vnfcLinkLst.isEmpty()) {
logger.info("The number of the API call for vnfc is:" + vnfcLinkLst.size());
List<JSONObject> vnfcList = processResourceList(aaiClient, baseURL, transactionId,
Catalog.VNFC.resourceName, vnfcLinkLst);
}
List<String> networkLinkLst = extractRelatedLink(vnfPayload, Catalog.L3NETWORK.resourceName);
- if (networkLinkLst != null && networkLinkLst.size() != 0) {
+ if (networkLinkLst != null && !networkLinkLst.isEmpty()) {
logger.info("The number of the API call for l3-network is:" + networkLinkLst.size());
List<JSONObject> networkList = processResourceList(aaiClient, baseURL, transactionId,
Catalog.L3NETWORK.resourceName, networkLinkLst);
logger.info("No l3-network found for vnf-id:" + vnfPayload.getString("vnf-id"));
}
List<String> vserverLinkLst = extractRelatedLink(vnfPayload, Catalog.VSERVER.resourceName);
- if (vserverLinkLst != null && vserverLinkLst.size() != 0) {
+ if (vserverLinkLst != null && !vserverLinkLst.isEmpty()) {
logger.info("The number of the API call for vserver is:" + vserverLinkLst.size());
List<JSONObject> vserverList = processResourceList(aaiClient, baseURL, transactionId,
Catalog.VSERVER.resourceName, vserverLinkLst);
}
// Add generic vnf with related resource payload to response
- if (vnfLst != null && vnfLst.size() != 0) {
+ if (vnfLst != null && !vnfLst.isEmpty()) {
response.put(Catalog.VNF.collectionName, vnfLst);
}
// Response from generic VNF API call
JSONObject resourcePayload = new JSONObject(
- getResource(aaiClient, resourceURL, transactionId, MediaType.valueOf(MediaType.APPLICATION_XML)));
+ getResource(aaiClient, resourceURL, transactionId));
if (resourcePayload == null || resourcePayload.length() == 0) {
logger.info("Resource with url " + resourceLink + " is not found from AAI");
} else {
logger.info("Related-To Object found null");
continue;
}
- List<String> relatedLinkList = relationMap.get(relatedToObj.toString());
+ List<String> relatedLinkList = relationMap.get(relatedToObj);
if (relatedLinkList == null) {
relatedLinkList = new ArrayList<>();
- relationMap.put(relatedToObj.toString(), relatedLinkList);
+ relationMap.put(relatedToObj, relatedLinkList);
}
- relatedLinkList.add(relatedLinkObj.toString());
+ relatedLinkList.add(relatedLinkObj);
}
}
return relationMap;
* @return
* @throws DiscoveryException
*/
- private static String getResource(RestClient client, String url, String transId, MediaType mediaType)
+ private static String getResource(RestClient client, String url, String transId)
throws DiscoveryException {
OperationResult result = client.get(url, buildHeaders(transId), MediaType.valueOf(MediaType.APPLICATION_JSON));
package org.onap.sdnc.apps.pomba.servicedecomposition.componenttest.mockito;
import static junit.framework.TestCase.assertEquals;
+import static org.mockito.Mockito.mock;
import org.junit.Test;
import org.onap.sdnc.apps.pomba.servicedecomposition.WebConfiguration;
public void runTest() {
WebConfiguration webConfiguration = new WebConfiguration();
WebMvcConfigurerAdapter webMvcConfigurerAdapter = webConfiguration.forwardToIndex();
- ViewResolverRegistry registry = new ViewResolverRegistry();
+ ViewResolverRegistry registry = mock(ViewResolverRegistry.class);
webMvcConfigurerAdapter.configureViewResolvers(registry);
assertEquals(registry.hasRegistrations(), false);
}