diff options
15 files changed, 65 insertions, 131 deletions
diff --git a/forwarding/src/main/java/org/onap/policy/distribution/forwarding/PolicyForwarder.java b/forwarding/src/main/java/org/onap/policy/distribution/forwarding/PolicyForwarder.java index 3059f2f0..e4fba0ae 100644 --- a/forwarding/src/main/java/org/onap/policy/distribution/forwarding/PolicyForwarder.java +++ b/forwarding/src/main/java/org/onap/policy/distribution/forwarding/PolicyForwarder.java @@ -1,6 +1,7 @@ /*- * ============LICENSE_START======================================================= * Copyright (C) 2018 Ericsson. All rights reserved. + * Modifications Copyright (C) 2021 AT&T Intellectual Property. All rights reserved. * ================================================================================ * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -21,6 +22,7 @@ package org.onap.policy.distribution.forwarding; import java.util.Collection; +import org.onap.policy.common.endpoints.http.client.HttpClientConfigException; import org.onap.policy.models.tosca.authorative.concepts.ToscaEntity; /** @@ -40,8 +42,9 @@ public interface PolicyForwarder { * * @param parameterGroupName the name of the parameter group which contains the configuration * for the policy forwarder + * @throws HttpClientConfigException if an exception occurs */ - void configure(String parameterGroupName); + void configure(String parameterGroupName) throws HttpClientConfigException; /** * Forward the given policies. diff --git a/packages/policy-distribution-tarball/src/main/resources/etc/defaultConfig.json b/packages/policy-distribution-tarball/src/main/resources/etc/defaultConfig.json index f5fe30d5..02fecfb1 100644 --- a/packages/policy-distribution-tarball/src/main/resources/etc/defaultConfig.json +++ b/packages/policy-distribution-tarball/src/main/resources/etc/defaultConfig.json @@ -71,20 +71,23 @@ "parameterClassName": "org.onap.policy.distribution.forwarding.lifecycle.api.LifecycleApiForwarderParameters", "parameters": { "apiParameters": { - "hostName": "policy-api", + "clientName": "policy-api", + "hostname": "policy-api", "port": 6969, + "useHttps": true, "userName": "healthcheck", "password": "zb!XztG34" }, "papParameters": { - "hostName": "policy-pap", + "clientName": "policy-pap", + "hostname": "policy-pap", "port": 6969, + "useHttps": true, "userName": "healthcheck", "password": "zb!XztG34" }, - "isHttps": true, "deployPolicies": true } } } -}
\ No newline at end of file +} diff --git a/packages/policy-distribution-tarball/src/main/resources/etc/s3pConfig.json b/packages/policy-distribution-tarball/src/main/resources/etc/s3pConfig.json index 4589fddc..430b81a1 100644 --- a/packages/policy-distribution-tarball/src/main/resources/etc/s3pConfig.json +++ b/packages/policy-distribution-tarball/src/main/resources/etc/s3pConfig.json @@ -51,18 +51,21 @@ "parameterClassName": "org.onap.policy.distribution.forwarding.lifecycle.api.LifecycleApiForwarderParameters", "parameters": { "apiParameters": { - "hostName": "policy-api", + "clientName": "policy-api", + "hostname": "policy-api", "port": 6969, + "useHttps": true, "userName": "healthcheck", "password": "zb!XztG34" }, "papParameters": { - "hostName": "policy-pap", + "clientName": "policy-pap", + "hostname": "policy-pap", "port": 6969, + "useHttps": true, "userName": "healthcheck", "password": "zb!XztG34" }, - "isHttps": true, "deployPolicies": true } } diff --git a/plugins/forwarding-plugins/src/main/java/org/onap/policy/distribution/forwarding/lifecycle/api/LifecycleApiForwarderParameters.java b/plugins/forwarding-plugins/src/main/java/org/onap/policy/distribution/forwarding/lifecycle/api/LifecycleApiForwarderParameters.java index c266a1ba..060be1ad 100644 --- a/plugins/forwarding-plugins/src/main/java/org/onap/policy/distribution/forwarding/lifecycle/api/LifecycleApiForwarderParameters.java +++ b/plugins/forwarding-plugins/src/main/java/org/onap/policy/distribution/forwarding/lifecycle/api/LifecycleApiForwarderParameters.java @@ -22,6 +22,7 @@ package org.onap.policy.distribution.forwarding.lifecycle.api; import lombok.Getter; +import org.onap.policy.common.endpoints.parameters.RestClientParameters; import org.onap.policy.common.parameters.annotations.NotBlank; import org.onap.policy.common.parameters.annotations.NotNull; import org.onap.policy.common.parameters.annotations.Valid; @@ -38,10 +39,8 @@ import org.onap.policy.distribution.main.parameters.PolicyForwarderConfiguration public class LifecycleApiForwarderParameters extends PolicyForwarderConfigurationParameterGroup { public static final String POLICY_FORWARDER_PLUGIN_CLASS = LifecycleApiPolicyForwarder.class.getName(); - private @Valid LifecycleApiParameters apiParameters; - private @Valid LifecycleApiParameters papParameters; - private boolean isHttps; - private boolean allowSelfSignedCerts; + private @Valid RestClientParameters apiParameters; + private @Valid RestClientParameters papParameters; private boolean deployPolicies = true; public LifecycleApiForwarderParameters() { diff --git a/plugins/forwarding-plugins/src/main/java/org/onap/policy/distribution/forwarding/lifecycle/api/LifecycleApiParameters.java b/plugins/forwarding-plugins/src/main/java/org/onap/policy/distribution/forwarding/lifecycle/api/LifecycleApiParameters.java deleted file mode 100644 index 46a7b082..00000000 --- a/plugins/forwarding-plugins/src/main/java/org/onap/policy/distribution/forwarding/lifecycle/api/LifecycleApiParameters.java +++ /dev/null @@ -1,48 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * Copyright (C) 2019 Nordix Foundation. - * ================================================================================ - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - * SPDX-License-Identifier: Apache-2.0 - * ============LICENSE_END========================================================= - */ - -package org.onap.policy.distribution.forwarding.lifecycle.api; - -import lombok.Getter; -import org.onap.policy.common.parameters.annotations.Min; -import org.onap.policy.common.parameters.annotations.NotBlank; -import org.onap.policy.common.parameters.annotations.NotNull; -import org.onap.policy.distribution.main.parameters.PolicyForwarderConfigurationParameterGroup; - -/** - * Holds the parameters for the {@link LifecycleApiPolicyForwarder}. - * - * @author Ram Krishna Verma (ram.krishna.verma@est.tech) - */ -@Getter -@NotNull -@NotBlank -public class LifecycleApiParameters extends PolicyForwarderConfigurationParameterGroup { - - private String hostName; - @Min(value = 1) - private int port; - private String userName; - private String password; - - public LifecycleApiParameters() { - super(LifecycleApiParameters.class.getSimpleName()); - } -} diff --git a/plugins/forwarding-plugins/src/main/java/org/onap/policy/distribution/forwarding/lifecycle/api/LifecycleApiPolicyForwarder.java b/plugins/forwarding-plugins/src/main/java/org/onap/policy/distribution/forwarding/lifecycle/api/LifecycleApiPolicyForwarder.java index b6f41fbf..8640332d 100644 --- a/plugins/forwarding-plugins/src/main/java/org/onap/policy/distribution/forwarding/lifecycle/api/LifecycleApiPolicyForwarder.java +++ b/plugins/forwarding-plugins/src/main/java/org/onap/policy/distribution/forwarding/lifecycle/api/LifecycleApiPolicyForwarder.java @@ -31,7 +31,6 @@ import javax.ws.rs.client.Entity; import javax.ws.rs.core.HttpHeaders; import javax.ws.rs.core.MediaType; import javax.ws.rs.core.Response; -import org.onap.policy.common.endpoints.event.comm.bus.internal.BusTopicParams; import org.onap.policy.common.endpoints.http.client.HttpClient; import org.onap.policy.common.endpoints.http.client.HttpClientConfigException; import org.onap.policy.common.endpoints.http.client.HttpClientFactoryInstance; @@ -57,14 +56,20 @@ public class LifecycleApiPolicyForwarder implements PolicyForwarder { private static final String DEPLOY_POLICY_URI = "/policy/pap/v1/pdps/policies"; private static final String CREATE_POLICY_TYPE_URI = "/policy/api/v1/policytypes/"; private static final Logger LOGGER = LoggerFactory.getLogger(LifecycleApiPolicyForwarder.class); + private LifecycleApiForwarderParameters forwarderParameters; + private HttpClient apiClient; + private HttpClient papClient; /** * {@inheritDoc}. */ @Override - public void configure(final String parameterGroupName) { + public void configure(final String parameterGroupName) throws HttpClientConfigException { forwarderParameters = ParameterService.get(parameterGroupName); + + apiClient = HttpClientFactoryInstance.getClientFactory().build(forwarderParameters.getApiParameters()); + papClient = HttpClientFactoryInstance.getClientFactory().build(forwarderParameters.getPapParameters()); } /** @@ -138,32 +143,19 @@ public class LifecycleApiPolicyForwarder implements PolicyForwarder { private Response invokeHttpClient(final Entity<?> entity, final String path, final boolean wantApi) throws PolicyForwardingException { - Response response = null; - try { - response = getHttpClient(wantApi).post(path, entity, Map.of(HttpHeaders.ACCEPT, - MediaType.APPLICATION_JSON, HttpHeaders.CONTENT_TYPE, MediaType.APPLICATION_JSON)); - if (response.getStatus() / 100 != 2) { - LOGGER.error( - "Invocation of path {} failed for entity {}. Response status: {}, Response status info: {}", - path, entity, response.getStatus(), response.getStatusInfo()); - throw new PolicyForwardingException("Failed creating the entity - " + entity); - } - } catch (final HttpClientConfigException exception) { - throw new PolicyForwardingException("Invocation of path " + path + " failed for entity " + entity, - exception); + Response response = getHttpClient(wantApi).post(path, entity, Map.of(HttpHeaders.ACCEPT, + MediaType.APPLICATION_JSON, HttpHeaders.CONTENT_TYPE, MediaType.APPLICATION_JSON)); + if (response.getStatus() / 100 != 2) { + LOGGER.error( + "Invocation of path {} failed for entity {}. Response status: {}, Response status info: {}", + path, entity, response.getStatus(), response.getStatusInfo()); + throw new PolicyForwardingException("Failed creating the entity - " + entity); } return response; } - private HttpClient getHttpClient(final boolean wantApi) throws HttpClientConfigException { - final boolean https = forwarderParameters.isHttps(); - final LifecycleApiParameters parameters = - (wantApi ? forwarderParameters.getApiParameters() : forwarderParameters.getPapParameters()); - final BusTopicParams params = BusTopicParams.builder().clientName("Policy Distribution").useHttps(https) - .hostname(parameters.getHostName()).port(parameters.getPort()).userName(parameters.getUserName()) - .password(parameters.getPassword()).allowSelfSignedCerts(forwarderParameters.isAllowSelfSignedCerts()) - .build(); - return HttpClientFactoryInstance.getClientFactory().build(params); + private HttpClient getHttpClient(final boolean wantApi) { + return (wantApi ? apiClient : papClient); } } diff --git a/plugins/forwarding-plugins/src/test/java/org/onap/policy/distribution/forwarding/lifecycle/api/LifecycleApiForwarderParametersTest.java b/plugins/forwarding-plugins/src/test/java/org/onap/policy/distribution/forwarding/lifecycle/api/LifecycleApiForwarderParametersTest.java index 0f010bfc..04bcbeaf 100644 --- a/plugins/forwarding-plugins/src/test/java/org/onap/policy/distribution/forwarding/lifecycle/api/LifecycleApiForwarderParametersTest.java +++ b/plugins/forwarding-plugins/src/test/java/org/onap/policy/distribution/forwarding/lifecycle/api/LifecycleApiForwarderParametersTest.java @@ -1,6 +1,7 @@ /*- * ============LICENSE_START======================================================= * Copyright (C) 2019 Nordix Foundation. + * Modifications Copyright (C) 2021 AT&T Intellectual Property. All rights reserved. * ================================================================================ * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -20,6 +21,7 @@ package org.onap.policy.distribution.forwarding.lifecycle.api; +import static org.assertj.core.api.Assertions.assertThat; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertFalse; import static org.junit.Assert.assertTrue; @@ -54,17 +56,19 @@ public class LifecycleApiForwarderParametersTest { assertEquals(LifecycleApiForwarderParameters.class.getSimpleName(), configurationParameters.getName()); - assertFalse(configurationParameters.isHttps()); assertTrue(configurationParameters.isDeployPolicies()); - assertEquals(POLICY_API_HOST_NAME, configurationParameters.getApiParameters().getHostName()); + assertEquals(POLICY_API_HOST_NAME, configurationParameters.getApiParameters().getHostname()); assertEquals(POLICY_API_PORT, configurationParameters.getApiParameters().getPort()); + assertFalse(configurationParameters.getApiParameters().isUseHttps()); assertEquals(POLICY_API_USER, configurationParameters.getApiParameters().getUserName()); assertEquals(POLICY_API_PASSWORD, configurationParameters.getApiParameters().getPassword()); - assertEquals(POLICY_PAP_HOST_NAME, configurationParameters.getPapParameters().getHostName()); + assertEquals(POLICY_PAP_HOST_NAME, configurationParameters.getPapParameters().getHostname()); assertEquals(POLICY_PAP_PORT, configurationParameters.getPapParameters().getPort()); + assertFalse(configurationParameters.getPapParameters().isUseHttps()); assertEquals(POLICY_PAP_USER, configurationParameters.getPapParameters().getUserName()); assertEquals(POLICY_PAP_PASSWORD, configurationParameters.getPapParameters().getPassword()); + assertThat(configurationParameters.validate().getResult()).isNull(); assertEquals(ValidationStatus.CLEAN, configurationParameters.validate().getStatus()); } diff --git a/plugins/forwarding-plugins/src/test/resources/parameters/ApexPdpPolicyForwarderParameters.json b/plugins/forwarding-plugins/src/test/resources/parameters/ApexPdpPolicyForwarderParameters.json deleted file mode 100644 index d244e0be..00000000 --- a/plugins/forwarding-plugins/src/test/resources/parameters/ApexPdpPolicyForwarderParameters.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "hostname":"10.10.10.10", - "port":"1234", - "ignoreConflicts": false, - "forceUpdate": true -}
\ No newline at end of file diff --git a/plugins/forwarding-plugins/src/test/resources/parameters/ApexPdpPolicyForwarderParametersInvalid.json b/plugins/forwarding-plugins/src/test/resources/parameters/ApexPdpPolicyForwarderParametersInvalid.json deleted file mode 100644 index c87b7767..00000000 --- a/plugins/forwarding-plugins/src/test/resources/parameters/ApexPdpPolicyForwarderParametersInvalid.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "hostname":"", - "port":"-1", - "ignoreConflicts": false, - "forceUpdate": true -} diff --git a/plugins/forwarding-plugins/src/test/resources/parameters/LifecycleApiPolicyForwarderParameters.json b/plugins/forwarding-plugins/src/test/resources/parameters/LifecycleApiPolicyForwarderParameters.json index 0791e1ae..ba6058b2 100644 --- a/plugins/forwarding-plugins/src/test/resources/parameters/LifecycleApiPolicyForwarderParameters.json +++ b/plugins/forwarding-plugins/src/test/resources/parameters/LifecycleApiPolicyForwarderParameters.json @@ -1,16 +1,19 @@ { "apiParameters": { - "hostName": "0.0.0.0", + "clientName": "policy-api", + "hostname": "0.0.0.0", "port": 6969, + "useHttps": false, "userName": "healthcheck", "password": "zb!XztG34" }, "papParameters": { - "hostName": "0.0.0.0", + "clientName": "policy-pap", + "hostname": "0.0.0.0", "port": 6969, + "useHttps": false, "userName": "healthcheck", "password": "zb!XztG34" }, - "isHttps": false, "deployPolicies": true -}
\ No newline at end of file +} diff --git a/plugins/forwarding-plugins/src/test/resources/parameters/LifecycleApiPolicyForwarderParametersInvalid.json b/plugins/forwarding-plugins/src/test/resources/parameters/LifecycleApiPolicyForwarderParametersInvalid.json index ca0558a6..88dd74ba 100644 --- a/plugins/forwarding-plugins/src/test/resources/parameters/LifecycleApiPolicyForwarderParametersInvalid.json +++ b/plugins/forwarding-plugins/src/test/resources/parameters/LifecycleApiPolicyForwarderParametersInvalid.json @@ -1,16 +1,19 @@ { "apiParameters": { - "hostName": "", + "clientName": "policy-api", + "hostname": "", "port": -1, + "useHttps": false, "userName": "healthcheck", "password": "zb!XztG34" }, "papParameters": { - "hostName": "", + "clientName": "policy-pap", + "hostname": "", "port": -2, + "useHttps": false, "userName": "healthcheck", "password": "zb!XztG34" }, - "isHttps": false, "deployPolicies": true -}
\ No newline at end of file +} diff --git a/plugins/forwarding-plugins/src/test/resources/parameters/XacmlPdpPolicyForwarderParameters.json b/plugins/forwarding-plugins/src/test/resources/parameters/XacmlPdpPolicyForwarderParameters.json deleted file mode 100644 index 0e115ef2..00000000 --- a/plugins/forwarding-plugins/src/test/resources/parameters/XacmlPdpPolicyForwarderParameters.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "useHttps": true, - "hostname": "10.10.10.10", - "port": 1234, - "userName": "myUser", - "password": "myPassword", - "clientAuth": "myClientAuth", - "isManaged": false, - "pdpGroup": "myPdpGroup" -}
\ No newline at end of file diff --git a/plugins/forwarding-plugins/src/test/resources/parameters/XacmlPdpPolicyForwarderParametersInvalid.json b/plugins/forwarding-plugins/src/test/resources/parameters/XacmlPdpPolicyForwarderParametersInvalid.json deleted file mode 100644 index 03e342b6..00000000 --- a/plugins/forwarding-plugins/src/test/resources/parameters/XacmlPdpPolicyForwarderParametersInvalid.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "useHttps": true, - "hostname": "", - "port": -2, - "userName": "", - "password": "", - "clientAuth": "myClientAuth", - "isManaged": false, - "pdpGroup": "default" -}
\ No newline at end of file diff --git a/reception/src/main/java/org/onap/policy/distribution/reception/handling/PluginHandler.java b/reception/src/main/java/org/onap/policy/distribution/reception/handling/PluginHandler.java index c2ea8009..ecd40e92 100644 --- a/reception/src/main/java/org/onap/policy/distribution/reception/handling/PluginHandler.java +++ b/reception/src/main/java/org/onap/policy/distribution/reception/handling/PluginHandler.java @@ -26,6 +26,7 @@ import java.lang.reflect.InvocationTargetException; import java.util.ArrayList; import java.util.Collection; import java.util.Map; +import org.onap.policy.common.endpoints.http.client.HttpClientConfigException; import org.onap.policy.common.parameters.ParameterService; import org.onap.policy.distribution.forwarding.PolicyForwarder; import org.onap.policy.distribution.forwarding.parameters.PolicyForwarderParameters; @@ -120,7 +121,7 @@ public class PluginHandler { policyForwarders.add(policyForwarder); } catch (final ClassNotFoundException | InstantiationException | IllegalAccessException | IllegalArgumentException | InvocationTargetException | NoSuchMethodException - | SecurityException exp) { + | SecurityException | HttpClientConfigException exp) { throw new PluginInitializationException(exp.getMessage(), exp.getCause()); } } diff --git a/testsuites/stability/src/main/resources/distributionsetup/distribution/etc/defaultConfig.json b/testsuites/stability/src/main/resources/distributionsetup/distribution/etc/defaultConfig.json index 98a135ce..ec36c7ae 100644 --- a/testsuites/stability/src/main/resources/distributionsetup/distribution/etc/defaultConfig.json +++ b/testsuites/stability/src/main/resources/distributionsetup/distribution/etc/defaultConfig.json @@ -53,18 +53,21 @@ "parameterClassName": "org.onap.policy.distribution.forwarding.lifecycle.api.LifecycleApiForwarderParameters", "parameters": { "apiParameters": { - "hostName": "policy-api", + "clientName": "policy-api", + "hostname": "policy-api", "port": 6969, + "useHttps": true, "userName": "healthcheck", "password": "zb!XztG34" }, "papParameters": { - "hostName": "policy-pap", + "clientName": "policy-pap", + "hostname": "policy-pap", "port": 7000, + "useHttps": true, "userName": "healthcheck", "password": "zb!XztG34" }, - "isHttps": true, "deployPolicies": true } } |