From 9ae2e4cae267c992f5017d91b1e28ee5551f3049 Mon Sep 17 00:00:00 2001 From: Wojciech Sliwka Date: Tue, 9 Apr 2019 14:10:15 +0200 Subject: Inject an SystemPropertiesWrapper instance to MsoClient Change-Id: Ibbc8540042fc46bd0df42efec99cff5fc2e371a3 Issue-ID: VID-404 Signed-off-by: Wojciech Sliwka --- .../java/org/onap/vid/controller/MsoConfig.java | 5 +++-- .../org/onap/vid/mso/RestMsoImplementation.java | 24 ++++++++++++---------- .../org/onap/vid/mso/rest/MsoRestClientNew.java | 11 +++++----- .../onap/vid/mso/RestMsoImplementationTest.java | 17 +++++++++------ .../onap/vid/mso/rest/MsoRestClientNewTest.java | 5 +++-- .../org/onap/vid/mso/rest/MsoRestClientTest.java | 9 ++++++-- 6 files changed, 43 insertions(+), 28 deletions(-) diff --git a/vid-app-common/src/main/java/org/onap/vid/controller/MsoConfig.java b/vid-app-common/src/main/java/org/onap/vid/controller/MsoConfig.java index a82dfab75..8d5fbbdbb 100644 --- a/vid-app-common/src/main/java/org/onap/vid/controller/MsoConfig.java +++ b/vid-app-common/src/main/java/org/onap/vid/controller/MsoConfig.java @@ -33,6 +33,7 @@ import org.onap.vid.mso.MsoProperties; import org.onap.vid.mso.rest.MsoRestClientNew; import org.onap.vid.services.CloudOwnerService; import org.onap.vid.services.CloudOwnerServiceImpl; +import org.onap.vid.utils.SystemPropertiesWrapper; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.togglz.core.manager.FeatureManager; @@ -47,10 +48,10 @@ public class MsoConfig { } @Bean - public MsoRestClientNew msoClient(ObjectMapper unirestObjectMapper, HttpsAuthClient httpsAuthClient){ + public MsoRestClientNew msoClient(ObjectMapper unirestObjectMapper, HttpsAuthClient httpsAuthClient, SystemPropertiesWrapper systemPropertiesWrapper){ // Satisfy both interfaces -- MsoInterface and RestMsoImplementation return new MsoRestClientNew(new SyncRestClient(unirestObjectMapper), SystemProperties.getProperty( - MsoProperties.MSO_SERVER_URL),httpsAuthClient); + MsoProperties.MSO_SERVER_URL),httpsAuthClient, systemPropertiesWrapper); } diff --git a/vid-app-common/src/main/java/org/onap/vid/mso/RestMsoImplementation.java b/vid-app-common/src/main/java/org/onap/vid/mso/RestMsoImplementation.java index e14ac0e11..17af75200 100644 --- a/vid-app-common/src/main/java/org/onap/vid/mso/RestMsoImplementation.java +++ b/vid-app-common/src/main/java/org/onap/vid/mso/RestMsoImplementation.java @@ -26,7 +26,6 @@ import org.apache.commons.codec.binary.Base64; import org.apache.http.HttpException; import org.eclipse.jetty.util.security.Password; import org.onap.portalsdk.core.logging.logic.EELFLoggerDelegate; -import org.onap.portalsdk.core.util.SystemProperties; import org.onap.vid.aai.ExceptionWithRequestInfo; import org.onap.vid.aai.util.HttpClientMode; import org.onap.vid.aai.util.HttpsAuthClient; @@ -34,6 +33,7 @@ import org.onap.vid.client.HttpBasicClient; import org.onap.vid.exceptions.GenericUncheckedException; import org.onap.vid.mso.rest.RestInterface; import org.onap.vid.utils.Logging; +import org.onap.vid.utils.SystemPropertiesWrapper; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.http.HttpMethod; @@ -64,6 +64,7 @@ public class RestMsoImplementation implements RestInterface { protected HttpsAuthClient httpsAuthClient; + protected SystemPropertiesWrapper systemProperties; private static final String START_LOG = " start"; private static final String APPLICATION_JSON = "application/json"; @@ -80,8 +81,9 @@ public class RestMsoImplementation implements RestInterface { */ @Autowired - protected RestMsoImplementation(HttpsAuthClient httpsAuthClient){ + protected RestMsoImplementation(HttpsAuthClient httpsAuthClient, SystemPropertiesWrapper systemProperties){ this.httpsAuthClient=httpsAuthClient; + this.systemProperties = systemProperties; } @SuppressWarnings("Duplicates") @@ -89,9 +91,9 @@ public class RestMsoImplementation implements RestInterface { { final String methodname = "initRestClient()"; - final String username = SystemProperties.getProperty(MsoProperties.MSO_USER_NAME); - final String password = SystemProperties.getProperty(MsoProperties.MSO_PASSWORD); - final String mso_url = SystemProperties.getProperty(MsoProperties.MSO_SERVER_URL); + final String username = systemProperties.getProperty(MsoProperties.MSO_USER_NAME); + final String password = systemProperties.getProperty(MsoProperties.MSO_PASSWORD); + final String mso_url = systemProperties.getProperty(MsoProperties.MSO_SERVER_URL); final String decrypted_password = Password.deobfuscate(password); String authString = username + ":" + decrypted_password; @@ -140,7 +142,7 @@ public class RestMsoImplementation implements RestInterface { try { restObject.set(t); - url = SystemProperties.getProperty(MsoProperties.MSO_SERVER_URL) + path; + url = systemProperties.getProperty(MsoProperties.MSO_SERVER_URL) + path; MultivaluedHashMap commonHeaders = initMsoClient(); Logging.logRequest(outgoingRequestsLogger, HttpMethod.GET, url); @@ -179,7 +181,7 @@ public class RestMsoImplementation implements RestInterface { final String methodName = getMethodName(); logger.debug(EELFLoggerDelegate.debugLogger, "start {}->{}({}, {})", getMethodCallerName(), methodName, path, clazz); - String url = SystemProperties.getProperty(MsoProperties.MSO_SERVER_URL) + path; + String url = systemProperties.getProperty(MsoProperties.MSO_SERVER_URL) + path; logger.debug(EELFLoggerDelegate.debugLogger, "<== " + methodName + " sending request to url= " + url); MultivaluedHashMap commonHeaders = initMsoClient(); @@ -216,7 +218,7 @@ public class RestMsoImplementation implements RestInterface { try { MultivaluedHashMap commonHeaders = initMsoClient(); - url = SystemProperties.getProperty(MsoProperties.MSO_SERVER_URL) + path; + url = systemProperties.getProperty(MsoProperties.MSO_SERVER_URL) + path; Logging.logRequest(outgoingRequestsLogger, HttpMethod.DELETE, url, r); cres = client.target(url) .request() @@ -281,7 +283,7 @@ public class RestMsoImplementation implements RestInterface { public Invocation.Builder prepareClient(String path, String methodName) { MultivaluedHashMap commonHeaders = initMsoClient(); - String url = SystemProperties.getProperty(MsoProperties.MSO_SERVER_URL) + path; + String url = systemProperties.getProperty(MsoProperties.MSO_SERVER_URL) + path; logger.debug(EELFLoggerDelegate.debugLogger,"<== " + methodName + " sending request to url= " + url); // Change the content length return client.target(url) @@ -307,7 +309,7 @@ public class RestMsoImplementation implements RestInterface { MultivaluedHashMap commonHeaders = initMsoClient(); userId.ifPresent(id->commonHeaders.put("X-RequestorID", Collections.singletonList(id))); - url = SystemProperties.getProperty(MsoProperties.MSO_SERVER_URL) + path; + url = systemProperties.getProperty(MsoProperties.MSO_SERVER_URL) + path; Logging.logRequest(outgoingRequestsLogger, httpMethod, url, payload); // Change the content length final Invocation.Builder restBuilder = client.target(url) @@ -369,7 +371,7 @@ public class RestMsoImplementation implements RestInterface { MultivaluedHashMap commonHeaders = initMsoClient(); - url = SystemProperties.getProperty(MsoProperties.MSO_SERVER_URL) + path; + url = systemProperties.getProperty(MsoProperties.MSO_SERVER_URL) + path; Logging.logRequest(outgoingRequestsLogger, HttpMethod.PUT, url, r); // Change the content length final Response cres = client.target(url) diff --git a/vid-app-common/src/main/java/org/onap/vid/mso/rest/MsoRestClientNew.java b/vid-app-common/src/main/java/org/onap/vid/mso/rest/MsoRestClientNew.java index 0c05b80e2..6a498fc01 100644 --- a/vid-app-common/src/main/java/org/onap/vid/mso/rest/MsoRestClientNew.java +++ b/vid-app-common/src/main/java/org/onap/vid/mso/rest/MsoRestClientNew.java @@ -50,6 +50,7 @@ import org.onap.vid.mso.MsoUtil; import org.onap.vid.mso.RestMsoImplementation; import org.onap.vid.mso.RestObject; import org.onap.vid.utils.Logging; +import org.onap.vid.utils.SystemPropertiesWrapper; /** @@ -71,8 +72,8 @@ public class MsoRestClientNew extends RestMsoImplementation implements MsoInterf */ EELFLoggerDelegate logger = EELFLoggerDelegate.getLogger(MsoRestClientNew.class); - public MsoRestClientNew(SyncRestClient client, String baseUrl, HttpsAuthClient authClient) { - super(authClient); + public MsoRestClientNew(SyncRestClient client, String baseUrl, HttpsAuthClient authClient, SystemPropertiesWrapper systemPropertiesWrapper) { + super(authClient,systemPropertiesWrapper); this.client = client; this.baseUrl = baseUrl; this.commonHeaders = initCommonHeaders(); @@ -525,8 +526,8 @@ public class MsoRestClientNew extends RestMsoImplementation implements MsoInterf } private Map initCommonHeaders() { - String username = SystemProperties.getProperty(MsoProperties.MSO_USER_NAME); - String password = SystemProperties.getProperty(MsoProperties.MSO_PASSWORD); + String username = systemProperties.getProperty(MsoProperties.MSO_USER_NAME); + String password = systemProperties.getProperty(MsoProperties.MSO_PASSWORD); String decrypted_password = Password.deobfuscate(password); String authString = username + ":" + decrypted_password; @@ -538,7 +539,7 @@ public class MsoRestClientNew extends RestMsoImplementation implements MsoInterf map.put(HttpHeaders.AUTHORIZATION, "Basic " + authStringEnc); map.put(HttpHeaders.ACCEPT, MediaType.APPLICATION_JSON); map.put(HttpHeaders.CONTENT_TYPE, MediaType.APPLICATION_JSON); - map.put(X_FROM_APP_ID, SystemProperties.getProperty(SystemProperties.APP_DISPLAY_NAME)); + map.put(X_FROM_APP_ID, systemProperties.getProperty(SystemProperties.APP_DISPLAY_NAME)); map.put(SystemProperties.ECOMP_REQUEST_ID, Logging.extractOrGenerateRequestId()); return ImmutableMap.copyOf(map); } diff --git a/vid-app-common/src/test/java/org/onap/vid/mso/RestMsoImplementationTest.java b/vid-app-common/src/test/java/org/onap/vid/mso/RestMsoImplementationTest.java index 4cba53785..102c89ac1 100644 --- a/vid-app-common/src/test/java/org/onap/vid/mso/RestMsoImplementationTest.java +++ b/vid-app-common/src/test/java/org/onap/vid/mso/RestMsoImplementationTest.java @@ -24,11 +24,11 @@ import io.joshworks.restclient.request.HttpRequest; import org.glassfish.jersey.client.JerseyInvocation; import org.mockito.InjectMocks; import org.mockito.Mock; -import org.onap.portalsdk.core.util.SystemProperties; import org.onap.vid.aai.util.HttpsAuthClient; import org.onap.vid.changeManagement.RequestDetailsWrapper; import org.onap.vid.exceptions.GenericUncheckedException; import org.onap.vid.mso.rest.RequestDetails; +import org.onap.vid.utils.SystemPropertiesWrapper; import org.springframework.http.HttpMethod; import org.springframework.http.HttpStatus; import org.testng.annotations.BeforeClass; @@ -72,15 +72,19 @@ public class RestMsoImplementationTest { @Mock private JerseyInvocation jerseyInvocation; + @Mock + private SystemPropertiesWrapper systemProperties; + @InjectMocks - private RestMsoImplementation restMsoImplementation = new RestMsoImplementation(mockHttpsAuthClient); + private RestMsoImplementation restMsoImplementation = new RestMsoImplementation(mockHttpsAuthClient, systemProperties); - String path = "/test_path/"; - String rawData = "test-row-data"; + private String path = "/test_path/"; + private String rawData = "test-row-data"; @BeforeClass public void setUp(){ initMocks(this); + when(systemProperties.getProperty(MsoProperties.MSO_PASSWORD)).thenReturn("OBF:1ghz1kfx1j1w1m7w1i271e8q1eas1hzj1m4i1iyy1kch1gdz"); } @Test @@ -127,7 +131,8 @@ public class RestMsoImplementationTest { RestObject restObject = new RestObject<>(); prepareMocks("",HttpStatus.ACCEPTED.value(),""); - when(mockClient.target(SystemProperties.getProperty(MsoProperties.MSO_SERVER_URL))).thenThrow(new MsoTestException("test-target-exception")); + when(systemProperties.getProperty(MsoProperties.MSO_SERVER_URL)).thenReturn("SAMPLE_URL"); + when(mockClient.target("SAMPLE_URL")).thenThrow(new MsoTestException("test-target-exception")); // when restMsoImplementation.Get(httpRequest, "", restObject,false); @@ -418,4 +423,4 @@ public class RestMsoImplementationTest { } } -} \ No newline at end of file +} diff --git a/vid-app-common/src/test/java/org/onap/vid/mso/rest/MsoRestClientNewTest.java b/vid-app-common/src/test/java/org/onap/vid/mso/rest/MsoRestClientNewTest.java index 12fd4a519..832aa098a 100644 --- a/vid-app-common/src/test/java/org/onap/vid/mso/rest/MsoRestClientNewTest.java +++ b/vid-app-common/src/test/java/org/onap/vid/mso/rest/MsoRestClientNewTest.java @@ -45,6 +45,7 @@ import org.onap.vid.mso.MsoProperties; import org.onap.vid.mso.MsoResponseWrapper; import org.onap.vid.mso.MsoResponseWrapperInterface; import org.onap.vid.mso.RestObject; +import org.onap.vid.utils.SystemPropertiesWrapper; import org.springframework.test.context.ContextConfiguration; @ContextConfiguration(classes = {SystemProperties.class}) @@ -473,10 +474,10 @@ public class MsoRestClientNewTest { private MsoRestClientNew msoRestClient() { final WebConfig webConfig = new WebConfig(); - return new MsoRestClientNew(new SyncRestClient(webConfig.unirestFasterxmlObjectMapper(new ObjectMapper())), baseUrl(),null); + return new MsoRestClientNew(new SyncRestClient(webConfig.unirestFasterxmlObjectMapper(new ObjectMapper())), baseUrl(), null, new SystemPropertiesWrapper()); } private MsoRestClientNew createTestSubject() { - return new MsoRestClientNew(null, "",null); + return new MsoRestClientNew(null, "", null, new SystemPropertiesWrapper()); } } diff --git a/vid-app-common/src/test/java/org/onap/vid/mso/rest/MsoRestClientTest.java b/vid-app-common/src/test/java/org/onap/vid/mso/rest/MsoRestClientTest.java index 839e6e6c1..050fa0dce 100644 --- a/vid-app-common/src/test/java/org/onap/vid/mso/rest/MsoRestClientTest.java +++ b/vid-app-common/src/test/java/org/onap/vid/mso/rest/MsoRestClientTest.java @@ -44,12 +44,14 @@ import org.onap.vid.changeManagement.WorkflowRequestDetail; import org.onap.vid.client.SyncRestClient; import org.onap.vid.controller.LocalWebConfig; import org.onap.vid.model.RequestReferencesContainer; +import org.onap.vid.mso.MsoProperties; import org.onap.vid.mso.MsoResponseWrapper; import org.onap.vid.mso.MsoResponseWrapperInterface; import org.onap.vid.mso.MsoUtil; import org.onap.vid.mso.RestObject; import org.onap.vid.mso.model.CloudConfiguration; import org.onap.vid.mso.model.RequestReferences; +import org.onap.vid.utils.SystemPropertiesWrapper; import org.springframework.test.context.ContextConfiguration; import org.springframework.test.context.web.WebAppConfiguration; import org.testng.annotations.BeforeClass; @@ -75,6 +77,8 @@ public class MsoRestClientTest { @Mock private SyncRestClient client; + @Mock + private SystemPropertiesWrapper systemProperties; private MsoRestClientNew restClient; @@ -82,8 +86,9 @@ public class MsoRestClientTest { @BeforeClass private void setUp(){ initMocks(this); - restClient = new MsoRestClientNew(client,baseUrl,null); - + when(systemProperties.getProperty(MsoProperties.MSO_PASSWORD)).thenReturn("OBF:1ghz1kfx1j1w1m7w1i271e8q1eas1hzj1m4i1iyy1kch1gdz"); + when(systemProperties.getProperty("app_display_name")).thenReturn("vid"); + restClient = new MsoRestClientNew(client,baseUrl,null,systemProperties); } @Test -- cgit 1.2.3-korg