From 9de4055ab950735268e037a1e9cc41d998df7252 Mon Sep 17 00:00:00 2001 From: isaac Date: Tue, 4 Jan 2022 16:34:20 -0600 Subject: Adding totalPolicyDeployCounts updates to PapStasticsManager Issue-ID: POLICY-3836 Signed-off-by: isaac Change-Id: Ia4ed2595984f68bf75ca9dacb6aa76f04a306224 --- .../pap/main/rest/PdpGroupDeployProvider.java | 5 ++++- .../onap/policy/pap/main/rest/ProviderSuper.java | 6 ++++-- .../pap/main/rest/TestPdpGroupDeployProvider.java | 22 ++++++++++++++++++- .../resources/simpleDeploy/multiple_requests.json | 25 ++++++++++++++++++++++ 4 files changed, 54 insertions(+), 4 deletions(-) create mode 100644 main/src/test/resources/simpleDeploy/multiple_requests.json (limited to 'main/src') diff --git a/main/src/main/java/org/onap/policy/pap/main/rest/PdpGroupDeployProvider.java b/main/src/main/java/org/onap/policy/pap/main/rest/PdpGroupDeployProvider.java index 5277ca69..2963fe62 100644 --- a/main/src/main/java/org/onap/policy/pap/main/rest/PdpGroupDeployProvider.java +++ b/main/src/main/java/org/onap/policy/pap/main/rest/PdpGroupDeployProvider.java @@ -2,7 +2,7 @@ * ============LICENSE_START======================================================= * ONAP PAP * ================================================================================ - * Copyright (C) 2019, 2021 AT&T Intellectual Property. All rights reserved. + * Copyright (C) 2019, 2022 AT&T Intellectual Property. All rights reserved. * Modifications Copyright (C) 2020-2021 Nordix Foundation. * Modifications Copyright (C) 2021 Bell Canada. All rights reserved. * ================================================================================ @@ -56,6 +56,7 @@ import org.onap.policy.models.pdp.concepts.PdpSubGroup; import org.onap.policy.models.tosca.authorative.concepts.ToscaConceptIdentifier; import org.onap.policy.models.tosca.authorative.concepts.ToscaConceptIdentifierOptVersion; import org.onap.policy.models.tosca.authorative.concepts.ToscaPolicy; +import org.onap.policy.pap.main.PapConstants; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.stereotype.Service; @@ -428,6 +429,8 @@ public class PdpGroupDeployProvider extends ProviderBase { ToscaConceptIdentifier desiredIdent = policy.getIdentifier(); ToscaConceptIdentifier desiredType = policy.getTypeIdentifier(); + PapStatisticsManager mgr = Registry.get(PapConstants.REG_STATISTICS_MANAGER, PapStatisticsManager.class); + mgr.updateTotalPolicyDeployCount(); return (group, subgroup) -> { diff --git a/main/src/test/java/org/onap/policy/pap/main/rest/ProviderSuper.java b/main/src/test/java/org/onap/policy/pap/main/rest/ProviderSuper.java index f5798fd5..26e44d80 100644 --- a/main/src/test/java/org/onap/policy/pap/main/rest/ProviderSuper.java +++ b/main/src/test/java/org/onap/policy/pap/main/rest/ProviderSuper.java @@ -2,7 +2,7 @@ * ============LICENSE_START======================================================= * ONAP PAP * ================================================================================ - * Copyright (C) 2019-2021 AT&T Intellectual Property. All rights reserved. + * Copyright (C) 2019-2022 AT&T Intellectual Property. All rights reserved. * Modifications Copyright (C) 2021 Nordix Foundation. * ================================================================================ * Licensed under the Apache License, Version 2.0 (the "License"); @@ -81,7 +81,7 @@ public class ProviderSuper { protected PdpModifyRequestMap reqmap; protected PolicyModelsProviderFactoryWrapper daofact; protected ToscaPolicy policy1; - + protected PapStatisticsManager statsmanager; /** * Configures DAO, captors, and various mocks. @@ -98,6 +98,7 @@ public class ProviderSuper { lockit = new Object(); daofact = mock(PolicyModelsProviderFactoryWrapper.class); policy1 = loadPolicy("policy.json"); + statsmanager = mock(PapStatisticsManager.class); when(daofact.create()).thenReturn(dao); @@ -112,6 +113,7 @@ public class ProviderSuper { Registry.register(PapConstants.REG_PDP_MODIFY_MAP, reqmap); Registry.register(PapConstants.REG_PAP_DAO_FACTORY, daofact); Registry.register(PapConstants.REG_POLICY_NOTIFIER, notifier); + Registry.register(PapConstants.REG_STATISTICS_MANAGER, statsmanager); } protected void assertGroup(List groups, String name) { diff --git a/main/src/test/java/org/onap/policy/pap/main/rest/TestPdpGroupDeployProvider.java b/main/src/test/java/org/onap/policy/pap/main/rest/TestPdpGroupDeployProvider.java index 40e37e4f..28e515f3 100644 --- a/main/src/test/java/org/onap/policy/pap/main/rest/TestPdpGroupDeployProvider.java +++ b/main/src/test/java/org/onap/policy/pap/main/rest/TestPdpGroupDeployProvider.java @@ -2,7 +2,7 @@ * ============LICENSE_START======================================================= * ONAP PAP * ================================================================================ - * Copyright (C) 2019-2021 AT&T Intellectual Property. All rights reserved. + * Copyright (C) 2019-2022 AT&T Intellectual Property. All rights reserved. * Modifications Copyright (C) 2021 Nordix Foundation. * Modifications Copyright (C) 2021 Bell Canada. All rights reserved. * ================================================================================ @@ -54,6 +54,7 @@ import org.onap.policy.models.pdp.concepts.PdpSubGroup; import org.onap.policy.models.pdp.concepts.PdpUpdate; import org.onap.policy.models.tosca.authorative.concepts.ToscaConceptIdentifier; import org.onap.policy.models.tosca.authorative.concepts.ToscaPolicy; +import org.onap.policy.pap.main.PapConstants; public class TestPdpGroupDeployProvider extends ProviderSuper { @@ -575,6 +576,25 @@ public class TestPdpGroupDeployProvider extends ProviderSuper { .hasMessage("policy not supported by any PDP group: policyA 1.2.3"); } + /** + * Tests PapStatisticsManager counts when policies are added to a subgroup. + * + * @throws Exception if an error occurs + */ + @Test + public void testDeployedPdpGroupCountStatistics() throws Exception { + Registry.unregister(PapConstants.REG_STATISTICS_MANAGER); + PapStatisticsManager mgr = new PapStatisticsManager(); + Registry.register(PapConstants.REG_STATISTICS_MANAGER, mgr); + + when(dao.getFilteredPdpGroups(any())).thenReturn(loadGroups("deployPoliciesWildCard.json")); + prov.deployPolicies(loadRequest("multiple_requests.json"), DEFAULT_USER); + assertEquals(mgr.getTotalPolicyDeployCount(), 3); + + Registry.unregister(PapConstants.REG_STATISTICS_MANAGER); + Registry.register(PapConstants.REG_STATISTICS_MANAGER, statsmanager); + } + @Test public void testMakeUpdater() throws Exception { /* diff --git a/main/src/test/resources/simpleDeploy/multiple_requests.json b/main/src/test/resources/simpleDeploy/multiple_requests.json new file mode 100644 index 00000000..926d4860 --- /dev/null +++ b/main/src/test/resources/simpleDeploy/multiple_requests.json @@ -0,0 +1,25 @@ +{ + "policies": [ + { + "name": "policy_test1", + "policy-id": "policy_test1", + "version": "1.2.3", + "type": "typeA", + "type_version": "100.2.3" + }, + { + "name": "policy_test2", + "policy-id": "policy_test2", + "version": "4.5.6", + "type": "typeB", + "type_version": "100.2.3" + }, + { + "name": "policy_test3", + "policy-id": "policy_test3", + "version": "1.2.3", + "type": "typeC", + "type_version": "100.2.3" + } + ] +} -- cgit 1.2.3-korg