From: root Date: Tue, 27 Nov 2018 03:42:20 +0000 (+0000) Subject: Varibles Name Changed X-Git-Tag: 3.0.2~4 X-Git-Url: https://gerrit.onap.org/r/gitweb?a=commitdiff_plain;h=71b279e93fa881c17ffc331128ad16d23ad800fc;p=externalapi%2Fnbi.git Varibles Name Changed Issue-ID: EXTAPI-172 Change-Id: I5839dc1ae011d3da55a31a4816c1e6d5d3ec71cb Signed-off-by: root (cherry picked from commit 7535125f2ddf5dc492d8b93a8e3ae2311e8d6ee1) --- diff --git a/src/main/java/org/onap/nbi/apis/serviceorder/workflow/SOTaskManager.java b/src/main/java/org/onap/nbi/apis/serviceorder/workflow/SOTaskManager.java index eb95792..be8bdc0 100644 --- a/src/main/java/org/onap/nbi/apis/serviceorder/workflow/SOTaskManager.java +++ b/src/main/java/org/onap/nbi/apis/serviceorder/workflow/SOTaskManager.java @@ -1,106 +1,105 @@ -/** - * Copyright (c) 2018 Orange - * - * 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. - */ -package org.onap.nbi.apis.serviceorder.workflow; - -import java.util.ArrayList; -import java.util.Date; -import java.util.HashMap; -import java.util.List; -import java.util.Map; -import java.util.Map.Entry; -import org.onap.nbi.apis.serviceorder.model.OrderItemRelationship; -import org.onap.nbi.apis.serviceorder.model.ServiceOrder; -import org.onap.nbi.apis.serviceorder.model.ServiceOrderItem; -import org.onap.nbi.apis.serviceorder.model.orchestrator.ExecutionTask; -import org.onap.nbi.apis.serviceorder.model.orchestrator.ServiceOrderInfo; -import org.onap.nbi.apis.serviceorder.repositories.ExecutionTaskRepository; -import org.onap.nbi.apis.serviceorder.utils.JsonEntityConverter; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.scheduling.annotation.EnableScheduling; -import org.springframework.scheduling.annotation.Scheduled; -import org.springframework.stereotype.Service; - -@Service -@EnableScheduling -public class SOTaskManager { - - @Autowired - private ExecutionTaskRepository executionTaskRepository; - - @Autowired - private SOTaskProcessor soTaskProcessor; - - private static final Logger LOGGER = LoggerFactory.getLogger(SOTaskManager.class); - - /** - * @param orderItems - * @param serviceOrderInfoJson - */ - private void registerOrderItemExecutionPlan(List orderItems, - String serviceOrderInfoJson) { - List executionTasksSaved = new ArrayList<>(); - Map internalIdOrderItemsMap = new HashMap<>(); - if (orderItems != null) { - // first we save create all the execution tasks with order item id in relied tasks - for (ServiceOrderItem orderItem : orderItems) { - ExecutionTask task = new ExecutionTask(); - task.setOrderItemId(orderItem.getId()); - task.setCreateDate(new Date()); - StringBuilder sb = new StringBuilder(); - for (OrderItemRelationship orderItemRelationship : orderItem.getOrderItemRelationship()) { - sb.append(orderItemRelationship.getId()).append(" "); - } - task.setReliedTasks(sb.toString()); - task.setServiceOrderInfoJson(serviceOrderInfoJson); - ExecutionTask savedTask = executionTaskRepository.save(task); - executionTasksSaved.add(savedTask); - - internalIdOrderItemsMap.put(savedTask.getOrderItemId(), savedTask.getInternalId()); - } - // then we replace all orderitem ids in reliedtasks field with internalid of the tasks - for (ExecutionTask executionTask : executionTasksSaved) { - for (Entry entry : internalIdOrderItemsMap.entrySet()) { - String replace = executionTask.getReliedTasks().replace(entry.getKey(), - String.valueOf(entry.getValue())); - executionTask.setReliedTasks(replace); - } - if(LOGGER.isDebugEnabled()) { - LOGGER.debug("saving task with id {} , orderItemId {} , reliedtasks {}", executionTask.getInternalId(), - executionTask.getOrderItemId(), executionTask.getReliedTasks()); - } - executionTaskRepository.save(executionTask); - } - } - } - - /** - * - * @param serviceOrder - * @param serviceOrderInfo - */ - public void registerServiceOrder(ServiceOrder serviceOrder, ServiceOrderInfo serviceOrderInfo) { - String serviceOrderInfoJson = JsonEntityConverter.convertServiceOrderInfoToJson(serviceOrderInfo); - registerOrderItemExecutionPlan(serviceOrder.getOrderItem(), serviceOrderInfoJson); - } - - // Using fixedDelay to mitigate against Scheduler queue backlog with fixedRate - @Scheduled(fixedDelay = 2000) - private void processExecutionPlan() throws InterruptedException { - List taskToExecute = executionTaskRepository.findByReliedTasksIsEmpty(); - for (ExecutionTask executionTask : taskToExecute) { - soTaskProcessor.processOrderItem(executionTask); - } - } -} +/** + * Copyright (c) 2018 Orange + * + * 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. + */ +package org.onap.nbi.apis.serviceorder.workflow; + +import java.util.*; +import java.util.Map.Entry; +import org.onap.nbi.apis.serviceorder.model.OrderItemRelationship; +import org.onap.nbi.apis.serviceorder.model.ServiceOrder; +import org.onap.nbi.apis.serviceorder.model.ServiceOrderItem; +import org.onap.nbi.apis.serviceorder.model.orchestrator.ExecutionTask; +import org.onap.nbi.apis.serviceorder.model.orchestrator.ServiceOrderInfo; +import org.onap.nbi.apis.serviceorder.repositories.ExecutionTaskRepository; +import org.onap.nbi.apis.serviceorder.utils.JsonEntityConverter; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.scheduling.annotation.EnableScheduling; +import org.springframework.scheduling.annotation.Scheduled; +import org.springframework.stereotype.Service; + +@Service +@EnableScheduling +public class SOTaskManager { + + @Autowired + private ExecutionTaskRepository executionTaskRepository; + + @Autowired + private SOTaskProcessor soTaskProcessor; + + private static final Logger LOGGER = LoggerFactory.getLogger(SOTaskManager.class); + + /** + * @param orderItems + * @param serviceOrderInfoJson + */ + private void registerOrderItemExecutionPlan(List orderItems, + String serviceOrderInfoJson) { + List executionTasksSaved = new ArrayList<>(); + Map internalIdOrderItemsMap = new HashMap<>(); + if (orderItems != null) { + // first we save create all the execution tasks with order item id in relied tasks + for (ServiceOrderItem orderItem : orderItems) { + ExecutionTask task = new ExecutionTask(); + task.setOrderItemId(orderItem.getId()); + task.setCreateDate(new Date()); + StringBuilder sb = new StringBuilder(); + for (OrderItemRelationship orderItemRelationship : orderItem.getOrderItemRelationship()) { + sb.append(orderItemRelationship.getId()).append(" "); + } + task.setReliedTasks(sb.toString()); + task.setServiceOrderInfoJson(serviceOrderInfoJson); + ExecutionTask savedTask = executionTaskRepository.save(task); + executionTasksSaved.add(savedTask); + + internalIdOrderItemsMap.put(savedTask.getOrderItemId(), savedTask.getInternalId()); + } + // then we replace all orderitem ids in reliedtasks field with internalid of the tasks + for (ExecutionTask executionTask : executionTasksSaved) { + List reliedOrderItemsIds = new ArrayList(Arrays.asList(executionTask.getReliedTasks().split(" "))); + List reliedTasksInternalIds = new ArrayList(); + for (Entry entry : internalIdOrderItemsMap.entrySet()){ + if(reliedOrderItemsIds.contains(entry.getKey())) { + reliedTasksInternalIds.add(entry.getValue().toString()); + } + } + String reliedTasksString = String.join(" ", reliedTasksInternalIds); + executionTask.setReliedTasks(reliedTasksString); + if(LOGGER.isDebugEnabled()) { + LOGGER.debug("saving task with id {} , orderItemId {} , reliedtasks {}", executionTask.getInternalId(), executionTask.getOrderItemId(), executionTask.getReliedTasks()); + } + executionTaskRepository.save(executionTask); + } + } + } + + /** + * + * @param serviceOrder + * @param serviceOrderInfo + */ + public void registerServiceOrder(ServiceOrder serviceOrder, ServiceOrderInfo serviceOrderInfo) { + String serviceOrderInfoJson = JsonEntityConverter.convertServiceOrderInfoToJson(serviceOrderInfo); + registerOrderItemExecutionPlan(serviceOrder.getOrderItem(), serviceOrderInfoJson); + } + + // Using fixedDelay to mitigate against Scheduler queue backlog with fixedRate + @Scheduled(fixedDelay = 2000) + private void processExecutionPlan() throws InterruptedException { + List taskToExecute = executionTaskRepository.findByReliedTasksIsEmpty(); + for (ExecutionTask executionTask : taskToExecute) { + soTaskProcessor.processOrderItem(executionTask); + } + } +}