From ff1698142a22a4811895d2ac7047fbadbb36b396 Mon Sep 17 00:00:00 2001 From: Suresh Charan Date: Wed, 7 Jun 2023 20:57:51 -0400 Subject: Removed db-based statistics feature DB-based statistics code cleanup Issue-ID: POLICY-4109 Change-Id: I298d6c1df6916e399694b4f98e4ef5355deb16af Signed-off-by: Suresh Charan --- .../main/rest/DistributionRestController.java | 10 +- .../distribution/main/rest/StatisticsProvider.java | 50 -------- .../distribution/main/rest/StatisticsReport.java | 46 -------- .../main/rest/TestDistributionStatistics.java | 129 --------------------- .../TestHttpsStatisticDistributionRestServer.java | 117 ------------------- .../main/rest/TestStatisticsReport.java | 46 -------- 6 files changed, 1 insertion(+), 397 deletions(-) delete mode 100644 main/src/main/java/org/onap/policy/distribution/main/rest/StatisticsProvider.java delete mode 100644 main/src/main/java/org/onap/policy/distribution/main/rest/StatisticsReport.java delete mode 100644 main/src/test/java/org/onap/policy/distribution/main/rest/TestDistributionStatistics.java delete mode 100644 main/src/test/java/org/onap/policy/distribution/main/rest/TestHttpsStatisticDistributionRestServer.java delete mode 100644 main/src/test/java/org/onap/policy/distribution/main/rest/TestStatisticsReport.java (limited to 'main') diff --git a/main/src/main/java/org/onap/policy/distribution/main/rest/DistributionRestController.java b/main/src/main/java/org/onap/policy/distribution/main/rest/DistributionRestController.java index 1b87fb51..702f8a2a 100644 --- a/main/src/main/java/org/onap/policy/distribution/main/rest/DistributionRestController.java +++ b/main/src/main/java/org/onap/policy/distribution/main/rest/DistributionRestController.java @@ -1,6 +1,7 @@ /*- * ============LICENSE_START======================================================= * Copyright (C) 2018 Ericsson. All rights reserved. + * Modifications Copyright (C) 2023 Bell Canada. 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. @@ -56,13 +57,4 @@ public class DistributionRestController { return Response.status(Response.Status.OK).entity(new HealthCheckProvider().performHealthCheck()).build(); } - @GET - @Path("statistics") - @Produces(MediaType.APPLICATION_JSON) - @ApiOperation(value = "Fetch current statistics", - notes = "Provides current statistics of the Policy Distribution component", - response = StatisticsReport.class) - public Response statistics() { - return Response.status(Response.Status.OK).entity(new StatisticsProvider().fetchCurrentStatistics()).build(); - } } diff --git a/main/src/main/java/org/onap/policy/distribution/main/rest/StatisticsProvider.java b/main/src/main/java/org/onap/policy/distribution/main/rest/StatisticsProvider.java deleted file mode 100644 index 426436fb..00000000 --- a/main/src/main/java/org/onap/policy/distribution/main/rest/StatisticsProvider.java +++ /dev/null @@ -1,50 +0,0 @@ -/*- - * ============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. - * 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.main.rest; - -import org.onap.policy.distribution.main.startstop.DistributionActivator; -import org.onap.policy.distribution.reception.statistics.DistributionStatisticsManager; - -/** - * Class to fetch statistics of distribution service. - * - * @author Ram Krishna Verma (ram.krishna.verma@ericsson.com) - */ -public class StatisticsProvider { - - /** - * Returns the current statistics of distribution service. - * - * @return Report containing statistics of distribution service - */ - public StatisticsReport fetchCurrentStatistics() { - final var report = new StatisticsReport(); - report.setCode(DistributionActivator.isAlive() ? 200 : 500); - report.setTotalDistributionCount(DistributionStatisticsManager.getTotalDistributionCount()); - report.setDistributionSuccessCount(DistributionStatisticsManager.getDistributionSuccessCount()); - report.setDistributionFailureCount(DistributionStatisticsManager.getDistributionFailureCount()); - report.setTotalDownloadCount(DistributionStatisticsManager.getTotalDownloadCount()); - report.setDownloadSuccessCount(DistributionStatisticsManager.getDownloadSuccessCount()); - report.setDownloadFailureCount(DistributionStatisticsManager.getDownloadFailureCount()); - return report; - } -} diff --git a/main/src/main/java/org/onap/policy/distribution/main/rest/StatisticsReport.java b/main/src/main/java/org/onap/policy/distribution/main/rest/StatisticsReport.java deleted file mode 100644 index 107d7803..00000000 --- a/main/src/main/java/org/onap/policy/distribution/main/rest/StatisticsReport.java +++ /dev/null @@ -1,46 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * Copyright (C) 2018 Ericsson. All rights reserved. - * Modifications Copyright (C) 2021 AT&T Intellectual Property. All rights reserved. - * Modifications Copyright (C) 2021 Bell Canada. 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. - * 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.main.rest; - -import lombok.Getter; -import lombok.Setter; -import lombok.ToString; - -/** - * Class to represent statistics report of distribution service. - * - * @author Ram Krishna Verma (ram.krishna.verma@ericsson.com) - */ -@ToString -@Getter -@Setter -public class StatisticsReport { - - private int code; - private long totalDistributionCount; - private long distributionSuccessCount; - private long distributionFailureCount; - private long totalDownloadCount; - private long downloadSuccessCount; - private long downloadFailureCount; -} diff --git a/main/src/test/java/org/onap/policy/distribution/main/rest/TestDistributionStatistics.java b/main/src/test/java/org/onap/policy/distribution/main/rest/TestDistributionStatistics.java deleted file mode 100644 index 0c732571..00000000 --- a/main/src/test/java/org/onap/policy/distribution/main/rest/TestDistributionStatistics.java +++ /dev/null @@ -1,129 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * Copyright (C) 2018 Ericsson. All rights reserved. - * Copyright (C) 2019 Nordix Foundation. - * Modifications Copyright (C) 2019-2020 AT&T Intellectual Property. All rights reserved. - * Modifications Copyright (C) 2020 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.main.rest; - -import static org.assertj.core.api.Assertions.assertThatCode; -import static org.junit.Assert.assertEquals; - -import java.io.IOException; -import javax.ws.rs.client.Client; -import javax.ws.rs.client.ClientBuilder; -import javax.ws.rs.client.Invocation; -import javax.ws.rs.client.WebTarget; -import javax.ws.rs.core.MediaType; -import org.glassfish.jersey.client.ClientConfig; -import org.glassfish.jersey.client.authentication.HttpAuthenticationFeature; -import org.junit.Test; -import org.mockito.internal.util.reflection.Whitebox; -import org.onap.policy.common.endpoints.http.server.RestServer; -import org.onap.policy.common.endpoints.parameters.RestServerParameters; -import org.onap.policy.common.utils.network.NetworkUtil; -import org.onap.policy.distribution.main.PolicyDistributionException; -import org.onap.policy.distribution.main.parameters.CommonTestData; -import org.onap.policy.distribution.main.startstop.Main; -import org.onap.policy.distribution.reception.statistics.DistributionStatisticsManager; - -/** - * Class to perform unit test of {@link DistributionRestController}. - * - * @author Ram Krishna Verma (ram.krishna.verma@ericsson.com) - */ -public class TestDistributionStatistics { - - private int port; - - @Test - public void testDistributionStatistics_200() { - assertThatCode(() -> { - final Main main = startDistributionService(); - StatisticsReport report = getDistributionStatistics(); - validateReport(report, 0, 200); - updateDistributionStatistics(); - report = getDistributionStatistics(); - validateReport(report, 1, 200); - stopDistributionService(main); - DistributionStatisticsManager.resetAllStatistics(); - }).doesNotThrowAnyException(); - } - - @Test - public void testDistributionStatistics_500() throws InterruptedException, IOException { - port = NetworkUtil.allocPort(); - final RestServerParameters restServerParams = new CommonTestData().getRestServerParameters(false); - Whitebox.setInternalState(restServerParams, "port", port); - restServerParams.setName(CommonTestData.DISTRIBUTION_GROUP_NAME); - final RestServer restServer = new RestServer(restServerParams, null, DistributionRestController.class); - assertThatCode(() -> { - restServer.start(); - final StatisticsReport report = getDistributionStatistics(); - validateReport(report, 0, 500); - restServer.shutdown(); - DistributionStatisticsManager.resetAllStatistics(); - }).doesNotThrowAnyException(); - } - - private Main startDistributionService() throws IOException { - port = CommonTestData.makeConfigFile("parameters/DistributionConfigParameters.json"); - final String[] distributionConfigParameters = { "-c", CommonTestData.CONFIG_FILE }; - return new Main(distributionConfigParameters); - } - - private void stopDistributionService(final Main main) throws PolicyDistributionException { - main.shutdown(); - } - - private StatisticsReport getDistributionStatistics() throws InterruptedException, IOException { - final ClientConfig clientConfig = new ClientConfig(); - - final HttpAuthenticationFeature feature = HttpAuthenticationFeature.basic("healthcheck", "zb!XztG34"); - clientConfig.register(feature); - - final Client client = ClientBuilder.newClient(clientConfig); - final WebTarget webTarget = client.target("http://localhost:" + port + "/statistics"); - - final Invocation.Builder invocationBuilder = webTarget.request(MediaType.APPLICATION_JSON); - - CommonTestData.awaitServer(port); - return invocationBuilder.get(StatisticsReport.class); - } - - private void updateDistributionStatistics() { - DistributionStatisticsManager.updateTotalDistributionCount(); - DistributionStatisticsManager.updateDistributionSuccessCount(); - DistributionStatisticsManager.updateDistributionFailureCount(); - DistributionStatisticsManager.updateTotalDownloadCount(); - DistributionStatisticsManager.updateDownloadSuccessCount(); - DistributionStatisticsManager.updateDownloadFailureCount(); - } - - private void validateReport(final StatisticsReport report, final int count, final int code) { - assertEquals(code, report.getCode()); - assertEquals(count, report.getTotalDistributionCount()); - assertEquals(count, report.getDistributionSuccessCount()); - assertEquals(count, report.getDistributionFailureCount()); - assertEquals(count, report.getTotalDownloadCount()); - assertEquals(count, report.getDownloadSuccessCount()); - assertEquals(count, report.getDownloadFailureCount()); - } -} diff --git a/main/src/test/java/org/onap/policy/distribution/main/rest/TestHttpsStatisticDistributionRestServer.java b/main/src/test/java/org/onap/policy/distribution/main/rest/TestHttpsStatisticDistributionRestServer.java deleted file mode 100644 index d47cb52d..00000000 --- a/main/src/test/java/org/onap/policy/distribution/main/rest/TestHttpsStatisticDistributionRestServer.java +++ /dev/null @@ -1,117 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * Copyright (C) 2018 Intel. All rights reserved. - * Copyright (C) 2019 Nordix Foundation. - * Modifications Copyright (C) 2020-2021 AT&T Intellectual Property. All rights reserved. - * Modifications Copyright (C) 2020 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.main.rest; - -import static org.assertj.core.api.Assertions.assertThatCode; -import static org.junit.Assert.assertEquals; - -import java.io.IOException; -import java.security.SecureRandom; -import java.util.Properties; -import javax.net.ssl.SSLContext; -import javax.net.ssl.TrustManager; -import javax.ws.rs.client.Client; -import javax.ws.rs.client.ClientBuilder; -import javax.ws.rs.client.Invocation; -import javax.ws.rs.client.WebTarget; -import javax.ws.rs.core.MediaType; -import org.glassfish.jersey.client.authentication.HttpAuthenticationFeature; -import org.junit.Before; -import org.junit.Test; -import org.onap.policy.common.parameters.ParameterService; -import org.onap.policy.common.utils.network.NetworkUtil; -import org.onap.policy.common.utils.security.SelfSignedKeyStore; -import org.onap.policy.distribution.main.PolicyDistributionException; -import org.onap.policy.distribution.main.parameters.CommonTestData; -import org.onap.policy.distribution.main.startstop.Main; - -/** - * Class to perform unit test of HealthCheckMonitor. - * - * @author Libo Zhu (libo.zhu@intel.com) - */ -public class TestHttpsStatisticDistributionRestServer { - - private int port; - - @Before - public void setUp() { - ParameterService.clear(); - } - - @Test - public void testHttpsDistributionStatistic() { - assertThatCode(() -> { - final Main main = startDistributionService(); - final StatisticsReport report = performStatisticCheck(); - validateReport(200, 0, 0, 0, 0, 0, 0, report); - stopDistributionService(main); - }).doesNotThrowAnyException(); - } - - private Main startDistributionService() throws IOException, InterruptedException { - final Properties systemProps = System.getProperties(); - systemProps.put("javax.net.ssl.keyStore", new SelfSignedKeyStore().getKeystoreName()); - systemProps.put("javax.net.ssl.keyStorePassword", SelfSignedKeyStore.KEYSTORE_PASSWORD); - System.setProperties(systemProps); - - port = CommonTestData.makeConfigFile("parameters/DistributionConfigParameters_Https.json"); - final String[] distributionConfigParameters = { "-c", CommonTestData.CONFIG_FILE }; - return new Main(distributionConfigParameters); - } - - private void stopDistributionService(final Main main) throws PolicyDistributionException { - main.shutdown(); - } - - private StatisticsReport performStatisticCheck() throws Exception { - final TrustManager[] noopTrustManager = NetworkUtil.getAlwaysTrustingManager(); - - final SSLContext sc = SSLContext.getInstance("TLSv1.2"); - sc.init(null, noopTrustManager, new SecureRandom()); - final ClientBuilder clientBuilder = - ClientBuilder.newBuilder().sslContext(sc).hostnameVerifier((host, session) -> true); - final Client client = clientBuilder.build(); - final HttpAuthenticationFeature feature = HttpAuthenticationFeature.basic("healthcheck", "zb!XztG34"); - client.register(feature); - - final WebTarget webTarget = client.target("https://localhost:" + port + "/statistics"); - - final Invocation.Builder invocationBuilder = webTarget.request(MediaType.APPLICATION_JSON); - - CommonTestData.awaitServer(port); - return invocationBuilder.get(StatisticsReport.class); - } - - private void validateReport(final int code, final int total, final int successCount, final int failureCount, - final int download, final int downloadSuccess, final int downloadFailure, final StatisticsReport report) { - assertEquals(code, report.getCode()); - assertEquals(total, report.getTotalDistributionCount()); - assertEquals(successCount, report.getDistributionSuccessCount()); - assertEquals(failureCount, report.getDistributionFailureCount()); - assertEquals(download, report.getTotalDownloadCount()); - assertEquals(downloadSuccess, report.getDownloadSuccessCount()); - assertEquals(downloadFailure, report.getDownloadFailureCount()); - } -} diff --git a/main/src/test/java/org/onap/policy/distribution/main/rest/TestStatisticsReport.java b/main/src/test/java/org/onap/policy/distribution/main/rest/TestStatisticsReport.java deleted file mode 100644 index 299c5e3d..00000000 --- a/main/src/test/java/org/onap/policy/distribution/main/rest/TestStatisticsReport.java +++ /dev/null @@ -1,46 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * Copyright (C) 2018 Ericsson. 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. - * 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.main.rest; - -import com.openpojo.reflection.filters.FilterClassName; -import com.openpojo.validation.Validator; -import com.openpojo.validation.ValidatorBuilder; -import com.openpojo.validation.rule.impl.SetterMustExistRule; -import com.openpojo.validation.test.impl.GetterTester; -import com.openpojo.validation.test.impl.SetterTester; -import org.junit.Test; -import org.onap.policy.common.utils.test.ToStringTester; - -/** - * Class to perform unit testing of {@link StatisticsReport}. - * - * @author Ram Krishna Verma (ram.krishna.verma@ericsson.com) - */ -public class TestStatisticsReport { - - @Test - public void testStatisticsReport() { - final Validator validator = ValidatorBuilder.create().with(new ToStringTester()).with(new SetterMustExistRule()) - .with(new SetterTester()).with(new GetterTester()).build(); - validator.validate(StatisticsReport.class.getPackage().getName(), - new FilterClassName(StatisticsReport.class.getName())); - } -} -- cgit 1.2.3-korg