From ac97522c6eca08a4dd9c4b2486e07b89fb5d9d99 Mon Sep 17 00:00:00 2001 From: vidhyasree Date: Fri, 12 Jan 2018 15:23:34 -0500 Subject: Fix for resumetraffic to allow traffic ResumeTraffic action is added to LCM actions prior. In this ticket payload structure is added to resumetraffic in yang file. In ResumeTrafficService.java and ResumeTrafficServiceTest.java added payload parameters. Issue-ID: APPC-346 Signed-off-by: vidhyasree Change-Id: I9a3ca163bbd520e599416d03edc921a6cafb3059 --- .../provider/lcm/service/ResumeTrafficService.java | 56 +++++++++++++++------- 1 file changed, 38 insertions(+), 18 deletions(-) (limited to 'appc-provider/appc-provider-bundle/src/main') diff --git a/appc-provider/appc-provider-bundle/src/main/java/org/onap/appc/provider/lcm/service/ResumeTrafficService.java b/appc-provider/appc-provider-bundle/src/main/java/org/onap/appc/provider/lcm/service/ResumeTrafficService.java index 53d038141..57081c1c3 100644 --- a/appc-provider/appc-provider-bundle/src/main/java/org/onap/appc/provider/lcm/service/ResumeTrafficService.java +++ b/appc-provider/appc-provider-bundle/src/main/java/org/onap/appc/provider/lcm/service/ResumeTrafficService.java @@ -9,15 +9,15 @@ * 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. - * + * * ECOMP is a trademark and service mark of AT&T Intellectual Property. * ============LICENSE_END========================================================= */ @@ -29,13 +29,14 @@ import org.opendaylight.yang.gen.v1.org.onap.appc.lcm.rev160108.ResumeTrafficInp import org.opendaylight.yang.gen.v1.org.onap.appc.lcm.rev160108.ResumeTrafficOutput; import org.opendaylight.yang.gen.v1.org.onap.appc.lcm.rev160108.ResumeTrafficOutputBuilder; import org.opendaylight.yang.gen.v1.org.onap.appc.lcm.rev160108.action.identifiers.ActionIdentifiers; +import org.opendaylight.yang.gen.v1.org.onap.appc.lcm.rev160108.Payload; import org.opendaylight.yang.gen.v1.org.onap.appc.lcm.rev160108.common.header.CommonHeader; import org.onap.appc.requesthandler.objects.RequestHandlerInput; import org.onap.appc.executor.objects.LCMCommandStatus; import org.onap.appc.util.JsonUtil; - import java.io.IOException; import java.util.Map; + /** * Provide LCM command service for Resume VNF traffic */ @@ -51,16 +52,18 @@ public class ResumeTrafficService extends AbstractBaseService { /** * Process the Resume request + * * @param input of ResumeTrafficInput from the REST API input * @return ResumeTrafficOutputBuilder which has the process results */ public ResumeTrafficOutputBuilder process(ResumeTrafficInput input) { - CommonHeader commonHeader = input.getCommonHeader(); + CommonHeader commonHeader = input.getCommonHeader(); ActionIdentifiers actionIdentifiers = input.getActionIdentifiers(); + Payload payload = input.getPayload(); - validate(commonHeader, input.getAction(), actionIdentifiers); + validate(commonHeader, input.getAction(), actionIdentifiers, payload); if (status == null) { - proceedAction(input); + proceedAction(commonHeader, actionIdentifiers, payload); } ResumeTrafficOutputBuilder outputBuilder = new ResumeTrafficOutputBuilder(); @@ -75,23 +78,40 @@ public class ResumeTrafficService extends AbstractBaseService { * * @param input of ResumeTrafficInput from the REST API input */ - void validate(CommonHeader commonHeader, - Action action, - ActionIdentifiers actionIdentifiers) { - status = validateVnfId(commonHeader, action, actionIdentifiers); - if (status != null) { - return; - } - } + void validate(CommonHeader commonHeader, Action action, ActionIdentifiers actionIdentifiers, Payload payload) { + status = validateVnfId(commonHeader, action, actionIdentifiers); + if (status != null) { + return; + } + // validate payload + String keyName = "payload"; + if (payload == null) { + status = buildStatusForParamName(LCMCommandStatus.MISSING_MANDATORY_PARAMETER, keyName); + return; + } + String payloadString = payload.getValue(); + status = validateMustHaveParamValue(payloadString == null ? payloadString : payloadString.trim(), "payload"); + if (status != null) { + return; + } + try { + Map payloadMap = JsonUtil.convertJsonStringToFlatMap(payloadString); + validateMustHaveParamValue(payloadMap.get(keyName), keyName); + } catch (IOException e) { + logger.error(String.format("ResumeTrafficService (%s) got IOException when converting payload", rpcName), + e); + status = buildStatusForErrorMsg(LCMCommandStatus.UNEXPECTED_ERROR, e.getMessage()); + } + } /** * Proceed to action for the Resume VNF traffic. * * @param input of ResumeTrafficInput from the REST API input */ - void proceedAction(ResumeTrafficInput input) { - RequestHandlerInput requestHandlerInput = getRequestHandlerInput( - input.getCommonHeader(), input.getActionIdentifiers(), null, this.getClass().getName()); + void proceedAction(CommonHeader commonHeader, ActionIdentifiers actionIdentifiers, Payload payload) { + RequestHandlerInput requestHandlerInput = + getRequestHandlerInput(commonHeader, actionIdentifiers, payload, this.getClass().getName()); if (requestHandlerInput != null) { executeAction(requestHandlerInput); } -- cgit