X-Git-Url: https://gerrit.o-ran-sc.org/r/gitweb?p=it%2Fotf.git;a=blobdiff_plain;f=otf-camunda%2Fsrc%2Fmain%2Fjava%2Forg%2Foran%2Fotf%2Fservice%2Fimpl%2FDeleteTestDefinitionServiceImpl.java;fp=otf-camunda%2Fsrc%2Fmain%2Fjava%2Forg%2Foran%2Fotf%2Fservice%2Fimpl%2FDeleteTestDefinitionServiceImpl.java;h=79eeb4532236fefcd22af31ea2552da7d7eeb8b9;hp=0000000000000000000000000000000000000000;hb=14f6f95c84a4a1fa8774190db4a03fd0214ec55f;hpb=f49bd1efeaaddd4891c1f329b18d8cfb28b3e75b diff --git a/otf-camunda/src/main/java/org/oran/otf/service/impl/DeleteTestDefinitionServiceImpl.java b/otf-camunda/src/main/java/org/oran/otf/service/impl/DeleteTestDefinitionServiceImpl.java new file mode 100644 index 0000000..79eeb45 --- /dev/null +++ b/otf-camunda/src/main/java/org/oran/otf/service/impl/DeleteTestDefinitionServiceImpl.java @@ -0,0 +1,119 @@ +/* Copyright (c) 2019 AT&T Intellectual Property. # +# # +# 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.oran.otf.service.impl; + +import org.oran.otf.camunda.configuration.OtfCamundaConfiguration; +import org.oran.otf.common.model.TestDefinition; +import org.oran.otf.common.model.local.BpmnInstance; +import org.oran.otf.common.repository.TestDefinitionRepository; +import org.oran.otf.common.utility.http.ResponseUtility; +import org.oran.otf.service.DeleteTestDefinitionService; +import java.util.List; +import java.util.Optional; +import javax.ws.rs.core.Response; + +import org.camunda.bpm.BpmPlatform; +import org.camunda.bpm.engine.RepositoryService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.boot.context.event.ApplicationReadyEvent; +import org.springframework.context.event.EventListener; +import org.springframework.stereotype.Service; + +@Service +public class DeleteTestDefinitionServiceImpl implements DeleteTestDefinitionService { + + + private RepositoryService repositoryService; + + @Autowired + private TestDefinitionRepository testDefinitionRepository; + + @EventListener(ApplicationReadyEvent.class) + private void initialize(){ + if(this.repositoryService == null){ + this.repositoryService = BpmPlatform.getProcessEngineService().getProcessEngine(OtfCamundaConfiguration.processEngineName).getRepositoryService(); + } + } + + // delete a single version by deploymentId + @Override + public Response deleteTestStrategyByDeploymentId(String deploymentId) { + try { + repositoryService.deleteDeployment(deploymentId, true); + return ResponseUtility.Build.okRequest(); + } catch (Exception e) { + return ResponseUtility.Build.badRequestWithMessage(e.getMessage()); + } + } + + + // delete all deployment versions given test definition + @Override + public Response deleteTestStrategyByTestDefinitionId(String testDefinitionId) { + Optional testDefinitionQuery = + testDefinitionRepository.findById(testDefinitionId); + if (!testDefinitionQuery.isPresent()) { + return Response.status(404).build(); + } + TestDefinition testDefinition = testDefinitionQuery.get(); + + List bpmnInstances = testDefinition.getBpmnInstances(); + // List indices = new ArrayList(); + for (int i = 0; i < bpmnInstances.size(); i++) { + try { + repositoryService.deleteDeployment(bpmnInstances.get(i).getDeploymentId(), true); + // indices.add(i); + } catch (Exception e) { + + } + } + + // for(int i = indices.size()-1; i >=0; i++) { + // bpmnInstances.remove(i); + // } + // testDefinition.setBpmnInstances(new ArrayList()); + // testDefinitionRepository.save(testDefinition); + return ResponseUtility.Build.okRequest(); + + + } + + + // delete all deployments +// public Response deleteAllTestStrategies() { +//// create a database to retrieve all process definitions +// List processDefinitions = repositoryService.createProcessDefinitionQuery() +// .orderByProcessDefinitionVersion().asc().list(); +// +// final int sizeBefore = processDefinitions.size(); +// +// // delete each deployment +// processDefinitions.forEach(processDefinition -> { +// repositoryService.deleteDeployment(processDefinition.getDeploymentId(), true); +// }); +// +// final int sizeAfter = processDefinitions.size(); +// +// Map response = new HashMap(); +// if (sizeBefore - sizeAfter == 0) +// response.put("numDeletions", sizeBefore); +// else +// response.put("numDeletions", sizeBefore - sizeAfter); +// +// return ResponseUtility.Build.okRequestWithObject(response); +// } +}