X-Git-Url: https://gerrit.onap.org/r/gitweb?a=blobdiff_plain;f=models-pdp%2Fsrc%2Fmain%2Fjava%2Forg%2Fonap%2Fpolicy%2Fmodels%2Fpdp%2Fconcepts%2FPdpUpdate.java;h=0c088b87e3654cfc65fc21875ec950d3d2ed2a5e;hb=aae9e0b762320f82a1907074667a44bd1349945f;hp=c8c8783df633c3b2328ee818e30004994b2cd128;hpb=0ac03692ecd0fbe69660b1246ca0c1fbac53e623;p=policy%2Fmodels.git diff --git a/models-pdp/src/main/java/org/onap/policy/models/pdp/concepts/PdpUpdate.java b/models-pdp/src/main/java/org/onap/policy/models/pdp/concepts/PdpUpdate.java index c8c8783df..0c088b87e 100644 --- a/models-pdp/src/main/java/org/onap/policy/models/pdp/concepts/PdpUpdate.java +++ b/models-pdp/src/main/java/org/onap/policy/models/pdp/concepts/PdpUpdate.java @@ -2,6 +2,7 @@ * ============LICENSE_START======================================================= * Copyright (C) 2019 Nordix Foundation. * Modifications Copyright (C) 2019 AT&T Intellectual Property. + * Modifications Copyright (C) 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. @@ -21,30 +22,52 @@ package org.onap.policy.models.pdp.concepts; +import java.util.LinkedList; import java.util.List; import java.util.stream.Collectors; import lombok.Getter; import lombok.Setter; import lombok.ToString; import org.onap.policy.models.pdp.enums.PdpMessageType; +import org.onap.policy.models.tosca.authorative.concepts.ToscaConceptIdentifier; import org.onap.policy.models.tosca.authorative.concepts.ToscaPolicy; /** - * Class to represent the PDP_UPDATE message that PAP will send to a PDP. + * Class to represent the PDP_UPDATE message that PAP will send to a PDP. When a PDP + * receives this message, it should save the group and subgroup and pass them to + * {@link #appliesTo(String, String, String)} of subsequent messages that it receives. * * @author Ram Krishna Verma (ram.krishna.verma@est.tech) */ @Getter @Setter -@ToString +@ToString(callSuper = true) public class PdpUpdate extends PdpMessage { - private String name; - private String pdpType; + /** + * Description of the PDP group. + */ private String description; - private String pdpGroup; - private String pdpSubgroup; - private List policies; + + private Long pdpHeartbeatIntervalMs; + + /** + * Policies that the PDP should deploy. This is a complete list, so PDPs should be + * prepared to deploy new policies listed and undeploy policies that are no longer + * listed. Note: this list may be empty, as a PDP may remain attached to a subgroup + * even if all of the policies are removed from the subgroup. + */ + private List policies = new LinkedList<>(); + + /** + * Policies that the PDP should deploy. + */ + private List policiesToBeDeployed = new LinkedList<>(); + + /** + * Policies that the PDP should undeploy. + */ + private List policiesToBeUndeployed = new LinkedList<>(); /** * Constructor for instantiating PdpUpdate class with message name. @@ -60,13 +83,10 @@ public class PdpUpdate extends PdpMessage { * @param source source from which to copy */ public PdpUpdate(PdpUpdate source) { - super(PdpMessageType.PDP_UPDATE); + super(source); - this.name = source.name; - this.pdpType = source.pdpType; this.description = source.description; - this.pdpGroup = source.pdpGroup; - this.pdpSubgroup = source.pdpSubgroup; + this.pdpHeartbeatIntervalMs = source.pdpHeartbeatIntervalMs; this.policies = (source.policies == null ? null : source.policies.stream().map(ToscaPolicy::new).collect(Collectors.toList())); }