diff options
author | waqas.ikram <waqas.ikram@est.tech> | 2021-02-18 15:01:28 +0000 |
---|---|---|
committer | waqas.ikram <waqas.ikram@est.tech> | 2021-02-18 15:07:11 +0000 |
commit | 708e8a0a2a38d72d274e65794411a3ef1e241069 (patch) | |
tree | a284a5052c45402b706c4f5acf2bd6ef512973d1 /so-etsi-nfvo/so-etsi-nfvo-ns-lcm/so-etsi-nfvo-ns-lcm-bpmn-flows | |
parent | 4005922ca75a2e373d12ac264a889f76029fb38e (diff) |
Removing so-etsi-nfvo module
Change-Id: I5ab5d409bad26abd83b2d8338c4c5ab5fa6be97c
Issue-ID: SO-3485
Signed-off-by: waqas.ikram <waqas.ikram@est.tech>
Diffstat (limited to 'so-etsi-nfvo/so-etsi-nfvo-ns-lcm/so-etsi-nfvo-ns-lcm-bpmn-flows')
72 files changed, 0 insertions, 9114 deletions
diff --git a/so-etsi-nfvo/so-etsi-nfvo-ns-lcm/so-etsi-nfvo-ns-lcm-bpmn-flows/pom.xml b/so-etsi-nfvo/so-etsi-nfvo-ns-lcm/so-etsi-nfvo-ns-lcm-bpmn-flows/pom.xml deleted file mode 100644 index 0160a523ea..0000000000 --- a/so-etsi-nfvo/so-etsi-nfvo-ns-lcm/so-etsi-nfvo-ns-lcm-bpmn-flows/pom.xml +++ /dev/null @@ -1,117 +0,0 @@ -<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" - xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd"> - <modelVersion>4.0.0</modelVersion> - <parent> - <groupId>org.onap.so.etsi.nfvo</groupId> - <artifactId>so-etsi-nfvo-ns-lcm</artifactId> - <version>1.8.0-SNAPSHOT</version> - </parent> - <artifactId>so-etsi-nfvo-ns-lcm-bpmn-flows</artifactId> - <name>SO ETSI NFVO NS LCM BPMN Flows</name> - - <build> - <plugins> - <plugin> - <groupId>org.jacoco</groupId> - <artifactId>jacoco-maven-plugin</artifactId> - </plugin> - <plugin> - <groupId>org.apache.maven.plugins</groupId> - <artifactId>maven-surefire-plugin</artifactId> - <configuration> - <systemPropertyVariables> - <so.log.level>DEBUG</so.log.level> - </systemPropertyVariables> - <rerunFailingTestsCount>2</rerunFailingTestsCount> - <parallel>suites</parallel> - <useUnlimitedThreads>false</useUnlimitedThreads> - <threadCount>1</threadCount> - </configuration> - </plugin> - </plugins> - </build> - - <dependencies> - <dependency> - <groupId>org.onap.so.etsi.nfvo</groupId> - <artifactId>so-etsi-nfvo-ns-lcm-api</artifactId> - <version>${project.version}</version> - </dependency> - <dependency> - <groupId>org.onap.so.etsi.nfvo</groupId> - <artifactId>so-etsi-nfvo-ns-lcm-database-service</artifactId> - <version>${project.version}</version> - </dependency> - <dependency> - <groupId>org.onap.so.adapters</groupId> - <artifactId>etsi-sol003-pkgm-ext-clients</artifactId> - <version>${project.version}</version> - </dependency> - <dependency> - <groupId>org.onap.so.adapters</groupId> - <artifactId>etsi-sol003-lcm-api</artifactId> - <version>${project.version}</version> - </dependency> - <dependency> - <groupId>org.onap.so</groupId> - <artifactId>aai-client</artifactId> - <version>${project.version}</version> - </dependency> - <dependency> - <groupId>org.camunda.bpm.springboot</groupId> - <artifactId>camunda-bpm-spring-boot-starter-rest</artifactId> - <version>${camunda.springboot.version}</version> - <exclusions> - <exclusion> - <groupId>org.camunda.bpmn</groupId> - <artifactId>camunda-engine-rest-core</artifactId> - </exclusion> - </exclusions> - </dependency> - <dependency> - <groupId>org.yaml</groupId> - <artifactId>snakeyaml</artifactId> - </dependency> - <dependency> - <groupId>com.shazam</groupId> - <artifactId>shazamcrest</artifactId> - <version>${snakeyaml-version}</version> - <exclusions> - <exclusion> - <groupId>com.google.guava</groupId> - <artifactId>guava</artifactId> - </exclusion> - <exclusion> - <groupId>org.apache.commons</groupId> - <artifactId>commons-lang3</artifactId> - </exclusion> - <exclusion> - <groupId>com.vaadin.external.google</groupId> - <artifactId>android-json</artifactId> - </exclusion> - </exclusions> - </dependency> - <dependency> - <groupId>com.h2database</groupId> - <artifactId>h2</artifactId> - <scope>test</scope> - </dependency> - <dependency> - <groupId>org.hamcrest</groupId> - <artifactId>hamcrest</artifactId> - <version>${hamcrest-version}</version> - <scope>test</scope> - </dependency> - <dependency> - <groupId>nl.jqno.equalsverifier</groupId> - <artifactId>equalsverifier</artifactId> - <version>${equalsverifier-version}</version> - <scope>test</scope> - </dependency> - <dependency> - <groupId>org.springframework.boot</groupId> - <artifactId>spring-boot-starter-test</artifactId> - <scope>test</scope> - </dependency> - </dependencies> -</project>
\ No newline at end of file diff --git a/so-etsi-nfvo/so-etsi-nfvo-ns-lcm/so-etsi-nfvo-ns-lcm-bpmn-flows/src/main/java/org/onap/so/etsi/nfvo/ns/lcm/bpmn/flows/CamundaCustomConfiguration.java b/so-etsi-nfvo/so-etsi-nfvo-ns-lcm/so-etsi-nfvo-ns-lcm-bpmn-flows/src/main/java/org/onap/so/etsi/nfvo/ns/lcm/bpmn/flows/CamundaCustomConfiguration.java deleted file mode 100644 index 33923f400e..0000000000 --- a/so-etsi-nfvo/so-etsi-nfvo-ns-lcm/so-etsi-nfvo-ns-lcm-bpmn-flows/src/main/java/org/onap/so/etsi/nfvo/ns/lcm/bpmn/flows/CamundaCustomConfiguration.java +++ /dev/null @@ -1,49 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * Copyright (C) 2020 Nordix Foundation. - * ================================================================================ - * 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. - * - * SPDX-License-Identifier: Apache-2.0 - * ============LICENSE_END========================================================= - */ -package org.onap.so.etsi.nfvo.ns.lcm.bpmn.flows; - -import static org.onap.so.etsi.nfvo.ns.lcm.bpmn.flows.Constants.NS_WORKFLOW_ENGINE; -import static org.onap.so.etsi.nfvo.ns.lcm.bpmn.flows.Constants.TENANT_ID; -import static org.slf4j.LoggerFactory.getLogger; -import org.camunda.bpm.engine.spring.SpringProcessEngineConfiguration; -import org.camunda.bpm.spring.boot.starter.configuration.Ordering; -import org.camunda.bpm.spring.boot.starter.configuration.impl.AbstractCamundaConfiguration; -import org.slf4j.Logger; -import org.springframework.core.annotation.Order; -import org.springframework.stereotype.Component; - -/** - * @author Waqas Ikram (waqas.ikram@est.tech) - * - */ -@Component -@Order(Ordering.DEFAULT_ORDER + 1) -public class CamundaCustomConfiguration extends AbstractCamundaConfiguration { - private static final Logger logger = getLogger(CamundaCustomConfiguration.class); - - @Override - public void preInit(final SpringProcessEngineConfiguration processEngineConfiguration) { - logger.info("Setting DeploymentTenantId to {} and DeploymentName to {}", TENANT_ID, NS_WORKFLOW_ENGINE); - processEngineConfiguration.setDeploymentTenantId(TENANT_ID); - processEngineConfiguration.setDeploymentName(NS_WORKFLOW_ENGINE); - super.preInit(processEngineConfiguration); - } - -} diff --git a/so-etsi-nfvo/so-etsi-nfvo-ns-lcm/so-etsi-nfvo-ns-lcm-bpmn-flows/src/main/java/org/onap/so/etsi/nfvo/ns/lcm/bpmn/flows/CamundaDatabaseConfiguration.java b/so-etsi-nfvo/so-etsi-nfvo-ns-lcm/so-etsi-nfvo-ns-lcm-bpmn-flows/src/main/java/org/onap/so/etsi/nfvo/ns/lcm/bpmn/flows/CamundaDatabaseConfiguration.java deleted file mode 100644 index 770e91c1cb..0000000000 --- a/so-etsi-nfvo/so-etsi-nfvo-ns-lcm/so-etsi-nfvo-ns-lcm-bpmn-flows/src/main/java/org/onap/so/etsi/nfvo/ns/lcm/bpmn/flows/CamundaDatabaseConfiguration.java +++ /dev/null @@ -1,92 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * Copyright (C) 2020 Nordix Foundation. - * ================================================================================ - * 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. - * - * SPDX-License-Identifier: Apache-2.0 - * ============LICENSE_END========================================================= - */ -package org.onap.so.etsi.nfvo.ns.lcm.bpmn.flows; - - -import static org.slf4j.LoggerFactory.getLogger; -import javax.sql.DataSource; -import org.camunda.bpm.engine.spring.SpringProcessEngineConfiguration; -import org.camunda.bpm.spring.boot.starter.util.SpringBootProcessEnginePlugin; -import org.slf4j.Logger; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.beans.factory.annotation.Qualifier; -import org.springframework.boot.context.properties.ConfigurationProperties; -import org.springframework.context.annotation.Bean; -import org.springframework.context.annotation.Configuration; -import org.springframework.jdbc.datasource.DataSourceTransactionManager; -import org.springframework.jmx.export.MBeanExporter; -import org.springframework.transaction.PlatformTransactionManager; -import org.springframework.transaction.annotation.EnableTransactionManagement; -import com.zaxxer.hikari.HikariConfig; -import com.zaxxer.hikari.HikariDataSource; - -/** - * @author Waqas Ikram (waqas.ikram@est.tech) - * - */ -@Configuration -@EnableTransactionManagement -public class CamundaDatabaseConfiguration { - - private static final String CAMUNDA_TRANSACTION_MANAGER_BEAN_NAME = "camundaTransactionManager"; - - private static final String CAMUNDA_DATA_SOURCE_BEAN_NAME = "camundaBpmDataSource"; - - private static final Logger logger = getLogger(CamundaDatabaseConfiguration.class); - - @Autowired(required = false) - private MBeanExporter mBeanExporter; - - @Bean - @ConfigurationProperties(prefix = "spring.datasource.hikari.camunda") - public HikariConfig camundaDbConfig() { - logger.debug("Creating Camunda HikariConfig bean ... "); - return new HikariConfig(); - } - - @Bean(name = CAMUNDA_DATA_SOURCE_BEAN_NAME) - public DataSource camundaDataSource() { - if (mBeanExporter != null) { - mBeanExporter.addExcludedBean(CAMUNDA_DATA_SOURCE_BEAN_NAME); - } - logger.debug("Creating Camunda HikariDataSource bean ... "); - final HikariConfig hikariConfig = this.camundaDbConfig(); - return new HikariDataSource(hikariConfig); - } - - @Bean(name = CAMUNDA_TRANSACTION_MANAGER_BEAN_NAME) - public PlatformTransactionManager camundaTransactionManager( - @Qualifier(CAMUNDA_DATA_SOURCE_BEAN_NAME) final DataSource dataSource) { - return new DataSourceTransactionManager(dataSource); - } - - @Bean - public SpringBootProcessEnginePlugin transactionManagerProcessEnginePlugin( - @Qualifier(CAMUNDA_TRANSACTION_MANAGER_BEAN_NAME) final PlatformTransactionManager camundaTransactionManager) { - return new SpringBootProcessEnginePlugin() { - @Override - public void preInit(final SpringProcessEngineConfiguration processEngineConfiguration) { - logger.info("Setting Camunda TransactionManager ..."); - processEngineConfiguration.setTransactionManager(camundaTransactionManager); - - } - }; - } -} diff --git a/so-etsi-nfvo/so-etsi-nfvo-ns-lcm/so-etsi-nfvo-ns-lcm-bpmn-flows/src/main/java/org/onap/so/etsi/nfvo/ns/lcm/bpmn/flows/CamundaVariableNameConstants.java b/so-etsi-nfvo/so-etsi-nfvo-ns-lcm/so-etsi-nfvo-ns-lcm-bpmn-flows/src/main/java/org/onap/so/etsi/nfvo/ns/lcm/bpmn/flows/CamundaVariableNameConstants.java deleted file mode 100644 index a7acc3ec25..0000000000 --- a/so-etsi-nfvo/so-etsi-nfvo-ns-lcm/so-etsi-nfvo-ns-lcm-bpmn-flows/src/main/java/org/onap/so/etsi/nfvo/ns/lcm/bpmn/flows/CamundaVariableNameConstants.java +++ /dev/null @@ -1,55 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * Copyright (C) 2020 Nordix Foundation. - * ================================================================================ - * 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. - * - * SPDX-License-Identifier: Apache-2.0 - * ============LICENSE_END========================================================= - */ -package org.onap.so.etsi.nfvo.ns.lcm.bpmn.flows; - -/** - * @author Waqas Ikram (waqas.ikram@est.tech) - * - */ -public class CamundaVariableNameConstants { - - public static final String JOB_ID_PARAM_NAME = "jobId"; - public static final String JOB_BUSINESS_KEY_PARAM_NAME = "jobBusinessKey"; - public static final String CREATE_NS_REQUEST_PARAM_NAME = "createNsRequest"; - public static final String GLOBAL_CUSTOMER_ID_PARAM_NAME = "globalCustomerId"; - public static final String SERVICE_TYPE_PARAM_NAME = "serviceType"; - - public static final String NS_PACKAGE_MODEL_PARAM_NAME = "NSPackageModel"; - public static final String NS_WORKFLOW_PROCESSING_EXCEPTION_PARAM_NAME = "NsWorkflowProcessingException"; - public static final String CREATE_NS_RESPONSE_PARAM_NAME = "createNsResponse"; - - public static final String INSTANTIATE_NS_REQUEST_PARAM_NAME = "instantiateNsRequest"; - public static final String OCC_ID_PARAM_NAME = "occId"; - public static final String NS_INSTANCE_ID_PARAM_NAME = "NsInstanceId"; - public static final String NETWORK_SERVICE_DESCRIPTOR_PARAM_NAME = "NetworkServiceDescriptor"; - public static final String VNF_CREATE_INSTANTIATE_REQUESTS = "vnfCreateInstantiateRequests"; - - public static final String NF_INST_ID_PARAM_NAME = "NF_INST_ID"; - public static final String CREATE_VNF_RESPONSE_PARAM_NAME = "createVnfResponse"; - public static final String OPERATION_STATUS_PARAM_NAME = "operationStatus"; - - public static final String TERMINATE_NS_REQUEST_PARAM_NAME = "terminateNsRequest"; - public static final String NFVO_NF_INST_IDS_PARAM_NAME = "nfvoNfInstIds"; - public static final String DELETE_VNF_RESPONSE_PARAM_NAME = "deleteVnfResponse"; - public static final String TERMINATE_VNF_VNFID_PARAM_NAME = "vnfId"; - - private CamundaVariableNameConstants() {} - -} diff --git a/so-etsi-nfvo/so-etsi-nfvo-ns-lcm/so-etsi-nfvo-ns-lcm-bpmn-flows/src/main/java/org/onap/so/etsi/nfvo/ns/lcm/bpmn/flows/Constants.java b/so-etsi-nfvo/so-etsi-nfvo-ns-lcm/so-etsi-nfvo-ns-lcm-bpmn-flows/src/main/java/org/onap/so/etsi/nfvo/ns/lcm/bpmn/flows/Constants.java deleted file mode 100644 index c6c56c9eb3..0000000000 --- a/so-etsi-nfvo/so-etsi-nfvo-ns-lcm/so-etsi-nfvo-ns-lcm-bpmn-flows/src/main/java/org/onap/so/etsi/nfvo/ns/lcm/bpmn/flows/Constants.java +++ /dev/null @@ -1,39 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * Copyright (C) 2020 Nordix Foundation. - * ================================================================================ - * 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. - * - * SPDX-License-Identifier: Apache-2.0 - * ============LICENSE_END========================================================= - */ -package org.onap.so.etsi.nfvo.ns.lcm.bpmn.flows; - -/** - * @author Waqas Ikram (waqas.ikram@est.tech) - * - */ -public class Constants { - - public static final String TENANT_ID = "ns-workflow-engine-tenant"; - public static final String NS_WORKFLOW_ENGINE = "NS-WORKFLOW-ENGINE"; - public static final String CREATE_NS_WORKFLOW_NAME = "CreateNs"; - public static final String INSTANTIATE_NS_WORKFLOW_NAME = "InstantiateNs"; - public static final String TERMINATE_NS_WORKFLOW_NAME = "TerminateNs"; - public static final String DELETE_NS_WORKFLOW_NAME = "DeleteNs"; - public static final String GET_NS_OCCURRENCE_OPERATION_STATUS_NAME = "GetNsOccurrenceOperationStatus"; - - - private Constants() {} - -} diff --git a/so-etsi-nfvo/so-etsi-nfvo-ns-lcm/so-etsi-nfvo-ns-lcm-bpmn-flows/src/main/java/org/onap/so/etsi/nfvo/ns/lcm/bpmn/flows/GsonProvider.java b/so-etsi-nfvo/so-etsi-nfvo-ns-lcm/so-etsi-nfvo-ns-lcm-bpmn-flows/src/main/java/org/onap/so/etsi/nfvo/ns/lcm/bpmn/flows/GsonProvider.java deleted file mode 100644 index 31961d5b86..0000000000 --- a/so-etsi-nfvo/so-etsi-nfvo-ns-lcm/so-etsi-nfvo-ns-lcm-bpmn-flows/src/main/java/org/onap/so/etsi/nfvo/ns/lcm/bpmn/flows/GsonProvider.java +++ /dev/null @@ -1,44 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * Copyright (C) 2020 Nordix Foundation. - * ================================================================================ - * 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. - * - * SPDX-License-Identifier: Apache-2.0 - * ============LICENSE_END========================================================= - */ -package org.onap.so.etsi.nfvo.ns.lcm.bpmn.flows; - -import java.time.LocalDateTime; -import org.onap.so.etsi.nfvo.ns.lcm.JSON; -import org.onap.so.etsi.nfvo.ns.lcm.bpmn.flows.utils.LocalDateTimeTypeAdapter; -import org.springframework.stereotype.Component; -import org.threeten.bp.OffsetDateTime; -import com.google.gson.Gson; - -/** - * @author Waqas Ikram (waqas.ikram@est.tech) - * - */ -@Component -public class GsonProvider { - - private final JSON.OffsetDateTimeTypeAdapter offsetDateTimeTypeAdapter = new JSON.OffsetDateTimeTypeAdapter(); - - public Gson getGson() { - return JSON.createGson().registerTypeAdapter(OffsetDateTime.class, offsetDateTimeTypeAdapter) - .registerTypeAdapter(LocalDateTime.class, new LocalDateTimeTypeAdapter()).create(); - } - - -} diff --git a/so-etsi-nfvo/so-etsi-nfvo-ns-lcm/so-etsi-nfvo-ns-lcm-bpmn-flows/src/main/java/org/onap/so/etsi/nfvo/ns/lcm/bpmn/flows/exceptions/EtsiCatalogManagerRequestFailureException.java b/so-etsi-nfvo/so-etsi-nfvo-ns-lcm/so-etsi-nfvo-ns-lcm-bpmn-flows/src/main/java/org/onap/so/etsi/nfvo/ns/lcm/bpmn/flows/exceptions/EtsiCatalogManagerRequestFailureException.java deleted file mode 100644 index 553d2f1cf8..0000000000 --- a/so-etsi-nfvo/so-etsi-nfvo-ns-lcm/so-etsi-nfvo-ns-lcm-bpmn-flows/src/main/java/org/onap/so/etsi/nfvo/ns/lcm/bpmn/flows/exceptions/EtsiCatalogManagerRequestFailureException.java +++ /dev/null @@ -1,41 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * Copyright (C) 2020 Nordix Foundation. - * ================================================================================ - * 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. - * - * SPDX-License-Identifier: Apache-2.0 - * ============LICENSE_END========================================================= - */ -package org.onap.so.etsi.nfvo.ns.lcm.bpmn.flows.exceptions; - -import org.springframework.http.HttpStatus; -import org.springframework.web.bind.annotation.ResponseStatus; - -/** - * @author Waqas Ikram (waqas.ikram@est.tech) - * - */ -@ResponseStatus(code = HttpStatus.INTERNAL_SERVER_ERROR) -public class EtsiCatalogManagerRequestFailureException extends RuntimeException { - - private static final long serialVersionUID = 66862444537194516L; - - public EtsiCatalogManagerRequestFailureException(final String message) { - super(message); - } - - public EtsiCatalogManagerRequestFailureException(final String message, final Throwable cause) { - super(message, cause); - } -} diff --git a/so-etsi-nfvo/so-etsi-nfvo-ns-lcm/so-etsi-nfvo-ns-lcm-bpmn-flows/src/main/java/org/onap/so/etsi/nfvo/ns/lcm/bpmn/flows/exceptions/NsRequestProcessingException.java b/so-etsi-nfvo/so-etsi-nfvo-ns-lcm/so-etsi-nfvo-ns-lcm-bpmn-flows/src/main/java/org/onap/so/etsi/nfvo/ns/lcm/bpmn/flows/exceptions/NsRequestProcessingException.java deleted file mode 100644 index 0901f077d2..0000000000 --- a/so-etsi-nfvo/so-etsi-nfvo-ns-lcm/so-etsi-nfvo-ns-lcm-bpmn-flows/src/main/java/org/onap/so/etsi/nfvo/ns/lcm/bpmn/flows/exceptions/NsRequestProcessingException.java +++ /dev/null @@ -1,54 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * Copyright (C) 2020 Nordix Foundation. - * ================================================================================ - * 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. - * - * SPDX-License-Identifier: Apache-2.0 - * ============LICENSE_END========================================================= - */ -package org.onap.so.etsi.nfvo.ns.lcm.bpmn.flows.exceptions; - -import org.onap.so.etsi.nfvo.ns.lcm.model.InlineResponse400; -import org.springframework.http.HttpStatus; -import org.springframework.web.bind.annotation.ResponseStatus; - -/** - * - * @author Waqas Ikram (waqas.ikram@est.tech) - */ -@ResponseStatus(code = HttpStatus.INTERNAL_SERVER_ERROR) -public class NsRequestProcessingException extends RuntimeException { - - private static final long serialVersionUID = 66862444537194516L; - private final InlineResponse400 problemDetails; - - public NsRequestProcessingException(final String message) { - super(message); - problemDetails = null; - } - - public NsRequestProcessingException(final String message, final InlineResponse400 problemDetails) { - super(message); - this.problemDetails = problemDetails; - } - - @Override - public synchronized Throwable fillInStackTrace() { - return this; - } - - public InlineResponse400 getProblemDetails() { - return problemDetails; - } -} diff --git a/so-etsi-nfvo/so-etsi-nfvo-ns-lcm/so-etsi-nfvo-ns-lcm-bpmn-flows/src/main/java/org/onap/so/etsi/nfvo/ns/lcm/bpmn/flows/extclients/aai/AaiClientProvider.java b/so-etsi-nfvo/so-etsi-nfvo-ns-lcm/so-etsi-nfvo-ns-lcm-bpmn-flows/src/main/java/org/onap/so/etsi/nfvo/ns/lcm/bpmn/flows/extclients/aai/AaiClientProvider.java deleted file mode 100644 index 673662aae8..0000000000 --- a/so-etsi-nfvo/so-etsi-nfvo-ns-lcm/so-etsi-nfvo-ns-lcm-bpmn-flows/src/main/java/org/onap/so/etsi/nfvo/ns/lcm/bpmn/flows/extclients/aai/AaiClientProvider.java +++ /dev/null @@ -1,34 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * Copyright (C) 2020 Nordix Foundation. - * ================================================================================ - * 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. - * - * SPDX-License-Identifier: Apache-2.0 - * ============LICENSE_END========================================================= - */ - -package org.onap.so.etsi.nfvo.ns.lcm.bpmn.flows.extclients.aai; - -import org.onap.aaiclient.client.aai.AAIResourcesClient; -import org.springframework.context.annotation.Bean; -import org.springframework.context.annotation.Configuration; - -@Configuration -public class AaiClientProvider { - - @Bean - public AAIResourcesClient getAaiClient() { - return new AAIResourcesClient(); - } -} diff --git a/so-etsi-nfvo/so-etsi-nfvo-ns-lcm/so-etsi-nfvo-ns-lcm-bpmn-flows/src/main/java/org/onap/so/etsi/nfvo/ns/lcm/bpmn/flows/extclients/aai/AaiPropertiesImpl.java b/so-etsi-nfvo/so-etsi-nfvo-ns-lcm/so-etsi-nfvo-ns-lcm-bpmn-flows/src/main/java/org/onap/so/etsi/nfvo/ns/lcm/bpmn/flows/extclients/aai/AaiPropertiesImpl.java deleted file mode 100644 index 25a43a86d0..0000000000 --- a/so-etsi-nfvo/so-etsi-nfvo-ns-lcm/so-etsi-nfvo-ns-lcm-bpmn-flows/src/main/java/org/onap/so/etsi/nfvo/ns/lcm/bpmn/flows/extclients/aai/AaiPropertiesImpl.java +++ /dev/null @@ -1,109 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * Copyright (C) 2020 Nordix Foundation. - * ================================================================================ - * 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. - * - * SPDX-License-Identifier: Apache-2.0 - * ============LICENSE_END========================================================= - */ - -package org.onap.so.etsi.nfvo.ns.lcm.bpmn.flows.extclients.aai; - -import org.onap.aaiclient.client.aai.AAIProperties; -import org.onap.aaiclient.client.aai.AAIVersion; -import org.onap.so.client.CacheProperties; -import org.onap.so.spring.SpringContextHelper; -import org.springframework.context.ApplicationContext; -import java.net.MalformedURLException; -import java.net.URL; - -public class AaiPropertiesImpl implements AAIProperties { - - private final String endpoint; - private final String encryptedBasicAuth; - private final String encryptionKey; - private final String aaiVersion; - private final Long readTimeout; - private final Long connectionTimeout; - private final boolean enableCaching; - private final Long cacheMaxAge; - - public AaiPropertiesImpl() { - final ApplicationContext context = SpringContextHelper.getAppContext(); - this.endpoint = context.getEnvironment().getProperty("aai.endpoint"); - this.encryptedBasicAuth = context.getEnvironment().getProperty("aai.auth"); - this.encryptionKey = context.getEnvironment().getProperty("mso.key"); - this.aaiVersion = context.getEnvironment().getProperty("aai.version"); - this.readTimeout = context.getEnvironment().getProperty("aai.readTimeout", Long.class, 60000L); - this.connectionTimeout = context.getEnvironment().getProperty("aai.connectionTimeout", Long.class, 60000L); - this.enableCaching = context.getEnvironment().getProperty("aai.caching.enabled", Boolean.class, false); - this.cacheMaxAge = context.getEnvironment().getProperty("aai.caching.maxAge", Long.class, 60000L); - } - - @Override - public URL getEndpoint() throws MalformedURLException { - return new URL(endpoint); - } - - @Override - public String getSystemName() { - return "MSO"; - } - - @Override - public AAIVersion getDefaultVersion() { - for (final AAIVersion version : AAIVersion.values()) { - if (version.toString().equalsIgnoreCase(this.aaiVersion)) { - return version; - } ; - - } - return AAIVersion.LATEST; - } - - @Override - public String getAuth() { - return encryptedBasicAuth; - } - - @Override - public String getKey() { - return encryptionKey; - } - - @Override - public Long getReadTimeout() { - return this.readTimeout; - } - - @Override - public Long getConnectionTimeout() { - return this.connectionTimeout; - } - - @Override - public boolean isCachingEnabled() { - return this.enableCaching; - } - - @Override - public CacheProperties getCacheProperties() { - return new AAICacheProperties() { - @Override - public Long getMaxAge() { - return cacheMaxAge; - } - }; - } -} diff --git a/so-etsi-nfvo/so-etsi-nfvo-ns-lcm/so-etsi-nfvo-ns-lcm-bpmn-flows/src/main/java/org/onap/so/etsi/nfvo/ns/lcm/bpmn/flows/extclients/aai/AaiServiceProvider.java b/so-etsi-nfvo/so-etsi-nfvo-ns-lcm/so-etsi-nfvo-ns-lcm-bpmn-flows/src/main/java/org/onap/so/etsi/nfvo/ns/lcm/bpmn/flows/extclients/aai/AaiServiceProvider.java deleted file mode 100644 index a54a6f41f9..0000000000 --- a/so-etsi-nfvo/so-etsi-nfvo-ns-lcm/so-etsi-nfvo-ns-lcm-bpmn-flows/src/main/java/org/onap/so/etsi/nfvo/ns/lcm/bpmn/flows/extclients/aai/AaiServiceProvider.java +++ /dev/null @@ -1,47 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * Copyright (C) 2020 Nordix Foundation. - * ================================================================================ - * 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. - * - * SPDX-License-Identifier: Apache-2.0 - * ============LICENSE_END========================================================= - */ - -package org.onap.so.etsi.nfvo.ns.lcm.bpmn.flows.extclients.aai; - -import org.onap.aai.domain.yang.GenericVnf; -import org.onap.aai.domain.yang.ServiceInstance; -import java.util.Optional; - -/** - * @author Waqas Ikram (waqas.ikram@est.tech) - * - */ -public interface AaiServiceProvider { - - void createServiceInstance(final String globalCustomerId, final String serviceType, - final ServiceInstance aaiServiceInstance); - - void createGenericVnfAndConnectServiceInstance(final String serviceInstanceId, final String vnfId, - final GenericVnf genericVnf); - - void connectGenericVnfToTenant(final String vnfId, final String cloudOwner, final String cloudRegion, - final String tenantId); - - Optional<GenericVnf> getGenericVnf(final String vnfId); - - void deleteGenericVnf(final String vnfId); - - void deleteServiceInstance(final String globalCustomerId, final String serviceType, final String serviceInstanceId); -} diff --git a/so-etsi-nfvo/so-etsi-nfvo-ns-lcm/so-etsi-nfvo-ns-lcm-bpmn-flows/src/main/java/org/onap/so/etsi/nfvo/ns/lcm/bpmn/flows/extclients/aai/AaiServiceProviderImpl.java b/so-etsi-nfvo/so-etsi-nfvo-ns-lcm/so-etsi-nfvo-ns-lcm-bpmn-flows/src/main/java/org/onap/so/etsi/nfvo/ns/lcm/bpmn/flows/extclients/aai/AaiServiceProviderImpl.java deleted file mode 100644 index a3b3fa9d66..0000000000 --- a/so-etsi-nfvo/so-etsi-nfvo-ns-lcm/so-etsi-nfvo-ns-lcm-bpmn-flows/src/main/java/org/onap/so/etsi/nfvo/ns/lcm/bpmn/flows/extclients/aai/AaiServiceProviderImpl.java +++ /dev/null @@ -1,106 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * Copyright (C) 2020 Nordix Foundation. - * ================================================================================ - * 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. - * - * SPDX-License-Identifier: Apache-2.0 - * ============LICENSE_END========================================================= - */ -package org.onap.so.etsi.nfvo.ns.lcm.bpmn.flows.extclients.aai; - -import java.util.Optional; -import org.onap.aai.domain.yang.GenericVnf; -import org.onap.aai.domain.yang.ServiceInstance; -import org.onap.aaiclient.client.aai.entities.uri.AAIResourceUri; -import org.onap.aaiclient.client.aai.entities.uri.AAIUriFactory; -import org.onap.aaiclient.client.generated.fluentbuilders.AAIFluentTypeBuilder; -import org.onap.aaiclient.client.generated.fluentbuilders.AAIFluentTypeBuilder.Types; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Service; - -/** - * @author Waqas Ikram (waqas.ikram@est.tech) - */ -@Service -public class AaiServiceProviderImpl implements AaiServiceProvider { - private static final Logger logger = LoggerFactory.getLogger(AaiServiceProviderImpl.class); - private final AaiClientProvider aaiClientProvider; - - @Autowired - public AaiServiceProviderImpl(final AaiClientProvider aaiClientProvider) { - this.aaiClientProvider = aaiClientProvider; - } - - @Override - public void createServiceInstance(final String globalCustomerId, final String serviceType, - final ServiceInstance aaiServiceInstance) { - logger.info("Creating service instance in AAI: {}", aaiServiceInstance); - final AAIResourceUri serviceInstanceURI = - AAIUriFactory.createResourceUri(AAIFluentTypeBuilder.business().customer(globalCustomerId) - .serviceSubscription(serviceType).serviceInstance(aaiServiceInstance.getServiceInstanceId())); - aaiClientProvider.getAaiClient().createIfNotExists(serviceInstanceURI, Optional.of(aaiServiceInstance)); - - } - - @Override - public void createGenericVnfAndConnectServiceInstance(final String serviceInstanceId, final String vnfId, - final GenericVnf genericVnf) { - logger.info("Creating GenericVnf in AAI: {}", genericVnf); - final AAIResourceUri genericVnfURI = - AAIUriFactory.createResourceUri(AAIFluentTypeBuilder.network().genericVnf(vnfId)); - final AAIResourceUri serviceInstanceURI = - AAIUriFactory.createResourceUri(Types.SERVICE_INSTANCE.getFragment(serviceInstanceId)); - aaiClientProvider.getAaiClient().createIfNotExists(genericVnfURI, Optional.of(genericVnf)) - .connect(genericVnfURI, serviceInstanceURI); - - } - - @Override - public void connectGenericVnfToTenant(final String vnfId, final String cloudOwner, final String cloudRegion, - final String tenantId) { - logger.info("Connecting GenericVnf {} to {}/{}/{} in AAI", vnfId, cloudOwner, cloudRegion, tenantId); - final AAIResourceUri tenantURI = AAIUriFactory.createResourceUri( - AAIFluentTypeBuilder.cloudInfrastructure().cloudRegion(cloudOwner, cloudRegion).tenant(tenantId)); - final AAIResourceUri genericVnfURI = - AAIUriFactory.createResourceUri(AAIFluentTypeBuilder.network().genericVnf(vnfId)); - aaiClientProvider.getAaiClient().connect(tenantURI, genericVnfURI); - } - - @Override - public Optional<GenericVnf> getGenericVnf(final String vnfId) { - return aaiClientProvider.getAaiClient().get(GenericVnf.class, - AAIUriFactory.createResourceUri(AAIFluentTypeBuilder.network().genericVnf(vnfId))); - } - - @Override - public void deleteGenericVnf(final String vnfId) { - logger.info("Deleting GenericVnf with id: {} from AAI.", vnfId); - final AAIResourceUri aaiResourceUri = - AAIUriFactory.createResourceUri(AAIFluentTypeBuilder.network().genericVnf(vnfId)); - aaiClientProvider.getAaiClient().delete(aaiResourceUri); - } - - @Override - public void deleteServiceInstance(final String globalCustomerId, final String serviceType, - final String serviceInstanceId) { - logger.info( - "Deleting Service Instance with \nGlobal Customer Id: {}, \nService Type: {}, and \nService Instance Id: {} \nfrom AAI.", - globalCustomerId, serviceType, serviceInstanceId); - final AAIResourceUri serviceInstanceUri = AAIUriFactory.createResourceUri(AAIFluentTypeBuilder.business() - .customer(globalCustomerId).serviceSubscription(serviceType).serviceInstance(serviceInstanceId)); - aaiClientProvider.getAaiClient().delete(serviceInstanceUri); - } -} diff --git a/so-etsi-nfvo/so-etsi-nfvo-ns-lcm/so-etsi-nfvo-ns-lcm-bpmn-flows/src/main/java/org/onap/so/etsi/nfvo/ns/lcm/bpmn/flows/extclients/etsicatalog/EtsiCatalogPackageManagementServiceProvider.java b/so-etsi-nfvo/so-etsi-nfvo-ns-lcm/so-etsi-nfvo-ns-lcm-bpmn-flows/src/main/java/org/onap/so/etsi/nfvo/ns/lcm/bpmn/flows/extclients/etsicatalog/EtsiCatalogPackageManagementServiceProvider.java deleted file mode 100644 index 65d982c6cc..0000000000 --- a/so-etsi-nfvo/so-etsi-nfvo-ns-lcm/so-etsi-nfvo-ns-lcm-bpmn-flows/src/main/java/org/onap/so/etsi/nfvo/ns/lcm/bpmn/flows/extclients/etsicatalog/EtsiCatalogPackageManagementServiceProvider.java +++ /dev/null @@ -1,39 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * Copyright (C) 2020 Nordix Foundation. - * ================================================================================ - * 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. - * - * SPDX-License-Identifier: Apache-2.0 - * ============LICENSE_END========================================================= - */ -package org.onap.so.etsi.nfvo.ns.lcm.bpmn.flows.extclients.etsicatalog; - -import java.util.Optional; -import org.onap.so.adapters.etsisol003adapter.pkgm.extclients.etsicatalog.model.NsdInfo; -import org.onap.so.adapters.etsisol003adapter.pkgm.extclients.etsicatalog.model.VnfPkgInfo; -import org.onap.so.etsi.nfvo.ns.lcm.bpmn.flows.nsd.NetworkServiceDescriptor; - -/** - * @author Waqas Ikram (waqas.ikram@est.tech) - * - */ -public interface EtsiCatalogPackageManagementServiceProvider { - - Optional<NsdInfo> getNSPackageModel(final String nsdId); - - Optional<VnfPkgInfo> getVnfPkgInfo(final String vnfPkgId); - - Optional<NetworkServiceDescriptor> getNetworkServiceDescriptor(final String nsdId); - -} diff --git a/so-etsi-nfvo/so-etsi-nfvo-ns-lcm/so-etsi-nfvo-ns-lcm-bpmn-flows/src/main/java/org/onap/so/etsi/nfvo/ns/lcm/bpmn/flows/extclients/etsicatalog/EtsiCatalogPackageManagementServiceProviderImpl.java b/so-etsi-nfvo/so-etsi-nfvo-ns-lcm/so-etsi-nfvo-ns-lcm-bpmn-flows/src/main/java/org/onap/so/etsi/nfvo/ns/lcm/bpmn/flows/extclients/etsicatalog/EtsiCatalogPackageManagementServiceProviderImpl.java deleted file mode 100644 index 749e85e3db..0000000000 --- a/so-etsi-nfvo/so-etsi-nfvo-ns-lcm/so-etsi-nfvo-ns-lcm-bpmn-flows/src/main/java/org/onap/so/etsi/nfvo/ns/lcm/bpmn/flows/extclients/etsicatalog/EtsiCatalogPackageManagementServiceProviderImpl.java +++ /dev/null @@ -1,107 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * Copyright (C) 2020 Nordix Foundation. - * ================================================================================ - * 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. - * - * SPDX-License-Identifier: Apache-2.0 - * ============LICENSE_END========================================================= - */ -package org.onap.so.etsi.nfvo.ns.lcm.bpmn.flows.extclients.etsicatalog; - -import static org.onap.so.etsi.nfvo.ns.lcm.bpmn.flows.extclients.etsicatalog.EtsiCatalogServiceProviderConfiguration.ETSI_CATALOG_SERVICE_PROVIDER_BEAN; -import java.util.Optional; -import org.onap.so.adapters.etsisol003adapter.pkgm.extclients.etsicatalog.model.NsdInfo; -import org.onap.so.adapters.etsisol003adapter.pkgm.extclients.etsicatalog.model.VnfPkgInfo; -import org.onap.so.etsi.nfvo.ns.lcm.bpmn.flows.exceptions.EtsiCatalogManagerRequestFailureException; -import org.onap.so.etsi.nfvo.ns.lcm.bpmn.flows.nsd.NetworkServiceDescriptor; -import org.onap.so.etsi.nfvo.ns.lcm.bpmn.flows.nsd.parser.NetworkServiceDescriptorParser; -import org.onap.so.rest.service.HttpRestServiceProvider; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.beans.factory.annotation.Qualifier; -import org.springframework.http.ResponseEntity; -import org.springframework.stereotype.Service; - -/** - * @author Waqas Ikram (waqas.ikram@est.tech) - * - */ -@Service -public class EtsiCatalogPackageManagementServiceProviderImpl implements EtsiCatalogPackageManagementServiceProvider { - - private static final Logger logger = LoggerFactory.getLogger(EtsiCatalogPackageManagementServiceProviderImpl.class); - - private final HttpRestServiceProvider httpServiceProvider; - private final EtsiCatalogUrlProvider etsiCatalogUrlProvider; - private final NetworkServiceDescriptorParser networkServiceDescriptorParser; - - @Autowired - public EtsiCatalogPackageManagementServiceProviderImpl(final EtsiCatalogUrlProvider etsiCatalogUrlProvider, - @Qualifier(ETSI_CATALOG_SERVICE_PROVIDER_BEAN) final HttpRestServiceProvider httpServiceProvider, - final NetworkServiceDescriptorParser networkServiceDescriptorParser) { - this.etsiCatalogUrlProvider = etsiCatalogUrlProvider; - this.httpServiceProvider = httpServiceProvider; - this.networkServiceDescriptorParser = networkServiceDescriptorParser; - } - - @Override - public Optional<NsdInfo> getNSPackageModel(final String nsdId) { - try { - final ResponseEntity<NsdInfo> response = - httpServiceProvider.getHttpResponse(etsiCatalogUrlProvider.getNsPackageUrl(nsdId), NsdInfo.class); - if (response.getStatusCode().is2xxSuccessful()) { - return Optional.ofNullable(response.getBody()); - } - return Optional.empty(); - } catch (final Exception restProcessingException) { - final String message = "Caught exception while getting NS package model for: " + nsdId; - throw new EtsiCatalogManagerRequestFailureException(message, restProcessingException); - } - } - - @Override - public Optional<VnfPkgInfo> getVnfPkgInfo(final String vnfPkgId) { - try { - final ResponseEntity<VnfPkgInfo> response = httpServiceProvider - .getHttpResponse(etsiCatalogUrlProvider.getVnfPackageUrl(vnfPkgId), VnfPkgInfo.class); - if (response.getStatusCode().is2xxSuccessful()) { - return Optional.ofNullable(response.getBody()); - } - return Optional.empty(); - } catch (final Exception restProcessingException) { - final String message = "Caught exception while getting VNF package model for: " + vnfPkgId; - throw new EtsiCatalogManagerRequestFailureException(message, restProcessingException); - } - } - - @Override - public Optional<NetworkServiceDescriptor> getNetworkServiceDescriptor(final String nsdId) { - try { - final ResponseEntity<byte[]> response = httpServiceProvider - .getHttpResponse(etsiCatalogUrlProvider.getNsPackageContentUrl(nsdId), byte[].class); - if (response.getStatusCode().is2xxSuccessful()) { - if (response.hasBody()) { - return networkServiceDescriptorParser.parse(response.getBody()); - } - logger.error("Received response without body ..."); - } - return Optional.empty(); - } catch (final Exception restProcessingException) { - final String message = "Caught exception while getting NS package content for: " + nsdId; - throw new EtsiCatalogManagerRequestFailureException(message, restProcessingException); - } - } - -} diff --git a/so-etsi-nfvo/so-etsi-nfvo-ns-lcm/so-etsi-nfvo-ns-lcm-bpmn-flows/src/main/java/org/onap/so/etsi/nfvo/ns/lcm/bpmn/flows/extclients/etsicatalog/EtsiCatalogServiceProviderConfiguration.java b/so-etsi-nfvo/so-etsi-nfvo-ns-lcm/so-etsi-nfvo-ns-lcm-bpmn-flows/src/main/java/org/onap/so/etsi/nfvo/ns/lcm/bpmn/flows/extclients/etsicatalog/EtsiCatalogServiceProviderConfiguration.java deleted file mode 100644 index 7adf87adf4..0000000000 --- a/so-etsi-nfvo/so-etsi-nfvo-ns-lcm/so-etsi-nfvo-ns-lcm-bpmn-flows/src/main/java/org/onap/so/etsi/nfvo/ns/lcm/bpmn/flows/extclients/etsicatalog/EtsiCatalogServiceProviderConfiguration.java +++ /dev/null @@ -1,188 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * Copyright (C) 2020 Nordix Foundation. - * ================================================================================ - * 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. - * - * SPDX-License-Identifier: Apache-2.0 - * ============LICENSE_END========================================================= - */ - -package org.onap.so.etsi.nfvo.ns.lcm.bpmn.flows.extclients.etsicatalog; - -import java.io.IOException; -import java.security.KeyManagementException; -import java.security.KeyStoreException; -import java.security.NoSuchAlgorithmException; -import java.security.cert.CertificateException; -import java.util.Iterator; -import java.util.concurrent.TimeUnit; -import javax.net.ssl.HostnameVerifier; -import javax.net.ssl.SSLContext; -import javax.net.ssl.SSLSession; -import org.apache.http.client.config.RequestConfig; -import org.apache.http.config.Registry; -import org.apache.http.config.RegistryBuilder; -import org.apache.http.conn.socket.ConnectionSocketFactory; -import org.apache.http.conn.socket.PlainConnectionSocketFactory; -import org.apache.http.conn.ssl.SSLConnectionSocketFactory; -import org.apache.http.impl.client.HttpClientBuilder; -import org.apache.http.impl.conn.PoolingHttpClientConnectionManager; -import org.apache.http.ssl.SSLContextBuilder; -import org.onap.logging.filter.spring.SpringClientPayloadFilter; -import org.onap.so.configuration.rest.BasicHttpHeadersProvider; -import org.onap.so.configuration.rest.HttpClientConnectionConfiguration; -import org.onap.so.etsi.nfvo.ns.lcm.bpmn.flows.GsonProvider; -import org.onap.so.logging.jaxrs.filter.SOSpringClientFilter; -import org.onap.so.rest.service.HttpRestServiceProvider; -import org.onap.so.rest.service.HttpRestServiceProviderImpl; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.beans.factory.annotation.Qualifier; -import org.springframework.beans.factory.annotation.Value; -import org.springframework.context.annotation.Bean; -import org.springframework.context.annotation.Configuration; -import org.springframework.core.io.Resource; -import org.springframework.http.client.BufferingClientHttpRequestFactory; -import org.springframework.http.client.HttpComponentsClientHttpRequestFactory; -import org.springframework.http.converter.HttpMessageConverter; -import org.springframework.http.converter.json.GsonHttpMessageConverter; -import org.springframework.http.converter.json.MappingJackson2HttpMessageConverter; -import org.springframework.web.client.RestTemplate; - -/** - * Configures the HttpRestServiceProvider to make REST calls to the ETSI Catalog Manager - * - * @author gareth.roper@est.tech - */ - -@Configuration -public class EtsiCatalogServiceProviderConfiguration { - private static final Logger LOGGER = LoggerFactory.getLogger(EtsiCatalogServiceProviderConfiguration.class); - - public static final String ETSI_CATALOG_SERVICE_PROVIDER_BEAN = "etsiCatalogServiceProvider"; - - public static final String ETSI_CATALOG_REST_TEMPLATE_BEAN = "etsiCatalogRestTemplate"; - - private final HttpClientConnectionConfiguration clientConnectionConfiguration; - - @Value("${etsi-catalog-manager.http.client.ssl.trust-store:#{null}}") - private Resource trustStore; - @Value("${etsi-catalog-manager.http.client.ssl.trust-store-password:#{null}}") - private String trustStorePassword; - - private final GsonProvider gsonProvider; - - @Autowired - public EtsiCatalogServiceProviderConfiguration( - final HttpClientConnectionConfiguration clientConnectionConfiguration, final GsonProvider gsonProvider) { - this.clientConnectionConfiguration = clientConnectionConfiguration; - this.gsonProvider = gsonProvider; - } - - @Bean - @Qualifier(ETSI_CATALOG_REST_TEMPLATE_BEAN) - public RestTemplate etsiCatalogRestTemplate() { - final RestTemplate restTemplate = new RestTemplate(); - restTemplate.getInterceptors().add(new SOSpringClientFilter()); - restTemplate.getInterceptors().add((new SpringClientPayloadFilter())); - return restTemplate; - } - - @Bean - @Qualifier(ETSI_CATALOG_SERVICE_PROVIDER_BEAN) - public HttpRestServiceProvider etsiCatalogHttpRestServiceProvider( - @Qualifier(ETSI_CATALOG_REST_TEMPLATE_BEAN) final RestTemplate restTemplate) { - setGsonMessageConverter(restTemplate); - - final HttpClientBuilder httpClientBuilder = getHttpClientBuilder(); - if (trustStore != null) { - try { - LOGGER.debug("Setting up HttpComponentsClientHttpRequestFactory with SSL Context"); - LOGGER.debug("Setting client trust-store: {}", trustStore.getURL()); - LOGGER.debug("Creating SSLConnectionSocketFactory with AllowAllHostsVerifier ... "); - final SSLContext sslContext = new SSLContextBuilder() - .loadTrustMaterial(trustStore.getURL(), trustStorePassword.toCharArray()).build(); - final SSLConnectionSocketFactory sslConnectionSocketFactory = - new SSLConnectionSocketFactory(sslContext, AllowAllHostsVerifier.INSTANCE); - httpClientBuilder.setSSLSocketFactory(sslConnectionSocketFactory); - final Registry<ConnectionSocketFactory> socketFactoryRegistry = RegistryBuilder - .<ConnectionSocketFactory>create().register("http", PlainConnectionSocketFactory.INSTANCE) - .register("https", sslConnectionSocketFactory).build(); - - httpClientBuilder.setConnectionManager(getConnectionManager(socketFactoryRegistry)); - } catch (final KeyManagementException | NoSuchAlgorithmException | KeyStoreException | CertificateException - | IOException exception) { - LOGGER.error("Error reading truststore, TLS connection will fail.", exception); - } - - } else { - LOGGER.debug("Setting connection manager without SSL ConnectionSocketFactory ..."); - httpClientBuilder.setConnectionManager(getConnectionManager()); - } - - final HttpComponentsClientHttpRequestFactory factory = - new HttpComponentsClientHttpRequestFactory(httpClientBuilder.build()); - restTemplate.setRequestFactory(new BufferingClientHttpRequestFactory(factory)); - - return new HttpRestServiceProviderImpl(restTemplate, new BasicHttpHeadersProvider().getHttpHeaders()); - } - - private PoolingHttpClientConnectionManager getConnectionManager( - final Registry<ConnectionSocketFactory> socketFactoryRegistry) { - return new PoolingHttpClientConnectionManager(socketFactoryRegistry, null, null, null, - clientConnectionConfiguration.getTimeToLiveInMins(), TimeUnit.MINUTES); - } - - private PoolingHttpClientConnectionManager getConnectionManager() { - return new PoolingHttpClientConnectionManager(clientConnectionConfiguration.getTimeToLiveInMins(), - TimeUnit.MINUTES); - } - - private HttpClientBuilder getHttpClientBuilder() { - return HttpClientBuilder.create().setMaxConnPerRoute(clientConnectionConfiguration.getMaxConnectionsPerRoute()) - .setMaxConnTotal(clientConnectionConfiguration.getMaxConnections()) - .setDefaultRequestConfig(getRequestConfig()); - } - - private RequestConfig getRequestConfig() { - return RequestConfig.custom().setSocketTimeout(clientConnectionConfiguration.getSocketTimeOutInMiliSeconds()) - .setConnectTimeout(clientConnectionConfiguration.getConnectionTimeOutInMilliSeconds()).build(); - } - - private static final class AllowAllHostsVerifier implements HostnameVerifier { - - private static final AllowAllHostsVerifier INSTANCE = new AllowAllHostsVerifier(); - - @Override - public boolean verify(final String hostname, final SSLSession session) { - LOGGER.debug("Skipping hostname verification ..."); - return true; - } - - } - - public void setGsonMessageConverter(final RestTemplate restTemplate) { - final Iterator<HttpMessageConverter<?>> iterator = restTemplate.getMessageConverters().iterator(); - while (iterator.hasNext()) { - if (iterator.next() instanceof MappingJackson2HttpMessageConverter) { - iterator.remove(); - } - } - restTemplate.getMessageConverters().add(new GsonHttpMessageConverter(gsonProvider.getGson())); - } - - - -} diff --git a/so-etsi-nfvo/so-etsi-nfvo-ns-lcm/so-etsi-nfvo-ns-lcm-bpmn-flows/src/main/java/org/onap/so/etsi/nfvo/ns/lcm/bpmn/flows/extclients/etsicatalog/EtsiCatalogUrlProvider.java b/so-etsi-nfvo/so-etsi-nfvo-ns-lcm/so-etsi-nfvo-ns-lcm-bpmn-flows/src/main/java/org/onap/so/etsi/nfvo/ns/lcm/bpmn/flows/extclients/etsicatalog/EtsiCatalogUrlProvider.java deleted file mode 100644 index 54f6ad6543..0000000000 --- a/so-etsi-nfvo/so-etsi-nfvo-ns-lcm/so-etsi-nfvo-ns-lcm-bpmn-flows/src/main/java/org/onap/so/etsi/nfvo/ns/lcm/bpmn/flows/extclients/etsicatalog/EtsiCatalogUrlProvider.java +++ /dev/null @@ -1,49 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * Copyright (C) 2020 Nordix Foundation. - * ================================================================================ - * 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. - * - * SPDX-License-Identifier: Apache-2.0 - * ============LICENSE_END========================================================= - */ - -package org.onap.so.etsi.nfvo.ns.lcm.bpmn.flows.extclients.etsicatalog; - -import org.springframework.beans.factory.annotation.Value; -import org.springframework.stereotype.Service; - -/** - * @author Waqas Ikram (waqas.ikram@est.tech) - * - */ -@Service -public class EtsiCatalogUrlProvider { - - @Value("${etsi-catalog-manager.base.endpoint}") - private String etsiCatalogManagerEndpoint; - - public String getNsPackageUrl(final String nsdId) { - return etsiCatalogManagerEndpoint + "/nsd/v1/ns_descriptors/" + nsdId; - } - - public String getNsPackageContentUrl(final String nsdId) { - return etsiCatalogManagerEndpoint + "/nsd/v1/ns_descriptors/" + nsdId + "/nsd_content"; - } - - public String getVnfPackageUrl(final String vnfPkgId) { - return etsiCatalogManagerEndpoint + "/vnfpkgm/v1/vnf_packages/" + vnfPkgId; - } - - -} diff --git a/so-etsi-nfvo/so-etsi-nfvo-ns-lcm/so-etsi-nfvo-ns-lcm-bpmn-flows/src/main/java/org/onap/so/etsi/nfvo/ns/lcm/bpmn/flows/extclients/vnfm/Sol003AdapterConfiguration.java b/so-etsi-nfvo/so-etsi-nfvo-ns-lcm/so-etsi-nfvo-ns-lcm-bpmn-flows/src/main/java/org/onap/so/etsi/nfvo/ns/lcm/bpmn/flows/extclients/vnfm/Sol003AdapterConfiguration.java deleted file mode 100644 index 6776d8ba0b..0000000000 --- a/so-etsi-nfvo/so-etsi-nfvo-ns-lcm/so-etsi-nfvo-ns-lcm-bpmn-flows/src/main/java/org/onap/so/etsi/nfvo/ns/lcm/bpmn/flows/extclients/vnfm/Sol003AdapterConfiguration.java +++ /dev/null @@ -1,148 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * Copyright (C) 2020 Nordix Foundation. - * ================================================================================ - * 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. - * - * SPDX-License-Identifier: Apache-2.0 - * ============LICENSE_END========================================================= - */ - -package org.onap.so.etsi.nfvo.ns.lcm.bpmn.flows.extclients.vnfm; - -import java.io.IOException; -import java.security.KeyManagementException; -import java.security.KeyStoreException; -import java.security.NoSuchAlgorithmException; -import java.security.cert.CertificateException; -import java.util.Iterator; -import javax.net.ssl.SSLContext; -import org.apache.http.client.HttpClient; -import org.apache.http.conn.ssl.SSLConnectionSocketFactory; -import org.apache.http.impl.client.HttpClients; -import org.apache.http.ssl.SSLContextBuilder; -import org.onap.logging.filter.spring.SpringClientPayloadFilter; -import org.onap.so.configuration.rest.BasicHttpHeadersProvider; -import org.onap.so.configuration.rest.HttpComponentsClientConfiguration; -import org.onap.so.configuration.rest.HttpHeadersProvider; -import org.onap.so.etsi.nfvo.ns.lcm.bpmn.flows.GsonProvider; -import org.onap.so.logging.jaxrs.filter.SOSpringClientFilter; -import org.onap.so.rest.service.HttpRestServiceProvider; -import org.onap.so.rest.service.HttpRestServiceProviderImpl; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.beans.factory.annotation.Qualifier; -import org.springframework.beans.factory.annotation.Value; -import org.springframework.context.annotation.Bean; -import org.springframework.context.annotation.Configuration; -import org.springframework.core.io.Resource; -import org.springframework.http.client.BufferingClientHttpRequestFactory; -import org.springframework.http.client.HttpComponentsClientHttpRequestFactory; -import org.springframework.http.converter.HttpMessageConverter; -import org.springframework.http.converter.json.GsonHttpMessageConverter; -import org.springframework.http.converter.json.MappingJackson2HttpMessageConverter; -import org.springframework.web.client.RestTemplate; - -/** - * @author Waqas Ikram (waqas.ikram@est.tech) - * - */ -@Configuration -public class Sol003AdapterConfiguration { - - private static final Logger logger = LoggerFactory.getLogger(Sol003AdapterConfiguration.class); - - public static final String SOL003_ADAPTER_REST_TEMPLATE_BEAN = "Sol003AdapterRestTemplateBean"; - public static final String SOL003_ADAPTER_HTTP_REST_SERVICE_PROVIDER_BEAN = - "Sol003AdapterHttpRestServiceProviderBean"; - - @Value("${rest.http.client.configuration.ssl.trustStore:#{null}}") - private Resource trustStore; - - @Value("${rest.http.client.configuration.ssl.trustStorePassword:#{null}}") - private String trustStorePassword; - - @Value("${so.adapters.sol003-adapter.auth:Basic dm5mbTpwYXNzd29yZDEk}") - private String sol003AdapterBasicAuth; - - @Autowired - private GsonProvider gsonProvider; - - @Bean - @Qualifier(SOL003_ADAPTER_REST_TEMPLATE_BEAN) - public RestTemplate sol003AdapterRestTemplate( - @Autowired final HttpComponentsClientConfiguration httpComponentsClientConfiguration) { - - final HttpComponentsClientHttpRequestFactory clientHttpRequestFactory = - httpComponentsClientConfiguration.httpComponentsClientHttpRequestFactory(); - - final RestTemplate restTemplate = - new RestTemplate(new BufferingClientHttpRequestFactory(clientHttpRequestFactory)); - restTemplate.getInterceptors().add(new SOSpringClientFilter()); - restTemplate.getInterceptors().add((new SpringClientPayloadFilter())); - return restTemplate; - - } - - @Bean - @Qualifier(SOL003_ADAPTER_HTTP_REST_SERVICE_PROVIDER_BEAN) - public HttpRestServiceProvider sol003AdapaterHttpRestServiceProvider( - @Qualifier(SOL003_ADAPTER_REST_TEMPLATE_BEAN) @Autowired final RestTemplate restTemplate) { - - if (trustStore != null) { - setTrustStore(restTemplate); - } - setGsonMessageConverter(restTemplate); - return getHttpRestServiceProvider(restTemplate, new BasicHttpHeadersProvider(sol003AdapterBasicAuth)); - } - - private void setTrustStore(final RestTemplate restTemplate) { - try { - final SSLConnectionSocketFactory socketFactory = new SSLConnectionSocketFactory(getSSLContext()); - final HttpClient httpClient = HttpClients.custom().setSSLSocketFactory(socketFactory).build(); - final HttpComponentsClientHttpRequestFactory factory = - new HttpComponentsClientHttpRequestFactory(httpClient); - restTemplate.setRequestFactory(new BufferingClientHttpRequestFactory(factory)); - } catch (final Exception exception) { - logger.error("Error reading truststore, TLS connection to VNFM will fail.", exception); - } - } - - private SSLContext getSSLContext() throws KeyManagementException, NoSuchAlgorithmException, KeyStoreException, - CertificateException, IOException { - if (trustStore != null) { - logger.info("Setting truststore: {}", trustStore.getURL()); - return new SSLContextBuilder().loadTrustMaterial(trustStore.getURL(), trustStorePassword.toCharArray()) - .build(); - } - logger.info("Setting Default SSL ..."); - return SSLContext.getDefault(); - - } - - private HttpRestServiceProvider getHttpRestServiceProvider(final RestTemplate restTemplate, - final HttpHeadersProvider httpHeadersProvider) { - return new HttpRestServiceProviderImpl(restTemplate, httpHeadersProvider.getHttpHeaders()); - } - - private void setGsonMessageConverter(final RestTemplate restTemplate) { - final Iterator<HttpMessageConverter<?>> iterator = restTemplate.getMessageConverters().iterator(); - while (iterator.hasNext()) { - if (iterator.next() instanceof MappingJackson2HttpMessageConverter) { - iterator.remove(); - } - } - restTemplate.getMessageConverters().add(new GsonHttpMessageConverter(gsonProvider.getGson())); - } -} diff --git a/so-etsi-nfvo/so-etsi-nfvo-ns-lcm/so-etsi-nfvo-ns-lcm-bpmn-flows/src/main/java/org/onap/so/etsi/nfvo/ns/lcm/bpmn/flows/extclients/vnfm/Sol003AdapterServiceProvider.java b/so-etsi-nfvo/so-etsi-nfvo-ns-lcm/so-etsi-nfvo-ns-lcm-bpmn-flows/src/main/java/org/onap/so/etsi/nfvo/ns/lcm/bpmn/flows/extclients/vnfm/Sol003AdapterServiceProvider.java deleted file mode 100644 index 4f98e2c267..0000000000 --- a/so-etsi-nfvo/so-etsi-nfvo-ns-lcm/so-etsi-nfvo-ns-lcm-bpmn-flows/src/main/java/org/onap/so/etsi/nfvo/ns/lcm/bpmn/flows/extclients/vnfm/Sol003AdapterServiceProvider.java +++ /dev/null @@ -1,37 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * Copyright (C) 2020 Nordix Foundation. - * ================================================================================ - * 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. - * - * SPDX-License-Identifier: Apache-2.0 - * ============LICENSE_END========================================================= - */ - -package org.onap.so.etsi.nfvo.ns.lcm.bpmn.flows.extclients.vnfm; - -import java.util.Optional; -import org.onap.so.adapters.etsisol003adapter.lcm.v1.model.CreateVnfRequest; -import org.onap.so.adapters.etsisol003adapter.lcm.v1.model.CreateVnfResponse; -import org.onap.so.adapters.etsisol003adapter.lcm.v1.model.DeleteVnfResponse; -import org.onap.so.adapters.etsisol003adapter.lcm.v1.model.QueryJobResponse; - -public interface Sol003AdapterServiceProvider { - - Optional<CreateVnfResponse> invokeCreateInstantiationRequest(final String vnfId, final CreateVnfRequest request); - - Optional<QueryJobResponse> getInstantiateOperationJobStatus(final String jobId); - - Optional<DeleteVnfResponse> invokeTerminationRequest(final String vnfId); - -} diff --git a/so-etsi-nfvo/so-etsi-nfvo-ns-lcm/so-etsi-nfvo-ns-lcm-bpmn-flows/src/main/java/org/onap/so/etsi/nfvo/ns/lcm/bpmn/flows/extclients/vnfm/Sol003AdapterServiceProviderImpl.java b/so-etsi-nfvo/so-etsi-nfvo-ns-lcm/so-etsi-nfvo-ns-lcm-bpmn-flows/src/main/java/org/onap/so/etsi/nfvo/ns/lcm/bpmn/flows/extclients/vnfm/Sol003AdapterServiceProviderImpl.java deleted file mode 100644 index df3a0c2e31..0000000000 --- a/so-etsi-nfvo/so-etsi-nfvo-ns-lcm/so-etsi-nfvo-ns-lcm-bpmn-flows/src/main/java/org/onap/so/etsi/nfvo/ns/lcm/bpmn/flows/extclients/vnfm/Sol003AdapterServiceProviderImpl.java +++ /dev/null @@ -1,150 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * Copyright (C) 2020 Nordix Foundation. - * ================================================================================ - * 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. - * - * SPDX-License-Identifier: Apache-2.0 - * ============LICENSE_END========================================================= - */ - -package org.onap.so.etsi.nfvo.ns.lcm.bpmn.flows.extclients.vnfm; - -import static org.onap.so.etsi.nfvo.ns.lcm.bpmn.flows.extclients.vnfm.Sol003AdapterConfiguration.SOL003_ADAPTER_HTTP_REST_SERVICE_PROVIDER_BEAN; -import java.util.Optional; -import org.apache.commons.lang3.StringUtils; -import org.onap.so.adapters.etsisol003adapter.lcm.v1.model.CreateVnfRequest; -import org.onap.so.adapters.etsisol003adapter.lcm.v1.model.CreateVnfResponse; -import org.onap.so.adapters.etsisol003adapter.lcm.v1.model.DeleteVnfResponse; -import org.onap.so.adapters.etsisol003adapter.lcm.v1.model.QueryJobResponse; -import org.onap.so.rest.exceptions.HttpResouceNotFoundException; -import org.onap.so.rest.exceptions.InvalidRestRequestException; -import org.onap.so.rest.exceptions.RestProcessingException; -import org.onap.so.rest.service.HttpRestServiceProvider; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.beans.factory.annotation.Qualifier; -import org.springframework.http.HttpStatus; -import org.springframework.http.ResponseEntity; -import org.springframework.stereotype.Service; - -@Service -public class Sol003AdapterServiceProviderImpl implements Sol003AdapterServiceProvider { - - private static final Logger LOGGER = LoggerFactory.getLogger(Sol003AdapterServiceProviderImpl.class); - public static final String RECEIVED_RESPONSE_WITHOUT_BODY = "Received response without body: {}"; - - private final Sol003AdapterUrlProvider urlProvider; - private final HttpRestServiceProvider httpServiceProvider; - - @Autowired - public Sol003AdapterServiceProviderImpl(final Sol003AdapterUrlProvider urlProvider, - @Qualifier(SOL003_ADAPTER_HTTP_REST_SERVICE_PROVIDER_BEAN) final HttpRestServiceProvider httpServiceProvider) { - this.urlProvider = urlProvider; - this.httpServiceProvider = httpServiceProvider; - } - - @Override - public Optional<CreateVnfResponse> invokeCreateInstantiationRequest(final String vnfId, - final CreateVnfRequest request) { - try { - final String url = urlProvider.getCreateInstantiateUrl(vnfId); - - final ResponseEntity<CreateVnfResponse> response = - httpServiceProvider.postHttpRequest(request, url, CreateVnfResponse.class); - - final HttpStatus httpStatus = response.getStatusCode(); - if (!(httpStatus.equals(HttpStatus.ACCEPTED)) && !(httpStatus.equals(HttpStatus.OK))) { - LOGGER.error("Unable to invoke HTTP POST using URL: {}, Response Code: {}", url, httpStatus.value()); - return Optional.empty(); - } - - if (!response.hasBody()) { - LOGGER.error(RECEIVED_RESPONSE_WITHOUT_BODY, response); - return Optional.empty(); - } - - final CreateVnfResponse createVnfResponse = response.getBody(); - - if (StringUtils.isBlank(createVnfResponse.getJobId())) { - LOGGER.error("Received invalid instantiation response: {}", response); - return Optional.empty(); - } - - return Optional.of(createVnfResponse); - } catch (final RestProcessingException | InvalidRestRequestException - | HttpResouceNotFoundException httpInvocationException) { - LOGGER.error("Unexpected error while processing create and instantiation request", httpInvocationException); - return Optional.empty(); - } - - } - - @Override - public Optional<QueryJobResponse> getInstantiateOperationJobStatus(final String jobId) { - try { - final String url = urlProvider.getJobStatusUrl(jobId); - - final ResponseEntity<QueryJobResponse> response = - httpServiceProvider.getHttpResponse(url, QueryJobResponse.class); - - final HttpStatus httpStatus = response.getStatusCode(); - - if (!(httpStatus.equals(HttpStatus.ACCEPTED)) && !(httpStatus.equals(HttpStatus.OK))) { - LOGGER.error("Unable to invoke HTTP GET using URL: {}, Response Code: ", url, httpStatus.value()); - return Optional.empty(); - } - - if (!response.hasBody()) { - LOGGER.error(RECEIVED_RESPONSE_WITHOUT_BODY, response); - return Optional.empty(); - } - return Optional.of(response.getBody()); - } catch (final RestProcessingException | InvalidRestRequestException | HttpResouceNotFoundException exception) { - LOGGER.error("Unexpected error while processing job request", exception); - throw exception; - } - } - - @Override - public Optional<DeleteVnfResponse> invokeTerminationRequest(final String vnfId) { - try { - final String url = urlProvider.getTerminateVnfUrl(vnfId); - - final ResponseEntity<DeleteVnfResponse> response = - httpServiceProvider.deleteHttpRequest(url, DeleteVnfResponse.class); - final HttpStatus httpStatus = response.getStatusCode(); - if (!(httpStatus.equals(HttpStatus.ACCEPTED)) && !(httpStatus.equals(HttpStatus.OK))) { - LOGGER.error("Unable to invoke HTTP DELETE using URL: {}, Response Code: {}", url, httpStatus.value()); - return Optional.empty(); - } - if (!response.hasBody()) { - LOGGER.error(RECEIVED_RESPONSE_WITHOUT_BODY, response); - return Optional.empty(); - } - - final DeleteVnfResponse deleteVnfResponse = response.getBody(); - if (StringUtils.isBlank(deleteVnfResponse.getJobId())) { - LOGGER.error("Received invalid terminate response: {}", response); - return Optional.empty(); - } - - return Optional.of(deleteVnfResponse); - } catch (final RestProcessingException | InvalidRestRequestException - | HttpResouceNotFoundException httpInvocationException) { - LOGGER.error("Unexpected error while processing terminate request", httpInvocationException); - return Optional.empty(); - } - } -} diff --git a/so-etsi-nfvo/so-etsi-nfvo-ns-lcm/so-etsi-nfvo-ns-lcm-bpmn-flows/src/main/java/org/onap/so/etsi/nfvo/ns/lcm/bpmn/flows/extclients/vnfm/Sol003AdapterUrlProvider.java b/so-etsi-nfvo/so-etsi-nfvo-ns-lcm/so-etsi-nfvo-ns-lcm-bpmn-flows/src/main/java/org/onap/so/etsi/nfvo/ns/lcm/bpmn/flows/extclients/vnfm/Sol003AdapterUrlProvider.java deleted file mode 100644 index e3abc059f5..0000000000 --- a/so-etsi-nfvo/so-etsi-nfvo-ns-lcm/so-etsi-nfvo-ns-lcm-bpmn-flows/src/main/java/org/onap/so/etsi/nfvo/ns/lcm/bpmn/flows/extclients/vnfm/Sol003AdapterUrlProvider.java +++ /dev/null @@ -1,74 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * Copyright (C) 2020 Nordix Foundation. - * ================================================================================ - * 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. - * - * SPDX-License-Identifier: Apache-2.0 - * ============LICENSE_END========================================================= - */ - -package org.onap.so.etsi.nfvo.ns.lcm.bpmn.flows.extclients.vnfm; - -import java.net.URI; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.beans.factory.annotation.Value; -import org.springframework.stereotype.Service; -import org.springframework.web.util.UriComponentsBuilder; - -/** - * @author Waqas Ikram (waqas.ikram@est.tech) - * - */ -@Service -public class Sol003AdapterUrlProvider { - - private final URI baseUri; - - @Autowired - public Sol003AdapterUrlProvider( - @Value("${so.adapters.sol003-adapter.url:https://so-vnfm-adapter.onap:9092/so/vnfm-adapter/v1/}") final String sol003AdapterUrl) { - this.baseUri = UriComponentsBuilder.fromHttpUrl(sol003AdapterUrl).build().toUri(); - } - - /** - * Get VNFM create and instantiate URL - * - * @param vnfId The identifier of the VNF. This must be the vnf-id of an existing generic-vnf in AAI. - * @return VNFM create and instantiate URL - */ - public String getCreateInstantiateUrl(final String vnfId) { - return UriComponentsBuilder.fromUri(baseUri).pathSegment("vnfs").pathSegment(vnfId).build().toString(); - } - - /** - * Get job status URL - * - * @param jobId The instantiation job identifier - * @return job status URL - */ - public String getJobStatusUrl(final String jobId) { - return UriComponentsBuilder.fromUri(baseUri).pathSegment("jobs").pathSegment(jobId).build().toString(); - } - - /** - * Get VNFM terminate vnf URL - * - * @param vnfId - * @return - */ - public String getTerminateVnfUrl(final String vnfId) { - return UriComponentsBuilder.fromUri(baseUri).pathSegment("vnfs").pathSegment(vnfId).build().toString(); - } - -} diff --git a/so-etsi-nfvo/so-etsi-nfvo-ns-lcm/so-etsi-nfvo-ns-lcm-bpmn-flows/src/main/java/org/onap/so/etsi/nfvo/ns/lcm/bpmn/flows/nsd/FileEntry.java b/so-etsi-nfvo/so-etsi-nfvo-ns-lcm/so-etsi-nfvo-ns-lcm-bpmn-flows/src/main/java/org/onap/so/etsi/nfvo/ns/lcm/bpmn/flows/nsd/FileEntry.java deleted file mode 100644 index cfe5b94859..0000000000 --- a/so-etsi-nfvo/so-etsi-nfvo-ns-lcm/so-etsi-nfvo-ns-lcm-bpmn-flows/src/main/java/org/onap/so/etsi/nfvo/ns/lcm/bpmn/flows/nsd/FileEntry.java +++ /dev/null @@ -1,112 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * Copyright (C) 2020 Nordix Foundation. - * ================================================================================ - * 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. - * - * SPDX-License-Identifier: Apache-2.0 - * ============LICENSE_END========================================================= - */ -package org.onap.so.etsi.nfvo.ns.lcm.bpmn.flows.nsd; - -import static org.onap.so.etsi.nfvo.ns.lcm.database.beans.utils.Utils.toIndentedString; -import java.io.ByteArrayInputStream; -import java.io.InputStream; -import java.util.Arrays; -import java.util.Objects; - -/** - * @author Waqas Ikram (waqas.ikram@est.tech) - * - */ -public class FileEntry { - - private boolean isDirectory; - private String filePath; - private byte[] fileContent; - - public boolean isDirectory() { - return isDirectory; - } - - public void setDirectory(final boolean isDirectory) { - this.isDirectory = isDirectory; - } - - public FileEntry isDirectory(final boolean isDirectory) { - this.isDirectory = isDirectory; - return this; - } - - public String getFilePath() { - return filePath; - } - - public void setFilename(final String filePath) { - this.filePath = filePath; - } - - public FileEntry filePath(final String filePath) { - this.filePath = filePath; - return this; - } - - public byte[] getFileContent() { - return fileContent; - } - - public void setFileContent(final byte[] fileContent) { - this.fileContent = fileContent; - } - - public FileEntry fileContent(final byte[] fileContent) { - this.fileContent = fileContent; - return this; - } - - public InputStream getFileContentAsStream() { - if (fileContent == null || fileContent.length == 0) { - return null; - } - return new ByteArrayInputStream(fileContent); - } - - @Override - public int hashCode() { - return Objects.hash(isDirectory, filePath) + Arrays.hashCode(fileContent); - } - - @Override - public boolean equals(final Object obj) { - if (obj instanceof FileEntry) { - final FileEntry other = (FileEntry) obj; - return Objects.equals(isDirectory, other.isDirectory) && Objects.equals(filePath, other.filePath) - && Arrays.equals(fileContent, other.fileContent); - } - return false; - } - - @Override - public String toString() { - final StringBuilder sb = new StringBuilder(); - sb.append("class FileEntry {\n"); - sb.append(" isDirectory: ").append(toIndentedString(isDirectory)).append("\n"); - sb.append(" filePath: ").append(toIndentedString(filePath)).append("\n"); - sb.append(" fileContent size: ").append(toIndentedString(fileContent != null ? fileContent.length : 0)) - .append("\n"); - sb.append("}"); - return sb.toString(); - } - - -} diff --git a/so-etsi-nfvo/so-etsi-nfvo-ns-lcm/so-etsi-nfvo-ns-lcm-bpmn-flows/src/main/java/org/onap/so/etsi/nfvo/ns/lcm/bpmn/flows/nsd/NetworkServiceDescriptor.java b/so-etsi-nfvo/so-etsi-nfvo-ns-lcm/so-etsi-nfvo-ns-lcm-bpmn-flows/src/main/java/org/onap/so/etsi/nfvo/ns/lcm/bpmn/flows/nsd/NetworkServiceDescriptor.java deleted file mode 100644 index 6b4fee7151..0000000000 --- a/so-etsi-nfvo/so-etsi-nfvo-ns-lcm/so-etsi-nfvo-ns-lcm-bpmn-flows/src/main/java/org/onap/so/etsi/nfvo/ns/lcm/bpmn/flows/nsd/NetworkServiceDescriptor.java +++ /dev/null @@ -1,121 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * Copyright (C) 2020 Nordix Foundation. - * ================================================================================ - * 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. - * - * SPDX-License-Identifier: Apache-2.0 - * ============LICENSE_END========================================================= - */ -package org.onap.so.etsi.nfvo.ns.lcm.bpmn.flows.nsd; - -import static org.onap.so.etsi.nfvo.ns.lcm.database.beans.utils.Utils.toIndentedString; -import java.io.Serializable; -import java.util.ArrayList; -import java.util.HashMap; -import java.util.List; -import java.util.Map; -import java.util.Objects; - -/** - * @author Waqas Ikram (waqas.ikram@est.tech) - * - */ -public class NetworkServiceDescriptor implements Serializable { - - private static final long serialVersionUID = -1739293595041180242L; - - private String type; - - private Map<String, Object> properties = new HashMap<>(); - - private List<VirtualNetworkFunction> vnfs = new ArrayList<>(); - - public String getType() { - return type; - } - - public void setType(final String type) { - this.type = type; - } - - public NetworkServiceDescriptor type(final String type) { - this.type = type; - return this; - } - - public Map<String, Object> getProperties() { - return properties; - } - - public void setProperties(final Map<String, Object> properties) { - this.properties = properties; - } - - public NetworkServiceDescriptor properties(final Map<String, Object> properties) { - this.properties = properties; - return this; - } - - public List<VirtualNetworkFunction> getVnfs() { - return vnfs; - } - - public void setVnfs(final List<VirtualNetworkFunction> vnfs) { - if (vnfs != null) { - this.vnfs = vnfs; - } else { - this.vnfs = new ArrayList<>(); - } - } - - public NetworkServiceDescriptor addVnfPkgIdsItem(final VirtualNetworkFunction vnf) { - if (this.vnfs == null) { - this.vnfs = new ArrayList<>(); - } - this.vnfs.add(vnf); - return this; - } - - public NetworkServiceDescriptor vnfs(final List<VirtualNetworkFunction> vnfs) { - this.vnfs = vnfs; - return this; - } - - @Override - public int hashCode() { - return Objects.hash(type, properties, vnfs); - } - - @Override - public boolean equals(final Object obj) { - if (obj instanceof NetworkServiceDescriptor) { - final NetworkServiceDescriptor other = (NetworkServiceDescriptor) obj; - return Objects.equals(type, other.type) && Objects.equals(properties, other.properties) - && Objects.equals(vnfs, other.vnfs); - } - return false; - } - - @Override - public String toString() { - final StringBuilder sb = new StringBuilder(); - sb.append("class NetworkServiceDescriptor {\n"); - sb.append(" type: ").append(toIndentedString(type)).append("\n"); - sb.append(" properties: ").append(toIndentedString(properties)).append("\n"); - sb.append(" vnfs: ").append(toIndentedString(vnfs)).append("\n"); - sb.append("}"); - return sb.toString(); - } - -} diff --git a/so-etsi-nfvo/so-etsi-nfvo-ns-lcm/so-etsi-nfvo-ns-lcm-bpmn-flows/src/main/java/org/onap/so/etsi/nfvo/ns/lcm/bpmn/flows/nsd/ToscaMetadata.java b/so-etsi-nfvo/so-etsi-nfvo-ns-lcm/so-etsi-nfvo-ns-lcm-bpmn-flows/src/main/java/org/onap/so/etsi/nfvo/ns/lcm/bpmn/flows/nsd/ToscaMetadata.java deleted file mode 100644 index c07a55c459..0000000000 --- a/so-etsi-nfvo/so-etsi-nfvo-ns-lcm/so-etsi-nfvo-ns-lcm-bpmn-flows/src/main/java/org/onap/so/etsi/nfvo/ns/lcm/bpmn/flows/nsd/ToscaMetadata.java +++ /dev/null @@ -1,75 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * Copyright (C) 2020 Nordix Foundation. - * ================================================================================ - * 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. - * - * SPDX-License-Identifier: Apache-2.0 - * ============LICENSE_END========================================================= - */ -package org.onap.so.etsi.nfvo.ns.lcm.bpmn.flows.nsd; - -import static org.onap.so.etsi.nfvo.ns.lcm.database.beans.utils.Utils.toIndentedString; -import java.util.HashMap; -import java.util.Map; -import java.util.Objects; - -/** - * @author Waqas Ikram (waqas.ikram@est.tech) - * - */ -public class ToscaMetadata { - - private Map<String, String> entries = new HashMap<>(); - - public Map<String, String> getEntries() { - return entries; - } - - public void addEntry(final String name, final String value) { - this.entries.put(name, value); - } - - public boolean hasEntry(final String name) { - return this.entries.containsKey(name); - } - - public String getEntry(final String name) { - return this.entries.get(name); - } - - @Override - public int hashCode() { - return Objects.hash(entries); - } - - @Override - public boolean equals(final Object obj) { - if (obj instanceof ToscaMetadata) { - final ToscaMetadata other = (ToscaMetadata) obj; - return Objects.equals(entries, other.entries); - } - return false; - } - - @Override - public String toString() { - final StringBuilder sb = new StringBuilder(); - sb.append("class ToscaMetadata {\n"); - sb.append(" entries: ").append(toIndentedString(entries)).append("\n"); - sb.append("}"); - return sb.toString(); - } - - -} diff --git a/so-etsi-nfvo/so-etsi-nfvo-ns-lcm/so-etsi-nfvo-ns-lcm-bpmn-flows/src/main/java/org/onap/so/etsi/nfvo/ns/lcm/bpmn/flows/nsd/VirtualNetworkFunction.java b/so-etsi-nfvo/so-etsi-nfvo-ns-lcm/so-etsi-nfvo-ns-lcm-bpmn-flows/src/main/java/org/onap/so/etsi/nfvo/ns/lcm/bpmn/flows/nsd/VirtualNetworkFunction.java deleted file mode 100644 index f4c3632589..0000000000 --- a/so-etsi-nfvo/so-etsi-nfvo-ns-lcm/so-etsi-nfvo-ns-lcm-bpmn-flows/src/main/java/org/onap/so/etsi/nfvo/ns/lcm/bpmn/flows/nsd/VirtualNetworkFunction.java +++ /dev/null @@ -1,123 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * Copyright (C) 2020 Nordix Foundation. - * ================================================================================ - * 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. - * - * SPDX-License-Identifier: Apache-2.0 - * ============LICENSE_END========================================================= - */ -package org.onap.so.etsi.nfvo.ns.lcm.bpmn.flows.nsd; - -import static org.onap.so.etsi.nfvo.ns.lcm.database.beans.utils.Utils.toIndentedString; -import java.io.Serializable; -import java.util.HashMap; -import java.util.List; -import java.util.Map; -import java.util.Objects; - -/** - * @author Waqas Ikram (waqas.ikram@est.tech) - * - */ -public class VirtualNetworkFunction implements Serializable { - - private static final long serialVersionUID = 3164293220359211834L; - - private String vnfdId; - private String vnfName; - private List<String> vnfmInfoList; - private Map<String, Object> properties = new HashMap<>(); - - public String getVnfdId() { - return vnfdId; - } - - public void setVnfdId(final String vnfdId) { - this.vnfdId = vnfdId; - } - - public VirtualNetworkFunction vnfdId(final String vnfdId) { - this.vnfdId = vnfdId; - return this; - } - - public String getVnfName() { - return vnfName; - } - - public void setVnfName(final String vnfName) { - this.vnfName = vnfName; - } - - public VirtualNetworkFunction vnfName(final String vnfName) { - this.vnfName = vnfName; - return this; - } - - public List<String> getVnfmInfoList() { - return vnfmInfoList; - } - - public void setVnfmInfoList(final List<String> vnfmInfoList) { - this.vnfmInfoList = vnfmInfoList; - } - - public VirtualNetworkFunction vnfmInfoList(final List<String> vnfmInfoList) { - this.vnfmInfoList = vnfmInfoList; - return this; - } - - public Map<String, Object> getProperties() { - return properties; - } - - public void setProperties(final Map<String, Object> properties) { - this.properties = properties; - } - - public VirtualNetworkFunction properties(final Map<String, Object> properties) { - this.properties = properties; - return this; - } - - @Override - public int hashCode() { - return Objects.hash(vnfdId, vnfName, vnfmInfoList, properties); - } - - @Override - public boolean equals(final Object obj) { - if (obj instanceof VirtualNetworkFunction) { - final VirtualNetworkFunction other = (VirtualNetworkFunction) obj; - return Objects.equals(vnfdId, other.vnfdId) && Objects.equals(vnfName, other.vnfName) - && Objects.equals(vnfmInfoList, other.vnfmInfoList) && Objects.equals(properties, other.properties); - } - return false; - } - - @Override - public String toString() { - final StringBuilder sb = new StringBuilder(); - sb.append("class VirtualNetworkFunction {\n"); - sb.append(" vnfdId: ").append(toIndentedString(vnfdId)).append("\n"); - sb.append(" vnfName: ").append(toIndentedString(vnfName)).append("\n"); - sb.append(" vnfmInfo: ").append(toIndentedString(vnfmInfoList)).append("\n"); - sb.append(" properties: ").append(toIndentedString(properties)).append("\n"); - - sb.append("}"); - return sb.toString(); - } - - -} diff --git a/so-etsi-nfvo/so-etsi-nfvo-ns-lcm/so-etsi-nfvo-ns-lcm-bpmn-flows/src/main/java/org/onap/so/etsi/nfvo/ns/lcm/bpmn/flows/nsd/parser/FileParser.java b/so-etsi-nfvo/so-etsi-nfvo-ns-lcm/so-etsi-nfvo-ns-lcm-bpmn-flows/src/main/java/org/onap/so/etsi/nfvo/ns/lcm/bpmn/flows/nsd/parser/FileParser.java deleted file mode 100644 index 2a37922e9b..0000000000 --- a/so-etsi-nfvo/so-etsi-nfvo-ns-lcm/so-etsi-nfvo-ns-lcm-bpmn-flows/src/main/java/org/onap/so/etsi/nfvo/ns/lcm/bpmn/flows/nsd/parser/FileParser.java +++ /dev/null @@ -1,33 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * Copyright (C) 2020 Nordix Foundation. - * ================================================================================ - * 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. - * - * SPDX-License-Identifier: Apache-2.0 - * ============LICENSE_END========================================================= - */ -package org.onap.so.etsi.nfvo.ns.lcm.bpmn.flows.nsd.parser; - -import java.util.Map; -import org.onap.so.etsi.nfvo.ns.lcm.bpmn.flows.nsd.FileEntry; - -/** - * @author Waqas Ikram (waqas.ikram@est.tech) - * - */ -public interface FileParser { - - Map<String, Object> getFileContent(final FileEntry entryDefinitionFileEntry); - -} diff --git a/so-etsi-nfvo/so-etsi-nfvo-ns-lcm/so-etsi-nfvo-ns-lcm-bpmn-flows/src/main/java/org/onap/so/etsi/nfvo/ns/lcm/bpmn/flows/nsd/parser/NetworkServiceDescriptorParser.java b/so-etsi-nfvo/so-etsi-nfvo-ns-lcm/so-etsi-nfvo-ns-lcm-bpmn-flows/src/main/java/org/onap/so/etsi/nfvo/ns/lcm/bpmn/flows/nsd/parser/NetworkServiceDescriptorParser.java deleted file mode 100644 index cc92234750..0000000000 --- a/so-etsi-nfvo/so-etsi-nfvo-ns-lcm/so-etsi-nfvo-ns-lcm-bpmn-flows/src/main/java/org/onap/so/etsi/nfvo/ns/lcm/bpmn/flows/nsd/parser/NetworkServiceDescriptorParser.java +++ /dev/null @@ -1,213 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * Copyright (C) 2020 Nordix Foundation. - * ================================================================================ - * 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. - * - * SPDX-License-Identifier: Apache-2.0 - * ============LICENSE_END========================================================= - */ -package org.onap.so.etsi.nfvo.ns.lcm.bpmn.flows.nsd.parser; - -import java.io.ByteArrayInputStream; -import java.io.IOException; -import java.util.ArrayList; -import java.util.Collections; -import java.util.HashMap; -import java.util.List; -import java.util.Map; -import java.util.Map.Entry; -import java.util.Optional; -import java.util.zip.ZipEntry; -import java.util.zip.ZipInputStream; -import org.apache.commons.io.IOUtils; -import org.onap.so.etsi.nfvo.ns.lcm.bpmn.flows.nsd.FileEntry; -import org.onap.so.etsi.nfvo.ns.lcm.bpmn.flows.nsd.NetworkServiceDescriptor; -import org.onap.so.etsi.nfvo.ns.lcm.bpmn.flows.nsd.ToscaMetadata; -import org.onap.so.etsi.nfvo.ns.lcm.bpmn.flows.nsd.VirtualNetworkFunction; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Service; - -/** - * @author Waqas Ikram (waqas.ikram@est.tech) - * - */ -@Service -public class NetworkServiceDescriptorParser { - public static final String NS_NODE_TYPE = "tosca.nodes.nfv.NS"; - private static final String NODE_TYPE = "node_type"; - private static final String SUBSTITUTION_MAPPINGS = "substitution_mappings"; - private static final Logger logger = LoggerFactory.getLogger(NetworkServiceDescriptorParser.class); - private static final String VNF_TYPE = "tosca.nodes.nfv.VNF"; - private static final String PROPERTIES = "properties"; - private static final String TYPE = "type"; - private static final String NODE_TEMPLATES = "node_templates"; - private static final String TOPOLOGY_TEMPLATE = "topology_template"; - private static final String ENTRY_DEFINITIONS = "Entry-Definitions"; - private static final String TOSCA_META_PATH_FILE_NAME = "TOSCA-Metadata/TOSCA.meta"; - private final ToscaMetadataParser toscaMetadataParser; - private final FileParser fileParser; - - @Autowired - public NetworkServiceDescriptorParser(final ToscaMetadataParser toscaMetadataParser, final FileParser fileParser) { - this.toscaMetadataParser = toscaMetadataParser; - this.fileParser = fileParser; - } - - public Optional<NetworkServiceDescriptor> parse(final byte[] zipBytes) { - try { - final Map<String, FileEntry> files = getZipContent(zipBytes); - if (isMetaFilePresent(files)) { - final Optional<ToscaMetadata> optional = - toscaMetadataParser.parse(files.get(TOSCA_META_PATH_FILE_NAME)); - if (optional.isPresent()) { - final ToscaMetadata toscaMetadata = optional.get(); - logger.info("Parsed ToscaMetadata {}", toscaMetadata); - final String entryDefinitionFile = toscaMetadata.getEntry(ENTRY_DEFINITIONS); - if (entryDefinitionFile != null && files.containsKey(entryDefinitionFile)) { - final Map<String, Object> fileContent = - fileParser.getFileContent(files.get(entryDefinitionFile)); - final Map<String, Object> topologyTemplates = getTopologyTemplates(fileContent); - final Map<String, Object> nodeTemplates = getNodeTemplates(topologyTemplates); - - final Optional<NetworkServiceDescriptor> nsdOptional = - getNetworkServiceDescriptor(topologyTemplates); - if (nsdOptional.isPresent()) { - final NetworkServiceDescriptor networkServiceDescriptor = nsdOptional.get(); - networkServiceDescriptor.setVnfs(getVirtualNetworkFunctions(nodeTemplates)); - return Optional.of(networkServiceDescriptor); - } - - } - } - - } - - logger.error("Unable to find {} file in {}", TOSCA_META_PATH_FILE_NAME, files); - } catch (final Exception exception) { - logger.error("Unable to parse nsd zip content", exception); - } - return Optional.empty(); - } - - @SuppressWarnings("unchecked") - private Optional<NetworkServiceDescriptor> getNetworkServiceDescriptor( - final Map<String, Object> topologyTemplates) { - final Map<String, Object> substitutionMappings = - (Map<String, Object>) topologyTemplates.get(SUBSTITUTION_MAPPINGS); - final Object nodeType = substitutionMappings.get(NODE_TYPE); - if (substitutionMappings != null && NS_NODE_TYPE.equals(nodeType)) { - final NetworkServiceDescriptor networkServiceDescriptor = new NetworkServiceDescriptor(); - networkServiceDescriptor.setType(nodeType.toString()); - networkServiceDescriptor.setProperties((Map<String, Object>) substitutionMappings.get(PROPERTIES)); - return Optional.of(networkServiceDescriptor); - } - logger.error("No {} found in fileContent: {}", SUBSTITUTION_MAPPINGS, topologyTemplates); - - return Optional.empty(); - } - - private List<VirtualNetworkFunction> getVirtualNetworkFunctions(final Map<String, Object> nodeTemplates) { - final List<VirtualNetworkFunction> vnfs = new ArrayList<>(); - for (final Entry<String, Object> entry : nodeTemplates.entrySet()) { - @SuppressWarnings("unchecked") - final Map<String, Object> entryValue = (Map<String, Object>) entry.getValue(); - final Object type = entryValue.get(TYPE); - if (type != null && type.equals(VNF_TYPE)) { - @SuppressWarnings("unchecked") - final Map<String, Object> vnfProperties = (Map<String, Object>) entryValue.get(PROPERTIES); - final VirtualNetworkFunction vnf = new VirtualNetworkFunction(); - vnf.setVnfName(entry.getKey()); - - if (vnfProperties != null && !vnfProperties.isEmpty()) { - final Object vnfDescriptorId = vnfProperties.get("descriptor_id"); - @SuppressWarnings("unchecked") - final List<String> vnfmInfoList = (List<String>) vnfProperties.get("vnfm_info"); - if (vnfDescriptorId != null && vnfmInfoList != null) { - vnf.setVnfmInfoList(vnfmInfoList); - vnf.setVnfdId(vnfDescriptorId.toString()); - vnf.setProperties(vnfProperties); - vnfs.add(vnf); - } else { - logger.warn("descriptor_id missing {}", entryValue); - } - } - } - - } - return vnfs; - } - - private Map<String, Object> getNodeTemplates(final Map<String, Object> topologyTemplates) { - @SuppressWarnings("unchecked") - final Map<String, Object> nodeTemplates = (Map<String, Object>) topologyTemplates.get(NODE_TEMPLATES); - if (nodeTemplates != null) { - logger.debug("Found nodeTemplates: {}", topologyTemplates); - return nodeTemplates; - } - logger.error("No {} found in fileContent: {}", NODE_TEMPLATES, topologyTemplates); - return Collections.emptyMap(); - } - - private Map<String, Object> getTopologyTemplates(final Map<String, Object> fileContent) { - @SuppressWarnings("unchecked") - final Map<String, Object> topologyTemplates = (Map<String, Object>) fileContent.get(TOPOLOGY_TEMPLATE); - if (topologyTemplates != null) { - logger.debug("Found {}: {}", TOPOLOGY_TEMPLATE, topologyTemplates); - - return topologyTemplates; - } - logger.error("No {} found in fileContent: {}", TOPOLOGY_TEMPLATE, fileContent); - return Collections.emptyMap(); - } - - private boolean isMetaFilePresent(final Map<String, FileEntry> files) { - return files.containsKey(TOSCA_META_PATH_FILE_NAME); - } - - private Map<String, FileEntry> getZipContent(final byte[] zipBytes) { - final Map<String, FileEntry> files = new HashMap<>(); - try (final ZipInputStream inputZipStream = new ZipInputStream(new ByteArrayInputStream(zipBytes));) { - ZipEntry zipEntry; - while ((zipEntry = inputZipStream.getNextEntry()) != null) { - logger.info("{} : {}", zipEntry.getName(), zipEntry.isDirectory()); - if (files.get(zipEntry.getName()) != null) { - logger.warn("{} File entry already exists ...", zipEntry.getName()); - } else { - final FileEntry fileEntry = new FileEntry().filePath(zipEntry.getName()) - .fileContent(getBytes(inputZipStream)).isDirectory(zipEntry.isDirectory()); - files.put(zipEntry.getName(), fileEntry); - - } - - } - return files; - } catch (final Exception exception) { - logger.error("Unable to parse nsd zip content", exception); - return Collections.emptyMap(); - } - } - - private byte[] getBytes(final ZipInputStream inputZipStream) throws IOException { - try { - return IOUtils.toByteArray(inputZipStream); - } catch (final IOException exception) { - logger.error("Could not read bytes from file", exception); - throw exception; - } - } - - -} diff --git a/so-etsi-nfvo/so-etsi-nfvo-ns-lcm/so-etsi-nfvo-ns-lcm-bpmn-flows/src/main/java/org/onap/so/etsi/nfvo/ns/lcm/bpmn/flows/nsd/parser/ToscaMetadataParser.java b/so-etsi-nfvo/so-etsi-nfvo-ns-lcm/so-etsi-nfvo-ns-lcm-bpmn-flows/src/main/java/org/onap/so/etsi/nfvo/ns/lcm/bpmn/flows/nsd/parser/ToscaMetadataParser.java deleted file mode 100644 index 746416c8e4..0000000000 --- a/so-etsi-nfvo/so-etsi-nfvo-ns-lcm/so-etsi-nfvo-ns-lcm-bpmn-flows/src/main/java/org/onap/so/etsi/nfvo/ns/lcm/bpmn/flows/nsd/parser/ToscaMetadataParser.java +++ /dev/null @@ -1,70 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * Copyright (C) 2020 Nordix Foundation. - * ================================================================================ - * 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. - * - * SPDX-License-Identifier: Apache-2.0 - * ============LICENSE_END========================================================= - */ -package org.onap.so.etsi.nfvo.ns.lcm.bpmn.flows.nsd.parser; - -import static java.nio.charset.StandardCharsets.UTF_8; -import static org.apache.commons.lang3.StringUtils.isNotBlank; -import java.util.List; -import java.util.Optional; -import org.apache.commons.io.IOUtils; -import org.onap.so.etsi.nfvo.ns.lcm.bpmn.flows.nsd.FileEntry; -import org.onap.so.etsi.nfvo.ns.lcm.bpmn.flows.nsd.ToscaMetadata; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -import org.springframework.stereotype.Service; - -/** - * @author Waqas Ikram (waqas.ikram@est.tech) - * - */ -@Service -public class ToscaMetadataParser { - private static final String ATTRIBUTE_VALUE_SEPARATOR = ":"; - private static final Logger logger = LoggerFactory.getLogger(ToscaMetadataParser.class); - - public Optional<ToscaMetadata> parse(final FileEntry toscaMetaFile) { - try { - final ToscaMetadata toscaMetadata = new ToscaMetadata(); - final List<String> lines = IOUtils.readLines(toscaMetaFile.getFileContentAsStream(), UTF_8); - for (final String line : lines) { - final String trimmedLine = line.trim(); - if (!trimmedLine.isEmpty() && trimmedLine.contains(ATTRIBUTE_VALUE_SEPARATOR)) { - final String[] entry = trimmedLine.split(ATTRIBUTE_VALUE_SEPARATOR); - if (entry.length >= 2 && isNotBlank(entry[0]) && isNotBlank(entry[1])) { - toscaMetadata.addEntry(entry[0].trim(), entry[1].trim()); - } else { - logger.warn("Unexpected line in metadata file: {}", line); - } - } else { - logger.warn("Unexpected line does not contain valid separator {} in metadata file: {}", - ATTRIBUTE_VALUE_SEPARATOR, line); - } - - } - return Optional.of(toscaMetadata); - - } catch (final Exception exception) { - logger.error("Unable to parser metadata file content", exception); - } - return Optional.empty(); - } - - -} diff --git a/so-etsi-nfvo/so-etsi-nfvo-ns-lcm/so-etsi-nfvo-ns-lcm-bpmn-flows/src/main/java/org/onap/so/etsi/nfvo/ns/lcm/bpmn/flows/nsd/parser/YamlFileParser.java b/so-etsi-nfvo/so-etsi-nfvo-ns-lcm/so-etsi-nfvo-ns-lcm-bpmn-flows/src/main/java/org/onap/so/etsi/nfvo/ns/lcm/bpmn/flows/nsd/parser/YamlFileParser.java deleted file mode 100644 index eab6974252..0000000000 --- a/so-etsi-nfvo/so-etsi-nfvo-ns-lcm/so-etsi-nfvo-ns-lcm-bpmn-flows/src/main/java/org/onap/so/etsi/nfvo/ns/lcm/bpmn/flows/nsd/parser/YamlFileParser.java +++ /dev/null @@ -1,40 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * Copyright (C) 2020 Nordix Foundation. - * ================================================================================ - * 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. - * - * SPDX-License-Identifier: Apache-2.0 - * ============LICENSE_END========================================================= - */ -package org.onap.so.etsi.nfvo.ns.lcm.bpmn.flows.nsd.parser; - -import java.util.Map; -import org.onap.so.etsi.nfvo.ns.lcm.bpmn.flows.nsd.FileEntry; -import org.springframework.stereotype.Service; -import org.yaml.snakeyaml.Yaml; - -/** - * @author Waqas Ikram (waqas.ikram@est.tech) - * - */ -@Service -public class YamlFileParser implements FileParser { - - @Override - public Map<String, Object> getFileContent(final FileEntry entryDefinitionFileEntry) { - final Yaml yaml = new Yaml(); - return yaml.load(entryDefinitionFileEntry.getFileContentAsStream()); - } - -} diff --git a/so-etsi-nfvo/so-etsi-nfvo-ns-lcm/so-etsi-nfvo-ns-lcm-bpmn-flows/src/main/java/org/onap/so/etsi/nfvo/ns/lcm/bpmn/flows/service/JobExecutorService.java b/so-etsi-nfvo/so-etsi-nfvo-ns-lcm/so-etsi-nfvo-ns-lcm-bpmn-flows/src/main/java/org/onap/so/etsi/nfvo/ns/lcm/bpmn/flows/service/JobExecutorService.java deleted file mode 100644 index 14d4fa2f07..0000000000 --- a/so-etsi-nfvo/so-etsi-nfvo-ns-lcm/so-etsi-nfvo-ns-lcm-bpmn-flows/src/main/java/org/onap/so/etsi/nfvo/ns/lcm/bpmn/flows/service/JobExecutorService.java +++ /dev/null @@ -1,399 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * Copyright (C) 2020 Nordix Foundation. - * ================================================================================ - * 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. - * - * SPDX-License-Identifier: Apache-2.0 - * ============LICENSE_END========================================================= - */ -package org.onap.so.etsi.nfvo.ns.lcm.bpmn.flows.service; - -import static org.onap.so.etsi.nfvo.ns.lcm.bpmn.flows.CamundaVariableNameConstants.CREATE_NS_REQUEST_PARAM_NAME; -import static org.onap.so.etsi.nfvo.ns.lcm.bpmn.flows.CamundaVariableNameConstants.GLOBAL_CUSTOMER_ID_PARAM_NAME; -import static org.onap.so.etsi.nfvo.ns.lcm.bpmn.flows.CamundaVariableNameConstants.INSTANTIATE_NS_REQUEST_PARAM_NAME; -import static org.onap.so.etsi.nfvo.ns.lcm.bpmn.flows.CamundaVariableNameConstants.JOB_ID_PARAM_NAME; -import static org.onap.so.etsi.nfvo.ns.lcm.bpmn.flows.CamundaVariableNameConstants.NS_INSTANCE_ID_PARAM_NAME; -import static org.onap.so.etsi.nfvo.ns.lcm.bpmn.flows.CamundaVariableNameConstants.OCC_ID_PARAM_NAME; -import static org.onap.so.etsi.nfvo.ns.lcm.bpmn.flows.CamundaVariableNameConstants.SERVICE_TYPE_PARAM_NAME; -import static org.onap.so.etsi.nfvo.ns.lcm.bpmn.flows.CamundaVariableNameConstants.TERMINATE_NS_REQUEST_PARAM_NAME; -import static org.onap.so.etsi.nfvo.ns.lcm.bpmn.flows.Constants.CREATE_NS_WORKFLOW_NAME; -import static org.onap.so.etsi.nfvo.ns.lcm.bpmn.flows.Constants.DELETE_NS_WORKFLOW_NAME; -import static org.onap.so.etsi.nfvo.ns.lcm.bpmn.flows.Constants.INSTANTIATE_NS_WORKFLOW_NAME; -import static org.onap.so.etsi.nfvo.ns.lcm.bpmn.flows.Constants.TERMINATE_NS_WORKFLOW_NAME; -import static org.onap.so.etsi.nfvo.ns.lcm.database.beans.JobAction.DELETE; -import static org.onap.so.etsi.nfvo.ns.lcm.database.beans.JobAction.INSTANTIATE; -import static org.onap.so.etsi.nfvo.ns.lcm.database.beans.JobAction.TERMINATE; -import static org.onap.so.etsi.nfvo.ns.lcm.database.beans.JobStatusEnum.ERROR; -import static org.onap.so.etsi.nfvo.ns.lcm.database.beans.JobStatusEnum.FINISHED; -import static org.onap.so.etsi.nfvo.ns.lcm.database.beans.JobStatusEnum.FINISHED_WITH_ERROR; -import static org.onap.so.etsi.nfvo.ns.lcm.database.beans.JobStatusEnum.IN_PROGRESS; -import static org.onap.so.etsi.nfvo.ns.lcm.database.beans.JobStatusEnum.STARTING; -import static org.slf4j.LoggerFactory.getLogger; -import java.time.Instant; -import java.time.LocalDateTime; -import java.util.HashMap; -import java.util.Map; -import java.util.Optional; -import java.util.concurrent.TimeUnit; -import org.apache.commons.lang3.tuple.ImmutablePair; -import org.onap.so.etsi.nfvo.ns.lcm.bpmn.flows.GsonProvider; -import org.onap.so.etsi.nfvo.ns.lcm.bpmn.flows.exceptions.NsRequestProcessingException; -import org.onap.so.etsi.nfvo.ns.lcm.database.beans.JobAction; -import org.onap.so.etsi.nfvo.ns.lcm.database.beans.JobStatusEnum; -import org.onap.so.etsi.nfvo.ns.lcm.database.beans.NfvoJob; -import org.onap.so.etsi.nfvo.ns.lcm.database.beans.NfvoNsInst; -import org.onap.so.etsi.nfvo.ns.lcm.database.beans.NsLcmOpOcc; -import org.onap.so.etsi.nfvo.ns.lcm.database.beans.NsLcmOpType; -import org.onap.so.etsi.nfvo.ns.lcm.database.beans.OperationStateEnum; -import org.onap.so.etsi.nfvo.ns.lcm.database.beans.State; -import org.onap.so.etsi.nfvo.ns.lcm.database.service.DatabaseServiceProvider; -import org.onap.so.etsi.nfvo.ns.lcm.model.CreateNsRequest; -import org.onap.so.etsi.nfvo.ns.lcm.model.InlineResponse400; -import org.onap.so.etsi.nfvo.ns.lcm.model.InstantiateNsRequest; -import org.onap.so.etsi.nfvo.ns.lcm.model.NsInstancesNsInstance; -import org.onap.so.etsi.nfvo.ns.lcm.model.TerminateNsRequest; -import org.slf4j.Logger; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.beans.factory.annotation.Value; -import org.springframework.stereotype.Service; -import com.google.common.collect.ImmutableSet; -import com.google.gson.Gson; - -/** - * @author Waqas Ikram (waqas.ikram@est.tech) - * - */ -@Service -public class JobExecutorService { - - private static final Logger logger = getLogger(JobExecutorService.class); - - private static final ImmutableSet<JobStatusEnum> JOB_FINISHED_STATES = - ImmutableSet.of(FINISHED, ERROR, FINISHED_WITH_ERROR); - - private static final int SLEEP_TIME_IN_SECONDS = 5; - - @Value("${so-etsi-ns-lcm-workflow-engine.requesttimeout.timeoutInSeconds:300}") - private int timeOutInSeconds; - - private final DatabaseServiceProvider databaseServiceProvider; - private final WorkflowExecutorService workflowExecutorService; - private final WorkflowQueryService workflowQueryService; - private Gson gson; - - @Autowired - public JobExecutorService(final DatabaseServiceProvider databaseServiceProvider, - final WorkflowExecutorService workflowExecutorService, final WorkflowQueryService workflowQueryService, - final GsonProvider gsonProvider) { - this.databaseServiceProvider = databaseServiceProvider; - this.workflowExecutorService = workflowExecutorService; - this.workflowQueryService = workflowQueryService; - gson = gsonProvider.getGson(); - } - - public NsInstancesNsInstance runCreateNsJob(final CreateNsRequest createNsRequest, final String globalCustomerId, - final String serviceType) { - logger.info("Starting 'Create NS' workflow job for request:\n{}", createNsRequest); - final NfvoJob newJob = new NfvoJob().startTime(LocalDateTime.now()).jobType("NS").jobAction(JobAction.CREATE) - .resourceId(createNsRequest.getNsdId()).resourceName(createNsRequest.getNsName()) - .status(JobStatusEnum.STARTING).progress(5); - databaseServiceProvider.addJob(newJob); - - logger.info("New job created in database :\n{}", newJob); - - workflowExecutorService.executeWorkflow(newJob.getJobId(), CREATE_NS_WORKFLOW_NAME, - getVariables(newJob.getJobId(), createNsRequest, globalCustomerId, serviceType)); - - final ImmutablePair<String, JobStatusEnum> immutablePair = - waitForJobToFinish(newJob.getJobId(), JOB_FINISHED_STATES); - - if (immutablePair.getRight() == null) { - final String message = "Failed to create NS for request: \n" + createNsRequest; - logger.error(message); - throw new NsRequestProcessingException(message); - } - final JobStatusEnum finalJobStatus = immutablePair.getRight(); - final String processInstanceId = immutablePair.getLeft(); - - if (!FINISHED.equals(finalJobStatus)) { - - final Optional<InlineResponse400> optional = workflowQueryService.getProblemDetails(processInstanceId); - if (optional.isPresent()) { - final InlineResponse400 problemDetails = optional.get(); - final String message = - "Failed to create NS for request: \n" + createNsRequest + " due to \n" + problemDetails; - logger.error(message); - throw new NsRequestProcessingException(message, problemDetails); - } - - final String message = "Received unexpected Job Status: " + finalJobStatus - + " Failed to Create NS for request: \n" + createNsRequest; - logger.error(message); - throw new NsRequestProcessingException(message); - } - - logger.debug("Will query for CreateNsResponse using processInstanceId:{}", processInstanceId); - final Optional<NsInstancesNsInstance> optional = workflowQueryService.getCreateNsResponse(processInstanceId); - if (optional.isEmpty()) { - final String message = - "Unable to find CreateNsReponse in Camunda History for process instance: " + processInstanceId; - logger.error(message); - throw new NsRequestProcessingException(message); - } - return optional.get(); - } - - public String runInstantiateNsJob(final String nsInstanceId, final InstantiateNsRequest instantiateNsRequest) { - - final NfvoJob newJob = new NfvoJob().startTime(LocalDateTime.now()).jobType("NS").jobAction(INSTANTIATE) - .resourceId(nsInstanceId).status(STARTING).progress(0); - databaseServiceProvider.addJob(newJob); - logger.info("New job created in database :\n{}", newJob); - - final LocalDateTime currentDateTime = LocalDateTime.now(); - final NsLcmOpOcc newNsLcmOpOcc = new NsLcmOpOcc().id(nsInstanceId).operation(NsLcmOpType.INSTANTIATE) - .operationState(OperationStateEnum.PROCESSING).stateEnteredTime(currentDateTime) - .startTime(currentDateTime).nfvoNsInst(getNfvoNsInst(nsInstanceId)).isAutoInvocation(false) - .isCancelPending(false).operationParams(gson.toJson(instantiateNsRequest)); - databaseServiceProvider.addNSLcmOpOcc(newNsLcmOpOcc); - logger.info("New NSLcmOpOcc created in database :\n{}", newNsLcmOpOcc); - - workflowExecutorService.executeWorkflow(newJob.getJobId(), INSTANTIATE_NS_WORKFLOW_NAME, - getVariables(nsInstanceId, newJob.getJobId(), newNsLcmOpOcc.getId(), instantiateNsRequest)); - - final ImmutableSet<JobStatusEnum> jobFinishedStates = - ImmutableSet.of(FINISHED, ERROR, FINISHED_WITH_ERROR, IN_PROGRESS); - final ImmutablePair<String, JobStatusEnum> immutablePair = - waitForJobToFinish(newJob.getJobId(), jobFinishedStates); - - if (immutablePair.getRight() == null) { - final String message = "Failed to Instantiate NS for request: \n" + instantiateNsRequest; - logger.error(message); - throw new NsRequestProcessingException(message); - } - - final JobStatusEnum finalJobStatus = immutablePair.getRight(); - - if (IN_PROGRESS.equals(finalJobStatus) || FINISHED.equals(finalJobStatus)) { - logger.info("Instantiation Job status: {}", finalJobStatus); - - - return newNsLcmOpOcc.getId(); - } - - final String message = "Received unexpected Job Status: " + finalJobStatus - + " Failed to instantiate NS for request: \n" + instantiateNsRequest; - logger.error(message); - throw new NsRequestProcessingException(message); - } - - public String runTerminateNsJob(final String nsInstanceId, final TerminateNsRequest terminateNsRequest) { - doInitialTerminateChecks(nsInstanceId, terminateNsRequest); - - final NfvoJob nfvoJob = new NfvoJob().startTime(LocalDateTime.now()).jobType("NS").jobAction(TERMINATE) - .resourceId(nsInstanceId).status(STARTING).progress(0); - databaseServiceProvider.addJob(nfvoJob); - logger.info("New job created in database :\n{}", nfvoJob); - - final LocalDateTime currentDateTime = LocalDateTime.now(); - final NsLcmOpOcc nsLcmOpOcc = new NsLcmOpOcc().id(nsInstanceId).operation(NsLcmOpType.TERMINATE) - .operationState(OperationStateEnum.PROCESSING).stateEnteredTime(currentDateTime) - .startTime(currentDateTime).nfvoNsInst(getNfvoNsInst(nsInstanceId)).isAutoInvocation(false) - .isCancelPending(false).operationParams(gson.toJson(terminateNsRequest)); - databaseServiceProvider.addNSLcmOpOcc(nsLcmOpOcc); - logger.info("New NSLcmOpOcc created in database :\n{}", nsLcmOpOcc); - - workflowExecutorService.executeWorkflow(nfvoJob.getJobId(), TERMINATE_NS_WORKFLOW_NAME, - getVariables(nsInstanceId, nfvoJob.getJobId(), nsLcmOpOcc.getId(), terminateNsRequest)); - - final ImmutableSet<JobStatusEnum> jobFinishedStates = - ImmutableSet.of(FINISHED, ERROR, FINISHED_WITH_ERROR, IN_PROGRESS); - final ImmutablePair<String, JobStatusEnum> immutablePair = - waitForJobToFinish(nfvoJob.getJobId(), jobFinishedStates); - - if (immutablePair.getRight() == null) { - final String message = - "Failed to Terminate NS with id: " + nsInstanceId + " for request: \n" + terminateNsRequest; - logger.error(message); - throw new NsRequestProcessingException(message); - } - - final JobStatusEnum finalJobStatus = immutablePair.getRight(); - - if (IN_PROGRESS.equals(finalJobStatus) || FINISHED.equals(finalJobStatus)) { - logger.info("Termination Job status: {}", finalJobStatus); - return nsLcmOpOcc.getId(); - } - - final String message = "Received unexpected Job Status: " + finalJobStatus + " Failed to Terminate NS with id: " - + nsInstanceId + " for request: \n" + terminateNsRequest; - logger.error(message); - throw new NsRequestProcessingException(message); - } - - public void runDeleteNsJob(final String nsInstanceId) { - final NfvoJob nfvoJob = new NfvoJob().startTime(LocalDateTime.now()).jobType("NS").jobAction(DELETE) - .resourceId(nsInstanceId).status(STARTING).progress(0); - databaseServiceProvider.addJob(nfvoJob); - logger.info("New job created in database :\n{}", nfvoJob); - - workflowExecutorService.executeWorkflow(nfvoJob.getJobId(), DELETE_NS_WORKFLOW_NAME, - getVariables(nsInstanceId, nfvoJob.getJobId())); - - final ImmutablePair<String, JobStatusEnum> immutablePair = - waitForJobToFinish(nfvoJob.getJobId(), JOB_FINISHED_STATES); - - if (immutablePair.getRight() == null) { - final String message = "Failed to Delete NS with id: " + nsInstanceId; - logger.error(message); - throw new NsRequestProcessingException(message); - } - - final JobStatusEnum finalJobStatus = immutablePair.getRight(); - final String processInstanceId = immutablePair.getLeft(); - - if (FINISHED.equals(finalJobStatus)) { - logger.info("Delete Job status: {}", finalJobStatus); - return; - } - - final Optional<InlineResponse400> optional = workflowQueryService.getProblemDetails(processInstanceId); - if (optional.isPresent()) { - final InlineResponse400 problemDetails = optional.get(); - final String message = "Failed to Delete NS with id: " + nsInstanceId + " due to:\n" + problemDetails; - logger.error(message); - throw new NsRequestProcessingException(message, problemDetails); - } - - final String message = - "Received unexpected Job Status: " + finalJobStatus + " Failed to Delete NS with id: " + nsInstanceId; - logger.error(message); - throw new NsRequestProcessingException(message); - } - - private void doInitialTerminateChecks(final String nsInstanceId, final TerminateNsRequest terminateNsRequest) { - if (isNotImmediateTerminateRequest(terminateNsRequest)) { - final String message = "TerminateNsRequest received with terminateTime: " - + terminateNsRequest.getTerminationTime() - + "\nOnly immediate Terminate requests are currently supported \n(i.e., terminateTime field must not be set)."; - logger.error(message); - throw new NsRequestProcessingException(message); - } - - final NfvoNsInst nfvoNsInst = getNfvoNsInst(nsInstanceId); - if (isNotInstantiated(nfvoNsInst)) { - final String message = "TerminateNsRequest received: " + terminateNsRequest + " for nsInstanceId: " - + nsInstanceId + "\nUnable to terminate. NS Instance is already in NOT_INSTANTIATED state." - + "\nThis method can only be used with an NS instance in the INSTANTIATED state."; - logger.error(message); - throw new NsRequestProcessingException(message); - } - } - - private boolean isNotImmediateTerminateRequest(final TerminateNsRequest terminateNsRequest) { - return terminateNsRequest != null && terminateNsRequest.getTerminationTime() != null; - } - - private boolean isNotInstantiated(final NfvoNsInst nfvoNsInst) { - return State.NOT_INSTANTIATED.equals(nfvoNsInst.getStatus()); - } - - private NfvoNsInst getNfvoNsInst(final String nsInstId) { - logger.info("Getting NfvoNsInst with nsInstId: {}", nsInstId); - final Optional<NfvoNsInst> optionalNfvoNsInst = databaseServiceProvider.getNfvoNsInst(nsInstId); - - if (optionalNfvoNsInst.isEmpty()) { - final String message = "No matching NS Instance for id: " + nsInstId + " found in database."; - throw new NsRequestProcessingException(message); - } - - return optionalNfvoNsInst.get(); - } - - private ImmutablePair<String, JobStatusEnum> waitForJobToFinish(final String jobId, - final ImmutableSet<JobStatusEnum> jobFinishedStates) { - try { - final long startTimeInMillis = System.currentTimeMillis(); - final long timeOutTime = startTimeInMillis + TimeUnit.SECONDS.toMillis(timeOutInSeconds); - - logger.info("Will wait till {} for {} job to finish", Instant.ofEpochMilli(timeOutTime).toString(), jobId); - JobStatusEnum currentJobStatus = null; - while (timeOutTime > System.currentTimeMillis()) { - - final Optional<NfvoJob> optional = databaseServiceProvider.getRefreshedJob(jobId); - - if (optional.isEmpty()) { - logger.error("Unable to find Job using jobId: {}", jobId); - return ImmutablePair.nullPair(); - } - - final NfvoJob nfvoJob = optional.get(); - currentJobStatus = nfvoJob.getStatus(); - logger.debug("Received job status response: \n {}", nfvoJob); - if (jobFinishedStates.contains(currentJobStatus)) { - logger.info("Job finished \n {}", currentJobStatus); - return ImmutablePair.of(nfvoJob.getProcessInstanceId(), currentJobStatus); - } - - logger.info("Haven't received one of finish state {} yet, will try again in {} seconds", - jobFinishedStates, SLEEP_TIME_IN_SECONDS); - TimeUnit.SECONDS.sleep(SLEEP_TIME_IN_SECONDS); - - } - logger.warn("Timeout current job status: {}", currentJobStatus); - return ImmutablePair.nullPair(); - } catch (final InterruptedException interruptedException) { - Thread.currentThread().interrupt(); - logger.error("Sleep was interrupted", interruptedException); - return ImmutablePair.nullPair(); - } - } - - private Map<String, Object> getVariables(final String jobId, final CreateNsRequest createNsRequest, - final String globalCustomerId, final String serviceType) { - final Map<String, Object> variables = new HashMap<>(); - variables.put(JOB_ID_PARAM_NAME, jobId); - variables.put(CREATE_NS_REQUEST_PARAM_NAME, createNsRequest); - variables.put(GLOBAL_CUSTOMER_ID_PARAM_NAME, globalCustomerId); - variables.put(SERVICE_TYPE_PARAM_NAME, serviceType); - return variables; - } - - private Map<String, Object> getVariables(final String nsInstanceId, final String jobId, final String occId, - final InstantiateNsRequest instantiateNsRequest) { - final Map<String, Object> variables = new HashMap<>(); - variables.put(NS_INSTANCE_ID_PARAM_NAME, nsInstanceId); - variables.put(JOB_ID_PARAM_NAME, jobId); - variables.put(OCC_ID_PARAM_NAME, occId); - variables.put(INSTANTIATE_NS_REQUEST_PARAM_NAME, instantiateNsRequest); - return variables; - } - - private Map<String, Object> getVariables(final String nsInstanceId, final String jobId, final String occId, - final TerminateNsRequest terminateNsRequest) { - final Map<String, Object> variables = new HashMap<>(); - variables.put(NS_INSTANCE_ID_PARAM_NAME, nsInstanceId); - variables.put(JOB_ID_PARAM_NAME, jobId); - variables.put(OCC_ID_PARAM_NAME, occId); - variables.put(TERMINATE_NS_REQUEST_PARAM_NAME, terminateNsRequest); - return variables; - } - - private Map<String, Object> getVariables(final String nsInstanceId, final String jobId) { - final Map<String, Object> variables = new HashMap<>(); - variables.put(NS_INSTANCE_ID_PARAM_NAME, nsInstanceId); - variables.put(JOB_ID_PARAM_NAME, jobId); - return variables; - } -} diff --git a/so-etsi-nfvo/so-etsi-nfvo-ns-lcm/so-etsi-nfvo-ns-lcm-bpmn-flows/src/main/java/org/onap/so/etsi/nfvo/ns/lcm/bpmn/flows/service/WorkflowExecutorService.java b/so-etsi-nfvo/so-etsi-nfvo-ns-lcm/so-etsi-nfvo-ns-lcm-bpmn-flows/src/main/java/org/onap/so/etsi/nfvo/ns/lcm/bpmn/flows/service/WorkflowExecutorService.java deleted file mode 100644 index fa2b8d5507..0000000000 --- a/so-etsi-nfvo/so-etsi-nfvo-ns-lcm/so-etsi-nfvo-ns-lcm-bpmn-flows/src/main/java/org/onap/so/etsi/nfvo/ns/lcm/bpmn/flows/service/WorkflowExecutorService.java +++ /dev/null @@ -1,59 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * Copyright (C) 2020 Nordix Foundation. - * ================================================================================ - * 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. - * - * SPDX-License-Identifier: Apache-2.0 - * ============LICENSE_END========================================================= - */ -package org.onap.so.etsi.nfvo.ns.lcm.bpmn.flows.service; - -import static org.onap.so.etsi.nfvo.ns.lcm.bpmn.flows.Constants.TENANT_ID; -import static org.slf4j.LoggerFactory.getLogger; -import java.util.Map; -import org.camunda.bpm.engine.RuntimeService; -import org.camunda.bpm.engine.runtime.ProcessInstance; -import org.slf4j.Logger; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.scheduling.annotation.Async; -import org.springframework.stereotype.Service; - -/** - * @author Waqas Ikram (waqas.ikram@est.tech) - * - */ -@Service -public class WorkflowExecutorService { - - private static final Logger logger = getLogger(WorkflowExecutorService.class); - - private final RuntimeService runtimeService; - - @Autowired - public WorkflowExecutorService(final RuntimeService runtimeService) { - this.runtimeService = runtimeService; - } - - @Async - public void executeWorkflow(final String jobId, final String processDefinitionKey, - final Map<String, Object> variables) { - logger.info("Executing {} workflow with business key: {}", processDefinitionKey, jobId); - final ProcessInstance processInstance = runtimeService.createProcessInstanceByKey(processDefinitionKey) - .businessKey(jobId).setVariables(variables).processDefinitionTenantId(TENANT_ID).execute(); - - logger.info("Workflow running with processInstanceId: {} and business key: {}", - processInstance.getProcessInstanceId(), processInstance.getBusinessKey()); - } - -} diff --git a/so-etsi-nfvo/so-etsi-nfvo-ns-lcm/so-etsi-nfvo-ns-lcm-bpmn-flows/src/main/java/org/onap/so/etsi/nfvo/ns/lcm/bpmn/flows/service/WorkflowQueryService.java b/so-etsi-nfvo/so-etsi-nfvo-ns-lcm/so-etsi-nfvo-ns-lcm-bpmn-flows/src/main/java/org/onap/so/etsi/nfvo/ns/lcm/bpmn/flows/service/WorkflowQueryService.java deleted file mode 100644 index a6180b0e52..0000000000 --- a/so-etsi-nfvo/so-etsi-nfvo-ns-lcm/so-etsi-nfvo-ns-lcm-bpmn-flows/src/main/java/org/onap/so/etsi/nfvo/ns/lcm/bpmn/flows/service/WorkflowQueryService.java +++ /dev/null @@ -1,108 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * Copyright (C) 2020 Nordix Foundation. - * ================================================================================ - * 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. - * - * SPDX-License-Identifier: Apache-2.0 - * ============LICENSE_END========================================================= - */ -package org.onap.so.etsi.nfvo.ns.lcm.bpmn.flows.service; - -import static org.onap.so.etsi.nfvo.ns.lcm.bpmn.flows.CamundaVariableNameConstants.CREATE_NS_RESPONSE_PARAM_NAME; -import static org.onap.so.etsi.nfvo.ns.lcm.bpmn.flows.CamundaVariableNameConstants.NS_WORKFLOW_PROCESSING_EXCEPTION_PARAM_NAME; -import static org.onap.so.etsi.nfvo.ns.lcm.bpmn.flows.Constants.TENANT_ID; -import static org.slf4j.LoggerFactory.getLogger; -import java.util.Optional; -import org.camunda.bpm.engine.HistoryService; -import org.camunda.bpm.engine.ProcessEngineException; -import org.camunda.bpm.engine.history.HistoricVariableInstance; -import org.onap.so.etsi.nfvo.ns.lcm.model.InlineResponse400; -import org.onap.so.etsi.nfvo.ns.lcm.model.NsInstancesNsInstance; -import org.slf4j.Logger; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Service; -import com.google.common.base.Strings; - -/** - * @author Waqas Ikram (waqas.ikram@est.tech) - * - */ -@Service -public class WorkflowQueryService { - - private static final Logger logger = getLogger(WorkflowQueryService.class); - - private final HistoryService camundaHistoryService; - - @Autowired - public WorkflowQueryService(final HistoryService camundaHistoryService) { - this.camundaHistoryService = camundaHistoryService; - } - - public Optional<NsInstancesNsInstance> getCreateNsResponse(final String processInstanceId) { - try { - - if (Strings.isNullOrEmpty(processInstanceId)) { - logger.error("Invalid processInstanceId: {}", processInstanceId); - return Optional.empty(); - } - - final HistoricVariableInstance historicVariableInstance = - getVariable(processInstanceId, CREATE_NS_RESPONSE_PARAM_NAME); - - if (historicVariableInstance != null) { - logger.info("Found HistoricVariableInstance : {}", historicVariableInstance); - final Object variableValue = historicVariableInstance.getValue(); - if (variableValue instanceof NsInstancesNsInstance) { - return Optional.ofNullable((NsInstancesNsInstance) variableValue); - } - logger.error("Unknown CreateNsResponse object type {} received value: {}", - historicVariableInstance.getValue() != null ? variableValue.getClass() : null, variableValue); - } - } catch (final ProcessEngineException processEngineException) { - logger.error("Unable to find {} variable using processInstanceId: {}", CREATE_NS_RESPONSE_PARAM_NAME, - processInstanceId, processEngineException); - } - logger.error("Unable to find {} variable using processInstanceId: {}", CREATE_NS_RESPONSE_PARAM_NAME, - processInstanceId); - return Optional.empty(); - - } - - public Optional<InlineResponse400> getProblemDetails(final String processInstanceId) { - try { - final HistoricVariableInstance historicVariableInstance = - getVariable(processInstanceId, NS_WORKFLOW_PROCESSING_EXCEPTION_PARAM_NAME); - - logger.info("Found HistoricVariableInstance : {}", historicVariableInstance); - final Object variableValue = historicVariableInstance.getValue(); - if (variableValue instanceof InlineResponse400) { - return Optional.ofNullable((InlineResponse400) variableValue); - } - logger.error("Unknown ProblemDetails object type {} received value: {}", - historicVariableInstance.getValue() != null ? variableValue.getClass() : null, variableValue); - } catch (final ProcessEngineException processEngineException) { - logger.error("Unable to find {} variable using processInstanceId: {}", - NS_WORKFLOW_PROCESSING_EXCEPTION_PARAM_NAME, processInstanceId, processEngineException); - } - return Optional.empty(); - } - - - private HistoricVariableInstance getVariable(final String processInstanceId, final String name) { - return camundaHistoryService.createHistoricVariableInstanceQuery().processInstanceId(processInstanceId) - .variableName(name).tenantIdIn(TENANT_ID).singleResult(); - } - -} diff --git a/so-etsi-nfvo/so-etsi-nfvo-ns-lcm/so-etsi-nfvo-ns-lcm-bpmn-flows/src/main/java/org/onap/so/etsi/nfvo/ns/lcm/bpmn/flows/tasks/AbstractNetworkServiceTask.java b/so-etsi-nfvo/so-etsi-nfvo-ns-lcm/so-etsi-nfvo-ns-lcm-bpmn-flows/src/main/java/org/onap/so/etsi/nfvo/ns/lcm/bpmn/flows/tasks/AbstractNetworkServiceTask.java deleted file mode 100644 index a785a5199b..0000000000 --- a/so-etsi-nfvo/so-etsi-nfvo-ns-lcm/so-etsi-nfvo-ns-lcm-bpmn-flows/src/main/java/org/onap/so/etsi/nfvo/ns/lcm/bpmn/flows/tasks/AbstractNetworkServiceTask.java +++ /dev/null @@ -1,188 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * Copyright (C) 2020 Nordix Foundation. - * ================================================================================ - * 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. - * - * SPDX-License-Identifier: Apache-2.0 - * ============LICENSE_END========================================================= - */ -package org.onap.so.etsi.nfvo.ns.lcm.bpmn.flows.tasks; - -import static org.onap.so.etsi.nfvo.ns.lcm.bpmn.flows.CamundaVariableNameConstants.JOB_ID_PARAM_NAME; -import static org.onap.so.etsi.nfvo.ns.lcm.bpmn.flows.CamundaVariableNameConstants.NS_INSTANCE_ID_PARAM_NAME; -import static org.onap.so.etsi.nfvo.ns.lcm.bpmn.flows.CamundaVariableNameConstants.NS_WORKFLOW_PROCESSING_EXCEPTION_PARAM_NAME; -import static org.onap.so.etsi.nfvo.ns.lcm.bpmn.flows.CamundaVariableNameConstants.OCC_ID_PARAM_NAME; -import java.time.LocalDateTime; -import java.util.Optional; -import org.camunda.bpm.engine.delegate.BpmnError; -import org.camunda.bpm.engine.delegate.DelegateExecution; -import org.onap.so.etsi.nfvo.ns.lcm.database.beans.JobStatusEnum; -import org.onap.so.etsi.nfvo.ns.lcm.database.beans.NfvoJob; -import org.onap.so.etsi.nfvo.ns.lcm.database.beans.NfvoJobStatus; -import org.onap.so.etsi.nfvo.ns.lcm.database.beans.NfvoNsInst; -import org.onap.so.etsi.nfvo.ns.lcm.database.beans.OperationStateEnum; -import org.onap.so.etsi.nfvo.ns.lcm.database.beans.State; -import org.onap.so.etsi.nfvo.ns.lcm.database.service.DatabaseServiceProvider; -import org.onap.so.etsi.nfvo.ns.lcm.model.InlineResponse400; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - -/** - * @author Waqas Ikram (waqas.ikram@est.tech) - * @author Andrew Lamb (andrew.a.lamb@est.tech) - * - */ -public abstract class AbstractNetworkServiceTask { - private final Logger logger = LoggerFactory.getLogger(getClass()); - protected final DatabaseServiceProvider databaseServiceProvider; - - protected AbstractNetworkServiceTask(final DatabaseServiceProvider jobServiceProvider) { - this.databaseServiceProvider = jobServiceProvider; - } - - public void addJobStatus(final DelegateExecution execution, final JobStatusEnum jobStatus, - final String description) { - final NfvoJobStatus nfvoJobStatus = - new NfvoJobStatus().status(jobStatus).description(description).updatedTime(LocalDateTime.now()); - logger.info("Adding NfvoJobStatus {}", nfvoJobStatus); - final NfvoJob nfvoJob = getNfvoJob(execution); - nfvoJob.nfvoJobStatus(nfvoJobStatus); - databaseServiceProvider.addJob(nfvoJob); - } - - public void setJobStatus(final DelegateExecution execution, final JobStatusEnum jobStatus, - final String description) { - logger.info("Setting Job Status to {}", jobStatus); - final NfvoJob nfvoJob = getNfvoJob(execution); - nfvoJob.status(jobStatus); - if (JobStatusEnum.STARTED.equals(jobStatus)) { - nfvoJob.processInstanceId(execution.getProcessInstanceId()); - } - - if (JobStatusEnum.FINISHED.equals(jobStatus)) { - nfvoJob.endTime(LocalDateTime.now()); - } - - nfvoJob.nfvoJobStatus( - new NfvoJobStatus().status(jobStatus).description(description).updatedTime(LocalDateTime.now())); - databaseServiceProvider.addJob(nfvoJob); - - } - - public void setJobStatusToError(final DelegateExecution execution, final String description) { - logger.info("Setting Job Status to {}", JobStatusEnum.ERROR); - - final String jobId = (String) execution.getVariable(JOB_ID_PARAM_NAME); - final Optional<NfvoJob> optional = databaseServiceProvider.getJob(jobId); - if (optional.isPresent()) { - final InlineResponse400 problemDetails = - (InlineResponse400) execution.getVariable(NS_WORKFLOW_PROCESSING_EXCEPTION_PARAM_NAME); - - final NfvoJob nfvoJob = optional.get(); - nfvoJob.status(JobStatusEnum.ERROR).endTime(LocalDateTime.now()); - - if (problemDetails != null) { - logger.error("Found failed reason: {}", problemDetails); - nfvoJob.nfvoJobStatus(new NfvoJobStatus().status(JobStatusEnum.ERROR) - .description(problemDetails.getDetail()).updatedTime(LocalDateTime.now())); - } - nfvoJob.nfvoJobStatus(new NfvoJobStatus().status(JobStatusEnum.ERROR).description(description) - .updatedTime(LocalDateTime.now())); - - databaseServiceProvider.addJob(nfvoJob); - } - logger.info("Finished setting Job Status to {}", JobStatusEnum.ERROR); - - } - - public void updateNsLcmOpOccStatusToCompleted(final DelegateExecution execution) { - logger.info("Executing updateNsLcmOpOccStatusToCompleted ..."); - - updateNsLcmOpOccOperationState(execution, OperationStateEnum.COMPLETED); - - logger.info("Finished executing updateNsLcmOpOccStatusToCompleted ..."); - - } - - public void updateNsLcmOpOccStatusToFailed(final DelegateExecution execution) { - logger.info("Executing updateNsLcmOpOccStatusToFailed ..."); - - updateNsLcmOpOccOperationState(execution, OperationStateEnum.FAILED); - - logger.info("Finished executing updateNsLcmOpOccStatusToFailed ..."); - - } - - protected void abortOperation(final DelegateExecution execution, final String message) { - abortOperation(execution, message, new InlineResponse400().detail(message)); - } - - private void updateNsLcmOpOccOperationState(final DelegateExecution execution, - final OperationStateEnum operationState) { - final String occId = (String) execution.getVariable(OCC_ID_PARAM_NAME); - - final boolean isSuccessful = databaseServiceProvider.updateNsLcmOpOccOperationState(occId, operationState); - if (!isSuccessful) { - final String message = - "Unable to update NsLcmOpOcc " + occId + " operationState to" + operationState + " in database"; - logger.error(message); - abortOperation(execution, message); - } - } - - protected void abortOperation(final DelegateExecution execution, final String message, - final InlineResponse400 problemDetails) { - logger.error(message); - execution.setVariable(NS_WORKFLOW_PROCESSING_EXCEPTION_PARAM_NAME, problemDetails); - throw new BpmnError("WORKFLOW_FAILED"); - } - - private NfvoJob getNfvoJob(final DelegateExecution execution) { - final String jobId = (String) execution.getVariable(JOB_ID_PARAM_NAME); - final Optional<NfvoJob> optional = databaseServiceProvider.getJob(jobId); - if (optional.isEmpty()) { - final String message = "Unable to find job using job id: " + jobId; - logger.error(message); - execution.setVariable(NS_WORKFLOW_PROCESSING_EXCEPTION_PARAM_NAME, new InlineResponse400().detail(message)); - throw new BpmnError("WORKFLOW_FAILED"); - - } - return optional.get(); - } - - protected void updateNsInstanceStatus(final DelegateExecution execution, final State nsStatus) { - final String nsInstId = (String) execution.getVariable(NS_INSTANCE_ID_PARAM_NAME); - - logger.info("Updating NfvoNsInst Status to {} and saving to DB", nsStatus); - databaseServiceProvider.updateNsInstState(nsInstId, nsStatus); - } - - protected NfvoNsInst getNfvoNsInst(final DelegateExecution execution) { - final String nsInstId = (String) execution.getVariable(NS_INSTANCE_ID_PARAM_NAME); - return getNfvoNsInst(execution, nsInstId); - } - - protected NfvoNsInst getNfvoNsInst(final DelegateExecution execution, final String nsInstId) { - logger.info("Getting NfvoNsInst to update with nsInstId: {}", nsInstId); - final Optional<NfvoNsInst> optionalNfvoNsInst = databaseServiceProvider.getNfvoNsInst(nsInstId); - - if (optionalNfvoNsInst.isEmpty()) { - final String message = "Unable to find NS Instance in database using id: " + nsInstId; - abortOperation(execution, message); - } - - return optionalNfvoNsInst.get(); - } - -} diff --git a/so-etsi-nfvo/so-etsi-nfvo-ns-lcm/so-etsi-nfvo-ns-lcm-bpmn-flows/src/main/java/org/onap/so/etsi/nfvo/ns/lcm/bpmn/flows/tasks/CreateInstantiateRequest.java b/so-etsi-nfvo/so-etsi-nfvo-ns-lcm/so-etsi-nfvo-ns-lcm-bpmn-flows/src/main/java/org/onap/so/etsi/nfvo/ns/lcm/bpmn/flows/tasks/CreateInstantiateRequest.java deleted file mode 100644 index 569d9b3352..0000000000 --- a/so-etsi-nfvo/so-etsi-nfvo-ns-lcm/so-etsi-nfvo-ns-lcm-bpmn-flows/src/main/java/org/onap/so/etsi/nfvo/ns/lcm/bpmn/flows/tasks/CreateInstantiateRequest.java +++ /dev/null @@ -1,167 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * Copyright (C) 2020 Nordix Foundation. - * ================================================================================ - * 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. - * - * SPDX-License-Identifier: Apache-2.0 - * ============LICENSE_END========================================================= - */ -package org.onap.so.etsi.nfvo.ns.lcm.bpmn.flows.tasks; - -import static org.onap.so.etsi.nfvo.ns.lcm.database.beans.utils.Utils.toIndentedString; -import java.io.Serializable; -import java.util.Map; -import java.util.Objects; -import org.onap.so.adapters.etsisol003adapter.lcm.v1.model.Tenant; - -/** - * @author Waqas Ikram (waqas.ikram@est.tech) - * - */ -public class CreateInstantiateRequest implements Serializable { - private static final long serialVersionUID = -4371264952509580468L; - private String nsInstId; - private String vnfdId; - private String vnfName; - private String vnfPkgId; - private String nfType; - private Tenant tenant; - private Map<String, String> additionalParams; - - public String getNsInstId() { - return nsInstId; - } - - public void setNsInstId(final String nsInstId) { - this.nsInstId = nsInstId; - } - - public CreateInstantiateRequest nsInstId(final String nsInstId) { - this.nsInstId = nsInstId; - return this; - } - - public final String getVnfdId() { - return vnfdId; - } - - public final void setVnfdId(final String vnfdId) { - this.vnfdId = vnfdId; - } - - public CreateInstantiateRequest vnfdId(final String vnfdId) { - this.vnfdId = vnfdId; - return this; - } - - public final String getVnfName() { - return vnfName; - } - - public final void setVnfName(final String vnfName) { - this.vnfName = vnfName; - } - - public CreateInstantiateRequest vnfName(final String vnfName) { - this.vnfName = vnfName; - return this; - } - - public final String getVnfPkgId() { - return vnfPkgId; - } - - public final void setVnfPkgId(final String vnfPkgId) { - this.vnfPkgId = vnfPkgId; - } - - public CreateInstantiateRequest vnfPkgId(final String vnfPkgId) { - this.vnfPkgId = vnfPkgId; - return this; - } - - public final String getNfType() { - return nfType; - } - - public final void setNfType(final String nfType) { - this.nfType = nfType; - } - - public CreateInstantiateRequest nfType(final String nfType) { - this.nfType = nfType; - return this; - } - - public final Tenant getTenant() { - return tenant; - } - - public final void setTenant(final Tenant tenant) { - this.tenant = tenant; - } - - public CreateInstantiateRequest tenant(final Tenant tenant) { - this.tenant = tenant; - return this; - } - - public final Map<String, String> getAdditionalParams() { - return additionalParams; - } - - public final void setAdditionalParams(final Map<String, String> additionalParams) { - this.additionalParams = additionalParams; - } - - public CreateInstantiateRequest additionalParams(final Map<String, String> additionalParams) { - this.additionalParams = additionalParams; - return this; - } - - @Override - public int hashCode() { - return Objects.hash(nsInstId, vnfdId, vnfName, vnfPkgId, nfType, tenant, additionalParams); - } - - @Override - public boolean equals(final Object obj) { - if (obj instanceof CreateInstantiateRequest) { - final CreateInstantiateRequest other = (CreateInstantiateRequest) obj; - return Objects.equals(nsInstId, other.nsInstId) && Objects.equals(vnfdId, other.vnfdId) - && Objects.equals(vnfName, other.vnfName) && Objects.equals(vnfPkgId, other.vnfPkgId) - && Objects.equals(nfType, other.nfType) && Objects.equals(tenant, other.tenant) - && Objects.equals(additionalParams, other.additionalParams); - } - return false; - } - - @Override - public String toString() { - final StringBuilder sb = new StringBuilder(); - sb.append("class CreateInstantiateRequest {\n"); - sb.append(" nsInstId: ").append(toIndentedString(nsInstId)).append("\n"); - sb.append(" vnfdId: ").append(toIndentedString(vnfdId)).append("\n"); - sb.append(" vnfName: ").append(toIndentedString(vnfName)).append("\n"); - sb.append(" vnfPkgId: ").append(toIndentedString(vnfPkgId)).append("\n"); - sb.append(" nfType: ").append(toIndentedString(nfType)).append("\n"); - sb.append(" tenant: ").append(toIndentedString(tenant)).append("\n"); - sb.append(" additionalParams: ").append(toIndentedString(additionalParams)).append("\n"); - - sb.append("}"); - return sb.toString(); - } - - -} diff --git a/so-etsi-nfvo/so-etsi-nfvo-ns-lcm/so-etsi-nfvo-ns-lcm-bpmn-flows/src/main/java/org/onap/so/etsi/nfvo/ns/lcm/bpmn/flows/tasks/CreateInstantiateVnfTask.java b/so-etsi-nfvo/so-etsi-nfvo-ns-lcm/so-etsi-nfvo-ns-lcm-bpmn-flows/src/main/java/org/onap/so/etsi/nfvo/ns/lcm/bpmn/flows/tasks/CreateInstantiateVnfTask.java deleted file mode 100644 index 0d4cbbe24f..0000000000 --- a/so-etsi-nfvo/so-etsi-nfvo-ns-lcm/so-etsi-nfvo-ns-lcm-bpmn-flows/src/main/java/org/onap/so/etsi/nfvo/ns/lcm/bpmn/flows/tasks/CreateInstantiateVnfTask.java +++ /dev/null @@ -1,221 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * Copyright (C) 2020 Nordix Foundation. - * ================================================================================ - * 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. - * - * SPDX-License-Identifier: Apache-2.0 - * ============LICENSE_END========================================================= - */ -package org.onap.so.etsi.nfvo.ns.lcm.bpmn.flows.tasks; - -import static org.onap.so.etsi.nfvo.ns.lcm.bpmn.flows.CamundaVariableNameConstants.NS_INSTANCE_ID_PARAM_NAME; -import static org.onap.so.etsi.nfvo.ns.lcm.database.beans.JobStatusEnum.ERROR; -import static org.onap.so.etsi.nfvo.ns.lcm.database.beans.JobStatusEnum.FINISHED; -import static org.onap.so.etsi.nfvo.ns.lcm.database.beans.JobStatusEnum.IN_PROGRESS; -import java.time.LocalDateTime; -import java.util.Optional; -import org.camunda.bpm.engine.delegate.DelegateExecution; -import org.onap.aai.domain.yang.GenericVnf; -import org.onap.so.adapters.etsisol003adapter.lcm.v1.model.CreateVnfRequest; -import org.onap.so.adapters.etsisol003adapter.lcm.v1.model.CreateVnfResponse; -import org.onap.so.adapters.etsisol003adapter.lcm.v1.model.Tenant; -import org.onap.so.etsi.nfvo.ns.lcm.bpmn.flows.extclients.aai.AaiServiceProvider; -import org.onap.so.etsi.nfvo.ns.lcm.bpmn.flows.extclients.vnfm.Sol003AdapterServiceProvider; -import org.onap.so.etsi.nfvo.ns.lcm.database.beans.JobStatusEnum; -import org.onap.so.etsi.nfvo.ns.lcm.database.beans.NfvoNfInst; -import org.onap.so.etsi.nfvo.ns.lcm.database.beans.NfvoNsInst; -import org.onap.so.etsi.nfvo.ns.lcm.database.beans.State; -import org.onap.so.etsi.nfvo.ns.lcm.database.service.DatabaseServiceProvider; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Component; - -/** - * @author Waqas Ikram (waqas.ikram@est.tech) - */ -@Component -public class CreateInstantiateVnfTask extends AbstractNetworkServiceTask { - private static final String CREATE_INSTANTIATE_REQUEST_PARAM_NAME = "request"; - private static final Logger logger = LoggerFactory.getLogger(CreateInstantiateVnfTask.class); - private static final String NF_INST_ID_PARAM_NAME = "NF_INST_ID"; - public static final String CREATE_VNF_RESPONSE_PARAM_NAME = "createVnfResponse"; - private final AaiServiceProvider aaiServiceProvider; - private final Sol003AdapterServiceProvider sol003AdapterServiceProvider; - - @Autowired - public CreateInstantiateVnfTask(final DatabaseServiceProvider databaseServiceProvider, - final AaiServiceProvider aaiServiceProvider, - final Sol003AdapterServiceProvider sol003AdapterServiceProvider) { - super(databaseServiceProvider); - this.aaiServiceProvider = aaiServiceProvider; - this.sol003AdapterServiceProvider = sol003AdapterServiceProvider; - } - - public void checkIfNfInstanceExistsInDb(final DelegateExecution execution) { - logger.info("Executing checkIfNfInstanceInDb"); - final CreateInstantiateRequest request = - (CreateInstantiateRequest) execution.getVariable(CREATE_INSTANTIATE_REQUEST_PARAM_NAME); - logger.info("request: {}", request); - - addJobStatus(execution, JobStatusEnum.IN_PROGRESS, "Checking if NF Instance record exists in database for " - + request.getNsInstId() + " and " + request.getVnfName()); - if (!databaseServiceProvider.isNsInstExists(request.getNsInstId(), request.getVnfName())) { - abortOperation(execution, - request.getNsInstId() + " " + request.getVnfName() + " VNF instance already exists"); - } - logger.info("Finished executing checkIfNfInstanceInDb ..."); - - } - - public void createNfInstanceInDb(final DelegateExecution execution) { - logger.info("Executing createNfInstanceInDb"); - final CreateInstantiateRequest request = - (CreateInstantiateRequest) execution.getVariable(CREATE_INSTANTIATE_REQUEST_PARAM_NAME); - logger.info("request: {}", request); - - addJobStatus(execution, IN_PROGRESS, "Creating NF Instance record in database for " + request.getVnfName()); - - final Optional<NfvoNsInst> optional = databaseServiceProvider.getNfvoNsInst(request.getNsInstId()); - - if (optional.isEmpty()) { - abortOperation(execution, "NfvoNsInst: " + request.getNsInstId() + "not founda"); - } - - final NfvoNsInst nfvoNsInst = optional.get(); - final LocalDateTime now = LocalDateTime.now(); - final NfvoNfInst nfvoNfInst = new NfvoNfInst().status(State.NOT_INSTANTIATED).createTime(now) - .lastUpdateTime(now).name(request.getVnfName()).vnfdId(request.getVnfdId()) - .packageId(request.getVnfPkgId()).nfvoNsInst(nfvoNsInst); - databaseServiceProvider.saveNfvoNfInst(nfvoNfInst); - execution.setVariable(NF_INST_ID_PARAM_NAME, nfvoNfInst.getNfInstId()); - logger.info("Finished executing createNfInstanceInDb ..."); - - } - - public void createGenericVnfInAai(final DelegateExecution execution) { - logger.info("Executing createGenericVnfInAai"); - try { - final CreateInstantiateRequest request = - (CreateInstantiateRequest) execution.getVariable(CREATE_INSTANTIATE_REQUEST_PARAM_NAME); - - addJobStatus(execution, IN_PROGRESS, "Creating GenericVnf record in AAI for " + request.getVnfName()); - - final String nfInstId = (String) execution.getVariable(NF_INST_ID_PARAM_NAME); - final String nsInstId = (String) execution.getVariable(NS_INSTANCE_ID_PARAM_NAME); - final NfvoNsInst nfvoNsInst = getNfvoNsInst(execution, nsInstId); - - final GenericVnf genericVnf = new GenericVnf(); - genericVnf.setVnfId(nfInstId); - genericVnf.setVnfName(request.getVnfName()); - genericVnf.setVnfType(nfvoNsInst.getName() + "/" + request.getVnfName()); - genericVnf.setServiceId(request.getNsInstId()); - genericVnf.setNfType(request.getNfType()); - genericVnf.setOperationalStatus("Created"); - genericVnf.setIsClosedLoopDisabled(false); - - aaiServiceProvider.createGenericVnfAndConnectServiceInstance(nsInstId, nfInstId, genericVnf); - - final Tenant tenant = request.getTenant(); - aaiServiceProvider.connectGenericVnfToTenant(nfInstId, tenant.getCloudOwner(), tenant.getRegionName(), - tenant.getTenantId()); - - } catch (final Exception exception) { - final String message = "Unable to Create GenericVnf in AAI"; - logger.error(message, exception); - abortOperation(execution, message); - } - - logger.info("Finished executing createGenericVnfInAai ..."); - } - - public void invokeCreateInstantiationRequest(final DelegateExecution execution) { - logger.info("Executing invokeCreateInstantiationRequest"); - - try { - final CreateInstantiateRequest request = - (CreateInstantiateRequest) execution.getVariable(CREATE_INSTANTIATE_REQUEST_PARAM_NAME); - logger.info("request: {}", request); - - addJobStatus(execution, IN_PROGRESS, - "Invoking SOL003 adapter for creating and instantiating VNF: " + request.getVnfName()); - - final CreateVnfRequest vnfRequest = new CreateVnfRequest(); - vnfRequest.setTenant(request.getTenant()); - vnfRequest.setName(request.getVnfName()); - vnfRequest.setPkgId(request.getVnfPkgId()); - vnfRequest.setAdditionalParams(request.getAdditionalParams()); - final String vnfId = (String) execution.getVariable(NF_INST_ID_PARAM_NAME); - final Optional<CreateVnfResponse> optional = - sol003AdapterServiceProvider.invokeCreateInstantiationRequest(vnfId, vnfRequest); - - if (!optional.isPresent()) { - final String errorMessage = "Unexpected error while processing create and instantiation request"; - logger.error(errorMessage); - abortOperation(execution, errorMessage); - } - - final CreateVnfResponse vnfResponse = optional.get(); - - logger.info("Vnf instantiation response: {}", vnfResponse); - execution.setVariable(CREATE_VNF_RESPONSE_PARAM_NAME, vnfResponse); - addJobStatus(execution, IN_PROGRESS, "Successfully invoked SOL003 adapater creating and instantiating VNF: " - + request.getVnfName() + " CreaetVnfResponse Job Id: " + vnfResponse.getJobId()); - logger.debug("Finished executing invokeCreateInstantiationRequest ..."); - } catch (final Exception exception) { - final String message = "Unable to invoke create and instantiation request"; - logger.error(message, exception); - abortOperation(execution, message); - } - - } - - public void updateNfInstanceStatusToInstantiated(final DelegateExecution execution) { - logger.info("Executing updateNfInstanceStatusToInstantiated"); - - updateNfInstanceStatus(execution, State.INSTANTIATED); - final CreateInstantiateRequest request = - (CreateInstantiateRequest) execution.getVariable(CREATE_INSTANTIATE_REQUEST_PARAM_NAME); - addJobStatus(execution, FINISHED, "Successfully created and Instantiated VNF: " + request.getVnfName() - + " will set status to " + State.INSTANTIATED); - - logger.info("Finished executing updateNfInstanceStatusToInstantiated ..."); - - } - - public void updateNfInstanceStatusToFailed(final DelegateExecution execution) { - logger.info("Executing updateNfInstanceStatusToFailed"); - - updateNfInstanceStatus(execution, State.FAILED); - final CreateInstantiateRequest request = - (CreateInstantiateRequest) execution.getVariable(CREATE_INSTANTIATE_REQUEST_PARAM_NAME); - addJobStatus(execution, ERROR, "Failed to create and instantiate VNF: " + request.getVnfName() - + " will set status to " + State.FAILED); - - logger.info("Finished executing updateNfInstanceStatusToFailed ..."); - - } - - private void updateNfInstanceStatus(final DelegateExecution execution, final State vnfStatus) { - final String nfInstId = (String) execution.getVariable(NF_INST_ID_PARAM_NAME); - final boolean isSuccessful = databaseServiceProvider.updateNfInstState(nfInstId, vnfStatus); - if (!isSuccessful) { - final String message = - "Unable to update NfvoNfInst " + nfInstId + " status to" + vnfStatus + " in database"; - logger.error(message); - abortOperation(execution, message); - } - } - -} diff --git a/so-etsi-nfvo/so-etsi-nfvo-ns-lcm/so-etsi-nfvo-ns-lcm-bpmn-flows/src/main/java/org/onap/so/etsi/nfvo/ns/lcm/bpmn/flows/tasks/CreateNsTask.java b/so-etsi-nfvo/so-etsi-nfvo-ns-lcm/so-etsi-nfvo-ns-lcm-bpmn-flows/src/main/java/org/onap/so/etsi/nfvo/ns/lcm/bpmn/flows/tasks/CreateNsTask.java deleted file mode 100644 index 2cf68bee14..0000000000 --- a/so-etsi-nfvo/so-etsi-nfvo-ns-lcm/so-etsi-nfvo-ns-lcm-bpmn-flows/src/main/java/org/onap/so/etsi/nfvo/ns/lcm/bpmn/flows/tasks/CreateNsTask.java +++ /dev/null @@ -1,221 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * Copyright (C) 2020 Nordix Foundation. - * ================================================================================ - * 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. - * - * SPDX-License-Identifier: Apache-2.0 - * ============LICENSE_END========================================================= - */ -package org.onap.so.etsi.nfvo.ns.lcm.bpmn.flows.tasks; - -import static org.onap.so.etsi.nfvo.ns.lcm.bpmn.flows.CamundaVariableNameConstants.CREATE_NS_REQUEST_PARAM_NAME; -import static org.onap.so.etsi.nfvo.ns.lcm.bpmn.flows.CamundaVariableNameConstants.CREATE_NS_RESPONSE_PARAM_NAME; -import static org.onap.so.etsi.nfvo.ns.lcm.bpmn.flows.CamundaVariableNameConstants.NS_WORKFLOW_PROCESSING_EXCEPTION_PARAM_NAME; -import static org.onap.so.etsi.nfvo.ns.lcm.bpmn.flows.CamundaVariableNameConstants.GLOBAL_CUSTOMER_ID_PARAM_NAME; -import static org.onap.so.etsi.nfvo.ns.lcm.bpmn.flows.CamundaVariableNameConstants.NS_INSTANCE_ID_PARAM_NAME; -import static org.onap.so.etsi.nfvo.ns.lcm.bpmn.flows.CamundaVariableNameConstants.NS_PACKAGE_MODEL_PARAM_NAME; -import static org.onap.so.etsi.nfvo.ns.lcm.bpmn.flows.CamundaVariableNameConstants.SERVICE_TYPE_PARAM_NAME; -import java.time.LocalDateTime; -import java.util.Optional; -import java.util.UUID; -import org.camunda.bpm.engine.delegate.DelegateExecution; -import org.onap.aai.domain.yang.ServiceInstance; -import org.onap.so.adapters.etsisol003adapter.pkgm.extclients.etsicatalog.model.NsdInfo; -import org.onap.so.etsi.nfvo.ns.lcm.bpmn.flows.exceptions.EtsiCatalogManagerRequestFailureException; -import org.onap.so.etsi.nfvo.ns.lcm.bpmn.flows.extclients.aai.AaiServiceProvider; -import org.onap.so.etsi.nfvo.ns.lcm.bpmn.flows.extclients.etsicatalog.EtsiCatalogPackageManagementServiceProvider; -import org.onap.so.etsi.nfvo.ns.lcm.database.beans.JobStatusEnum; -import org.onap.so.etsi.nfvo.ns.lcm.database.beans.NfvoNsInst; -import org.onap.so.etsi.nfvo.ns.lcm.database.beans.State; -import org.onap.so.etsi.nfvo.ns.lcm.database.service.DatabaseServiceProvider; -import org.onap.so.etsi.nfvo.ns.lcm.model.CreateNsRequest; -import org.onap.so.etsi.nfvo.ns.lcm.model.InlineResponse400; -import org.onap.so.etsi.nfvo.ns.lcm.model.NsInstancesNsInstance; -import org.onap.so.etsi.nfvo.ns.lcm.model.NsInstancesNsInstance.NsStateEnum; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Component; - -/** - * @author Waqas Ikram (waqas.ikram@est.tech) - * - */ -@Component -public class CreateNsTask extends AbstractNetworkServiceTask { - private static final String NETWORK_SERVICE_NAME = "NetworkService"; - private static final String NETWORK_SERVICE_ROLE = "NetworkService"; - private static final String DOES_NS_PACKAGE_EXISTS_PARAM_NAME = "doesNsPackageExists"; - private static final String DOES_NS_INSTANCE_EXISTS_PARAM_NAME = "doesNsInstanceExists"; - private static final Logger logger = LoggerFactory.getLogger(CreateNsTask.class); - private final EtsiCatalogPackageManagementServiceProvider etsiCatalogPackageManagementServiceProvider; - private final AaiServiceProvider aaiServiceProvider; - - @Autowired - public CreateNsTask(final DatabaseServiceProvider databaseServiceProvider, - final AaiServiceProvider aaiServiceProvider, - final EtsiCatalogPackageManagementServiceProvider etsiCatalogPackageManagementServiceProvider) { - super(databaseServiceProvider); - this.aaiServiceProvider = aaiServiceProvider; - this.etsiCatalogPackageManagementServiceProvider = etsiCatalogPackageManagementServiceProvider; - } - - public void setJobStatusToStarted(final DelegateExecution execution) { - setJobStatus(execution, JobStatusEnum.STARTED, "Create NS workflow process started"); - } - - public void setJobStatusToFinished(final DelegateExecution execution) { - setJobStatus(execution, JobStatusEnum.FINISHED, "Create NS workflow process finished"); - } - - public void setJobStatusToError(final DelegateExecution execution) { - setJobStatusToError(execution, "Create NS workflow process failed"); - } - - public void getNsPackage(final DelegateExecution execution) { - logger.info("Retrieving NS package from ETSI Catalog Manager ..."); - setJobStatus(execution, JobStatusEnum.IN_PROGRESS, "Retrieving NS package from ETSI Catalog Manager"); - - final CreateNsRequest createNsRequest = (CreateNsRequest) execution.getVariable(CREATE_NS_REQUEST_PARAM_NAME); - - try { - final Optional<NsdInfo> optional = - etsiCatalogPackageManagementServiceProvider.getNSPackageModel(createNsRequest.getNsdId()); - - if (optional.isPresent()) { - final NsdInfo packageModel = optional.get(); - logger.info("NS Package exists {}", packageModel); - execution.setVariable(NS_PACKAGE_MODEL_PARAM_NAME, packageModel); - execution.setVariable(DOES_NS_PACKAGE_EXISTS_PARAM_NAME, true); - } else { - final String message = "Unable to find NS package using NsdId: " + createNsRequest.getNsdId(); - logger.error(message); - execution.setVariable(DOES_NS_PACKAGE_EXISTS_PARAM_NAME, false); - execution.setVariable(NS_WORKFLOW_PROCESSING_EXCEPTION_PARAM_NAME, - new InlineResponse400().detail(message)); - } - - } catch (final EtsiCatalogManagerRequestFailureException failureException) { - final String message = - "Unexpected exception occured while getting ns package using nsdId: " + createNsRequest.getNsdId(); - logger.error(message, failureException); - - execution.setVariable(DOES_NS_PACKAGE_EXISTS_PARAM_NAME, false); - - execution.setVariable(NS_WORKFLOW_PROCESSING_EXCEPTION_PARAM_NAME, - new InlineResponse400().title(message).detail(message)); - } - - } - - public void doesNsInstanceExistsInDb(final DelegateExecution execution) { - logger.info("Executing doesNsInstanceExistsInDb ..."); - - setJobStatus(execution, JobStatusEnum.IN_PROGRESS, "Checking if NS package exists in database"); - - final CreateNsRequest createNsRequest = - (CreateNsRequest) execution.getVariables().get(CREATE_NS_REQUEST_PARAM_NAME); - - final boolean exists = databaseServiceProvider.isNsInstExists(createNsRequest.getNsName()); - logger.info("Ns Instance entry {} exists in database", exists ? "does" : "doesn't"); - execution.setVariable(DOES_NS_INSTANCE_EXISTS_PARAM_NAME, exists); - - if (exists) { - final Optional<NfvoNsInst> optional = - databaseServiceProvider.getNfvoNsInstByName(createNsRequest.getNsName()); - final NfvoNsInst nfvoNsInst = optional.get(); - execution.setVariable(NS_WORKFLOW_PROCESSING_EXCEPTION_PARAM_NAME, new InlineResponse400() - .detail("Ns Instance already exists in database : " + nfvoNsInst.toString())); - } - - logger.info("Finished executing doesNsInstanceExistsInDb ..."); - - } - - public void createNsInstanceInDb(final DelegateExecution execution) { - logger.info("Executing createNsInstanceInDb ..."); - - setJobStatus(execution, JobStatusEnum.IN_PROGRESS, "Checking if NS package exists"); - - final CreateNsRequest createNsRequest = (CreateNsRequest) execution.getVariable(CREATE_NS_REQUEST_PARAM_NAME); - final NsdInfo packageMode = (NsdInfo) execution.getVariable(NS_PACKAGE_MODEL_PARAM_NAME); - - final String globalCustomerId = (String) execution.getVariable(GLOBAL_CUSTOMER_ID_PARAM_NAME); - final String serviceType = (String) execution.getVariable(SERVICE_TYPE_PARAM_NAME); - - final String nsInstId = UUID.randomUUID().toString(); - execution.setVariable(NS_INSTANCE_ID_PARAM_NAME, nsInstId); - - databaseServiceProvider.saveNfvoNsInst(new NfvoNsInst().nsInstId(nsInstId).name(createNsRequest.getNsName()) - .nsPackageId(packageMode.getId()).nsdId(packageMode.getNsdId()) - .nsdInvariantId(packageMode.getNsdInvariantId()).description(createNsRequest.getNsDescription()) - .status(State.NOT_INSTANTIATED).statusUpdatedTime(LocalDateTime.now()) - .globalCustomerId(globalCustomerId).serviceType(serviceType)); - logger.info("Finished executing createNsInstanceInDb ..."); - - } - - - public void createNsInstanceInAai(final DelegateExecution execution) { - logger.info("Executing createNsInstanceInAai ..."); - try { - setJobStatus(execution, JobStatusEnum.IN_PROGRESS, "Creating NS Instance in AAI"); - - final CreateNsRequest createNsRequest = - (CreateNsRequest) execution.getVariable(CREATE_NS_REQUEST_PARAM_NAME); - final String nsInstId = (String) execution.getVariable(NS_INSTANCE_ID_PARAM_NAME); - - final String globalCustomerId = (String) execution.getVariable(GLOBAL_CUSTOMER_ID_PARAM_NAME); - final String serviceType = (String) execution.getVariable(SERVICE_TYPE_PARAM_NAME); - - final ServiceInstance aaiServiceInstance = new ServiceInstance(); - aaiServiceInstance.setServiceInstanceId(nsInstId); - aaiServiceInstance.setServiceInstanceName(createNsRequest.getNsName()); - aaiServiceInstance.setServiceType(NETWORK_SERVICE_NAME); - aaiServiceInstance.setServiceRole(NETWORK_SERVICE_ROLE); - - aaiServiceProvider.createServiceInstance(globalCustomerId, serviceType, aaiServiceInstance); - } catch (final Exception exception) { - final String message = "Unable to Create Service Instance in AAI"; - logger.error(message, exception); - abortOperation(execution, message, new InlineResponse400().detail(message)); - } - logger.info("Finished executing createNsInstanceInAai ..."); - - } - - public void setCreateNsResponse(final DelegateExecution execution) { - logger.info("Executing setCreateNsResponse ..."); - final String nsInstId = (String) execution.getVariable(NS_INSTANCE_ID_PARAM_NAME); - final Optional<NfvoNsInst> optional = databaseServiceProvider.getNfvoNsInst(nsInstId); - - if (optional.isPresent()) { - final NfvoNsInst nfvoNsInst = optional.get(); - final NsInstancesNsInstance response = new NsInstancesNsInstance().id(nfvoNsInst.getNsInstId()) - .nsInstanceName(nfvoNsInst.getName()).nsdId(nfvoNsInst.getNsdId()) - .nsdInfoId(nfvoNsInst.getNsPackageId()).nsInstanceDescription(nfvoNsInst.getDescription()) - .nsState(NsStateEnum.fromValue(nfvoNsInst.getStatus().toString())); - logger.info("Saving CreateNsResponse: {} in Execution ...", response); - execution.setVariable(CREATE_NS_RESPONSE_PARAM_NAME, response); - } else { - final String message = "Unable to find NS Instance in datababse using id: " + nsInstId; - logger.error(message); - abortOperation(execution, message); - } - - logger.info("Finished executing setCreateNsResponse ..."); - - } - -} diff --git a/so-etsi-nfvo/so-etsi-nfvo-ns-lcm/so-etsi-nfvo-ns-lcm-bpmn-flows/src/main/java/org/onap/so/etsi/nfvo/ns/lcm/bpmn/flows/tasks/DeleteNsTask.java b/so-etsi-nfvo/so-etsi-nfvo-ns-lcm/so-etsi-nfvo-ns-lcm-bpmn-flows/src/main/java/org/onap/so/etsi/nfvo/ns/lcm/bpmn/flows/tasks/DeleteNsTask.java deleted file mode 100644 index cd711fb3e8..0000000000 --- a/so-etsi-nfvo/so-etsi-nfvo-ns-lcm/so-etsi-nfvo-ns-lcm-bpmn-flows/src/main/java/org/onap/so/etsi/nfvo/ns/lcm/bpmn/flows/tasks/DeleteNsTask.java +++ /dev/null @@ -1,140 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * Copyright (C) 2020 Nordix Foundation. - * ================================================================================ - * 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. - * - * SPDX-License-Identifier: Apache-2.0 - * ============LICENSE_END========================================================= - */ -package org.onap.so.etsi.nfvo.ns.lcm.bpmn.flows.tasks; - -import org.camunda.bpm.engine.delegate.DelegateExecution; -import org.onap.so.etsi.nfvo.ns.lcm.bpmn.flows.extclients.aai.AaiServiceProvider; -import org.onap.so.etsi.nfvo.ns.lcm.database.beans.NfvoNsInst; -import org.onap.so.etsi.nfvo.ns.lcm.database.beans.State; -import org.onap.so.etsi.nfvo.ns.lcm.database.service.DatabaseServiceProvider; -import org.onap.so.etsi.nfvo.ns.lcm.model.InlineResponse400; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Component; -import java.util.Optional; -import static org.onap.so.etsi.nfvo.ns.lcm.bpmn.flows.CamundaVariableNameConstants.NS_INSTANCE_ID_PARAM_NAME; -import static org.onap.so.etsi.nfvo.ns.lcm.bpmn.flows.CamundaVariableNameConstants.NS_WORKFLOW_PROCESSING_EXCEPTION_PARAM_NAME; -import static org.onap.so.etsi.nfvo.ns.lcm.database.beans.JobStatusEnum.FINISHED; -import static org.onap.so.etsi.nfvo.ns.lcm.database.beans.JobStatusEnum.IN_PROGRESS; -import static org.onap.so.etsi.nfvo.ns.lcm.database.beans.JobStatusEnum.STARTED; -import static org.onap.so.etsi.nfvo.ns.lcm.database.beans.State.NOT_INSTANTIATED; - -/** - * @author Andrew Lamb (andrew.a.lamb@est.tech) - * - */ -@Component -public class DeleteNsTask extends AbstractNetworkServiceTask { - - private static final String NS_INSTANCE_EXISTS_PARAM_NAME = "nsInstanceExists"; - private static final String NS_INSTANCE_IS_IN_NOT_INSTANTIATED_STATE_PARAM_NAME = "isInNotInstantiatedState"; - private static final Logger logger = LoggerFactory.getLogger(DeleteNsTask.class); - private final AaiServiceProvider aaiServiceProvider; - - @Autowired - public DeleteNsTask(final DatabaseServiceProvider databaseServiceProvider, - final AaiServiceProvider aaiServiceProvider) { - super(databaseServiceProvider); - this.aaiServiceProvider = aaiServiceProvider; - } - - public void setJobStatusToStarted(final DelegateExecution execution) { - setJobStatus(execution, STARTED, "Delete NS workflow process started"); - } - - public void setJobStatusToFinished(final DelegateExecution execution) { - setJobStatus(execution, FINISHED, "Delete NS workflow process finished"); - } - - public void setJobStatusInProgress(final DelegateExecution execution, final String message) { - setJobStatus(execution, IN_PROGRESS, message); - } - - public void setJobStatusToError(final DelegateExecution execution) { - setJobStatusToError(execution, "Delete NS workflow process failed"); - } - - public void checkIfNsInstanceExistsInDb(final DelegateExecution execution) { - logger.info("Executing checkIfNsInstanceExistsInDb ..."); - setJobStatusInProgress(execution, "Checking that NS Instance Exists in DB"); - - final String nsInstId = (String) execution.getVariable(NS_INSTANCE_ID_PARAM_NAME); - final Optional<NfvoNsInst> optionalNfvoNsInst = databaseServiceProvider.getNfvoNsInst(nsInstId); - final boolean nsInstanceExists = optionalNfvoNsInst.isPresent(); - logger.info("NS Instance entry with id: {} {} exist in database", nsInstId, - nsInstanceExists ? "does" : "doesn't"); - execution.setVariable(NS_INSTANCE_EXISTS_PARAM_NAME, nsInstanceExists); - - if (!nsInstanceExists) { - final String message = - "NS Instance with id: " + nsInstId + " does not exist in database, so will not be deleted."; - logger.info(message); - execution.setVariable(NS_WORKFLOW_PROCESSING_EXCEPTION_PARAM_NAME, new InlineResponse400().detail(message)); - } - - logger.info("Finished executing checkIfNsInstanceExistsInDb ..."); - } - - public void checkthatNsInstanceInDbIsInNotInstantiatedState(final DelegateExecution execution) { - logger.info("Executing checkthatNsInstanceInDbIsInNotInstantiatedState ..."); - setJobStatusInProgress(execution, "Checking that NS Instance is in NOT_INSTANTIATED state in Db"); - - final String nsInstId = (String) execution.getVariable(NS_INSTANCE_ID_PARAM_NAME); - final NfvoNsInst nfvoNsInst = getNfvoNsInst(execution, nsInstId); - final State nfvoNsInstState = nfvoNsInst.getStatus(); - final boolean nsInstanceIsNotInstantiated = NOT_INSTANTIATED.equals(nfvoNsInstState); - logger.info("Ns Instance entry with nsInstId: {} is in state: {}", nsInstId, nfvoNsInstState); - execution.setVariable(NS_INSTANCE_IS_IN_NOT_INSTANTIATED_STATE_PARAM_NAME, nsInstanceIsNotInstantiated); - - if (!nsInstanceIsNotInstantiated) { - final String message = - "Cannot Delete NS Instance with id: " + nsInstId + " in the state: " + nfvoNsInstState; - logger.info(message); - execution.setVariable(NS_WORKFLOW_PROCESSING_EXCEPTION_PARAM_NAME, new InlineResponse400().detail(message)); - } - - logger.info("Finished executing checkthatNsInstanceInDbIsInNotInstantiatedState ..."); - } - - public void deleteNsInstanceFromAai(final DelegateExecution execution) { - logger.info("Executing deleteNsInstanceFromAAI ..."); - setJobStatusInProgress(execution, "Deleting NS Instance from AAI"); - - final String nsInstId = (String) execution.getVariable(NS_INSTANCE_ID_PARAM_NAME); - final NfvoNsInst nfvoNsInst = getNfvoNsInst(execution, nsInstId); - final String globalCustomerId = nfvoNsInst.getGlobalCustomerId(); - final String serviceType = nfvoNsInst.getServiceType(); - - aaiServiceProvider.deleteServiceInstance(globalCustomerId, serviceType, nsInstId); - - logger.info("Finished executing deleteNsInstanceFromAAI ..."); - } - - public void deleteNsInstanceFromDb(final DelegateExecution execution) { - logger.info("Executing deleteNsInstanceFromDb ..."); - setJobStatusInProgress(execution, "Deleting NS Instance from Db"); - - final String nsInstId = (String) execution.getVariable(NS_INSTANCE_ID_PARAM_NAME); - databaseServiceProvider.deleteNfvoNsInst(nsInstId); - - logger.info("Finished executing deleteNsInstanceFromDb ..."); - } -} diff --git a/so-etsi-nfvo/so-etsi-nfvo-ns-lcm/so-etsi-nfvo-ns-lcm-bpmn-flows/src/main/java/org/onap/so/etsi/nfvo/ns/lcm/bpmn/flows/tasks/InstantiateNsTask.java b/so-etsi-nfvo/so-etsi-nfvo-ns-lcm/so-etsi-nfvo-ns-lcm-bpmn-flows/src/main/java/org/onap/so/etsi/nfvo/ns/lcm/bpmn/flows/tasks/InstantiateNsTask.java deleted file mode 100644 index aeb2d11934..0000000000 --- a/so-etsi-nfvo/so-etsi-nfvo-ns-lcm/so-etsi-nfvo-ns-lcm-bpmn-flows/src/main/java/org/onap/so/etsi/nfvo/ns/lcm/bpmn/flows/tasks/InstantiateNsTask.java +++ /dev/null @@ -1,328 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * Copyright (C) 2020 Nordix Foundation. - * ================================================================================ - * 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. - * - * SPDX-License-Identifier: Apache-2.0 - * ============LICENSE_END========================================================= - */ -package org.onap.so.etsi.nfvo.ns.lcm.bpmn.flows.tasks; - -import static org.onap.so.etsi.nfvo.ns.lcm.bpmn.flows.CamundaVariableNameConstants.INSTANTIATE_NS_REQUEST_PARAM_NAME; -import static org.onap.so.etsi.nfvo.ns.lcm.bpmn.flows.CamundaVariableNameConstants.NETWORK_SERVICE_DESCRIPTOR_PARAM_NAME; -import static org.onap.so.etsi.nfvo.ns.lcm.bpmn.flows.CamundaVariableNameConstants.NS_INSTANCE_ID_PARAM_NAME; -import static org.onap.so.etsi.nfvo.ns.lcm.bpmn.flows.CamundaVariableNameConstants.VNF_CREATE_INSTANTIATE_REQUESTS; -import static org.onap.so.etsi.nfvo.ns.lcm.database.beans.JobStatusEnum.FINISHED; -import static org.onap.so.etsi.nfvo.ns.lcm.database.beans.JobStatusEnum.IN_PROGRESS; -import static org.onap.so.etsi.nfvo.ns.lcm.database.beans.JobStatusEnum.STARTED; -import java.util.ArrayList; -import java.util.HashMap; -import java.util.List; -import java.util.Map; -import java.util.Optional; -import org.apache.commons.lang3.StringUtils; -import org.camunda.bpm.engine.delegate.DelegateExecution; -import org.onap.so.adapters.etsisol003adapter.lcm.v1.model.Tenant; -import org.onap.so.adapters.etsisol003adapter.pkgm.extclients.etsicatalog.model.NsdInfo; -import org.onap.so.adapters.etsisol003adapter.pkgm.extclients.etsicatalog.model.VnfPkgInfo; -import org.onap.so.etsi.nfvo.ns.lcm.bpmn.flows.exceptions.EtsiCatalogManagerRequestFailureException; -import org.onap.so.etsi.nfvo.ns.lcm.bpmn.flows.extclients.etsicatalog.EtsiCatalogPackageManagementServiceProvider; -import org.onap.so.etsi.nfvo.ns.lcm.bpmn.flows.nsd.NetworkServiceDescriptor; -import org.onap.so.etsi.nfvo.ns.lcm.bpmn.flows.nsd.VirtualNetworkFunction; -import org.onap.so.etsi.nfvo.ns.lcm.database.beans.NfvoNfInst; -import org.onap.so.etsi.nfvo.ns.lcm.database.beans.NfvoNsInst; -import org.onap.so.etsi.nfvo.ns.lcm.database.beans.State; -import org.onap.so.etsi.nfvo.ns.lcm.database.service.DatabaseServiceProvider; -import org.onap.so.etsi.nfvo.ns.lcm.model.InstantiateNsRequest; -import org.onap.so.etsi.nfvo.ns.lcm.model.NsInstancesnsInstanceIdinstantiateAdditionalParamsForVnf; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Component; - -/** - * @author Waqas Ikram (waqas.ikram@est.tech) - * @author Andrew Lamb (andrew.a.lamb@est.tech) - * - */ -@Component -public class InstantiateNsTask extends AbstractNetworkServiceTask { - - private static final String IS_NS_INSTANTIATION_SUCCESSFUL_PARAM_NAME = "isNsInstantiationSuccessful"; - private static final String VNFD_ID_TO_VNF_PKG_ID_MAPPING_PARAM_NAME = "vnfdIdToVnfPkgIdMapping"; - private static final Logger logger = LoggerFactory.getLogger(InstantiateNsTask.class); - private final EtsiCatalogPackageManagementServiceProvider etsiCatalogPackageManagementServiceProvider; - - @Autowired - public InstantiateNsTask(final DatabaseServiceProvider databaseServiceProvider, - final EtsiCatalogPackageManagementServiceProvider etsiCatalogPackageManagementServiceProvider) { - super(databaseServiceProvider); - this.etsiCatalogPackageManagementServiceProvider = etsiCatalogPackageManagementServiceProvider; - - } - - public void setJobStatusToStarted(final DelegateExecution execution) { - setJobStatus(execution, STARTED, "Instantiate NS workflow process started"); - } - - public void setJobStatusToFinished(final DelegateExecution execution) { - setJobStatus(execution, FINISHED, "Instantiate NS workflow process finished"); - } - - public void updateNsInstanceStatusToInstantiating(final DelegateExecution execution) { - logger.info("Executing updateNsInstanceStatusToInstantiating"); - setJobStatus(execution, IN_PROGRESS, "Updating NfvoNsInst Status to " + State.INSTANTIATING); - updateNsInstanceStatus(execution, State.INSTANTIATING); - - logger.info("Finished executing updateNsInstanceStatusToInstantiating ..."); - } - - - public void checkIfVnfInstantiationWasSuccessful(final DelegateExecution execution) { - logger.info("Executing checkIfVnfInstantiationWasSuccessful"); - - @SuppressWarnings("unchecked") - final List<CreateInstantiateRequest> requests = - (List<CreateInstantiateRequest>) execution.getVariable(VNF_CREATE_INSTANTIATE_REQUESTS); - - final String nsInstId = (String) execution.getVariable(NS_INSTANCE_ID_PARAM_NAME); - final List<NfvoNfInst> nfInstances = databaseServiceProvider.getNfvoNfInstByNsInstId(nsInstId); - - if (nfInstances == null || nfInstances.isEmpty()) { - final String message = "Found empty nf instances"; - abortOperation(execution, message); - } - - if (requests.size() != nfInstances.size()) { - final String message = "Missing nf Instance. Request triggered: " + requests.size() - + " Nf Instace reqeust found in database " + nfInstances.size(); - abortOperation(execution, message); - } - - execution.setVariable(IS_NS_INSTANTIATION_SUCCESSFUL_PARAM_NAME, true); - - nfInstances.stream().forEach(instance -> { - if (!State.INSTANTIATED.equals(instance.getStatus())) { - logger.error("VNF : {} {} instantiation failed", instance.getNfInstId(), instance.getName()); - execution.setVariable(IS_NS_INSTANTIATION_SUCCESSFUL_PARAM_NAME, false); - } - }); - - logger.info("Finished executing checkIfVnfInstantiationWasSuccessful ..."); - } - - public void updateNsInstanceStatusToInstantiated(final DelegateExecution execution) { - logger.info("Executing updateNsInstanceStatusToInstantiated"); - final String nsInstId = (String) execution.getVariable(NS_INSTANCE_ID_PARAM_NAME); - setJobStatus(execution, FINISHED, "Successfully " + State.INSTANTIATED + " NS: " + nsInstId); - - updateNsInstanceStatus(execution, State.INSTANTIATED); - logger.info("Finished executing updateNsInstanceStatusToInstantiated ..."); - } - - public void getAndParseNsdFromEtsiCatalog(final DelegateExecution execution) { - logger.info("Executing getAndParseNsdFromEtsiCatalog"); - setJobStatus(execution, IN_PROGRESS, "Retrieving and parsing NSD from ETSI Catalog Manager"); - final NfvoNsInst nfvoNsInst = getNfvoNsInst(execution); - final String nsPackageId = nfvoNsInst.getNsPackageId(); - - try { - final Optional<NetworkServiceDescriptor> optional = - etsiCatalogPackageManagementServiceProvider.getNetworkServiceDescriptor(nsPackageId); - - if (optional.isEmpty()) { - final String message = "Unable to parse NSD " + nsPackageId; - logger.error(message); - abortOperation(execution, message); - } - - final NetworkServiceDescriptor networkServiceDescriptor = optional.get(); - logger.info("Found {}", networkServiceDescriptor); - execution.setVariable(NETWORK_SERVICE_DESCRIPTOR_PARAM_NAME, networkServiceDescriptor); - - } catch (final EtsiCatalogManagerRequestFailureException failureException) { - final String message = - "Unexpected exception occured while getting nsd content using nsPackageId: " + nsPackageId; - logger.error(message, failureException); - - abortOperation(execution, message); - } - - logger.info("Finished executing getAndParseNsdFromEtsiCatalog ..."); - - } - - public void prepareCreateInstantiateRequests(final DelegateExecution execution) { - logger.info("Executing prepareCreateInstantiateRequests ..."); - setJobStatus(execution, IN_PROGRESS, "Preparing VNF CreateInstantiate requests"); - final NetworkServiceDescriptor networkServiceDescriptor = - (NetworkServiceDescriptor) execution.getVariable(NETWORK_SERVICE_DESCRIPTOR_PARAM_NAME); - final String nsInstId = (String) execution.getVariable(NS_INSTANCE_ID_PARAM_NAME); - final NfvoNsInst nfvoNsInst = getNfvoNsInst(execution, nsInstId); - - final InstantiateNsRequest instantiateNsRequest = - (InstantiateNsRequest) execution.getVariable(INSTANTIATE_NS_REQUEST_PARAM_NAME); - - final List<NsInstancesnsInstanceIdinstantiateAdditionalParamsForVnf> additionalParamsForVnfList = - instantiateNsRequest.getAdditionalParamsForVnf(); - - @SuppressWarnings("unchecked") - final Map<String, String> vnfdIdToVnfPkgIdMapping = - (Map<String, String>) execution.getVariable(VNFD_ID_TO_VNF_PKG_ID_MAPPING_PARAM_NAME); - - final List<CreateInstantiateRequest> requests = new ArrayList<>(); - - for (final VirtualNetworkFunction vnf : networkServiceDescriptor.getVnfs()) { - final List<String> vnfmInfoList = vnf.getVnfmInfoList(); - - final String vnfdId = vnf.getVnfdId(); - final String vnfPkgId = vnfdIdToVnfPkgIdMapping.get(vnfdId); - if (vnfdId == null || vnfmInfoList.isEmpty() || vnfPkgId == null) { - final String message = "Unable to find VnfdId/vnfmInfo/VnfPkgId for vnf: " + vnf; - abortOperation(execution, message); - } - - final Optional<NsInstancesnsInstanceIdinstantiateAdditionalParamsForVnf> additionalParamsForVnfOptional = - getAdditionalParamsForVnf(vnfdId, additionalParamsForVnfList); - - if (additionalParamsForVnfOptional.isEmpty()) { - final String message = "Unable to find AdditionalParamsForVnf for " + vnfdId - + " in instantiateNsRequest : " + instantiateNsRequest; - abortOperation(execution, message); - } - - final NsInstancesnsInstanceIdinstantiateAdditionalParamsForVnf additionalParamsForVnf = - additionalParamsForVnfOptional.get(); - - @SuppressWarnings("unchecked") - final Map<String, String> additionalParams = - (Map<String, String>) additionalParamsForVnf.getAdditionalParams(); - - final Optional<Tenant> optional = getTenant(additionalParams); - if (optional.isEmpty()) { - final String message = "Unable to find Tenant information for " + vnfdId + " in instantiateNsRequest : " - + instantiateNsRequest; - abortOperation(execution, message); - } - - final String vnfInstanceName = additionalParamsForVnf.getVnfInstanceName(); - final String vnfName = StringUtils.isNotBlank(vnfInstanceName) ? vnfInstanceName - : nfvoNsInst.getName() + "." + vnf.getVnfName(); - - final CreateInstantiateRequest createInstantiateRequest = - new CreateInstantiateRequest().nsInstId(nsInstId).vnfdId(vnfdId).vnfName(vnfName).vnfPkgId(vnfPkgId) - .nfType(vnfmInfoList.get(0)).tenant(optional.get()).additionalParams(additionalParams); - - logger.info("Adding request to list: {}", createInstantiateRequest); - requests.add(createInstantiateRequest); - - } - execution.setVariable(VNF_CREATE_INSTANTIATE_REQUESTS, requests); - - logger.info("Finished executing prepareCreateInstantiateRequests ..."); - } - - public void getVnfPkgIdForEachVnfdId(final DelegateExecution execution) { - logger.info("Executing getVnfPkgIdForEachVnfdId ..."); - - setJobStatus(execution, IN_PROGRESS, "Getting VnfPkgId for each VnfdId"); - - final String nsInstId = (String) execution.getVariable(NS_INSTANCE_ID_PARAM_NAME); - final NfvoNsInst nfvoNsInst = getNfvoNsInst(execution, nsInstId); - final String nsPackageId = nfvoNsInst.getNsPackageId(); - - final Map<String, String> vnfdIdToVnfPkgIdMapping = new HashMap<>(); - try { - final Optional<NsdInfo> nsdInfoOptional = - etsiCatalogPackageManagementServiceProvider.getNSPackageModel(nsPackageId); - - if (nsdInfoOptional.isEmpty()) { - final String message = "Unable to find NS package using NS package id: " + nsPackageId; - logger.error(message); - abortOperation(execution, message); - } - - final NsdInfo nsdInfo = nsdInfoOptional.get(); - for (final String vnfPkgId : nsdInfo.getVnfPkgIds()) { - final Optional<VnfPkgInfo> optional = - etsiCatalogPackageManagementServiceProvider.getVnfPkgInfo(vnfPkgId); - - if (optional.isEmpty()) { - final String message = "Unable to find VNF package using NS vnfPkgId: " + vnfPkgId; - logger.error(message); - abortOperation(execution, message); - } - final VnfPkgInfo vnfPkgInfo = optional.get(); - vnfdIdToVnfPkgIdMapping.put(vnfPkgInfo.getVnfdId(), vnfPkgId); - - } - logger.info("vnfdIdToVnfPkgIdMapping: {}", vnfdIdToVnfPkgIdMapping); - execution.setVariable(VNFD_ID_TO_VNF_PKG_ID_MAPPING_PARAM_NAME, vnfdIdToVnfPkgIdMapping); - - } catch (final EtsiCatalogManagerRequestFailureException failureException) { - final String message = - "Unexpected exception occured while getting VNF package using nsPackageId: " + nsPackageId; - logger.error(message, failureException); - - abortOperation(execution, message); - } - - logger.info("Finished executing getVnfPkgIdForEachVnfdId ..."); - - } - - public void logTimeOut(final DelegateExecution execution) { - logger.error("Vnf instantiation timedOut ..."); - final String nsInstId = (String) execution.getVariable(NS_INSTANCE_ID_PARAM_NAME); - final List<NfvoNfInst> nfInstances = databaseServiceProvider.getNfvoNfInstByNsInstId(nsInstId); - if (nfInstances != null) { - nfInstances.stream().forEach(instance -> { - logger.info("Current status {} of vnf: {}", instance.getStatus(), instance.getName()); - }); - } - } - - public void setJobStatusToError(final DelegateExecution execution) { - updateNsInstanceStatus(execution, State.FAILED); - setJobStatusToError(execution, "Instantiate NS workflow process failed"); - } - - private Optional<Tenant> getTenant(final Map<String, String> additionalParams) { - final String vimId = additionalParams.get("vim_id"); - if (vimId != null) { - final String[] splitString = vimId.split("_"); - if (splitString.length == 3) { - logger.info("Found Tenant in additionalParams: {}", additionalParams); - return Optional.of( - new Tenant().cloudOwner(splitString[0]).regionName(splitString[1]).tenantId(splitString[2])); - } - - } - logger.error("Unable to find Tenant in additionalParams: {}", additionalParams); - return Optional.empty(); - } - - private Optional<NsInstancesnsInstanceIdinstantiateAdditionalParamsForVnf> getAdditionalParamsForVnf( - final String vnfdId, - final List<NsInstancesnsInstanceIdinstantiateAdditionalParamsForVnf> additionalParamsForVnfList) { - final Optional<NsInstancesnsInstanceIdinstantiateAdditionalParamsForVnf> optional = - additionalParamsForVnfList.stream().filter(entry -> vnfdId.equals(entry.getVnfProfileId())).findFirst(); - if (optional.isPresent()) { - logger.info("Found AdditionalParamsForVnf in instantiateNsRequest using vnfdId: {}", vnfdId); - - } - return optional; - } - -} diff --git a/so-etsi-nfvo/so-etsi-nfvo-ns-lcm/so-etsi-nfvo-ns-lcm-bpmn-flows/src/main/java/org/onap/so/etsi/nfvo/ns/lcm/bpmn/flows/tasks/MonitorInstantiateSol003AdapterNodeTask.java b/so-etsi-nfvo/so-etsi-nfvo-ns-lcm/so-etsi-nfvo-ns-lcm-bpmn-flows/src/main/java/org/onap/so/etsi/nfvo/ns/lcm/bpmn/flows/tasks/MonitorInstantiateSol003AdapterNodeTask.java deleted file mode 100644 index 51fa6b9381..0000000000 --- a/so-etsi-nfvo/so-etsi-nfvo-ns-lcm/so-etsi-nfvo-ns-lcm-bpmn-flows/src/main/java/org/onap/so/etsi/nfvo/ns/lcm/bpmn/flows/tasks/MonitorInstantiateSol003AdapterNodeTask.java +++ /dev/null @@ -1,52 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * Copyright (C) 2020 Nordix Foundation. - * ================================================================================ - * 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. - * - * SPDX-License-Identifier: Apache-2.0 - * ============LICENSE_END========================================================= - */ -package org.onap.so.etsi.nfvo.ns.lcm.bpmn.flows.tasks; - -import org.onap.so.etsi.nfvo.ns.lcm.bpmn.flows.extclients.aai.AaiServiceProvider; -import org.onap.so.etsi.nfvo.ns.lcm.database.service.DatabaseServiceProvider; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Component; - -/** - * @author Waqas Ikram (waqas.ikram@est.tech) - * - */ -@Component -public class MonitorInstantiateSol003AdapterNodeTask extends MonitorSol003AdapterNodeTask { - public static final String CREATE_VNF_NODE_STATUS = "createVnfNodeStatus"; - public static final String VNF_CREATED = "Created"; - - @Autowired - public MonitorInstantiateSol003AdapterNodeTask(final DatabaseServiceProvider databaseServiceProvider, - final AaiServiceProvider aaiServiceProvider) { - super(databaseServiceProvider, aaiServiceProvider); - } - - @Override - public String getNodeStatusVariableName() { - return CREATE_VNF_NODE_STATUS; - } - - @Override - public boolean isOrchestrationStatusValid(final String orchestrationStatus) { - return VNF_CREATED.equalsIgnoreCase(orchestrationStatus); - } - -} diff --git a/so-etsi-nfvo/so-etsi-nfvo-ns-lcm/so-etsi-nfvo-ns-lcm-bpmn-flows/src/main/java/org/onap/so/etsi/nfvo/ns/lcm/bpmn/flows/tasks/MonitorSol003AdapterCreateJobTask.java b/so-etsi-nfvo/so-etsi-nfvo-ns-lcm/so-etsi-nfvo-ns-lcm-bpmn-flows/src/main/java/org/onap/so/etsi/nfvo/ns/lcm/bpmn/flows/tasks/MonitorSol003AdapterCreateJobTask.java deleted file mode 100644 index 3c91598dfb..0000000000 --- a/so-etsi-nfvo/so-etsi-nfvo-ns-lcm/so-etsi-nfvo-ns-lcm-bpmn-flows/src/main/java/org/onap/so/etsi/nfvo/ns/lcm/bpmn/flows/tasks/MonitorSol003AdapterCreateJobTask.java +++ /dev/null @@ -1,105 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * Copyright (C) 2020 Nordix Foundation. - * ================================================================================ - * 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. - * - * SPDX-License-Identifier: Apache-2.0 - * ============LICENSE_END========================================================= - */ -package org.onap.so.etsi.nfvo.ns.lcm.bpmn.flows.tasks; - -import static org.onap.so.etsi.nfvo.ns.lcm.bpmn.flows.CamundaVariableNameConstants.CREATE_VNF_RESPONSE_PARAM_NAME; -import static org.onap.so.etsi.nfvo.ns.lcm.bpmn.flows.CamundaVariableNameConstants.OPERATION_STATUS_PARAM_NAME; -import org.camunda.bpm.engine.delegate.DelegateExecution; -import org.onap.so.adapters.etsisol003adapter.lcm.v1.model.CreateVnfResponse; -import org.onap.so.adapters.etsisol003adapter.lcm.v1.model.OperationStateEnum; -import org.onap.so.etsi.nfvo.ns.lcm.bpmn.flows.extclients.vnfm.Sol003AdapterServiceProvider; -import org.onap.so.etsi.nfvo.ns.lcm.database.service.DatabaseServiceProvider; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Component; - -/** - * @author Waqas Ikram (waqas.ikram@est.tech) - * - */ -@Component -public class MonitorSol003AdapterCreateJobTask extends MonitorSol003AdapterJobTask { - - private static final Logger LOGGER = LoggerFactory.getLogger(MonitorSol003AdapterCreateJobTask.class); - - @Autowired - public MonitorSol003AdapterCreateJobTask(final Sol003AdapterServiceProvider sol003AdapterServiceProvider, - final DatabaseServiceProvider databaseServiceProvider) { - super(sol003AdapterServiceProvider, databaseServiceProvider); - } - - public void getCurrentOperationStatus(final DelegateExecution execution) { - try { - LOGGER.debug("Executing getCurrentOperationStatus ..."); - final CreateVnfResponse vnfInstantiateResponse = - (CreateVnfResponse) execution.getVariable(CREATE_VNF_RESPONSE_PARAM_NAME); - execution.setVariable(OPERATION_STATUS_PARAM_NAME, - getOperationStatus(execution, vnfInstantiateResponse.getJobId())); - LOGGER.debug("Finished executing getCurrentOperationStatus ..."); - } catch (final Exception exception) { - final String message = "Unable to invoke get current Operation status"; - LOGGER.error(message, exception); - abortOperation(execution, message); - - } - } - - /** - * Log and throw exception on timeout for job status - * - * @param execution {@link org.onap.so.bpmn.common.DelegateExecutionImpl} - */ - public void timeOutLogFailue(final DelegateExecution execution) { - final String message = "Instantiation operation time out"; - LOGGER.error(message); - abortOperation(execution, message); - } - - /** - * Check the final status of instantiation throw exception if not completed successfully - * - * @param execution {@link org.onap.so.bpmn.common.DelegateExecutionImpl} - */ - public void checkIfOperationWasSuccessful(final DelegateExecution execution) { - LOGGER.debug("Executing checkIfOperationWasSuccessful ..."); - final OperationStateEnum operationStatus = - (OperationStateEnum) execution.getVariable(OPERATION_STATUS_PARAM_NAME); - final CreateVnfResponse vnfInstantiateResponse = - (CreateVnfResponse) execution.getVariable(CREATE_VNF_RESPONSE_PARAM_NAME); - - if (operationStatus == null) { - final String message = "Unable to instantiate jobId: " - + (vnfInstantiateResponse != null ? vnfInstantiateResponse.getJobId() : "null") - + "Unable to retrieve OperationStatus"; - LOGGER.error(message); - abortOperation(execution, message); - } - if (operationStatus != OperationStateEnum.COMPLETED) { - final String message = "Unable to instantiate jobId: " - + (vnfInstantiateResponse != null ? vnfInstantiateResponse.getJobId() : "null") - + " OperationStatus: " + operationStatus; - LOGGER.error(message); - abortOperation(execution, message); - } - - LOGGER.debug("Successfully completed instatiation of job {}", vnfInstantiateResponse); - } -} diff --git a/so-etsi-nfvo/so-etsi-nfvo-ns-lcm/so-etsi-nfvo-ns-lcm-bpmn-flows/src/main/java/org/onap/so/etsi/nfvo/ns/lcm/bpmn/flows/tasks/MonitorSol003AdapterJobTask.java b/so-etsi-nfvo/so-etsi-nfvo-ns-lcm/so-etsi-nfvo-ns-lcm-bpmn-flows/src/main/java/org/onap/so/etsi/nfvo/ns/lcm/bpmn/flows/tasks/MonitorSol003AdapterJobTask.java deleted file mode 100644 index bac79dfa3e..0000000000 --- a/so-etsi-nfvo/so-etsi-nfvo-ns-lcm/so-etsi-nfvo-ns-lcm-bpmn-flows/src/main/java/org/onap/so/etsi/nfvo/ns/lcm/bpmn/flows/tasks/MonitorSol003AdapterJobTask.java +++ /dev/null @@ -1,96 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * Copyright (C) 2020 Nordix Foundation. - * ================================================================================ - * 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. - * - * SPDX-License-Identifier: Apache-2.0 - * ============LICENSE_END========================================================= - */ -package org.onap.so.etsi.nfvo.ns.lcm.bpmn.flows.tasks; - -import static org.onap.so.etsi.nfvo.ns.lcm.bpmn.flows.CamundaVariableNameConstants.OPERATION_STATUS_PARAM_NAME; -import java.util.Optional; -import org.camunda.bpm.engine.delegate.DelegateExecution; -import org.onap.so.adapters.etsisol003adapter.lcm.v1.model.OperationStateEnum; -import org.onap.so.adapters.etsisol003adapter.lcm.v1.model.OperationStatusRetrievalStatusEnum; -import org.onap.so.adapters.etsisol003adapter.lcm.v1.model.QueryJobResponse; -import org.onap.so.etsi.nfvo.ns.lcm.bpmn.flows.extclients.vnfm.Sol003AdapterServiceProvider; -import org.onap.so.etsi.nfvo.ns.lcm.database.service.DatabaseServiceProvider; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Component; -import com.google.common.collect.ImmutableSet; - -/** - * @author Waqas Ikram (waqas.ikram@est.tech) - * - */ -@Component -public class MonitorSol003AdapterJobTask extends AbstractNetworkServiceTask { - - private static final Logger LOGGER = LoggerFactory.getLogger(MonitorSol003AdapterJobTask.class); - public static final ImmutableSet<OperationStateEnum> OPERATION_FINISHED_STATES = - ImmutableSet.of(OperationStateEnum.COMPLETED, OperationStateEnum.FAILED, OperationStateEnum.ROLLED_BACK); - public static final ImmutableSet<OperationStatusRetrievalStatusEnum> OPERATION_RETRIEVAL_STATES = ImmutableSet - .of(OperationStatusRetrievalStatusEnum.STATUS_FOUND, OperationStatusRetrievalStatusEnum.WAITING_FOR_STATUS); - protected final Sol003AdapterServiceProvider sol003AdapterServiceProvider; - - @Autowired - public MonitorSol003AdapterJobTask(final Sol003AdapterServiceProvider sol003AdapterServiceProvider, - final DatabaseServiceProvider databaseServiceProvider) { - super(databaseServiceProvider); - this.sol003AdapterServiceProvider = sol003AdapterServiceProvider; - } - - public boolean hasOperationFinished(final DelegateExecution execution) { - LOGGER.debug("Executing hasOperationFinished ..."); - - final OperationStateEnum operationStatus = - (OperationStateEnum) execution.getVariable(OPERATION_STATUS_PARAM_NAME); - if (operationStatus != null) { - return OPERATION_FINISHED_STATES.contains(operationStatus); - } - LOGGER.debug("OperationStatus is not present yet... "); - LOGGER.debug("Finished executing hasOperationFinished ..."); - return false; - } - - protected OperationStateEnum getOperationStatus(final DelegateExecution execution, final String jobId) { - - final Optional<QueryJobResponse> instantiateOperationJobStatus = - sol003AdapterServiceProvider.getInstantiateOperationJobStatus(jobId); - - if (instantiateOperationJobStatus.isPresent()) { - final QueryJobResponse queryJobResponse = instantiateOperationJobStatus.get(); - - if (!OPERATION_RETRIEVAL_STATES.contains(queryJobResponse.getOperationStatusRetrievalStatus())) { - final String message = "Received invalid operation retrieval state: " - + queryJobResponse.getOperationStatusRetrievalStatus(); - LOGGER.error(message); - abortOperation(execution, message); - } - if (queryJobResponse.getOperationState() != null) { - final OperationStateEnum operationStatus = queryJobResponse.getOperationState(); - LOGGER.debug("Operation {} with {} and operation retrieval status : {}", queryJobResponse.getId(), - operationStatus, queryJobResponse.getOperationStatusRetrievalStatus()); - return queryJobResponse.getOperationState(); - } - - LOGGER.debug("Operation {} without operationStatus and operation retrieval status :{}", - queryJobResponse.getId(), queryJobResponse.getOperationStatusRetrievalStatus()); - } - return null; - } -} diff --git a/so-etsi-nfvo/so-etsi-nfvo-ns-lcm/so-etsi-nfvo-ns-lcm-bpmn-flows/src/main/java/org/onap/so/etsi/nfvo/ns/lcm/bpmn/flows/tasks/MonitorSol003AdapterNodeTask.java b/so-etsi-nfvo/so-etsi-nfvo-ns-lcm/so-etsi-nfvo-ns-lcm-bpmn-flows/src/main/java/org/onap/so/etsi/nfvo/ns/lcm/bpmn/flows/tasks/MonitorSol003AdapterNodeTask.java deleted file mode 100644 index 001c369801..0000000000 --- a/so-etsi-nfvo/so-etsi-nfvo-ns-lcm/so-etsi-nfvo-ns-lcm-bpmn-flows/src/main/java/org/onap/so/etsi/nfvo/ns/lcm/bpmn/flows/tasks/MonitorSol003AdapterNodeTask.java +++ /dev/null @@ -1,96 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * Copyright (C) 2020 Nordix Foundation. - * ================================================================================ - * 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. - * - * SPDX-License-Identifier: Apache-2.0 - * ============LICENSE_END========================================================= - */ -package org.onap.so.etsi.nfvo.ns.lcm.bpmn.flows.tasks; - -import static org.onap.so.etsi.nfvo.ns.lcm.bpmn.flows.CamundaVariableNameConstants.NF_INST_ID_PARAM_NAME; -import java.util.Optional; -import org.camunda.bpm.engine.delegate.DelegateExecution; -import org.onap.aai.domain.yang.GenericVnf; -import org.onap.so.etsi.nfvo.ns.lcm.bpmn.flows.extclients.aai.AaiServiceProvider; -import org.onap.so.etsi.nfvo.ns.lcm.database.service.DatabaseServiceProvider; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - -/** - * @author Waqas Ikram (waqas.ikram@est.tech) - * - */ -public abstract class MonitorSol003AdapterNodeTask extends AbstractNetworkServiceTask { - - private static final Logger LOGGER = LoggerFactory.getLogger(MonitorSol003AdapterNodeTask.class); - private final AaiServiceProvider aaiServiceProvider; - - protected MonitorSol003AdapterNodeTask(final DatabaseServiceProvider databaseServiceProvider, - final AaiServiceProvider aaiServiceProvider) { - super(databaseServiceProvider); - this.aaiServiceProvider = aaiServiceProvider; - } - - /** - * Check the final status of vnf in A&AI - * - * @param execution {@link org.onap.so.bpmn.common.DelegateExecutionImpl} - */ - public void getNodeStatus(final DelegateExecution execution) { - try { - LOGGER.debug("Executing getNodeStatus ..."); - final String vnfId = (String) execution.getVariable(NF_INST_ID_PARAM_NAME); - - LOGGER.debug("Query A&AI for generic VNF using vnfID: {}", vnfId); - final Optional<GenericVnf> aaiGenericVnfOptional = aaiServiceProvider.getGenericVnf(vnfId); - - if (aaiGenericVnfOptional.isEmpty()) { - abortOperation(execution, "Unable to find generic vnf in A&AI using vnfId" + vnfId); - } - final GenericVnf genericVnf = aaiGenericVnfOptional.get(); - final String orchestrationStatus = genericVnf.getOrchestrationStatus(); - LOGGER.debug("Found generic vnf with orchestration status : {}", orchestrationStatus); - - execution.setVariable(getNodeStatusVariableName(), isOrchestrationStatusValid(orchestrationStatus)); - - } catch (final Exception exception) { - LOGGER.error("Unable to get vnf from AAI", exception); - abortOperation(execution, "Unable to get vnf from AAI"); - } - } - - /** - * Get variable to store in execution context - * - * @return the variable name - */ - public abstract String getNodeStatusVariableName(); - - /** - * @param orchestrationStatus the orchestration status from A&AI - * @return true if valid - */ - public abstract boolean isOrchestrationStatusValid(final String orchestrationStatus); - - public void timeOutLogFailue(final DelegateExecution execution) { - final String message = "Node operation time out"; - LOGGER.error(message); - abortOperation(execution, message); - } - - AaiServiceProvider getAaiServiceProvider() { - return aaiServiceProvider; - } -} diff --git a/so-etsi-nfvo/so-etsi-nfvo-ns-lcm/so-etsi-nfvo-ns-lcm-bpmn-flows/src/main/java/org/onap/so/etsi/nfvo/ns/lcm/bpmn/flows/tasks/MonitorSol003AdapterTerminateJobTask.java b/so-etsi-nfvo/so-etsi-nfvo-ns-lcm/so-etsi-nfvo-ns-lcm-bpmn-flows/src/main/java/org/onap/so/etsi/nfvo/ns/lcm/bpmn/flows/tasks/MonitorSol003AdapterTerminateJobTask.java deleted file mode 100644 index d85444497d..0000000000 --- a/so-etsi-nfvo/so-etsi-nfvo-ns-lcm/so-etsi-nfvo-ns-lcm-bpmn-flows/src/main/java/org/onap/so/etsi/nfvo/ns/lcm/bpmn/flows/tasks/MonitorSol003AdapterTerminateJobTask.java +++ /dev/null @@ -1,106 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * Copyright (C) 2020 Nordix Foundation. - * ================================================================================ - * 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. - * - * SPDX-License-Identifier: Apache-2.0 - * ============LICENSE_END========================================================= - */ -package org.onap.so.etsi.nfvo.ns.lcm.bpmn.flows.tasks; - -import org.camunda.bpm.engine.delegate.DelegateExecution; -import org.onap.so.adapters.etsisol003adapter.lcm.v1.model.DeleteVnfResponse; -import org.onap.so.adapters.etsisol003adapter.lcm.v1.model.OperationStateEnum; -import org.onap.so.etsi.nfvo.ns.lcm.bpmn.flows.extclients.vnfm.Sol003AdapterServiceProvider; -import org.onap.so.etsi.nfvo.ns.lcm.database.service.DatabaseServiceProvider; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Component; -import static org.onap.so.etsi.nfvo.ns.lcm.bpmn.flows.CamundaVariableNameConstants.OPERATION_STATUS_PARAM_NAME; -import static org.onap.so.etsi.nfvo.ns.lcm.bpmn.flows.CamundaVariableNameConstants.DELETE_VNF_RESPONSE_PARAM_NAME; - -/** - * @author Waqas Ikram (waqas.ikram@est.tech) - * @author Andrew Lamb (andrew.a.lamb@est.tech) - * - */ -@Component -public class MonitorSol003AdapterTerminateJobTask extends MonitorSol003AdapterJobTask { - - private static final Logger LOGGER = LoggerFactory.getLogger(MonitorSol003AdapterTerminateJobTask.class); - - @Autowired - public MonitorSol003AdapterTerminateJobTask(final Sol003AdapterServiceProvider sol003AdapterServiceProvider, - final DatabaseServiceProvider databaseServiceProvider) { - super(sol003AdapterServiceProvider, databaseServiceProvider); - } - - public void getCurrentOperationStatus(final DelegateExecution execution) { - try { - LOGGER.debug("Executing getCurrentOperationStatus ..."); - final DeleteVnfResponse deleteVnfResponse = - (DeleteVnfResponse) execution.getVariable(DELETE_VNF_RESPONSE_PARAM_NAME); - execution.setVariable(OPERATION_STATUS_PARAM_NAME, - getOperationStatus(execution, deleteVnfResponse.getJobId())); - LOGGER.debug("Finished executing getCurrentOperationStatus ..."); - } catch (final Exception exception) { - final String message = "Unable to invoke get current Operation status"; - LOGGER.error(message, exception); - abortOperation(execution, message); - - } - } - - /** - * Log and throw exception on timeout for job status - * - * @param execution {@link org.onap.so.bpmn.common.DelegateExecutionImpl} - */ - public void timeOutLogFailure(final DelegateExecution execution) { - final String message = "Termination operation time out"; - LOGGER.error(message); - abortOperation(execution, message); - } - - /** - * Check the final status of termination throw exception if not completed successfully - * - * @param execution {@link org.onap.so.bpmn.common.DelegateExecutionImpl} - */ - public void checkIfOperationWasSuccessful(final DelegateExecution execution) { - LOGGER.debug("Executing checkIfOperationWasSuccessful ..."); - final OperationStateEnum operationStatus = - (OperationStateEnum) execution.getVariable(OPERATION_STATUS_PARAM_NAME); - final DeleteVnfResponse deleteVnfResponse = - (DeleteVnfResponse) execution.getVariable(DELETE_VNF_RESPONSE_PARAM_NAME); - - if (operationStatus == null) { - final String message = - "Unable to terminate, jobId: " + (deleteVnfResponse != null ? deleteVnfResponse.getJobId() : "null") - + "Unable to retrieve OperationStatus"; - LOGGER.error(message); - abortOperation(execution, message); - } - if (operationStatus != OperationStateEnum.COMPLETED) { - final String message = - "Unable to terminate, jobId: " + (deleteVnfResponse != null ? deleteVnfResponse.getJobId() : "null") - + " OperationStatus: " + operationStatus; - LOGGER.error(message); - abortOperation(execution, message); - } - - LOGGER.debug("Successfully completed termination of job {}", deleteVnfResponse); - } -} diff --git a/so-etsi-nfvo/so-etsi-nfvo-ns-lcm/so-etsi-nfvo-ns-lcm-bpmn-flows/src/main/java/org/onap/so/etsi/nfvo/ns/lcm/bpmn/flows/tasks/MonitorSol003AdapterTerminateNodeTask.java b/so-etsi-nfvo/so-etsi-nfvo-ns-lcm/so-etsi-nfvo-ns-lcm-bpmn-flows/src/main/java/org/onap/so/etsi/nfvo/ns/lcm/bpmn/flows/tasks/MonitorSol003AdapterTerminateNodeTask.java deleted file mode 100644 index f38bdba71b..0000000000 --- a/so-etsi-nfvo/so-etsi-nfvo-ns-lcm/so-etsi-nfvo-ns-lcm-bpmn-flows/src/main/java/org/onap/so/etsi/nfvo/ns/lcm/bpmn/flows/tasks/MonitorSol003AdapterTerminateNodeTask.java +++ /dev/null @@ -1,55 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * Copyright (C) 2020 Nordix Foundation. - * ================================================================================ - * 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. - * - * SPDX-License-Identifier: Apache-2.0 - * ============LICENSE_END========================================================= - */ -package org.onap.so.etsi.nfvo.ns.lcm.bpmn.flows.tasks; - -import org.onap.so.etsi.nfvo.ns.lcm.bpmn.flows.extclients.aai.AaiServiceProvider; -import org.onap.so.etsi.nfvo.ns.lcm.database.service.DatabaseServiceProvider; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Component; - - -/** - * @author Waqas Ikram (waqas.ikram@est.tech) - * @author Andrew Lamb (andrew.a.lamb@est.tech) - * - */ -@Component -public class MonitorSol003AdapterTerminateNodeTask extends MonitorSol003AdapterNodeTask { - - public static final String DELETE_VNF_NODE_STATUS = "deleteVnfNodeStatus"; - public static final String VNF_ASSIGNED = "Assigned"; - - @Autowired - public MonitorSol003AdapterTerminateNodeTask(final DatabaseServiceProvider databaseServiceProvider, - final AaiServiceProvider aaiServiceProvider) { - super(databaseServiceProvider, aaiServiceProvider); - } - - @Override - public String getNodeStatusVariableName() { - return DELETE_VNF_NODE_STATUS; - } - - @Override - public boolean isOrchestrationStatusValid(final String orchestrationStatus) { - return VNF_ASSIGNED.equalsIgnoreCase(orchestrationStatus); - } - -} diff --git a/so-etsi-nfvo/so-etsi-nfvo-ns-lcm/so-etsi-nfvo-ns-lcm-bpmn-flows/src/main/java/org/onap/so/etsi/nfvo/ns/lcm/bpmn/flows/tasks/TerminateNsTask.java b/so-etsi-nfvo/so-etsi-nfvo-ns-lcm/so-etsi-nfvo-ns-lcm-bpmn-flows/src/main/java/org/onap/so/etsi/nfvo/ns/lcm/bpmn/flows/tasks/TerminateNsTask.java deleted file mode 100644 index c0d1df8c50..0000000000 --- a/so-etsi-nfvo/so-etsi-nfvo-ns-lcm/so-etsi-nfvo-ns-lcm-bpmn-flows/src/main/java/org/onap/so/etsi/nfvo/ns/lcm/bpmn/flows/tasks/TerminateNsTask.java +++ /dev/null @@ -1,134 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * Copyright (C) 2020 Nordix Foundation. - * ================================================================================ - * 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. - * - * SPDX-License-Identifier: Apache-2.0 - * ============LICENSE_END========================================================= - */ -package org.onap.so.etsi.nfvo.ns.lcm.bpmn.flows.tasks; - -import org.camunda.bpm.engine.delegate.DelegateExecution; -import org.onap.so.etsi.nfvo.ns.lcm.bpmn.flows.CamundaVariableNameConstants; -import org.onap.so.etsi.nfvo.ns.lcm.database.beans.NfvoNfInst; -import org.onap.so.etsi.nfvo.ns.lcm.database.beans.State; -import org.onap.so.etsi.nfvo.ns.lcm.database.service.DatabaseServiceProvider; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Component; -import java.util.ArrayList; -import java.util.List; -import static org.onap.so.etsi.nfvo.ns.lcm.bpmn.flows.CamundaVariableNameConstants.NS_INSTANCE_ID_PARAM_NAME; -import static org.onap.so.etsi.nfvo.ns.lcm.database.beans.JobStatusEnum.FINISHED; -import static org.onap.so.etsi.nfvo.ns.lcm.database.beans.JobStatusEnum.IN_PROGRESS; -import static org.onap.so.etsi.nfvo.ns.lcm.database.beans.JobStatusEnum.STARTED; - -/** - * @author Andrew Lamb (andrew.a.lamb@est.tech) - * - */ -@Component -public class TerminateNsTask extends AbstractNetworkServiceTask { - - private static final String IS_NS_TERMINATION_SUCCESSFUL_PARAM_NAME = "isNsTerminationSuccessful"; - private static final Logger logger = LoggerFactory.getLogger(TerminateNsTask.class); - - @Autowired - public TerminateNsTask(final DatabaseServiceProvider databaseServiceProvider) { - super(databaseServiceProvider); - } - - public void setJobStatusToStarted(final DelegateExecution execution) { - setJobStatus(execution, STARTED, "Terminate NS workflow process started"); - } - - public void setJobStatusToFinished(final DelegateExecution execution) { - setJobStatus(execution, FINISHED, "Terminate NS workflow process finished"); - } - - public void setJobStatusToError(final DelegateExecution execution) { - updateNsInstanceStatus(execution, State.FAILED); - setJobStatusToError(execution, "Terminate NS workflow process failed"); - } - - public void updateNsInstanceStatusToTerminating(final DelegateExecution execution) { - logger.info("Executing updateNsInstanceStatusToTerminating"); - setJobStatus(execution, IN_PROGRESS, "Updating NfvoNsInst Status to " + State.TERMINATING); - updateNsInstanceStatus(execution, State.TERMINATING); - logger.info("Finished executing updateNsInstanceStatusToTerminating ..."); - } - - public void updateNsInstanceStatusToNotInstantiated(final DelegateExecution execution) { - logger.info("Executing updateNsInstanceStatusToNotInstantiated"); - setJobStatus(execution, IN_PROGRESS, "Updating NfvoNsInst Status to " + State.NOT_INSTANTIATED); - updateNsInstanceStatus(execution, State.NOT_INSTANTIATED); - logger.info("Finished executing updateNsInstanceStatusToNotInstantiated ..."); - } - - public void getVnfIdsInNs(final DelegateExecution execution) { - logger.info("Executing getVnfIdsInNs ..."); - setJobStatus(execution, IN_PROGRESS, "Getting Each VnfId In Ns"); - final List<String> nfvoNfInstIds = getNfvoNfInstIds(execution); - execution.setVariable(CamundaVariableNameConstants.NFVO_NF_INST_IDS_PARAM_NAME, nfvoNfInstIds); - logger.info("Finished executing getVnfIdsInNs ..."); - } - - public void checkIfVnfTerminationWasSuccessful(final DelegateExecution execution) { - logger.info("Executing checkIfVnfTerminationWasSuccessful"); - - final String nsInstId = (String) execution.getVariable(NS_INSTANCE_ID_PARAM_NAME); - final List<NfvoNfInst> nfInstances = databaseServiceProvider.getNfvoNfInstByNsInstId(nsInstId); - - if ((nfInstances != null) && !(nfInstances.isEmpty())) { - final String message = "Found NF Instances"; - nfInstances.stream().forEach(instance -> { - logger.error("VNF : {} {} termination failed", instance.getNfInstId(), instance.getName()); - execution.setVariable(IS_NS_TERMINATION_SUCCESSFUL_PARAM_NAME, false); - }); - abortOperation(execution, message); - } - - execution.setVariable(IS_NS_TERMINATION_SUCCESSFUL_PARAM_NAME, true); - logger.info("Finished executing checkIfVnfTerminationWasSuccessful"); - } - - public void logTimeOut(final DelegateExecution execution) { - logger.error("Vnf termination timedOut ..."); - final String nsInstId = (String) execution.getVariable(NS_INSTANCE_ID_PARAM_NAME); - final List<NfvoNfInst> nfInstances = databaseServiceProvider.getNfvoNfInstByNsInstId(nsInstId); - if (nfInstances != null) { - nfInstances.stream().forEach( - instance -> logger.info("Current status {} of vnf: {}", instance.getStatus(), instance.getName())); - } - } - - private List<String> getNfvoNfInstIds(final DelegateExecution execution) { - final String nsInstId = (String) execution.getVariable(NS_INSTANCE_ID_PARAM_NAME); - logger.info("Getting NfvoNfInstList using nsInstId: {}", nsInstId); - final List<NfvoNfInst> nfvoNfInstList = databaseServiceProvider.getNfvoNfInstByNsInstId(nsInstId); - - if (nfvoNfInstList == null || nfvoNfInstList.isEmpty()) { - final String message = "Unable to find NF Instances in database using id: " + nsInstId; - abortOperation(execution, message); - } - - final List<String> vnfIdsList = new ArrayList<>(); - - nfvoNfInstList.stream().forEach(nfvoNfInst -> vnfIdsList.add(nfvoNfInst.getNfInstId())); - - return vnfIdsList; - } - -} diff --git a/so-etsi-nfvo/so-etsi-nfvo-ns-lcm/so-etsi-nfvo-ns-lcm-bpmn-flows/src/main/java/org/onap/so/etsi/nfvo/ns/lcm/bpmn/flows/tasks/TerminateVnfTask.java b/so-etsi-nfvo/so-etsi-nfvo-ns-lcm/so-etsi-nfvo-ns-lcm-bpmn-flows/src/main/java/org/onap/so/etsi/nfvo/ns/lcm/bpmn/flows/tasks/TerminateVnfTask.java deleted file mode 100644 index f3e7eea212..0000000000 --- a/so-etsi-nfvo/so-etsi-nfvo-ns-lcm/so-etsi-nfvo-ns-lcm-bpmn-flows/src/main/java/org/onap/so/etsi/nfvo/ns/lcm/bpmn/flows/tasks/TerminateVnfTask.java +++ /dev/null @@ -1,180 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * Copyright (C) 2020 Nordix Foundation. - * ================================================================================ - * 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. - * - * SPDX-License-Identifier: Apache-2.0 - * ============LICENSE_END========================================================= - */ -package org.onap.so.etsi.nfvo.ns.lcm.bpmn.flows.tasks; - -import static org.onap.so.etsi.nfvo.ns.lcm.bpmn.flows.CamundaVariableNameConstants.DELETE_VNF_RESPONSE_PARAM_NAME; -import static org.onap.so.etsi.nfvo.ns.lcm.bpmn.flows.CamundaVariableNameConstants.NF_INST_ID_PARAM_NAME; -import static org.onap.so.etsi.nfvo.ns.lcm.bpmn.flows.CamundaVariableNameConstants.TERMINATE_VNF_VNFID_PARAM_NAME; -import static org.onap.so.etsi.nfvo.ns.lcm.database.beans.JobStatusEnum.ERROR; -import static org.onap.so.etsi.nfvo.ns.lcm.database.beans.JobStatusEnum.FINISHED; -import static org.onap.so.etsi.nfvo.ns.lcm.database.beans.JobStatusEnum.IN_PROGRESS; -import java.util.Optional; -import org.camunda.bpm.engine.delegate.DelegateExecution; -import org.onap.so.adapters.etsisol003adapter.lcm.v1.model.DeleteVnfResponse; -import org.onap.so.etsi.nfvo.ns.lcm.bpmn.flows.extclients.aai.AaiServiceProvider; -import org.onap.so.etsi.nfvo.ns.lcm.bpmn.flows.extclients.vnfm.Sol003AdapterServiceProvider; -import org.onap.so.etsi.nfvo.ns.lcm.database.beans.JobStatusEnum; -import org.onap.so.etsi.nfvo.ns.lcm.database.beans.State; -import org.onap.so.etsi.nfvo.ns.lcm.database.service.DatabaseServiceProvider; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Component; - -/** - * @author Andrew Lamb (andrew.a.lamb@est.tech) - */ -@Component -public class TerminateVnfTask extends AbstractNetworkServiceTask { - private static final Logger logger = LoggerFactory.getLogger(TerminateVnfTask.class); - private final AaiServiceProvider aaiServiceProvider; - private final Sol003AdapterServiceProvider sol003AdapterServiceProvider; - - @Autowired - public TerminateVnfTask(final DatabaseServiceProvider databaseServiceProvider, - final AaiServiceProvider aaiServiceProvider, - final Sol003AdapterServiceProvider sol003AdapterServiceProvider) { - super(databaseServiceProvider); - this.aaiServiceProvider = aaiServiceProvider; - this.sol003AdapterServiceProvider = sol003AdapterServiceProvider; - } - - public void checkIfNfInstanceExistsInDb(final DelegateExecution execution) { - logger.info("Executing checkIfNfInstanceInDb"); - final String vnfId = (String) execution.getVariable(TERMINATE_VNF_VNFID_PARAM_NAME); - logger.info("vnfId: {}", vnfId); - execution.setVariable(NF_INST_ID_PARAM_NAME, vnfId); - - addJobStatus(execution, JobStatusEnum.IN_PROGRESS, - "Checking if VNF Instance with id: " + vnfId + " exists in database."); - if (!databaseServiceProvider.isNfInstExists(vnfId)) { - abortOperation(execution, - "VNF instance with id: " + vnfId + " does not exist in database, so will not be terminated."); - } - logger.info("Finished executing checkIfNfInstanceInDb ..."); - - } - - public void invokeTerminateRequest(final DelegateExecution execution) { - logger.info("Executing invokeTerminateRequest"); - final String vnfId = (String) execution.getVariable(TERMINATE_VNF_VNFID_PARAM_NAME); - - try { - addJobStatus(execution, IN_PROGRESS, "Invoking SOL003 adapter for terminating VNF with vnfId: " + vnfId); - - final Optional<DeleteVnfResponse> optional = sol003AdapterServiceProvider.invokeTerminationRequest(vnfId); - - if (optional.isEmpty()) { - final String errorMessage = "Unexpected error while processing terminate request for vnfId: " + vnfId; - logger.error(errorMessage); - abortOperation(execution, errorMessage); - } - - final DeleteVnfResponse vnfResponse = optional.get(); - - logger.info("Vnf delete response: {}", vnfResponse); - execution.setVariable(DELETE_VNF_RESPONSE_PARAM_NAME, vnfResponse); - addJobStatus(execution, IN_PROGRESS, "Successfully invoked SOL003 adapter terminate VNF with vnfId: " - + vnfId + " DeleteVnfResponse Job Id: " + vnfResponse.getJobId()); - logger.debug("Finished executing invokeTerminateRequest ..."); - } catch (final Exception exception) { - final String message = "Unable to invoke terminate request for vnfId: " + vnfId; - logger.error(message, exception); - abortOperation(execution, message); - } - - } - - public void deleteGenericVnfFromAai(final DelegateExecution execution) { - logger.info("Executing deleteGenericVnfFromAai"); - final String vnfId = (String) execution.getVariable(TERMINATE_VNF_VNFID_PARAM_NAME); - - try { - addJobStatus(execution, IN_PROGRESS, "Deleting GenericVnf record from AAI for vnfId: " + vnfId); - aaiServiceProvider.deleteGenericVnf(vnfId); - - } catch (final Exception exception) { - final String message = "Unable to Delete GenericVnf from AAI for vnfId: " + vnfId; - logger.error(message, exception); - abortOperation(execution, message); - } - - logger.info("Finished executing deleteGenericVnfFromAai ..."); - } - - public void deleteNfInstanceFromDb(final DelegateExecution execution) { - logger.info("Executing deleteNfInstanceFromDb"); - final String vnfId = (String) execution.getVariable(TERMINATE_VNF_VNFID_PARAM_NAME); - - addJobStatus(execution, IN_PROGRESS, "Deleting NF Instance record from Database for vnfId: " + vnfId); - databaseServiceProvider.deleteNfvoNfInst(vnfId); - - addJobStatus(execution, FINISHED, "Successfully finished terminating VNF with vnfId: " + vnfId); - logger.info("Finished executing deleteNfInstanceFromDb ..."); - } - - public void updateNfInstanceStatusToTerminating(final DelegateExecution execution) { - logger.info("Executing updateNfInstanceStatusToTerminating"); - - updateNfInstanceStatus(execution, State.TERMINATING); - final String vnfId = (String) execution.getVariable(TERMINATE_VNF_VNFID_PARAM_NAME); - addJobStatus(execution, IN_PROGRESS, - "Terminating VNF with vnfId: " + vnfId + " will set status to " + State.TERMINATING); - - logger.info("Finished executing updateNfInstanceStatusToTerminating ..."); - - } - - public void updateNfInstanceStatusToNotInstantiated(final DelegateExecution execution) { - logger.info("Executing updateNfInstanceStatusToNotInstantiated"); - - updateNfInstanceStatus(execution, State.NOT_INSTANTIATED); - final String vnfId = (String) execution.getVariable(TERMINATE_VNF_VNFID_PARAM_NAME); - addJobStatus(execution, IN_PROGRESS, - "Successfully terminated VNF with vnfId: " + vnfId + " will set status to " + State.NOT_INSTANTIATED); - - logger.info("Finished executing updateNfInstanceStatusToInstantiated ..."); - - } - - public void updateNfInstanceStatusToFailed(final DelegateExecution execution) { - logger.info("Executing updateNfInstanceStatusToFailed"); - - updateNfInstanceStatus(execution, State.FAILED); - final String vnfId = (String) execution.getVariable(TERMINATE_VNF_VNFID_PARAM_NAME); - addJobStatus(execution, ERROR, - "Failed to terminate VNF with vnfId: " + vnfId + " will set status to " + State.FAILED); - - logger.info("Finished executing updateNfInstanceStatusToFailed ..."); - - } - - private void updateNfInstanceStatus(final DelegateExecution execution, final State vnfStatus) { - final String vnfId = (String) execution.getVariable(TERMINATE_VNF_VNFID_PARAM_NAME); - - final boolean isSuccessful = databaseServiceProvider.updateNfInstState(vnfId, vnfStatus); - if (!isSuccessful) { - final String message = "Unable to update NfvoNfInst " + vnfId + " status to" + vnfStatus + " in database"; - logger.error(message); - abortOperation(execution, message); - } - } - -} diff --git a/so-etsi-nfvo/so-etsi-nfvo-ns-lcm/so-etsi-nfvo-ns-lcm-bpmn-flows/src/main/java/org/onap/so/etsi/nfvo/ns/lcm/bpmn/flows/utils/LocalDateTimeTypeAdapter.java b/so-etsi-nfvo/so-etsi-nfvo-ns-lcm/so-etsi-nfvo-ns-lcm-bpmn-flows/src/main/java/org/onap/so/etsi/nfvo/ns/lcm/bpmn/flows/utils/LocalDateTimeTypeAdapter.java deleted file mode 100644 index 9f21d2b449..0000000000 --- a/so-etsi-nfvo/so-etsi-nfvo-ns-lcm/so-etsi-nfvo-ns-lcm-bpmn-flows/src/main/java/org/onap/so/etsi/nfvo/ns/lcm/bpmn/flows/utils/LocalDateTimeTypeAdapter.java +++ /dev/null @@ -1,59 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * Copyright (C) 2020 Nordix Foundation. - * ================================================================================ - * 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. - * - * SPDX-License-Identifier: Apache-2.0 - * ============LICENSE_END========================================================= - */ -package org.onap.so.etsi.nfvo.ns.lcm.bpmn.flows.utils; - -import java.io.IOException; -import java.time.LocalDateTime; -import java.time.format.DateTimeFormatter; -import com.google.gson.TypeAdapter; -import com.google.gson.stream.JsonReader; -import com.google.gson.stream.JsonToken; -import com.google.gson.stream.JsonWriter; - -/** - * @author Waqas Ikram (waqas.ikram@est.tech) - * - */ -public class LocalDateTimeTypeAdapter extends TypeAdapter<LocalDateTime> { - - private static final DateTimeFormatter FORMATTER = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"); - - @Override - public void write(final JsonWriter out, final LocalDateTime localDateTime) throws IOException { - if (localDateTime == null) { - out.nullValue(); - } else { - out.value(FORMATTER.format(localDateTime)); - } - } - - @Override - public LocalDateTime read(final JsonReader in) throws IOException { - if (JsonToken.NULL == in.peek()) { - in.nextNull(); - return null; - - } - final String dateTime = in.nextString(); - return LocalDateTime.parse(dateTime, FORMATTER); - - } - -} diff --git a/so-etsi-nfvo/so-etsi-nfvo-ns-lcm/so-etsi-nfvo-ns-lcm-bpmn-flows/src/main/resources/CreateInstantiateVnf.bpmn b/so-etsi-nfvo/so-etsi-nfvo-ns-lcm/so-etsi-nfvo-ns-lcm-bpmn-flows/src/main/resources/CreateInstantiateVnf.bpmn deleted file mode 100644 index 025faa4128..0000000000 --- a/so-etsi-nfvo/so-etsi-nfvo-ns-lcm/so-etsi-nfvo-ns-lcm-bpmn-flows/src/main/resources/CreateInstantiateVnf.bpmn +++ /dev/null @@ -1,159 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<bpmn:definitions xmlns:bpmn="http://www.omg.org/spec/BPMN/20100524/MODEL" xmlns:bpmndi="http://www.omg.org/spec/BPMN/20100524/DI" xmlns:dc="http://www.omg.org/spec/DD/20100524/DC" xmlns:camunda="http://camunda.org/schema/1.0/bpmn" xmlns:di="http://www.omg.org/spec/DD/20100524/DI" id="Definitions_1uf6nd9" targetNamespace="http://bpmn.io/schema/bpmn" exporter="Camunda Modeler" exporterVersion="4.0.0"> - <bpmn:process id="CreateInstantiateVnf" name="CreateInstantiateVnf" isExecutable="true"> - <bpmn:startEvent id="StartEvent_1"> - <bpmn:outgoing>Flow_02bjz2v</bpmn:outgoing> - </bpmn:startEvent> - <bpmn:serviceTask id="Activity_19rmtjr" name="Create NF Instance (VNF) record in DB" camunda:expression="${CreateInstantiateVnfTask.createNfInstanceInDb(execution)}"> - <bpmn:incoming>Flow_123uagz</bpmn:incoming> - <bpmn:outgoing>Flow_03p6ifi</bpmn:outgoing> - </bpmn:serviceTask> - <bpmn:sequenceFlow id="Flow_02bjz2v" sourceRef="StartEvent_1" targetRef="Activity_1cluqgp" /> - <bpmn:endEvent id="Event_14qdixj"> - <bpmn:incoming>Flow_0srinh7</bpmn:incoming> - </bpmn:endEvent> - <bpmn:sequenceFlow id="Flow_03p6ifi" sourceRef="Activity_19rmtjr" targetRef="Activity_0rto3n3" /> - <bpmn:serviceTask id="Activity_0rto3n3" name="Create Generic VNF and Connect to Service Instance in AAI" camunda:expression="${CreateInstantiateVnfTask.createGenericVnfInAai(execution)}"> - <bpmn:incoming>Flow_03p6ifi</bpmn:incoming> - <bpmn:outgoing>Flow_1c3kc4e</bpmn:outgoing> - </bpmn:serviceTask> - <bpmn:sequenceFlow id="Flow_1c3kc4e" sourceRef="Activity_0rto3n3" targetRef="ServiceTask_0iry5yw" /> - <bpmn:serviceTask id="Activity_1cluqgp" name="Check If NF Instance (VNF) exists in DB" camunda:expression="${CreateInstantiateVnfTask.checkIfNfInstanceExistsInDb(execution)}"> - <bpmn:incoming>Flow_02bjz2v</bpmn:incoming> - <bpmn:outgoing>Flow_123uagz</bpmn:outgoing> - </bpmn:serviceTask> - <bpmn:sequenceFlow id="Flow_123uagz" sourceRef="Activity_1cluqgp" targetRef="Activity_19rmtjr" /> - <bpmn:serviceTask id="ServiceTask_0iry5yw" name=" Invoke VNFM Adaptor " camunda:asyncAfter="true" camunda:expression="${CreateInstantiateVnfTask.invokeCreateInstantiationRequest(execution)}"> - <bpmn:incoming>Flow_1c3kc4e</bpmn:incoming> - <bpmn:outgoing>SequenceFlow_0xzptc2</bpmn:outgoing> - </bpmn:serviceTask> - <bpmn:callActivity id="CallActivity_1yilxx3" name="Monitor Sol003 adapter Instantiation Job" calledElement="MonitorSol003AdapterCreateJob"> - <bpmn:extensionElements> - <camunda:in source="createVnfResponse" target="createVnfResponse" /> - <camunda:in source="jobId" target="jobId" /> - </bpmn:extensionElements> - <bpmn:incoming>SequenceFlow_0xzptc2</bpmn:incoming> - <bpmn:outgoing>SequenceFlow_053tvct</bpmn:outgoing> - </bpmn:callActivity> - <bpmn:callActivity id="CallActivity_0p84lpt" name="Monitor Sol003 adapter Create Node Status" calledElement="MonitorSol003AdapterCreateNodeStatus"> - <bpmn:extensionElements> - <camunda:in source="NF_INST_ID" target="NF_INST_ID" /> - <camunda:in source="createVnfResponse" target="createVnfResponse" /> - </bpmn:extensionElements> - <bpmn:incoming>SequenceFlow_053tvct</bpmn:incoming> - <bpmn:outgoing>SequenceFlow_0h7yluk</bpmn:outgoing> - </bpmn:callActivity> - <bpmn:sequenceFlow id="SequenceFlow_0xzptc2" sourceRef="ServiceTask_0iry5yw" targetRef="CallActivity_1yilxx3" /> - <bpmn:sequenceFlow id="SequenceFlow_053tvct" sourceRef="CallActivity_1yilxx3" targetRef="CallActivity_0p84lpt" /> - <bpmn:sequenceFlow id="SequenceFlow_0h7yluk" sourceRef="CallActivity_0p84lpt" targetRef="Activity_0g3dip7" /> - <bpmn:serviceTask id="Activity_0g3dip7" name="Update NF Instance (VNF) Status to INSTANTIATED" camunda:expression="${CreateInstantiateVnfTask.updateNfInstanceStatusToInstantiated(execution)}"> - <bpmn:incoming>SequenceFlow_0h7yluk</bpmn:incoming> - <bpmn:outgoing>Flow_0srinh7</bpmn:outgoing> - </bpmn:serviceTask> - <bpmn:sequenceFlow id="Flow_0srinh7" sourceRef="Activity_0g3dip7" targetRef="Event_14qdixj" /> - <bpmn:subProcess id="Activity_0qtgdm9" name="Error Handling" triggeredByEvent="true"> - <bpmn:startEvent id="Event_08zcwc2" name="error"> - <bpmn:outgoing>Flow_06q1m6i</bpmn:outgoing> - <bpmn:errorEventDefinition id="ErrorEventDefinition_1ppvn77" /> - </bpmn:startEvent> - <bpmn:endEvent id="Event_1wkm29u" name="end"> - <bpmn:incoming>Flow_0anjylz</bpmn:incoming> - </bpmn:endEvent> - <bpmn:serviceTask id="Activity_0ltxcii" name="Update NF Instance (VNF) Status to FAILED" camunda:asyncBefore="true" camunda:expression="${CreateInstantiateVnfTask.updateNfInstanceStatusToFailed(execution)}"> - <bpmn:incoming>Flow_06q1m6i</bpmn:incoming> - <bpmn:outgoing>Flow_0anjylz</bpmn:outgoing> - </bpmn:serviceTask> - <bpmn:sequenceFlow id="Flow_06q1m6i" sourceRef="Event_08zcwc2" targetRef="Activity_0ltxcii" /> - <bpmn:sequenceFlow id="Flow_0anjylz" sourceRef="Activity_0ltxcii" targetRef="Event_1wkm29u" /> - </bpmn:subProcess> - </bpmn:process> - <bpmndi:BPMNDiagram id="BPMNDiagram_1"> - <bpmndi:BPMNPlane id="BPMNPlane_1" bpmnElement="CreateInstantiateVnf"> - <bpmndi:BPMNEdge id="SequenceFlow_0h7yluk_di" bpmnElement="SequenceFlow_0h7yluk"> - <di:waypoint x="1030" y="117" /> - <di:waypoint x="1080" y="117" /> - </bpmndi:BPMNEdge> - <bpmndi:BPMNEdge id="SequenceFlow_053tvct_di" bpmnElement="SequenceFlow_053tvct"> - <di:waypoint x="880" y="117" /> - <di:waypoint x="930" y="117" /> - </bpmndi:BPMNEdge> - <bpmndi:BPMNEdge id="SequenceFlow_0xzptc2_di" bpmnElement="SequenceFlow_0xzptc2"> - <di:waypoint x="740" y="117" /> - <di:waypoint x="780" y="117" /> - </bpmndi:BPMNEdge> - <bpmndi:BPMNEdge id="Flow_123uagz_di" bpmnElement="Flow_123uagz"> - <di:waypoint x="350" y="117" /> - <di:waypoint x="380" y="117" /> - </bpmndi:BPMNEdge> - <bpmndi:BPMNEdge id="Flow_1c3kc4e_di" bpmnElement="Flow_1c3kc4e"> - <di:waypoint x="610" y="117" /> - <di:waypoint x="640" y="117" /> - </bpmndi:BPMNEdge> - <bpmndi:BPMNEdge id="Flow_03p6ifi_di" bpmnElement="Flow_03p6ifi"> - <di:waypoint x="480" y="117" /> - <di:waypoint x="510" y="117" /> - </bpmndi:BPMNEdge> - <bpmndi:BPMNEdge id="Flow_02bjz2v_di" bpmnElement="Flow_02bjz2v"> - <di:waypoint x="215" y="117" /> - <di:waypoint x="250" y="117" /> - </bpmndi:BPMNEdge> - <bpmndi:BPMNEdge id="Flow_0srinh7_di" bpmnElement="Flow_0srinh7"> - <di:waypoint x="1180" y="117" /> - <di:waypoint x="1232" y="117" /> - </bpmndi:BPMNEdge> - <bpmndi:BPMNShape id="_BPMNShape_StartEvent_2" bpmnElement="StartEvent_1"> - <dc:Bounds x="179" y="99" width="36" height="36" /> - </bpmndi:BPMNShape> - <bpmndi:BPMNShape id="Activity_19rmtjr_di" bpmnElement="Activity_19rmtjr"> - <dc:Bounds x="380" y="77" width="100" height="80" /> - </bpmndi:BPMNShape> - <bpmndi:BPMNShape id="Activity_0rto3n3_di" bpmnElement="Activity_0rto3n3"> - <dc:Bounds x="510" y="77" width="100" height="80" /> - </bpmndi:BPMNShape> - <bpmndi:BPMNShape id="Activity_1cluqgp_di" bpmnElement="Activity_1cluqgp"> - <dc:Bounds x="250" y="77" width="100" height="80" /> - </bpmndi:BPMNShape> - <bpmndi:BPMNShape id="ServiceTask_0iry5yw_di" bpmnElement="ServiceTask_0iry5yw"> - <dc:Bounds x="640" y="77" width="100" height="80" /> - </bpmndi:BPMNShape> - <bpmndi:BPMNShape id="CallActivity_1yilxx3_di" bpmnElement="CallActivity_1yilxx3"> - <dc:Bounds x="780" y="77" width="100" height="80" /> - </bpmndi:BPMNShape> - <bpmndi:BPMNShape id="CallActivity_0p84lpt_di" bpmnElement="CallActivity_0p84lpt"> - <dc:Bounds x="930" y="77" width="100" height="80" /> - </bpmndi:BPMNShape> - <bpmndi:BPMNShape id="Event_14qdixj_di" bpmnElement="Event_14qdixj"> - <dc:Bounds x="1232" y="99" width="36" height="36" /> - </bpmndi:BPMNShape> - <bpmndi:BPMNShape id="Activity_0g3dip7_di" bpmnElement="Activity_0g3dip7"> - <dc:Bounds x="1080" y="77" width="100" height="80" /> - </bpmndi:BPMNShape> - <bpmndi:BPMNShape id="Activity_0qtgdm9_di" bpmnElement="Activity_0qtgdm9" isExpanded="true"> - <dc:Bounds x="430" y="270" width="438" height="130" /> - </bpmndi:BPMNShape> - <bpmndi:BPMNEdge id="Flow_06q1m6i_di" bpmnElement="Flow_06q1m6i"> - <di:waypoint x="488" y="333" /> - <di:waypoint x="580" y="333" /> - </bpmndi:BPMNEdge> - <bpmndi:BPMNEdge id="Flow_0anjylz_di" bpmnElement="Flow_0anjylz"> - <di:waypoint x="680" y="333" /> - <di:waypoint x="812" y="333" /> - </bpmndi:BPMNEdge> - <bpmndi:BPMNShape id="Event_08zcwc2_di" bpmnElement="Event_08zcwc2"> - <dc:Bounds x="452" y="315" width="36" height="36" /> - <bpmndi:BPMNLabel> - <dc:Bounds x="458" y="358" width="24" height="14" /> - </bpmndi:BPMNLabel> - </bpmndi:BPMNShape> - <bpmndi:BPMNShape id="Event_1wkm29u_di" bpmnElement="Event_1wkm29u"> - <dc:Bounds x="812" y="315" width="36" height="36" /> - <bpmndi:BPMNLabel> - <dc:Bounds x="822" y="357" width="19" height="14" /> - </bpmndi:BPMNLabel> - </bpmndi:BPMNShape> - <bpmndi:BPMNShape id="Activity_0ltxcii_di" bpmnElement="Activity_0ltxcii"> - <dc:Bounds x="580" y="293" width="100" height="80" /> - </bpmndi:BPMNShape> - </bpmndi:BPMNPlane> - </bpmndi:BPMNDiagram> -</bpmn:definitions> diff --git a/so-etsi-nfvo/so-etsi-nfvo-ns-lcm/so-etsi-nfvo-ns-lcm-bpmn-flows/src/main/resources/CreateNs.bpmn b/so-etsi-nfvo/so-etsi-nfvo-ns-lcm/so-etsi-nfvo-ns-lcm-bpmn-flows/src/main/resources/CreateNs.bpmn deleted file mode 100644 index 4c24f91cf9..0000000000 --- a/so-etsi-nfvo/so-etsi-nfvo-ns-lcm/so-etsi-nfvo-ns-lcm-bpmn-flows/src/main/resources/CreateNs.bpmn +++ /dev/null @@ -1,266 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<bpmn:definitions xmlns:bpmn="http://www.omg.org/spec/BPMN/20100524/MODEL" xmlns:bpmndi="http://www.omg.org/spec/BPMN/20100524/DI" xmlns:dc="http://www.omg.org/spec/DD/20100524/DC" xmlns:camunda="http://camunda.org/schema/1.0/bpmn" xmlns:di="http://www.omg.org/spec/DD/20100524/DI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" id="Definitions_1l4zor5" targetNamespace="http://bpmn.io/schema/bpmn" exporter="Camunda Modeler" exporterVersion="4.2.0"> - <bpmn:process id="CreateNs" name=" CreateNs" isExecutable="true"> - <bpmn:startEvent id="StartEvent_1" name="Start Process"> - <bpmn:outgoing>Flow_1tqn5q5</bpmn:outgoing> - </bpmn:startEvent> - <bpmn:endEvent id="EndEvent_1" name="End Process"> - <bpmn:incoming>Flow_0t87ov3</bpmn:incoming> - </bpmn:endEvent> - <bpmn:sequenceFlow id="Flow_1tqn5q5" sourceRef="StartEvent_1" targetRef="Activity_15ksfz6" /> - <bpmn:serviceTask id="Activity_15ksfz6" name="Set Job Status to STARTED" camunda:asyncBefore="true" camunda:expression="${CreateNsTask.setJobStatusToStarted(execution)}"> - <bpmn:incoming>Flow_1tqn5q5</bpmn:incoming> - <bpmn:outgoing>Flow_0y07mxe</bpmn:outgoing> - </bpmn:serviceTask> - <bpmn:sequenceFlow id="Flow_0y07mxe" sourceRef="Activity_15ksfz6" targetRef="Activity_12yonzp" /> - <bpmn:serviceTask id="Activity_1r4l8w8" name="Set Job Status to FINISHED" camunda:expression="${CreateNsTask.setJobStatusToFinished(execution)}"> - <bpmn:incoming>Flow_1rtsvpm</bpmn:incoming> - <bpmn:outgoing>Flow_0t87ov3</bpmn:outgoing> - </bpmn:serviceTask> - <bpmn:sequenceFlow id="Flow_0t87ov3" sourceRef="Activity_1r4l8w8" targetRef="EndEvent_1" /> - <bpmn:exclusiveGateway id="Gateway_0fuwzjj" name="Does Ns Package exists?"> - <bpmn:incoming>Flow_09582uw</bpmn:incoming> - <bpmn:outgoing>Flow_1f4vi10</bpmn:outgoing> - <bpmn:outgoing>Flow_0qabgp7</bpmn:outgoing> - </bpmn:exclusiveGateway> - <bpmn:serviceTask id="Activity_12yonzp" name="Get Ns Package from ETSI Catalog Manager" camunda:expression="${CreateNsTask.getNsPackage(execution)}"> - <bpmn:incoming>Flow_0y07mxe</bpmn:incoming> - <bpmn:outgoing>Flow_09582uw</bpmn:outgoing> - </bpmn:serviceTask> - <bpmn:sequenceFlow id="Flow_09582uw" sourceRef="Activity_12yonzp" targetRef="Gateway_0fuwzjj" /> - <bpmn:subProcess id="Activity_06ko4e2" name="Error Handling" triggeredByEvent="true"> - <bpmn:startEvent id="Event_1ibvrn2" name="error"> - <bpmn:outgoing>Flow_0554tjv</bpmn:outgoing> - <bpmn:errorEventDefinition id="ErrorEventDefinition_0lc46mh" /> - </bpmn:startEvent> - <bpmn:endEvent id="Event_02f7sr1" name="end"> - <bpmn:incoming>Flow_04xvpee</bpmn:incoming> - </bpmn:endEvent> - <bpmn:sequenceFlow id="Flow_0554tjv" sourceRef="Event_1ibvrn2" targetRef="Activity_1sj0nvr" /> - <bpmn:serviceTask id="Activity_1sj0nvr" name="Set Job Status to ERROR" camunda:asyncBefore="true" camunda:expression="${CreateNsTask.setJobStatusToError(execution)}"> - <bpmn:incoming>Flow_0554tjv</bpmn:incoming> - <bpmn:outgoing>Flow_04xvpee</bpmn:outgoing> - </bpmn:serviceTask> - <bpmn:sequenceFlow id="Flow_04xvpee" sourceRef="Activity_1sj0nvr" targetRef="Event_02f7sr1" /> - </bpmn:subProcess> - <bpmn:subProcess id="Activity_1dx9fz6" name="Java Exception Handling" triggeredByEvent="true"> - <bpmn:startEvent id="Event_0zne7ch" name="error"> - <bpmn:outgoing>Flow_0j1otrx</bpmn:outgoing> - <bpmn:errorEventDefinition id="ErrorEventDefinition_1p3h4ta" errorRef="Error_0s855yd" camunda:errorCodeVariable="BPMN_javaExpCode" camunda:errorMessageVariable="BPMN_javaExpMsg" /> - </bpmn:startEvent> - <bpmn:endEvent id="Event_0bcyh7u"> - <bpmn:incoming>Flow_0oqv7vl</bpmn:incoming> - </bpmn:endEvent> - <bpmn:sequenceFlow id="Flow_0j1otrx" sourceRef="Event_0zne7ch" targetRef="Activity_15uwy90" /> - <bpmn:serviceTask id="Activity_15uwy90" name="Set Job Status to ERROR" camunda:asyncBefore="true" camunda:expression="${CreateNsTask.setJobStatusToError(execution)}"> - <bpmn:incoming>Flow_0j1otrx</bpmn:incoming> - <bpmn:outgoing>Flow_0oqv7vl</bpmn:outgoing> - </bpmn:serviceTask> - <bpmn:sequenceFlow id="Flow_0oqv7vl" sourceRef="Activity_15uwy90" targetRef="Event_0bcyh7u" /> - </bpmn:subProcess> - <bpmn:sequenceFlow id="Flow_1f4vi10" name="No" sourceRef="Gateway_0fuwzjj" targetRef="Event_016q8gu"> - <bpmn:conditionExpression xsi:type="bpmn:tFormalExpression">#{not doesNsPackageExists}</bpmn:conditionExpression> - </bpmn:sequenceFlow> - <bpmn:endEvent id="Event_016q8gu"> - <bpmn:incoming>Flow_1f4vi10</bpmn:incoming> - <bpmn:incoming>Flow_1yql1cm</bpmn:incoming> - <bpmn:errorEventDefinition id="ErrorEventDefinition_1ugx52k" errorRef="Error_0rqvnym" /> - </bpmn:endEvent> - <bpmn:sequenceFlow id="Flow_0qabgp7" name="Yes" sourceRef="Gateway_0fuwzjj" targetRef="Activity_0vlb2nk"> - <bpmn:conditionExpression xsi:type="bpmn:tFormalExpression">#{doesNsPackageExists}</bpmn:conditionExpression> - </bpmn:sequenceFlow> - <bpmn:serviceTask id="Activity_0vlb2nk" name="Check NS Instance exists In DB " camunda:expression="${CreateNsTask.doesNsInstanceExistsInDb(execution)}"> - <bpmn:incoming>Flow_0qabgp7</bpmn:incoming> - <bpmn:outgoing>Flow_1exrj2b</bpmn:outgoing> - </bpmn:serviceTask> - <bpmn:sequenceFlow id="Flow_1exrj2b" sourceRef="Activity_0vlb2nk" targetRef="Gateway_0d7n517" /> - <bpmn:exclusiveGateway id="Gateway_0d7n517"> - <bpmn:incoming>Flow_1exrj2b</bpmn:incoming> - <bpmn:outgoing>Flow_1rkg44s</bpmn:outgoing> - <bpmn:outgoing>Flow_1yql1cm</bpmn:outgoing> - </bpmn:exclusiveGateway> - <bpmn:sequenceFlow id="Flow_1rkg44s" name="No" sourceRef="Gateway_0d7n517" targetRef="Activity_09tqz8x"> - <bpmn:conditionExpression xsi:type="bpmn:tFormalExpression">#{not doesNsInstanceExists}</bpmn:conditionExpression> - </bpmn:sequenceFlow> - <bpmn:sequenceFlow id="Flow_1yql1cm" name="Yes" sourceRef="Gateway_0d7n517" targetRef="Event_016q8gu"> - <bpmn:conditionExpression xsi:type="bpmn:tFormalExpression">#{doesNsInstanceExists}</bpmn:conditionExpression> - </bpmn:sequenceFlow> - <bpmn:serviceTask id="Activity_09tqz8x" name="Create NS Instance record in DB" camunda:expression="${CreateNsTask.createNsInstanceInDb(execution)}"> - <bpmn:incoming>Flow_1rkg44s</bpmn:incoming> - <bpmn:outgoing>Flow_1jvfwd2</bpmn:outgoing> - </bpmn:serviceTask> - <bpmn:sequenceFlow id="Flow_1jvfwd2" sourceRef="Activity_09tqz8x" targetRef="Activity_1akc79d" /> - <bpmn:serviceTask id="Activity_1akc79d" name="Create NS Instance in AAI" camunda:expression="${CreateNsTask.createNsInstanceInAai(execution)}"> - <bpmn:incoming>Flow_1jvfwd2</bpmn:incoming> - <bpmn:outgoing>Flow_0e5hvno</bpmn:outgoing> - </bpmn:serviceTask> - <bpmn:sequenceFlow id="Flow_0e5hvno" sourceRef="Activity_1akc79d" targetRef="Activity_03ht66t" /> - <bpmn:serviceTask id="Activity_03ht66t" name="Set Create NS Response" camunda:expression="${CreateNsTask.setCreateNsResponse(execution)}"> - <bpmn:incoming>Flow_0e5hvno</bpmn:incoming> - <bpmn:outgoing>Flow_1rtsvpm</bpmn:outgoing> - </bpmn:serviceTask> - <bpmn:sequenceFlow id="Flow_1rtsvpm" sourceRef="Activity_03ht66t" targetRef="Activity_1r4l8w8" /> - </bpmn:process> - <bpmn:error id="Error_0s855yd" name="java.lang.Exception" errorCode="java.lang.Exception" /> - <bpmn:error id="Error_0rqvnym" name="NsWorkflowProcessingException" errorCode="CREATE_NS_WORKFLOW_PROCESSING_EXCEPTION" /> - <bpmndi:BPMNDiagram id="BPMNDiagram_1"> - <bpmndi:BPMNPlane id="BPMNPlane_1" bpmnElement="CreateNs"> - <bpmndi:BPMNEdge id="Flow_1rtsvpm_di" bpmnElement="Flow_1rtsvpm"> - <di:waypoint x="1160" y="157" /> - <di:waypoint x="1160" y="230" /> - </bpmndi:BPMNEdge> - <bpmndi:BPMNEdge id="Flow_0e5hvno_di" bpmnElement="Flow_0e5hvno"> - <di:waypoint x="1070" y="117" /> - <di:waypoint x="1110" y="117" /> - </bpmndi:BPMNEdge> - <bpmndi:BPMNEdge id="Flow_1jvfwd2_di" bpmnElement="Flow_1jvfwd2"> - <di:waypoint x="930" y="117" /> - <di:waypoint x="970" y="117" /> - </bpmndi:BPMNEdge> - <bpmndi:BPMNEdge id="Flow_1yql1cm_di" bpmnElement="Flow_1yql1cm"> - <di:waypoint x="760" y="142" /> - <di:waypoint x="760" y="230" /> - <di:waypoint x="668" y="230" /> - <bpmndi:BPMNLabel> - <dc:Bounds x="766" y="183" width="19" height="14" /> - </bpmndi:BPMNLabel> - </bpmndi:BPMNEdge> - <bpmndi:BPMNEdge id="Flow_1rkg44s_di" bpmnElement="Flow_1rkg44s"> - <di:waypoint x="785" y="117" /> - <di:waypoint x="830" y="117" /> - <bpmndi:BPMNLabel> - <dc:Bounds x="799" y="99" width="14" height="14" /> - </bpmndi:BPMNLabel> - </bpmndi:BPMNEdge> - <bpmndi:BPMNEdge id="Flow_1exrj2b_di" bpmnElement="Flow_1exrj2b"> - <di:waypoint x="700" y="117" /> - <di:waypoint x="735" y="117" /> - </bpmndi:BPMNEdge> - <bpmndi:BPMNEdge id="Flow_0qabgp7_di" bpmnElement="Flow_0qabgp7"> - <di:waypoint x="565" y="117" /> - <di:waypoint x="600" y="117" /> - <bpmndi:BPMNLabel> - <dc:Bounds x="579" y="99" width="19" height="14" /> - </bpmndi:BPMNLabel> - </bpmndi:BPMNEdge> - <bpmndi:BPMNEdge id="Flow_1f4vi10_di" bpmnElement="Flow_1f4vi10"> - <di:waypoint x="540" y="142" /> - <di:waypoint x="540" y="230" /> - <di:waypoint x="632" y="230" /> - <bpmndi:BPMNLabel> - <dc:Bounds x="548" y="183" width="14" height="14" /> - </bpmndi:BPMNLabel> - </bpmndi:BPMNEdge> - <bpmndi:BPMNEdge id="Flow_09582uw_di" bpmnElement="Flow_09582uw"> - <di:waypoint x="480" y="117" /> - <di:waypoint x="515" y="117" /> - </bpmndi:BPMNEdge> - <bpmndi:BPMNEdge id="Flow_0t87ov3_di" bpmnElement="Flow_0t87ov3"> - <di:waypoint x="1160" y="310" /> - <di:waypoint x="1160" y="357" /> - </bpmndi:BPMNEdge> - <bpmndi:BPMNEdge id="Flow_0y07mxe_di" bpmnElement="Flow_0y07mxe"> - <di:waypoint x="350" y="117" /> - <di:waypoint x="380" y="117" /> - </bpmndi:BPMNEdge> - <bpmndi:BPMNEdge id="Flow_1tqn5q5_di" bpmnElement="Flow_1tqn5q5"> - <di:waypoint x="208" y="117" /> - <di:waypoint x="250" y="117" /> - </bpmndi:BPMNEdge> - <bpmndi:BPMNShape id="_BPMNShape_StartEvent_2" bpmnElement="StartEvent_1"> - <dc:Bounds x="172" y="99" width="36" height="36" /> - <bpmndi:BPMNLabel> - <dc:Bounds x="158" y="142" width="67" height="14" /> - </bpmndi:BPMNLabel> - </bpmndi:BPMNShape> - <bpmndi:BPMNShape id="Event_0db1w1a_di" bpmnElement="EndEvent_1"> - <dc:Bounds x="1142" y="357" width="36" height="36" /> - <bpmndi:BPMNLabel> - <dc:Bounds x="1129" y="400" width="63" height="14" /> - </bpmndi:BPMNLabel> - </bpmndi:BPMNShape> - <bpmndi:BPMNShape id="Activity_15ksfz6_di" bpmnElement="Activity_15ksfz6"> - <dc:Bounds x="250" y="77" width="100" height="80" /> - </bpmndi:BPMNShape> - <bpmndi:BPMNShape id="Activity_1r4l8w8_di" bpmnElement="Activity_1r4l8w8"> - <dc:Bounds x="1110" y="230" width="100" height="80" /> - </bpmndi:BPMNShape> - <bpmndi:BPMNShape id="Gateway_0fuwzjj_di" bpmnElement="Gateway_0fuwzjj" isMarkerVisible="true"> - <dc:Bounds x="515" y="92" width="50" height="50" /> - <bpmndi:BPMNLabel> - <dc:Bounds x="498" y="62" width="88" height="27" /> - </bpmndi:BPMNLabel> - </bpmndi:BPMNShape> - <bpmndi:BPMNShape id="Activity_12yonzp_di" bpmnElement="Activity_12yonzp"> - <dc:Bounds x="380" y="77" width="100" height="80" /> - </bpmndi:BPMNShape> - <bpmndi:BPMNShape id="Activity_06ko4e2_di" bpmnElement="Activity_06ko4e2" isExpanded="true"> - <dc:Bounds x="431" y="310" width="438" height="130" /> - </bpmndi:BPMNShape> - <bpmndi:BPMNEdge id="Flow_04xvpee_di" bpmnElement="Flow_04xvpee"> - <di:waypoint x="681" y="373" /> - <di:waypoint x="813" y="373" /> - </bpmndi:BPMNEdge> - <bpmndi:BPMNEdge id="Flow_0554tjv_di" bpmnElement="Flow_0554tjv"> - <di:waypoint x="489" y="373" /> - <di:waypoint x="581" y="373" /> - </bpmndi:BPMNEdge> - <bpmndi:BPMNShape id="Event_1ibvrn2_di" bpmnElement="Event_1ibvrn2"> - <dc:Bounds x="453" y="355" width="36" height="36" /> - <bpmndi:BPMNLabel> - <dc:Bounds x="459" y="398" width="24" height="14" /> - </bpmndi:BPMNLabel> - </bpmndi:BPMNShape> - <bpmndi:BPMNShape id="Event_02f7sr1_di" bpmnElement="Event_02f7sr1"> - <dc:Bounds x="813" y="355" width="36" height="36" /> - <bpmndi:BPMNLabel> - <dc:Bounds x="823" y="397" width="19" height="14" /> - </bpmndi:BPMNLabel> - </bpmndi:BPMNShape> - <bpmndi:BPMNShape id="Activity_1sj0nvr_di" bpmnElement="Activity_1sj0nvr"> - <dc:Bounds x="581" y="333" width="100" height="80" /> - </bpmndi:BPMNShape> - <bpmndi:BPMNShape id="Activity_1dx9fz6_di" bpmnElement="Activity_1dx9fz6" isExpanded="true"> - <dc:Bounds x="431" y="470" width="438" height="130" /> - </bpmndi:BPMNShape> - <bpmndi:BPMNEdge id="Flow_0oqv7vl_di" bpmnElement="Flow_0oqv7vl"> - <di:waypoint x="680" y="533" /> - <di:waypoint x="772" y="533" /> - </bpmndi:BPMNEdge> - <bpmndi:BPMNEdge id="Flow_0j1otrx_di" bpmnElement="Flow_0j1otrx"> - <di:waypoint x="522" y="533" /> - <di:waypoint x="580" y="533" /> - </bpmndi:BPMNEdge> - <bpmndi:BPMNShape id="Event_0zne7ch_di" bpmnElement="Event_0zne7ch"> - <dc:Bounds x="486" y="515" width="36" height="36" /> - <bpmndi:BPMNLabel> - <dc:Bounds x="493" y="558" width="24" height="14" /> - </bpmndi:BPMNLabel> - </bpmndi:BPMNShape> - <bpmndi:BPMNShape id="Event_0bcyh7u_di" bpmnElement="Event_0bcyh7u"> - <dc:Bounds x="772" y="515" width="36" height="36" /> - </bpmndi:BPMNShape> - <bpmndi:BPMNShape id="Activity_15uwy90_di" bpmnElement="Activity_15uwy90"> - <dc:Bounds x="580" y="493" width="100" height="80" /> - </bpmndi:BPMNShape> - <bpmndi:BPMNShape id="Event_0spfqz1_di" bpmnElement="Event_016q8gu"> - <dc:Bounds x="632" y="212" width="36" height="36" /> - </bpmndi:BPMNShape> - <bpmndi:BPMNShape id="Activity_0vlb2nk_di" bpmnElement="Activity_0vlb2nk"> - <dc:Bounds x="600" y="77" width="100" height="80" /> - </bpmndi:BPMNShape> - <bpmndi:BPMNShape id="Gateway_0d7n517_di" bpmnElement="Gateway_0d7n517" isMarkerVisible="true"> - <dc:Bounds x="735" y="92" width="50" height="50" /> - </bpmndi:BPMNShape> - <bpmndi:BPMNShape id="Activity_09tqz8x_di" bpmnElement="Activity_09tqz8x"> - <dc:Bounds x="830" y="77" width="100" height="80" /> - </bpmndi:BPMNShape> - <bpmndi:BPMNShape id="Activity_1akc79d_di" bpmnElement="Activity_1akc79d"> - <dc:Bounds x="970" y="77" width="100" height="80" /> - </bpmndi:BPMNShape> - <bpmndi:BPMNShape id="Activity_03ht66t_di" bpmnElement="Activity_03ht66t"> - <dc:Bounds x="1110" y="77" width="100" height="80" /> - </bpmndi:BPMNShape> - </bpmndi:BPMNPlane> - </bpmndi:BPMNDiagram> -</bpmn:definitions> diff --git a/so-etsi-nfvo/so-etsi-nfvo-ns-lcm/so-etsi-nfvo-ns-lcm-bpmn-flows/src/main/resources/DeleteNs.bpmn b/so-etsi-nfvo/so-etsi-nfvo-ns-lcm/so-etsi-nfvo-ns-lcm-bpmn-flows/src/main/resources/DeleteNs.bpmn deleted file mode 100644 index a6bb214440..0000000000 --- a/so-etsi-nfvo/so-etsi-nfvo-ns-lcm/so-etsi-nfvo-ns-lcm-bpmn-flows/src/main/resources/DeleteNs.bpmn +++ /dev/null @@ -1,260 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<bpmn:definitions xmlns:bpmn="http://www.omg.org/spec/BPMN/20100524/MODEL" xmlns:bpmndi="http://www.omg.org/spec/BPMN/20100524/DI" xmlns:dc="http://www.omg.org/spec/DD/20100524/DC" xmlns:camunda="http://camunda.org/schema/1.0/bpmn" xmlns:di="http://www.omg.org/spec/DD/20100524/DI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" id="Definitions_1l4zor5" targetNamespace="http://bpmn.io/schema/bpmn" exporter="Camunda Modeler" exporterVersion="4.2.0"> - <bpmn:process id="DeleteNs" name="DeleteNs" isExecutable="true"> - <bpmn:startEvent id="StartEvent_1" name="Start Process"> - <bpmn:outgoing>Flow_1tqn5q5</bpmn:outgoing> - </bpmn:startEvent> - <bpmn:endEvent id="EndEvent_1" name="End Process"> - <bpmn:incoming>Flow_0t87ov3</bpmn:incoming> - </bpmn:endEvent> - <bpmn:sequenceFlow id="Flow_1tqn5q5" sourceRef="StartEvent_1" targetRef="Activity_15ksfz6" /> - <bpmn:serviceTask id="Activity_15ksfz6" name="Set Job Status to STARTED" camunda:asyncBefore="true" camunda:expression="${DeleteNsTask.setJobStatusToStarted(execution)}"> - <bpmn:incoming>Flow_1tqn5q5</bpmn:incoming> - <bpmn:outgoing>Flow_0fhodlp</bpmn:outgoing> - </bpmn:serviceTask> - <bpmn:serviceTask id="Activity_1r4l8w8" name="Set Job Status to FINISHED" camunda:expression="${DeleteNsTask.setJobStatusToFinished(execution)}"> - <bpmn:incoming>Flow_1rtsvpm</bpmn:incoming> - <bpmn:outgoing>Flow_0t87ov3</bpmn:outgoing> - </bpmn:serviceTask> - <bpmn:sequenceFlow id="Flow_0t87ov3" sourceRef="Activity_1r4l8w8" targetRef="EndEvent_1" /> - <bpmn:subProcess id="Activity_06ko4e2" name="Error Handling" triggeredByEvent="true"> - <bpmn:startEvent id="Event_1ibvrn2" name="error"> - <bpmn:outgoing>Flow_0554tjv</bpmn:outgoing> - <bpmn:errorEventDefinition id="ErrorEventDefinition_0lc46mh" /> - </bpmn:startEvent> - <bpmn:endEvent id="Event_02f7sr1" name="end"> - <bpmn:incoming>Flow_04xvpee</bpmn:incoming> - </bpmn:endEvent> - <bpmn:sequenceFlow id="Flow_0554tjv" sourceRef="Event_1ibvrn2" targetRef="Activity_1sj0nvr" /> - <bpmn:serviceTask id="Activity_1sj0nvr" name="Set Job Status to ERROR" camunda:asyncBefore="true" camunda:expression="${DeleteNsTask.setJobStatusToError(execution)}"> - <bpmn:incoming>Flow_0554tjv</bpmn:incoming> - <bpmn:outgoing>Flow_04xvpee</bpmn:outgoing> - </bpmn:serviceTask> - <bpmn:sequenceFlow id="Flow_04xvpee" sourceRef="Activity_1sj0nvr" targetRef="Event_02f7sr1" /> - </bpmn:subProcess> - <bpmn:subProcess id="Activity_1dx9fz6" name="Java Exception Handling" triggeredByEvent="true"> - <bpmn:startEvent id="Event_0zne7ch" name="error"> - <bpmn:outgoing>Flow_0j1otrx</bpmn:outgoing> - <bpmn:errorEventDefinition id="ErrorEventDefinition_1p3h4ta" errorRef="Error_0rqvnym" camunda:errorCodeVariable="BPMN_javaExpCode" camunda:errorMessageVariable="BPMN_javaExpMsg" /> - </bpmn:startEvent> - <bpmn:endEvent id="Event_0bcyh7u"> - <bpmn:incoming>Flow_0oqv7vl</bpmn:incoming> - </bpmn:endEvent> - <bpmn:sequenceFlow id="Flow_0j1otrx" sourceRef="Event_0zne7ch" targetRef="Activity_15uwy90" /> - <bpmn:serviceTask id="Activity_15uwy90" name="Set Job Status to ERROR" camunda:asyncBefore="true" camunda:expression="${DeleteNsTask.setJobStatusToError(execution)}"> - <bpmn:incoming>Flow_0j1otrx</bpmn:incoming> - <bpmn:outgoing>Flow_0oqv7vl</bpmn:outgoing> - </bpmn:serviceTask> - <bpmn:sequenceFlow id="Flow_0oqv7vl" sourceRef="Activity_15uwy90" targetRef="Event_0bcyh7u" /> - </bpmn:subProcess> - <bpmn:serviceTask id="Activity_0vlb2nk" name="Check NS Instance exists In DB " camunda:expression="${DeleteNsTask.checkIfNsInstanceExistsInDb(execution)}"> - <bpmn:incoming>Flow_0fhodlp</bpmn:incoming> - <bpmn:outgoing>Flow_1duwqzf</bpmn:outgoing> - </bpmn:serviceTask> - <bpmn:serviceTask id="Activity_09tqz8x" name="Check that NS Instance in DB is in NOT_INSTANTIATED state" camunda:expression="${DeleteNsTask.checkthatNsInstanceInDbIsInNotInstantiatedState(execution)}"> - <bpmn:incoming>Flow_02g3nbb</bpmn:incoming> - <bpmn:outgoing>Flow_1ihvsfs</bpmn:outgoing> - </bpmn:serviceTask> - <bpmn:serviceTask id="Activity_03ht66t" name="Delete NS Instance from DB" camunda:expression="${DeleteNsTask.deleteNsInstanceFromDb(execution)}"> - <bpmn:incoming>Flow_04wub0a</bpmn:incoming> - <bpmn:outgoing>Flow_1rtsvpm</bpmn:outgoing> - </bpmn:serviceTask> - <bpmn:sequenceFlow id="Flow_1rtsvpm" sourceRef="Activity_03ht66t" targetRef="Activity_1r4l8w8" /> - <bpmn:sequenceFlow id="Flow_0fhodlp" sourceRef="Activity_15ksfz6" targetRef="Activity_0vlb2nk" /> - <bpmn:sequenceFlow id="Flow_1duwqzf" sourceRef="Activity_0vlb2nk" targetRef="Gateway_1tjajb0" /> - <bpmn:sequenceFlow id="Flow_1ihvsfs" sourceRef="Activity_09tqz8x" targetRef="Gateway_1voek52" /> - <bpmn:serviceTask id="Activity_1rrzri0" name="Delete NS Instance from AAI" camunda:expression="${DeleteNsTask.deleteNsInstanceFromAai(execution)}"> - <bpmn:incoming>Flow_1buncqe</bpmn:incoming> - <bpmn:outgoing>Flow_04wub0a</bpmn:outgoing> - </bpmn:serviceTask> - <bpmn:sequenceFlow id="Flow_04wub0a" sourceRef="Activity_1rrzri0" targetRef="Activity_03ht66t" /> - <bpmn:exclusiveGateway id="Gateway_1tjajb0" name="Does NS Instance Exist?"> - <bpmn:incoming>Flow_1duwqzf</bpmn:incoming> - <bpmn:outgoing>Flow_02g3nbb</bpmn:outgoing> - <bpmn:outgoing>Flow_1swnlzf</bpmn:outgoing> - </bpmn:exclusiveGateway> - <bpmn:sequenceFlow id="Flow_02g3nbb" name="Yes" sourceRef="Gateway_1tjajb0" targetRef="Activity_09tqz8x"> - <bpmn:conditionExpression xsi:type="bpmn:tFormalExpression">#{nsInstanceExists}</bpmn:conditionExpression> - </bpmn:sequenceFlow> - <bpmn:exclusiveGateway id="Gateway_1voek52" name="Is NS Instance in NOT INSTANTIATED State?"> - <bpmn:incoming>Flow_1ihvsfs</bpmn:incoming> - <bpmn:outgoing>Flow_1buncqe</bpmn:outgoing> - <bpmn:outgoing>Flow_1eozcur</bpmn:outgoing> - </bpmn:exclusiveGateway> - <bpmn:sequenceFlow id="Flow_1buncqe" name="Yes" sourceRef="Gateway_1voek52" targetRef="Activity_1rrzri0"> - <bpmn:conditionExpression xsi:type="bpmn:tFormalExpression">#{isInNotInstantiatedState}</bpmn:conditionExpression> - </bpmn:sequenceFlow> - <bpmn:endEvent id="Event_0dqc93c"> - <bpmn:incoming>Flow_1swnlzf</bpmn:incoming> - <bpmn:incoming>Flow_1eozcur</bpmn:incoming> - <bpmn:errorEventDefinition id="ErrorEventDefinition_0pfrgad" errorRef="Error_0rqvnym" /> - </bpmn:endEvent> - <bpmn:sequenceFlow id="Flow_1swnlzf" name="No" sourceRef="Gateway_1tjajb0" targetRef="Event_0dqc93c"> - <bpmn:conditionExpression xsi:type="bpmn:tFormalExpression">#{not nsInstanceExists}</bpmn:conditionExpression> - </bpmn:sequenceFlow> - <bpmn:sequenceFlow id="Flow_1eozcur" name="No" sourceRef="Gateway_1voek52" targetRef="Event_0dqc93c"> - <bpmn:conditionExpression xsi:type="bpmn:tFormalExpression">#{not isInNotInstantiatedState}</bpmn:conditionExpression> - </bpmn:sequenceFlow> - </bpmn:process> - <bpmn:error id="Error_0s855yd" name="java.lang.Exception" errorCode="java.lang.Exception" /> - <bpmn:error id="Error_0rqvnym" name="NsWorkflowProcessingException" errorCode="DELETE_NS_WORKFLOW_PROCESSING_EXCEPTION" /> - <bpmndi:BPMNDiagram id="BPMNDiagram_1"> - <bpmndi:BPMNPlane id="BPMNPlane_1" bpmnElement="DeleteNs"> - <bpmndi:BPMNEdge id="Flow_1eozcur_di" bpmnElement="Flow_1eozcur"> - <di:waypoint x="830" y="192" /> - <di:waypoint x="830" y="270" /> - <di:waypoint x="708" y="270" /> - <bpmndi:BPMNLabel> - <dc:Bounds x="843" y="228" width="14" height="14" /> - </bpmndi:BPMNLabel> - </bpmndi:BPMNEdge> - <bpmndi:BPMNEdge id="Flow_1swnlzf_di" bpmnElement="Flow_1swnlzf"> - <di:waypoint x="550" y="192" /> - <di:waypoint x="550" y="270" /> - <di:waypoint x="672" y="270" /> - <bpmndi:BPMNLabel> - <dc:Bounds x="558" y="228" width="14" height="14" /> - </bpmndi:BPMNLabel> - </bpmndi:BPMNEdge> - <bpmndi:BPMNEdge id="Flow_1buncqe_di" bpmnElement="Flow_1buncqe"> - <di:waypoint x="855" y="167" /> - <di:waypoint x="960" y="167" /> - <bpmndi:BPMNLabel> - <dc:Bounds x="890" y="149" width="19" height="14" /> - </bpmndi:BPMNLabel> - </bpmndi:BPMNEdge> - <bpmndi:BPMNEdge id="Flow_02g3nbb_di" bpmnElement="Flow_02g3nbb"> - <di:waypoint x="575" y="167" /> - <di:waypoint x="640" y="167" /> - <bpmndi:BPMNLabel> - <dc:Bounds x="598" y="149" width="19" height="14" /> - </bpmndi:BPMNLabel> - </bpmndi:BPMNEdge> - <bpmndi:BPMNEdge id="Flow_04wub0a_di" bpmnElement="Flow_04wub0a"> - <di:waypoint x="1060" y="167" /> - <di:waypoint x="1100" y="167" /> - </bpmndi:BPMNEdge> - <bpmndi:BPMNEdge id="Flow_1ihvsfs_di" bpmnElement="Flow_1ihvsfs"> - <di:waypoint x="740" y="167" /> - <di:waypoint x="805" y="167" /> - </bpmndi:BPMNEdge> - <bpmndi:BPMNEdge id="Flow_1duwqzf_di" bpmnElement="Flow_1duwqzf"> - <di:waypoint x="490" y="167" /> - <di:waypoint x="525" y="167" /> - </bpmndi:BPMNEdge> - <bpmndi:BPMNEdge id="Flow_0fhodlp_di" bpmnElement="Flow_0fhodlp"> - <di:waypoint x="350" y="167" /> - <di:waypoint x="390" y="167" /> - </bpmndi:BPMNEdge> - <bpmndi:BPMNEdge id="Flow_1rtsvpm_di" bpmnElement="Flow_1rtsvpm"> - <di:waypoint x="1200" y="167" /> - <di:waypoint x="1240" y="167" /> - </bpmndi:BPMNEdge> - <bpmndi:BPMNEdge id="Flow_0t87ov3_di" bpmnElement="Flow_0t87ov3"> - <di:waypoint x="1340" y="167" /> - <di:waypoint x="1382" y="167" /> - </bpmndi:BPMNEdge> - <bpmndi:BPMNEdge id="Flow_1tqn5q5_di" bpmnElement="Flow_1tqn5q5"> - <di:waypoint x="208" y="167" /> - <di:waypoint x="250" y="167" /> - </bpmndi:BPMNEdge> - <bpmndi:BPMNShape id="_BPMNShape_StartEvent_2" bpmnElement="StartEvent_1"> - <dc:Bounds x="172" y="149" width="36" height="36" /> - <bpmndi:BPMNLabel> - <dc:Bounds x="158" y="192" width="67" height="14" /> - </bpmndi:BPMNLabel> - </bpmndi:BPMNShape> - <bpmndi:BPMNShape id="Event_0db1w1a_di" bpmnElement="EndEvent_1"> - <dc:Bounds x="1382" y="149" width="36" height="36" /> - <bpmndi:BPMNLabel> - <dc:Bounds x="1369" y="192" width="63" height="14" /> - </bpmndi:BPMNLabel> - </bpmndi:BPMNShape> - <bpmndi:BPMNShape id="Activity_15ksfz6_di" bpmnElement="Activity_15ksfz6"> - <dc:Bounds x="250" y="127" width="100" height="80" /> - </bpmndi:BPMNShape> - <bpmndi:BPMNShape id="Activity_1r4l8w8_di" bpmnElement="Activity_1r4l8w8"> - <dc:Bounds x="1240" y="127" width="100" height="80" /> - </bpmndi:BPMNShape> - <bpmndi:BPMNShape id="Activity_06ko4e2_di" bpmnElement="Activity_06ko4e2" isExpanded="true"> - <dc:Bounds x="431" y="360" width="438" height="130" /> - </bpmndi:BPMNShape> - <bpmndi:BPMNEdge id="Flow_04xvpee_di" bpmnElement="Flow_04xvpee"> - <di:waypoint x="681" y="423" /> - <di:waypoint x="813" y="423" /> - </bpmndi:BPMNEdge> - <bpmndi:BPMNEdge id="Flow_0554tjv_di" bpmnElement="Flow_0554tjv"> - <di:waypoint x="489" y="423" /> - <di:waypoint x="581" y="423" /> - </bpmndi:BPMNEdge> - <bpmndi:BPMNShape id="Event_1ibvrn2_di" bpmnElement="Event_1ibvrn2"> - <dc:Bounds x="453" y="405" width="36" height="36" /> - <bpmndi:BPMNLabel> - <dc:Bounds x="459" y="448" width="24" height="14" /> - </bpmndi:BPMNLabel> - </bpmndi:BPMNShape> - <bpmndi:BPMNShape id="Event_02f7sr1_di" bpmnElement="Event_02f7sr1"> - <dc:Bounds x="813" y="405" width="36" height="36" /> - <bpmndi:BPMNLabel> - <dc:Bounds x="823" y="447" width="19" height="14" /> - </bpmndi:BPMNLabel> - </bpmndi:BPMNShape> - <bpmndi:BPMNShape id="Activity_1sj0nvr_di" bpmnElement="Activity_1sj0nvr"> - <dc:Bounds x="581" y="383" width="100" height="80" /> - </bpmndi:BPMNShape> - <bpmndi:BPMNShape id="Activity_1dx9fz6_di" bpmnElement="Activity_1dx9fz6" isExpanded="true"> - <dc:Bounds x="431" y="520" width="438" height="130" /> - </bpmndi:BPMNShape> - <bpmndi:BPMNEdge id="Flow_0oqv7vl_di" bpmnElement="Flow_0oqv7vl"> - <di:waypoint x="680" y="583" /> - <di:waypoint x="772" y="583" /> - </bpmndi:BPMNEdge> - <bpmndi:BPMNEdge id="Flow_0j1otrx_di" bpmnElement="Flow_0j1otrx"> - <di:waypoint x="522" y="583" /> - <di:waypoint x="580" y="583" /> - </bpmndi:BPMNEdge> - <bpmndi:BPMNShape id="Event_0zne7ch_di" bpmnElement="Event_0zne7ch"> - <dc:Bounds x="486" y="565" width="36" height="36" /> - <bpmndi:BPMNLabel> - <dc:Bounds x="493" y="608" width="24" height="14" /> - </bpmndi:BPMNLabel> - </bpmndi:BPMNShape> - <bpmndi:BPMNShape id="Event_0bcyh7u_di" bpmnElement="Event_0bcyh7u"> - <dc:Bounds x="772" y="565" width="36" height="36" /> - </bpmndi:BPMNShape> - <bpmndi:BPMNShape id="Activity_15uwy90_di" bpmnElement="Activity_15uwy90"> - <dc:Bounds x="580" y="543" width="100" height="80" /> - </bpmndi:BPMNShape> - <bpmndi:BPMNShape id="Activity_0vlb2nk_di" bpmnElement="Activity_0vlb2nk"> - <dc:Bounds x="390" y="127" width="100" height="80" /> - </bpmndi:BPMNShape> - <bpmndi:BPMNShape id="Activity_09tqz8x_di" bpmnElement="Activity_09tqz8x"> - <dc:Bounds x="640" y="127" width="100" height="80" /> - </bpmndi:BPMNShape> - <bpmndi:BPMNShape id="Activity_03ht66t_di" bpmnElement="Activity_03ht66t"> - <dc:Bounds x="1100" y="127" width="100" height="80" /> - </bpmndi:BPMNShape> - <bpmndi:BPMNShape id="Activity_1rrzri0_di" bpmnElement="Activity_1rrzri0"> - <dc:Bounds x="960" y="127" width="100" height="80" /> - </bpmndi:BPMNShape> - <bpmndi:BPMNShape id="Gateway_1tjajb0_di" bpmnElement="Gateway_1tjajb0" isMarkerVisible="true"> - <dc:Bounds x="525" y="142" width="50" height="50" /> - <bpmndi:BPMNLabel> - <dc:Bounds x="505" y="106" width="89" height="27" /> - </bpmndi:BPMNLabel> - </bpmndi:BPMNShape> - <bpmndi:BPMNShape id="Gateway_1voek52_di" bpmnElement="Gateway_1voek52" isMarkerVisible="true"> - <dc:Bounds x="805" y="142" width="50" height="50" /> - <bpmndi:BPMNLabel> - <dc:Bounds x="791" y="83" width="79" height="53" /> - </bpmndi:BPMNLabel> - </bpmndi:BPMNShape> - <bpmndi:BPMNShape id="Event_029a1ih_di" bpmnElement="Event_0dqc93c"> - <dc:Bounds x="672" y="252" width="36" height="36" /> - <bpmndi:BPMNLabel> - <dc:Bounds x="646" y="245" width="88" height="27" /> - </bpmndi:BPMNLabel> - </bpmndi:BPMNShape> - </bpmndi:BPMNPlane> - </bpmndi:BPMNDiagram> -</bpmn:definitions> diff --git a/so-etsi-nfvo/so-etsi-nfvo-ns-lcm/so-etsi-nfvo-ns-lcm-bpmn-flows/src/main/resources/InstantiateNs.bpmn b/so-etsi-nfvo/so-etsi-nfvo-ns-lcm/so-etsi-nfvo-ns-lcm-bpmn-flows/src/main/resources/InstantiateNs.bpmn deleted file mode 100644 index bc34c144c9..0000000000 --- a/so-etsi-nfvo/so-etsi-nfvo-ns-lcm/so-etsi-nfvo-ns-lcm-bpmn-flows/src/main/resources/InstantiateNs.bpmn +++ /dev/null @@ -1,331 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<bpmn:definitions xmlns:bpmn="http://www.omg.org/spec/BPMN/20100524/MODEL" xmlns:bpmndi="http://www.omg.org/spec/BPMN/20100524/DI" xmlns:dc="http://www.omg.org/spec/DD/20100524/DC" xmlns:camunda="http://camunda.org/schema/1.0/bpmn" xmlns:di="http://www.omg.org/spec/DD/20100524/DI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" id="Definitions_0mdda96" targetNamespace="http://bpmn.io/schema/bpmn" exporter="Camunda Modeler" exporterVersion="4.0.0"> - <bpmn:process id="InstantiateNs" name="InstantiateNs" isExecutable="true"> - <bpmn:startEvent id="StartEvent_1" name="Start Process"> - <bpmn:outgoing>SequenceFlow_16k0f61</bpmn:outgoing> - </bpmn:startEvent> - <bpmn:sequenceFlow id="SequenceFlow_16k0f61" sourceRef="StartEvent_1" targetRef="Activity_194tqy0" /> - <bpmn:serviceTask id="Task_0opnwx0" name="Update NS Instance status to INSTANTIATING" camunda:expression="${InstantiateNsTask.updateNsInstanceStatusToInstantiating(execution)}"> - <bpmn:incoming>Flow_04pxtdd</bpmn:incoming> - <bpmn:outgoing>SequenceFlow_0bdznyp</bpmn:outgoing> - </bpmn:serviceTask> - <bpmn:endEvent id="EndEvent_0szswbo" name="End Process"> - <bpmn:incoming>Flow_1pcu8aa</bpmn:incoming> - </bpmn:endEvent> - <bpmn:sequenceFlow id="SequenceFlow_0bdznyp" sourceRef="Task_0opnwx0" targetRef="Activity_1jrym1e" /> - <bpmn:serviceTask id="Activity_194tqy0" name="Set Job Status to STARTED" camunda:asyncBefore="true" camunda:expression="${InstantiateNsTask.setJobStatusToStarted(execution)}"> - <bpmn:incoming>SequenceFlow_16k0f61</bpmn:incoming> - <bpmn:outgoing>Flow_04pxtdd</bpmn:outgoing> - </bpmn:serviceTask> - <bpmn:sequenceFlow id="Flow_04pxtdd" sourceRef="Activity_194tqy0" targetRef="Task_0opnwx0" /> - <bpmn:subProcess id="Activity_0pjxszh" name="Error Handling" triggeredByEvent="true"> - <bpmn:startEvent id="Event_1rpzcl3" name="error"> - <bpmn:outgoing>Flow_07bh7l7</bpmn:outgoing> - <bpmn:errorEventDefinition id="ErrorEventDefinition_0m2e0oa" /> - </bpmn:startEvent> - <bpmn:endEvent id="Event_1fcw3ei" name="end"> - <bpmn:incoming>Flow_1wa1jpl</bpmn:incoming> - </bpmn:endEvent> - <bpmn:serviceTask id="Activity_0ddja9m" name="Set Job Status to ERROR" camunda:asyncBefore="true" camunda:expression="${InstantiateNsTask.setJobStatusToError(execution)}"> - <bpmn:incoming>Flow_0n3dai5</bpmn:incoming> - <bpmn:outgoing>Flow_1wa1jpl</bpmn:outgoing> - </bpmn:serviceTask> - <bpmn:sequenceFlow id="Flow_1wa1jpl" sourceRef="Activity_0ddja9m" targetRef="Event_1fcw3ei" /> - <bpmn:sequenceFlow id="Flow_07bh7l7" sourceRef="Event_1rpzcl3" targetRef="Activity_1miy3hw" /> - <bpmn:serviceTask id="Activity_1miy3hw" name="Update NSLcmOpOcc operation status to FAILED" camunda:asyncBefore="true" camunda:expression="${InstantiateNsTask.updateNsLcmOpOccStatusToFailed(execution)}"> - <bpmn:incoming>Flow_07bh7l7</bpmn:incoming> - <bpmn:outgoing>Flow_0n3dai5</bpmn:outgoing> - </bpmn:serviceTask> - <bpmn:sequenceFlow id="Flow_0n3dai5" sourceRef="Activity_1miy3hw" targetRef="Activity_0ddja9m" /> - </bpmn:subProcess> - <bpmn:subProcess id="Activity_0mtscwq" name="Java Exception Handling" triggeredByEvent="true"> - <bpmn:startEvent id="Event_0lqr6al" name="error"> - <bpmn:outgoing>Flow_05lo00r</bpmn:outgoing> - <bpmn:errorEventDefinition id="ErrorEventDefinition_02lwl19" errorRef="Error_0jsct8p" camunda:errorCodeVariable="BPMN_javaExpCode" camunda:errorMessageVariable="BPMN_javaExpMsg" /> - </bpmn:startEvent> - <bpmn:endEvent id="Event_05ty7c4"> - <bpmn:incoming>Flow_16aryg5</bpmn:incoming> - </bpmn:endEvent> - <bpmn:serviceTask id="Activity_1ezu7d4" name="Set Job Status to ERROR" camunda:asyncBefore="true" camunda:expression="${InstantiateNsTask.setJobStatusToError(execution)}"> - <bpmn:incoming>Flow_09zcw2a</bpmn:incoming> - <bpmn:outgoing>Flow_16aryg5</bpmn:outgoing> - </bpmn:serviceTask> - <bpmn:sequenceFlow id="Flow_16aryg5" sourceRef="Activity_1ezu7d4" targetRef="Event_05ty7c4" /> - <bpmn:sequenceFlow id="Flow_05lo00r" sourceRef="Event_0lqr6al" targetRef="Activity_17leldb" /> - <bpmn:serviceTask id="Activity_17leldb" name="Update NSLcmOpOcc operation status to FAILED" camunda:asyncBefore="true" camunda:expression="${InstantiateNsTask.updateNsLcmOpOccStatusToFailed(execution)}"> - <bpmn:incoming>Flow_05lo00r</bpmn:incoming> - <bpmn:outgoing>Flow_09zcw2a</bpmn:outgoing> - </bpmn:serviceTask> - <bpmn:sequenceFlow id="Flow_09zcw2a" sourceRef="Activity_17leldb" targetRef="Activity_1ezu7d4" /> - </bpmn:subProcess> - <bpmn:serviceTask id="Activity_1w09i1k" name="Set Job Status to FINISHED" camunda:expression="${InstantiateNsTask.setJobStatusToFinished(execution)}"> - <bpmn:incoming>Flow_1i36dw4</bpmn:incoming> - <bpmn:outgoing>Flow_1pcu8aa</bpmn:outgoing> - </bpmn:serviceTask> - <bpmn:sequenceFlow id="Flow_1pcu8aa" sourceRef="Activity_1w09i1k" targetRef="EndEvent_0szswbo" /> - <bpmn:serviceTask id="Activity_1jrym1e" name="Get and parse NSD from ETSI Catalog" camunda:expression="${InstantiateNsTask.getAndParseNsdFromEtsiCatalog(execution)}"> - <bpmn:incoming>SequenceFlow_0bdznyp</bpmn:incoming> - <bpmn:outgoing>Flow_10zjw0w</bpmn:outgoing> - </bpmn:serviceTask> - <bpmn:sequenceFlow id="Flow_10zjw0w" sourceRef="Activity_1jrym1e" targetRef="Activity_1kikjaf" /> - <bpmn:callActivity id="Activity_1b2s2wr" name="Create and Instantiate each Vnf" calledElement="CreateInstantiateVnf"> - <bpmn:extensionElements> - <camunda:in source="request" target="request" /> - <camunda:in source="jobId" target="jobId" /> - <camunda:in source="NsInstanceId" target="NsInstanceId" /> - </bpmn:extensionElements> - <bpmn:incoming>Flow_1irbp9b</bpmn:incoming> - <bpmn:outgoing>Flow_0mi4nqa</bpmn:outgoing> - <bpmn:multiInstanceLoopCharacteristics camunda:asyncAfter="true" camunda:collection="${vnfCreateInstantiateRequests}" camunda:elementVariable="request" /> - </bpmn:callActivity> - <bpmn:boundaryEvent id="Event_0rbb817" name="Overall Wait" attachedToRef="Activity_1b2s2wr"> - <bpmn:outgoing>Flow_17zn7we</bpmn:outgoing> - <bpmn:timerEventDefinition id="TimerEventDefinition_13ud1f4"> - <bpmn:timeDuration xsi:type="bpmn:tFormalExpression">PT3H</bpmn:timeDuration> - </bpmn:timerEventDefinition> - </bpmn:boundaryEvent> - <bpmn:sequenceFlow id="Flow_17zn7we" sourceRef="Event_0rbb817" targetRef="Activity_16z66xm" /> - <bpmn:serviceTask id="Activity_0eou3y4" name="Prepare Create Instantiate requests" camunda:expression="${InstantiateNsTask.prepareCreateInstantiateRequests(execution)}"> - <bpmn:incoming>Flow_01ju1mj</bpmn:incoming> - <bpmn:outgoing>Flow_1irbp9b</bpmn:outgoing> - </bpmn:serviceTask> - <bpmn:sequenceFlow id="Flow_1irbp9b" sourceRef="Activity_0eou3y4" targetRef="Activity_1b2s2wr" /> - <bpmn:serviceTask id="Activity_1kikjaf" name="Get Vnf Pkg ID for each VNFD ID" camunda:expression="${InstantiateNsTask.getVnfPkgIdForEachVnfdId(execution)}"> - <bpmn:incoming>Flow_10zjw0w</bpmn:incoming> - <bpmn:outgoing>Flow_01ju1mj</bpmn:outgoing> - </bpmn:serviceTask> - <bpmn:sequenceFlow id="Flow_01ju1mj" sourceRef="Activity_1kikjaf" targetRef="Activity_0eou3y4" /> - <bpmn:serviceTask id="Activity_16cvdbw" name="Update NS Instance status to INSTANTIATED" camunda:expression="${InstantiateNsTask.updateNsInstanceStatusToInstantiated(execution)}"> - <bpmn:incoming>Flow_1nieng0</bpmn:incoming> - <bpmn:outgoing>Flow_0xptc0r</bpmn:outgoing> - </bpmn:serviceTask> - <bpmn:sequenceFlow id="Flow_0xptc0r" sourceRef="Activity_16cvdbw" targetRef="Activity_0gkpdft" /> - <bpmn:endEvent id="Event_1e4bwip"> - <bpmn:incoming>Flow_10oprxr</bpmn:incoming> - <bpmn:incoming>Flow_1p21p1m</bpmn:incoming> - <bpmn:errorEventDefinition id="ErrorEventDefinition_0vg6v5r" errorRef="Error_0jsct8p" /> - </bpmn:endEvent> - <bpmn:exclusiveGateway id="Gateway_0nxf0rv" name="is Successful?"> - <bpmn:incoming>Flow_15m4nm1</bpmn:incoming> - <bpmn:outgoing>Flow_1nieng0</bpmn:outgoing> - <bpmn:outgoing>Flow_10oprxr</bpmn:outgoing> - </bpmn:exclusiveGateway> - <bpmn:sequenceFlow id="Flow_1nieng0" name="Yes" sourceRef="Gateway_0nxf0rv" targetRef="Activity_16cvdbw"> - <bpmn:conditionExpression xsi:type="bpmn:tFormalExpression">#{isNsInstantiationSuccessful}</bpmn:conditionExpression> - </bpmn:sequenceFlow> - <bpmn:serviceTask id="Activity_14iwa8x" name="Check if VNF Instantiation was Successful" camunda:expression="${InstantiateNsTask.checkIfVnfInstantiationWasSuccessful(execution)}"> - <bpmn:incoming>Flow_0mi4nqa</bpmn:incoming> - <bpmn:outgoing>Flow_15m4nm1</bpmn:outgoing> - </bpmn:serviceTask> - <bpmn:sequenceFlow id="Flow_0mi4nqa" sourceRef="Activity_1b2s2wr" targetRef="Activity_14iwa8x" /> - <bpmn:sequenceFlow id="Flow_15m4nm1" sourceRef="Activity_14iwa8x" targetRef="Gateway_0nxf0rv" /> - <bpmn:serviceTask id="Activity_16z66xm" name="Log TimeOut" camunda:expression="${InstantiateNsTask.logTimeOut(execution)}"> - <bpmn:incoming>Flow_17zn7we</bpmn:incoming> - <bpmn:outgoing>Flow_1p21p1m</bpmn:outgoing> - </bpmn:serviceTask> - <bpmn:sequenceFlow id="Flow_10oprxr" name="No" sourceRef="Gateway_0nxf0rv" targetRef="Event_1e4bwip"> - <bpmn:conditionExpression xsi:type="bpmn:tFormalExpression">#{not isNsInstantiationSuccessful}</bpmn:conditionExpression> - </bpmn:sequenceFlow> - <bpmn:sequenceFlow id="Flow_1p21p1m" sourceRef="Activity_16z66xm" targetRef="Event_1e4bwip" /> - <bpmn:serviceTask id="Activity_0gkpdft" name="Update NSLcmOpOcc operation status to COMPLETED" camunda:expression="${InstantiateNsTask.updateNsLcmOpOccStatusToCompleted(execution)}"> - <bpmn:incoming>Flow_0xptc0r</bpmn:incoming> - <bpmn:outgoing>Flow_1i36dw4</bpmn:outgoing> - </bpmn:serviceTask> - <bpmn:sequenceFlow id="Flow_1i36dw4" sourceRef="Activity_0gkpdft" targetRef="Activity_1w09i1k" /> - </bpmn:process> - <bpmn:error id="Error_0jsct8p" name="NsWorkflowProcessingException" errorCode="INSTANTIATE_NS_WORKFLOW_PROCESSING_EXCEPTION" /> - <bpmndi:BPMNDiagram id="BPMNDiagram_1"> - <bpmndi:BPMNPlane id="BPMNPlane_1" bpmnElement="InstantiateNs"> - <bpmndi:BPMNEdge id="Flow_1p21p1m_di" bpmnElement="Flow_1p21p1m"> - <di:waypoint x="1250" y="270" /> - <di:waypoint x="1332" y="270" /> - </bpmndi:BPMNEdge> - <bpmndi:BPMNEdge id="Flow_10oprxr_di" bpmnElement="Flow_10oprxr"> - <di:waypoint x="1350" y="146" /> - <di:waypoint x="1350" y="252" /> - <bpmndi:BPMNLabel> - <dc:Bounds x="1358" y="196" width="14" height="14" /> - </bpmndi:BPMNLabel> - </bpmndi:BPMNEdge> - <bpmndi:BPMNEdge id="Flow_15m4nm1_di" bpmnElement="Flow_15m4nm1"> - <di:waypoint x="1250" y="121" /> - <di:waypoint x="1325" y="121" /> - </bpmndi:BPMNEdge> - <bpmndi:BPMNEdge id="Flow_0mi4nqa_di" bpmnElement="Flow_0mi4nqa"> - <di:waypoint x="1090" y="121" /> - <di:waypoint x="1150" y="121" /> - </bpmndi:BPMNEdge> - <bpmndi:BPMNEdge id="Flow_1nieng0_di" bpmnElement="Flow_1nieng0"> - <di:waypoint x="1375" y="121" /> - <di:waypoint x="1430" y="121" /> - <bpmndi:BPMNLabel> - <dc:Bounds x="1393" y="103" width="19" height="14" /> - </bpmndi:BPMNLabel> - </bpmndi:BPMNEdge> - <bpmndi:BPMNEdge id="Flow_0xptc0r_di" bpmnElement="Flow_0xptc0r"> - <di:waypoint x="1530" y="121" /> - <di:waypoint x="1580" y="121" /> - </bpmndi:BPMNEdge> - <bpmndi:BPMNEdge id="Flow_01ju1mj_di" bpmnElement="Flow_01ju1mj"> - <di:waypoint x="800" y="121" /> - <di:waypoint x="850" y="121" /> - </bpmndi:BPMNEdge> - <bpmndi:BPMNEdge id="Flow_1irbp9b_di" bpmnElement="Flow_1irbp9b"> - <di:waypoint x="950" y="121" /> - <di:waypoint x="990" y="121" /> - </bpmndi:BPMNEdge> - <bpmndi:BPMNEdge id="Flow_17zn7we_di" bpmnElement="Flow_17zn7we"> - <di:waypoint x="1070" y="179" /> - <di:waypoint x="1070" y="270" /> - <di:waypoint x="1150" y="270" /> - </bpmndi:BPMNEdge> - <bpmndi:BPMNEdge id="Flow_10zjw0w_di" bpmnElement="Flow_10zjw0w"> - <di:waypoint x="649" y="121" /> - <di:waypoint x="700" y="121" /> - </bpmndi:BPMNEdge> - <bpmndi:BPMNEdge id="Flow_1pcu8aa_di" bpmnElement="Flow_1pcu8aa"> - <di:waypoint x="1820" y="121" /> - <di:waypoint x="1862" y="121" /> - </bpmndi:BPMNEdge> - <bpmndi:BPMNEdge id="Flow_04pxtdd_di" bpmnElement="Flow_04pxtdd"> - <di:waypoint x="360" y="121" /> - <di:waypoint x="400" y="121" /> - </bpmndi:BPMNEdge> - <bpmndi:BPMNEdge id="SequenceFlow_0bdznyp_di" bpmnElement="SequenceFlow_0bdznyp"> - <di:waypoint x="500" y="121" /> - <di:waypoint x="549" y="121" /> - </bpmndi:BPMNEdge> - <bpmndi:BPMNEdge id="SequenceFlow_16k0f61_di" bpmnElement="SequenceFlow_16k0f61"> - <di:waypoint x="208" y="121" /> - <di:waypoint x="260" y="121" /> - </bpmndi:BPMNEdge> - <bpmndi:BPMNEdge id="Flow_1i36dw4_di" bpmnElement="Flow_1i36dw4"> - <di:waypoint x="1680" y="121" /> - <di:waypoint x="1720" y="121" /> - </bpmndi:BPMNEdge> - <bpmndi:BPMNShape id="_BPMNShape_StartEvent_2" bpmnElement="StartEvent_1"> - <dc:Bounds x="172" y="103" width="36" height="36" /> - <bpmndi:BPMNLabel> - <dc:Bounds x="157" y="146" width="67" height="14" /> - </bpmndi:BPMNLabel> - </bpmndi:BPMNShape> - <bpmndi:BPMNShape id="ServiceTask_1y7xfqt_di" bpmnElement="Task_0opnwx0"> - <dc:Bounds x="400" y="81" width="100" height="80" /> - </bpmndi:BPMNShape> - <bpmndi:BPMNShape id="Activity_194tqy0_di" bpmnElement="Activity_194tqy0"> - <dc:Bounds x="260" y="81" width="100" height="80" /> - </bpmndi:BPMNShape> - <bpmndi:BPMNShape id="EndEvent_0szswbo_di" bpmnElement="EndEvent_0szswbo"> - <dc:Bounds x="1862" y="103" width="36" height="36" /> - <bpmndi:BPMNLabel> - <dc:Bounds x="1848" y="79" width="63" height="14" /> - </bpmndi:BPMNLabel> - </bpmndi:BPMNShape> - <bpmndi:BPMNShape id="Activity_1w09i1k_di" bpmnElement="Activity_1w09i1k"> - <dc:Bounds x="1720" y="81" width="100" height="80" /> - </bpmndi:BPMNShape> - <bpmndi:BPMNShape id="Activity_0gkpdft_di" bpmnElement="Activity_0gkpdft"> - <dc:Bounds x="1580" y="81" width="100" height="80" /> - </bpmndi:BPMNShape> - <bpmndi:BPMNShape id="Activity_0pjxszh_di" bpmnElement="Activity_0pjxszh" isExpanded="true"> - <dc:Bounds x="380" y="270" width="510" height="130" /> - </bpmndi:BPMNShape> - <bpmndi:BPMNEdge id="Flow_07bh7l7_di" bpmnElement="Flow_07bh7l7"> - <di:waypoint x="438" y="333" /> - <di:waypoint x="500" y="333" /> - </bpmndi:BPMNEdge> - <bpmndi:BPMNEdge id="Flow_1wa1jpl_di" bpmnElement="Flow_1wa1jpl"> - <di:waypoint x="760" y="333" /> - <di:waypoint x="822" y="333" /> - </bpmndi:BPMNEdge> - <bpmndi:BPMNEdge id="Flow_0n3dai5_di" bpmnElement="Flow_0n3dai5"> - <di:waypoint x="600" y="333" /> - <di:waypoint x="660" y="333" /> - </bpmndi:BPMNEdge> - <bpmndi:BPMNShape id="Event_1rpzcl3_di" bpmnElement="Event_1rpzcl3"> - <dc:Bounds x="402" y="315" width="36" height="36" /> - <bpmndi:BPMNLabel> - <dc:Bounds x="408" y="358" width="24" height="14" /> - </bpmndi:BPMNLabel> - </bpmndi:BPMNShape> - <bpmndi:BPMNShape id="Activity_1miy3hw_di" bpmnElement="Activity_1miy3hw"> - <dc:Bounds x="500" y="293" width="100" height="80" /> - </bpmndi:BPMNShape> - <bpmndi:BPMNShape id="Activity_0ddja9m_di" bpmnElement="Activity_0ddja9m"> - <dc:Bounds x="660" y="293" width="100" height="80" /> - </bpmndi:BPMNShape> - <bpmndi:BPMNShape id="Event_1fcw3ei_di" bpmnElement="Event_1fcw3ei"> - <dc:Bounds x="822" y="315" width="36" height="36" /> - <bpmndi:BPMNLabel> - <dc:Bounds x="832" y="357" width="19" height="14" /> - </bpmndi:BPMNLabel> - </bpmndi:BPMNShape> - <bpmndi:BPMNShape id="Activity_0mtscwq_di" bpmnElement="Activity_0mtscwq" isExpanded="true"> - <dc:Bounds x="380" y="430" width="510" height="130" /> - </bpmndi:BPMNShape> - <bpmndi:BPMNEdge id="Flow_05lo00r_di" bpmnElement="Flow_05lo00r"> - <di:waypoint x="438" y="493" /> - <di:waypoint x="500" y="493" /> - </bpmndi:BPMNEdge> - <bpmndi:BPMNEdge id="Flow_16aryg5_di" bpmnElement="Flow_16aryg5"> - <di:waypoint x="760" y="493" /> - <di:waypoint x="822" y="493" /> - </bpmndi:BPMNEdge> - <bpmndi:BPMNEdge id="Flow_09zcw2a_di" bpmnElement="Flow_09zcw2a"> - <di:waypoint x="600" y="493" /> - <di:waypoint x="660" y="493" /> - </bpmndi:BPMNEdge> - <bpmndi:BPMNShape id="Event_0lqr6al_di" bpmnElement="Event_0lqr6al"> - <dc:Bounds x="402" y="475" width="36" height="36" /> - <bpmndi:BPMNLabel> - <dc:Bounds x="409" y="518" width="24" height="14" /> - </bpmndi:BPMNLabel> - </bpmndi:BPMNShape> - <bpmndi:BPMNShape id="Activity_17leldb_di" bpmnElement="Activity_17leldb"> - <dc:Bounds x="500" y="453" width="100" height="80" /> - </bpmndi:BPMNShape> - <bpmndi:BPMNShape id="Activity_1ezu7d4_di" bpmnElement="Activity_1ezu7d4"> - <dc:Bounds x="660" y="453" width="100" height="80" /> - </bpmndi:BPMNShape> - <bpmndi:BPMNShape id="Event_05ty7c4_di" bpmnElement="Event_05ty7c4"> - <dc:Bounds x="822" y="475" width="36" height="36" /> - </bpmndi:BPMNShape> - <bpmndi:BPMNShape id="Activity_1jrym1e_di" bpmnElement="Activity_1jrym1e"> - <dc:Bounds x="549" y="81" width="100" height="80" /> - </bpmndi:BPMNShape> - <bpmndi:BPMNShape id="Activity_1xjmizv_di" bpmnElement="Activity_1b2s2wr"> - <dc:Bounds x="990" y="81" width="100" height="80" /> - </bpmndi:BPMNShape> - <bpmndi:BPMNShape id="Activity_0eou3y4_di" bpmnElement="Activity_0eou3y4"> - <dc:Bounds x="850" y="81" width="100" height="80" /> - </bpmndi:BPMNShape> - <bpmndi:BPMNShape id="Activity_1kikjaf_di" bpmnElement="Activity_1kikjaf"> - <dc:Bounds x="700" y="81" width="100" height="80" /> - </bpmndi:BPMNShape> - <bpmndi:BPMNShape id="Activity_16cvdbw_di" bpmnElement="Activity_16cvdbw"> - <dc:Bounds x="1430" y="81" width="100" height="80" /> - </bpmndi:BPMNShape> - <bpmndi:BPMNShape id="Event_16umj30_di" bpmnElement="Event_1e4bwip"> - <dc:Bounds x="1332" y="252" width="36" height="36" /> - </bpmndi:BPMNShape> - <bpmndi:BPMNShape id="Gateway_0nxf0rv_di" bpmnElement="Gateway_0nxf0rv" isMarkerVisible="true"> - <dc:Bounds x="1325" y="96" width="50" height="50" /> - <bpmndi:BPMNLabel> - <dc:Bounds x="1320" y="66" width="71" height="14" /> - </bpmndi:BPMNLabel> - </bpmndi:BPMNShape> - <bpmndi:BPMNShape id="Activity_14iwa8x_di" bpmnElement="Activity_14iwa8x"> - <dc:Bounds x="1150" y="81" width="100" height="80" /> - </bpmndi:BPMNShape> - <bpmndi:BPMNShape id="Activity_16z66xm_di" bpmnElement="Activity_16z66xm"> - <dc:Bounds x="1150" y="230" width="100" height="80" /> - </bpmndi:BPMNShape> - <bpmndi:BPMNShape id="Event_0rbb817_di" bpmnElement="Event_0rbb817"> - <dc:Bounds x="1052" y="143" width="36" height="36" /> - <bpmndi:BPMNLabel> - <dc:Bounds x="1000" y="183" width="60" height="14" /> - </bpmndi:BPMNLabel> - </bpmndi:BPMNShape> - </bpmndi:BPMNPlane> - </bpmndi:BPMNDiagram> -</bpmn:definitions>
\ No newline at end of file diff --git a/so-etsi-nfvo/so-etsi-nfvo-ns-lcm/so-etsi-nfvo-ns-lcm-bpmn-flows/src/main/resources/META-INF/services/org.onap.so.client.RestProperties b/so-etsi-nfvo/so-etsi-nfvo-ns-lcm/so-etsi-nfvo-ns-lcm-bpmn-flows/src/main/resources/META-INF/services/org.onap.so.client.RestProperties deleted file mode 100644 index 9d9ba7371a..0000000000 --- a/so-etsi-nfvo/so-etsi-nfvo-ns-lcm/so-etsi-nfvo-ns-lcm-bpmn-flows/src/main/resources/META-INF/services/org.onap.so.client.RestProperties +++ /dev/null @@ -1 +0,0 @@ -org.onap.so.etsi.nfvo.ns.lcm.bpmn.flows.extclients.aai.AaiPropertiesImpl
\ No newline at end of file diff --git a/so-etsi-nfvo/so-etsi-nfvo-ns-lcm/so-etsi-nfvo-ns-lcm-bpmn-flows/src/main/resources/MonitorSol003AdapterCreateJob.bpmn b/so-etsi-nfvo/so-etsi-nfvo-ns-lcm/so-etsi-nfvo-ns-lcm-bpmn-flows/src/main/resources/MonitorSol003AdapterCreateJob.bpmn deleted file mode 100644 index a9204ec442..0000000000 --- a/so-etsi-nfvo/so-etsi-nfvo-ns-lcm/so-etsi-nfvo-ns-lcm-bpmn-flows/src/main/resources/MonitorSol003AdapterCreateJob.bpmn +++ /dev/null @@ -1,160 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<bpmn:definitions xmlns:bpmn="http://www.omg.org/spec/BPMN/20100524/MODEL" xmlns:bpmndi="http://www.omg.org/spec/BPMN/20100524/DI" xmlns:di="http://www.omg.org/spec/DD/20100524/DI" xmlns:dc="http://www.omg.org/spec/DD/20100524/DC" xmlns:camunda="http://camunda.org/schema/1.0/bpmn" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" id="Definitions_12gnsyw" targetNamespace="http://bpmn.io/schema/bpmn" exporter="Camunda Modeler" exporterVersion="3.4.1"> - <bpmn:process id="MonitorSol003AdapterCreateJob" name="MonitorSol003AdapterCreateJob" isExecutable="true"> - <bpmn:startEvent id="StartEvent_1"> - <bpmn:outgoing>SequenceFlow_1x3tbl0</bpmn:outgoing> - </bpmn:startEvent> - <bpmn:endEvent id="EndEvent_0rf1gde"> - <bpmn:incoming>SequenceFlow_1543qy7</bpmn:incoming> - </bpmn:endEvent> - <bpmn:subProcess id="SubProcess_19j0v63"> - <bpmn:incoming>SequenceFlow_1x3tbl0</bpmn:incoming> - <bpmn:outgoing>SequenceFlow_1v4yr3f</bpmn:outgoing> - <bpmn:startEvent id="StartEvent_01r97z2"> - <bpmn:outgoing>SequenceFlow_0s1plu9</bpmn:outgoing> - </bpmn:startEvent> - <bpmn:exclusiveGateway id="ExclusiveGateway_1hkl6yy" default="SequenceFlow_1vmxw9g"> - <bpmn:incoming>SequenceFlow_153a3kp</bpmn:incoming> - <bpmn:outgoing>SequenceFlow_1vmxw9g</bpmn:outgoing> - <bpmn:outgoing>SequenceFlow_0is7myf</bpmn:outgoing> - </bpmn:exclusiveGateway> - <bpmn:intermediateCatchEvent id="IntermediateCatchEvent_1besn3n" name="Wait between checks" camunda:asyncAfter="true"> - <bpmn:incoming>SequenceFlow_1vmxw9g</bpmn:incoming> - <bpmn:outgoing>SequenceFlow_0etw572</bpmn:outgoing> - <bpmn:timerEventDefinition id="TimerEventDefinition_0qgh11t"> - <bpmn:timeDuration xsi:type="bpmn:tFormalExpression">PT15S</bpmn:timeDuration> - </bpmn:timerEventDefinition> - </bpmn:intermediateCatchEvent> - <bpmn:endEvent id="EndEvent_1ohsce9"> - <bpmn:incoming>SequenceFlow_0is7myf</bpmn:incoming> - </bpmn:endEvent> - <bpmn:sequenceFlow id="SequenceFlow_0s1plu9" sourceRef="StartEvent_01r97z2" targetRef="ServiceTask_17jlnng" /> - <bpmn:sequenceFlow id="SequenceFlow_0etw572" sourceRef="IntermediateCatchEvent_1besn3n" targetRef="ServiceTask_17jlnng" /> - <bpmn:serviceTask id="ServiceTask_17jlnng" name=" Get Current Operation Status " camunda:asyncAfter="true" camunda:expression="${MonitorSol003AdapterCreateJobTask.getCurrentOperationStatus(execution)}"> - <bpmn:incoming>SequenceFlow_0etw572</bpmn:incoming> - <bpmn:incoming>SequenceFlow_0s1plu9</bpmn:incoming> - <bpmn:outgoing>SequenceFlow_153a3kp</bpmn:outgoing> - </bpmn:serviceTask> - <bpmn:sequenceFlow id="SequenceFlow_1vmxw9g" sourceRef="ExclusiveGateway_1hkl6yy" targetRef="IntermediateCatchEvent_1besn3n" /> - <bpmn:sequenceFlow id="SequenceFlow_0is7myf" sourceRef="ExclusiveGateway_1hkl6yy" targetRef="EndEvent_1ohsce9"> - <bpmn:conditionExpression xsi:type="bpmn:tFormalExpression">${MonitorSol003AdapterCreateJobTask.hasOperationFinished(execution)}</bpmn:conditionExpression> - </bpmn:sequenceFlow> - <bpmn:sequenceFlow id="SequenceFlow_153a3kp" sourceRef="ServiceTask_17jlnng" targetRef="ExclusiveGateway_1hkl6yy" /> - </bpmn:subProcess> - <bpmn:endEvent id="EndEvent_1w3t3t0" name="Timeout Exception"> - <bpmn:incoming>SequenceFlow_0bcgtzj</bpmn:incoming> - <bpmn:terminateEventDefinition id="TerminateEventDefinition_0fjecl3" /> - </bpmn:endEvent> - <bpmn:boundaryEvent id="BoundaryEvent_0xiabzp" name="Overall Wait" attachedToRef="SubProcess_19j0v63"> - <bpmn:outgoing>SequenceFlow_1i1o9sh</bpmn:outgoing> - <bpmn:timerEventDefinition id="TimerEventDefinition_10kqw61"> - <bpmn:timeDuration xsi:type="bpmn:tFormalExpression">PT3H</bpmn:timeDuration> - </bpmn:timerEventDefinition> - </bpmn:boundaryEvent> - <bpmn:sequenceFlow id="SequenceFlow_1v4yr3f" sourceRef="SubProcess_19j0v63" targetRef="ServiceTask_1gms128" /> - <bpmn:sequenceFlow id="SequenceFlow_1i1o9sh" sourceRef="BoundaryEvent_0xiabzp" targetRef="ServiceTask_1s87b92" /> - <bpmn:sequenceFlow id="SequenceFlow_1x3tbl0" sourceRef="StartEvent_1" targetRef="SubProcess_19j0v63" /> - <bpmn:serviceTask id="ServiceTask_1s87b92" name=" Time Out Log Failure " camunda:asyncAfter="true" camunda:expression="${MonitorSol003AdapterCreateJobTask.timeOutLogFailue(execution)}"> - <bpmn:incoming>SequenceFlow_1i1o9sh</bpmn:incoming> - <bpmn:outgoing>SequenceFlow_0bcgtzj</bpmn:outgoing> - </bpmn:serviceTask> - <bpmn:sequenceFlow id="SequenceFlow_0bcgtzj" sourceRef="ServiceTask_1s87b92" targetRef="EndEvent_1w3t3t0" /> - <bpmn:serviceTask id="ServiceTask_1gms128" name=" Check if operation was successful " camunda:asyncAfter="true" camunda:expression="${MonitorSol003AdapterCreateJobTask.checkIfOperationWasSuccessful(execution)}"> - <bpmn:incoming>SequenceFlow_1v4yr3f</bpmn:incoming> - <bpmn:outgoing>SequenceFlow_1543qy7</bpmn:outgoing> - </bpmn:serviceTask> - <bpmn:sequenceFlow id="SequenceFlow_1543qy7" sourceRef="ServiceTask_1gms128" targetRef="EndEvent_0rf1gde" /> - </bpmn:process> - <bpmndi:BPMNDiagram id="BPMNDiagram_1"> - <bpmndi:BPMNPlane id="BPMNPlane_1" bpmnElement="MonitorSol003AdapterCreateJob"> - <bpmndi:BPMNShape id="_BPMNShape_StartEvent_2" bpmnElement="StartEvent_1"> - <dc:Bounds x="161" y="330" width="36" height="36" /> - </bpmndi:BPMNShape> - <bpmndi:BPMNShape id="EndEvent_0rf1gde_di" bpmnElement="EndEvent_0rf1gde"> - <dc:Bounds x="1102" y="100" width="36" height="36" /> - </bpmndi:BPMNShape> - <bpmndi:BPMNShape id="SubProcess_19j0v63_di" bpmnElement="SubProcess_19j0v63" isExpanded="true"> - <dc:Bounds x="301" y="248" width="523" height="200" /> - </bpmndi:BPMNShape> - <bpmndi:BPMNShape id="EndEvent_1w3t3t0_di" bpmnElement="EndEvent_1w3t3t0"> - <dc:Bounds x="1102" y="322" width="36" height="36" /> - <bpmndi:BPMNLabel> - <dc:Bounds x="1095" y="282" width="49" height="27" /> - </bpmndi:BPMNLabel> - </bpmndi:BPMNShape> - <bpmndi:BPMNShape id="BoundaryEvent_0xiabzp_di" bpmnElement="BoundaryEvent_0xiabzp"> - <dc:Bounds x="806" y="322" width="36" height="36" /> - <bpmndi:BPMNLabel> - <dc:Bounds x="794" y="361" width="61" height="14" /> - </bpmndi:BPMNLabel> - </bpmndi:BPMNShape> - <bpmndi:BPMNEdge id="SequenceFlow_1v4yr3f_di" bpmnElement="SequenceFlow_1v4yr3f"> - <di:waypoint x="563" y="248" /> - <di:waypoint x="563" y="118" /> - <di:waypoint x="923" y="118" /> - </bpmndi:BPMNEdge> - <bpmndi:BPMNEdge id="SequenceFlow_1i1o9sh_di" bpmnElement="SequenceFlow_1i1o9sh"> - <di:waypoint x="842" y="340" /> - <di:waypoint x="923" y="340" /> - </bpmndi:BPMNEdge> - <bpmndi:BPMNShape id="StartEvent_01r97z2_di" bpmnElement="StartEvent_01r97z2"> - <dc:Bounds x="330" y="306" width="36" height="36" /> - </bpmndi:BPMNShape> - <bpmndi:BPMNShape id="ExclusiveGateway_1hkl6yy_di" bpmnElement="ExclusiveGateway_1hkl6yy" isMarkerVisible="true"> - <dc:Bounds x="609" y="299" width="50" height="50" /> - </bpmndi:BPMNShape> - <bpmndi:BPMNShape id="IntermediateCatchEvent_1besn3n_di" bpmnElement="IntermediateCatchEvent_1besn3n"> - <dc:Bounds x="550" y="378" width="36" height="36" /> - <bpmndi:BPMNLabel> - <dc:Bounds x="537" y="421" width="66" height="27" /> - </bpmndi:BPMNLabel> - </bpmndi:BPMNShape> - <bpmndi:BPMNShape id="EndEvent_1ohsce9_di" bpmnElement="EndEvent_1ohsce9"> - <dc:Bounds x="722" y="306" width="36" height="36" /> - </bpmndi:BPMNShape> - <bpmndi:BPMNEdge id="SequenceFlow_1x3tbl0_di" bpmnElement="SequenceFlow_1x3tbl0"> - <di:waypoint x="197" y="348" /> - <di:waypoint x="301" y="348" /> - </bpmndi:BPMNEdge> - <bpmndi:BPMNShape id="ServiceTask_17jlnng_di" bpmnElement="ServiceTask_17jlnng"> - <dc:Bounds x="425" y="284" width="100" height="80" /> - </bpmndi:BPMNShape> - <bpmndi:BPMNEdge id="SequenceFlow_0s1plu9_di" bpmnElement="SequenceFlow_0s1plu9"> - <di:waypoint x="366" y="324" /> - <di:waypoint x="425" y="324" /> - </bpmndi:BPMNEdge> - <bpmndi:BPMNEdge id="SequenceFlow_0etw572_di" bpmnElement="SequenceFlow_0etw572"> - <di:waypoint x="550" y="396" /> - <di:waypoint x="486" y="396" /> - <di:waypoint x="486" y="367" /> - </bpmndi:BPMNEdge> - <bpmndi:BPMNEdge id="SequenceFlow_1vmxw9g_di" bpmnElement="SequenceFlow_1vmxw9g"> - <di:waypoint x="634" y="349" /> - <di:waypoint x="634" y="396" /> - <di:waypoint x="586" y="396" /> - </bpmndi:BPMNEdge> - <bpmndi:BPMNEdge id="SequenceFlow_0is7myf_di" bpmnElement="SequenceFlow_0is7myf"> - <di:waypoint x="659" y="324" /> - <di:waypoint x="722" y="324" /> - </bpmndi:BPMNEdge> - <bpmndi:BPMNEdge id="SequenceFlow_153a3kp_di" bpmnElement="SequenceFlow_153a3kp"> - <di:waypoint x="525" y="324" /> - <di:waypoint x="609" y="324" /> - </bpmndi:BPMNEdge> - <bpmndi:BPMNShape id="ServiceTask_1s87b92_di" bpmnElement="ServiceTask_1s87b92"> - <dc:Bounds x="923" y="300" width="100" height="80" /> - </bpmndi:BPMNShape> - <bpmndi:BPMNEdge id="SequenceFlow_0bcgtzj_di" bpmnElement="SequenceFlow_0bcgtzj"> - <di:waypoint x="1023" y="340" /> - <di:waypoint x="1102" y="340" /> - </bpmndi:BPMNEdge> - <bpmndi:BPMNShape id="ServiceTask_1gms128_di" bpmnElement="ServiceTask_1gms128"> - <dc:Bounds x="923" y="78" width="100" height="80" /> - </bpmndi:BPMNShape> - <bpmndi:BPMNEdge id="SequenceFlow_1543qy7_di" bpmnElement="SequenceFlow_1543qy7"> - <di:waypoint x="1023" y="118" /> - <di:waypoint x="1102" y="118" /> - </bpmndi:BPMNEdge> - </bpmndi:BPMNPlane> - </bpmndi:BPMNDiagram> -</bpmn:definitions> diff --git a/so-etsi-nfvo/so-etsi-nfvo-ns-lcm/so-etsi-nfvo-ns-lcm-bpmn-flows/src/main/resources/MonitorSol003AdapterCreateNodeStatus.bpmn b/so-etsi-nfvo/so-etsi-nfvo-ns-lcm/so-etsi-nfvo-ns-lcm-bpmn-flows/src/main/resources/MonitorSol003AdapterCreateNodeStatus.bpmn deleted file mode 100644 index c0de5e0352..0000000000 --- a/so-etsi-nfvo/so-etsi-nfvo-ns-lcm/so-etsi-nfvo-ns-lcm-bpmn-flows/src/main/resources/MonitorSol003AdapterCreateNodeStatus.bpmn +++ /dev/null @@ -1,138 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<bpmn:definitions xmlns:bpmn="http://www.omg.org/spec/BPMN/20100524/MODEL" xmlns:bpmndi="http://www.omg.org/spec/BPMN/20100524/DI" xmlns:di="http://www.omg.org/spec/DD/20100524/DI" xmlns:dc="http://www.omg.org/spec/DD/20100524/DC" xmlns:camunda="http://camunda.org/schema/1.0/bpmn" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" id="Definitions_1ko0frn" targetNamespace="http://bpmn.io/schema/bpmn" exporter="Camunda Modeler" exporterVersion="3.4.1"> - <bpmn:process id="MonitorSol003AdapterCreateNodeStatus" name="MonitorSol003AdapterCreateNodeStatus" isExecutable="true"> - <bpmn:startEvent id="StartEvent_0k0qfjb"> - <bpmn:outgoing>SequenceFlow_1miob62</bpmn:outgoing> - </bpmn:startEvent> - <bpmn:subProcess id="SubProcess_10wotbc"> - <bpmn:incoming>SequenceFlow_1miob62</bpmn:incoming> - <bpmn:startEvent id="StartEvent_0r9qf43"> - <bpmn:outgoing>SequenceFlow_1moaz0q</bpmn:outgoing> - </bpmn:startEvent> - <bpmn:exclusiveGateway id="ExclusiveGateway_00xtlfj" default="SequenceFlow_1luu31f"> - <bpmn:incoming>SequenceFlow_0qvy3sn</bpmn:incoming> - <bpmn:outgoing>SequenceFlow_1rxbeqi</bpmn:outgoing> - <bpmn:outgoing>SequenceFlow_1luu31f</bpmn:outgoing> - </bpmn:exclusiveGateway> - <bpmn:intermediateCatchEvent id="IntermediateCatchEvent_0xuznv9" name="Wait between checks" camunda:asyncAfter="true"> - <bpmn:incoming>SequenceFlow_1luu31f</bpmn:incoming> - <bpmn:outgoing>SequenceFlow_09t51ao</bpmn:outgoing> - <bpmn:timerEventDefinition id="TimerEventDefinition_0vrbrge"> - <bpmn:timeDuration xsi:type="bpmn:tFormalExpression">PT15S</bpmn:timeDuration> - </bpmn:timerEventDefinition> - </bpmn:intermediateCatchEvent> - <bpmn:endEvent id="EndEvent_0tei3i9"> - <bpmn:incoming>SequenceFlow_1rxbeqi</bpmn:incoming> - </bpmn:endEvent> - <bpmn:serviceTask id="ServiceTask_0y71su8" name=" Get node status " camunda:asyncAfter="true" camunda:expression="${MonitorInstantiateSol003AdapterNodeTask.getNodeStatus(execution)}"> - <bpmn:incoming>SequenceFlow_1moaz0q</bpmn:incoming> - <bpmn:incoming>SequenceFlow_09t51ao</bpmn:incoming> - <bpmn:outgoing>SequenceFlow_0qvy3sn</bpmn:outgoing> - </bpmn:serviceTask> - <bpmn:sequenceFlow id="SequenceFlow_1rxbeqi" name=" create vnf success " sourceRef="ExclusiveGateway_00xtlfj" targetRef="EndEvent_0tei3i9"> - <bpmn:conditionExpression xsi:type="bpmn:tFormalExpression">${execution.getVariable("createVnfNodeStatus")}</bpmn:conditionExpression> - </bpmn:sequenceFlow> - <bpmn:sequenceFlow id="SequenceFlow_1luu31f" sourceRef="ExclusiveGateway_00xtlfj" targetRef="IntermediateCatchEvent_0xuznv9" /> - <bpmn:sequenceFlow id="SequenceFlow_1moaz0q" sourceRef="StartEvent_0r9qf43" targetRef="ServiceTask_0y71su8" /> - <bpmn:sequenceFlow id="SequenceFlow_0qvy3sn" sourceRef="ServiceTask_0y71su8" targetRef="ExclusiveGateway_00xtlfj" /> - <bpmn:sequenceFlow id="SequenceFlow_09t51ao" sourceRef="IntermediateCatchEvent_0xuznv9" targetRef="ServiceTask_0y71su8" /> - </bpmn:subProcess> - <bpmn:endEvent id="EndEvent_1b83rci" name="Timeout Exception"> - <bpmn:incoming>SequenceFlow_0uiqnl8</bpmn:incoming> - <bpmn:terminateEventDefinition id="TerminateEventDefinition_12rjfva" /> - </bpmn:endEvent> - <bpmn:serviceTask id="ServiceTask_12qp0ty" name=" Time Out Log Failure " camunda:asyncAfter="true" camunda:expression="${MonitorSol003AdapterNodeTask.timeOutLogFailue(execution)}"> - <bpmn:incoming>SequenceFlow_0qcc5x4</bpmn:incoming> - <bpmn:outgoing>SequenceFlow_0uiqnl8</bpmn:outgoing> - </bpmn:serviceTask> - <bpmn:boundaryEvent id="BoundaryEvent_1f5o5i9" name="Overall Wait" attachedToRef="SubProcess_10wotbc"> - <bpmn:outgoing>SequenceFlow_0qcc5x4</bpmn:outgoing> - <bpmn:timerEventDefinition id="TimerEventDefinition_1t3ya63"> - <bpmn:timeDuration xsi:type="bpmn:tFormalExpression">PT3H</bpmn:timeDuration> - </bpmn:timerEventDefinition> - </bpmn:boundaryEvent> - <bpmn:sequenceFlow id="SequenceFlow_1miob62" sourceRef="StartEvent_0k0qfjb" targetRef="SubProcess_10wotbc" /> - <bpmn:sequenceFlow id="SequenceFlow_0uiqnl8" sourceRef="ServiceTask_12qp0ty" targetRef="EndEvent_1b83rci" /> - <bpmn:sequenceFlow id="SequenceFlow_0qcc5x4" sourceRef="BoundaryEvent_1f5o5i9" targetRef="ServiceTask_12qp0ty" /> - </bpmn:process> - <bpmndi:BPMNDiagram id="BPMNDiagram_1"> - <bpmndi:BPMNPlane id="BPMNPlane_1" bpmnElement="MonitorSol003AdapterCreateNodeStatus"> - <bpmndi:BPMNShape id="StartEvent_0k0qfjb_di" bpmnElement="StartEvent_0k0qfjb"> - <dc:Bounds x="155" y="159" width="36" height="36" /> - </bpmndi:BPMNShape> - <bpmndi:BPMNShape id="SubProcess_10wotbc_di" bpmnElement="SubProcess_10wotbc" isExpanded="true"> - <dc:Bounds x="293" y="77" width="523" height="200" /> - </bpmndi:BPMNShape> - <bpmndi:BPMNShape id="EndEvent_1b83rci_di" bpmnElement="EndEvent_1b83rci"> - <dc:Bounds x="1096" y="151" width="36" height="36" /> - <bpmndi:BPMNLabel> - <dc:Bounds x="1089" y="111" width="49" height="27" /> - </bpmndi:BPMNLabel> - </bpmndi:BPMNShape> - <bpmndi:BPMNShape id="ServiceTask_12qp0ty_di" bpmnElement="ServiceTask_12qp0ty"> - <dc:Bounds x="917" y="129" width="100" height="80" /> - </bpmndi:BPMNShape> - <bpmndi:BPMNShape id="BoundaryEvent_1f5o5i9_di" bpmnElement="BoundaryEvent_1f5o5i9"> - <dc:Bounds x="800" y="151" width="36" height="36" /> - <bpmndi:BPMNLabel> - <dc:Bounds x="788" y="190" width="61" height="14" /> - </bpmndi:BPMNLabel> - </bpmndi:BPMNShape> - <bpmndi:BPMNEdge id="SequenceFlow_1miob62_di" bpmnElement="SequenceFlow_1miob62"> - <di:waypoint x="191" y="177" /> - <di:waypoint x="293" y="177" /> - </bpmndi:BPMNEdge> - <bpmndi:BPMNEdge id="SequenceFlow_0uiqnl8_di" bpmnElement="SequenceFlow_0uiqnl8"> - <di:waypoint x="1017" y="169" /> - <di:waypoint x="1096" y="169" /> - </bpmndi:BPMNEdge> - <bpmndi:BPMNEdge id="SequenceFlow_0qcc5x4_di" bpmnElement="SequenceFlow_0qcc5x4"> - <di:waypoint x="836" y="169" /> - <di:waypoint x="917" y="169" /> - </bpmndi:BPMNEdge> - <bpmndi:BPMNShape id="StartEvent_0r9qf43_di" bpmnElement="StartEvent_0r9qf43"> - <dc:Bounds x="324" y="135" width="36" height="36" /> - </bpmndi:BPMNShape> - <bpmndi:BPMNShape id="ExclusiveGateway_00xtlfj_di" bpmnElement="ExclusiveGateway_00xtlfj" isMarkerVisible="true"> - <dc:Bounds x="603" y="128" width="50" height="50" /> - </bpmndi:BPMNShape> - <bpmndi:BPMNShape id="IntermediateCatchEvent_0xuznv9_di" bpmnElement="IntermediateCatchEvent_0xuznv9"> - <dc:Bounds x="544" y="207" width="36" height="36" /> - <bpmndi:BPMNLabel> - <dc:Bounds x="532" y="250" width="66" height="27" /> - </bpmndi:BPMNLabel> - </bpmndi:BPMNShape> - <bpmndi:BPMNShape id="EndEvent_0tei3i9_di" bpmnElement="EndEvent_0tei3i9"> - <dc:Bounds x="716" y="135" width="36" height="36" /> - </bpmndi:BPMNShape> - <bpmndi:BPMNShape id="ServiceTask_0y71su8_di" bpmnElement="ServiceTask_0y71su8"> - <dc:Bounds x="412" y="113" width="100" height="80" /> - </bpmndi:BPMNShape> - <bpmndi:BPMNEdge id="SequenceFlow_1rxbeqi_di" bpmnElement="SequenceFlow_1rxbeqi"> - <di:waypoint x="653" y="153" /> - <di:waypoint x="716" y="153" /> - <bpmndi:BPMNLabel> - <dc:Bounds x="660" y="135" width="50" height="80" /> - </bpmndi:BPMNLabel> - </bpmndi:BPMNEdge> - <bpmndi:BPMNEdge id="SequenceFlow_1luu31f_di" bpmnElement="SequenceFlow_1luu31f"> - <di:waypoint x="628" y="178" /> - <di:waypoint x="628" y="225" /> - <di:waypoint x="580" y="225" /> - </bpmndi:BPMNEdge> - <bpmndi:BPMNEdge id="SequenceFlow_1moaz0q_di" bpmnElement="SequenceFlow_1moaz0q"> - <di:waypoint x="360" y="153" /> - <di:waypoint x="412" y="153" /> - </bpmndi:BPMNEdge> - <bpmndi:BPMNEdge id="SequenceFlow_0qvy3sn_di" bpmnElement="SequenceFlow_0qvy3sn"> - <di:waypoint x="512" y="153" /> - <di:waypoint x="603" y="153" /> - </bpmndi:BPMNEdge> - <bpmndi:BPMNEdge id="SequenceFlow_09t51ao_di" bpmnElement="SequenceFlow_09t51ao"> - <di:waypoint x="544" y="225" /> - <di:waypoint x="451" y="225" /> - <di:waypoint x="452" y="193" /> - </bpmndi:BPMNEdge> - </bpmndi:BPMNPlane> - </bpmndi:BPMNDiagram> -</bpmn:definitions> diff --git a/so-etsi-nfvo/so-etsi-nfvo-ns-lcm/so-etsi-nfvo-ns-lcm-bpmn-flows/src/main/resources/MonitorSol003AdapterTerminateJob.bpmn b/so-etsi-nfvo/so-etsi-nfvo-ns-lcm/so-etsi-nfvo-ns-lcm-bpmn-flows/src/main/resources/MonitorSol003AdapterTerminateJob.bpmn deleted file mode 100644 index 1181a497b2..0000000000 --- a/so-etsi-nfvo/so-etsi-nfvo-ns-lcm/so-etsi-nfvo-ns-lcm-bpmn-flows/src/main/resources/MonitorSol003AdapterTerminateJob.bpmn +++ /dev/null @@ -1,160 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<bpmn:definitions xmlns:bpmn="http://www.omg.org/spec/BPMN/20100524/MODEL" xmlns:bpmndi="http://www.omg.org/spec/BPMN/20100524/DI" xmlns:di="http://www.omg.org/spec/DD/20100524/DI" xmlns:dc="http://www.omg.org/spec/DD/20100524/DC" xmlns:camunda="http://camunda.org/schema/1.0/bpmn" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" id="Definitions_12gnsyw" targetNamespace="http://bpmn.io/schema/bpmn" exporter="Camunda Modeler" exporterVersion="4.2.0"> - <bpmn:process id="MonitorSol003AdapterTerminateJob" name="MonitorSol003AdapterTerminateJob" isExecutable="true"> - <bpmn:startEvent id="StartEvent_1"> - <bpmn:outgoing>SequenceFlow_1x3tbl0</bpmn:outgoing> - </bpmn:startEvent> - <bpmn:endEvent id="EndEvent_0rf1gde"> - <bpmn:incoming>SequenceFlow_1543qy7</bpmn:incoming> - </bpmn:endEvent> - <bpmn:subProcess id="SubProcess_19j0v63"> - <bpmn:incoming>SequenceFlow_1x3tbl0</bpmn:incoming> - <bpmn:outgoing>SequenceFlow_1v4yr3f</bpmn:outgoing> - <bpmn:startEvent id="StartEvent_01r97z2"> - <bpmn:outgoing>SequenceFlow_0s1plu9</bpmn:outgoing> - </bpmn:startEvent> - <bpmn:exclusiveGateway id="ExclusiveGateway_1hkl6yy" default="SequenceFlow_1vmxw9g"> - <bpmn:incoming>SequenceFlow_153a3kp</bpmn:incoming> - <bpmn:outgoing>SequenceFlow_1vmxw9g</bpmn:outgoing> - <bpmn:outgoing>SequenceFlow_0is7myf</bpmn:outgoing> - </bpmn:exclusiveGateway> - <bpmn:intermediateCatchEvent id="IntermediateCatchEvent_1besn3n" name="Wait between checks" camunda:asyncAfter="true"> - <bpmn:incoming>SequenceFlow_1vmxw9g</bpmn:incoming> - <bpmn:outgoing>SequenceFlow_0etw572</bpmn:outgoing> - <bpmn:timerEventDefinition id="TimerEventDefinition_0qgh11t"> - <bpmn:timeDuration xsi:type="bpmn:tFormalExpression">PT15S</bpmn:timeDuration> - </bpmn:timerEventDefinition> - </bpmn:intermediateCatchEvent> - <bpmn:endEvent id="EndEvent_1ohsce9"> - <bpmn:incoming>SequenceFlow_0is7myf</bpmn:incoming> - </bpmn:endEvent> - <bpmn:sequenceFlow id="SequenceFlow_0s1plu9" sourceRef="StartEvent_01r97z2" targetRef="ServiceTask_17jlnng" /> - <bpmn:sequenceFlow id="SequenceFlow_0etw572" sourceRef="IntermediateCatchEvent_1besn3n" targetRef="ServiceTask_17jlnng" /> - <bpmn:serviceTask id="ServiceTask_17jlnng" name=" Get Current Operation Status " camunda:asyncAfter="true" camunda:expression="${MonitorSol003AdapterTerminateJobTask.getCurrentOperationStatus(execution)}"> - <bpmn:incoming>SequenceFlow_0etw572</bpmn:incoming> - <bpmn:incoming>SequenceFlow_0s1plu9</bpmn:incoming> - <bpmn:outgoing>SequenceFlow_153a3kp</bpmn:outgoing> - </bpmn:serviceTask> - <bpmn:sequenceFlow id="SequenceFlow_1vmxw9g" sourceRef="ExclusiveGateway_1hkl6yy" targetRef="IntermediateCatchEvent_1besn3n" /> - <bpmn:sequenceFlow id="SequenceFlow_0is7myf" sourceRef="ExclusiveGateway_1hkl6yy" targetRef="EndEvent_1ohsce9"> - <bpmn:conditionExpression xsi:type="bpmn:tFormalExpression">${MonitorSol003AdapterCreateJobTask.hasOperationFinished(execution)}</bpmn:conditionExpression> - </bpmn:sequenceFlow> - <bpmn:sequenceFlow id="SequenceFlow_153a3kp" sourceRef="ServiceTask_17jlnng" targetRef="ExclusiveGateway_1hkl6yy" /> - </bpmn:subProcess> - <bpmn:endEvent id="EndEvent_1w3t3t0" name="Timeout Exception"> - <bpmn:incoming>SequenceFlow_0bcgtzj</bpmn:incoming> - <bpmn:terminateEventDefinition id="TerminateEventDefinition_0fjecl3" /> - </bpmn:endEvent> - <bpmn:boundaryEvent id="BoundaryEvent_0xiabzp" name="Overall Wait" attachedToRef="SubProcess_19j0v63"> - <bpmn:outgoing>SequenceFlow_1i1o9sh</bpmn:outgoing> - <bpmn:timerEventDefinition id="TimerEventDefinition_10kqw61"> - <bpmn:timeDuration xsi:type="bpmn:tFormalExpression">PT3H</bpmn:timeDuration> - </bpmn:timerEventDefinition> - </bpmn:boundaryEvent> - <bpmn:sequenceFlow id="SequenceFlow_1v4yr3f" sourceRef="SubProcess_19j0v63" targetRef="ServiceTask_1gms128" /> - <bpmn:sequenceFlow id="SequenceFlow_1i1o9sh" sourceRef="BoundaryEvent_0xiabzp" targetRef="ServiceTask_1s87b92" /> - <bpmn:sequenceFlow id="SequenceFlow_1x3tbl0" sourceRef="StartEvent_1" targetRef="SubProcess_19j0v63" /> - <bpmn:serviceTask id="ServiceTask_1s87b92" name=" Time Out Log Failure " camunda:asyncAfter="true" camunda:expression="${MonitorSol003AdapterTerminateJobTask.timeOutLogFailure(execution)}"> - <bpmn:incoming>SequenceFlow_1i1o9sh</bpmn:incoming> - <bpmn:outgoing>SequenceFlow_0bcgtzj</bpmn:outgoing> - </bpmn:serviceTask> - <bpmn:sequenceFlow id="SequenceFlow_0bcgtzj" sourceRef="ServiceTask_1s87b92" targetRef="EndEvent_1w3t3t0" /> - <bpmn:serviceTask id="ServiceTask_1gms128" name=" Check if operation was successful " camunda:asyncAfter="true" camunda:expression="${MonitorSol003AdapterTerminateJobTask.checkIfOperationWasSuccessful(execution)}"> - <bpmn:incoming>SequenceFlow_1v4yr3f</bpmn:incoming> - <bpmn:outgoing>SequenceFlow_1543qy7</bpmn:outgoing> - </bpmn:serviceTask> - <bpmn:sequenceFlow id="SequenceFlow_1543qy7" sourceRef="ServiceTask_1gms128" targetRef="EndEvent_0rf1gde" /> - </bpmn:process> - <bpmndi:BPMNDiagram id="BPMNDiagram_1"> - <bpmndi:BPMNPlane id="BPMNPlane_1" bpmnElement="MonitorSol003AdapterTerminateJob"> - <bpmndi:BPMNEdge id="SequenceFlow_1543qy7_di" bpmnElement="SequenceFlow_1543qy7"> - <di:waypoint x="1023" y="118" /> - <di:waypoint x="1102" y="118" /> - </bpmndi:BPMNEdge> - <bpmndi:BPMNEdge id="SequenceFlow_0bcgtzj_di" bpmnElement="SequenceFlow_0bcgtzj"> - <di:waypoint x="1023" y="340" /> - <di:waypoint x="1102" y="340" /> - </bpmndi:BPMNEdge> - <bpmndi:BPMNEdge id="SequenceFlow_1x3tbl0_di" bpmnElement="SequenceFlow_1x3tbl0"> - <di:waypoint x="197" y="348" /> - <di:waypoint x="301" y="348" /> - </bpmndi:BPMNEdge> - <bpmndi:BPMNEdge id="SequenceFlow_1i1o9sh_di" bpmnElement="SequenceFlow_1i1o9sh"> - <di:waypoint x="842" y="340" /> - <di:waypoint x="923" y="340" /> - </bpmndi:BPMNEdge> - <bpmndi:BPMNEdge id="SequenceFlow_1v4yr3f_di" bpmnElement="SequenceFlow_1v4yr3f"> - <di:waypoint x="563" y="248" /> - <di:waypoint x="563" y="118" /> - <di:waypoint x="923" y="118" /> - </bpmndi:BPMNEdge> - <bpmndi:BPMNShape id="_BPMNShape_StartEvent_2" bpmnElement="StartEvent_1"> - <dc:Bounds x="161" y="330" width="36" height="36" /> - </bpmndi:BPMNShape> - <bpmndi:BPMNShape id="EndEvent_0rf1gde_di" bpmnElement="EndEvent_0rf1gde"> - <dc:Bounds x="1102" y="100" width="36" height="36" /> - </bpmndi:BPMNShape> - <bpmndi:BPMNShape id="SubProcess_19j0v63_di" bpmnElement="SubProcess_19j0v63" isExpanded="true"> - <dc:Bounds x="301" y="248" width="523" height="200" /> - </bpmndi:BPMNShape> - <bpmndi:BPMNEdge id="SequenceFlow_153a3kp_di" bpmnElement="SequenceFlow_153a3kp"> - <di:waypoint x="525" y="324" /> - <di:waypoint x="609" y="324" /> - </bpmndi:BPMNEdge> - <bpmndi:BPMNEdge id="SequenceFlow_0is7myf_di" bpmnElement="SequenceFlow_0is7myf"> - <di:waypoint x="659" y="324" /> - <di:waypoint x="722" y="324" /> - </bpmndi:BPMNEdge> - <bpmndi:BPMNEdge id="SequenceFlow_1vmxw9g_di" bpmnElement="SequenceFlow_1vmxw9g"> - <di:waypoint x="634" y="349" /> - <di:waypoint x="634" y="396" /> - <di:waypoint x="586" y="396" /> - </bpmndi:BPMNEdge> - <bpmndi:BPMNEdge id="SequenceFlow_0etw572_di" bpmnElement="SequenceFlow_0etw572"> - <di:waypoint x="550" y="396" /> - <di:waypoint x="486" y="396" /> - <di:waypoint x="486" y="367" /> - </bpmndi:BPMNEdge> - <bpmndi:BPMNEdge id="SequenceFlow_0s1plu9_di" bpmnElement="SequenceFlow_0s1plu9"> - <di:waypoint x="366" y="324" /> - <di:waypoint x="425" y="324" /> - </bpmndi:BPMNEdge> - <bpmndi:BPMNShape id="StartEvent_01r97z2_di" bpmnElement="StartEvent_01r97z2"> - <dc:Bounds x="330" y="306" width="36" height="36" /> - </bpmndi:BPMNShape> - <bpmndi:BPMNShape id="ExclusiveGateway_1hkl6yy_di" bpmnElement="ExclusiveGateway_1hkl6yy" isMarkerVisible="true"> - <dc:Bounds x="609" y="299" width="50" height="50" /> - </bpmndi:BPMNShape> - <bpmndi:BPMNShape id="IntermediateCatchEvent_1besn3n_di" bpmnElement="IntermediateCatchEvent_1besn3n"> - <dc:Bounds x="550" y="378" width="36" height="36" /> - <bpmndi:BPMNLabel> - <dc:Bounds x="537" y="421" width="66" height="27" /> - </bpmndi:BPMNLabel> - </bpmndi:BPMNShape> - <bpmndi:BPMNShape id="EndEvent_1ohsce9_di" bpmnElement="EndEvent_1ohsce9"> - <dc:Bounds x="722" y="306" width="36" height="36" /> - </bpmndi:BPMNShape> - <bpmndi:BPMNShape id="ServiceTask_17jlnng_di" bpmnElement="ServiceTask_17jlnng"> - <dc:Bounds x="425" y="284" width="100" height="80" /> - </bpmndi:BPMNShape> - <bpmndi:BPMNShape id="EndEvent_1w3t3t0_di" bpmnElement="EndEvent_1w3t3t0"> - <dc:Bounds x="1102" y="322" width="36" height="36" /> - <bpmndi:BPMNLabel> - <dc:Bounds x="1095" y="282" width="49" height="27" /> - </bpmndi:BPMNLabel> - </bpmndi:BPMNShape> - <bpmndi:BPMNShape id="ServiceTask_1s87b92_di" bpmnElement="ServiceTask_1s87b92"> - <dc:Bounds x="923" y="300" width="100" height="80" /> - </bpmndi:BPMNShape> - <bpmndi:BPMNShape id="ServiceTask_1gms128_di" bpmnElement="ServiceTask_1gms128"> - <dc:Bounds x="923" y="78" width="100" height="80" /> - </bpmndi:BPMNShape> - <bpmndi:BPMNShape id="BoundaryEvent_0xiabzp_di" bpmnElement="BoundaryEvent_0xiabzp"> - <dc:Bounds x="806" y="322" width="36" height="36" /> - <bpmndi:BPMNLabel> - <dc:Bounds x="794" y="361" width="61" height="14" /> - </bpmndi:BPMNLabel> - </bpmndi:BPMNShape> - </bpmndi:BPMNPlane> - </bpmndi:BPMNDiagram> -</bpmn:definitions> diff --git a/so-etsi-nfvo/so-etsi-nfvo-ns-lcm/so-etsi-nfvo-ns-lcm-bpmn-flows/src/main/resources/MonitorSol003AdapterTerminateNodeStatus.bpmn b/so-etsi-nfvo/so-etsi-nfvo-ns-lcm/so-etsi-nfvo-ns-lcm-bpmn-flows/src/main/resources/MonitorSol003AdapterTerminateNodeStatus.bpmn deleted file mode 100644 index 5629ce81fa..0000000000 --- a/so-etsi-nfvo/so-etsi-nfvo-ns-lcm/so-etsi-nfvo-ns-lcm-bpmn-flows/src/main/resources/MonitorSol003AdapterTerminateNodeStatus.bpmn +++ /dev/null @@ -1,138 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<bpmn:definitions xmlns:bpmn="http://www.omg.org/spec/BPMN/20100524/MODEL" xmlns:bpmndi="http://www.omg.org/spec/BPMN/20100524/DI" xmlns:di="http://www.omg.org/spec/DD/20100524/DI" xmlns:dc="http://www.omg.org/spec/DD/20100524/DC" xmlns:camunda="http://camunda.org/schema/1.0/bpmn" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" id="Definitions_1ko0frn" targetNamespace="http://bpmn.io/schema/bpmn" exporter="Camunda Modeler" exporterVersion="4.2.0"> - <bpmn:process id="MonitorSol003AdapterTerminateNodeStatus" name="MonitorSol003AdapterTerminateNodeStatus" isExecutable="true"> - <bpmn:startEvent id="StartEvent_0k0qfjb"> - <bpmn:outgoing>SequenceFlow_1miob62</bpmn:outgoing> - </bpmn:startEvent> - <bpmn:subProcess id="SubProcess_10wotbc"> - <bpmn:incoming>SequenceFlow_1miob62</bpmn:incoming> - <bpmn:startEvent id="StartEvent_0r9qf43"> - <bpmn:outgoing>SequenceFlow_1moaz0q</bpmn:outgoing> - </bpmn:startEvent> - <bpmn:exclusiveGateway id="ExclusiveGateway_00xtlfj" default="SequenceFlow_1luu31f"> - <bpmn:incoming>SequenceFlow_0qvy3sn</bpmn:incoming> - <bpmn:outgoing>SequenceFlow_1rxbeqi</bpmn:outgoing> - <bpmn:outgoing>SequenceFlow_1luu31f</bpmn:outgoing> - </bpmn:exclusiveGateway> - <bpmn:intermediateCatchEvent id="IntermediateCatchEvent_0xuznv9" name="Wait between checks" camunda:asyncAfter="true"> - <bpmn:incoming>SequenceFlow_1luu31f</bpmn:incoming> - <bpmn:outgoing>SequenceFlow_09t51ao</bpmn:outgoing> - <bpmn:timerEventDefinition id="TimerEventDefinition_0vrbrge"> - <bpmn:timeDuration xsi:type="bpmn:tFormalExpression">PT15S</bpmn:timeDuration> - </bpmn:timerEventDefinition> - </bpmn:intermediateCatchEvent> - <bpmn:endEvent id="EndEvent_0tei3i9"> - <bpmn:incoming>SequenceFlow_1rxbeqi</bpmn:incoming> - </bpmn:endEvent> - <bpmn:serviceTask id="ServiceTask_0y71su8" name=" Get node status " camunda:asyncAfter="true" camunda:expression="${MonitorSol003AdapterTerminateNodeTask.getNodeStatus(execution)}"> - <bpmn:incoming>SequenceFlow_1moaz0q</bpmn:incoming> - <bpmn:incoming>SequenceFlow_09t51ao</bpmn:incoming> - <bpmn:outgoing>SequenceFlow_0qvy3sn</bpmn:outgoing> - </bpmn:serviceTask> - <bpmn:sequenceFlow id="SequenceFlow_1rxbeqi" name=" terminate vnf success " sourceRef="ExclusiveGateway_00xtlfj" targetRef="EndEvent_0tei3i9"> - <bpmn:conditionExpression xsi:type="bpmn:tFormalExpression">${execution.getVariable("deleteVnfNodeStatus")}</bpmn:conditionExpression> - </bpmn:sequenceFlow> - <bpmn:sequenceFlow id="SequenceFlow_1luu31f" sourceRef="ExclusiveGateway_00xtlfj" targetRef="IntermediateCatchEvent_0xuznv9" /> - <bpmn:sequenceFlow id="SequenceFlow_1moaz0q" sourceRef="StartEvent_0r9qf43" targetRef="ServiceTask_0y71su8" /> - <bpmn:sequenceFlow id="SequenceFlow_0qvy3sn" sourceRef="ServiceTask_0y71su8" targetRef="ExclusiveGateway_00xtlfj" /> - <bpmn:sequenceFlow id="SequenceFlow_09t51ao" sourceRef="IntermediateCatchEvent_0xuznv9" targetRef="ServiceTask_0y71su8" /> - </bpmn:subProcess> - <bpmn:endEvent id="EndEvent_1b83rci" name="Timeout Exception"> - <bpmn:incoming>SequenceFlow_0uiqnl8</bpmn:incoming> - <bpmn:terminateEventDefinition id="TerminateEventDefinition_12rjfva" /> - </bpmn:endEvent> - <bpmn:serviceTask id="ServiceTask_12qp0ty" name=" Time Out Log Failure " camunda:asyncAfter="true" camunda:expression="${MonitorSol003AdapterNodeTask.timeOutLogFailue(execution)}"> - <bpmn:incoming>SequenceFlow_0qcc5x4</bpmn:incoming> - <bpmn:outgoing>SequenceFlow_0uiqnl8</bpmn:outgoing> - </bpmn:serviceTask> - <bpmn:boundaryEvent id="BoundaryEvent_1f5o5i9" name="Overall Wait" attachedToRef="SubProcess_10wotbc"> - <bpmn:outgoing>SequenceFlow_0qcc5x4</bpmn:outgoing> - <bpmn:timerEventDefinition id="TimerEventDefinition_1t3ya63"> - <bpmn:timeDuration xsi:type="bpmn:tFormalExpression">PT3H</bpmn:timeDuration> - </bpmn:timerEventDefinition> - </bpmn:boundaryEvent> - <bpmn:sequenceFlow id="SequenceFlow_1miob62" sourceRef="StartEvent_0k0qfjb" targetRef="SubProcess_10wotbc" /> - <bpmn:sequenceFlow id="SequenceFlow_0uiqnl8" sourceRef="ServiceTask_12qp0ty" targetRef="EndEvent_1b83rci" /> - <bpmn:sequenceFlow id="SequenceFlow_0qcc5x4" sourceRef="BoundaryEvent_1f5o5i9" targetRef="ServiceTask_12qp0ty" /> - </bpmn:process> - <bpmndi:BPMNDiagram id="BPMNDiagram_1"> - <bpmndi:BPMNPlane id="BPMNPlane_1" bpmnElement="MonitorSol003AdapterTerminateNodeStatus"> - <bpmndi:BPMNEdge id="SequenceFlow_0qcc5x4_di" bpmnElement="SequenceFlow_0qcc5x4"> - <di:waypoint x="836" y="169" /> - <di:waypoint x="917" y="169" /> - </bpmndi:BPMNEdge> - <bpmndi:BPMNEdge id="SequenceFlow_0uiqnl8_di" bpmnElement="SequenceFlow_0uiqnl8"> - <di:waypoint x="1017" y="169" /> - <di:waypoint x="1096" y="169" /> - </bpmndi:BPMNEdge> - <bpmndi:BPMNEdge id="SequenceFlow_1miob62_di" bpmnElement="SequenceFlow_1miob62"> - <di:waypoint x="191" y="177" /> - <di:waypoint x="293" y="177" /> - </bpmndi:BPMNEdge> - <bpmndi:BPMNShape id="StartEvent_0k0qfjb_di" bpmnElement="StartEvent_0k0qfjb"> - <dc:Bounds x="155" y="159" width="36" height="36" /> - </bpmndi:BPMNShape> - <bpmndi:BPMNShape id="SubProcess_10wotbc_di" bpmnElement="SubProcess_10wotbc" isExpanded="true"> - <dc:Bounds x="293" y="77" width="523" height="200" /> - </bpmndi:BPMNShape> - <bpmndi:BPMNEdge id="SequenceFlow_09t51ao_di" bpmnElement="SequenceFlow_09t51ao"> - <di:waypoint x="544" y="225" /> - <di:waypoint x="451" y="225" /> - <di:waypoint x="452" y="193" /> - </bpmndi:BPMNEdge> - <bpmndi:BPMNEdge id="SequenceFlow_0qvy3sn_di" bpmnElement="SequenceFlow_0qvy3sn"> - <di:waypoint x="512" y="153" /> - <di:waypoint x="603" y="153" /> - </bpmndi:BPMNEdge> - <bpmndi:BPMNEdge id="SequenceFlow_1moaz0q_di" bpmnElement="SequenceFlow_1moaz0q"> - <di:waypoint x="360" y="153" /> - <di:waypoint x="412" y="153" /> - </bpmndi:BPMNEdge> - <bpmndi:BPMNEdge id="SequenceFlow_1luu31f_di" bpmnElement="SequenceFlow_1luu31f"> - <di:waypoint x="628" y="178" /> - <di:waypoint x="628" y="225" /> - <di:waypoint x="580" y="225" /> - </bpmndi:BPMNEdge> - <bpmndi:BPMNEdge id="SequenceFlow_1rxbeqi_di" bpmnElement="SequenceFlow_1rxbeqi"> - <di:waypoint x="653" y="153" /> - <di:waypoint x="716" y="153" /> - <bpmndi:BPMNLabel> - <dc:Bounds x="653" y="135" width="65" height="80" /> - </bpmndi:BPMNLabel> - </bpmndi:BPMNEdge> - <bpmndi:BPMNShape id="StartEvent_0r9qf43_di" bpmnElement="StartEvent_0r9qf43"> - <dc:Bounds x="324" y="135" width="36" height="36" /> - </bpmndi:BPMNShape> - <bpmndi:BPMNShape id="ExclusiveGateway_00xtlfj_di" bpmnElement="ExclusiveGateway_00xtlfj" isMarkerVisible="true"> - <dc:Bounds x="603" y="128" width="50" height="50" /> - </bpmndi:BPMNShape> - <bpmndi:BPMNShape id="IntermediateCatchEvent_0xuznv9_di" bpmnElement="IntermediateCatchEvent_0xuznv9"> - <dc:Bounds x="544" y="207" width="36" height="36" /> - <bpmndi:BPMNLabel> - <dc:Bounds x="532" y="250" width="66" height="27" /> - </bpmndi:BPMNLabel> - </bpmndi:BPMNShape> - <bpmndi:BPMNShape id="EndEvent_0tei3i9_di" bpmnElement="EndEvent_0tei3i9"> - <dc:Bounds x="716" y="135" width="36" height="36" /> - </bpmndi:BPMNShape> - <bpmndi:BPMNShape id="ServiceTask_0y71su8_di" bpmnElement="ServiceTask_0y71su8"> - <dc:Bounds x="412" y="113" width="100" height="80" /> - </bpmndi:BPMNShape> - <bpmndi:BPMNShape id="EndEvent_1b83rci_di" bpmnElement="EndEvent_1b83rci"> - <dc:Bounds x="1096" y="151" width="36" height="36" /> - <bpmndi:BPMNLabel> - <dc:Bounds x="1089" y="111" width="49" height="27" /> - </bpmndi:BPMNLabel> - </bpmndi:BPMNShape> - <bpmndi:BPMNShape id="ServiceTask_12qp0ty_di" bpmnElement="ServiceTask_12qp0ty"> - <dc:Bounds x="917" y="129" width="100" height="80" /> - </bpmndi:BPMNShape> - <bpmndi:BPMNShape id="BoundaryEvent_1f5o5i9_di" bpmnElement="BoundaryEvent_1f5o5i9"> - <dc:Bounds x="800" y="151" width="36" height="36" /> - <bpmndi:BPMNLabel> - <dc:Bounds x="788" y="190" width="61" height="14" /> - </bpmndi:BPMNLabel> - </bpmndi:BPMNShape> - </bpmndi:BPMNPlane> - </bpmndi:BPMNDiagram> -</bpmn:definitions> diff --git a/so-etsi-nfvo/so-etsi-nfvo-ns-lcm/so-etsi-nfvo-ns-lcm-bpmn-flows/src/main/resources/TerminateNs.bpmn b/so-etsi-nfvo/so-etsi-nfvo-ns-lcm/so-etsi-nfvo-ns-lcm-bpmn-flows/src/main/resources/TerminateNs.bpmn deleted file mode 100644 index e971f6acf0..0000000000 --- a/so-etsi-nfvo/so-etsi-nfvo-ns-lcm/so-etsi-nfvo-ns-lcm-bpmn-flows/src/main/resources/TerminateNs.bpmn +++ /dev/null @@ -1,307 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<bpmn:definitions xmlns:bpmn="http://www.omg.org/spec/BPMN/20100524/MODEL" xmlns:bpmndi="http://www.omg.org/spec/BPMN/20100524/DI" xmlns:dc="http://www.omg.org/spec/DD/20100524/DC" xmlns:camunda="http://camunda.org/schema/1.0/bpmn" xmlns:di="http://www.omg.org/spec/DD/20100524/DI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" id="Definitions_0mdda96" targetNamespace="http://bpmn.io/schema/bpmn" exporter="Camunda Modeler" exporterVersion="4.2.0"> - <bpmn:process id="TerminateNs" name="TerminateNs" isExecutable="true"> - <bpmn:startEvent id="StartEvent_1" name="Start Process"> - <bpmn:outgoing>SequenceFlow_16k0f61</bpmn:outgoing> - </bpmn:startEvent> - <bpmn:sequenceFlow id="SequenceFlow_16k0f61" sourceRef="StartEvent_1" targetRef="Activity_194tqy0" /> - <bpmn:serviceTask id="Task_0opnwx0" name="Update NS Instance status to TERMINATING" camunda:expression="${TerminateNsTask.updateNsInstanceStatusToTerminating(execution)}"> - <bpmn:incoming>Flow_04pxtdd</bpmn:incoming> - <bpmn:outgoing>SequenceFlow_0bdznyp</bpmn:outgoing> - </bpmn:serviceTask> - <bpmn:endEvent id="EndEvent_0szswbo" name="End Process"> - <bpmn:incoming>Flow_1pcu8aa</bpmn:incoming> - </bpmn:endEvent> - <bpmn:sequenceFlow id="SequenceFlow_0bdznyp" sourceRef="Task_0opnwx0" targetRef="Activity_1kikjaf" /> - <bpmn:serviceTask id="Activity_194tqy0" name="Set Job Status to STARTED" camunda:asyncBefore="true" camunda:expression="${TerminateNsTask.setJobStatusToStarted(execution)}"> - <bpmn:incoming>SequenceFlow_16k0f61</bpmn:incoming> - <bpmn:outgoing>Flow_04pxtdd</bpmn:outgoing> - </bpmn:serviceTask> - <bpmn:sequenceFlow id="Flow_04pxtdd" sourceRef="Activity_194tqy0" targetRef="Task_0opnwx0" /> - <bpmn:subProcess id="Activity_0pjxszh" name="Error Handling" triggeredByEvent="true"> - <bpmn:startEvent id="Event_1rpzcl3" name="error"> - <bpmn:outgoing>Flow_07bh7l7</bpmn:outgoing> - <bpmn:errorEventDefinition id="ErrorEventDefinition_0m2e0oa" /> - </bpmn:startEvent> - <bpmn:endEvent id="Event_1fcw3ei" name="end"> - <bpmn:incoming>Flow_1wa1jpl</bpmn:incoming> - </bpmn:endEvent> - <bpmn:serviceTask id="Activity_0ddja9m" name="Set Job Status to ERROR" camunda:asyncBefore="true" camunda:expression="${TerminateNsTask.setJobStatusToError(execution)}"> - <bpmn:incoming>Flow_0n3dai5</bpmn:incoming> - <bpmn:outgoing>Flow_1wa1jpl</bpmn:outgoing> - </bpmn:serviceTask> - <bpmn:sequenceFlow id="Flow_1wa1jpl" sourceRef="Activity_0ddja9m" targetRef="Event_1fcw3ei" /> - <bpmn:sequenceFlow id="Flow_07bh7l7" sourceRef="Event_1rpzcl3" targetRef="Activity_1miy3hw" /> - <bpmn:serviceTask id="Activity_1miy3hw" name="Update NSLcmOpOcc operation status to FAILED" camunda:asyncBefore="true" camunda:expression="${TerminateNsTask.updateNsLcmOpOccStatusToFailed(execution)}"> - <bpmn:incoming>Flow_07bh7l7</bpmn:incoming> - <bpmn:outgoing>Flow_0n3dai5</bpmn:outgoing> - </bpmn:serviceTask> - <bpmn:sequenceFlow id="Flow_0n3dai5" sourceRef="Activity_1miy3hw" targetRef="Activity_0ddja9m" /> - </bpmn:subProcess> - <bpmn:subProcess id="Activity_0mtscwq" name="Java Exception Handling" triggeredByEvent="true"> - <bpmn:startEvent id="Event_0lqr6al" name="error"> - <bpmn:outgoing>Flow_05lo00r</bpmn:outgoing> - <bpmn:errorEventDefinition id="ErrorEventDefinition_02lwl19" errorRef="Error_0jsct8p" camunda:errorCodeVariable="BPMN_javaExpCode" camunda:errorMessageVariable="BPMN_javaExpMsg" /> - </bpmn:startEvent> - <bpmn:endEvent id="Event_05ty7c4"> - <bpmn:incoming>Flow_16aryg5</bpmn:incoming> - </bpmn:endEvent> - <bpmn:serviceTask id="Activity_1ezu7d4" name="Set Job Status to ERROR" camunda:asyncBefore="true" camunda:expression="${TerminateNsTask.setJobStatusToError(execution)}"> - <bpmn:incoming>Flow_09zcw2a</bpmn:incoming> - <bpmn:outgoing>Flow_16aryg5</bpmn:outgoing> - </bpmn:serviceTask> - <bpmn:sequenceFlow id="Flow_16aryg5" sourceRef="Activity_1ezu7d4" targetRef="Event_05ty7c4" /> - <bpmn:sequenceFlow id="Flow_05lo00r" sourceRef="Event_0lqr6al" targetRef="Activity_17leldb" /> - <bpmn:serviceTask id="Activity_17leldb" name="Update NSLcmOpOcc operation status to FAILED" camunda:asyncBefore="true" camunda:expression="${TerminateNsTask.updateNsLcmOpOccStatusToFailed(execution)}"> - <bpmn:incoming>Flow_05lo00r</bpmn:incoming> - <bpmn:outgoing>Flow_09zcw2a</bpmn:outgoing> - </bpmn:serviceTask> - <bpmn:sequenceFlow id="Flow_09zcw2a" sourceRef="Activity_17leldb" targetRef="Activity_1ezu7d4" /> - </bpmn:subProcess> - <bpmn:serviceTask id="Activity_1w09i1k" name="Set Job Status to FINISHED" camunda:expression="${TerminateNsTask.setJobStatusToFinished(execution)}"> - <bpmn:incoming>Flow_1i36dw4</bpmn:incoming> - <bpmn:outgoing>Flow_1pcu8aa</bpmn:outgoing> - </bpmn:serviceTask> - <bpmn:sequenceFlow id="Flow_1pcu8aa" sourceRef="Activity_1w09i1k" targetRef="EndEvent_0szswbo" /> - <bpmn:callActivity id="Activity_1b2s2wr" name="Terminate Vnfs" calledElement="TerminateVnf"> - <bpmn:extensionElements> - <camunda:in source="jobId" target="jobId" /> - <camunda:in source="NsInstanceId" target="NsInstanceId" /> - <camunda:in source="vnfId" target="vnfId" /> - </bpmn:extensionElements> - <bpmn:incoming>Flow_01ju1mj</bpmn:incoming> - <bpmn:outgoing>Flow_0mi4nqa</bpmn:outgoing> - <bpmn:multiInstanceLoopCharacteristics camunda:asyncAfter="true" camunda:collection="${nfvoNfInstIds}" camunda:elementVariable="vnfId" /> - </bpmn:callActivity> - <bpmn:boundaryEvent id="Event_0rbb817" name="Overall Wait" attachedToRef="Activity_1b2s2wr"> - <bpmn:outgoing>Flow_17zn7we</bpmn:outgoing> - <bpmn:timerEventDefinition id="TimerEventDefinition_13ud1f4"> - <bpmn:timeDuration xsi:type="bpmn:tFormalExpression">PT3H</bpmn:timeDuration> - </bpmn:timerEventDefinition> - </bpmn:boundaryEvent> - <bpmn:sequenceFlow id="Flow_17zn7we" sourceRef="Event_0rbb817" targetRef="Activity_16z66xm" /> - <bpmn:serviceTask id="Activity_1kikjaf" name="Get Vnf IDs in NS" camunda:expression="${TerminateNsTask.getVnfIdsInNs(execution)}"> - <bpmn:incoming>SequenceFlow_0bdznyp</bpmn:incoming> - <bpmn:outgoing>Flow_01ju1mj</bpmn:outgoing> - </bpmn:serviceTask> - <bpmn:sequenceFlow id="Flow_01ju1mj" sourceRef="Activity_1kikjaf" targetRef="Activity_1b2s2wr" /> - <bpmn:serviceTask id="Activity_16cvdbw" name="Update NS Instance status to NOT_INSTANTIATED" camunda:expression="${TerminateNsTask.updateNsInstanceStatusToNotInstantiated(execution)}"> - <bpmn:incoming>Flow_1nieng0</bpmn:incoming> - <bpmn:outgoing>Flow_0xptc0r</bpmn:outgoing> - </bpmn:serviceTask> - <bpmn:sequenceFlow id="Flow_0xptc0r" sourceRef="Activity_16cvdbw" targetRef="Activity_0gkpdft" /> - <bpmn:endEvent id="Event_1e4bwip"> - <bpmn:incoming>Flow_10oprxr</bpmn:incoming> - <bpmn:incoming>Flow_1p21p1m</bpmn:incoming> - <bpmn:errorEventDefinition id="ErrorEventDefinition_0vg6v5r" errorRef="Error_0jsct8p" /> - </bpmn:endEvent> - <bpmn:exclusiveGateway id="Gateway_0nxf0rv" name="is Successful?"> - <bpmn:incoming>Flow_15m4nm1</bpmn:incoming> - <bpmn:outgoing>Flow_1nieng0</bpmn:outgoing> - <bpmn:outgoing>Flow_10oprxr</bpmn:outgoing> - </bpmn:exclusiveGateway> - <bpmn:sequenceFlow id="Flow_1nieng0" name="Yes" sourceRef="Gateway_0nxf0rv" targetRef="Activity_16cvdbw"> - <bpmn:conditionExpression xsi:type="bpmn:tFormalExpression">#{isNsTerminationSuccessful}</bpmn:conditionExpression> - </bpmn:sequenceFlow> - <bpmn:serviceTask id="Activity_14iwa8x" name="Check if VNF Termination was Successful" camunda:expression="${TerminateNsTask.checkIfVnfTerminationWasSuccessful(execution)}"> - <bpmn:incoming>Flow_0mi4nqa</bpmn:incoming> - <bpmn:outgoing>Flow_15m4nm1</bpmn:outgoing> - </bpmn:serviceTask> - <bpmn:sequenceFlow id="Flow_0mi4nqa" sourceRef="Activity_1b2s2wr" targetRef="Activity_14iwa8x" /> - <bpmn:sequenceFlow id="Flow_15m4nm1" sourceRef="Activity_14iwa8x" targetRef="Gateway_0nxf0rv" /> - <bpmn:serviceTask id="Activity_16z66xm" name="Log TimeOut" camunda:expression="${TerminateNsTask.logTimeOut(execution)}"> - <bpmn:incoming>Flow_17zn7we</bpmn:incoming> - <bpmn:outgoing>Flow_1p21p1m</bpmn:outgoing> - </bpmn:serviceTask> - <bpmn:sequenceFlow id="Flow_10oprxr" name="No" sourceRef="Gateway_0nxf0rv" targetRef="Event_1e4bwip"> - <bpmn:conditionExpression xsi:type="bpmn:tFormalExpression">#{not isNsTerminationSuccessful}</bpmn:conditionExpression> - </bpmn:sequenceFlow> - <bpmn:sequenceFlow id="Flow_1p21p1m" sourceRef="Activity_16z66xm" targetRef="Event_1e4bwip" /> - <bpmn:serviceTask id="Activity_0gkpdft" name="Update NSLcmOpOcc operation status to COMPLETED" camunda:expression="${TerminateNsTask.updateNsLcmOpOccStatusToCompleted(execution)}"> - <bpmn:incoming>Flow_0xptc0r</bpmn:incoming> - <bpmn:outgoing>Flow_1i36dw4</bpmn:outgoing> - </bpmn:serviceTask> - <bpmn:sequenceFlow id="Flow_1i36dw4" sourceRef="Activity_0gkpdft" targetRef="Activity_1w09i1k" /> - </bpmn:process> - <bpmn:error id="Error_0jsct8p" name="NsWorkflowProcessingException" errorCode="TERMINATE_NS_WORKFLOW_PROCESSING_EXCEPTION" /> - <bpmndi:BPMNDiagram id="BPMNDiagram_1"> - <bpmndi:BPMNPlane id="BPMNPlane_1" bpmnElement="TerminateNs"> - <bpmndi:BPMNEdge id="Flow_1i36dw4_di" bpmnElement="Flow_1i36dw4"> - <di:waypoint x="1680" y="121" /> - <di:waypoint x="1720" y="121" /> - </bpmndi:BPMNEdge> - <bpmndi:BPMNEdge id="Flow_1p21p1m_di" bpmnElement="Flow_1p21p1m"> - <di:waypoint x="1110" y="270" /> - <di:waypoint x="1332" y="270" /> - </bpmndi:BPMNEdge> - <bpmndi:BPMNEdge id="Flow_10oprxr_di" bpmnElement="Flow_10oprxr"> - <di:waypoint x="1350" y="146" /> - <di:waypoint x="1350" y="252" /> - <bpmndi:BPMNLabel> - <dc:Bounds x="1358" y="196" width="14" height="14" /> - </bpmndi:BPMNLabel> - </bpmndi:BPMNEdge> - <bpmndi:BPMNEdge id="Flow_15m4nm1_di" bpmnElement="Flow_15m4nm1"> - <di:waypoint x="1110" y="121" /> - <di:waypoint x="1325" y="121" /> - </bpmndi:BPMNEdge> - <bpmndi:BPMNEdge id="Flow_0mi4nqa_di" bpmnElement="Flow_0mi4nqa"> - <di:waypoint x="790" y="121" /> - <di:waypoint x="1010" y="121" /> - </bpmndi:BPMNEdge> - <bpmndi:BPMNEdge id="Flow_1nieng0_di" bpmnElement="Flow_1nieng0"> - <di:waypoint x="1375" y="121" /> - <di:waypoint x="1430" y="121" /> - <bpmndi:BPMNLabel> - <dc:Bounds x="1393" y="103" width="19" height="14" /> - </bpmndi:BPMNLabel> - </bpmndi:BPMNEdge> - <bpmndi:BPMNEdge id="Flow_0xptc0r_di" bpmnElement="Flow_0xptc0r"> - <di:waypoint x="1530" y="121" /> - <di:waypoint x="1580" y="121" /> - </bpmndi:BPMNEdge> - <bpmndi:BPMNEdge id="Flow_01ju1mj_di" bpmnElement="Flow_01ju1mj"> - <di:waypoint x="650" y="121" /> - <di:waypoint x="690" y="121" /> - </bpmndi:BPMNEdge> - <bpmndi:BPMNEdge id="Flow_17zn7we_di" bpmnElement="Flow_17zn7we"> - <di:waypoint x="770" y="179" /> - <di:waypoint x="770" y="270" /> - <di:waypoint x="1010" y="270" /> - </bpmndi:BPMNEdge> - <bpmndi:BPMNEdge id="Flow_1pcu8aa_di" bpmnElement="Flow_1pcu8aa"> - <di:waypoint x="1820" y="121" /> - <di:waypoint x="1862" y="121" /> - </bpmndi:BPMNEdge> - <bpmndi:BPMNEdge id="Flow_04pxtdd_di" bpmnElement="Flow_04pxtdd"> - <di:waypoint x="360" y="121" /> - <di:waypoint x="410" y="121" /> - </bpmndi:BPMNEdge> - <bpmndi:BPMNEdge id="SequenceFlow_0bdznyp_di" bpmnElement="SequenceFlow_0bdznyp"> - <di:waypoint x="510" y="121" /> - <di:waypoint x="550" y="121" /> - </bpmndi:BPMNEdge> - <bpmndi:BPMNEdge id="SequenceFlow_16k0f61_di" bpmnElement="SequenceFlow_16k0f61"> - <di:waypoint x="208" y="121" /> - <di:waypoint x="260" y="121" /> - </bpmndi:BPMNEdge> - <bpmndi:BPMNShape id="_BPMNShape_StartEvent_2" bpmnElement="StartEvent_1"> - <dc:Bounds x="172" y="103" width="36" height="36" /> - <bpmndi:BPMNLabel> - <dc:Bounds x="157" y="146" width="67" height="14" /> - </bpmndi:BPMNLabel> - </bpmndi:BPMNShape> - <bpmndi:BPMNShape id="ServiceTask_1y7xfqt_di" bpmnElement="Task_0opnwx0"> - <dc:Bounds x="410" y="81" width="100" height="80" /> - </bpmndi:BPMNShape> - <bpmndi:BPMNShape id="EndEvent_0szswbo_di" bpmnElement="EndEvent_0szswbo"> - <dc:Bounds x="1862" y="103" width="36" height="36" /> - <bpmndi:BPMNLabel> - <dc:Bounds x="1848" y="79" width="63" height="14" /> - </bpmndi:BPMNLabel> - </bpmndi:BPMNShape> - <bpmndi:BPMNShape id="Activity_194tqy0_di" bpmnElement="Activity_194tqy0"> - <dc:Bounds x="260" y="81" width="100" height="80" /> - </bpmndi:BPMNShape> - <bpmndi:BPMNShape id="Activity_0pjxszh_di" bpmnElement="Activity_0pjxszh" isExpanded="true"> - <dc:Bounds x="380" y="310" width="510" height="130" /> - </bpmndi:BPMNShape> - <bpmndi:BPMNEdge id="Flow_0n3dai5_di" bpmnElement="Flow_0n3dai5"> - <di:waypoint x="600" y="373" /> - <di:waypoint x="660" y="373" /> - </bpmndi:BPMNEdge> - <bpmndi:BPMNEdge id="Flow_07bh7l7_di" bpmnElement="Flow_07bh7l7"> - <di:waypoint x="438" y="373" /> - <di:waypoint x="500" y="373" /> - </bpmndi:BPMNEdge> - <bpmndi:BPMNEdge id="Flow_1wa1jpl_di" bpmnElement="Flow_1wa1jpl"> - <di:waypoint x="760" y="373" /> - <di:waypoint x="822" y="373" /> - </bpmndi:BPMNEdge> - <bpmndi:BPMNShape id="Event_1rpzcl3_di" bpmnElement="Event_1rpzcl3"> - <dc:Bounds x="402" y="355" width="36" height="36" /> - <bpmndi:BPMNLabel> - <dc:Bounds x="408" y="398" width="24" height="14" /> - </bpmndi:BPMNLabel> - </bpmndi:BPMNShape> - <bpmndi:BPMNShape id="Event_1fcw3ei_di" bpmnElement="Event_1fcw3ei"> - <dc:Bounds x="822" y="355" width="36" height="36" /> - <bpmndi:BPMNLabel> - <dc:Bounds x="832" y="397" width="19" height="14" /> - </bpmndi:BPMNLabel> - </bpmndi:BPMNShape> - <bpmndi:BPMNShape id="Activity_0ddja9m_di" bpmnElement="Activity_0ddja9m"> - <dc:Bounds x="660" y="333" width="100" height="80" /> - </bpmndi:BPMNShape> - <bpmndi:BPMNShape id="Activity_1miy3hw_di" bpmnElement="Activity_1miy3hw"> - <dc:Bounds x="500" y="333" width="100" height="80" /> - </bpmndi:BPMNShape> - <bpmndi:BPMNShape id="Activity_0mtscwq_di" bpmnElement="Activity_0mtscwq" isExpanded="true"> - <dc:Bounds x="380" y="480" width="510" height="130" /> - </bpmndi:BPMNShape> - <bpmndi:BPMNEdge id="Flow_09zcw2a_di" bpmnElement="Flow_09zcw2a"> - <di:waypoint x="600" y="543" /> - <di:waypoint x="660" y="543" /> - </bpmndi:BPMNEdge> - <bpmndi:BPMNEdge id="Flow_05lo00r_di" bpmnElement="Flow_05lo00r"> - <di:waypoint x="438" y="543" /> - <di:waypoint x="500" y="543" /> - </bpmndi:BPMNEdge> - <bpmndi:BPMNEdge id="Flow_16aryg5_di" bpmnElement="Flow_16aryg5"> - <di:waypoint x="760" y="543" /> - <di:waypoint x="822" y="543" /> - </bpmndi:BPMNEdge> - <bpmndi:BPMNShape id="Event_0lqr6al_di" bpmnElement="Event_0lqr6al"> - <dc:Bounds x="402" y="525" width="36" height="36" /> - <bpmndi:BPMNLabel> - <dc:Bounds x="409" y="568" width="24" height="14" /> - </bpmndi:BPMNLabel> - </bpmndi:BPMNShape> - <bpmndi:BPMNShape id="Event_05ty7c4_di" bpmnElement="Event_05ty7c4"> - <dc:Bounds x="822" y="525" width="36" height="36" /> - </bpmndi:BPMNShape> - <bpmndi:BPMNShape id="Activity_1ezu7d4_di" bpmnElement="Activity_1ezu7d4"> - <dc:Bounds x="660" y="503" width="100" height="80" /> - </bpmndi:BPMNShape> - <bpmndi:BPMNShape id="Activity_17leldb_di" bpmnElement="Activity_17leldb"> - <dc:Bounds x="500" y="503" width="100" height="80" /> - </bpmndi:BPMNShape> - <bpmndi:BPMNShape id="Activity_1w09i1k_di" bpmnElement="Activity_1w09i1k"> - <dc:Bounds x="1720" y="81" width="100" height="80" /> - </bpmndi:BPMNShape> - <bpmndi:BPMNShape id="Activity_1xjmizv_di" bpmnElement="Activity_1b2s2wr"> - <dc:Bounds x="690" y="81" width="100" height="80" /> - </bpmndi:BPMNShape> - <bpmndi:BPMNShape id="Activity_1kikjaf_di" bpmnElement="Activity_1kikjaf"> - <dc:Bounds x="550" y="81" width="100" height="80" /> - </bpmndi:BPMNShape> - <bpmndi:BPMNShape id="Activity_16cvdbw_di" bpmnElement="Activity_16cvdbw"> - <dc:Bounds x="1430" y="81" width="100" height="80" /> - </bpmndi:BPMNShape> - <bpmndi:BPMNShape id="Event_16umj30_di" bpmnElement="Event_1e4bwip"> - <dc:Bounds x="1332" y="252" width="36" height="36" /> - </bpmndi:BPMNShape> - <bpmndi:BPMNShape id="Gateway_0nxf0rv_di" bpmnElement="Gateway_0nxf0rv" isMarkerVisible="true"> - <dc:Bounds x="1325" y="96" width="50" height="50" /> - <bpmndi:BPMNLabel> - <dc:Bounds x="1320" y="66" width="71" height="14" /> - </bpmndi:BPMNLabel> - </bpmndi:BPMNShape> - <bpmndi:BPMNShape id="Activity_14iwa8x_di" bpmnElement="Activity_14iwa8x"> - <dc:Bounds x="1010" y="81" width="100" height="80" /> - </bpmndi:BPMNShape> - <bpmndi:BPMNShape id="Activity_16z66xm_di" bpmnElement="Activity_16z66xm"> - <dc:Bounds x="1010" y="230" width="100" height="80" /> - </bpmndi:BPMNShape> - <bpmndi:BPMNShape id="Activity_0gkpdft_di" bpmnElement="Activity_0gkpdft"> - <dc:Bounds x="1580" y="81" width="100" height="80" /> - </bpmndi:BPMNShape> - <bpmndi:BPMNShape id="Event_0rbb817_di" bpmnElement="Event_0rbb817"> - <dc:Bounds x="752" y="143" width="36" height="36" /> - <bpmndi:BPMNLabel> - <dc:Bounds x="700" y="183" width="60" height="14" /> - </bpmndi:BPMNLabel> - </bpmndi:BPMNShape> - </bpmndi:BPMNPlane> - </bpmndi:BPMNDiagram> -</bpmn:definitions> diff --git a/so-etsi-nfvo/so-etsi-nfvo-ns-lcm/so-etsi-nfvo-ns-lcm-bpmn-flows/src/main/resources/TerminateVnf.bpmn b/so-etsi-nfvo/so-etsi-nfvo-ns-lcm/so-etsi-nfvo-ns-lcm-bpmn-flows/src/main/resources/TerminateVnf.bpmn deleted file mode 100644 index 994933f2ac..0000000000 --- a/so-etsi-nfvo/so-etsi-nfvo-ns-lcm/so-etsi-nfvo-ns-lcm-bpmn-flows/src/main/resources/TerminateVnf.bpmn +++ /dev/null @@ -1,171 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<bpmn:definitions xmlns:bpmn="http://www.omg.org/spec/BPMN/20100524/MODEL" xmlns:bpmndi="http://www.omg.org/spec/BPMN/20100524/DI" xmlns:dc="http://www.omg.org/spec/DD/20100524/DC" xmlns:camunda="http://camunda.org/schema/1.0/bpmn" xmlns:di="http://www.omg.org/spec/DD/20100524/DI" id="Definitions_1uf6nd9" targetNamespace="http://bpmn.io/schema/bpmn" exporter="Camunda Modeler" exporterVersion="4.2.0"> - <bpmn:process id="TerminateVnf" name="TerminateVnf" isExecutable="true"> - <bpmn:startEvent id="StartEvent_1"> - <bpmn:outgoing>Flow_02bjz2v</bpmn:outgoing> - </bpmn:startEvent> - <bpmn:sequenceFlow id="Flow_02bjz2v" sourceRef="StartEvent_1" targetRef="Activity_1cluqgp" /> - <bpmn:endEvent id="Event_14qdixj"> - <bpmn:incoming>Flow_1egtf3w</bpmn:incoming> - </bpmn:endEvent> - <bpmn:serviceTask id="Activity_1cluqgp" name="Check If NF Instance (VNF) exists in DB" camunda:expression="${TerminateVnfTask.checkIfNfInstanceExistsInDb(execution)}"> - <bpmn:incoming>Flow_02bjz2v</bpmn:incoming> - <bpmn:outgoing>Flow_123uagz</bpmn:outgoing> - </bpmn:serviceTask> - <bpmn:sequenceFlow id="Flow_123uagz" sourceRef="Activity_1cluqgp" targetRef="Activity_17vixcx" /> - <bpmn:serviceTask id="ServiceTask_0iry5yw" name=" Invoke VNFM Adapter " camunda:asyncAfter="true" camunda:expression="${TerminateVnfTask.invokeTerminateRequest(execution)}"> - <bpmn:incoming>Flow_0in3hgl</bpmn:incoming> - <bpmn:outgoing>SequenceFlow_0xzptc2</bpmn:outgoing> - </bpmn:serviceTask> - <bpmn:callActivity id="CallActivity_1yilxx3" name="Monitor Sol003 Adapter Terminate Job" calledElement="MonitorSol003AdapterTerminateJob"> - <bpmn:extensionElements> - <camunda:in source="jobId" target="jobId" /> - <camunda:in source="deleteVnfResponse" target="deleteVnfResponse" /> - </bpmn:extensionElements> - <bpmn:incoming>SequenceFlow_0xzptc2</bpmn:incoming> - <bpmn:outgoing>SequenceFlow_053tvct</bpmn:outgoing> - </bpmn:callActivity> - <bpmn:sequenceFlow id="SequenceFlow_0xzptc2" sourceRef="ServiceTask_0iry5yw" targetRef="CallActivity_1yilxx3" /> - <bpmn:sequenceFlow id="SequenceFlow_053tvct" sourceRef="CallActivity_1yilxx3" targetRef="Activity_0wgjtoy" /> - <bpmn:serviceTask id="Activity_0g3dip7" name="Update NF Instance (VNF) Status to NOT_INSTANTIATED" camunda:expression="${TerminateVnfTask.updateNfInstanceStatusToNotInstantiated(execution)}"> - <bpmn:incoming>Flow_1rw8pwu</bpmn:incoming> - <bpmn:outgoing>Flow_0srinh7</bpmn:outgoing> - </bpmn:serviceTask> - <bpmn:sequenceFlow id="Flow_0srinh7" sourceRef="Activity_0g3dip7" targetRef="Activity_1vptrrr" /> - <bpmn:subProcess id="Activity_0qtgdm9" name="Error Handling" triggeredByEvent="true"> - <bpmn:startEvent id="Event_08zcwc2" name="error"> - <bpmn:outgoing>Flow_06q1m6i</bpmn:outgoing> - <bpmn:errorEventDefinition id="ErrorEventDefinition_1ppvn77" /> - </bpmn:startEvent> - <bpmn:endEvent id="Event_1wkm29u" name="end"> - <bpmn:incoming>Flow_0anjylz</bpmn:incoming> - </bpmn:endEvent> - <bpmn:serviceTask id="Activity_0ltxcii" name="Update NF Instance (VNF) Status to FAILED" camunda:asyncBefore="true" camunda:expression="${TerminateVnfTask.updateNfInstanceStatusToFailed(execution)}"> - <bpmn:incoming>Flow_06q1m6i</bpmn:incoming> - <bpmn:outgoing>Flow_0anjylz</bpmn:outgoing> - </bpmn:serviceTask> - <bpmn:sequenceFlow id="Flow_06q1m6i" sourceRef="Event_08zcwc2" targetRef="Activity_0ltxcii" /> - <bpmn:sequenceFlow id="Flow_0anjylz" sourceRef="Activity_0ltxcii" targetRef="Event_1wkm29u" /> - </bpmn:subProcess> - <bpmn:callActivity id="Activity_0wgjtoy" name="Monitor Sol003 Adapter Terminate Node Status" calledElement="MonitorSol003AdapterTerminateNodeStatus"> - <bpmn:extensionElements> - <camunda:in source="NF_INST_ID" target="NF_INST_ID" /> - <camunda:in source="deleteVnfResponse" target="deleteVnfResponse" /> - </bpmn:extensionElements> - <bpmn:incoming>SequenceFlow_053tvct</bpmn:incoming> - <bpmn:outgoing>Flow_1wfvdmt</bpmn:outgoing> - </bpmn:callActivity> - <bpmn:sequenceFlow id="Flow_1wfvdmt" sourceRef="Activity_0wgjtoy" targetRef="Activity_0lulaof" /> - <bpmn:sequenceFlow id="Flow_1egtf3w" sourceRef="Activity_1vptrrr" targetRef="Event_14qdixj" /> - <bpmn:serviceTask id="Activity_1vptrrr" name="Delete NF Instance (VNF) record from DB" camunda:expression="${TerminateVnfTask.deleteNfInstanceFromDb(execution)}"> - <bpmn:incoming>Flow_0srinh7</bpmn:incoming> - <bpmn:outgoing>Flow_1egtf3w</bpmn:outgoing> - </bpmn:serviceTask> - <bpmn:sequenceFlow id="Flow_0in3hgl" sourceRef="Activity_17vixcx" targetRef="ServiceTask_0iry5yw" /> - <bpmn:serviceTask id="Activity_17vixcx" name="Update NF Instance (VNF) Status to TERMINATING" camunda:expression="${TerminateVnfTask.updateNfInstanceStatusToTerminating(execution)}"> - <bpmn:incoming>Flow_123uagz</bpmn:incoming> - <bpmn:outgoing>Flow_0in3hgl</bpmn:outgoing> - </bpmn:serviceTask> - <bpmn:serviceTask id="Activity_0lulaof" name="Delete Generic VNF From AAI" camunda:expression="${TerminateVnfTask.deleteGenericVnfFromAai(execution)}"> - <bpmn:incoming>Flow_1wfvdmt</bpmn:incoming> - <bpmn:outgoing>Flow_1rw8pwu</bpmn:outgoing> - </bpmn:serviceTask> - <bpmn:sequenceFlow id="Flow_1rw8pwu" sourceRef="Activity_0lulaof" targetRef="Activity_0g3dip7" /> - </bpmn:process> - <bpmndi:BPMNDiagram id="BPMNDiagram_1"> - <bpmndi:BPMNPlane id="BPMNPlane_1" bpmnElement="TerminateVnf"> - <bpmndi:BPMNEdge id="Flow_0in3hgl_di" bpmnElement="Flow_0in3hgl"> - <di:waypoint x="490" y="117" /> - <di:waypoint x="540" y="117" /> - </bpmndi:BPMNEdge> - <bpmndi:BPMNEdge id="Flow_1egtf3w_di" bpmnElement="Flow_1egtf3w"> - <di:waypoint x="1370" y="117" /> - <di:waypoint x="1432" y="117" /> - </bpmndi:BPMNEdge> - <bpmndi:BPMNEdge id="Flow_1wfvdmt_di" bpmnElement="Flow_1wfvdmt"> - <di:waypoint x="940" y="117" /> - <di:waypoint x="990" y="117" /> - </bpmndi:BPMNEdge> - <bpmndi:BPMNEdge id="Flow_0srinh7_di" bpmnElement="Flow_0srinh7"> - <di:waypoint x="1230" y="117" /> - <di:waypoint x="1270" y="117" /> - </bpmndi:BPMNEdge> - <bpmndi:BPMNEdge id="SequenceFlow_053tvct_di" bpmnElement="SequenceFlow_053tvct"> - <di:waypoint x="790" y="117" /> - <di:waypoint x="840" y="117" /> - </bpmndi:BPMNEdge> - <bpmndi:BPMNEdge id="SequenceFlow_0xzptc2_di" bpmnElement="SequenceFlow_0xzptc2"> - <di:waypoint x="640" y="117" /> - <di:waypoint x="690" y="117" /> - </bpmndi:BPMNEdge> - <bpmndi:BPMNEdge id="Flow_123uagz_di" bpmnElement="Flow_123uagz"> - <di:waypoint x="350" y="117" /> - <di:waypoint x="390" y="117" /> - </bpmndi:BPMNEdge> - <bpmndi:BPMNEdge id="Flow_02bjz2v_di" bpmnElement="Flow_02bjz2v"> - <di:waypoint x="215" y="117" /> - <di:waypoint x="250" y="117" /> - </bpmndi:BPMNEdge> - <bpmndi:BPMNEdge id="Flow_1rw8pwu_di" bpmnElement="Flow_1rw8pwu"> - <di:waypoint x="1090" y="117" /> - <di:waypoint x="1130" y="117" /> - </bpmndi:BPMNEdge> - <bpmndi:BPMNShape id="_BPMNShape_StartEvent_2" bpmnElement="StartEvent_1"> - <dc:Bounds x="179" y="99" width="36" height="36" /> - </bpmndi:BPMNShape> - <bpmndi:BPMNShape id="Activity_1cluqgp_di" bpmnElement="Activity_1cluqgp"> - <dc:Bounds x="250" y="77" width="100" height="80" /> - </bpmndi:BPMNShape> - <bpmndi:BPMNShape id="ServiceTask_0iry5yw_di" bpmnElement="ServiceTask_0iry5yw"> - <dc:Bounds x="540" y="77" width="100" height="80" /> - </bpmndi:BPMNShape> - <bpmndi:BPMNShape id="CallActivity_1yilxx3_di" bpmnElement="CallActivity_1yilxx3"> - <dc:Bounds x="690" y="77" width="100" height="80" /> - </bpmndi:BPMNShape> - <bpmndi:BPMNShape id="Activity_0wgjtoy_di" bpmnElement="Activity_0wgjtoy"> - <dc:Bounds x="840" y="77" width="100" height="80" /> - </bpmndi:BPMNShape> - <bpmndi:BPMNShape id="Activity_0lulaof_di" bpmnElement="Activity_0lulaof"> - <dc:Bounds x="990" y="77" width="100" height="80" /> - </bpmndi:BPMNShape> - <bpmndi:BPMNShape id="Activity_0g3dip7_di" bpmnElement="Activity_0g3dip7"> - <dc:Bounds x="1130" y="77" width="100" height="80" /> - </bpmndi:BPMNShape> - <bpmndi:BPMNShape id="Activity_0fsaanz_di" bpmnElement="Activity_1vptrrr"> - <dc:Bounds x="1270" y="77" width="100" height="80" /> - </bpmndi:BPMNShape> - <bpmndi:BPMNShape id="Event_14qdixj_di" bpmnElement="Event_14qdixj"> - <dc:Bounds x="1432" y="99" width="36" height="36" /> - </bpmndi:BPMNShape> - <bpmndi:BPMNShape id="Activity_0qtgdm9_di" bpmnElement="Activity_0qtgdm9" isExpanded="true"> - <dc:Bounds x="430" y="270" width="438" height="130" /> - </bpmndi:BPMNShape> - <bpmndi:BPMNEdge id="Flow_0anjylz_di" bpmnElement="Flow_0anjylz"> - <di:waypoint x="680" y="333" /> - <di:waypoint x="812" y="333" /> - </bpmndi:BPMNEdge> - <bpmndi:BPMNEdge id="Flow_06q1m6i_di" bpmnElement="Flow_06q1m6i"> - <di:waypoint x="488" y="333" /> - <di:waypoint x="580" y="333" /> - </bpmndi:BPMNEdge> - <bpmndi:BPMNShape id="Event_08zcwc2_di" bpmnElement="Event_08zcwc2"> - <dc:Bounds x="452" y="315" width="36" height="36" /> - <bpmndi:BPMNLabel> - <dc:Bounds x="458" y="358" width="24" height="14" /> - </bpmndi:BPMNLabel> - </bpmndi:BPMNShape> - <bpmndi:BPMNShape id="Event_1wkm29u_di" bpmnElement="Event_1wkm29u"> - <dc:Bounds x="812" y="315" width="36" height="36" /> - <bpmndi:BPMNLabel> - <dc:Bounds x="822" y="357" width="19" height="14" /> - </bpmndi:BPMNLabel> - </bpmndi:BPMNShape> - <bpmndi:BPMNShape id="Activity_0ltxcii_di" bpmnElement="Activity_0ltxcii"> - <dc:Bounds x="580" y="293" width="100" height="80" /> - </bpmndi:BPMNShape> - <bpmndi:BPMNShape id="Activity_08pcuhq_di" bpmnElement="Activity_17vixcx"> - <dc:Bounds x="390" y="77" width="100" height="80" /> - </bpmndi:BPMNShape> - </bpmndi:BPMNPlane> - </bpmndi:BPMNDiagram> -</bpmn:definitions> diff --git a/so-etsi-nfvo/so-etsi-nfvo-ns-lcm/so-etsi-nfvo-ns-lcm-bpmn-flows/src/test/java/org/onap/so/etsi/nfvo/ns/lcm/bpmn/flows/BaseTest.java b/so-etsi-nfvo/so-etsi-nfvo-ns-lcm/so-etsi-nfvo-ns-lcm-bpmn-flows/src/test/java/org/onap/so/etsi/nfvo/ns/lcm/bpmn/flows/BaseTest.java deleted file mode 100644 index 1a89f75a70..0000000000 --- a/so-etsi-nfvo/so-etsi-nfvo-ns-lcm/so-etsi-nfvo-ns-lcm-bpmn-flows/src/test/java/org/onap/so/etsi/nfvo/ns/lcm/bpmn/flows/BaseTest.java +++ /dev/null @@ -1,155 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * Copyright (C) 2020 Nordix Foundation. - * ================================================================================ - * 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. - * - * SPDX-License-Identifier: Apache-2.0 - * ============LICENSE_END========================================================= - */ -package org.onap.so.etsi.nfvo.ns.lcm.bpmn.flows; - -import static org.camunda.bpm.engine.history.HistoricProcessInstance.STATE_ACTIVE; -import static org.slf4j.LoggerFactory.getLogger; -import java.time.LocalDateTime; -import java.util.List; -import java.util.Map; -import java.util.Optional; -import java.util.UUID; -import java.util.concurrent.TimeUnit; -import org.camunda.bpm.engine.HistoryService; -import org.camunda.bpm.engine.RuntimeService; -import org.camunda.bpm.engine.history.HistoricProcessInstance; -import org.camunda.bpm.engine.history.HistoricVariableInstance; -import org.camunda.bpm.engine.runtime.ProcessInstance; -import org.junit.runner.RunWith; -import org.onap.so.etsi.nfvo.ns.lcm.database.beans.JobAction; -import org.onap.so.etsi.nfvo.ns.lcm.database.beans.JobStatusEnum; -import org.onap.so.etsi.nfvo.ns.lcm.database.beans.NfvoJob; -import org.onap.so.etsi.nfvo.ns.lcm.database.service.DatabaseServiceProvider; -import org.slf4j.Logger; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.boot.test.context.SpringBootTest; -import org.springframework.cloud.contract.wiremock.AutoConfigureWireMock; -import org.springframework.test.context.ActiveProfiles; -import org.springframework.test.context.ContextConfiguration; -import org.springframework.test.context.junit4.SpringRunner; -import com.github.tomakehurst.wiremock.WireMockServer; - -/** - * @author Waqas Ikram (waqas.ikram@est.tech) - * - */ -@RunWith(SpringRunner.class) -@SpringBootTest(classes = TestApplication.class, webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT) -@ActiveProfiles("test") -@ContextConfiguration -@AutoConfigureWireMock(port = 0) -public abstract class BaseTest { - protected static final String ETSI_CATALOG_URL = "http://modeling-etsicatalog.onap:8806/api"; - protected static final String SOL003_ADAPTER_ENDPOINT_URL = "https://so-vnfm-adapter.onap:9092/so/vnfm-adapter/v1"; - protected static final String GLOBAL_CUSTOMER_ID = UUID.randomUUID().toString(); - protected static final String NSD_INVARIANT_ID = UUID.randomUUID().toString(); - protected static final String SERVICE_TYPE = "NetworkService"; - protected static final String UUID_REGEX = - "[0-9a-zA-Z]{8}\\-[0-9a-zA-Z]{4}\\-[0-9a-zA-Z]{4}\\-[0-9a-zA-Z]{4}\\-[0-9a-zA-Z]{12}"; - protected static final String RANDOM_JOB_ID = UUID.randomUUID().toString(); - - protected static final Logger logger = getLogger(BaseTest.class); - - private static final long TIME_OUT_IN_SECONDS = 120; - private static final int SLEEP_TIME_IN_SECONDS = 5; - - @Autowired - private HistoryService historyService; - - @Autowired - private RuntimeService runtimeService; - - @Autowired - protected DatabaseServiceProvider databaseServiceProvider; - - @Autowired - protected WireMockServer wireMockServer; - - public NfvoJob createNewNfvoJob(final String jobAction, final String nsdId, final String nsName) { - final NfvoJob newJob = new NfvoJob().startTime(LocalDateTime.now()).jobType("NS").jobAction(JobAction.CREATE) - .status(JobStatusEnum.STARTING).resourceId(nsdId).resourceName(nsName); - databaseServiceProvider.addJob(newJob); - return newJob; - } - - public Optional<NfvoJob> getNfvoJob(final String jobId) { - return databaseServiceProvider.getJob(jobId); - } - - public Optional<NfvoJob> getJobByResourceId(final String resourceId) { - return databaseServiceProvider.getJobByResourceId(resourceId); - } - - public ProcessInstance executeWorkflow(final String processDefinitionKey, final String businessKey, - final Map<String, Object> variables) { - return runtimeService.startProcessInstanceByKey(processDefinitionKey, businessKey, variables); - } - - public HistoricProcessInstance getHistoricProcessInstance(final String processInstanceId) { - return historyService.createHistoricProcessInstanceQuery().processInstanceId(processInstanceId).singleResult(); - } - - public HistoricVariableInstance getVariable(final String processInstanceId, final String name) { - return historyService.createHistoricVariableInstanceQuery().processInstanceId(processInstanceId) - .variableName(name).singleResult(); - } - - public List<HistoricVariableInstance> getVariables(final String processInstanceId) { - return historyService.createHistoricVariableInstanceQuery().processInstanceId(processInstanceId).list(); - } - - public boolean waitForProcessInstanceToFinish(final String processInstanceId) throws InterruptedException { - final long startTimeInMillis = System.currentTimeMillis(); - final long timeOutTime = startTimeInMillis + TimeUnit.SECONDS.toMillis(TIME_OUT_IN_SECONDS); - while (timeOutTime > System.currentTimeMillis()) { - - if (isProcessEndedByProcessInstanceId(processInstanceId)) { - logger.info("processInstanceId: {} is finished", processInstanceId); - return true; - } - logger.info("processInstanceId: {} is still running", processInstanceId); - logger.info("Process instance {} not finished yet, will try again in {} seconds", processInstanceId, - SLEEP_TIME_IN_SECONDS); - TimeUnit.SECONDS.sleep(SLEEP_TIME_IN_SECONDS); - } - logger.warn("Timeout {} process didn't finished ", processInstanceId); - return false; - } - - - public boolean isProcessEndedByProcessInstanceId(final String processInstanceId) { - return !isProcessInstanceActive(processInstanceId) && isProcessInstanceEnded(processInstanceId); - } - - private boolean isProcessInstanceActive(final String processInstanceId) { - final HistoricProcessInstance processInstance = getHistoricProcessInstance(processInstanceId); - return processInstance != null && STATE_ACTIVE.equalsIgnoreCase(processInstance.getState()); - } - - private boolean isProcessInstanceEnded(final String processInstanceId) { - return runtimeService.createProcessInstanceQuery().processInstanceId(processInstanceId).singleResult() == null; - } - - protected String getAaiServiceInstanceEndPoint() { - return "/aai/v[0-9]+/business/customers/customer/" + GLOBAL_CUSTOMER_ID - + "/service-subscriptions/service-subscription/" + SERVICE_TYPE - + "/service-instances/service-instance/.*"; - } -} diff --git a/so-etsi-nfvo/so-etsi-nfvo-ns-lcm/so-etsi-nfvo-ns-lcm-bpmn-flows/src/test/java/org/onap/so/etsi/nfvo/ns/lcm/bpmn/flows/DefaultToShortClassNameBeanNameGenerator.java b/so-etsi-nfvo/so-etsi-nfvo-ns-lcm/so-etsi-nfvo-ns-lcm-bpmn-flows/src/test/java/org/onap/so/etsi/nfvo/ns/lcm/bpmn/flows/DefaultToShortClassNameBeanNameGenerator.java deleted file mode 100644 index f91cf9d0c3..0000000000 --- a/so-etsi-nfvo/so-etsi-nfvo-ns-lcm/so-etsi-nfvo-ns-lcm-bpmn-flows/src/test/java/org/onap/so/etsi/nfvo/ns/lcm/bpmn/flows/DefaultToShortClassNameBeanNameGenerator.java +++ /dev/null @@ -1,37 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * Copyright (C) 2020 Nordix Foundation. - * ================================================================================ - * 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. - * - * SPDX-License-Identifier: Apache-2.0 - * ============LICENSE_END========================================================= - */ - -package org.onap.so.etsi.nfvo.ns.lcm.bpmn.flows; - -import org.springframework.beans.factory.config.BeanDefinition; -import org.springframework.context.annotation.AnnotationBeanNameGenerator; -import org.springframework.util.ClassUtils; - -/** - * @author Waqas Ikram (waqas.ikram@est.tech) - * - */ -public class DefaultToShortClassNameBeanNameGenerator extends AnnotationBeanNameGenerator { - - @Override - protected String buildDefaultBeanName(final BeanDefinition definition) { - return ClassUtils.getShortName(definition.getBeanClassName()); - } -} diff --git a/so-etsi-nfvo/so-etsi-nfvo-ns-lcm/so-etsi-nfvo-ns-lcm-bpmn-flows/src/test/java/org/onap/so/etsi/nfvo/ns/lcm/bpmn/flows/PojoClassesTests.java b/so-etsi-nfvo/so-etsi-nfvo-ns-lcm/so-etsi-nfvo-ns-lcm-bpmn-flows/src/test/java/org/onap/so/etsi/nfvo/ns/lcm/bpmn/flows/PojoClassesTests.java deleted file mode 100644 index edfb20afd2..0000000000 --- a/so-etsi-nfvo/so-etsi-nfvo-ns-lcm/so-etsi-nfvo-ns-lcm-bpmn-flows/src/test/java/org/onap/so/etsi/nfvo/ns/lcm/bpmn/flows/PojoClassesTests.java +++ /dev/null @@ -1,63 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * Copyright (C) 2020 Nordix Foundation. - * ================================================================================ - * 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. - * - * SPDX-License-Identifier: Apache-2.0 - * ============LICENSE_END========================================================= - */ -package org.onap.so.etsi.nfvo.ns.lcm.bpmn.flows; - -import java.util.Arrays; -import java.util.List; -import org.junit.Test; -import org.onap.so.etsi.nfvo.ns.lcm.bpmn.flows.nsd.FileEntry; -import org.onap.so.etsi.nfvo.ns.lcm.bpmn.flows.nsd.NetworkServiceDescriptor; -import org.onap.so.etsi.nfvo.ns.lcm.bpmn.flows.nsd.ToscaMetadata; -import org.onap.so.etsi.nfvo.ns.lcm.bpmn.flows.nsd.VirtualNetworkFunction; -import org.onap.so.openpojo.rules.ToStringTester; -import com.openpojo.reflection.filters.FilterPackageInfo; -import com.openpojo.validation.Validator; -import com.openpojo.validation.ValidatorBuilder; -import com.openpojo.validation.test.impl.GetterTester; -import com.openpojo.validation.test.impl.SetterTester; -import nl.jqno.equalsverifier.EqualsVerifier; -import nl.jqno.equalsverifier.Warning; - -/** - * @author Waqas Ikram (waqas.ikram@est.tech) - * - */ -public class PojoClassesTests { - - @Test - public void test_nsd_parser_pojo_classes() throws ClassNotFoundException { - - final Validator validator = ValidatorBuilder.create().with(new SetterTester()).with(new GetterTester()) - .with(new ToStringTester()).build(); - validator.validate(FileEntry.class.getPackageName(), new FilterPackageInfo()); - } - - - @Test - public void test_nsd_parser_pojo_classes_equalAndHashMethod() throws ClassNotFoundException { - final List<Class<?>> classes = Arrays.asList(FileEntry.class, NetworkServiceDescriptor.class, - ToscaMetadata.class, VirtualNetworkFunction.class); - for (final Class<?> clazz : classes) { - EqualsVerifier.forClass(clazz).suppress(Warning.STRICT_INHERITANCE, Warning.NONFINAL_FIELDS, - Warning.INHERITED_DIRECTLY_FROM_OBJECT).verify(); - } - } - -} diff --git a/so-etsi-nfvo/so-etsi-nfvo-ns-lcm/so-etsi-nfvo-ns-lcm-bpmn-flows/src/test/java/org/onap/so/etsi/nfvo/ns/lcm/bpmn/flows/TestApplication.java b/so-etsi-nfvo/so-etsi-nfvo-ns-lcm/so-etsi-nfvo-ns-lcm-bpmn-flows/src/test/java/org/onap/so/etsi/nfvo/ns/lcm/bpmn/flows/TestApplication.java deleted file mode 100644 index 18d601930c..0000000000 --- a/so-etsi-nfvo/so-etsi-nfvo-ns-lcm/so-etsi-nfvo-ns-lcm-bpmn-flows/src/test/java/org/onap/so/etsi/nfvo/ns/lcm/bpmn/flows/TestApplication.java +++ /dev/null @@ -1,45 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * Copyright (C) 2020 Nordix Foundation. - * ================================================================================ - * 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. - * - * SPDX-License-Identifier: Apache-2.0 - * ============LICENSE_END========================================================= - */ - -package org.onap.so.etsi.nfvo.ns.lcm.bpmn.flows; - -import org.springframework.boot.SpringApplication; -import org.springframework.boot.autoconfigure.EnableAutoConfiguration; -import org.springframework.boot.autoconfigure.SpringBootApplication; -import org.springframework.boot.autoconfigure.jackson.JacksonAutoConfiguration; -import org.springframework.context.annotation.ComponentScan; -import org.springframework.context.annotation.FilterType; -import org.springframework.context.annotation.ComponentScan.Filter; - -/** - * @author Waqas Ikram (waqas.ikram@est.tech) - * - */ -@SpringBootApplication(scanBasePackages = {"org.onap.so"}) -@EnableAutoConfiguration(exclude = {JacksonAutoConfiguration.class}) -@ComponentScan(basePackages = {"org.onap"}, nameGenerator = DefaultToShortClassNameBeanNameGenerator.class, - excludeFilters = {@Filter(type = FilterType.ANNOTATION, classes = SpringBootApplication.class)}) -public class TestApplication { - - public static void main(final String[] args) { - new SpringApplication(TestApplication.class).run(args); - } - -} diff --git a/so-etsi-nfvo/so-etsi-nfvo-ns-lcm/so-etsi-nfvo-ns-lcm-bpmn-flows/src/test/java/org/onap/so/etsi/nfvo/ns/lcm/bpmn/flows/nsd/parser/NetworkServiceDescriptorParserTest.java b/so-etsi-nfvo/so-etsi-nfvo-ns-lcm/so-etsi-nfvo-ns-lcm-bpmn-flows/src/test/java/org/onap/so/etsi/nfvo/ns/lcm/bpmn/flows/nsd/parser/NetworkServiceDescriptorParserTest.java deleted file mode 100644 index 4a8c715e5c..0000000000 --- a/so-etsi-nfvo/so-etsi-nfvo-ns-lcm/so-etsi-nfvo-ns-lcm-bpmn-flows/src/test/java/org/onap/so/etsi/nfvo/ns/lcm/bpmn/flows/nsd/parser/NetworkServiceDescriptorParserTest.java +++ /dev/null @@ -1,89 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * Copyright (C) 2020 Nordix Foundation. - * ================================================================================ - * 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. - * - * SPDX-License-Identifier: Apache-2.0 - * ============LICENSE_END========================================================= - */ -package org.onap.so.etsi.nfvo.ns.lcm.bpmn.flows.nsd.parser; - -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertFalse; -import static org.junit.Assert.assertTrue; -import java.io.File; -import java.io.IOException; -import java.nio.file.Files; -import java.nio.file.Paths; -import java.util.Map; -import java.util.Optional; -import org.junit.Test; -import org.junit.runner.RunWith; -import org.onap.so.etsi.nfvo.ns.lcm.bpmn.flows.TestApplication; -import org.onap.so.etsi.nfvo.ns.lcm.bpmn.flows.nsd.NetworkServiceDescriptor; -import org.onap.so.etsi.nfvo.ns.lcm.bpmn.flows.nsd.parser.NetworkServiceDescriptorParser; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.boot.test.context.SpringBootTest; -import org.springframework.test.context.ActiveProfiles; -import org.springframework.test.context.junit4.SpringRunner; - - -/** - * @author Waqas Ikram (waqas.ikram@est.tech) - * - */ -@RunWith(SpringRunner.class) -@SpringBootTest(classes = TestApplication.class, webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT) -@ActiveProfiles("test") -public class NetworkServiceDescriptorParserTest { - - private static final String VALID_ETSI_NSD_FILE = "src/test/resources/ns.csar"; - private static final String INVALID_ETSI_NSD_FILE = "src/test/resources/invalid_ns.csar"; - - @Autowired - private NetworkServiceDescriptorParser objUnderTest; - - @Test - public void testValidEtsiNsd_ableToParseIt() throws IOException { - final byte[] zipBytes = Files.readAllBytes(Paths.get(getAbsolutePath(VALID_ETSI_NSD_FILE))); - final Optional<NetworkServiceDescriptor> optional = objUnderTest.parse(zipBytes); - assertTrue(optional.isPresent()); - final NetworkServiceDescriptor actualNsd = optional.get(); - assertEquals(NetworkServiceDescriptorParser.NS_NODE_TYPE, actualNsd.getType()); - assertFalse(actualNsd.getProperties().isEmpty()); - - final Map<String, Object> actualNsdProperties = actualNsd.getProperties(); - assertEquals(5, actualNsdProperties.size()); - assertEquals("ffdddc5d-a44b-45ae-8fc3-e6551cce350f", actualNsdProperties.get("descriptor_id")); - assertEquals(5, actualNsd.getVnfs().size()); - - } - - @Test - public void testEmptyEtsiNsd_returnEmptyOptional() throws IOException { - assertFalse(objUnderTest.parse(new byte[] {}).isPresent()); - } - - @Test - public void testInvalidEtsiNsd_returnEmptyOptional() throws IOException { - final byte[] zipBytes = Files.readAllBytes(Paths.get(getAbsolutePath(INVALID_ETSI_NSD_FILE))); - assertFalse(objUnderTest.parse(zipBytes).isPresent()); - } - - private String getAbsolutePath(final String path) { - final File file = new File(path); - return file.getAbsolutePath(); - } - -} diff --git a/so-etsi-nfvo/so-etsi-nfvo-ns-lcm/so-etsi-nfvo-ns-lcm-bpmn-flows/src/test/java/org/onap/so/etsi/nfvo/ns/workflow/engine/tasks/CreateNsTaskTest.java b/so-etsi-nfvo/so-etsi-nfvo-ns-lcm/so-etsi-nfvo-ns-lcm-bpmn-flows/src/test/java/org/onap/so/etsi/nfvo/ns/workflow/engine/tasks/CreateNsTaskTest.java deleted file mode 100644 index 3686cd620d..0000000000 --- a/so-etsi-nfvo/so-etsi-nfvo-ns-lcm/so-etsi-nfvo-ns-lcm-bpmn-flows/src/test/java/org/onap/so/etsi/nfvo/ns/workflow/engine/tasks/CreateNsTaskTest.java +++ /dev/null @@ -1,381 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * Copyright (C) 2020 Nordix Foundation. - * ================================================================================ - * 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. - * - * SPDX-License-Identifier: Apache-2.0 - * ============LICENSE_END========================================================= - */ -package org.onap.so.etsi.nfvo.ns.workflow.engine.tasks; - -import static com.github.tomakehurst.wiremock.client.WireMock.get; -import static com.github.tomakehurst.wiremock.client.WireMock.notFound; -import static com.github.tomakehurst.wiremock.client.WireMock.ok; -import static com.github.tomakehurst.wiremock.client.WireMock.put; -import static com.github.tomakehurst.wiremock.client.WireMock.urlMatching; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertFalse; -import static org.junit.Assert.assertNotNull; -import static org.junit.Assert.assertNull; -import static org.junit.Assert.assertTrue; -import static org.junit.Assert.fail; -import static org.onap.so.etsi.nfvo.ns.lcm.bpmn.flows.extclients.etsicatalog.EtsiCatalogServiceProviderConfiguration.ETSI_CATALOG_REST_TEMPLATE_BEAN; -import static org.springframework.test.web.client.match.MockRestRequestMatchers.method; -import static org.springframework.test.web.client.match.MockRestRequestMatchers.requestTo; -import static org.springframework.test.web.client.response.MockRestResponseCreators.withStatus; -import static org.springframework.test.web.client.response.MockRestResponseCreators.withSuccess; -import java.time.LocalDateTime; -import java.util.Arrays; -import java.util.HashMap; -import java.util.Map; -import java.util.Optional; -import java.util.UUID; -import org.camunda.bpm.engine.history.HistoricProcessInstance; -import org.camunda.bpm.engine.history.HistoricVariableInstance; -import org.camunda.bpm.engine.runtime.ProcessInstance; -import org.junit.After; -import org.junit.Before; -import org.junit.Test; -import org.onap.so.adapters.etsisol003adapter.pkgm.extclients.etsicatalog.model.NsdInfo; -import org.onap.so.etsi.nfvo.ns.lcm.bpmn.flows.BaseTest; -import org.onap.so.etsi.nfvo.ns.lcm.bpmn.flows.CamundaVariableNameConstants; -import org.onap.so.etsi.nfvo.ns.lcm.bpmn.flows.GsonProvider; -import org.onap.so.etsi.nfvo.ns.lcm.bpmn.flows.exceptions.NsRequestProcessingException; -import org.onap.so.etsi.nfvo.ns.lcm.bpmn.flows.service.JobExecutorService; -import org.onap.so.etsi.nfvo.ns.lcm.bpmn.flows.service.WorkflowQueryService; -import org.onap.so.etsi.nfvo.ns.lcm.database.beans.JobStatusEnum; -import org.onap.so.etsi.nfvo.ns.lcm.database.beans.NfvoJob; -import org.onap.so.etsi.nfvo.ns.lcm.database.beans.NfvoNsInst; -import org.onap.so.etsi.nfvo.ns.lcm.database.beans.State; -import org.onap.so.etsi.nfvo.ns.lcm.model.CreateNsRequest; -import org.onap.so.etsi.nfvo.ns.lcm.model.InlineResponse400; -import org.onap.so.etsi.nfvo.ns.lcm.model.NsInstancesNsInstance; -import org.onap.so.etsi.nfvo.ns.lcm.model.NsInstancesNsInstance.NsStateEnum; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.beans.factory.annotation.Qualifier; -import org.springframework.http.HttpMethod; -import org.springframework.http.HttpStatus; -import org.springframework.http.MediaType; -import org.springframework.http.converter.json.GsonHttpMessageConverter; -import org.springframework.test.web.client.MockRestServiceServer; -import org.springframework.web.client.RestTemplate; -import com.github.tomakehurst.wiremock.client.WireMock; -import com.google.gson.Gson; - -/** - * @author Waqas Ikram (waqas.ikram@est.tech) - * - */ -public class CreateNsTaskTest extends BaseTest { - private static final String NSD_ID = UUID.randomUUID().toString(); - private static final String NS_NAME = "CreateNetworkService-" + NSD_ID; - private static final String CREATE_NS_WORKFLOW_NAME = "CreateNs"; - - @Autowired - @Qualifier(ETSI_CATALOG_REST_TEMPLATE_BEAN) - private RestTemplate restTemplate; - - @Autowired - private GsonProvider gsonProvider; - - @Autowired - private JobExecutorService objUnderTest; - - @Autowired - private WorkflowQueryService workflowQueryService; - - private MockRestServiceServer mockRestServiceServer; - - private Gson gson; - - @Before - public void before() { - wireMockServer.resetAll(); - final MockRestServiceServer.MockRestServiceServerBuilder builder = MockRestServiceServer.bindTo(restTemplate); - builder.ignoreExpectOrder(true); - mockRestServiceServer = builder.build(); - gson = gsonProvider.getGson(); - restTemplate.getMessageConverters().add(new GsonHttpMessageConverter(gson)); - } - - @After - public void after() { - wireMockServer.resetAll(); - mockRestServiceServer.reset(); - } - - @Test - public void testCreateNsWorkflow_SuccessfullCase() throws InterruptedException { - final CreateNsRequest createNsRequest = getCreateNsRequest(); - - mockEtsiCatalogEndpoints(); - mockAAIEndpoints(createNsRequest); - - final NsInstancesNsInstance nsResponse = - objUnderTest.runCreateNsJob(createNsRequest, GLOBAL_CUSTOMER_ID, SERVICE_TYPE); - assertNotNull(nsResponse); - assertNotNull(nsResponse.getId()); - - final Optional<NfvoJob> optional = getJobByResourceId(createNsRequest.getNsdId()); - assertTrue(optional.isPresent()); - final NfvoJob nfvoJob = optional.get(); - - assertTrue(waitForProcessInstanceToFinish(nfvoJob.getProcessInstanceId())); - - mockRestServiceServer.verify(); - final HistoricProcessInstance historicProcessInstance = - getHistoricProcessInstance(nfvoJob.getProcessInstanceId()); - assertNotNull(historicProcessInstance); - - assertEquals(HistoricProcessInstance.STATE_COMPLETED, historicProcessInstance.getState()); - assertTrue(databaseServiceProvider.isNsInstExists(createNsRequest.getNsName())); - - final NfvoJob actualJob = optional.get(); - assertEquals(JobStatusEnum.FINISHED, actualJob.getStatus()); - - assertEquals(NS_NAME, nsResponse.getNsInstanceName()); - assertEquals(NsStateEnum.NOT_INSTANTIATED, nsResponse.getNsState()); - - final HistoricVariableInstance doesNsPackageExistsVar = - getVariable(nfvoJob.getProcessInstanceId(), "doesNsPackageExists"); - assertNotNull(doesNsPackageExistsVar); - assertTrue((boolean) doesNsPackageExistsVar.getValue()); - - final HistoricVariableInstance doesNsInstanceExistsVar = - getVariable(nfvoJob.getProcessInstanceId(), "doesNsInstanceExists"); - assertNotNull(doesNsInstanceExistsVar); - assertFalse((boolean) doesNsInstanceExistsVar.getValue()); - - } - - @Test - public void testCreateNsWorkflow_FailsToGetNsPackage() throws InterruptedException { - final String nsdId = UUID.randomUUID().toString(); - final String nsdName = NS_NAME + "-" + System.currentTimeMillis(); - final CreateNsRequest createNsRequest = getCreateNsRequest(nsdId, nsdName); - - mockRestServiceServer.expect(requestTo(ETSI_CATALOG_URL + "/nsd/v1/ns_descriptors/" + nsdId)) - .andExpect(method(HttpMethod.GET)).andRespond(withStatus(HttpStatus.NOT_FOUND)); - - try { - objUnderTest.runCreateNsJob(createNsRequest, GLOBAL_CUSTOMER_ID, SERVICE_TYPE); - fail("runCreateNsJob should throw exception"); - } catch (final Exception exception) { - assertEquals(NsRequestProcessingException.class, exception.getClass()); - } - - final Optional<NfvoJob> optional = getJobByResourceId(createNsRequest.getNsdId()); - assertTrue(optional.isPresent()); - final NfvoJob nfvoJob = optional.get(); - assertEquals(JobStatusEnum.ERROR, nfvoJob.getStatus()); - - assertTrue(waitForProcessInstanceToFinish(nfvoJob.getProcessInstanceId())); - - mockRestServiceServer.verify(); - final HistoricProcessInstance historicProcessInstance = - getHistoricProcessInstance(nfvoJob.getProcessInstanceId()); - assertNotNull(historicProcessInstance); - - assertEquals(HistoricProcessInstance.STATE_COMPLETED, historicProcessInstance.getState()); - - - final HistoricVariableInstance nsResponseVariable = - getVariable(nfvoJob.getProcessInstanceId(), CamundaVariableNameConstants.CREATE_NS_RESPONSE_PARAM_NAME); - assertNull(nsResponseVariable); - - final Optional<InlineResponse400> problemDetailsOptional = - workflowQueryService.getProblemDetails(nfvoJob.getProcessInstanceId()); - assertTrue(problemDetailsOptional.isPresent()); - - final InlineResponse400 problemDetails = problemDetailsOptional.get(); - assertNotNull(problemDetails); - assertNotNull(problemDetails.getDetail()); - - final HistoricVariableInstance doesNsPackageExistsVar = - getVariable(nfvoJob.getProcessInstanceId(), "doesNsPackageExists"); - assertNotNull(doesNsPackageExistsVar); - assertFalse((boolean) doesNsPackageExistsVar.getValue()); - assertEquals("Unexpected exception occured while getting ns package using nsdId: " + nsdId, - problemDetails.getDetail()); - } - - @Test - public void testCreateNsWorkflow_FailsToFindJobUsingJobId() throws InterruptedException { - final String nsdId = UUID.randomUUID().toString(); - final String nsdName = NS_NAME + "-" + System.currentTimeMillis(); - final CreateNsRequest createNsRequest = getCreateNsRequest(nsdId, nsdName); - - final String randomJobId = UUID.randomUUID().toString(); - final ProcessInstance processInstance = - executeWorkflow(CREATE_NS_WORKFLOW_NAME, randomJobId, getVariables(randomJobId, createNsRequest)); - assertTrue(waitForProcessInstanceToFinish(processInstance.getProcessInstanceId())); - - mockRestServiceServer.verify(); - final HistoricProcessInstance historicProcessInstance = - getHistoricProcessInstance(processInstance.getProcessInstanceId()); - assertNotNull(historicProcessInstance); - - assertEquals(HistoricProcessInstance.STATE_COMPLETED, historicProcessInstance.getState()); - - final HistoricVariableInstance nsResponseVariable = getVariable(processInstance.getProcessInstanceId(), - CamundaVariableNameConstants.CREATE_NS_RESPONSE_PARAM_NAME); - - assertNull(nsResponseVariable); - - final HistoricVariableInstance workflowExceptionVariable = getVariable(processInstance.getProcessInstanceId(), - CamundaVariableNameConstants.NS_WORKFLOW_PROCESSING_EXCEPTION_PARAM_NAME); - - final InlineResponse400 problemDetails = (InlineResponse400) workflowExceptionVariable.getValue(); - assertNotNull(problemDetails); - assertNotNull(problemDetails.getDetail()); - assertEquals("Unable to find job using job id: " + randomJobId, problemDetails.getDetail()); - - } - - @Test - public void testCreateNsWorkflow_NsInstanceExistsInDb() throws InterruptedException { - final String nsdId = UUID.randomUUID().toString(); - final String nsdName = NS_NAME + "-" + System.currentTimeMillis(); - final CreateNsRequest createNsRequest = getCreateNsRequest(nsdId, nsdName); - - databaseServiceProvider.saveNfvoNsInst(new NfvoNsInst().nsInstId(nsdId).name(createNsRequest.getNsName()) - .nsPackageId(UUID.randomUUID().toString()).nsdId(nsdId).nsdInvariantId(nsdId) - .description(createNsRequest.getNsDescription()).status(State.INSTANTIATED) - .statusUpdatedTime(LocalDateTime.now()).globalCustomerId(GLOBAL_CUSTOMER_ID).serviceType(SERVICE_TYPE)); - - mockEtsiCatalogEndpoints(nsdId); - - try { - objUnderTest.runCreateNsJob(createNsRequest, GLOBAL_CUSTOMER_ID, SERVICE_TYPE); - fail("runCreateNsJob should throw exception"); - } catch (final Exception exception) { - assertEquals(NsRequestProcessingException.class, exception.getClass()); - } - - final Optional<NfvoJob> optional = getJobByResourceId(createNsRequest.getNsdId()); - assertTrue(optional.isPresent()); - final NfvoJob nfvoJob = optional.get(); - assertEquals(JobStatusEnum.ERROR, nfvoJob.getStatus()); - - assertTrue(waitForProcessInstanceToFinish(nfvoJob.getProcessInstanceId())); - - mockRestServiceServer.verify(); - final HistoricProcessInstance historicProcessInstance = - getHistoricProcessInstance(nfvoJob.getProcessInstanceId()); - assertNotNull(historicProcessInstance); - - assertEquals(HistoricProcessInstance.STATE_COMPLETED, historicProcessInstance.getState()); - assertTrue(databaseServiceProvider.isNsInstExists(createNsRequest.getNsName())); - - final HistoricVariableInstance historicVariableInstance = - getVariable(nfvoJob.getProcessInstanceId(), CamundaVariableNameConstants.CREATE_NS_RESPONSE_PARAM_NAME); - - assertNull(historicVariableInstance); - - final Optional<InlineResponse400> problemDetailsOptional = - workflowQueryService.getProblemDetails(nfvoJob.getProcessInstanceId()); - - final InlineResponse400 problemDetails = problemDetailsOptional.get(); - assertNotNull(problemDetails); - assertNotNull(problemDetails.getDetail()); - assertTrue(problemDetails.getDetail().startsWith("Ns Instance already exists in database")); - - final HistoricVariableInstance doesNsInstanceExistsVar = - getVariable(nfvoJob.getProcessInstanceId(), "doesNsInstanceExists"); - assertNotNull(doesNsInstanceExistsVar); - assertTrue((boolean) doesNsInstanceExistsVar.getValue()); - - } - - @Test - public void testCreateNsWorkflow_FailToCreateResouceInAai() throws InterruptedException { - final String nsdId = UUID.randomUUID().toString(); - final String nsdName = NS_NAME + "-" + System.currentTimeMillis(); - final CreateNsRequest createNsRequest = getCreateNsRequest(nsdId, nsdName); - - mockEtsiCatalogEndpoints(nsdId); - - final String modelEndpoint = getAaiServiceInstanceEndPoint(); - wireMockServer.stubFor(put(urlMatching(modelEndpoint)).willReturn(WireMock.serverError())); - wireMockServer.stubFor(get(urlMatching(modelEndpoint)).willReturn(WireMock.serverError())); - - try { - objUnderTest.runCreateNsJob(createNsRequest, GLOBAL_CUSTOMER_ID, SERVICE_TYPE); - fail("runCreateNsJob should throw exception"); - } catch (final Exception exception) { - assertEquals(NsRequestProcessingException.class, exception.getClass()); - } - final Optional<NfvoJob> optional = getJobByResourceId(createNsRequest.getNsdId()); - assertTrue(optional.isPresent()); - final NfvoJob nfvoJob = optional.get(); - assertEquals(JobStatusEnum.ERROR, nfvoJob.getStatus()); - - mockRestServiceServer.verify(); - final HistoricProcessInstance historicProcessInstance = - getHistoricProcessInstance(nfvoJob.getProcessInstanceId()); - assertNotNull(historicProcessInstance); - - assertEquals(HistoricProcessInstance.STATE_COMPLETED, historicProcessInstance.getState()); - assertTrue(databaseServiceProvider.isNsInstExists(createNsRequest.getNsName())); - - final Optional<InlineResponse400> problemDetailsOptional = - workflowQueryService.getProblemDetails(nfvoJob.getProcessInstanceId()); - - final InlineResponse400 problemDetails = problemDetailsOptional.get(); - assertNotNull(problemDetails); - assertEquals("Unable to Create Service Instance in AAI", problemDetails.getDetail()); - - } - - private void mockAAIEndpoints(final CreateNsRequest createNsRequest) { - final String modelEndpoint = getAaiServiceInstanceEndPoint(); - - wireMockServer.stubFor(put(urlMatching(modelEndpoint)).willReturn(ok())); - wireMockServer.stubFor(get(urlMatching(modelEndpoint)).willReturn(notFound())); - } - - private void mockEtsiCatalogEndpoints(final String nsdId) { - mockRestServiceServer.expect(requestTo(ETSI_CATALOG_URL + "/nsd/v1/ns_descriptors/" + nsdId)) - .andExpect(method(HttpMethod.GET)) - .andRespond(withSuccess(gson.toJson(getNSPackageModel(NSD_ID)), MediaType.APPLICATION_JSON)); - } - - private void mockEtsiCatalogEndpoints() { - mockEtsiCatalogEndpoints(NSD_ID);; - } - - private NsdInfo getNSPackageModel(final String nsdId) { - return new NsdInfo().id(nsdId).nsdId(nsdId).nsdInvariantId(NSD_INVARIANT_ID).nsdName("vcpe").nsdDesigner("ONAP") - .vnfPkgIds(Arrays.asList(GLOBAL_CUSTOMER_ID)); - } - - private CreateNsRequest getCreateNsRequest() { - return getCreateNsRequest(NSD_ID, NS_NAME); - } - - private CreateNsRequest getCreateNsRequest(final String nsdId, final String nsName) { - return new CreateNsRequest().nsdId(nsdId).nsName(nsName); - } - - private Map<String, Object> getVariables(final String jobId, final CreateNsRequest createNsRequest) { - final Map<String, Object> variables = new HashMap<>(); - variables.put(CamundaVariableNameConstants.JOB_ID_PARAM_NAME, jobId); - variables.put(CamundaVariableNameConstants.CREATE_NS_REQUEST_PARAM_NAME, createNsRequest); - variables.put(CamundaVariableNameConstants.GLOBAL_CUSTOMER_ID_PARAM_NAME, GLOBAL_CUSTOMER_ID); - variables.put(CamundaVariableNameConstants.SERVICE_TYPE_PARAM_NAME, SERVICE_TYPE); - - return variables; - } - -} diff --git a/so-etsi-nfvo/so-etsi-nfvo-ns-lcm/so-etsi-nfvo-ns-lcm-bpmn-flows/src/test/java/org/onap/so/etsi/nfvo/ns/workflow/engine/tasks/DeleteNsTaskTest.java b/so-etsi-nfvo/so-etsi-nfvo-ns-lcm/so-etsi-nfvo-ns-lcm-bpmn-flows/src/test/java/org/onap/so/etsi/nfvo/ns/workflow/engine/tasks/DeleteNsTaskTest.java deleted file mode 100644 index 017bdf6b70..0000000000 --- a/so-etsi-nfvo/so-etsi-nfvo-ns-lcm/so-etsi-nfvo-ns-lcm-bpmn-flows/src/test/java/org/onap/so/etsi/nfvo/ns/workflow/engine/tasks/DeleteNsTaskTest.java +++ /dev/null @@ -1,177 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * Copyright (C) 2020 Nordix Foundation. - * ================================================================================ - * 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. - * - * SPDX-License-Identifier: Apache-2.0 - * ============LICENSE_END========================================================= - */ -package org.onap.so.etsi.nfvo.ns.workflow.engine.tasks; - -import static com.github.tomakehurst.wiremock.client.WireMock.delete; -import static com.github.tomakehurst.wiremock.client.WireMock.get; -import static com.github.tomakehurst.wiremock.client.WireMock.ok; -import static com.github.tomakehurst.wiremock.client.WireMock.okJson; -import static com.github.tomakehurst.wiremock.client.WireMock.urlMatching; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertNotNull; -import static org.junit.Assert.assertTrue; -import java.time.LocalDateTime; -import java.util.Optional; -import java.util.UUID; -import org.camunda.bpm.engine.history.HistoricProcessInstance; -import org.junit.After; -import org.junit.Before; -import org.junit.Rule; -import org.junit.Test; -import org.junit.rules.ExpectedException; -import org.onap.so.etsi.nfvo.ns.lcm.bpmn.flows.BaseTest; -import org.onap.so.etsi.nfvo.ns.lcm.bpmn.flows.exceptions.NsRequestProcessingException; -import org.onap.so.etsi.nfvo.ns.lcm.bpmn.flows.service.JobExecutorService; -import org.onap.so.etsi.nfvo.ns.lcm.database.beans.NfvoJob; -import org.onap.so.etsi.nfvo.ns.lcm.database.beans.NfvoNsInst; -import org.onap.so.etsi.nfvo.ns.lcm.database.beans.State; -import org.springframework.beans.factory.annotation.Autowired; - -/** - * @author Andrew Lamb (andrew.a.lamb@est.tech) - * - */ -public class DeleteNsTaskTest extends BaseTest { - - @Autowired - private JobExecutorService objUnderTest; - - @Rule - public ExpectedException expectedException = ExpectedException.none(); - - @Before - public void before() { - wireMockServer.resetAll(); - } - - @After - public void after() { - wireMockServer.resetAll(); - } - - @Test - public void testRunDeleteNsJob_nsInstanceIdNotInDatabase_throwsException() { - final String nsInstanceId = UUID.randomUUID().toString(); - assertTrue(databaseServiceProvider.getNfvoNsInst(nsInstanceId).isEmpty()); - - expectedException.expect(NsRequestProcessingException.class); - objUnderTest.runDeleteNsJob(nsInstanceId); - } - - @Test - public void testRunDeleteNsJob_nsInstanceStateInstantiated_throwsException() { - final String nsInstanceId = UUID.randomUUID().toString(); - addDummyNsToDatabase(nsInstanceId, State.INSTANTIATED); - - final Optional<NfvoNsInst> optionalNfvoNsInst = databaseServiceProvider.getNfvoNsInst(nsInstanceId); - assertTrue(optionalNfvoNsInst.isPresent()); - assertEquals(State.INSTANTIATED, optionalNfvoNsInst.get().getStatus()); - - expectedException.expect(NsRequestProcessingException.class); - objUnderTest.runDeleteNsJob(nsInstanceId); - } - - @Test - public void testRunDeleteNsJob_nsInstanceStateInstantiating_throwsException() { - final String nsInstanceId = UUID.randomUUID().toString(); - addDummyNsToDatabase(nsInstanceId, State.INSTANTIATING); - - final Optional<NfvoNsInst> optionalNfvoNsInst = databaseServiceProvider.getNfvoNsInst(nsInstanceId); - assertTrue(optionalNfvoNsInst.isPresent()); - assertEquals(State.INSTANTIATING, optionalNfvoNsInst.get().getStatus()); - - expectedException.expect(NsRequestProcessingException.class); - objUnderTest.runDeleteNsJob(nsInstanceId); - } - - @Test - public void testRunDeleteNsJob_nsInstanceStateTerminating_throwsException() { - final String nsInstanceId = UUID.randomUUID().toString(); - addDummyNsToDatabase(nsInstanceId, State.TERMINATING); - - final Optional<NfvoNsInst> optionalNfvoNsInst = databaseServiceProvider.getNfvoNsInst(nsInstanceId); - assertTrue(optionalNfvoNsInst.isPresent()); - assertEquals(State.TERMINATING, optionalNfvoNsInst.get().getStatus()); - - expectedException.expect(NsRequestProcessingException.class); - objUnderTest.runDeleteNsJob(nsInstanceId); - } - - @Test - public void testRunDeleteNsJob_nsInstanceStateFailed_throwsException() { - final String nsInstanceId = UUID.randomUUID().toString(); - addDummyNsToDatabase(nsInstanceId, State.FAILED); - - final Optional<NfvoNsInst> optionalNfvoNsInst = databaseServiceProvider.getNfvoNsInst(nsInstanceId); - assertTrue(optionalNfvoNsInst.isPresent()); - assertEquals(State.FAILED, optionalNfvoNsInst.get().getStatus()); - - expectedException.expect(NsRequestProcessingException.class); - objUnderTest.runDeleteNsJob(nsInstanceId); - } - - @Test - public void testRunDeleteNsJob_SuccessfulCase() throws InterruptedException { - final String nsInstanceId = UUID.randomUUID().toString(); - addDummyNsToDatabase(nsInstanceId, State.NOT_INSTANTIATED); - mockAaiEndpoints(); - - final Optional<NfvoNsInst> optionalNfvoNsInst = databaseServiceProvider.getNfvoNsInst(nsInstanceId); - assertTrue(optionalNfvoNsInst.isPresent()); - assertEquals(State.NOT_INSTANTIATED, optionalNfvoNsInst.get().getStatus()); - - objUnderTest.runDeleteNsJob(nsInstanceId); - - final Optional<NfvoJob> optional = getJobByResourceId(nsInstanceId); - assertTrue(optional.isPresent()); - final NfvoJob nfvoJob = optional.get(); - - // Confirm Process finishes in STATE_COMPLETED - assertTrue(waitForProcessInstanceToFinish(nfvoJob.getProcessInstanceId())); - final HistoricProcessInstance historicProcessInstance = - getHistoricProcessInstance(nfvoJob.getProcessInstanceId()); - assertNotNull(historicProcessInstance); - assertEquals(HistoricProcessInstance.STATE_COMPLETED, historicProcessInstance.getState()); - - // Confirm NS Instance no longer in database - final Optional<NfvoNsInst> optionalNfvoNsInstance = databaseServiceProvider.getNfvoNsInst(nsInstanceId); - assertTrue(optionalNfvoNsInstance.isEmpty()); - } - - private void addDummyNsToDatabase(final String nsInstanceId, final State state) { - final String nsPackageId = UUID.randomUUID().toString(); - final NfvoNsInst nfvoNsInst = new NfvoNsInst().nsInstId(nsInstanceId).name("nsName").nsPackageId(nsPackageId) - .nsdId("nsdId").nsdInvariantId("nsdId").status(state).statusUpdatedTime(LocalDateTime.now()) - .globalCustomerId(GLOBAL_CUSTOMER_ID).serviceType(SERVICE_TYPE); - databaseServiceProvider.saveNfvoNsInst(nfvoNsInst); - } - - private void mockAaiEndpoints() { - final String modelEndpoint = getAaiServiceInstanceEndPoint(); - final String resourceVersion = "12345"; - - final String body = - "{\"resource-version\": \"" + resourceVersion + "\",\n\"orchestration-status\": \"Assigned\"}"; - wireMockServer.stubFor(get(urlMatching(modelEndpoint)).willReturn(ok()).willReturn(okJson(body))); - - wireMockServer.stubFor( - delete(urlMatching(modelEndpoint + "\\?resource-version=" + resourceVersion)).willReturn(ok())); - } -} diff --git a/so-etsi-nfvo/so-etsi-nfvo-ns-lcm/so-etsi-nfvo-ns-lcm-bpmn-flows/src/test/java/org/onap/so/etsi/nfvo/ns/workflow/engine/tasks/InstantiateNsTaskTest.java b/so-etsi-nfvo/so-etsi-nfvo-ns-lcm/so-etsi-nfvo-ns-lcm-bpmn-flows/src/test/java/org/onap/so/etsi/nfvo/ns/workflow/engine/tasks/InstantiateNsTaskTest.java deleted file mode 100644 index f1373bd4ea..0000000000 --- a/so-etsi-nfvo/so-etsi-nfvo-ns-lcm/so-etsi-nfvo-ns-lcm-bpmn-flows/src/test/java/org/onap/so/etsi/nfvo/ns/workflow/engine/tasks/InstantiateNsTaskTest.java +++ /dev/null @@ -1,327 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * Copyright (C) 2020 Nordix Foundation. - * ================================================================================ - * 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. - * - * SPDX-License-Identifier: Apache-2.0 - * ============LICENSE_END========================================================= - */ -package org.onap.so.etsi.nfvo.ns.workflow.engine.tasks; - -import static com.github.tomakehurst.wiremock.client.WireMock.get; -import static com.github.tomakehurst.wiremock.client.WireMock.notFound; -import static com.github.tomakehurst.wiremock.client.WireMock.ok; -import static com.github.tomakehurst.wiremock.client.WireMock.okJson; -import static com.github.tomakehurst.wiremock.client.WireMock.put; -import static com.github.tomakehurst.wiremock.client.WireMock.urlMatching; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertNotNull; -import static org.junit.Assert.assertTrue; -import static org.onap.aaiclient.client.aai.AAIVersion.V19; -import static org.onap.so.etsi.nfvo.ns.lcm.bpmn.flows.CamundaVariableNameConstants.NETWORK_SERVICE_DESCRIPTOR_PARAM_NAME; -import static org.onap.so.etsi.nfvo.ns.lcm.bpmn.flows.extclients.etsicatalog.EtsiCatalogServiceProviderConfiguration.ETSI_CATALOG_REST_TEMPLATE_BEAN; -import static org.onap.so.etsi.nfvo.ns.lcm.bpmn.flows.extclients.vnfm.Sol003AdapterConfiguration.SOL003_ADAPTER_REST_TEMPLATE_BEAN; -import static org.springframework.test.web.client.ExpectedCount.times; -import static org.springframework.test.web.client.match.MockRestRequestMatchers.method; -import static org.springframework.test.web.client.match.MockRestRequestMatchers.requestTo; -import static org.springframework.test.web.client.response.MockRestResponseCreators.withSuccess; -import java.io.File; -import java.io.IOException; -import java.nio.file.Files; -import java.nio.file.Paths; -import java.time.LocalDateTime; -import java.util.ArrayList; -import java.util.HashMap; -import java.util.List; -import java.util.Map; -import java.util.Map.Entry; -import java.util.Optional; -import java.util.UUID; -import java.util.stream.Collectors; -import org.camunda.bpm.engine.history.HistoricProcessInstance; -import org.camunda.bpm.engine.history.HistoricVariableInstance; -import org.hamcrest.text.MatchesPattern; -import org.junit.After; -import org.junit.Before; -import org.junit.Test; -import org.onap.aaiclient.client.aai.entities.Results; -import org.onap.aaiclient.client.graphinventory.entities.Resource; -import org.onap.so.adapters.etsisol003adapter.lcm.v1.model.CreateVnfResponse; -import org.onap.so.adapters.etsisol003adapter.lcm.v1.model.OperationStatusRetrievalStatusEnum; -import org.onap.so.adapters.etsisol003adapter.pkgm.extclients.etsicatalog.model.NsdInfo; -import org.onap.so.adapters.etsisol003adapter.pkgm.extclients.etsicatalog.model.VnfPkgInfo; -import org.onap.so.etsi.nfvo.ns.lcm.bpmn.flows.BaseTest; -import org.onap.so.etsi.nfvo.ns.lcm.bpmn.flows.GsonProvider; -import org.onap.so.etsi.nfvo.ns.lcm.bpmn.flows.nsd.NetworkServiceDescriptor; -import org.onap.so.etsi.nfvo.ns.lcm.bpmn.flows.service.JobExecutorService; -import org.onap.so.etsi.nfvo.ns.lcm.database.beans.NfvoJob; -import org.onap.so.etsi.nfvo.ns.lcm.database.beans.NfvoNfInst; -import org.onap.so.etsi.nfvo.ns.lcm.database.beans.NfvoNsInst; -import org.onap.so.etsi.nfvo.ns.lcm.database.beans.NsLcmOpOcc; -import org.onap.so.etsi.nfvo.ns.lcm.database.beans.OperationStateEnum; -import org.onap.so.etsi.nfvo.ns.lcm.database.beans.State; -import org.onap.so.etsi.nfvo.ns.lcm.database.service.DatabaseServiceProvider; -import org.onap.so.etsi.nfvo.ns.lcm.model.InstantiateNsRequest; -import org.onap.so.etsi.nfvo.ns.lcm.model.NsInstancesnsInstanceIdinstantiateAdditionalParamsForVnf; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.beans.factory.annotation.Qualifier; -import org.springframework.http.HttpMethod; -import org.springframework.http.MediaType; -import org.springframework.http.converter.json.GsonHttpMessageConverter; -import org.springframework.test.web.client.MockRestServiceServer; -import org.springframework.web.client.RestTemplate; -import com.fasterxml.jackson.core.JsonProcessingException; -import com.fasterxml.jackson.databind.ObjectMapper; -import com.google.gson.Gson; - -/** - * @author Andrew Lamb (andrew.a.lamb@est.tech) - * @author Waqas Ikram (waqas.ikram@est.tech) - * - */ -public class InstantiateNsTaskTest extends BaseTest { - - private static final String TENANT_ID = "6ca8680feba04dad9254f423c6e28e1c"; - private static final String CLOUD_REGION = "regionOne"; - private static final String CLOUD_OWNER = "CloudOwner"; - private static final String UUID_REGEX = - "[0-9a-zA-Z]{8}\\-[0-9a-zA-Z]{4}\\-[0-9a-zA-Z]{4}\\-[0-9a-zA-Z]{4}\\-[0-9a-zA-Z]{12}"; - private static final String VCPE_VBRGEMU_VNFD_ID = "b1bb0ce7-2222-4fa7-95ed-4840d70a1102"; - private static final String VCPE_VBNG = "b1bb0ce7-2222-4fa7-95ed-4840d70a1101"; - private static final String VCPE_INFRA_VNFD_ID = "b1bb0ce7-2222-4fa7-95ed-4840d70a1100"; - private static final String VGMUX_VNFD_ID = "0408f076-e6c0-4c82-9940-272fddbb82de"; - private static final String VGW_VNFD_ID = "3fca3543-07f5-492f-812c-ed462e4f94f4"; - private static final String[] VCPE_VNFDS = - new String[] {VGW_VNFD_ID, VGMUX_VNFD_ID, VCPE_INFRA_VNFD_ID, VCPE_VBNG, VCPE_VBRGEMU_VNFD_ID}; - private static final String SAMPLE_NSD_FILE = "src/test/resources/ns.csar"; - private static final String NS_NAME = "InstantiateNetworkService"; - - @Autowired - private DatabaseServiceProvider databaseServiceProvider; - - @Autowired - @Qualifier(ETSI_CATALOG_REST_TEMPLATE_BEAN) - private RestTemplate etsiCatalogRestTemplate; - - @Autowired - @Qualifier(SOL003_ADAPTER_REST_TEMPLATE_BEAN) - private RestTemplate sol003AdapterRestTemplate; - - private MockRestServiceServer mockEtsiCatalogRestServiceServer; - - private MockRestServiceServer mockSol003AdapterRestServiceServer; - - @Autowired - private JobExecutorService objUnderTest; - - @Autowired - private GsonProvider gsonProvider; - - private Gson gson; - - private static final Map<String, String> VNFD_ID_TO_VNFPKG_ID_MAPPING = new HashMap<>(); - static { - for (final String vnfd : VCPE_VNFDS) { - VNFD_ID_TO_VNFPKG_ID_MAPPING.put(vnfd, UUID.randomUUID().toString()); - } - } - - @Before - public void before() { - wireMockServer.resetAll(); - gson = gsonProvider.getGson(); - - mockEtsiCatalogRestServiceServer = - MockRestServiceServer.bindTo(etsiCatalogRestTemplate).ignoreExpectOrder(true).build(); - mockSol003AdapterRestServiceServer = - MockRestServiceServer.bindTo(sol003AdapterRestTemplate).ignoreExpectOrder(true).build(); - - etsiCatalogRestTemplate.getMessageConverters().add(new GsonHttpMessageConverter(gson)); - sol003AdapterRestTemplate.getMessageConverters().add(new GsonHttpMessageConverter(gson)); - - } - - @After - public void after() { - wireMockServer.resetAll(); - mockEtsiCatalogRestServiceServer.reset(); - } - - @Test - public void testInstantiateNsWorkflow_JustUpdateStatus_SuccessfullCase() throws InterruptedException, IOException { - final String nsdId = UUID.randomUUID().toString(); - final String nsdName = NS_NAME + "-" + System.currentTimeMillis(); - - final NfvoNsInst newNfvoNsInst = new NfvoNsInst().nsInstId(nsdId).name(nsdName) - .nsPackageId(UUID.randomUUID().toString()).nsPackageId(nsdId).nsdId(nsdId).nsdInvariantId(nsdId) - .status(State.NOT_INSTANTIATED).statusUpdatedTime(LocalDateTime.now()); - - databaseServiceProvider.saveNfvoNsInst(newNfvoNsInst); - - mockSol003AdapterEndpoints(); - mockAAIEndpoints(nsdId); - mockEtsiCatalogEndpoints(nsdId); - - final String nsLcmOpOccId = - objUnderTest.runInstantiateNsJob(newNfvoNsInst.getNsInstId(), getInstantiateNsRequest()); - - final Optional<NfvoJob> optional = getJobByResourceId(newNfvoNsInst.getNsInstId()); - assertTrue(optional.isPresent()); - final NfvoJob nfvoJob = optional.get(); - - assertTrue(waitForProcessInstanceToFinish(nfvoJob.getProcessInstanceId())); - - final HistoricProcessInstance historicProcessInstance = - getHistoricProcessInstance(nfvoJob.getProcessInstanceId()); - assertNotNull(historicProcessInstance); - - assertEquals(HistoricProcessInstance.STATE_COMPLETED, historicProcessInstance.getState()); - - // check if value in database has updated - final Optional<NfvoNsInst> optionalNfvoNsInst = databaseServiceProvider.getNfvoNsInst(nsdId); - final NfvoNsInst nfvoNsInst = optionalNfvoNsInst.get(); - assertEquals(State.INSTANTIATED, nfvoNsInst.getStatus()); - - final HistoricVariableInstance historicVariableInstance = - getVariable(nfvoJob.getProcessInstanceId(), NETWORK_SERVICE_DESCRIPTOR_PARAM_NAME); - assertNotNull(historicVariableInstance); - final NetworkServiceDescriptor nsd = (NetworkServiceDescriptor) historicVariableInstance.getValue(); - assertNotNull(nsd); - - assertEquals(VNFD_ID_TO_VNFPKG_ID_MAPPING.size(), nsd.getVnfs().size()); - - final List<NfvoNfInst> nfvoNfInsts = databaseServiceProvider.getNfvoNfInstByNsInstId(nsdId); - assertNotNull(nsd); - assertEquals(VNFD_ID_TO_VNFPKG_ID_MAPPING.size(), nfvoNfInsts.size()); - - final Optional<NsLcmOpOcc> optionalNsLcmOpOcc = databaseServiceProvider.getNsLcmOpOcc(nsLcmOpOccId); - assertTrue(optionalNsLcmOpOcc.isPresent()); - - assertEquals(OperationStateEnum.COMPLETED, optionalNsLcmOpOcc.get().getOperationState()); - - final Map<String, NfvoNfInst> nfvoNfInstsMap = - nfvoNfInsts.stream().collect(Collectors.toMap(NfvoNfInst::getVnfdId, nfvoNfInst -> nfvoNfInst)); - - for (final Entry<String, String> entry : VNFD_ID_TO_VNFPKG_ID_MAPPING.entrySet()) { - assertTrue(nfvoNfInstsMap.containsKey(entry.getKey())); - assertEquals(State.INSTANTIATED, nfvoNfInstsMap.get(entry.getKey()).getStatus()); - - } - - } - - private void mockSol003AdapterEndpoints() { - mockSol003AdapterRestServiceServer - .expect(times(VNFD_ID_TO_VNFPKG_ID_MAPPING.size()), - requestTo(MatchesPattern.matchesPattern(SOL003_ADAPTER_ENDPOINT_URL + "/vnfs/.*"))) - .andExpect(method(HttpMethod.POST)) - .andRespond(withSuccess(gson.toJson(new CreateVnfResponse().jobId(UUID.randomUUID().toString())), - MediaType.APPLICATION_JSON)); - - mockSol003AdapterRestServiceServer - .expect(times(VNFD_ID_TO_VNFPKG_ID_MAPPING.size()), - requestTo(MatchesPattern.matchesPattern(SOL003_ADAPTER_ENDPOINT_URL + "/jobs/.*"))) - .andExpect(method(HttpMethod.GET)) - .andRespond(withSuccess(gson.toJson( - new org.onap.so.adapters.etsisol003adapter.lcm.v1.model.QueryJobResponse().operationState( - org.onap.so.adapters.etsisol003adapter.lcm.v1.model.OperationStateEnum.COMPLETED) - .operationStatusRetrievalStatus(OperationStatusRetrievalStatusEnum.STATUS_FOUND)), - MediaType.APPLICATION_JSON)); - } - - private void mockEtsiCatalogEndpoints(final String nsdId) throws IOException { - mockEtsiCatalogRestServiceServer.expect(requestTo(ETSI_CATALOG_URL + "/nsd/v1/ns_descriptors/" + nsdId)) - .andExpect(method(HttpMethod.GET)) - .andRespond(withSuccess(gson.toJson(getNSPackageModel(nsdId)), MediaType.APPLICATION_JSON)); - mockEtsiCatalogRestServiceServer - .expect(requestTo(ETSI_CATALOG_URL + "/nsd/v1/ns_descriptors/" + nsdId + "/nsd_content")) - .andExpect(method(HttpMethod.GET)).andRespond(withSuccess( - getFileContent(getAbsolutePath(SAMPLE_NSD_FILE)), MediaType.APPLICATION_OCTET_STREAM)); - - for (final Entry<String, String> entry : VNFD_ID_TO_VNFPKG_ID_MAPPING.entrySet()) { - mockEtsiCatalogRestServiceServer - .expect(requestTo(ETSI_CATALOG_URL + "/vnfpkgm/v1/vnf_packages/" + entry.getValue())) - .andExpect(method(HttpMethod.GET)).andRespond(withSuccess( - gson.toJson(getVnfPkgInfo(entry.getKey(), entry.getValue())), MediaType.APPLICATION_JSON)); - } - - } - - private VnfPkgInfo getVnfPkgInfo(final String vnfdId, final String vnfPkgId) { - return new VnfPkgInfo().id(vnfPkgId).vnfdId(vnfdId); - } - - private InstantiateNsRequest getInstantiateNsRequest() { - final Map<String, Object> additionalParams = new HashMap<>(); - additionalParams.put("vim_id", CLOUD_OWNER + "_" + CLOUD_REGION + "_" + TENANT_ID); - - final InstantiateNsRequest instantiateNsRequest = new InstantiateNsRequest().nsFlavourId("default"); - - for (final Entry<String, String> entry : VNFD_ID_TO_VNFPKG_ID_MAPPING.entrySet()) { - instantiateNsRequest - .addAdditionalParamsForVnfItem(new NsInstancesnsInstanceIdinstantiateAdditionalParamsForVnf() - .vnfProfileId(entry.getKey()).additionalParams(additionalParams)); - } - - return instantiateNsRequest; - } - - private NsdInfo getNSPackageModel(final String nsdId) { - return new NsdInfo().id(nsdId).nsdId(nsdId).nsdInvariantId(NSD_INVARIANT_ID).nsdName("vcpe").nsdDesigner("ONAP") - .vnfPkgIds(new ArrayList<>(VNFD_ID_TO_VNFPKG_ID_MAPPING.values())); - } - - private byte[] getFileContent(final String path) throws IOException { - return Files.readAllBytes(Paths.get(path)); - } - - - private String getAbsolutePath(final String path) { - return new File(path).getAbsolutePath(); - } - - private void mockAAIEndpoints(final String nsdId) throws JsonProcessingException { - final String modelEndpoint = "/aai/" + V19 + "/network/generic-vnfs/generic-vnf/" + UUID_REGEX; - - wireMockServer.stubFor( - get(urlMatching(modelEndpoint + "\\?resultIndex=0&resultSize=1&format=count")).willReturn(notFound())); - - wireMockServer.stubFor(put(urlMatching(modelEndpoint)).willReturn(ok())); - wireMockServer.stubFor(put(urlMatching(modelEndpoint + "/relationship-list/relationship")).willReturn(ok())); - - wireMockServer.stubFor(get(urlMatching(modelEndpoint)).willReturn(ok()) - .willReturn(okJson("{\"orchestration-status\": \"Created\"}"))); - - wireMockServer.stubFor(get(urlMatching("/aai/" + V19 + "/nodes/service-instances/service-instance/.*")) - .willReturn(okJson(getResourceResultsResponseAsJson(nsdId)))); - - wireMockServer.stubFor( - put(urlMatching("/aai/" + V19 + "/cloud-infrastructure/cloud-regions/cloud-region/" + CLOUD_OWNER + "/" - + CLOUD_REGION + "/tenants/tenant/" + TENANT_ID + "/relationship-list/relationship")) - .willReturn(ok())); - - } - - private String getResourceResultsResponseAsJson(final String nsdId) throws JsonProcessingException { - final Resource resource = new Resource(); - resource.setResourceType("service-instance"); - resource.setResourceLink("/aai/" + V19 + "/business/customers/customer/" + GLOBAL_CUSTOMER_ID - + "/service-subscriptions/service-subscription/NetworkService/service-instances/service-instance/" - + nsdId); - final Results<Resource> results = new Results<>(); - results.getResult().add(resource); - return new ObjectMapper().writeValueAsString(results); - } - -} diff --git a/so-etsi-nfvo/so-etsi-nfvo-ns-lcm/so-etsi-nfvo-ns-lcm-bpmn-flows/src/test/java/org/onap/so/etsi/nfvo/ns/workflow/engine/tasks/MonitorInstantiateSol003AdapterNodeTaskTest.java b/so-etsi-nfvo/so-etsi-nfvo-ns-lcm/so-etsi-nfvo-ns-lcm-bpmn-flows/src/test/java/org/onap/so/etsi/nfvo/ns/workflow/engine/tasks/MonitorInstantiateSol003AdapterNodeTaskTest.java deleted file mode 100644 index ea720cd73b..0000000000 --- a/so-etsi-nfvo/so-etsi-nfvo-ns-lcm/so-etsi-nfvo-ns-lcm-bpmn-flows/src/test/java/org/onap/so/etsi/nfvo/ns/workflow/engine/tasks/MonitorInstantiateSol003AdapterNodeTaskTest.java +++ /dev/null @@ -1,93 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * Copyright (C) 2020 Nordix Foundation. - * ================================================================================ - * 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. - * - * SPDX-License-Identifier: Apache-2.0 - * ============LICENSE_END========================================================= - */ -package org.onap.so.etsi.nfvo.ns.workflow.engine.tasks; - -import static com.github.tomakehurst.wiremock.client.WireMock.get; -import static com.github.tomakehurst.wiremock.client.WireMock.ok; -import static com.github.tomakehurst.wiremock.client.WireMock.okJson; -import static com.github.tomakehurst.wiremock.client.WireMock.urlMatching; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertNotNull; -import static org.junit.Assert.assertTrue; -import java.util.HashMap; -import java.util.Map; -import java.util.UUID; -import org.camunda.bpm.engine.history.HistoricProcessInstance; -import org.camunda.bpm.engine.history.HistoricVariableInstance; -import org.camunda.bpm.engine.runtime.ProcessInstance; -import org.junit.Before; -import org.junit.Test; -import org.onap.so.etsi.nfvo.ns.lcm.bpmn.flows.BaseTest; -import org.onap.so.etsi.nfvo.ns.lcm.bpmn.flows.CamundaVariableNameConstants; -import org.onap.so.etsi.nfvo.ns.lcm.bpmn.flows.tasks.MonitorInstantiateSol003AdapterNodeTask; - -/** - * @author Waqas Ikram (waqas.ikram@est.tech) - * - */ -public class MonitorInstantiateSol003AdapterNodeTaskTest extends BaseTest { - - private static final String RANDOWM_GENERIC_VNF_ID = UUID.randomUUID().toString(); - private static final String MONITOR_SOL003_ADAPTER_CREATE_NODE_STATUS_WORKFLOW = - "MonitorSol003AdapterCreateNodeStatus"; - - @Before - public void before() { - wireMockServer.resetAll(); - } - - @Test - public void testMonitorSol003AdapterCreateNodeStatus_SuccessfullCase() throws InterruptedException { - - final String modelEndpoint = "/aai/v[0-9]+/network/generic-vnfs/generic-vnf/" + UUID_REGEX; - - wireMockServer.stubFor(get(urlMatching(modelEndpoint)).willReturn(ok()) - .willReturn(okJson("{\"orchestration-status\": \"Created\"}"))); - - - final ProcessInstance processInstance = executeWorkflow(MONITOR_SOL003_ADAPTER_CREATE_NODE_STATUS_WORKFLOW, - RANDOM_JOB_ID, getVariables(RANDOM_JOB_ID, RANDOWM_GENERIC_VNF_ID)); - - assertTrue(waitForProcessInstanceToFinish(processInstance.getProcessInstanceId())); - - final HistoricProcessInstance historicProcessInstance = - getHistoricProcessInstance(processInstance.getProcessInstanceId()); - assertNotNull(historicProcessInstance); - - assertEquals(HistoricProcessInstance.STATE_COMPLETED, historicProcessInstance.getState()); - - final HistoricVariableInstance nsResponseVariable = getVariable(processInstance.getProcessInstanceId(), - MonitorInstantiateSol003AdapterNodeTask.CREATE_VNF_NODE_STATUS); - - assertNotNull(nsResponseVariable); - assertTrue((boolean) nsResponseVariable.getValue()); - - } - - private Map<String, Object> getVariables(final String jobId, final String vnfId) { - final Map<String, Object> variables = new HashMap<>(); - variables.put(CamundaVariableNameConstants.JOB_ID_PARAM_NAME, jobId); - variables.put(CamundaVariableNameConstants.NF_INST_ID_PARAM_NAME, vnfId); - - return variables; - } - - -} diff --git a/so-etsi-nfvo/so-etsi-nfvo-ns-lcm/so-etsi-nfvo-ns-lcm-bpmn-flows/src/test/java/org/onap/so/etsi/nfvo/ns/workflow/engine/tasks/MonitorSol003AdapterCreateJobTaskTest.java b/so-etsi-nfvo/so-etsi-nfvo-ns-lcm/so-etsi-nfvo-ns-lcm-bpmn-flows/src/test/java/org/onap/so/etsi/nfvo/ns/workflow/engine/tasks/MonitorSol003AdapterCreateJobTaskTest.java deleted file mode 100644 index aa8d8cf10e..0000000000 --- a/so-etsi-nfvo/so-etsi-nfvo-ns-lcm/so-etsi-nfvo-ns-lcm-bpmn-flows/src/test/java/org/onap/so/etsi/nfvo/ns/workflow/engine/tasks/MonitorSol003AdapterCreateJobTaskTest.java +++ /dev/null @@ -1,156 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * Copyright (C) 2020 Nordix Foundation. - * ================================================================================ - * 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. - * - * SPDX-License-Identifier: Apache-2.0 - * ============LICENSE_END========================================================= - */ -package org.onap.so.etsi.nfvo.ns.workflow.engine.tasks; - -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertNotNull; -import static org.junit.Assert.assertNull; -import static org.junit.Assert.assertTrue; -import static org.onap.so.adapters.etsisol003adapter.lcm.v1.model.OperationStateEnum.COMPLETED; -import static org.onap.so.adapters.etsisol003adapter.lcm.v1.model.OperationStatusRetrievalStatusEnum.STATUS_FOUND; -import static org.onap.so.etsi.nfvo.ns.lcm.bpmn.flows.extclients.vnfm.Sol003AdapterConfiguration.SOL003_ADAPTER_REST_TEMPLATE_BEAN; -import static org.springframework.test.web.client.match.MockRestRequestMatchers.method; -import static org.springframework.test.web.client.match.MockRestRequestMatchers.requestTo; -import static org.springframework.test.web.client.response.MockRestResponseCreators.withStatus; -import static org.springframework.test.web.client.response.MockRestResponseCreators.withSuccess; -import java.util.HashMap; -import java.util.Map; -import org.camunda.bpm.engine.history.HistoricProcessInstance; -import org.camunda.bpm.engine.history.HistoricVariableInstance; -import org.camunda.bpm.engine.runtime.ProcessInstance; -import org.junit.Before; -import org.junit.Test; -import org.onap.so.adapters.etsisol003adapter.lcm.v1.model.CreateVnfResponse; -import org.onap.so.adapters.etsisol003adapter.lcm.v1.model.QueryJobResponse; -import org.onap.so.etsi.nfvo.ns.lcm.bpmn.flows.BaseTest; -import org.onap.so.etsi.nfvo.ns.lcm.bpmn.flows.CamundaVariableNameConstants; -import org.onap.so.etsi.nfvo.ns.lcm.bpmn.flows.GsonProvider; -import org.onap.so.etsi.nfvo.ns.lcm.model.InlineResponse400; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.beans.factory.annotation.Qualifier; -import org.springframework.http.HttpMethod; -import org.springframework.http.HttpStatus; -import org.springframework.http.MediaType; -import org.springframework.http.converter.json.GsonHttpMessageConverter; -import org.springframework.test.web.client.MockRestServiceServer; -import org.springframework.web.client.RestTemplate; -import com.google.gson.Gson; - -/** - * @author Waqas Ikram (waqas.ikram@est.tech) - * - */ -public class MonitorSol003AdapterCreateJobTaskTest extends BaseTest { - - private static final String MONITOR_SOL003_ADAPTER_CREATE_JOB_WORKFLOW = "MonitorSol003AdapterCreateJob"; - - @Autowired - @Qualifier(SOL003_ADAPTER_REST_TEMPLATE_BEAN) - private RestTemplate restTemplate; - - @Autowired - private GsonProvider gsonProvider; - - private MockRestServiceServer mockRestServiceServer; - private Gson gson; - - @Before - public void before() { - wireMockServer.resetAll(); - final MockRestServiceServer.MockRestServiceServerBuilder builder = MockRestServiceServer.bindTo(restTemplate); - builder.ignoreExpectOrder(true); - mockRestServiceServer = builder.build(); - - gson = gsonProvider.getGson(); - restTemplate.getMessageConverters().add(new GsonHttpMessageConverter(gson)); - } - - - @Test - public void testMonitorSol003AdapterCreateJobTaskWorkflow_SuccessfullCase() throws InterruptedException { - - mockRestServiceServer.expect(requestTo(SOL003_ADAPTER_ENDPOINT_URL + "/jobs/" + RANDOM_JOB_ID)) - .andExpect(method(HttpMethod.GET)) - .andRespond(withSuccess(gson.toJson(getQueryJobResponse()), MediaType.APPLICATION_JSON)); - - final ProcessInstance processInstance = executeWorkflow(MONITOR_SOL003_ADAPTER_CREATE_JOB_WORKFLOW, - RANDOM_JOB_ID, getVariables(RANDOM_JOB_ID, new CreateVnfResponse().jobId(RANDOM_JOB_ID))); - - assertTrue(waitForProcessInstanceToFinish(processInstance.getProcessInstanceId())); - - final HistoricProcessInstance historicProcessInstance = - getHistoricProcessInstance(processInstance.getProcessInstanceId()); - assertNotNull(historicProcessInstance); - - assertEquals(HistoricProcessInstance.STATE_COMPLETED, historicProcessInstance.getState()); - - final HistoricVariableInstance nsResponseVariable = getVariable(processInstance.getProcessInstanceId(), - CamundaVariableNameConstants.OPERATION_STATUS_PARAM_NAME); - - assertNotNull(nsResponseVariable); - assertEquals(COMPLETED, nsResponseVariable.getValue()); - - } - - @Test - public void testMonitorSol003AdapterCreateJobTaskWorkflow_FailurelCase() throws InterruptedException { - - mockRestServiceServer.expect(requestTo(SOL003_ADAPTER_ENDPOINT_URL + "/jobs/" + RANDOM_JOB_ID)) - .andExpect(method(HttpMethod.GET)).andRespond(withStatus(HttpStatus.NOT_FOUND)); - - final ProcessInstance processInstance = executeWorkflow(MONITOR_SOL003_ADAPTER_CREATE_JOB_WORKFLOW, - RANDOM_JOB_ID, getVariables(RANDOM_JOB_ID, new CreateVnfResponse().jobId(RANDOM_JOB_ID))); - - assertTrue(waitForProcessInstanceToFinish(processInstance.getProcessInstanceId())); - - final HistoricProcessInstance historicProcessInstance = - getHistoricProcessInstance(processInstance.getProcessInstanceId()); - assertNotNull(historicProcessInstance); - - assertEquals(HistoricProcessInstance.STATE_COMPLETED, historicProcessInstance.getState()); - - final HistoricVariableInstance nsResponseVariable = getVariable(processInstance.getProcessInstanceId(), - CamundaVariableNameConstants.OPERATION_STATUS_PARAM_NAME); - - assertNull(nsResponseVariable); - - final HistoricVariableInstance workflowExceptionVariable = getVariable(processInstance.getProcessInstanceId(), - CamundaVariableNameConstants.NS_WORKFLOW_PROCESSING_EXCEPTION_PARAM_NAME); - - final InlineResponse400 problemDetails = (InlineResponse400) workflowExceptionVariable.getValue(); - assertNotNull(problemDetails); - assertNotNull(problemDetails.getDetail()); - } - - - private QueryJobResponse getQueryJobResponse() { - return new QueryJobResponse().id(RANDOM_JOB_ID).operationState(COMPLETED) - .operationStatusRetrievalStatus(STATUS_FOUND); - } - - private Map<String, Object> getVariables(final String jobId, final CreateVnfResponse createVnfResponse) { - final Map<String, Object> variables = new HashMap<>(); - variables.put(CamundaVariableNameConstants.JOB_ID_PARAM_NAME, jobId); - variables.put(CamundaVariableNameConstants.CREATE_VNF_RESPONSE_PARAM_NAME, createVnfResponse); - - return variables; - } - -} diff --git a/so-etsi-nfvo/so-etsi-nfvo-ns-lcm/so-etsi-nfvo-ns-lcm-bpmn-flows/src/test/java/org/onap/so/etsi/nfvo/ns/workflow/engine/tasks/MonitorSol003AdapterTerminateJobTaskTest.java b/so-etsi-nfvo/so-etsi-nfvo-ns-lcm/so-etsi-nfvo-ns-lcm-bpmn-flows/src/test/java/org/onap/so/etsi/nfvo/ns/workflow/engine/tasks/MonitorSol003AdapterTerminateJobTaskTest.java deleted file mode 100644 index 13fff6d32b..0000000000 --- a/so-etsi-nfvo/so-etsi-nfvo-ns-lcm/so-etsi-nfvo-ns-lcm-bpmn-flows/src/test/java/org/onap/so/etsi/nfvo/ns/workflow/engine/tasks/MonitorSol003AdapterTerminateJobTaskTest.java +++ /dev/null @@ -1,148 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * Copyright (C) 2020 Nordix Foundation. - * ================================================================================ - * 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. - * - * SPDX-License-Identifier: Apache-2.0 - * ============LICENSE_END========================================================= - */ -package org.onap.so.etsi.nfvo.ns.workflow.engine.tasks; - -import com.google.gson.Gson; -import org.camunda.bpm.engine.history.HistoricProcessInstance; -import org.camunda.bpm.engine.history.HistoricVariableInstance; -import org.camunda.bpm.engine.runtime.ProcessInstance; -import org.junit.Before; -import org.junit.Test; -import org.onap.so.adapters.etsisol003adapter.lcm.v1.model.DeleteVnfResponse; -import org.onap.so.adapters.etsisol003adapter.lcm.v1.model.OperationStateEnum; -import org.onap.so.adapters.etsisol003adapter.lcm.v1.model.QueryJobResponse; -import org.onap.so.etsi.nfvo.ns.lcm.bpmn.flows.BaseTest; -import org.onap.so.etsi.nfvo.ns.lcm.bpmn.flows.CamundaVariableNameConstants; -import org.onap.so.etsi.nfvo.ns.lcm.bpmn.flows.GsonProvider; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.beans.factory.annotation.Qualifier; -import org.springframework.http.HttpMethod; -import org.springframework.http.MediaType; -import org.springframework.http.converter.json.GsonHttpMessageConverter; -import org.springframework.test.web.client.MockRestServiceServer; -import org.springframework.web.client.RestTemplate; -import java.util.HashMap; -import java.util.Map; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertNotNull; -import static org.junit.Assert.assertTrue; -import static org.onap.so.adapters.etsisol003adapter.lcm.v1.model.OperationStateEnum.COMPLETED; -import static org.onap.so.adapters.etsisol003adapter.lcm.v1.model.OperationStateEnum.PROCESSING; -import static org.onap.so.adapters.etsisol003adapter.lcm.v1.model.OperationStatusRetrievalStatusEnum.STATUS_FOUND; -import static org.onap.so.etsi.nfvo.ns.lcm.bpmn.flows.extclients.vnfm.Sol003AdapterConfiguration.SOL003_ADAPTER_REST_TEMPLATE_BEAN; -import static org.springframework.test.web.client.match.MockRestRequestMatchers.method; -import static org.springframework.test.web.client.match.MockRestRequestMatchers.requestTo; -import static org.springframework.test.web.client.response.MockRestResponseCreators.withSuccess; - -/** - * @author Waqas Ikram (waqas.ikram@est.tech) - * @author Andrew Lamb (andrew.a.lamb@est.tech) - * - */ -public class MonitorSol003AdapterTerminateJobTaskTest extends BaseTest { - - private static final String MONITOR_SOL003_ADAPTER_TERMINATE_JOB_WORKFLOW = "MonitorSol003AdapterTerminateJob"; - - @Autowired - @Qualifier(SOL003_ADAPTER_REST_TEMPLATE_BEAN) - private RestTemplate restTemplate; - - @Autowired - private GsonProvider gsonProvider; - - private MockRestServiceServer mockRestServiceServer; - private Gson gson; - - @Before - public void before() { - wireMockServer.resetAll(); - - final MockRestServiceServer.MockRestServiceServerBuilder builder = MockRestServiceServer.bindTo(restTemplate); - builder.ignoreExpectOrder(true); - mockRestServiceServer = builder.build(); - - gson = gsonProvider.getGson(); - restTemplate.getMessageConverters().add(new GsonHttpMessageConverter(gson)); - } - - - @Test - public void testMonitorSol003AdapterTerminateJobTaskWorkflow_SuccessfulCase() throws InterruptedException { - mockRestServiceServer.expect(requestTo(SOL003_ADAPTER_ENDPOINT_URL + "/jobs/" + RANDOM_JOB_ID)) - .andExpect(method(HttpMethod.GET)) - .andRespond(withSuccess(gson.toJson(getQueryJobResponse(COMPLETED)), MediaType.APPLICATION_JSON)); - - final ProcessInstance processInstance = executeWorkflow(MONITOR_SOL003_ADAPTER_TERMINATE_JOB_WORKFLOW, - RANDOM_JOB_ID, getVariables(RANDOM_JOB_ID, new DeleteVnfResponse().jobId(RANDOM_JOB_ID))); - assertTrue(waitForProcessInstanceToFinish(processInstance.getProcessInstanceId())); - - final HistoricProcessInstance historicProcessInstance = - getHistoricProcessInstance(processInstance.getProcessInstanceId()); - assertNotNull(historicProcessInstance); - assertEquals(HistoricProcessInstance.STATE_COMPLETED, historicProcessInstance.getState()); - - final HistoricVariableInstance nsResponseVariable = getVariable(processInstance.getProcessInstanceId(), - CamundaVariableNameConstants.OPERATION_STATUS_PARAM_NAME); - assertNotNull(nsResponseVariable); - assertEquals(COMPLETED, nsResponseVariable.getValue()); - } - - @Test - public void testMonitorSol003AdapterTerminateJobTaskWorkflow_SuccessfulCaseFollowingProcessingDelay() - throws InterruptedException { - mockRestServiceServer.expect(requestTo(SOL003_ADAPTER_ENDPOINT_URL + "/jobs/" + RANDOM_JOB_ID)) - .andExpect(method(HttpMethod.GET)) - .andRespond(withSuccess(gson.toJson(getQueryJobResponse(PROCESSING)), MediaType.APPLICATION_JSON)); - mockRestServiceServer.expect(requestTo(SOL003_ADAPTER_ENDPOINT_URL + "/jobs/" + RANDOM_JOB_ID)) - .andExpect(method(HttpMethod.GET)) - .andRespond(withSuccess(gson.toJson(getQueryJobResponse(PROCESSING)), MediaType.APPLICATION_JSON)); - mockRestServiceServer.expect(requestTo(SOL003_ADAPTER_ENDPOINT_URL + "/jobs/" + RANDOM_JOB_ID)) - .andExpect(method(HttpMethod.GET)) - .andRespond(withSuccess(gson.toJson(getQueryJobResponse(COMPLETED)), MediaType.APPLICATION_JSON)); - - final ProcessInstance processInstance = executeWorkflow(MONITOR_SOL003_ADAPTER_TERMINATE_JOB_WORKFLOW, - RANDOM_JOB_ID, getVariables(RANDOM_JOB_ID, new DeleteVnfResponse().jobId(RANDOM_JOB_ID))); - assertTrue(waitForProcessInstanceToFinish(processInstance.getProcessInstanceId())); - - final HistoricProcessInstance historicProcessInstance = - getHistoricProcessInstance(processInstance.getProcessInstanceId()); - assertNotNull(historicProcessInstance); - assertEquals(HistoricProcessInstance.STATE_COMPLETED, historicProcessInstance.getState()); - - final HistoricVariableInstance nsResponseVariable = getVariable(processInstance.getProcessInstanceId(), - CamundaVariableNameConstants.OPERATION_STATUS_PARAM_NAME); - assertNotNull(nsResponseVariable); - assertEquals(COMPLETED, nsResponseVariable.getValue()); - } - - private QueryJobResponse getQueryJobResponse(final OperationStateEnum operationState) { - return new QueryJobResponse().id(RANDOM_JOB_ID).operationState(operationState) - .operationStatusRetrievalStatus(STATUS_FOUND); - } - - private Map<String, Object> getVariables(final String jobId, final DeleteVnfResponse deleteVnfResponse) { - final Map<String, Object> variables = new HashMap<>(); - variables.put(CamundaVariableNameConstants.JOB_ID_PARAM_NAME, jobId); - variables.put(CamundaVariableNameConstants.DELETE_VNF_RESPONSE_PARAM_NAME, deleteVnfResponse); - - return variables; - } - -} diff --git a/so-etsi-nfvo/so-etsi-nfvo-ns-lcm/so-etsi-nfvo-ns-lcm-bpmn-flows/src/test/java/org/onap/so/etsi/nfvo/ns/workflow/engine/tasks/TerminateNsTaskTest.java b/so-etsi-nfvo/so-etsi-nfvo-ns-lcm/so-etsi-nfvo-ns-lcm-bpmn-flows/src/test/java/org/onap/so/etsi/nfvo/ns/workflow/engine/tasks/TerminateNsTaskTest.java deleted file mode 100644 index 51460ec4c8..0000000000 --- a/so-etsi-nfvo/so-etsi-nfvo-ns-lcm/so-etsi-nfvo-ns-lcm-bpmn-flows/src/test/java/org/onap/so/etsi/nfvo/ns/workflow/engine/tasks/TerminateNsTaskTest.java +++ /dev/null @@ -1,218 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * Copyright (C) 2020 Nordix Foundation. - * ================================================================================ - * 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. - * - * SPDX-License-Identifier: Apache-2.0 - * ============LICENSE_END========================================================= - */ -package org.onap.so.etsi.nfvo.ns.workflow.engine.tasks; - -import static com.github.tomakehurst.wiremock.client.WireMock.delete; -import static com.github.tomakehurst.wiremock.client.WireMock.get; -import static com.github.tomakehurst.wiremock.client.WireMock.ok; -import static com.github.tomakehurst.wiremock.client.WireMock.okJson; -import static com.github.tomakehurst.wiremock.client.WireMock.urlMatching; -import static org.assertj.core.api.Assertions.assertThat; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertNotNull; -import static org.junit.Assert.assertTrue; -import static org.onap.so.etsi.nfvo.ns.lcm.bpmn.flows.extclients.vnfm.Sol003AdapterConfiguration.SOL003_ADAPTER_REST_TEMPLATE_BEAN; -import static org.springframework.test.web.client.ExpectedCount.times; -import static org.springframework.test.web.client.match.MockRestRequestMatchers.method; -import static org.springframework.test.web.client.match.MockRestRequestMatchers.requestTo; -import static org.springframework.test.web.client.response.MockRestResponseCreators.withSuccess; -import java.io.IOException; -import java.time.LocalDateTime; -import java.util.List; -import java.util.Optional; -import java.util.UUID; -import org.camunda.bpm.engine.history.HistoricProcessInstance; -import org.hamcrest.text.MatchesPattern; -import org.junit.After; -import org.junit.Before; -import org.junit.Rule; -import org.junit.Test; -import org.junit.rules.ExpectedException; -import org.onap.so.adapters.etsisol003adapter.lcm.v1.model.DeleteVnfResponse; -import org.onap.so.adapters.etsisol003adapter.lcm.v1.model.OperationStatusRetrievalStatusEnum; -import org.onap.so.etsi.nfvo.ns.lcm.bpmn.flows.BaseTest; -import org.onap.so.etsi.nfvo.ns.lcm.bpmn.flows.GsonProvider; -import org.onap.so.etsi.nfvo.ns.lcm.bpmn.flows.exceptions.NsRequestProcessingException; -import org.onap.so.etsi.nfvo.ns.lcm.bpmn.flows.service.JobExecutorService; -import org.onap.so.etsi.nfvo.ns.lcm.database.beans.NfvoJob; -import org.onap.so.etsi.nfvo.ns.lcm.database.beans.NfvoNfInst; -import org.onap.so.etsi.nfvo.ns.lcm.database.beans.NfvoNsInst; -import org.onap.so.etsi.nfvo.ns.lcm.database.beans.NsLcmOpOcc; -import org.onap.so.etsi.nfvo.ns.lcm.database.beans.OperationStateEnum; -import org.onap.so.etsi.nfvo.ns.lcm.database.beans.State; -import org.onap.so.etsi.nfvo.ns.lcm.model.TerminateNsRequest; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.beans.factory.annotation.Qualifier; -import org.springframework.http.HttpMethod; -import org.springframework.http.MediaType; -import org.springframework.http.converter.json.GsonHttpMessageConverter; -import org.springframework.test.web.client.MockRestServiceServer; -import org.springframework.web.client.RestTemplate; -import com.google.gson.Gson; - -/** - * @author Andrew Lamb (andrew.a.lamb@est.tech) - * - */ -public class TerminateNsTaskTest extends BaseTest { - - @Autowired - @Qualifier(SOL003_ADAPTER_REST_TEMPLATE_BEAN) - private RestTemplate sol003AdapterRestTemplate; - - private MockRestServiceServer mockSol003AdapterRestServiceServer; - - @Autowired - private JobExecutorService objUnderTest; - - @Autowired - private GsonProvider gsonProvider; - - @Rule - public ExpectedException expectedException = ExpectedException.none(); - - private Gson gson; - - @Before - public void before() { - wireMockServer.resetAll(); - gson = gsonProvider.getGson(); - mockSol003AdapterRestServiceServer = - MockRestServiceServer.bindTo(sol003AdapterRestTemplate).ignoreExpectOrder(true).build(); - sol003AdapterRestTemplate.getMessageConverters().add(new GsonHttpMessageConverter(gson)); - } - - @After - public void after() { - wireMockServer.resetAll(); - } - - @Test - public void testRunTerminateNsJob_timeSetInTerminateRequest_throwsNsRequestProcessingException() { - final String nsInstanceId = UUID.randomUUID().toString(); - final TerminateNsRequest terminateNsRequest = new TerminateNsRequest().terminationTime(LocalDateTime.now()); - final String message = "TerminateNsRequest received with terminateTime: " - + terminateNsRequest.getTerminationTime() - + "\nOnly immediate Terminate requests are currently supported \n(i.e., terminateTime field must not be set)."; - expectedException.expect(NsRequestProcessingException.class); - expectedException.expectMessage(message); - objUnderTest.runTerminateNsJob(nsInstanceId, terminateNsRequest); - } - - @Test - public void testRunTerminateNsJob_NsInstNotInDb_throwsNsRequestProcessingException() { - final String nsInstanceId = UUID.randomUUID().toString(); - final TerminateNsRequest terminateNsRequest = new TerminateNsRequest(); - final String message = "No matching NS Instance for id: " + nsInstanceId + " found in database."; - assertThat(databaseServiceProvider.getNfvoNsInst(nsInstanceId)).isEmpty(); - expectedException.expect(NsRequestProcessingException.class); - expectedException.expectMessage(message); - objUnderTest.runTerminateNsJob(nsInstanceId, terminateNsRequest); - } - - @Test - public void testTerminateNsTask_SuccessfulCase() throws InterruptedException, IOException { - final String nsInstanceId = UUID.randomUUID().toString(); - addDummyNsToDatabase(nsInstanceId); - mockSol003AdapterEndpoints(); - mockAAIEndpoints(); - - final String nsLcmOpOccId = objUnderTest.runTerminateNsJob(nsInstanceId, new TerminateNsRequest()); - - final Optional<NfvoJob> optional = getJobByResourceId(nsInstanceId); - assertTrue(optional.isPresent()); - final NfvoJob nfvoJob = optional.get(); - - // Confirm Process finishes in STATE_COMPLETED - assertTrue(waitForProcessInstanceToFinish(nfvoJob.getProcessInstanceId())); - final HistoricProcessInstance historicProcessInstance = - getHistoricProcessInstance(nfvoJob.getProcessInstanceId()); - assertNotNull(historicProcessInstance); - assertEquals(HistoricProcessInstance.STATE_COMPLETED, historicProcessInstance.getState()); - - // Confirm NS Instance set to NOT_INSTANTIATED and related NF Instances Deleted - final Optional<NfvoNsInst> optionalNfvoNsInst = databaseServiceProvider.getNfvoNsInst(nsInstanceId); - assertTrue(optionalNfvoNsInst.isPresent()); - final NfvoNsInst nfvoNsInst = optionalNfvoNsInst.get(); - assertEquals(State.NOT_INSTANTIATED, nfvoNsInst.getStatus()); - final List<NfvoNfInst> nfvoNfInsts = databaseServiceProvider.getNfvoNfInstByNsInstId(nsInstanceId); - assertTrue(nfvoNfInsts.isEmpty()); - - // Confirm NS LCM OP OCC Job set to Completed - final Optional<NsLcmOpOcc> optionalNsLcmOpOcc = databaseServiceProvider.getNsLcmOpOcc(nsLcmOpOccId); - assertTrue(optionalNsLcmOpOcc.isPresent()); - final NsLcmOpOcc nsLcmOpOcc = optionalNsLcmOpOcc.get(); - assertEquals(OperationStateEnum.COMPLETED, nsLcmOpOcc.getOperationState()); - } - - private void addDummyNsToDatabase(final String nsInstanceId) { - final String nsPackageId = UUID.randomUUID().toString(); - final NfvoNsInst nfvoNsInst = - new NfvoNsInst().nsInstId(nsInstanceId).name("nsName").nsPackageId(nsPackageId).nsdId("nsdId") - .nsdInvariantId("nsdId").status(State.INSTANTIATED).statusUpdatedTime(LocalDateTime.now()); - databaseServiceProvider.saveNfvoNsInst(nfvoNsInst); - addDummyNfToDatabase(nfvoNsInst); - addDummyNfToDatabase(nfvoNsInst); - addDummyNfToDatabase(nfvoNsInst); - } - - private void addDummyNfToDatabase(final NfvoNsInst nfvoNsInst) { - final LocalDateTime localDateTime = LocalDateTime.now(); - final String nfPackageId = UUID.randomUUID().toString(); - final NfvoNfInst nfvoNfInst = - new NfvoNfInst().status(State.INSTANTIATED).createTime(localDateTime).lastUpdateTime(localDateTime) - .name("nfName").vnfdId("vnfdId").packageId(nfPackageId).nfvoNsInst(nfvoNsInst); - databaseServiceProvider.saveNfvoNfInst(nfvoNfInst); - } - - private void mockSol003AdapterEndpoints() { - final int numTimes = 3; - - mockSol003AdapterRestServiceServer - .expect(times(numTimes), - requestTo(MatchesPattern.matchesPattern(SOL003_ADAPTER_ENDPOINT_URL + "/vnfs/.*"))) - .andExpect(method(HttpMethod.DELETE)) - .andRespond(withSuccess(gson.toJson(new DeleteVnfResponse().jobId(UUID.randomUUID().toString())), - MediaType.APPLICATION_JSON)); - - mockSol003AdapterRestServiceServer - .expect(times(numTimes), - requestTo(MatchesPattern.matchesPattern(SOL003_ADAPTER_ENDPOINT_URL + "/jobs/.*"))) - .andExpect(method(HttpMethod.GET)) - .andRespond(withSuccess(gson.toJson( - new org.onap.so.adapters.etsisol003adapter.lcm.v1.model.QueryJobResponse().operationState( - org.onap.so.adapters.etsisol003adapter.lcm.v1.model.OperationStateEnum.COMPLETED) - .operationStatusRetrievalStatus(OperationStatusRetrievalStatusEnum.STATUS_FOUND)), - MediaType.APPLICATION_JSON)); - } - - private void mockAAIEndpoints() { - final String modelEndpoint = "/aai/v[0-9]+/network/generic-vnfs/generic-vnf/" + UUID_REGEX; - final String resourceVersion = "12345"; - - final String body = - "{\"resource-version\": \"" + resourceVersion + "\",\n\"orchestration-status\": \"Assigned\"}"; - wireMockServer.stubFor(get(urlMatching(modelEndpoint)).willReturn(ok()).willReturn(okJson(body))); - - wireMockServer.stubFor( - delete(urlMatching(modelEndpoint + "\\?resource-version=" + resourceVersion)).willReturn(ok())); - } - -} diff --git a/so-etsi-nfvo/so-etsi-nfvo-ns-lcm/so-etsi-nfvo-ns-lcm-bpmn-flows/src/test/resources/application.yaml b/so-etsi-nfvo/so-etsi-nfvo-ns-lcm/so-etsi-nfvo-ns-lcm-bpmn-flows/src/test/resources/application.yaml deleted file mode 100644 index 5a8e250157..0000000000 --- a/so-etsi-nfvo/so-etsi-nfvo-ns-lcm/so-etsi-nfvo-ns-lcm-bpmn-flows/src/test/resources/application.yaml +++ /dev/null @@ -1,54 +0,0 @@ -# Copyright © 2020 Nordix Foundation -# -# 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. -spring: - main: - allow-bean-definition-overriding: true - datasource: - hikari: - camunda: - jdbcUrl: jdbc:h2:mem:example-simple;DB_CLOSE_DELAY=-1;DB_CLOSE_ON_EXIT=FALSE - driver-class-name: org.h2.Driver - pool-name: ns-lcm-bpmn-pool - registerMbeans: true - nfvo: - jdbcUrl: jdbc:h2:mem:nfvo;DB_CLOSE_DELAY=-1;DB_CLOSE_ON_EXIT=FALSE;INIT=CREATE SCHEMA IF NOT EXISTS nfvo;MODE=MYSQL;DATABASE_TO_LOWER=TRUE;CASE_INSENSITIVE_IDENTIFIERS=TRUE - driver-class-name: org.h2.Driver - pool-name: ns-lcm-bpmn-pool - registerMbeans: true - test: - database: - replace: NONE - jpa: - generate-ddl: true - dialect: org.hibernate.dialect.MySQL5Dialect - hibernate: - ddl-auto: create - database-platform: org.hibernate.dialect.MariaDBDialect -hibernate: - dialect: org.hibernate.dialect.H2Dialect - hbm2ddl: - auto: create -aai: - version: v19 - endpoint: http://localhost:${wiremock.server.port} -etsi-catalog-manager: - base: - endpoint: http://modeling-etsicatalog.onap:8806/api -so-etsi-ns-lcm-workflow-engine: - requesttimeout: - timeoutInSeconds: 120 - -logging: - level: - org.reflections.Reflections: ERROR
\ No newline at end of file diff --git a/so-etsi-nfvo/so-etsi-nfvo-ns-lcm/so-etsi-nfvo-ns-lcm-bpmn-flows/src/test/resources/invalid_ns.csar b/so-etsi-nfvo/so-etsi-nfvo-ns-lcm/so-etsi-nfvo-ns-lcm-bpmn-flows/src/test/resources/invalid_ns.csar Binary files differdeleted file mode 100644 index 63bad965b7..0000000000 --- a/so-etsi-nfvo/so-etsi-nfvo-ns-lcm/so-etsi-nfvo-ns-lcm-bpmn-flows/src/test/resources/invalid_ns.csar +++ /dev/null diff --git a/so-etsi-nfvo/so-etsi-nfvo-ns-lcm/so-etsi-nfvo-ns-lcm-bpmn-flows/src/test/resources/ns.csar b/so-etsi-nfvo/so-etsi-nfvo-ns-lcm/so-etsi-nfvo-ns-lcm-bpmn-flows/src/test/resources/ns.csar Binary files differdeleted file mode 100644 index eb19c762ae..0000000000 --- a/so-etsi-nfvo/so-etsi-nfvo-ns-lcm/so-etsi-nfvo-ns-lcm-bpmn-flows/src/test/resources/ns.csar +++ /dev/null |