diff options
author | Suresh Charan <suresh.charan@bell.ca> | 2023-03-29 09:45:13 -0400 |
---|---|---|
committer | Adheli Tavares <adheli.tavares@est.tech> | 2023-08-09 15:41:30 +0000 |
commit | 7ef097fb909c69c43e0d8b4387e59640c4ddaf82 (patch) | |
tree | d7c070273f5f07fcae4152b41181a787c39a790e | |
parent | f78237c84420aa8db35ae70d8c9d177307471474 (diff) |
Removed db-based statistics feature
Statistics code cleanup
Issue-ID: POLICY-4109
Change-Id: I4b94d8c0c9b0ff68569c5861f8797920efe67b17
Signed-off-by: Suresh Charan <suresh.charan@bell.ca>
(cherry picked from commit d19537308cbdce440c1faf819eb586983d0a67c9)
11 files changed, 6 insertions, 799 deletions
diff --git a/models-pdp/src/main/java/org/onap/policy/models/pdp/concepts/PdpStatistics.java b/models-pdp/src/main/java/org/onap/policy/models/pdp/concepts/PdpStatistics.java deleted file mode 100644 index 13b3bdc33..000000000 --- a/models-pdp/src/main/java/org/onap/policy/models/pdp/concepts/PdpStatistics.java +++ /dev/null @@ -1,79 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * Copyright (C) 2019-2021 Nordix Foundation. - * Modifications Copyright (C) 2019 AT&T Intellectual Property. - * ================================================================================ - * 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.models.pdp.concepts; - - -import java.time.Instant; -import java.util.List; -import lombok.Data; -import lombok.NoArgsConstructor; -import lombok.NonNull; -import org.onap.policy.models.base.PfUtils; - -/** - * Class to represent statistics of a running PDP. - * - * @author Ram Krishna Verma (ram.krishna.verma@est.tech) - */ -@Data -@NoArgsConstructor -public class PdpStatistics { - - private String pdpInstanceId; - private Instant timeStamp; - private Long generatedId; - private String pdpGroupName; - private String pdpSubGroupName; - private long policyExecutedCount; - private long policyExecutedSuccessCount; - private long policyExecutedFailCount; - private long policyDeployCount; - private long policyDeploySuccessCount; - private long policyDeployFailCount; - private long policyUndeployCount; - private long policyUndeploySuccessCount; - private long policyUndeployFailCount; - private List<PdpEngineWorkerStatistics> engineStats; - - /** - * Constructs the object, making a deep copy. - * - * @param source source from which to copy - */ - public PdpStatistics(@NonNull PdpStatistics source) { - this.pdpInstanceId = source.pdpInstanceId; - this.timeStamp = source.timeStamp; - this.generatedId = source.generatedId; - this.pdpGroupName = source.pdpGroupName; - this.pdpSubGroupName = source.pdpSubGroupName; - this.policyExecutedCount = source.policyExecutedCount; - this.policyExecutedFailCount = source.policyExecutedFailCount; - this.policyExecutedSuccessCount = source.policyExecutedSuccessCount; - this.policyDeployCount = source.policyDeployCount; - this.policyDeployFailCount = source.policyDeployFailCount; - this.policyDeploySuccessCount = source.policyDeploySuccessCount; - this.policyUndeployCount = source.policyUndeployCount; - this.policyUndeployFailCount = source.policyUndeployFailCount; - this.policyUndeploySuccessCount = source.policyUndeploySuccessCount; - this.engineStats = PfUtils.mapList(source.engineStats, PdpEngineWorkerStatistics::new, null); - } -} diff --git a/models-pdp/src/main/java/org/onap/policy/models/pdp/concepts/PdpStatus.java b/models-pdp/src/main/java/org/onap/policy/models/pdp/concepts/PdpStatus.java index 3d85f4bc4..c51c1b277 100644 --- a/models-pdp/src/main/java/org/onap/policy/models/pdp/concepts/PdpStatus.java +++ b/models-pdp/src/main/java/org/onap/policy/models/pdp/concepts/PdpStatus.java @@ -2,6 +2,7 @@ * ============LICENSE_START======================================================= * Copyright (C) 2019-2021 Nordix Foundation. * Modifications Copyright (C) 2019, 2021 AT&T Intellectual Property. + * 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,7 +57,6 @@ public class PdpStatus extends PdpMessage { private List<ToscaConceptIdentifier> policies; private String deploymentInstanceInfo; private String properties; - private PdpStatistics statistics; private PdpResponseDetails response; /** @@ -82,7 +82,6 @@ public class PdpStatus extends PdpMessage { this.policies = PfUtils.mapList(source.policies, ToscaConceptIdentifier::new, new ArrayList<>(0)); this.deploymentInstanceInfo = source.deploymentInstanceInfo; this.properties = source.properties; - this.statistics = (source.statistics == null ? null : new PdpStatistics(source.statistics)); this.response = (source.response == null ? null : new PdpResponseDetails(source.response)); } } diff --git a/models-pdp/src/main/java/org/onap/policy/models/pdp/persistence/concepts/JpaPdpStatistics.java b/models-pdp/src/main/java/org/onap/policy/models/pdp/persistence/concepts/JpaPdpStatistics.java deleted file mode 100644 index 57a8ec97e..000000000 --- a/models-pdp/src/main/java/org/onap/policy/models/pdp/persistence/concepts/JpaPdpStatistics.java +++ /dev/null @@ -1,296 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * ONAP Policy Model - * ================================================================================ - * Copyright (C) 2019-2021,2023 Nordix Foundation. - * Modifications Copyright (C) 2020-2021 AT&T Intellectual Property. All rights reserved. - * Modifications Copyright (C) 2022 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.models.pdp.persistence.concepts; - -import java.io.Serializable; -import java.time.Instant; -import java.util.ArrayList; -import java.util.Date; -import java.util.List; -import javax.persistence.Column; -import javax.persistence.ElementCollection; -import javax.persistence.Entity; -import javax.persistence.GeneratedValue; -import javax.persistence.GenerationType; -import javax.persistence.Id; -import javax.persistence.Index; -import javax.persistence.Inheritance; -import javax.persistence.InheritanceType; -import javax.persistence.Table; -import javax.persistence.TableGenerator; -import javax.persistence.Temporal; -import javax.persistence.TemporalType; -import lombok.AllArgsConstructor; -import lombok.Data; -import lombok.EqualsAndHashCode; -import lombok.NonNull; -import org.apache.commons.lang3.builder.CompareToBuilder; -import org.onap.policy.common.parameters.BeanValidationResult; -import org.onap.policy.common.parameters.ValidationStatus; -import org.onap.policy.common.parameters.annotations.Pattern; -import org.onap.policy.models.base.PfAuthorative; -import org.onap.policy.models.base.PfConcept; -import org.onap.policy.models.base.PfConceptKey; -import org.onap.policy.models.base.PfKey; -import org.onap.policy.models.base.PfUtils; -import org.onap.policy.models.base.Validated; -import org.onap.policy.models.pdp.concepts.PdpEngineWorkerStatistics; -import org.onap.policy.models.pdp.concepts.PdpStatistics; - -/** - * Class to represent a PDP statistics in the database. - * - */ -@Entity -@Table( - name = "PdpStatistics", - indexes = { - @Index( - name = "IDXTSIDX1", - columnList = "timeStamp,name,version", - unique = true - ) - } -) -@Inheritance(strategy = InheritanceType.TABLE_PER_CLASS) -@Data -@AllArgsConstructor -@EqualsAndHashCode(callSuper = false) -public class JpaPdpStatistics extends PfConcept implements PfAuthorative<PdpStatistics>, Serializable { - private static final long serialVersionUID = -7312974966820980659L; - - @Id - @Column(name = "ID") - @GeneratedValue(strategy = GenerationType.TABLE, generator = "statisticsIdGen") - @TableGenerator( - name = "statisticsIdGen", - table = "statistics_sequence", - pkColumnName = "SEQ_NAME", - valueColumnName = "SEQ_COUNT", - pkColumnValue = "SEQ_GEN") - private Long generatedId; - - @Column(name = "name", length = 120) - @Pattern(regexp = PfKey.NAME_REGEXP) - private String name; - - @Column(name = "version", length = 20) - @Pattern(regexp = PfKey.VERSION_REGEXP) - private String version; - - @Column(precision = 3) - @Temporal(TemporalType.TIMESTAMP) - private Date timeStamp; - - @Column(length = 120) - private String pdpGroupName; - - @Column(length = 120) - private String pdpSubGroupName; - - @Column - private long policyDeployCount; - - @Column - private long policyDeploySuccessCount; - - @Column - private long policyDeployFailCount; - - @Column - private long policyExecutedCount; - - @Column - private long policyExecutedSuccessCount; - - @Column - private long policyExecutedFailCount; - - @Column - private long policyUndeployCount; - - @Column - private long policyUndeploySuccessCount; - - @Column - private long policyUndeployFailCount; - - @ElementCollection - private List<PdpEngineWorkerStatistics> engineStats; - - /** - * The Default Constructor creates a {@link JpaPdpStatistics} object with a null key. - */ - public JpaPdpStatistics() { - this.setName(PfKey.NULL_KEY_NAME); - this.setVersion(PfKey.NULL_KEY_VERSION); - } - - /** - * Copy constructor. - * - * @param copyConcept the concept to copy from - */ - public JpaPdpStatistics(@NonNull final JpaPdpStatistics copyConcept) { - super(copyConcept); - this.name = copyConcept.name; - this.version = copyConcept.version; - this.generatedId = copyConcept.generatedId; - this.timeStamp = copyConcept.timeStamp; - this.pdpGroupName = copyConcept.pdpGroupName; - this.pdpSubGroupName = copyConcept.pdpSubGroupName; - this.policyDeployCount = copyConcept.policyDeployCount; - this.policyDeploySuccessCount = copyConcept.policyDeploySuccessCount; - this.policyDeployFailCount = copyConcept.policyDeployFailCount; - this.policyUndeployCount = copyConcept.policyUndeployCount; - this.policyUndeploySuccessCount = copyConcept.policyUndeploySuccessCount; - this.policyUndeployFailCount = copyConcept.policyUndeployFailCount; - this.policyExecutedCount = copyConcept.policyExecutedCount; - this.policyExecutedSuccessCount = copyConcept.policyExecutedSuccessCount; - this.policyExecutedFailCount = copyConcept.policyExecutedFailCount; - this.engineStats = PfUtils.mapList(copyConcept.engineStats, PdpEngineWorkerStatistics::new, null); - } - - /** - * Authorative constructor. - * - * @param authorativeConcept the authorative concept to copy from - */ - public JpaPdpStatistics(@NonNull final PdpStatistics authorativeConcept) { - this.fromAuthorative(authorativeConcept); - } - - @Override - public int compareTo(PfConcept otherConcept) { - if (otherConcept == null) { - return -1; - } - if (this == otherConcept) { - return 0; - } - if (getClass() != otherConcept.getClass()) { - return getClass().getName().compareTo(otherConcept.getClass().getName()); - } - - final JpaPdpStatistics other = (JpaPdpStatistics) otherConcept; - return new CompareToBuilder() - .append(this.name, other.name) - .append(this.version, other.version) - .append(this.generatedId, other.generatedId) - .append(this.timeStamp, other.timeStamp) - .append(this.pdpGroupName, other.pdpGroupName) - .append(this.pdpSubGroupName, other.pdpSubGroupName) - .append(this.policyDeployCount, other.policyDeployCount) - .append(this.policyDeployFailCount, other.policyDeployFailCount) - .append(this.policyDeploySuccessCount, other.policyDeploySuccessCount) - .append(this.policyUndeployCount, other.policyUndeployCount) - .append(this.policyUndeployFailCount, other.policyUndeployFailCount) - .append(this.policyUndeploySuccessCount, other.policyUndeploySuccessCount) - .append(this.policyExecutedCount, other.policyExecutedCount) - .append(this.policyExecutedFailCount, other.policyExecutedFailCount) - .append(this.policyExecutedSuccessCount, other.policyExecutedSuccessCount).toComparison(); - } - - @Override - public PdpStatistics toAuthorative() { - var pdpStatistics = new PdpStatistics(); - pdpStatistics.setPdpInstanceId(name); - pdpStatistics.setGeneratedId(generatedId); - pdpStatistics.setTimeStamp(timeStamp.toInstant()); - pdpStatistics.setPdpGroupName(pdpGroupName); - pdpStatistics.setPdpSubGroupName(pdpSubGroupName); - pdpStatistics.setPolicyDeployCount(policyDeployCount); - pdpStatistics.setPolicyDeployFailCount(policyDeployFailCount); - pdpStatistics.setPolicyDeploySuccessCount(policyDeploySuccessCount); - pdpStatistics.setPolicyUndeployCount(policyUndeployCount); - pdpStatistics.setPolicyUndeployFailCount(policyUndeployFailCount); - pdpStatistics.setPolicyUndeploySuccessCount(policyUndeploySuccessCount); - pdpStatistics.setPolicyExecutedCount(policyExecutedCount); - pdpStatistics.setPolicyExecutedFailCount(policyExecutedFailCount); - pdpStatistics.setPolicyExecutedSuccessCount(policyExecutedSuccessCount); - pdpStatistics.setEngineStats(PfUtils.mapList(engineStats, PdpEngineWorkerStatistics::new, null)); - - return pdpStatistics; - } - - @Override - public void fromAuthorative(@NonNull final PdpStatistics pdpStatistics) { - if (pdpStatistics.getGeneratedId() != null) { - this.setGeneratedId(pdpStatistics.getGeneratedId()); - } - this.setName(pdpStatistics.getPdpInstanceId()); - this.setVersion(PfKey.NULL_KEY_VERSION); - if (pdpStatistics.getTimeStamp() == null) { - this.setTimeStamp(Date.from(Instant.EPOCH)); - } else { - this.setTimeStamp(Date.from(pdpStatistics.getTimeStamp())); - } - this.setPdpGroupName(pdpStatistics.getPdpGroupName()); - this.setPdpSubGroupName(pdpStatistics.getPdpSubGroupName()); - this.setPolicyDeployCount(pdpStatistics.getPolicyDeployCount()); - this.setPolicyDeployFailCount(pdpStatistics.getPolicyDeployFailCount()); - this.setPolicyDeploySuccessCount(pdpStatistics.getPolicyDeploySuccessCount()); - this.setPolicyUndeployCount(pdpStatistics.getPolicyUndeployCount()); - this.setPolicyUndeployFailCount(pdpStatistics.getPolicyUndeployFailCount()); - this.setPolicyUndeploySuccessCount(pdpStatistics.getPolicyUndeploySuccessCount()); - this.setPolicyExecutedCount(pdpStatistics.getPolicyExecutedCount()); - this.setPolicyExecutedFailCount(pdpStatistics.getPolicyExecutedFailCount()); - this.setPolicyExecutedSuccessCount(pdpStatistics.getPolicyExecutedSuccessCount()); - this.setEngineStats( - PfUtils.mapList(pdpStatistics.getEngineStats(), PdpEngineWorkerStatistics::new, null)); - } - - @Override - public List<PfKey> getKeys() { - final List<PfKey> keyList = new ArrayList<>(); - keyList.add(getKey()); - return keyList; - } - - @Override - public PfKey getKey() { - return new PfConceptKey(name, version); - } - - @Override - public void clean() { - pdpGroupName = pdpGroupName.trim(); - pdpSubGroupName = pdpSubGroupName.trim(); - if (engineStats != null) { - for (PdpEngineWorkerStatistics engineStat : engineStats) { - engineStat.clean(); - } - } - } - - @Override - public BeanValidationResult validate(@NonNull String fieldName) { - BeanValidationResult result = super.validate(fieldName); - if (PfKey.NULL_KEY_NAME.equals(name)) { - result.addResult("name", name, ValidationStatus.INVALID, Validated.IS_NULL); - } - return result; - } -} diff --git a/models-pdp/src/main/java/org/onap/policy/models/pdp/persistence/provider/PdpProvider.java b/models-pdp/src/main/java/org/onap/policy/models/pdp/persistence/provider/PdpProvider.java index 681e39e71..0cc0eb267 100644 --- a/models-pdp/src/main/java/org/onap/policy/models/pdp/persistence/provider/PdpProvider.java +++ b/models-pdp/src/main/java/org/onap/policy/models/pdp/persistence/provider/PdpProvider.java @@ -2,6 +2,7 @@ * ============LICENSE_START======================================================= * Copyright (C) 2019 Nordix Foundation. * Modifications Copyright (C) 2019-2021 AT&T Intellectual Property. 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. @@ -41,7 +42,6 @@ import org.onap.policy.models.pdp.concepts.Pdp; import org.onap.policy.models.pdp.concepts.PdpGroup; import org.onap.policy.models.pdp.concepts.PdpGroupFilter; import org.onap.policy.models.pdp.concepts.PdpPolicyStatus; -import org.onap.policy.models.pdp.concepts.PdpStatistics; import org.onap.policy.models.pdp.concepts.PdpSubGroup; import org.onap.policy.models.pdp.persistence.concepts.JpaPdp; import org.onap.policy.models.pdp.persistence.concepts.JpaPdpGroup; @@ -228,34 +228,6 @@ public class PdpProvider { } /** - * Get PDP statistics. - * - * @param dao the DAO to use to access the database - * @param name the name of the PDP group to get statistics for, null to get all PDP groups - * @return the statistics found - * @throws PfModelException on errors getting statistics - */ - public List<PdpStatistics> getPdpStatistics(@NonNull final PfDao dao, final String name) throws PfModelException { - return new ArrayList<>(); - } - - /** - * Update PDP statistics for a PDP. - * - * @param dao the DAO to use to access the database - * @param pdpGroupName the name of the PDP group containing the PDP that the statistics are for - * @param pdpType the PDP type of the subgroup containing the PDP that the statistics are for - * @param pdpInstanceId the instance ID of the PDP to update statistics for - * @param pdpStatistics the statistics to update - * @throws PfModelException on errors updating statistics - */ - public void updatePdpStatistics(@NonNull final PfDao dao, @NonNull final String pdpGroupName, - @NonNull final String pdpType, @NonNull final String pdpInstanceId, - @NonNull final PdpStatistics pdpStatistics) throws PfModelException { - // Not implemented yet - } - - /** * Gets all policy deployments. * * @param dao the DAO to use to access the database diff --git a/models-pdp/src/test/java/org/onap/policy/models/pdp/concepts/PdpStatisticsTest.java b/models-pdp/src/test/java/org/onap/policy/models/pdp/concepts/PdpStatisticsTest.java deleted file mode 100644 index 001c80b7f..000000000 --- a/models-pdp/src/test/java/org/onap/policy/models/pdp/concepts/PdpStatisticsTest.java +++ /dev/null @@ -1,60 +0,0 @@ -/* - * ============LICENSE_START======================================================= - * ONAP Policy Models - * ================================================================================ - * Copyright (C) 2019 AT&T Intellectual Property. All rights reserved. - * Modifications Copyright (C) 2020-2021 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. - * ============LICENSE_END========================================================= - */ - -package org.onap.policy.models.pdp.concepts; - -import static org.assertj.core.api.Assertions.assertThatThrownBy; -import static org.junit.Assert.assertEquals; - -import java.time.Instant; -import java.util.ArrayList; -import org.junit.Test; - -public class PdpStatisticsTest { - - @Test - public void testCopyConstructor() { - assertThatThrownBy(() -> new PdpStatistics(null)).hasMessageContaining("source"); - - PdpStatistics orig = createPdpStatistics(); - PdpStatistics copied = new PdpStatistics(orig); - assertEquals(orig, copied); - } - - private PdpStatistics createPdpStatistics() { - PdpStatistics pdpStat = new PdpStatistics(); - pdpStat.setPdpInstanceId("PDP0"); - pdpStat.setPdpGroupName("PDPGroup0"); - pdpStat.setPdpSubGroupName("PDPSubGroup0"); - pdpStat.setTimeStamp(Instant.EPOCH); - pdpStat.setPolicyExecutedCount(9); - pdpStat.setPolicyExecutedSuccessCount(4); - pdpStat.setPolicyExecutedFailCount(5); - pdpStat.setPolicyDeployCount(3); - pdpStat.setPolicyDeploySuccessCount(1); - pdpStat.setPolicyDeployFailCount(2); - pdpStat.setPolicyUndeployCount(4); - pdpStat.setPolicyUndeploySuccessCount(3); - pdpStat.setPolicyUndeployFailCount(1); - pdpStat.setEngineStats(new ArrayList<>()); - return pdpStat; - } -} diff --git a/models-pdp/src/test/java/org/onap/policy/models/pdp/concepts/PdpStatusTest.java b/models-pdp/src/test/java/org/onap/policy/models/pdp/concepts/PdpStatusTest.java index 90b8d43c7..07afd4098 100644 --- a/models-pdp/src/test/java/org/onap/policy/models/pdp/concepts/PdpStatusTest.java +++ b/models-pdp/src/test/java/org/onap/policy/models/pdp/concepts/PdpStatusTest.java @@ -4,6 +4,7 @@ * ================================================================================ * Copyright (C) 2019 AT&T Intellectual Property. All rights reserved. * Modifications Copyright (C) 2020-2021 Nordix Foundation. + * 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. @@ -61,11 +62,6 @@ public class PdpStatusTest { orig.setResponse(resp); orig.setState(PdpState.SAFE); - final PdpStatistics stats = new PdpStatistics(); - stats.setPdpInstanceId("my-pdp-id"); - - orig.setStatistics(stats); - assertEquals(removeVariableFields(orig.toString()), removeVariableFields(new PdpStatus(orig).toString())); } } diff --git a/models-pdp/src/test/java/org/onap/policy/models/pdp/persistence/concepts/JpaPdpStatisticsTest.java b/models-pdp/src/test/java/org/onap/policy/models/pdp/persistence/concepts/JpaPdpStatisticsTest.java deleted file mode 100644 index 505e3f685..000000000 --- a/models-pdp/src/test/java/org/onap/policy/models/pdp/persistence/concepts/JpaPdpStatisticsTest.java +++ /dev/null @@ -1,146 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * Copyright (C) 2019-2021 Nordix Foundation. - * Modifications Copyright (C) 2020 AT&T Intellectual Property. All rights reserved. - * Modifications Copyright (C) 2022 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.models.pdp.persistence.concepts; - -import static org.assertj.core.api.Assertions.assertThatThrownBy; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertFalse; -import static org.junit.Assert.assertNotEquals; -import static org.junit.Assert.assertNotNull; -import static org.junit.Assert.assertTrue; - -import java.time.Instant; -import java.util.ArrayList; -import org.junit.Test; -import org.onap.policy.models.pdp.concepts.PdpStatistics; - -/** - * Test the {@link JpaPdpStatistics} class. - */ -public class JpaPdpStatisticsTest { - - @Test - public void testConstructor() { - - assertThatThrownBy(() -> new JpaPdpStatistics((JpaPdpStatistics) null)).hasMessageContaining("copyConcept"); - - assertThatThrownBy(() -> new JpaPdpStatistics((PdpStatistics) null)).hasMessageContaining("authorativeConcept"); - - assertNotNull(new JpaPdpStatistics()); - - PdpStatistics pdpStat = createPdpStatistics(); - JpaPdpStatistics jpaPdpStat = new JpaPdpStatistics(createPdpStatistics()); - checkEquals(pdpStat, jpaPdpStat); - - JpaPdpStatistics jpaPdpStat2 = new JpaPdpStatistics(jpaPdpStat); - assertEquals(0, jpaPdpStat2.compareTo(jpaPdpStat)); - } - - @Test - public void testFromAuthorative() { - PdpStatistics pdpStat = createPdpStatistics(); - JpaPdpStatistics jpaPdpStat = new JpaPdpStatistics(); - jpaPdpStat.fromAuthorative(pdpStat); - checkEquals(pdpStat, jpaPdpStat); - } - - @Test - public void testToAuthorative() { - PdpStatistics pdpStat = createPdpStatistics(); - JpaPdpStatistics jpaPdpStat = new JpaPdpStatistics(pdpStat); - PdpStatistics toPdpStat = jpaPdpStat.toAuthorative(); - assertEquals(pdpStat, toPdpStat); - } - - @Test - public void testCompareTo() { - PdpStatistics pdpStat = createPdpStatistics(); - JpaPdpStatistics jpaPdpStat1 = new JpaPdpStatistics(pdpStat); - assertEquals(-1, jpaPdpStat1.compareTo(null)); - - JpaPdpStatistics jpaPdpStat2 = new JpaPdpStatistics(pdpStat); - assertEquals(0, jpaPdpStat1.compareTo(jpaPdpStat2)); - - PdpStatistics pdpStat3 = createPdpStatistics(); - pdpStat3.setPdpInstanceId("PDP3"); - JpaPdpStatistics jpaPdpStat3 = new JpaPdpStatistics(pdpStat3); - assertNotEquals(0, jpaPdpStat1.compareTo(jpaPdpStat3)); - } - - @Test - public void testValidate() { - JpaPdpStatistics nullKeyJpaPdpStat = new JpaPdpStatistics(); - assertFalse(nullKeyJpaPdpStat.validate("").isValid()); - - PdpStatistics pdpStat = createPdpStatistics(); - JpaPdpStatistics jpaPdpStat2 = new JpaPdpStatistics(pdpStat); - assertTrue(jpaPdpStat2.validate("").isValid()); - } - - @Test - public void testClean() { - PdpStatistics pdpStat = createPdpStatistics(); - JpaPdpStatistics jpaPdpStat = new JpaPdpStatistics(pdpStat); - jpaPdpStat.setPdpGroupName(" PDPGroup0 "); - jpaPdpStat.setPdpSubGroupName(" PDPSubGroup0 "); - jpaPdpStat.clean(); - assertEquals("PDPGroup0", jpaPdpStat.getPdpGroupName()); - assertEquals("PDPSubGroup0", jpaPdpStat.getPdpSubGroupName()); - } - - private void checkEquals(PdpStatistics pdpStat, JpaPdpStatistics jpaPdpStat) { - assertEquals(pdpStat.getPdpInstanceId(), jpaPdpStat.getKey().getName()); - assertEquals(pdpStat.getPdpGroupName(), jpaPdpStat.getPdpGroupName()); - assertEquals(pdpStat.getPdpSubGroupName(), jpaPdpStat.getPdpSubGroupName()); - assertEquals(pdpStat.getTimeStamp(), jpaPdpStat.getTimeStamp().toInstant()); - assertEquals(pdpStat.getPolicyDeployCount(), jpaPdpStat.getPolicyDeployCount()); - assertEquals(pdpStat.getPolicyDeploySuccessCount(), jpaPdpStat.getPolicyDeploySuccessCount()); - assertEquals(pdpStat.getPolicyDeployFailCount(), jpaPdpStat.getPolicyDeployFailCount()); - assertEquals(pdpStat.getPolicyUndeployCount(), jpaPdpStat.getPolicyUndeployCount()); - assertEquals(pdpStat.getPolicyUndeploySuccessCount(), jpaPdpStat.getPolicyUndeploySuccessCount()); - assertEquals(pdpStat.getPolicyUndeployFailCount(), jpaPdpStat.getPolicyUndeployFailCount()); - assertEquals(pdpStat.getPolicyExecutedCount(), jpaPdpStat.getPolicyExecutedCount()); - assertEquals(pdpStat.getPolicyExecutedSuccessCount(), jpaPdpStat.getPolicyExecutedSuccessCount()); - assertEquals(pdpStat.getPolicyExecutedFailCount(), jpaPdpStat.getPolicyExecutedFailCount()); - } - - private PdpStatistics createPdpStatistics() { - PdpStatistics pdpStat = new PdpStatistics(); - pdpStat.setPdpInstanceId("PDP0"); - pdpStat.setPdpGroupName("PDPGroup0"); - pdpStat.setPdpSubGroupName("PDPSubGroup0"); - pdpStat.setGeneratedId(10001L); - pdpStat.setTimeStamp(Instant.EPOCH); - pdpStat.setPolicyDeployCount(3); - pdpStat.setPolicyDeploySuccessCount(1); - pdpStat.setPolicyDeployFailCount(2); - pdpStat.setPolicyUndeployCount(5); - pdpStat.setPolicyUndeploySuccessCount(2); - pdpStat.setPolicyUndeployFailCount(3); - pdpStat.setPolicyExecutedCount(9); - pdpStat.setPolicyExecutedSuccessCount(4); - pdpStat.setPolicyExecutedFailCount(5); - pdpStat.setEngineStats(new ArrayList<>()); - return pdpStat; - } -} diff --git a/models-pdp/src/test/java/org/onap/policy/models/pdp/persistence/provider/PdpProviderTest.java b/models-pdp/src/test/java/org/onap/policy/models/pdp/persistence/provider/PdpProviderTest.java index 80c906e5f..620b8184c 100644 --- a/models-pdp/src/test/java/org/onap/policy/models/pdp/persistence/provider/PdpProviderTest.java +++ b/models-pdp/src/test/java/org/onap/policy/models/pdp/persistence/provider/PdpProviderTest.java @@ -2,6 +2,7 @@ * ============LICENSE_START======================================================= * Copyright (C) 2019-2021,2023 Nordix Foundation. * Modifications Copyright (C) 2019-2021 AT&T Intellectual Property. 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. @@ -51,7 +52,6 @@ import org.onap.policy.models.pdp.concepts.PdpGroups; import org.onap.policy.models.pdp.concepts.PdpPolicyStatus; import org.onap.policy.models.pdp.concepts.PdpPolicyStatus.PdpPolicyStatusBuilder; import org.onap.policy.models.pdp.concepts.PdpPolicyStatus.State; -import org.onap.policy.models.pdp.concepts.PdpStatistics; import org.onap.policy.models.pdp.concepts.PdpSubGroup; import org.onap.policy.models.pdp.enums.PdpHealthStatus; import org.onap.policy.models.pdp.enums.PdpState; @@ -508,151 +508,6 @@ public class PdpProviderTest { } @Test - public void testGetPdpStatistics() throws PfModelException { - assertThatThrownBy(() -> { - new PdpProvider().getPdpStatistics(null, null); - }).hasMessageMatching(DAO_IS_NULL); - - assertThatThrownBy(() -> { - new PdpProvider().getPdpStatistics(null, "name"); - }).hasMessageMatching(DAO_IS_NULL); - - assertEquals(0, new PdpProvider().getPdpStatistics(pfDao, "name").size()); - } - - @Test - public void testUpdatePdpStatisticsDao() throws PfModelException { - assertThatThrownBy(() -> { - new PdpProvider().updatePdpStatistics(null, null, null, null, null); - }).hasMessageMatching(DAO_IS_NULL); - - assertThatThrownBy(() -> { - new PdpProvider().updatePdpStatistics(null, null, null, null, new PdpStatistics()); - }).hasMessageMatching(DAO_IS_NULL); - - assertThatThrownBy(() -> { - new PdpProvider().updatePdpStatistics(null, null, null, "inst", null); - }).hasMessageMatching(DAO_IS_NULL); - - assertThatThrownBy(() -> { - new PdpProvider().updatePdpStatistics(null, null, null, "inst", new PdpStatistics()); - }).hasMessageMatching(DAO_IS_NULL); - - assertThatThrownBy(() -> { - new PdpProvider().updatePdpStatistics(null, null, "TYPE", null, null); - }).hasMessageMatching(DAO_IS_NULL); - - assertThatThrownBy(() -> { - new PdpProvider().updatePdpStatistics(null, null, "TYPE", null, new PdpStatistics()); - }).hasMessageMatching(DAO_IS_NULL); - - assertThatThrownBy(() -> { - new PdpProvider().updatePdpStatistics(null, null, "TYPE", "inst", null); - }).hasMessageMatching(DAO_IS_NULL); - - assertThatThrownBy(() -> { - new PdpProvider().updatePdpStatistics(null, null, "TYPE", "inst", new PdpStatistics()); - }).hasMessageMatching(DAO_IS_NULL); - - assertThatThrownBy(() -> { - new PdpProvider().updatePdpStatistics(null, "name", null, null, null); - }).hasMessageMatching(DAO_IS_NULL); - - assertThatThrownBy(() -> { - new PdpProvider().updatePdpStatistics(null, "name", null, null, new PdpStatistics()); - }).hasMessageMatching(DAO_IS_NULL); - - assertThatThrownBy(() -> { - new PdpProvider().updatePdpStatistics(null, "name", null, "inst", null); - }).hasMessageMatching(DAO_IS_NULL); - - assertThatThrownBy(() -> { - new PdpProvider().updatePdpStatistics(null, "name", null, "inst", new PdpStatistics()); - }).hasMessageMatching(DAO_IS_NULL); - - assertThatThrownBy(() -> { - new PdpProvider().updatePdpStatistics(null, "name", "TYPE", null, null); - }).hasMessageMatching(DAO_IS_NULL); - - assertThatThrownBy(() -> { - new PdpProvider().updatePdpStatistics(null, "name", "TYPE", null, new PdpStatistics()); - }).hasMessageMatching(DAO_IS_NULL); - - assertThatThrownBy(() -> { - new PdpProvider().updatePdpStatistics(null, "name", "TYPE", "inst", null); - }).hasMessageMatching(DAO_IS_NULL); - - assertThatThrownBy(() -> { - new PdpProvider().updatePdpStatistics(null, "name", "TYPE", "inst", new PdpStatistics()); - }).hasMessageMatching(DAO_IS_NULL); - } - - @Test - public void testUpdatePdpStatisticsGroup() throws PfModelException { - assertThatThrownBy(() -> { - new PdpProvider().updatePdpStatistics(pfDao, null, null, null, null); - }).hasMessageMatching(GROUP_IS_NULL); - - assertThatThrownBy(() -> { - new PdpProvider().updatePdpStatistics(pfDao, null, null, null, new PdpStatistics()); - }).hasMessageMatching(GROUP_IS_NULL); - - assertThatThrownBy(() -> { - new PdpProvider().updatePdpStatistics(pfDao, null, null, "inst", null); - }).hasMessageMatching(GROUP_IS_NULL); - - assertThatThrownBy(() -> { - new PdpProvider().updatePdpStatistics(pfDao, null, null, "inst", new PdpStatistics()); - }).hasMessageMatching(GROUP_IS_NULL); - - assertThatThrownBy(() -> { - new PdpProvider().updatePdpStatistics(pfDao, null, "TYPE", null, null); - }).hasMessageMatching(GROUP_IS_NULL); - - assertThatThrownBy(() -> { - new PdpProvider().updatePdpStatistics(pfDao, null, "TYPE", null, new PdpStatistics()); - }).hasMessageMatching(GROUP_IS_NULL); - - assertThatThrownBy(() -> { - new PdpProvider().updatePdpStatistics(pfDao, null, "TYPE", "inst", null); - }).hasMessageMatching(GROUP_IS_NULL); - - assertThatThrownBy(() -> { - new PdpProvider().updatePdpStatistics(pfDao, null, "TYPE", "inst", new PdpStatistics()); - }).hasMessageMatching(GROUP_IS_NULL); - - assertThatThrownBy(() -> { - new PdpProvider().updatePdpStatistics(pfDao, "name", null, null, null); - }).hasMessageMatching(PDP_TYPE_IS_NULL); - - assertThatThrownBy(() -> { - new PdpProvider().updatePdpStatistics(pfDao, "name", null, null, new PdpStatistics()); - }).hasMessageMatching(PDP_TYPE_IS_NULL); - - assertThatThrownBy(() -> { - new PdpProvider().updatePdpStatistics(pfDao, "name", null, "inst", null); - }).hasMessageMatching(PDP_TYPE_IS_NULL); - - assertThatThrownBy(() -> { - new PdpProvider().updatePdpStatistics(pfDao, "name", null, "inst", new PdpStatistics()); - }).hasMessageMatching(PDP_TYPE_IS_NULL); - - assertThatThrownBy(() -> { - new PdpProvider().updatePdpStatistics(pfDao, "name", "TYPE", null, null); - }).hasMessageMatching("pdpInstanceId is marked .*ull but is null"); - - assertThatThrownBy(() -> { - new PdpProvider().updatePdpStatistics(pfDao, "name", "TYPE", null, new PdpStatistics()); - }).hasMessageMatching("pdpInstanceId is marked .*ull but is null"); - - assertThatThrownBy(() -> { - new PdpProvider().updatePdpStatistics(pfDao, "name", "TYPE", "inst", null); - }).hasMessageMatching("pdpStatistics is marked .*ull but is null"); - - new PdpProvider().updatePdpStatistics(pfDao, "name", "TYPE", "inst", new PdpStatistics()); - } - - @Test public void testGetAllPolicyStatusPfDao() throws PfModelException { assertThatThrownBy(() -> { new PdpProvider().getAllPolicyStatus(null); diff --git a/models-pdp/src/test/java/org/onap/policy/models/pdp/testconcepts/DummyJpaPdpStatisticsChild.java b/models-pdp/src/test/java/org/onap/policy/models/pdp/testconcepts/DummyJpaPdpStatisticsChild.java deleted file mode 100644 index b428fc679..000000000 --- a/models-pdp/src/test/java/org/onap/policy/models/pdp/testconcepts/DummyJpaPdpStatisticsChild.java +++ /dev/null @@ -1,34 +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.models.pdp.testconcepts; - -import org.onap.policy.models.pdp.persistence.concepts.JpaPdpStatistics; - -/** - * Test class for JpaPdpStatistics comparisons. - * - */ - -public class DummyJpaPdpStatisticsChild extends JpaPdpStatistics { - - private static final long serialVersionUID = -5911806849612508805L; - -} diff --git a/models-pdp/src/test/resources/META-INF/persistence.xml b/models-pdp/src/test/resources/META-INF/persistence.xml index e683bca9e..4cc71ec1a 100644 --- a/models-pdp/src/test/resources/META-INF/persistence.xml +++ b/models-pdp/src/test/resources/META-INF/persistence.xml @@ -3,6 +3,7 @@ ============LICENSE_START======================================================= Copyright (C) 2019,2021,2023 Nordix Foundation. Modifications Copyright (C) 2021 AT&T Intellectual Property. 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. @@ -31,7 +32,6 @@ <class>org.onap.policy.models.pdp.persistence.concepts.JpaPdpGroup</class> <class>org.onap.policy.models.pdp.persistence.concepts.JpaPdpSubGroup</class> <class>org.onap.policy.models.pdp.persistence.concepts.JpaPdp</class> - <class>org.onap.policy.models.pdp.persistence.concepts.JpaPdpStatistics</class> <class>org.onap.policy.models.tosca.simple.concepts.JpaToscaTrigger</class> <class>org.onap.policy.models.tosca.simple.concepts.JpaToscaProperty</class> diff --git a/models-provider/src/test/resources/META-INF/persistence.xml b/models-provider/src/test/resources/META-INF/persistence.xml index 8247f0850..0e5a91844 100644 --- a/models-provider/src/test/resources/META-INF/persistence.xml +++ b/models-provider/src/test/resources/META-INF/persistence.xml @@ -3,6 +3,7 @@ ============LICENSE_START======================================================= Copyright (C) 2019-2021,2023 Nordix Foundation. Modifications Copyright (C) 2021 AT&T Intellectual Property. 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. @@ -29,7 +30,6 @@ <class>org.onap.policy.models.pdp.persistence.concepts.JpaPdp</class> <class>org.onap.policy.models.pdp.persistence.concepts.JpaPdpPolicyStatus</class> <class>org.onap.policy.models.pdp.persistence.concepts.JpaPdpGroup</class> - <class>org.onap.policy.models.pdp.persistence.concepts.JpaPdpStatistics</class> <class>org.onap.policy.models.pdp.persistence.concepts.JpaPdpSubGroup</class> <class>org.onap.policy.models.tosca.simple.concepts.JpaToscaCapabilityAssignment</class> <class>org.onap.policy.models.tosca.simple.concepts.JpaToscaCapabilityAssignments</class> |