diff options
Diffstat (limited to 'src/main/java/org/onap/clamp/clds/model/DcaeEvent.java')
-rw-r--r-- | src/main/java/org/onap/clamp/clds/model/DcaeEvent.java | 149 |
1 files changed, 149 insertions, 0 deletions
diff --git a/src/main/java/org/onap/clamp/clds/model/DcaeEvent.java b/src/main/java/org/onap/clamp/clds/model/DcaeEvent.java new file mode 100644 index 000000000..e10971e7d --- /dev/null +++ b/src/main/java/org/onap/clamp/clds/model/DcaeEvent.java @@ -0,0 +1,149 @@ +/*- + * ============LICENSE_START======================================================= + * ONAP CLAMP + * ================================================================================ + * Copyright (C) 2017 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. + * ============LICENSE_END============================================ + * =================================================================== + * ECOMP is a trademark and service mark of AT&T Intellectual Property. + */ + +package org.onap.clamp.clds.model; + +import org.jboss.resteasy.spi.BadRequestException; + +import java.util.List; + +/** + * Represent a DCAE Event. + */ +public class DcaeEvent { + public static final String EVENT_CREATED = "created"; // this is an event we (clds) sends to dcae + public static final String EVENT_DISTRIBUTION = "distribution"; + public static final String EVENT_DEPLOYMENT = "deployment"; + public static final String EVENT_UNDEPLOYMENT = "undeployment"; + public static final String ARTIFACT_NAME_SUFFIX = ".yml"; + + private String event; + private String serviceUUID; + private String resourceUUID; + private String artifactName; // controlName.yml + private List<CldsModelInstance> instances; + + /** + * Transform a DCAE Event Action to a CldsEvent.actionCd + * + * @return + */ + public String getCldsActionCd() { + if (event == null || event.length() == 0) { + throw new BadRequestException("action null or empty"); + } else if (event.equals(EVENT_CREATED)) { + return CldsEvent.ACTION_CREATE; + } else if (event.equals(EVENT_DISTRIBUTION)) { + return CldsEvent.ACTION_DISTRIBUTE; + } else if (event.equals(EVENT_DEPLOYMENT) && + (instances == null || instances.size() == 0)) { + return CldsEvent.ACTION_UNDEPLOY; + } else if (event.equals(EVENT_DEPLOYMENT)) { + return CldsEvent.ACTION_DEPLOY; + // EVENT_UNDEPLOYMENT is defunct - DCAE Proxy will not undeploy individual instances. It will send an empty list of + // deployed instances to indicate all have been removed. Or it will send an updated list to indicate those that + // are still deployed with any not on the list considered undeployed. + //} else if ( event.equals(EVENT_UNDEPLOYMENT) ) { + // return CldsEvent.ACTION_UNDEPLOY; + } + throw new BadRequestException("event value not valid: " + event); + } + + /** + * Derive the controlName from the artifactName. + * + * @return the controlName + */ + public String getControlName() { + if (artifactName != null && artifactName.endsWith(ARTIFACT_NAME_SUFFIX)) { + return artifactName.substring(0, artifactName.length() - ARTIFACT_NAME_SUFFIX.length()); + } else { + throw new BadRequestException("artifactName value not valid (expecting it to end with " + ARTIFACT_NAME_SUFFIX + "): " + artifactName); + } + } + + /** + * @return the event + */ + public String getEvent() { + return event; + } + + /** + * @param event the event to set + */ + public void setEvent(String event) { + this.event = event; + } + + /** + * @return the serviceUUID + */ + public String getServiceUUID() { + return serviceUUID; + } + + /** + * @param serviceUUID the serviceUUID to set + */ + public void setServiceUUID(String serviceUUID) { + this.serviceUUID = serviceUUID; + } + + /** + * @return the resourceUUID + */ + public String getResourceUUID() { + return resourceUUID; + } + + /** + * @param resourceUUID the resourceUUID to set + */ + public void setResourceUUID(String resourceUUID) { + this.resourceUUID = resourceUUID; + } + + /** + * @return the artifactName + */ + public String getArtifactName() { + return artifactName; + } + + /** + * @param artifactName the artifactName to set + */ + public void setArtifactName(String artifactName) { + this.artifactName = artifactName; + } + + public List<CldsModelInstance> getInstances() { + return instances; + } + + public void setInstances(List<CldsModelInstance> instances) { + this.instances = instances; + } + +} |