From b3a21f74c5c31644eeef9634e33dde8a6972e3f8 Mon Sep 17 00:00:00 2001 From: "Determe, Sebastien (sd378r)" Date: Tue, 8 Aug 2017 02:58:27 -0700 Subject: Rework the Clamp db model Rework the DB model + new SQL associated to that Change-Id: Ibfa6e0bc9942f8b51a1681fab98502c462d34def Issue-Id: CLAMP-1 Signed-off-by: Determe, Sebastien (sd378r) --- .../onap/clamp/clds/model/CldsAlarmCondition.java | 8 +- .../onap/clamp/clds/model/CldsDBServiceCache.java | 10 +- .../java/org/onap/clamp/clds/model/CldsEvent.java | 108 +++++--- .../java/org/onap/clamp/clds/model/CldsModel.java | 287 ++++++++++++++------- .../org/onap/clamp/clds/model/CldsServiceData.java | 54 ++-- .../org/onap/clamp/clds/model/CldsTemplate.java | 69 ++--- .../java/org/onap/clamp/clds/model/CldsVfData.java | 33 ++- .../org/onap/clamp/clds/model/CldsVfcData.java | 7 +- .../java/org/onap/clamp/clds/model/DcaeEvent.java | 81 +++--- .../java/org/onap/clamp/clds/model/ValueItem.java | 3 +- 10 files changed, 413 insertions(+), 247 deletions(-) (limited to 'src/main/java/org') diff --git a/src/main/java/org/onap/clamp/clds/model/CldsAlarmCondition.java b/src/main/java/org/onap/clamp/clds/model/CldsAlarmCondition.java index 032547836..e0d10097b 100644 --- a/src/main/java/org/onap/clamp/clds/model/CldsAlarmCondition.java +++ b/src/main/java/org/onap/clamp/clds/model/CldsAlarmCondition.java @@ -27,10 +27,10 @@ import java.io.Serializable; public class CldsAlarmCondition implements Serializable { - private static final long serialVersionUID = 1L; - private String eventSourceType; - private String alarmConditionKey; - private String severity; + private static final long serialVersionUID = 4271364536747705555L; + private String eventSourceType; + private String alarmConditionKey; + private String severity; public String getEventSourceType() { return eventSourceType; diff --git a/src/main/java/org/onap/clamp/clds/model/CldsDBServiceCache.java b/src/main/java/org/onap/clamp/clds/model/CldsDBServiceCache.java index 658e21f96..4b2a2e30f 100644 --- a/src/main/java/org/onap/clamp/clds/model/CldsDBServiceCache.java +++ b/src/main/java/org/onap/clamp/clds/model/CldsDBServiceCache.java @@ -23,12 +23,16 @@ package org.onap.clamp.clds.model; -import java.io.*; +import java.io.ByteArrayInputStream; +import java.io.ByteArrayOutputStream; +import java.io.IOException; +import java.io.InputStream; +import java.io.ObjectOutputStream; public class CldsDBServiceCache { - private String invariantId; - private String serviceId; + private String invariantId; + private String serviceId; private InputStream cldsDataInstream; public String getInvariantId() { diff --git a/src/main/java/org/onap/clamp/clds/model/CldsEvent.java b/src/main/java/org/onap/clamp/clds/model/CldsEvent.java index 8379e5024..3b9c1d21b 100644 --- a/src/main/java/org/onap/clamp/clds/model/CldsEvent.java +++ b/src/main/java/org/onap/clamp/clds/model/CldsEvent.java @@ -5,16 +5,16 @@ * 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. + * 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 + * + * 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============================================ * =================================================================== @@ -29,29 +29,34 @@ import org.onap.clamp.clds.dao.CldsDao; * Represent a CLDS Event. */ public class CldsEvent { - public static final String ACTION_CREATE = "CREATE"; - public static final String ACTION_SUBMIT = "SUBMIT"; - public static final String ACTION_RESUBMIT = "RESUBMIT"; // an update before model is active - public static final String ACTION_DISTRIBUTE = "DISTRIBUTE"; // only from dcae - public static final String ACTION_DEPLOY = "DEPLOY"; // only from dcae - public static final String ACTION_UNDEPLOY = "UNDEPLOY"; // only from dcae - public static final String ACTION_UPDATE = "UPDATE"; - public static final String ACTION_DELETE = "DELETE"; - public static final String ACTION_STOP = "STOP"; - public static final String ACTION_RESTART = "RESTART"; + public static final String ACTION_TEST = "TEST"; + public static final String ACTION_CREATE = "CREATE"; + public static final String ACTION_SUBMIT = "SUBMIT"; + // an update before model is active + public static final String ACTION_RESUBMIT = "RESUBMIT"; + // only from dcae + public static final String ACTION_DISTRIBUTE = "DISTRIBUTE"; + // only from dcae + public static final String ACTION_DEPLOY = "DEPLOY"; + // only from dcae + public static final String ACTION_UNDEPLOY = "UNDEPLOY"; + public static final String ACTION_UPDATE = "UPDATE"; + public static final String ACTION_DELETE = "DELETE"; + public static final String ACTION_STOP = "STOP"; + public static final String ACTION_RESTART = "RESTART"; public static final String ACTION_STATE_INITIATED = "INITIATED"; - public static final String ACTION_STATE_SENT = "SENT"; + public static final String ACTION_STATE_SENT = "SENT"; public static final String ACTION_STATE_COMPLETED = "COMPLETED"; - public static final String ACTION_STATE_RECEIVED = "RECEIVED"; - public static final String ACTION_STATE_ERROR = "ERROR"; - public static final String ACTION_STATE_ANY = null; + public static final String ACTION_STATE_RECEIVED = "RECEIVED"; + public static final String ACTION_STATE_ERROR = "ERROR"; + public static final String ACTION_STATE_ANY = null; - private String id; - private String actionCd; - private String actionStateCd; - private String processInstanceId; - private String userid; + private String id; + private String actionCd; + private String actionStateCd; + private String processInstanceId; + private String userid; public String getId() { return id; @@ -70,14 +75,16 @@ public class CldsEvent { * @param processInstanceId * @return */ - public static CldsEvent insEvent(CldsDao cldsDao, String controlName, String userid, String actionCd, String actionStateCd, String processInstanceId) { + public static CldsEvent insEvent(CldsDao cldsDao, String controlName, String userid, String actionCd, + String actionStateCd, String processInstanceId) { CldsModel model = CldsModel.createUsingControlName(controlName); - return insEvent(cldsDao, model, actionCd, actionStateCd, processInstanceId); + return insEvent(cldsDao, model, userid, actionCd, actionStateCd, processInstanceId); } /** - * Insert event using controlNameUuid to find the model. - * This method meant for processing events from dcae. + * Insert event using controlNameUuid to find the model. This method meant + * for processing events from dcae. + * * @param cldsDao * @param model * @param actionCd @@ -85,8 +92,10 @@ public class CldsEvent { * @param processInstanceId * @return */ - public static CldsEvent insEvent(CldsDao cldsDao, CldsModel model, String actionCd, String actionStateCd, String processInstanceId) { + public static CldsEvent insEvent(CldsDao cldsDao, CldsModel model, String userId, String actionCd, String actionStateCd, + String processInstanceId) { CldsEvent event = new CldsEvent(); + event.setUserid(userId); event.setActionCd(actionCd); event.setActionStateCd(actionStateCd); event.setProcessInstanceId(processInstanceId); @@ -95,9 +104,23 @@ public class CldsEvent { } /** - * Check if actionCd and actionStateCd are equal to the supplied checkActionCd and checkActionStateCd. - * Treat checkActionStateCd == null as a wildcard - * checkActionCd should not be null. + * Check if actionCd is equal to the supplied checkActionCd checkActionCd + * should not be null. + * + * @param checkActionCd + * @return + */ + public boolean isActionCd(String checkActionCd) { + if (actionCd == null) { + return false; + } + return actionCd.equals(checkActionCd); + } + + /** + * Check if actionCd and actionStateCd are equal to the supplied + * checkActionCd and checkActionStateCd. Treat checkActionStateCd == null as + * a wildcard checkActionCd should not be null. * * @param checkActionCd * @param checkActionStateCd @@ -107,7 +130,8 @@ public class CldsEvent { if (actionCd == null) { return false; } - // treat checkActionStateCd == null as a wildcard (same for actionStateCd, although it shouln't be null...) + // treat checkActionStateCd == null as a wildcard (same for + // actionStateCd, although it shouln't be null...) if (checkActionStateCd == null || actionStateCd == null) { return actionCd.equals(checkActionCd); } @@ -133,7 +157,8 @@ public class CldsEvent { } /** - * @param actionCd the actionCd to set + * @param actionCd + * the actionCd to set */ public void setActionCd(String actionCd) { this.actionCd = actionCd; @@ -147,7 +172,8 @@ public class CldsEvent { } /** - * @param actionStateCd the actionStateCd to set + * @param actionStateCd + * the actionStateCd to set */ public void setActionStateCd(String actionStateCd) { this.actionStateCd = actionStateCd; @@ -161,7 +187,8 @@ public class CldsEvent { } /** - * @param processInstanceId the processInstanceId to set + * @param processInstanceId + * the processInstanceId to set */ public void setProcessInstanceId(String processInstanceId) { this.processInstanceId = processInstanceId; @@ -175,7 +202,8 @@ public class CldsEvent { } /** - * @param userid the userid to set + * @param userid + * the userid to set */ public void setUserid(String userid) { this.userid = userid; diff --git a/src/main/java/org/onap/clamp/clds/model/CldsModel.java b/src/main/java/org/onap/clamp/clds/model/CldsModel.java index 4d4f3aab3..e34f47d98 100644 --- a/src/main/java/org/onap/clamp/clds/model/CldsModel.java +++ b/src/main/java/org/onap/clamp/clds/model/CldsModel.java @@ -5,16 +5,16 @@ * 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. + * 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 + * + * 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============================================ * =================================================================== @@ -23,58 +23,72 @@ package org.onap.clamp.clds.model; -import org.onap.clamp.clds.dao.CldsDao; -import org.jboss.resteasy.spi.BadRequestException; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - -import javax.ws.rs.NotFoundException; import java.util.ArrayList; import java.util.Arrays; import java.util.List; +import javax.ws.rs.NotFoundException; + +import org.jboss.resteasy.spi.BadRequestException; +import org.onap.clamp.clds.dao.CldsDao; + +import com.att.eelf.configuration.EELFLogger; +import com.att.eelf.configuration.EELFManager; + /** * Represent a CLDS Model. */ public class CldsModel { - private static final Logger logger = LoggerFactory.getLogger(CldsModel.class); - - private static final int UUID_LENGTH = 36; - - public static final String STATUS_DESIGN = "DESIGN"; - public static final String STATUS_DISTRIBUTED = "DISTRIBUTED"; - public static final String STATUS_ACTIVE = "ACTIVE"; - public static final String STATUS_STOPPED = "STOPPED"; - public static final String STATUS_DELETING = "DELETING"; - public static final String STATUS_ERROR = "ERROR"; // manual intervention required - public static final String STATUS_UNKNOWN = "UNKNOWN"; - - private String id; - private String templateId; - private String templateName; - private String name; - private String controlNamePrefix; - private String controlNameUuid; - private String bpmnId; - private String bpmnUserid; - private String bpmnText; - private String propId; - private String propUserid; - private String propText; - private String imageId; - private String imageUserid; - private String imageText; - private String docId; - private String docUserid; - private String docText; - private String blueprintId; - private String blueprintUserid; - private String blueprintText; - private CldsEvent event; - private String status; - private List permittedActionCd; + protected static final EELFLogger logger = EELFManager.getInstance().getLogger(CldsModel.class); + protected static final EELFLogger metricsLogger = EELFManager.getInstance().getMetricsLogger(); + + private static final int UUID_LENGTH = 36; + + public static final String STATUS_DESIGN = "DESIGN"; + public static final String STATUS_DISTRIBUTED = "DISTRIBUTED"; + public static final String STATUS_ACTIVE = "ACTIVE"; + public static final String STATUS_STOPPED = "STOPPED"; + public static final String STATUS_DELETING = "DELETING"; + public static final String STATUS_ERROR = "ERROR"; // manual + // intervention + // required + public static final String STATUS_UNKNOWN = "UNKNOWN"; + + private String id; + private String templateId; + private String templateName; + private String name; + private String controlNamePrefix; + private String controlNameUuid; + private String bpmnId; + private String bpmnUserid; + private String bpmnText; + private String propId; + private String propUserid; + private String propText; + private String imageId; + private String imageUserid; + private String imageText; + private String docId; + private String docUserid; + private String docText; + private String blueprintId; + private String blueprintUserid; + private String blueprintText; + private CldsEvent event; + private String status; + private List permittedActionCd; private List cldsModelInstanceList; + private String typeId; + private String typeName; + + private String dispatcherResponse; + + private String deploymentId; + + private boolean userAuthorizedToUpdate; + /** * Construct empty model. */ @@ -100,6 +114,16 @@ public class CldsModel { return model; } + public boolean canInventoryCall() { + boolean canCall = false; + /* Below checks the clds ecent is submit/resubmit */ + + if ((event.isActionCd(CldsEvent.ACTION_SUBMIT) || event.isActionCd(CldsEvent.ACTION_RESUBMIT))) { + canCall = true; + } + return canCall; + } + /** * Save model to DB. * @@ -113,8 +137,8 @@ public class CldsModel { } /** - * Insert a new event for the new action. - * Throw IllegalArgumentException if requested actionCd is not permitted. + * Insert a new event for the new action. Throw IllegalArgumentException if + * requested actionCd is not permitted. * * @param cldsDao * @param userid @@ -123,7 +147,7 @@ public class CldsModel { */ public void insEvent(CldsDao cldsDao, String userid, String actionCd, String actionStateCd) { validateAction(actionCd); - event = CldsEvent.insEvent(cldsDao, this, actionCd, actionStateCd, null); + event = CldsEvent.insEvent(cldsDao, this, userid, actionCd, actionStateCd, null); determineStatus(); determinePermittedActionCd(); } @@ -148,19 +172,20 @@ public class CldsModel { status = STATUS_DESIGN; } else if (event.isActionStateCd(CldsEvent.ACTION_STATE_ERROR)) { status = STATUS_ERROR; - } else if (event.isActionAndStateCd(CldsEvent.ACTION_CREATE, CldsEvent.ACTION_STATE_ANY) || - event.isActionAndStateCd(CldsEvent.ACTION_SUBMIT, CldsEvent.ACTION_STATE_ANY) || - event.isActionAndStateCd(CldsEvent.ACTION_RESUBMIT, CldsEvent.ACTION_STATE_ANY) || - event.isActionAndStateCd(CldsEvent.ACTION_DELETE, CldsEvent.ACTION_STATE_RECEIVED)) { + } else if (event.isActionAndStateCd(CldsEvent.ACTION_CREATE, CldsEvent.ACTION_STATE_ANY) + || event.isActionAndStateCd(CldsEvent.ACTION_SUBMIT, CldsEvent.ACTION_STATE_ANY) + || event.isActionAndStateCd(CldsEvent.ACTION_RESUBMIT, CldsEvent.ACTION_STATE_ANY) + || event.isActionAndStateCd(CldsEvent.ACTION_DELETE, CldsEvent.ACTION_STATE_RECEIVED)) { status = STATUS_DESIGN; - } else if (event.isActionAndStateCd(CldsEvent.ACTION_DISTRIBUTE, CldsEvent.ACTION_STATE_RECEIVED) || - event.isActionAndStateCd(CldsEvent.ACTION_UNDEPLOY, CldsEvent.ACTION_STATE_RECEIVED)) { + } else if (event.isActionAndStateCd(CldsEvent.ACTION_DISTRIBUTE, CldsEvent.ACTION_STATE_RECEIVED) + || event.isActionAndStateCd(CldsEvent.ACTION_UNDEPLOY, CldsEvent.ACTION_STATE_RECEIVED)) { status = STATUS_DISTRIBUTED; } else if (event.isActionAndStateCd(CldsEvent.ACTION_DELETE, CldsEvent.ACTION_STATE_SENT)) { status = STATUS_DELETING; - } else if (event.isActionAndStateCd(CldsEvent.ACTION_DEPLOY, CldsEvent.ACTION_STATE_RECEIVED) || - event.isActionAndStateCd(CldsEvent.ACTION_RESTART, CldsEvent.ACTION_STATE_ANY) || - event.isActionAndStateCd(CldsEvent.ACTION_UPDATE, CldsEvent.ACTION_STATE_ANY)) { + } else if (event.isActionAndStateCd(CldsEvent.ACTION_DEPLOY, CldsEvent.ACTION_STATE_RECEIVED) + || event.isActionAndStateCd(CldsEvent.ACTION_RESTART, CldsEvent.ACTION_STATE_ANY) + || event.isActionAndStateCd(CldsEvent.ACTION_UPDATE, CldsEvent.ACTION_STATE_ANY) + || event.isActionAndStateCd(CldsEvent.ACTION_DEPLOY, CldsEvent.ACTION_STATE_ANY)) { status = STATUS_ACTIVE; } else if (event.isActionAndStateCd(CldsEvent.ACTION_STOP, CldsEvent.ACTION_STATE_ANY)) { status = STATUS_STOPPED; @@ -169,7 +194,8 @@ public class CldsModel { } /** - * Get the actionCd from current event. If none, default value is CldsEvent.ACTION_CREATE + * Get the actionCd from current event. If none, default value is + * CldsEvent.ACTION_CREATE * * @return */ @@ -183,7 +209,8 @@ public class CldsModel { } /** - * Get the actionStateCd from current event. If none, default value is CldsEvent.ACTION_STATE_COMPLETED + * Get the actionStateCd from current event. If none, default value is + * CldsEvent.ACTION_STATE_COMPLETED * * @return */ @@ -197,28 +224,36 @@ public class CldsModel { } /** - * Determine permittedActionCd list using the actionCd from the current event. + * Determine permittedActionCd list using the actionCd from the current + * event. */ private void determinePermittedActionCd() { String actionCd = getCurrentActionCd(); switch (actionCd) { case CldsEvent.ACTION_CREATE: - permittedActionCd = Arrays.asList(CldsEvent.ACTION_SUBMIT); + permittedActionCd = Arrays.asList(CldsEvent.ACTION_SUBMIT, CldsEvent.ACTION_TEST); break; case CldsEvent.ACTION_SUBMIT: case CldsEvent.ACTION_RESUBMIT: - // for 1702 delete is not currently implemented (and resubmit requires manually deleting artifact from asdc + // for 1702 delete is not currently implemented (and resubmit + // requires manually deleting artifact from sdc permittedActionCd = Arrays.asList(CldsEvent.ACTION_RESUBMIT); break; case CldsEvent.ACTION_DISTRIBUTE: + permittedActionCd = Arrays.asList(CldsEvent.ACTION_DEPLOY, CldsEvent.ACTION_RESUBMIT); + break; case CldsEvent.ACTION_UNDEPLOY: - permittedActionCd = Arrays.asList(CldsEvent.ACTION_UPDATE); + permittedActionCd = Arrays.asList(CldsEvent.ACTION_UPDATE, CldsEvent.ACTION_DEPLOY); break; case CldsEvent.ACTION_DEPLOY: + permittedActionCd = Arrays.asList(CldsEvent.ACTION_UNDEPLOY, CldsEvent.ACTION_UPDATE, + CldsEvent.ACTION_STOP); + break; case CldsEvent.ACTION_RESTART: case CldsEvent.ACTION_UPDATE: // for 1702 delete is not currently implemented - permittedActionCd = Arrays.asList(CldsEvent.ACTION_UPDATE, CldsEvent.ACTION_STOP); + permittedActionCd = Arrays.asList(CldsEvent.ACTION_UPDATE, CldsEvent.ACTION_STOP, + CldsEvent.ACTION_UNDEPLOY); break; case CldsEvent.ACTION_DELETE: if (getCurrentActionStateCd().equals(CldsEvent.ACTION_STATE_SENT)) { @@ -229,7 +264,8 @@ public class CldsModel { break; case CldsEvent.ACTION_STOP: // for 1702 delete is not currently implemented - permittedActionCd = Arrays.asList(CldsEvent.ACTION_UPDATE, CldsEvent.ACTION_RESTART); + permittedActionCd = Arrays.asList(CldsEvent.ACTION_UPDATE, CldsEvent.ACTION_RESTART, + CldsEvent.ACTION_UNDEPLOY); break; default: logger.warn("Invalid current actionCd: " + actionCd); @@ -237,22 +273,26 @@ public class CldsModel { } /** - * Validate requestedActionCd - determine permittedActionCd and then check if contained in permittedActionCd - * Throw IllegalArgumentException if requested actionCd is not permitted. + * Validate requestedActionCd - determine permittedActionCd and then check + * if contained in permittedActionCd Throw IllegalArgumentException if + * requested actionCd is not permitted. * * @param requestedActionCd */ public void validateAction(String requestedActionCd) { determinePermittedActionCd(); if (!permittedActionCd.contains(requestedActionCd)) { - throw new IllegalArgumentException("Invalid requestedActionCd: " + requestedActionCd + ". Given current actionCd: " + getCurrentActionCd() + ", the permittedActionCd: " + permittedActionCd); + throw new IllegalArgumentException( + "Invalid requestedActionCd: " + requestedActionCd + ". Given current actionCd: " + + getCurrentActionCd() + ", the permittedActionCd: " + permittedActionCd); } } /** - * Extract the UUID portion of a given full control name (controlNamePrefix + controlNameUuid). - * No fields are populated other than controlNamePrefix and controlNameUuid. - * Throws BadRequestException if length of given control name is less than UUID_LENGTH. + * Extract the UUID portion of a given full control name (controlNamePrefix + * + controlNameUuid). No fields are populated other than controlNamePrefix + * and controlNameUuid. Throws BadRequestException if length of given + * control name is less than UUID_LENGTH. * * @param fullControlName * @return @@ -265,7 +305,8 @@ public class CldsModel { len = fullControlName.length(); } if (len < UUID_LENGTH) { - throw new BadRequestException("closed loop id / control name length, " + len + ", less than the minimum of: " + UUID_LENGTH); + throw new BadRequestException( + "closed loop id / control name length, " + len + ", less than the minimum of: " + UUID_LENGTH); } CldsModel model = new CldsModel(); model.setControlNamePrefix(fullControlName.substring(0, len - UUID_LENGTH)); @@ -291,19 +332,22 @@ public class CldsModel { CldsModel cldsModel = createUsingControlName(controlName); cldsModel = cldsDao.getModelByUuid(cldsModel.getControlNameUuid()); cldsModel.determineStatus(); - if (dcaeEvent.getCldsActionCd().equals(CldsEvent.ACTION_UNDEPLOY) || - (dcaeEvent.getCldsActionCd().equals(CldsEvent.ACTION_DEPLOY) && (cldsModel.getStatus().equals(STATUS_DISTRIBUTED) || cldsModel.getStatus().equals(STATUS_DESIGN)))) { - CldsEvent.insEvent(cldsDao, dcaeEvent.getControlName(), userid, dcaeEvent.getCldsActionCd(), CldsEvent.ACTION_STATE_RECEIVED, null); + if (dcaeEvent.getCldsActionCd().equals(CldsEvent.ACTION_UNDEPLOY) || (dcaeEvent.getCldsActionCd() + .equals(CldsEvent.ACTION_DEPLOY) + && (cldsModel.getStatus().equals(STATUS_DISTRIBUTED) || cldsModel.getStatus().equals(STATUS_DESIGN)))) { + CldsEvent.insEvent(cldsDao, dcaeEvent.getControlName(), userid, dcaeEvent.getCldsActionCd(), + CldsEvent.ACTION_STATE_RECEIVED, null); } cldsDao.insModelInstance(cldsModel, dcaeEvent.getInstances()); return cldsModel; } /** - * To remove modelInstance from the database - * This method 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. + * To remove modelInstance from the database This method 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. * * @param cldsDao * @param dcaeEvent @@ -311,7 +355,8 @@ public class CldsModel { @SuppressWarnings("unused") private static CldsModel removeModelInstance(CldsDao cldsDao, DcaeEvent dcaeEvent) { String controlName = dcaeEvent.getControlName(); - //cldsModel = cldsDao.delModelInstance(cldsModel.getControlNameUuid(), dcaeEvent.getInstances() ); + // cldsModel = cldsDao.delModelInstance(cldsModel.getControlNameUuid(), + // dcaeEvent.getInstances() ); return createUsingControlName(controlName); } @@ -323,12 +368,28 @@ public class CldsModel { } /** - * @param name the name to set + * @param name + * the name to set */ public void setName(String name) { this.name = name; } + /** + * @return the typeName + */ + public String getTypeName() { + return typeName; + } + + /** + * @param name + * the typeName to set + */ + public void setTypeName(String typeName) { + this.typeName = typeName; + } + public String getTemplateId() { return templateId; } @@ -345,7 +406,8 @@ public class CldsModel { } /** - * @param controlNamePrefix the controlNamePrefix to set + * @param controlNamePrefix + * the controlNamePrefix to set */ public void setControlNamePrefix(String controlNamePrefix) { this.controlNamePrefix = controlNamePrefix; @@ -359,13 +421,13 @@ public class CldsModel { } /** - * @param controlNameUuid the controlNameUuid to set + * @param controlNameUuid + * the controlNameUuid to set */ public void setControlNameUuid(String controlNameUuid) { this.controlNameUuid = controlNameUuid; } - /** * @return the propUserid */ @@ -374,7 +436,8 @@ public class CldsModel { } /** - * @param propUserid the propUserid to set + * @param propUserid + * the propUserid to set */ public void setPropUserid(String propUserid) { this.propUserid = propUserid; @@ -388,7 +451,8 @@ public class CldsModel { } /** - * @param propText the propText to set + * @param propText + * the propText to set */ public void setPropText(String propText) { this.propText = propText; @@ -426,7 +490,8 @@ public class CldsModel { } /** - * @param event the event to set + * @param event + * the event to set */ public void setEvent(CldsEvent event) { this.event = event; @@ -440,7 +505,8 @@ public class CldsModel { } /** - * @param status the status to set + * @param status + * the status to set */ public void setStatus(String status) { this.status = status; @@ -454,7 +520,8 @@ public class CldsModel { } /** - * @param permittedActionCd the permittedActionCd to set + * @param permittedActionCd + * the permittedActionCd to set */ public void setPermittedActionCd(List permittedActionCd) { this.permittedActionCd = permittedActionCd; @@ -556,6 +623,14 @@ public class CldsModel { this.docText = docText; } + public String getTypeId() { + return typeId; + } + + public void setTypeId(String typeId) { + this.typeId = typeId; + } + public List getCldsModelInstanceList() { if (cldsModelInstanceList == null) { cldsModelInstanceList = new ArrayList<>(); @@ -567,4 +642,28 @@ public class CldsModel { this.cldsModelInstanceList = cldsModelInstanceList; } + public void setDispatcherResponse(String dispatcherResponse) { + this.dispatcherResponse = dispatcherResponse; + + } + + public String getDispatcherResponse() { + return this.dispatcherResponse; + } + + public String getDeploymentId() { + return deploymentId; + } + + public void setDeploymentId(String deploymentId) { + this.deploymentId = deploymentId; + } + + public boolean isUserAuthorizedToUpdate() { + return userAuthorizedToUpdate; + } + + public void setUserAuthorizedToUpdate(boolean userAuthorizedToUpdate) { + this.userAuthorizedToUpdate = userAuthorizedToUpdate; + } } diff --git a/src/main/java/org/onap/clamp/clds/model/CldsServiceData.java b/src/main/java/org/onap/clamp/clds/model/CldsServiceData.java index 89108393f..dad7cb615 100644 --- a/src/main/java/org/onap/clamp/clds/model/CldsServiceData.java +++ b/src/main/java/org/onap/clamp/clds/model/CldsServiceData.java @@ -5,16 +5,16 @@ * 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. + * 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 + * + * 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============================================ * =================================================================== @@ -23,25 +23,29 @@ package org.onap.clamp.clds.model; -import org.onap.clamp.clds.dao.CldsDao; -import org.onap.clamp.clds.service.CldsService; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - -import javax.ws.rs.NotAuthorizedException; import java.io.Serializable; import java.util.ArrayList; import java.util.List; +import javax.ws.rs.NotAuthorizedException; + +import org.onap.clamp.clds.dao.CldsDao; +import org.onap.clamp.clds.service.CldsService; + +import com.att.eelf.configuration.EELFLogger; +import com.att.eelf.configuration.EELFManager; + public class CldsServiceData implements Serializable { - private static final Logger logger = LoggerFactory.getLogger(CldsServiceData.class); - private static final long serialVersionUID = 1L; + private static final long serialVersionUID = -9153372664377279423L; + + protected static final EELFLogger logger = EELFManager.getInstance().getLogger(CldsServiceData.class); + protected static final EELFLogger auditLogger = EELFManager.getInstance().getAuditLogger(); - private String serviceInvariantUUID; - private String serviceUUID; - private Long ageOfRecord; - private List cldsVfs; + private String serviceInvariantUUID; + private String serviceUUID; + private Long ageOfRecord; + private List cldsVfs; public String getServiceInvariantUUID() { return serviceInvariantUUID; @@ -84,8 +88,8 @@ public class CldsServiceData implements Serializable { } /** - * Filter out any VFs that the user is not authorized for. - * Use the CldsService to determine if the user is authorized for a VF. + * Filter out any VFs that the user is not authorized for. Use the + * CldsService to determine if the user is authorized for a VF. * * @param svc */ @@ -95,14 +99,16 @@ public class CldsServiceData implements Serializable { logger.debug("cldsVfs == null"); } else { for (CldsVfData vf : cldsVfs) { - // if user is authorized for the VF then add it to the filtered list + // if user is authorized for the VF then add it to the filtered + // list try { if (svc.isAuthorizedForVf(vf.getVfInvariantResourceUUID())) { filteredCldsVfs.add(vf); } } catch (NotAuthorizedException e) { logger.debug("user not authorized for {}", vf.getVfInvariantResourceUUID()); - // when not NotAuthorizedException - don't add to filteredCldsVfs list + // when not NotAuthorizedException - don't add to + // filteredCldsVfs list } } } diff --git a/src/main/java/org/onap/clamp/clds/model/CldsTemplate.java b/src/main/java/org/onap/clamp/clds/model/CldsTemplate.java index 6e2c8d70d..a96ee381c 100644 --- a/src/main/java/org/onap/clamp/clds/model/CldsTemplate.java +++ b/src/main/java/org/onap/clamp/clds/model/CldsTemplate.java @@ -5,16 +5,16 @@ * 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. + * 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 + * + * 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============================================ * =================================================================== @@ -23,35 +23,39 @@ package org.onap.clamp.clds.model; -import org.onap.clamp.clds.dao.CldsDao; - import javax.ws.rs.NotFoundException; +import org.onap.clamp.clds.dao.CldsDao; + /** * Represent a CLDS Model. */ public class CldsTemplate { - public static final String STATUS_DESIGN = "DESIGN"; - public static final String STATUS_ACTIVE = "ACTIVE"; - public static final String STATUS_STOPPED = "STOPPED"; + public static final String STATUS_DESIGN = "DESIGN"; + public static final String STATUS_ACTIVE = "ACTIVE"; + public static final String STATUS_STOPPED = "STOPPED"; public static final String STATUS_DELETING = "DELETING"; - public static final String STATUS_ERROR = "ERROR"; // manual intervention required - public static final String STATUS_UNKNOWN = "UNKNOWN"; - - private String id; - private String name; - private String controlNamePrefix; - private String controlNameUuid; - private String bpmnId; - private String bpmnUserid; - private String bpmnText; - private String imageId; - private String imageUserid; - private String imageText; - private String propId; - private String propUserid; - private String propText; + public static final String STATUS_ERROR = "ERROR"; // manual + // intervention + // required + public static final String STATUS_UNKNOWN = "UNKNOWN"; + + private String id; + private String name; + private String controlNamePrefix; + private String controlNameUuid; + private String bpmnId; + private String bpmnUserid; + private String bpmnText; + private String imageId; + private String imageUserid; + private String imageText; + private String propId; + private String propUserid; + private String propText; + + private boolean userAuthorizedToUpdate; /** * Save template to DB. @@ -183,4 +187,11 @@ public class CldsTemplate { this.imageId = imageId; } + public boolean isUserAuthorizedToUpdate() { + return userAuthorizedToUpdate; + } + + public void setUserAuthorizedToUpdate(boolean userAuthorizedToUpdate) { + this.userAuthorizedToUpdate = userAuthorizedToUpdate; + } } diff --git a/src/main/java/org/onap/clamp/clds/model/CldsVfData.java b/src/main/java/org/onap/clamp/clds/model/CldsVfData.java index dbcfb3464..aa5712c58 100644 --- a/src/main/java/org/onap/clamp/clds/model/CldsVfData.java +++ b/src/main/java/org/onap/clamp/clds/model/CldsVfData.java @@ -5,16 +5,16 @@ * 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. + * 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 + * + * 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============================================ * =================================================================== @@ -28,11 +28,20 @@ import java.util.List; public class CldsVfData implements Serializable { - private static final long serialVersionUID = 1L; + private static final long serialVersionUID = -5069670140274203606L; + private String vfName; + private String vfInvariantResourceUUID; + private List cldsVfcs; - private String vfName; - private String vfInvariantResourceUUID; - private List cldsVfcs; + private List cldsKPIList; + + public List getCldsKPIList() { + return cldsKPIList; + } + + public void setCldsKPIList(List cldsKPIList) { + this.cldsKPIList = cldsKPIList; + } public String getVfName() { return vfName; diff --git a/src/main/java/org/onap/clamp/clds/model/CldsVfcData.java b/src/main/java/org/onap/clamp/clds/model/CldsVfcData.java index 2d56d01f0..3828489cd 100644 --- a/src/main/java/org/onap/clamp/clds/model/CldsVfcData.java +++ b/src/main/java/org/onap/clamp/clds/model/CldsVfcData.java @@ -28,10 +28,9 @@ import java.util.List; public class CldsVfcData implements Serializable { - private static final long serialVersionUID = 1L; - - private String vfcName; - private String vfcInvariantResourceUUID; + private static final long serialVersionUID = 406993878174183557L; + private String vfcName; + private String vfcInvariantResourceUUID; private List cldsAlarmConditions; public String getVfcName() { diff --git a/src/main/java/org/onap/clamp/clds/model/DcaeEvent.java b/src/main/java/org/onap/clamp/clds/model/DcaeEvent.java index e10971e7d..e144a0eb7 100644 --- a/src/main/java/org/onap/clamp/clds/model/DcaeEvent.java +++ b/src/main/java/org/onap/clamp/clds/model/DcaeEvent.java @@ -5,16 +5,16 @@ * 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. + * 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 + * + * 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============================================ * =================================================================== @@ -23,24 +23,25 @@ package org.onap.clamp.clds.model; -import org.jboss.resteasy.spi.BadRequestException; - import java.util.List; +import org.jboss.resteasy.spi.BadRequestException; + /** * 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 + // this is an event we (clds) sends to dcae + public static final String EVENT_CREATED = "created"; + public static final String EVENT_DISTRIBUTION = "distribute"; + 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 instances; /** @@ -51,21 +52,24 @@ public class DcaeEvent { public String getCldsActionCd() { if (event == null || event.length() == 0) { throw new BadRequestException("action null or empty"); - } else if (event.equals(EVENT_CREATED)) { + } else if (event.equalsIgnoreCase(EVENT_CREATED)) { return CldsEvent.ACTION_CREATE; - } else if (event.equals(EVENT_DISTRIBUTION)) { + } else if (event.equalsIgnoreCase(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)) { + } else if (event.equalsIgnoreCase(EVENT_DEPLOYMENT) && (instances == null || instances.size() == 0)) { + return CldsEvent.ACTION_DEPLOY; + } else if (event.equalsIgnoreCase(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; + // 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); } @@ -78,7 +82,8 @@ public class DcaeEvent { 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); + throw new BadRequestException("artifactName value not valid (expecting it to end with " + + ARTIFACT_NAME_SUFFIX + "): " + artifactName); } } @@ -90,7 +95,8 @@ public class DcaeEvent { } /** - * @param event the event to set + * @param event + * the event to set */ public void setEvent(String event) { this.event = event; @@ -104,7 +110,8 @@ public class DcaeEvent { } /** - * @param serviceUUID the serviceUUID to set + * @param serviceUUID + * the serviceUUID to set */ public void setServiceUUID(String serviceUUID) { this.serviceUUID = serviceUUID; @@ -118,7 +125,8 @@ public class DcaeEvent { } /** - * @param resourceUUID the resourceUUID to set + * @param resourceUUID + * the resourceUUID to set */ public void setResourceUUID(String resourceUUID) { this.resourceUUID = resourceUUID; @@ -132,7 +140,8 @@ public class DcaeEvent { } /** - * @param artifactName the artifactName to set + * @param artifactName + * the artifactName to set */ public void setArtifactName(String artifactName) { this.artifactName = artifactName; diff --git a/src/main/java/org/onap/clamp/clds/model/ValueItem.java b/src/main/java/org/onap/clamp/clds/model/ValueItem.java index 804d18546..a3a81425e 100644 --- a/src/main/java/org/onap/clamp/clds/model/ValueItem.java +++ b/src/main/java/org/onap/clamp/clds/model/ValueItem.java @@ -49,7 +49,8 @@ public class ValueItem { } /** - * @param value the value to set + * @param value + * the value to set */ public void setValue(String value) { this.value = value; -- cgit 1.2.3-korg