diff options
58 files changed, 1 insertions, 5501 deletions
diff --git a/adapters/mso-nssmf-adapter/pom.xml b/adapters/mso-nssmf-adapter/pom.xml deleted file mode 100644 index b5979c0af3..0000000000 --- a/adapters/mso-nssmf-adapter/pom.xml +++ /dev/null @@ -1,164 +0,0 @@ -<!-- - ~* - ~============LICENSE_START======================================================= - ~* ONAP - SO - ~*================================================================================ - ~* Copyright (C) 2020 Huawei Technologies Co., Ltd. All rights reserved. - ~*================================================================================ - ~* Licensed under the Apache License, Version 2.0 (the "License"); - ~* you may not use this file except in compliance with the License. - ~* 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. - ~* ============LICENSE_END========================================================= - ~*/ - --> - -<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 http://maven.apache.org/xsd/maven-4.0.0.xsd"> - <modelVersion>4.0.0</modelVersion> - <parent> - <groupId>org.onap.so</groupId> - <artifactId>adapters</artifactId> - <version>1.8.0-SNAPSHOT</version> - </parent> - <groupId>org.onap.so.adapters</groupId> - <artifactId>mso-nssmf-adapter</artifactId> - <packaging>jar</packaging> - <name>mso-nssmf-adapter</name> - <description>Web service endpoint for nssmf operations</description> - <dependencyManagement> - <dependencies> - <dependency> - <groupId>org.springframework.boot</groupId> - <artifactId>spring-boot-dependencies</artifactId> - <version>${springboot.version}</version> - <type>pom</type> - <scope>import</scope> - </dependency> - </dependencies> - </dependencyManagement> - <build> - <finalName>${project.artifactId}-${project.version}</finalName> - <plugins> - <plugin> - <groupId>org.springframework.boot</groupId> - <artifactId>spring-boot-maven-plugin</artifactId> - <configuration> - <mainClass>org.onap.so.adapters.nssmf.MSONssmfApplication</mainClass> - </configuration> - <executions> - <execution> - <goals> - <goal>repackage</goal> - </goals> - </execution> - </executions> - </plugin> - <plugin> - <groupId>org.jacoco</groupId> - <artifactId>jacoco-maven-plugin</artifactId> - </plugin> - </plugins> - <resources> - <resource> - <directory>src/main/resources</directory> - <filtering>true</filtering> - <excludes> - <exclude>**/*.p12</exclude> - <exclude>**/*.jks</exclude> - </excludes> - </resource> - <resource> - <directory>src/main/resources</directory> - <filtering>false</filtering> - <includes> - <include>**/*.p12</include> - <include>**/*.jks</include> - </includes> - </resource> - </resources> - </build> - <dependencies> - <dependency> - <groupId>org.springframework.boot</groupId> - <artifactId>spring-boot-starter-actuator</artifactId> - </dependency> - <dependency> - <groupId>org.springframework.boot</groupId> - <artifactId>spring-boot-starter-web</artifactId> - </dependency> - <dependency> - <groupId>org.springframework.boot</groupId> - <artifactId>spring-boot-starter-jdbc</artifactId> - <exclusions> - <exclusion> - <groupId>org.apache.tomcat</groupId> - <artifactId>tomcat-jdbc</artifactId> - </exclusion> - </exclusions> - </dependency> - <dependency> - <groupId>org.apache.cxf</groupId> - <artifactId>cxf-spring-boot-starter-jaxws</artifactId> - </dependency> - <dependency> - <groupId>org.apache.cxf</groupId> - <artifactId>cxf-spring-boot-starter-jaxrs</artifactId> - </dependency> - <dependency> - <groupId>org.apache.cxf</groupId> - <artifactId>cxf-rt-rs-service-description-swagger</artifactId> - </dependency> - <dependency> - <groupId>org.springframework.boot</groupId> - <artifactId>spring-boot-starter-data-jpa</artifactId> - </dependency> - <dependency> - <groupId>org.springframework.boot</groupId> - <artifactId>spring-boot-starter-test</artifactId> - <scope>test</scope> - </dependency> - <dependency> - <groupId>org.onap.so</groupId> - <artifactId>mso-requests-db</artifactId> - <version>${project.version}</version> - </dependency> - <dependency> - <groupId>org.onap.so</groupId> - <artifactId>mso-requests-db-repositories</artifactId> - <version>${project.version}</version> - </dependency> - <dependency> - <groupId>org.mariadb.jdbc</groupId> - <artifactId>mariadb-java-client</artifactId> - </dependency> - <dependency> - <groupId>ch.vorburger.mariaDB4j</groupId> - <artifactId>mariaDB4j</artifactId> - <version>2.2.3</version> - <scope>test</scope> - </dependency> - <dependency> - <groupId>org.springframework.boot</groupId> - <artifactId>spring-boot-configuration-processor</artifactId> - <optional>true</optional> - </dependency> - <dependency> - <groupId>com.squareup.okhttp3</groupId> - <artifactId>okhttp</artifactId> - <version>3.14.0</version> - <scope>test</scope> - </dependency> - <dependency> - <groupId>org.projectlombok</groupId> - <artifactId>lombok</artifactId> - </dependency> - </dependencies> -</project> diff --git a/adapters/mso-nssmf-adapter/src/main/java/org/onap/so/adapters/nssmf/MSONssmfApplication.java b/adapters/mso-nssmf-adapter/src/main/java/org/onap/so/adapters/nssmf/MSONssmfApplication.java deleted file mode 100644 index 83a09dc343..0000000000 --- a/adapters/mso-nssmf-adapter/src/main/java/org/onap/so/adapters/nssmf/MSONssmfApplication.java +++ /dev/null @@ -1,33 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * ONAP - SO - * ================================================================================ - * Copyright (C) 2020 Huawei Technologies Co., Ltd. All rights reserved. - * ================================================================================ - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * 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. - * ============LICENSE_END========================================================= - */ - -package org.onap.so.adapters.nssmf; - - -import org.springframework.boot.SpringApplication; -import org.springframework.boot.autoconfigure.SpringBootApplication; - -@SpringBootApplication(scanBasePackages = {"org.onap.so"}) -public class MSONssmfApplication { - - public static void main(String... args) { - SpringApplication.run(MSONssmfApplication.class, args); - } -} diff --git a/adapters/mso-nssmf-adapter/src/main/java/org/onap/so/adapters/nssmf/annotation/RequestLogger.java b/adapters/mso-nssmf-adapter/src/main/java/org/onap/so/adapters/nssmf/annotation/RequestLogger.java deleted file mode 100644 index 44f814aa10..0000000000 --- a/adapters/mso-nssmf-adapter/src/main/java/org/onap/so/adapters/nssmf/annotation/RequestLogger.java +++ /dev/null @@ -1,31 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * ONAP - SO - * ================================================================================ - # Copyright (c) 2020, CMCC Technologies Co., Ltd. - # - # 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. - * ============LICENSE_END========================================================= - */ - -package org.onap.so.adapters.nssmf.annotation; - - -import java.lang.annotation.*; - -@Target({ElementType.METHOD, ElementType.TYPE}) -@Retention(RetentionPolicy.RUNTIME) -@Documented -public @interface RequestLogger { - boolean ignore() default false; -} diff --git a/adapters/mso-nssmf-adapter/src/main/java/org/onap/so/adapters/nssmf/annotation/ServiceLogger.java b/adapters/mso-nssmf-adapter/src/main/java/org/onap/so/adapters/nssmf/annotation/ServiceLogger.java deleted file mode 100644 index 1de29bcc2b..0000000000 --- a/adapters/mso-nssmf-adapter/src/main/java/org/onap/so/adapters/nssmf/annotation/ServiceLogger.java +++ /dev/null @@ -1,36 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * ONAP - SO - * ================================================================================ - # Copyright (c) 2020, CMCC Technologies Co., Ltd. - # - # 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. - * ============LICENSE_END========================================================= - */ - -package org.onap.so.adapters.nssmf.annotation; - - -import java.lang.annotation.ElementType; -import java.lang.annotation.Retention; -import java.lang.annotation.RetentionPolicy; -import java.lang.annotation.Target; - -@Target({ElementType.METHOD, ElementType.TYPE}) -@Retention(RetentionPolicy.RUNTIME) -public @interface ServiceLogger { - - String value() default ""; - - boolean ignore() default false; -} diff --git a/adapters/mso-nssmf-adapter/src/main/java/org/onap/so/adapters/nssmf/config/NssmfAdapterConfig.java b/adapters/mso-nssmf-adapter/src/main/java/org/onap/so/adapters/nssmf/config/NssmfAdapterConfig.java deleted file mode 100644 index 6a592448a6..0000000000 --- a/adapters/mso-nssmf-adapter/src/main/java/org/onap/so/adapters/nssmf/config/NssmfAdapterConfig.java +++ /dev/null @@ -1,36 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * ONAP - SO - * ================================================================================ - # Copyright (c) 2020, CMCC Technologies Co., Ltd. - # - # 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. - * ============LICENSE_END========================================================= - */ - -package org.onap.so.adapters.nssmf.config; - -import lombok.Getter; -import org.springframework.beans.factory.annotation.Value; -import org.springframework.context.annotation.Configuration; - -@Configuration -@Getter -public class NssmfAdapterConfig { - - @Value("${mso.infra.endpoint}") - private String infraEndpoint; - - @Value("${mso.infra.auth}") - private String infraAuth; -} diff --git a/adapters/mso-nssmf-adapter/src/main/java/org/onap/so/adapters/nssmf/config/RequestDbConfig.java b/adapters/mso-nssmf-adapter/src/main/java/org/onap/so/adapters/nssmf/config/RequestDbConfig.java deleted file mode 100644 index dcb5d6198c..0000000000 --- a/adapters/mso-nssmf-adapter/src/main/java/org/onap/so/adapters/nssmf/config/RequestDbConfig.java +++ /dev/null @@ -1,68 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * ONAP - SO - * ================================================================================ - * Copyright (C) 2020 Huawei Technologies Co., Ltd. All rights reserved. - * ================================================================================ - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * 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. - * ============LICENSE_END========================================================= - */ - -package org.onap.so.adapters.nssmf.config; - -import javax.persistence.EntityManagerFactory; -import javax.sql.DataSource; -import org.springframework.beans.factory.annotation.Qualifier; -import org.springframework.boot.context.properties.ConfigurationProperties; -import org.springframework.boot.jdbc.DataSourceBuilder; -import org.springframework.boot.orm.jpa.EntityManagerFactoryBuilder; -import org.springframework.context.annotation.Bean; -import org.springframework.context.annotation.Configuration; -import org.springframework.context.annotation.Primary; -import org.springframework.context.annotation.Profile; -import org.springframework.data.jpa.repository.config.EnableJpaRepositories; -import org.springframework.orm.jpa.JpaTransactionManager; -import org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean; -import org.springframework.transaction.PlatformTransactionManager; -import org.springframework.transaction.annotation.EnableTransactionManagement; - -@Profile({"!test"}) -@Configuration -@EnableTransactionManagement -@EnableJpaRepositories(entityManagerFactoryRef = "requestEntityManagerFactory", - transactionManagerRef = "requestTransactionManager", basePackages = {"org.onap.so.db.request.data.repository"}) -public class RequestDbConfig { - - @Primary - @Bean(name = "requestDataSource") - @ConfigurationProperties(prefix = "spring.datasource") - public DataSource dataSource() { - return DataSourceBuilder.create().build(); - } - - @Primary - @Bean(name = "requestEntityManagerFactory") - public LocalContainerEntityManagerFactoryBean entityManagerFactory(EntityManagerFactoryBuilder builder, - @Qualifier("requestDataSource") DataSource dataSource) { - return builder.dataSource(dataSource).packages("org.onap.so.db.request.beans").persistenceUnit("requestDB") - .build(); - } - - @Primary - @Bean(name = "requestTransactionManager") - public PlatformTransactionManager transactionManager( - @Qualifier("requestEntityManagerFactory") EntityManagerFactory entityManagerFactory) { - return new JpaTransactionManager(entityManagerFactory); - } - -} diff --git a/adapters/mso-nssmf-adapter/src/main/java/org/onap/so/adapters/nssmf/consts/NssmfAdapterConsts.java b/adapters/mso-nssmf-adapter/src/main/java/org/onap/so/adapters/nssmf/consts/NssmfAdapterConsts.java deleted file mode 100644 index a24f8ef0c7..0000000000 --- a/adapters/mso-nssmf-adapter/src/main/java/org/onap/so/adapters/nssmf/consts/NssmfAdapterConsts.java +++ /dev/null @@ -1,186 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * ONAP - SO - * ================================================================================ - # Copyright (c) 2020, CMCC Technologies Co., Ltd. - # - # 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. - * ============LICENSE_END========================================================= - */ - -package org.onap.so.adapters.nssmf.consts; - -import org.onap.so.adapters.nssmf.entity.NssmfUrlInfo; -import org.onap.so.adapters.nssmf.enums.ActionType; -import org.onap.so.adapters.nssmf.enums.ExecutorType; -import org.onap.so.adapters.nssmf.enums.HttpMethod; -import org.onap.so.beans.nsmf.NetworkType; -import java.util.HashMap; -import java.util.Map; - -public class NssmfAdapterConsts { - - public final static String ONAP_INTERNAL_TAG = "ONAP_internal"; - - public final static String CURRENT_INTERNAL_NSSMF_API_VERSION = "v1"; - - private static Map<String, NssmfUrlInfo> urlInfoMap = new HashMap<>(); - - private final static String EXTERNAL_CN_ALLOCATE_URL = "/api/rest/provMns/{apiVersion}/NSS/SliceProfiles"; - - private final static String EXTERNAL_TN_ALLOCATE_URL = "/api/rest/provMns/{apiVersion}/tn/NSS/SliceProfiles"; - - private final static String EXTERNAL_AN_ALLOCATE_URL = "/ObjectManagement/NSS/SliceProfiles"; - - private final static String INTERNAL_ALLOCATE_URL = "/onap/so/infra/3gppservices/{apiVersion}/allocate"; - - private final static String EXTERNAL_CN_DEALLOCATE_URL = - "/api/rest/provMns/{apiVersion}/NSS/SliceProfiles/{sliceProfileId}"; - - private final static String EXTERNAL_TN_DEALLOCATE_URL = - "/api/rest/provMns/{apiVersion}/tn/NSS/SliceProfiles/{sliceProfileId}"; - - private final static String EXTERNAL_AN_DEALLOCATE_URL = "/ObjectManagement/NSS/SliceProfiles/{sliceProfileId}"; - - private final static String INTERNAL_DEALLOCATE_URL = "/onap/so/infra/3gppservices/{apiVersion}/deAllocate"; - - private final static String EXTERNAL_CN_ACTIVATE_URL = "/api/rest/provMns/{apiVersion}/NSS/{snssai}/activation"; - - private final static String EXTERNAL_TN_ACTIVATE_URL = "/api/rest/provMns/{apiVersion}/tn/NSS/{snssai}/activation"; - - private final static String EXTERNAL_AN_ACTIVATE_URL = "/api/rest/provMns/{apiVersion}/an/NSS/{snssai}/activations"; - - private final static String INTERNAL_ACTIVATE_URL = "/onap/so/infra/3gppservices/{apiVersion}/activate"; - - private final static String EXTERNAL_CN_DEACTIVATE_URL = "/api/rest/provMns/{apiVersion}/NSS/{snssai}/deactivation"; - - private final static String EXTERNAL_TN_DEACTIVATE_URL = - "/api/rest/provMns/{apiVersion}/tn/NSS/{snssai}/deactivation"; - - private final static String EXTERNAL_AN_DEACTIVATE_URL = - "/api/rest/provMns/{apiVersion}/an/NSS/{snssai}/deactivation"; - - private final static String INTERNAL_DEACTIVATE_URL = "/onap/so/infra/3gppservices/{apiVersion}/deActivate"; - - // - private final static String EXTERNAL_CN_TERMINATE_URL = - "/api/rest/provMns/{apiVersion}/NSS/SliceProfiles/{SliceProfileId}"; - - private final static String EXTERNAL_TN_TERMINATE_URL = - "/api/rest/provMns/{apiVersion}/tn/NSS/SliceProfiles/{SliceProfileId}"; - - private final static String EXTERNAL_AN_TERMINATE_URL = - "/api/rest/provMns/{apiVersion}/an/NSS/SliceProfiles/{SliceProfileId}"; - - private final static String INTERNAL_TERMINATE_URL = "/onap/so/infra/3gppservices/{apiVersion}/terminate"; - - // - private final static String EXTERNAL_AN_MODIFY_URL = - "/api/rest/provMns/{apiVersion}/an/NSS/SliceProfiles/{SliceProfileId}"; - - private final static String INTERNAL_MODIFY_URL = "/onap/so/infra/3gppservices/{apiVersion}/modify"; - - // - private final static String EXTERNAL_QUERY_JOB_STATUS = "/api/rest/provMns/{apiVersion}/NSS/jobs/{jobId}"; - - private final static String INTERNAL_QUERY_SUB_NET_CAPABILITY = - "/onap/so/infra/3gppservices/{apiVersion}/subnetCapabilityQuery"; - - static { - urlInfoMap.put(generateKey(ExecutorType.EXTERNAL, NetworkType.ACCESS, ActionType.ALLOCATE), - new NssmfUrlInfo(EXTERNAL_AN_ALLOCATE_URL, HttpMethod.POST)); - urlInfoMap.put(generateKey(ExecutorType.EXTERNAL, NetworkType.TRANSPORT, ActionType.ALLOCATE), - new NssmfUrlInfo(EXTERNAL_TN_ALLOCATE_URL, HttpMethod.POST)); - urlInfoMap.put(generateKey(ExecutorType.EXTERNAL, NetworkType.CORE, ActionType.ALLOCATE), - new NssmfUrlInfo(EXTERNAL_CN_ALLOCATE_URL, HttpMethod.POST)); - urlInfoMap.put(generateKey(ExecutorType.INTERNAL, null, ActionType.ALLOCATE), - new NssmfUrlInfo(INTERNAL_ALLOCATE_URL, HttpMethod.POST)); - - urlInfoMap.put(generateKey(ExecutorType.EXTERNAL, NetworkType.ACCESS, ActionType.DEALLOCATE), - new NssmfUrlInfo(EXTERNAL_AN_DEALLOCATE_URL, HttpMethod.DELETE)); - urlInfoMap.put(generateKey(ExecutorType.EXTERNAL, NetworkType.TRANSPORT, ActionType.DEALLOCATE), - new NssmfUrlInfo(EXTERNAL_TN_DEALLOCATE_URL, HttpMethod.DELETE)); - urlInfoMap.put(generateKey(ExecutorType.EXTERNAL, NetworkType.CORE, ActionType.DEALLOCATE), - new NssmfUrlInfo(EXTERNAL_CN_DEALLOCATE_URL, HttpMethod.DELETE)); - urlInfoMap.put(generateKey(ExecutorType.INTERNAL, null, ActionType.DEALLOCATE), - new NssmfUrlInfo(INTERNAL_DEALLOCATE_URL, HttpMethod.DELETE)); - - urlInfoMap.put(generateKey(ExecutorType.EXTERNAL, NetworkType.ACCESS, ActionType.ACTIVATE), - new NssmfUrlInfo(EXTERNAL_AN_ACTIVATE_URL, HttpMethod.PUT)); - urlInfoMap.put(generateKey(ExecutorType.EXTERNAL, NetworkType.TRANSPORT, ActionType.ACTIVATE), - new NssmfUrlInfo(EXTERNAL_TN_ACTIVATE_URL, HttpMethod.PUT)); - urlInfoMap.put(generateKey(ExecutorType.EXTERNAL, NetworkType.CORE, ActionType.ACTIVATE), - new NssmfUrlInfo(EXTERNAL_CN_ACTIVATE_URL, HttpMethod.PUT)); - urlInfoMap.put(generateKey(ExecutorType.INTERNAL, null, ActionType.ACTIVATE), - new NssmfUrlInfo(INTERNAL_ACTIVATE_URL, HttpMethod.POST)); - - urlInfoMap.put(generateKey(ExecutorType.EXTERNAL, NetworkType.ACCESS, ActionType.DEACTIVATE), - new NssmfUrlInfo(EXTERNAL_AN_DEACTIVATE_URL, HttpMethod.PUT)); - urlInfoMap.put(generateKey(ExecutorType.EXTERNAL, NetworkType.TRANSPORT, ActionType.DEACTIVATE), - new NssmfUrlInfo(EXTERNAL_TN_DEACTIVATE_URL, HttpMethod.PUT)); - urlInfoMap.put(generateKey(ExecutorType.EXTERNAL, NetworkType.CORE, ActionType.DEACTIVATE), - new NssmfUrlInfo(EXTERNAL_CN_DEACTIVATE_URL, HttpMethod.PUT)); - urlInfoMap.put(generateKey(ExecutorType.INTERNAL, null, ActionType.DEACTIVATE), - new NssmfUrlInfo(INTERNAL_DEACTIVATE_URL, HttpMethod.POST)); - - urlInfoMap.put(generateKey(ExecutorType.EXTERNAL, NetworkType.ACCESS, ActionType.TERMINATE), - new NssmfUrlInfo(EXTERNAL_AN_TERMINATE_URL, HttpMethod.DELETE)); - urlInfoMap.put(generateKey(ExecutorType.EXTERNAL, NetworkType.TRANSPORT, ActionType.TERMINATE), - new NssmfUrlInfo(EXTERNAL_TN_TERMINATE_URL, HttpMethod.DELETE)); - urlInfoMap.put(generateKey(ExecutorType.EXTERNAL, NetworkType.CORE, ActionType.TERMINATE), - new NssmfUrlInfo(EXTERNAL_CN_TERMINATE_URL, HttpMethod.DELETE)); - urlInfoMap.put(generateKey(ExecutorType.INTERNAL, null, ActionType.TERMINATE), - new NssmfUrlInfo(INTERNAL_TERMINATE_URL, HttpMethod.DELETE)); - - urlInfoMap.put(generateKey(ExecutorType.EXTERNAL, NetworkType.ACCESS, ActionType.MODIFY), - new NssmfUrlInfo(EXTERNAL_AN_MODIFY_URL, HttpMethod.PUT)); - urlInfoMap.put(generateKey(ExecutorType.EXTERNAL, NetworkType.CORE, ActionType.MODIFY), - new NssmfUrlInfo(EXTERNAL_CN_ALLOCATE_URL, HttpMethod.PUT)); - urlInfoMap.put(generateKey(ExecutorType.INTERNAL, null, ActionType.MODIFY), - new NssmfUrlInfo(INTERNAL_MODIFY_URL, HttpMethod.PUT)); - - - urlInfoMap.put(generateKey(ExecutorType.EXTERNAL, NetworkType.CORE, ActionType.QUERY_JOB_STATUS), - new NssmfUrlInfo(EXTERNAL_QUERY_JOB_STATUS, HttpMethod.GET)); - urlInfoMap.put(generateKey(ExecutorType.EXTERNAL, NetworkType.ACCESS, ActionType.QUERY_JOB_STATUS), - new NssmfUrlInfo(EXTERNAL_QUERY_JOB_STATUS, HttpMethod.GET)); - urlInfoMap.put(generateKey(ExecutorType.EXTERNAL, NetworkType.TRANSPORT, ActionType.QUERY_JOB_STATUS), - new NssmfUrlInfo(EXTERNAL_QUERY_JOB_STATUS, HttpMethod.GET)); - - urlInfoMap.put(generateKey(ExecutorType.INTERNAL, null, ActionType.QUERY_SUB_NET_CAPABILITY), - new NssmfUrlInfo(INTERNAL_QUERY_SUB_NET_CAPABILITY, HttpMethod.GET)); - } - - /** - * get nssmf url info from consts - * - * @param executorType {@link ExecutorType} - * @param networkType {@link NetworkType} - * @param actionType {@link ActionType} - * @return {@link NssmfUrlInfo} - */ - public static NssmfUrlInfo getNssmfUrlInfo(ExecutorType executorType, NetworkType networkType, - ActionType actionType) { - - return urlInfoMap.get(generateKey(executorType, networkType, actionType)); - } - - private static String generateKey(ExecutorType executorType, NetworkType networkType, ActionType actionType) { - if (ExecutorType.EXTERNAL.equals(executorType)) { - return executorType.name() + "_" + networkType.name() + "_" + actionType.name(); - } - return executorType.name() + "_" + actionType.name(); - } - - -} diff --git a/adapters/mso-nssmf-adapter/src/main/java/org/onap/so/adapters/nssmf/controller/NssmfAdapterController.java b/adapters/mso-nssmf-adapter/src/main/java/org/onap/so/adapters/nssmf/controller/NssmfAdapterController.java deleted file mode 100644 index 3732e2c256..0000000000 --- a/adapters/mso-nssmf-adapter/src/main/java/org/onap/so/adapters/nssmf/controller/NssmfAdapterController.java +++ /dev/null @@ -1,59 +0,0 @@ -package org.onap.so.adapters.nssmf.controller; - -import org.onap.so.adapters.nssmf.annotation.RequestLogger; -import org.onap.so.adapters.nssmf.service.NssmfManagerService; -import org.onap.so.beans.nsmf.*; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.http.ResponseEntity; -import org.springframework.web.bind.annotation.*; -import static javax.ws.rs.core.MediaType.APPLICATION_JSON; - -@RestController -@RequestMapping(value = "/api/rest/provMns/v1", produces = {APPLICATION_JSON}, consumes = {APPLICATION_JSON}) -@RequestLogger -public class NssmfAdapterController { - - @Autowired - private NssmfManagerService nssmfManagerService; - - @PostMapping(value = "/NSS/SliceProfiles") - public ResponseEntity allocateNssi(@RequestBody NssmfAdapterNBIRequest nbiRequest) { - return nssmfManagerService.allocateNssi(nbiRequest); - } - - @PostMapping(value = "/NSS/SliceProfiles/{sliceProfileId}") - public ResponseEntity deAllocateNssi(@RequestBody NssmfAdapterNBIRequest nbiRequest, - @PathVariable("sliceProfileId") final String sliceProfileId) { - return nssmfManagerService.deAllocateNssi(nbiRequest, sliceProfileId); - } - - - @PostMapping(value = "/NSS/{snssai}/activation") - public ResponseEntity activateNssi(@RequestBody NssmfAdapterNBIRequest nbiRequest, - @PathVariable("snssai") String snssai) { - return nssmfManagerService.activateNssi(nbiRequest, snssai); - } - - @PostMapping(value = "/NSS/{snssai}/deactivation") - public ResponseEntity deactivateNssi(@RequestBody NssmfAdapterNBIRequest nbiRequest, - @PathVariable("snssai") String snssai) { - return nssmfManagerService.deActivateNssi(nbiRequest, snssai); - } - - @PostMapping(value = "/NSS/jobs/{jobId}") - public ResponseEntity queryJobStatus(@RequestBody NssmfAdapterNBIRequest nbiRequest, - @PathVariable("jobId") String jobId) { - return nssmfManagerService.queryJobStatus(nbiRequest, jobId); - } - - @PostMapping(value = "/NSS/NSSISelectionCapability") - public ResponseEntity queryNSSISelectionCapability(@RequestBody NssmfAdapterNBIRequest nbiRequest) { - return nssmfManagerService.queryNSSISelectionCapability(nbiRequest); - } - - @PostMapping(value = "/NSS/subnetCapabilityQuery") - public ResponseEntity querySubnetCapability(@RequestBody NssmfAdapterNBIRequest nbiRequest) { - return nssmfManagerService.querySubnetCapability(nbiRequest); - } - -} diff --git a/adapters/mso-nssmf-adapter/src/main/java/org/onap/so/adapters/nssmf/entity/ErrorResponse.java b/adapters/mso-nssmf-adapter/src/main/java/org/onap/so/adapters/nssmf/entity/ErrorResponse.java deleted file mode 100644 index a8653f8d73..0000000000 --- a/adapters/mso-nssmf-adapter/src/main/java/org/onap/so/adapters/nssmf/entity/ErrorResponse.java +++ /dev/null @@ -1,63 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * ONAP - SO - * ================================================================================ - * Copyright (C) 2020 Huawei Technologies Co., Ltd. All rights reserved. - * ================================================================================ - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * 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. - * ============LICENSE_END========================================================= - */ - -package org.onap.so.adapters.nssmf.entity; - -public class ErrorResponse { - - private int status; - - private String error; - - private String message; - - public ErrorResponse(int status, String message) { - this.status = status; - this.message = message; - this.error = "Bad Request"; - } - - public int getStatus() { - return status; - } - - public void setStatus(int status) { - this.status = status; - } - - public String getError() { - if (status == 500) { - this.error = "Internal Server Error"; - } - return error; - } - - public void setError(String error) { - this.error = error; - } - - public String getMessage() { - return message; - } - - public void setMessage(String message) { - this.message = message; - } -} diff --git a/adapters/mso-nssmf-adapter/src/main/java/org/onap/so/adapters/nssmf/entity/NssmfInfo.java b/adapters/mso-nssmf-adapter/src/main/java/org/onap/so/adapters/nssmf/entity/NssmfInfo.java deleted file mode 100644 index af26264074..0000000000 --- a/adapters/mso-nssmf-adapter/src/main/java/org/onap/so/adapters/nssmf/entity/NssmfInfo.java +++ /dev/null @@ -1,41 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * ONAP - SO - * ================================================================================ - * Copyright (C) 2020 Huawei Technologies Co., Ltd. All rights reserved. - * ================================================================================ - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * 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. - * ============LICENSE_END========================================================= - */ - -package org.onap.so.adapters.nssmf.entity; - -import lombok.Data; - -@Data -public class NssmfInfo { - - private String url; - - private String ipAddress; - - private String port; - - private String insecure; - - private String cacert; - - private String userName; - - private String password; -} diff --git a/adapters/mso-nssmf-adapter/src/main/java/org/onap/so/adapters/nssmf/entity/NssmfUrlInfo.java b/adapters/mso-nssmf-adapter/src/main/java/org/onap/so/adapters/nssmf/entity/NssmfUrlInfo.java deleted file mode 100644 index f55ff10f1c..0000000000 --- a/adapters/mso-nssmf-adapter/src/main/java/org/onap/so/adapters/nssmf/entity/NssmfUrlInfo.java +++ /dev/null @@ -1,17 +0,0 @@ -package org.onap.so.adapters.nssmf.entity; - -import lombok.Data; -import org.onap.so.adapters.nssmf.enums.HttpMethod; - -@Data -public class NssmfUrlInfo { - - private String url; - - private HttpMethod httpMethod; - - public NssmfUrlInfo(String url, HttpMethod httpMethod) { - this.url = url; - this.httpMethod = httpMethod; - } -} diff --git a/adapters/mso-nssmf-adapter/src/main/java/org/onap/so/adapters/nssmf/entity/RestResponse.java b/adapters/mso-nssmf-adapter/src/main/java/org/onap/so/adapters/nssmf/entity/RestResponse.java deleted file mode 100644 index 218867c1ab..0000000000 --- a/adapters/mso-nssmf-adapter/src/main/java/org/onap/so/adapters/nssmf/entity/RestResponse.java +++ /dev/null @@ -1,92 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * ONAP - SO - * ================================================================================ - * Copyright (C) 2020 Huawei Technologies Co., Ltd. All rights reserved. - * ================================================================================ - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * 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. - * ============LICENSE_END========================================================= - */ - -package org.onap.so.adapters.nssmf.entity; - -import java.util.Map; - -public class RestResponse { - - // the response content - private String responseContent; - - // the response status - private int status; - - // the response header - private Map<String, String> respHeaderMap; - - public RestResponse() { - this.status = -1; - - this.respHeaderMap = null; - } - - public int getStatus() { - return this.status; - } - - public void setStatus(int status) { - this.status = status; - } - - public Map<String, String> getRespHeaderMap() { - return this.respHeaderMap; - } - - public void setRespHeaderMap(Map<String, String> header) { - this.respHeaderMap = header; - } - - public int getRespHeaderInt(String key) { - if (this.respHeaderMap != null) { - String result = this.respHeaderMap.get(key); - if (result != null) { - return Integer.parseInt(result); - } - } - return -1; - } - - public long getRespHeaderLong(String key) { - if (this.respHeaderMap != null) { - String result = this.respHeaderMap.get(key); - if (result != null) { - return Long.parseLong(result); - } - } - return -1L; - } - - public String getRespHeaderStr(String key) { - if (this.respHeaderMap != null) { - return this.respHeaderMap.get(key); - } - return null; - } - - public String getResponseContent() { - return this.responseContent; - } - - public void setResponseContent(String responseString) { - this.responseContent = responseString; - } -} diff --git a/adapters/mso-nssmf-adapter/src/main/java/org/onap/so/adapters/nssmf/entity/TokenRequest.java b/adapters/mso-nssmf-adapter/src/main/java/org/onap/so/adapters/nssmf/entity/TokenRequest.java deleted file mode 100644 index bfcb875290..0000000000 --- a/adapters/mso-nssmf-adapter/src/main/java/org/onap/so/adapters/nssmf/entity/TokenRequest.java +++ /dev/null @@ -1,33 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * ONAP - SO - * ================================================================================ - * Copyright (C) 2020 Huawei Technologies Co., Ltd. All rights reserved. - * ================================================================================ - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * 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. - * ============LICENSE_END========================================================= - */ - -package org.onap.so.adapters.nssmf.entity; - -import lombok.Data; - -@Data -public class TokenRequest { - - private String grantType; - - private String userName; - - private String value; -} diff --git a/adapters/mso-nssmf-adapter/src/main/java/org/onap/so/adapters/nssmf/entity/TokenResponse.java b/adapters/mso-nssmf-adapter/src/main/java/org/onap/so/adapters/nssmf/entity/TokenResponse.java deleted file mode 100644 index 552612a6fb..0000000000 --- a/adapters/mso-nssmf-adapter/src/main/java/org/onap/so/adapters/nssmf/entity/TokenResponse.java +++ /dev/null @@ -1,32 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * ONAP - SO - * ================================================================================ - * Copyright (C) 2020 Huawei Technologies Co., Ltd. All rights reserved. - * ================================================================================ - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * 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. - * ============LICENSE_END========================================================= - */ - -package org.onap.so.adapters.nssmf.entity; - - -import lombok.Data; - -@Data -public class TokenResponse { - - private String accessToken; - - private int expires; -} diff --git a/adapters/mso-nssmf-adapter/src/main/java/org/onap/so/adapters/nssmf/enums/ActionType.java b/adapters/mso-nssmf-adapter/src/main/java/org/onap/so/adapters/nssmf/enums/ActionType.java deleted file mode 100644 index 530cc1be0d..0000000000 --- a/adapters/mso-nssmf-adapter/src/main/java/org/onap/so/adapters/nssmf/enums/ActionType.java +++ /dev/null @@ -1,67 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * ONAP - SO - * ================================================================================ - # Copyright (c) 2020, CMCC Technologies Co., Ltd. - # - # 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. - * ============LICENSE_END========================================================= - */ - -package org.onap.so.adapters.nssmf.enums; - -import lombok.Getter; - -@Getter -public enum ActionType { - /** - * allocate - */ - ALLOCATE("allocate"), - - DEALLOCATE("deallocate"), - - CREATE("create"), - - TERMINATE("terminate"), - - ACTIVATE("activate"), - - DEACTIVATE("deactivate"), - - QUERY_JOB_STATUS("query_job_status"), - - MODIFY_BY_ID("modify_by_id"), - - MODIFY("modify"), - - QUERY_NSSI_SELECTION_CAPABILITY("query_nssi_selection_capability"), - - QUERY_SUB_NET_CAPABILITY("query_sub_net_capability"),; - - private String type; - - - ActionType(String type) { - this.type = type; - } - - public static ActionType getActionType(String value) { - for (ActionType actionType : ActionType.values()) { - if (actionType.type.equalsIgnoreCase(value)) { - return actionType; - } - } - return null; - } -} diff --git a/adapters/mso-nssmf-adapter/src/main/java/org/onap/so/adapters/nssmf/enums/ExecutorType.java b/adapters/mso-nssmf-adapter/src/main/java/org/onap/so/adapters/nssmf/enums/ExecutorType.java deleted file mode 100644 index a76a54c348..0000000000 --- a/adapters/mso-nssmf-adapter/src/main/java/org/onap/so/adapters/nssmf/enums/ExecutorType.java +++ /dev/null @@ -1,25 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * ONAP - SO - * ================================================================================ - # Copyright (c) 2020, CMCC Technologies Co., Ltd. - # - # 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. - * ============LICENSE_END========================================================= - */ - -package org.onap.so.adapters.nssmf.enums; - -public enum ExecutorType { - INTERNAL, EXTERNAL -} diff --git a/adapters/mso-nssmf-adapter/src/main/java/org/onap/so/adapters/nssmf/enums/HttpMethod.java b/adapters/mso-nssmf-adapter/src/main/java/org/onap/so/adapters/nssmf/enums/HttpMethod.java deleted file mode 100644 index 9271bb50b3..0000000000 --- a/adapters/mso-nssmf-adapter/src/main/java/org/onap/so/adapters/nssmf/enums/HttpMethod.java +++ /dev/null @@ -1,41 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * ONAP - SO - * ================================================================================ - * Copyright (C) 2020 Huawei Technologies Co., Ltd. All rights reserved. - * ================================================================================ - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * 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. - * ============LICENSE_END========================================================= - */ - -package org.onap.so.adapters.nssmf.enums; - -public enum HttpMethod { - GET, POST, PUT, DELETE, PATCH; - - public static HttpMethod fromString(String s) { - if (s == null) - return null; - if (("get").equalsIgnoreCase(s)) - return GET; - if (("post").equalsIgnoreCase(s)) - return POST; - if (("put").equalsIgnoreCase(s)) - return PUT; - if (("delete").equalsIgnoreCase(s)) - return DELETE; - if (("patch").equalsIgnoreCase(s)) - return PATCH; - throw new IllegalArgumentException("Invalid value for HTTP Method: " + s); - } -} diff --git a/adapters/mso-nssmf-adapter/src/main/java/org/onap/so/adapters/nssmf/enums/JobStatus.java b/adapters/mso-nssmf-adapter/src/main/java/org/onap/so/adapters/nssmf/enums/JobStatus.java deleted file mode 100644 index d5cc1df377..0000000000 --- a/adapters/mso-nssmf-adapter/src/main/java/org/onap/so/adapters/nssmf/enums/JobStatus.java +++ /dev/null @@ -1,42 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * ONAP - SO - * ================================================================================ - * Copyright (C) 2020 Huawei Technologies Co., Ltd. All rights reserved. - * ================================================================================ - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * 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. - * ============LICENSE_END========================================================= - */ - -package org.onap.so.adapters.nssmf.enums; - -import org.onap.so.adapters.nssmf.exceptions.ApplicationException; - - -public enum JobStatus { - STARTED, PROCESSING, FINISHED, ERROR; - - public static JobStatus fromString(String s) throws ApplicationException { - if (s == null) - return null; - if (("started").equalsIgnoreCase(s)) - return STARTED; - if (("processing").equalsIgnoreCase(s)) - return PROCESSING; - if (("finished").equalsIgnoreCase(s)) - return FINISHED; - if (("error").equalsIgnoreCase(s)) - return ERROR; - throw new ApplicationException(500, "Invalid value for Job " + "Status: " + s); - } -} diff --git a/adapters/mso-nssmf-adapter/src/main/java/org/onap/so/adapters/nssmf/enums/SelectionType.java b/adapters/mso-nssmf-adapter/src/main/java/org/onap/so/adapters/nssmf/enums/SelectionType.java deleted file mode 100644 index 420dfdce49..0000000000 --- a/adapters/mso-nssmf-adapter/src/main/java/org/onap/so/adapters/nssmf/enums/SelectionType.java +++ /dev/null @@ -1,27 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * ONAP - SO - * ================================================================================ - # Copyright (c) 2020, CMCC Technologies Co., Ltd. - # - # 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. - * ============LICENSE_END========================================================= - */ - -package org.onap.so.adapters.nssmf.enums; - -public enum SelectionType { - NSSMF, - - NSMF -} diff --git a/adapters/mso-nssmf-adapter/src/main/java/org/onap/so/adapters/nssmf/exceptions/ApplicationException.java b/adapters/mso-nssmf-adapter/src/main/java/org/onap/so/adapters/nssmf/exceptions/ApplicationException.java deleted file mode 100644 index 2461f5ca78..0000000000 --- a/adapters/mso-nssmf-adapter/src/main/java/org/onap/so/adapters/nssmf/exceptions/ApplicationException.java +++ /dev/null @@ -1,66 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * ONAP - SO - * ================================================================================ - * Copyright (C) 2020 Huawei Technologies Co., Ltd. All rights reserved. - * ================================================================================ - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * 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. - * ============LICENSE_END========================================================= - */ - -package org.onap.so.adapters.nssmf.exceptions; - -import org.onap.so.adapters.nssmf.entity.ErrorResponse; -import org.springframework.http.ResponseEntity; -import static org.onap.so.adapters.nssmf.util.NssmfAdapterUtil.marshal; - -public class ApplicationException extends Exception { - - private static final long serialVersionUID = 1L; - - private int errorCode; - - private String errorMsg; - - public ApplicationException(int errorCode, String errorMsg) { - this.errorCode = errorCode; - this.errorMsg = errorMsg; - } - - public int getErrorCode() { - return errorCode; - } - - public void setErrorCode(int errorCode) { - this.errorCode = errorCode; - } - - public String getErrorMsg() { - return errorMsg; - } - - public void setErrorMsg(String errorMsg) { - this.errorMsg = errorMsg; - } - - public ResponseEntity buildErrorResponse() { - String message; - try { - ErrorResponse err = new ErrorResponse(errorCode, errorMsg); - message = marshal(err); - } catch (ApplicationException e) { - return ResponseEntity.status(500).body("Internal Server Error"); - } - return ResponseEntity.status(errorCode).body(message); - } -} diff --git a/adapters/mso-nssmf-adapter/src/main/java/org/onap/so/adapters/nssmf/extclients/aai/AaiClientPropertiesImpl.java b/adapters/mso-nssmf-adapter/src/main/java/org/onap/so/adapters/nssmf/extclients/aai/AaiClientPropertiesImpl.java deleted file mode 100644 index 61adfcf061..0000000000 --- a/adapters/mso-nssmf-adapter/src/main/java/org/onap/so/adapters/nssmf/extclients/aai/AaiClientPropertiesImpl.java +++ /dev/null @@ -1,69 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * ONAP - SO - * ================================================================================ - * Copyright (C) 2020 Huawei Technologies Co., Ltd. All rights reserved. - * ================================================================================ - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * 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. - * ============LICENSE_END========================================================= - */ - -package org.onap.so.adapters.nssmf.extclients.aai; - -import java.net.MalformedURLException; -import java.net.URL; -import org.onap.aaiclient.client.aai.AAIProperties; -import org.onap.aaiclient.client.aai.AAIVersion; -import org.onap.so.spring.SpringContextHelper; -import org.springframework.context.ApplicationContext; - -public class AaiClientPropertiesImpl implements AAIProperties { - - private final String endpoint; - - private final String encryptedBasicAuth; - - private final String encrytptionKey; - - public AaiClientPropertiesImpl() { - final ApplicationContext context = SpringContextHelper.getAppContext(); - this.endpoint = context.getEnvironment().getProperty("aai.endpoint"); - this.encryptedBasicAuth = context.getEnvironment().getProperty("aai.auth"); - this.encrytptionKey = context.getEnvironment().getProperty("mso.key"); - } - - @Override - public AAIVersion getDefaultVersion() { - return AAIVersion.LATEST; - } - - @Override - public String getAuth() { - return encryptedBasicAuth; - } - - @Override - public String getKey() { - return encrytptionKey; - } - - @Override - public URL getEndpoint() throws MalformedURLException { - return new URL(endpoint); - } - - @Override - public String getSystemName() { - return "MSO"; - } -} diff --git a/adapters/mso-nssmf-adapter/src/main/java/org/onap/so/adapters/nssmf/extclients/aai/AaiClientProvider.java b/adapters/mso-nssmf-adapter/src/main/java/org/onap/so/adapters/nssmf/extclients/aai/AaiClientProvider.java deleted file mode 100644 index 5959b0e6d9..0000000000 --- a/adapters/mso-nssmf-adapter/src/main/java/org/onap/so/adapters/nssmf/extclients/aai/AaiClientProvider.java +++ /dev/null @@ -1,34 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * ONAP - SO - * ================================================================================ - * Copyright (C) 2020 Huawei Technologies Co., Ltd. All rights reserved. - * ================================================================================ - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * 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. - * ============LICENSE_END========================================================= - */ - -package org.onap.so.adapters.nssmf.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/adapters/mso-nssmf-adapter/src/main/java/org/onap/so/adapters/nssmf/extclients/aai/AaiServiceProvider.java b/adapters/mso-nssmf-adapter/src/main/java/org/onap/so/adapters/nssmf/extclients/aai/AaiServiceProvider.java deleted file mode 100644 index 4df2fa16e1..0000000000 --- a/adapters/mso-nssmf-adapter/src/main/java/org/onap/so/adapters/nssmf/extclients/aai/AaiServiceProvider.java +++ /dev/null @@ -1,42 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * ONAP - SO - * ================================================================================ - * Copyright (C) 2020 Huawei Technologies Co., Ltd. All rights reserved. - * ================================================================================ - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * 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. - * ============LICENSE_END========================================================= - */ - -package org.onap.so.adapters.nssmf.extclients.aai; - -import org.onap.aai.domain.yang.EsrSystemInfoList; -import org.onap.aai.domain.yang.EsrThirdpartySdncList; -import org.onap.aai.domain.yang.ServiceInstance; - -public interface AaiServiceProvider { - - EsrThirdpartySdncList invokeGetThirdPartySdncList(); - - EsrSystemInfoList invokeGetThirdPartySdncEsrSystemInfo(String sdncId); - - void invokeCreateServiceInstance(ServiceInstance nssiInstance, String globalSubscriberId, String serviceType, - String serviceInstanceId); - - void invokeUpdateServiceInstance(ServiceInstance nssiInstance, String globalSubscriberId, String serviceType, - String serviceInstanceId); - - ServiceInstance invokeGetServiceInstance(String globalSubscriberId, String serviceType, String serviceInstanceId); - - void invokeDeleteServiceInstance(String globalSubscriberId, String serviceType, String serviceInstanceId); -} diff --git a/adapters/mso-nssmf-adapter/src/main/java/org/onap/so/adapters/nssmf/extclients/aai/AaiServiceProviderImpl.java b/adapters/mso-nssmf-adapter/src/main/java/org/onap/so/adapters/nssmf/extclients/aai/AaiServiceProviderImpl.java deleted file mode 100644 index 688012efe7..0000000000 --- a/adapters/mso-nssmf-adapter/src/main/java/org/onap/so/adapters/nssmf/extclients/aai/AaiServiceProviderImpl.java +++ /dev/null @@ -1,106 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * ONAP - SO - * ================================================================================ - * Copyright (C) 2020 Huawei Technologies Co., Ltd. All rights reserved. - * ================================================================================ - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * 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. - * ============LICENSE_END========================================================= - */ - -package org.onap.so.adapters.nssmf.extclients.aai; - - -import org.onap.aai.domain.yang.EsrSystemInfoList; -import org.onap.aai.domain.yang.EsrThirdpartySdncList; -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.slf4j.Logger; -import org.slf4j.LoggerFactory; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Service; - -@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 EsrThirdpartySdncList invokeGetThirdPartySdncList() { - return aaiClientProvider.getAaiClient() - .get(EsrThirdpartySdncList.class, - AAIUriFactory.createResourceUri(AAIFluentTypeBuilder.externalSystem().esrThirdpartySdncList())) - .orElseGet(() -> { - logger.debug("No VNFMs in AAI"); - return null; - }); - } - - @Override - public EsrSystemInfoList invokeGetThirdPartySdncEsrSystemInfo(String sdncId) { - return aaiClientProvider.getAaiClient() - .get(EsrSystemInfoList.class, - AAIUriFactory.createResourceUri( - AAIFluentTypeBuilder.externalSystem().esrThirdpartySdnc((sdncId)).esrSystemInfoList())) - .orElseGet(() -> { - logger.debug("VNFM not found in AAI"); - return null; - }); - } - - - @Override - public void invokeCreateServiceInstance(ServiceInstance nssiInstance, String globalSubscriberId, String serviceType, - String serviceInstanceId) { - AAIResourceUri uri = AAIUriFactory.createResourceUri(AAIFluentTypeBuilder.business() - .customer(globalSubscriberId).serviceSubscription(serviceType).serviceInstance(serviceInstanceId)); - aaiClientProvider.getAaiClient().create(uri, nssiInstance); - } - - @Override - public void invokeUpdateServiceInstance(ServiceInstance nssiInstance, String globalSubscriberId, String serviceType, - String serviceInstanceId) { - AAIResourceUri uri = AAIUriFactory.createResourceUri(AAIFluentTypeBuilder.business() - .customer(globalSubscriberId).serviceSubscription(serviceType).serviceInstance(serviceInstanceId)); - aaiClientProvider.getAaiClient().update(uri, nssiInstance); - } - - @Override - public ServiceInstance invokeGetServiceInstance(String globalSubscriberId, String serviceType, - String serviceInstanceId) { - AAIResourceUri uri = AAIUriFactory.createResourceUri(AAIFluentTypeBuilder.business() - .customer(globalSubscriberId).serviceSubscription(serviceType).serviceInstance(serviceInstanceId)); - - return aaiClientProvider.getAaiClient().get(ServiceInstance.class, uri).orElseGet(() -> { - logger.debug("ServiceInstance " + serviceInstanceId + " not found in AAI"); - return null; - }); - } - - @Override - public void invokeDeleteServiceInstance(String globalSubscriberId, String serviceType, String serviceInstanceId) { - AAIResourceUri uri = AAIUriFactory.createResourceUri(AAIFluentTypeBuilder.business() - .customer(globalSubscriberId).serviceSubscription(serviceType).serviceInstance(serviceInstanceId)); - - aaiClientProvider.getAaiClient().delete(uri); - } -} diff --git a/adapters/mso-nssmf-adapter/src/main/java/org/onap/so/adapters/nssmf/interceptor/LoggerInterceptor.java b/adapters/mso-nssmf-adapter/src/main/java/org/onap/so/adapters/nssmf/interceptor/LoggerInterceptor.java deleted file mode 100644 index bca4a12d4b..0000000000 --- a/adapters/mso-nssmf-adapter/src/main/java/org/onap/so/adapters/nssmf/interceptor/LoggerInterceptor.java +++ /dev/null @@ -1,55 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * ONAP - SO - * ================================================================================ - # Copyright (c) 2020, CMCC Technologies Co., Ltd. - # - # 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. - * ============LICENSE_END========================================================= - */ - -package org.onap.so.adapters.nssmf.interceptor; - -import org.apache.logging.log4j.ThreadContext; -import org.springframework.stereotype.Component; -import org.springframework.web.servlet.HandlerInterceptor; -import org.springframework.web.servlet.ModelAndView; -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; -import java.util.UUID; - -@Component -public class LoggerInterceptor implements HandlerInterceptor { - - private final static String TRACE_ID = "traceId"; - - @Override - public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) - throws Exception { - String traceId = UUID.randomUUID().toString().replaceAll("-", "").toUpperCase(); - ThreadContext.put(TRACE_ID, traceId); - return true; - } - - @Override - public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, - ModelAndView modelAndView) throws Exception { - - } - - @Override - public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) - throws Exception { - ThreadContext.remove(TRACE_ID); - } -} diff --git a/adapters/mso-nssmf-adapter/src/main/java/org/onap/so/adapters/nssmf/interceptor/RequestLogAspect.java b/adapters/mso-nssmf-adapter/src/main/java/org/onap/so/adapters/nssmf/interceptor/RequestLogAspect.java deleted file mode 100644 index 95f26b4ad5..0000000000 --- a/adapters/mso-nssmf-adapter/src/main/java/org/onap/so/adapters/nssmf/interceptor/RequestLogAspect.java +++ /dev/null @@ -1,227 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * ONAP - SO - * ================================================================================ - # Copyright (c) 2020, CMCC Technologies Co., Ltd. - # - # 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. - * ============LICENSE_END========================================================= - */ -package org.onap.so.adapters.nssmf.interceptor; - -import lombok.Data; -import lombok.ToString; -import org.aspectj.lang.JoinPoint; -import org.aspectj.lang.ProceedingJoinPoint; -import org.aspectj.lang.annotation.*; -import org.aspectj.lang.reflect.MethodSignature; -import org.onap.so.adapters.nssmf.annotation.RequestLogger; -import org.onap.so.adapters.nssmf.annotation.ServiceLogger; -import org.onap.so.adapters.nssmf.exceptions.ApplicationException; -import org.onap.so.adapters.nssmf.util.NssmfAdapterUtil; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -import org.springframework.core.annotation.Order; -import org.springframework.stereotype.Component; -import org.springframework.web.context.request.RequestContextHolder; -import org.springframework.web.context.request.ServletRequestAttributes; -import org.springframework.web.multipart.MultipartFile; -import javax.servlet.http.HttpServletRequest; -import java.lang.reflect.Method; -import java.util.HashMap; -import java.util.Map; - -/** - * support to print logger of service method - */ -@Aspect -@Order(100) -@Component -public class RequestLogAspect { - - private static final Logger logger = LoggerFactory.getLogger(RequestLogAspect.class); - - @Pointcut("execution(* org.onap.so.adapters.nssmf.service..*(..))") - public void serviceLogger() { - - } - - @Around("serviceLogger()") - public Object around(ProceedingJoinPoint joinPoint) { - try { - MethodSignature signature = (MethodSignature) joinPoint.getSignature(); - Method method = signature.getMethod(); - - Class<?> targetClass = method.getDeclaringClass(); - - StringBuilder classAndMethod = new StringBuilder(); - ServiceLogger classAnnotation = targetClass.getAnnotation(ServiceLogger.class); - ServiceLogger methodAnnotation = method.getAnnotation(ServiceLogger.class); - - if (classAnnotation == null && methodAnnotation == null) { - return joinPoint.proceed(); - } - - if (classAnnotation != null) { - if (classAnnotation.ignore()) { - return joinPoint.proceed(); - } - classAndMethod.append(classAnnotation.value()).append("-"); - } - - String target = targetClass.getName() + "#" + method.getName(); - - String params = NssmfAdapterUtil.marshal(joinPoint.getArgs()); - - logger.info("{} Start: Method = {} \nParams = {}", classAndMethod.toString(), target, params); - - long start = System.currentTimeMillis(); - Object result = joinPoint.proceed(); - long timeConsuming = System.currentTimeMillis() - start; - - logger.info("\n{} End: Method = {}, Spend time = {}ms \nResult = {}", classAndMethod.toString(), target, - timeConsuming, NssmfAdapterUtil.marshal(result)); - return result; - - } catch (Throwable e) { - logger.error(e.getMessage(), e); - } - return null; - } - - @Pointcut("execution(* org.onap.so.adapters.nssmf.controller..*(..))") - public void controllerLogger() { - - } - - @Around("controllerLogger()") - public Object doAroundRequest(ProceedingJoinPoint point) throws Throwable { - MethodSignature signature = (MethodSignature) point.getSignature(); - Method method = signature.getMethod(); - Class<?> targetClass = method.getDeclaringClass(); - - RequestLogger classAnnotation = targetClass.getAnnotation(RequestLogger.class); - RequestLogger methodAnnotation = method.getAnnotation(RequestLogger.class); - - if ((classAnnotation == null && methodAnnotation == null) - || (classAnnotation != null && classAnnotation.ignore()) - || (methodAnnotation != null && methodAnnotation.ignore())) { - return point.proceed(); - } - - long start = System.currentTimeMillis(); - ServletRequestAttributes attributes = (ServletRequestAttributes) RequestContextHolder.getRequestAttributes(); - - assert attributes != null; - HttpServletRequest request = attributes.getRequest(); - Object result = point.proceed(); - RequestInfo requestInfo = new RequestInfo(); - requestInfo.setIp(request.getRemoteAddr()); - requestInfo.setUrl(request.getRequestURL().toString()); - requestInfo.setHttpMethod(request.getMethod()); - requestInfo.setClassMethod(String.format("%s.%s", signature.getDeclaringTypeName(), signature.getName())); - requestInfo.setRequestParams(getRequestParamsByProceedingJoinPoint(point)); - requestInfo.setResult(result); - requestInfo.setTimeCost(System.currentTimeMillis() - start); - logger.info("Request Info : {}", NssmfAdapterUtil.marshal(requestInfo)); - return result; - } - - @AfterThrowing(pointcut = "controllerLogger()", throwing = "e") - public void doAfterRequestThrow(JoinPoint joinPoint, RuntimeException e) { - MethodSignature signature = (MethodSignature) joinPoint.getSignature(); - Method method = signature.getMethod(); - Class<?> targetClass = method.getDeclaringClass(); - - RequestLogger classAnnotation = targetClass.getAnnotation(RequestLogger.class); - RequestLogger methodAnnotation = method.getAnnotation(RequestLogger.class); - - if ((classAnnotation == null && methodAnnotation == null) - || (classAnnotation != null && classAnnotation.ignore()) - || (methodAnnotation != null && methodAnnotation.ignore())) { - return; - } - ServletRequestAttributes attributes = (ServletRequestAttributes) RequestContextHolder.getRequestAttributes(); - assert attributes != null; - HttpServletRequest request = attributes.getRequest(); - RequestErrorInfo requestErrorInfo = new RequestErrorInfo(); - requestErrorInfo.setIp(request.getRemoteAddr()); - requestErrorInfo.setUrl(request.getRequestURL().toString()); - requestErrorInfo.setHttpMethod(request.getMethod()); - requestErrorInfo.setClassMethod(String.format("%s.%s", joinPoint.getSignature().getDeclaringTypeName(), - joinPoint.getSignature().getName())); - requestErrorInfo.setRequestParams(getRequestParamsByJoinPoint(joinPoint)); - requestErrorInfo.setException(e); - String res; - try { - res = NssmfAdapterUtil.marshal(requestErrorInfo); - logger.info("Error Request Info : {}", res); - } catch (ApplicationException ex) { - logger.info("Error Request Info : {}", requestErrorInfo); - } - } - - private Map<String, Object> getRequestParamsByJoinPoint(JoinPoint joinPoint) { - String[] paramNames = ((MethodSignature) joinPoint.getSignature()).getParameterNames(); - Object[] paramValues = joinPoint.getArgs(); - - return buildRequestParam(paramNames, paramValues); - } - - - private Map<String, Object> getRequestParamsByProceedingJoinPoint(ProceedingJoinPoint proceedingJoinPoint) { - String[] paramNames = ((MethodSignature) proceedingJoinPoint.getSignature()).getParameterNames(); - Object[] paramValues = proceedingJoinPoint.getArgs(); - - return buildRequestParam(paramNames, paramValues); - } - - private Map<String, Object> buildRequestParam(String[] paramNames, Object[] paramValues) { - Map<String, Object> requestParams = new HashMap<>(); - for (int i = 0; i < paramNames.length; i++) { - Object value = paramValues[i]; - - if (value instanceof MultipartFile) { - MultipartFile file = (MultipartFile) value; - value = file.getOriginalFilename(); - } - - requestParams.put(paramNames[i], value); - } - - return requestParams; - } - - @Data - @ToString - private class RequestInfo { - private String ip; - private String url; - private String httpMethod; - private String classMethod; - private Object requestParams; - private Object result; - private Long timeCost; - } - - @Data - @ToString - private class RequestErrorInfo { - private String ip; - private String url; - private String httpMethod; - private String classMethod; - private Object requestParams; - private RuntimeException exception; - } -} diff --git a/adapters/mso-nssmf-adapter/src/main/java/org/onap/so/adapters/nssmf/manager/NssmfManager.java b/adapters/mso-nssmf-adapter/src/main/java/org/onap/so/adapters/nssmf/manager/NssmfManager.java deleted file mode 100644 index 54ef1e09dd..0000000000 --- a/adapters/mso-nssmf-adapter/src/main/java/org/onap/so/adapters/nssmf/manager/NssmfManager.java +++ /dev/null @@ -1,44 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * ONAP - SO - * ================================================================================ - # Copyright (c) 2020, CMCC Technologies Co., Ltd. - # - # 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. - * ============LICENSE_END========================================================= - */ - -package org.onap.so.adapters.nssmf.manager; - -import org.onap.so.adapters.nssmf.exceptions.ApplicationException; -import org.onap.so.adapters.nssmf.entity.RestResponse; -import org.onap.so.beans.nsmf.*; - -public interface NssmfManager { - - RestResponse allocateNssi(NssmfAdapterNBIRequest nssmfRequest) throws ApplicationException; - - RestResponse deAllocateNssi(NssmfAdapterNBIRequest nssmfRequest, String sliceId) throws ApplicationException; - - RestResponse activateNssi(NssmfAdapterNBIRequest nssmfRequest, String snssai) throws ApplicationException; - - RestResponse deActivateNssi(NssmfAdapterNBIRequest nssmfRequest, String snssai) throws ApplicationException; - - RestResponse queryJobStatus(NssmfAdapterNBIRequest jobReq, String jobId) throws ApplicationException; - - RestResponse queryNSSISelectionCapability(NssmfAdapterNBIRequest nbiRequest) throws ApplicationException; - - RestResponse querySubnetCapability(NssmfAdapterNBIRequest nbiRequest) throws ApplicationException; - - RestResponse modifyNssi(NssmfAdapterNBIRequest modifyRequest) throws ApplicationException; -} diff --git a/adapters/mso-nssmf-adapter/src/main/java/org/onap/so/adapters/nssmf/manager/NssmfManagerBuilder.java b/adapters/mso-nssmf-adapter/src/main/java/org/onap/so/adapters/nssmf/manager/NssmfManagerBuilder.java deleted file mode 100644 index e397201e4b..0000000000 --- a/adapters/mso-nssmf-adapter/src/main/java/org/onap/so/adapters/nssmf/manager/NssmfManagerBuilder.java +++ /dev/null @@ -1,131 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * ONAP - SO - * ================================================================================ - # Copyright (c) 2020, CMCC Technologies Co., Ltd. - # - # 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. - * ============LICENSE_END========================================================= - */ - -package org.onap.so.adapters.nssmf.manager; - -import org.onap.so.adapters.nssmf.config.NssmfAdapterConfig; -import org.onap.so.adapters.nssmf.consts.NssmfAdapterConsts; -import org.onap.so.adapters.nssmf.enums.ActionType; -import org.onap.so.adapters.nssmf.enums.ExecutorType; -import org.onap.so.adapters.nssmf.exceptions.ApplicationException; -import org.onap.so.adapters.nssmf.manager.impl.external.ExternalAnNssmfManager; -import org.onap.so.adapters.nssmf.manager.impl.external.ExternalCnNssmfManager; -import org.onap.so.adapters.nssmf.manager.impl.internal.InternalAnNssmfManager; -import org.onap.so.adapters.nssmf.manager.impl.internal.InternalCnNssmfManager; -import org.onap.so.adapters.nssmf.manager.impl.internal.InternalTnNssmfManager; -import org.onap.so.adapters.nssmf.manager.impl.*; -import org.onap.so.adapters.nssmf.util.RestUtil; -import org.onap.so.beans.nsmf.EsrInfo; -import org.onap.so.beans.nsmf.NetworkType; -import org.onap.so.beans.nsmf.ServiceInfo; -import org.onap.so.db.request.data.repository.ResourceOperationStatusRepository; - -public class NssmfManagerBuilder { - - private BaseNssmfManager nssmfManger; - - private RestUtil restUtil; - - private ActionType actionType; - - private ResourceOperationStatusRepository repository; - - private ServiceInfo serviceInfo; - - private NssmfAdapterConfig adapterConfig; - - public NssmfManagerBuilder(EsrInfo esrInfo) throws ApplicationException { - - ExecutorType executorType = getExecutorType(esrInfo); - NetworkType networkType = esrInfo.getNetworkType(); - - if (ExecutorType.INTERNAL.equals(executorType) && NetworkType.CORE.equals(networkType)) { - this.nssmfManger = new InternalCnNssmfManager().setEsrInfo(esrInfo).setExecutorType(executorType); - return; - } - - if (ExecutorType.INTERNAL.equals(executorType) && NetworkType.TRANSPORT.equals(networkType)) { - this.nssmfManger = new InternalTnNssmfManager().setEsrInfo(esrInfo).setExecutorType(executorType); - return; - } - - if (ExecutorType.INTERNAL.equals(executorType) && NetworkType.ACCESS.equals(networkType)) { - this.nssmfManger = new InternalAnNssmfManager().setEsrInfo(esrInfo).setExecutorType(executorType); - return; - } - - if (ExecutorType.EXTERNAL.equals(executorType) && NetworkType.CORE.equals(networkType)) { - this.nssmfManger = new ExternalCnNssmfManager().setEsrInfo(esrInfo).setExecutorType(executorType) - .setInitStatus("deactivated"); - return; - } - - if (ExecutorType.EXTERNAL.equals(executorType) && NetworkType.TRANSPORT.equals(networkType)) { - this.nssmfManger = new ExternalAnNssmfManager().setEsrInfo(esrInfo).setExecutorType(executorType) - .setInitStatus("activated"); - return; - } - - if (ExecutorType.EXTERNAL.equals(executorType) && NetworkType.ACCESS.equals(networkType)) { - this.nssmfManger = new ExternalAnNssmfManager().setEsrInfo(esrInfo).setExecutorType(executorType) - .setInitStatus("activated"); - return; - } - - throw new ApplicationException(404, "invalid domain and simulator"); - } - - private ExecutorType getExecutorType(EsrInfo esrInfo) { - if (NssmfAdapterConsts.ONAP_INTERNAL_TAG.equals(esrInfo.getVendor())) { - return ExecutorType.INTERNAL; - } - return ExecutorType.EXTERNAL; - } - - public NssmfManagerBuilder setRestUtil(RestUtil restUtil) { - this.restUtil = restUtil; - return this; - } - - public NssmfManagerBuilder setActionType(ActionType actionType) { - this.actionType = actionType; - return this; - } - - public NssmfManagerBuilder setRepository(ResourceOperationStatusRepository repository) { - this.repository = repository; - return this; - } - - public NssmfManagerBuilder setServiceInfo(ServiceInfo serviceInfo) { - this.serviceInfo = serviceInfo; - return this; - } - - public NssmfManagerBuilder setAdapterConfig(NssmfAdapterConfig adapterConfig) { - this.adapterConfig = adapterConfig; - return this; - } - - public NssmfManager build() { - return this.nssmfManger.setRestUtil(restUtil).setAdapterConfig(adapterConfig).setRepository(repository) - .setActionType(actionType).setServiceInfo(serviceInfo); - } -} diff --git a/adapters/mso-nssmf-adapter/src/main/java/org/onap/so/adapters/nssmf/manager/impl/BaseNssmfManager.java b/adapters/mso-nssmf-adapter/src/main/java/org/onap/so/adapters/nssmf/manager/impl/BaseNssmfManager.java deleted file mode 100644 index 0456c90fae..0000000000 --- a/adapters/mso-nssmf-adapter/src/main/java/org/onap/so/adapters/nssmf/manager/impl/BaseNssmfManager.java +++ /dev/null @@ -1,282 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * ONAP - SO - * ================================================================================ - # Copyright (c) 2020, CMCC Technologies Co., Ltd. - # - # 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. - * ============LICENSE_END========================================================= - */ - -package org.onap.so.adapters.nssmf.manager.impl; - -import org.onap.so.adapters.nssmf.config.NssmfAdapterConfig; -import org.onap.so.adapters.nssmf.consts.NssmfAdapterConsts; -import org.onap.so.adapters.nssmf.entity.NssmfUrlInfo; -import org.onap.so.adapters.nssmf.enums.*; -import org.onap.so.adapters.nssmf.exceptions.ApplicationException; -import org.onap.so.adapters.nssmf.entity.RestResponse; -import org.onap.so.adapters.nssmf.manager.NssmfManager; -import org.onap.so.adapters.nssmf.util.RestUtil; -import org.onap.so.beans.nsmf.*; -import org.onap.so.db.request.beans.ResourceOperationStatus; -import org.onap.so.db.request.data.repository.ResourceOperationStatusRepository; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -import org.springframework.data.domain.Example; -import java.util.HashMap; -import java.util.List; -import java.util.Map; -import java.util.Optional; -import static org.onap.so.adapters.nssmf.util.NssmfAdapterUtil.marshal; - -public abstract class BaseNssmfManager implements NssmfManager { - - private static final Logger logger = LoggerFactory.getLogger(BaseNssmfManager.class); - - protected RestUtil restUtil; - - protected ResourceOperationStatusRepository repository; - - protected NssmfAdapterConfig adapterConfig; - - protected ActionType actionType; - - protected EsrInfo esrInfo; - - protected String nssmfUrl; - - protected HttpMethod httpMethod; - - protected String initStatus; - - protected ServiceInfo serviceInfo; - - protected RestResponse restResponse; - - private ExecutorType executorType = ExecutorType.INTERNAL; - - private Map<String, String> params = new HashMap<>(); // request params - - @Override - public RestResponse allocateNssi(NssmfAdapterNBIRequest nbiRequest) throws ApplicationException { - - this.params.clear(); - this.urlHandler(); - String requestBody = wrapAllocateReqBody(nbiRequest); - - this.restResponse = sendRequest(requestBody); - - this.afterRequest(); - - return restResponse; - } - - protected abstract String wrapAllocateReqBody(NssmfAdapterNBIRequest nbiRequest) throws ApplicationException; - - @Override - public RestResponse modifyNssi(NssmfAdapterNBIRequest modifyRequest) throws ApplicationException { - this.params.clear(); - this.urlHandler(); - String requestBody = wrapModifyReqBody(modifyRequest); - - this.restResponse = sendRequest(requestBody); - - this.afterRequest(); - - return restResponse; - } - - protected abstract String wrapModifyReqBody(NssmfAdapterNBIRequest nbiRequest) throws ApplicationException; - - @Override - public RestResponse deAllocateNssi(NssmfAdapterNBIRequest nbiRequest, String sliceId) throws ApplicationException { - this.params.clear(); - this.params.put("sliceProfileId", sliceId); - - this.urlHandler(); - - String reqBody = wrapDeAllocateReqBody(nbiRequest.getDeAllocateNssi()); - - this.restResponse = sendRequest(reqBody); - - this.afterRequest(); - - return restResponse; - } - - protected abstract String wrapDeAllocateReqBody(DeAllocateNssi deAllocateNssi) throws ApplicationException; - - protected abstract String wrapReqBody(Object object) throws ApplicationException; - - @Override - public RestResponse activateNssi(NssmfAdapterNBIRequest nbiRequest, String snssai) throws ApplicationException { - this.params.clear(); - this.params.put("snssai", snssai); - - this.urlHandler(); - - String reqBody = wrapActDeActReqBody(nbiRequest.getActDeActNssi()); - - this.restResponse = sendRequest(reqBody); - - this.afterRequest(); - - return restResponse; - } - - @Override - public RestResponse deActivateNssi(NssmfAdapterNBIRequest nbiRequest, String snssai) throws ApplicationException { - return activateNssi(nbiRequest, snssai); - } - - protected abstract String wrapActDeActReqBody(ActDeActNssi actDeActNssi) throws ApplicationException; - - @Override - public RestResponse queryJobStatus(NssmfAdapterNBIRequest jobReq, String jobId) throws ApplicationException { - this.params.clear(); - this.params.put("jobId", jobId); - if (jobReq.getResponseId() != null) { - this.params.put("responseId", jobReq.getResponseId()); - } - this.urlHandler(); - - /** - * find by jobId and nsiId jobId -> OperationId nsiId -> ServiceId serviceUuid -> resourceTemplateUUID - */ - ResourceOperationStatus status = - getOperationStatus(serviceInfo.getNsiId(), jobId, serviceInfo.getServiceUuid()); - - logger.info("ResourceOperationStatus = {}", status); - this.restResponse = doQueryJobStatus(status); - - afterQueryJobStatus(status); - return restResponse; - } - - protected abstract RestResponse doQueryJobStatus(ResourceOperationStatus status) throws ApplicationException; - - - protected abstract void afterQueryJobStatus(ResourceOperationStatus status); - - private ResourceOperationStatus getOperationStatus(String nsiId, String jobId, String serviceUuid) { - - logger.info("Query operations: nsiId = [{}], jobId = [{}], serviceUuid = [{}]", nsiId, jobId, serviceUuid); - - List<ResourceOperationStatus> resourceOperationStatuses = - repository.findByServiceIdAndOperationId(nsiId, jobId); - - logger.info("resourceOperationStatuses = {}", resourceOperationStatuses); - if (resourceOperationStatuses.size() == 0) { - return null; - } - return resourceOperationStatuses.get(0); - } - - @Override - public RestResponse queryNSSISelectionCapability(NssmfAdapterNBIRequest nbiRequest) throws ApplicationException { - SelectionType res = doQueryNSSISelectionCapability(); - HashMap<String, String> hashMap = new HashMap<>(); - hashMap.put("selection", res.name()); - RestResponse restResponse = new RestResponse(); - restResponse.setStatus(200); - restResponse.setResponseContent(marshal(hashMap)); - return restResponse; - } - - protected abstract SelectionType doQueryNSSISelectionCapability(); - - @Override - public RestResponse querySubnetCapability(NssmfAdapterNBIRequest nbiRequest) throws ApplicationException { - this.params.clear(); - this.urlHandler(); - - return doQuerySubnetCapability(nbiRequest.getSubnetCapabilityQuery()); - } - - protected abstract RestResponse doQuerySubnetCapability(QuerySubnetCapability req) throws ApplicationException; - - /** - * send request to nssmf - * - * @param content request body - * @return response - * @throws ApplicationException - */ - protected abstract RestResponse sendRequest(String content) throws ApplicationException; - - /** - * handle the url before request to nssmf, include get the nssmf request url, replace the path variable - */ - private void urlHandler() { - NssmfUrlInfo nssmfUrlInfo = - NssmfAdapterConsts.getNssmfUrlInfo(this.executorType, this.esrInfo.getNetworkType(), actionType); - if (nssmfUrlInfo != null) { - this.nssmfUrl = nssmfUrlInfo.getUrl(); - this.httpMethod = nssmfUrlInfo.getHttpMethod(); - this.nssmfUrl = nssmfUrl.replaceAll("\\{apiVersion}", getApiVersion()); - this.params.forEach((k, v) -> this.nssmfUrl = this.nssmfUrl.replaceAll("\\{" + k + "}", v)); - } - } - - /** - * after request - */ - protected abstract void afterRequest() throws ApplicationException; - - protected abstract String getApiVersion(); - - public RestUtil getRestUtil() { - return restUtil; - } - - public BaseNssmfManager setEsrInfo(EsrInfo esrInfo) { - this.esrInfo = esrInfo; - return this; - } - - public BaseNssmfManager setExecutorType(ExecutorType executorType) { - this.executorType = executorType; - return this; - } - - public BaseNssmfManager setRestUtil(RestUtil restUtil) { - this.restUtil = restUtil; - return this; - } - - public BaseNssmfManager setActionType(ActionType actionType) { - this.actionType = actionType; - return this; - } - - public BaseNssmfManager setRepository(ResourceOperationStatusRepository repository) { - this.repository = repository; - return this; - } - - public BaseNssmfManager setServiceInfo(ServiceInfo serviceInfo) { - this.serviceInfo = serviceInfo; - return this; - } - - public BaseNssmfManager setInitStatus(String initStatus) { - this.initStatus = initStatus; - return this; - } - - public BaseNssmfManager setAdapterConfig(NssmfAdapterConfig adapterConfig) { - this.adapterConfig = adapterConfig; - return this; - } -} diff --git a/adapters/mso-nssmf-adapter/src/main/java/org/onap/so/adapters/nssmf/manager/impl/ExternalNssmfManager.java b/adapters/mso-nssmf-adapter/src/main/java/org/onap/so/adapters/nssmf/manager/impl/ExternalNssmfManager.java deleted file mode 100644 index 7c4bd50852..0000000000 --- a/adapters/mso-nssmf-adapter/src/main/java/org/onap/so/adapters/nssmf/manager/impl/ExternalNssmfManager.java +++ /dev/null @@ -1,243 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * ONAP - SO - * ================================================================================ - # Copyright (c) 2020, CMCC Technologies Co., Ltd. - # - # 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. - * ============LICENSE_END========================================================= - */ - -package org.onap.so.adapters.nssmf.manager.impl; - -import com.fasterxml.jackson.core.JsonProcessingException; -import com.fasterxml.jackson.core.type.TypeReference; -import com.fasterxml.jackson.databind.ObjectMapper; -import org.apache.http.Header; -import org.apache.http.HttpStatus; -import org.apache.http.message.BasicHeader; -import org.onap.aai.domain.yang.ServiceInstance; -import org.onap.so.adapters.nssmf.entity.NssmfInfo; -import org.onap.so.adapters.nssmf.entity.RestResponse; -import org.onap.so.adapters.nssmf.enums.ActionType; -import org.onap.so.adapters.nssmf.enums.JobStatus; -import org.onap.so.adapters.nssmf.exceptions.ApplicationException; -import org.onap.so.adapters.nssmf.util.NssmfAdapterUtil; -import org.onap.so.beans.nsmf.*; -import org.onap.so.db.request.beans.ResourceOperationStatus; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -import java.io.InputStream; -import java.util.HashMap; -import java.util.List; -import java.util.Map; -import static java.lang.String.valueOf; -import static org.onap.so.adapters.nssmf.enums.JobStatus.*; -import static org.onap.so.adapters.nssmf.util.NssmfAdapterUtil.StatusDesc.QUERY_JOB_STATUS_FAILED; -import static org.onap.so.adapters.nssmf.util.NssmfAdapterUtil.StatusDesc.QUERY_JOB_STATUS_SUCCESS; -import static org.onap.so.adapters.nssmf.util.NssmfAdapterUtil.marshal; -import static org.onap.so.adapters.nssmf.util.NssmfAdapterUtil.unMarshal; - -public abstract class ExternalNssmfManager extends BaseNssmfManager { - - private static final Logger logger = LoggerFactory.getLogger(ExternalNssmfManager.class); - - @Override - protected String wrapAllocateReqBody(NssmfAdapterNBIRequest nbiRequest) throws ApplicationException { - return doWrapExtAllocateReqBody(nbiRequest); - } - - protected abstract String doWrapExtAllocateReqBody(NssmfAdapterNBIRequest nbiRequest) throws ApplicationException; - - @Override - protected String wrapModifyReqBody(NssmfAdapterNBIRequest nbiRequest) throws ApplicationException { - return doWrapModifyReqBody(nbiRequest); - } - - protected abstract String doWrapModifyReqBody(NssmfAdapterNBIRequest nbiRequest) throws ApplicationException; - - @Override - protected String wrapDeAllocateReqBody(DeAllocateNssi deAllocateNssi) throws ApplicationException { - return doWrapDeAllocateReqBody(deAllocateNssi); - } - - protected abstract String doWrapDeAllocateReqBody(DeAllocateNssi deAllocateNssi) throws ApplicationException; - - @Override - protected void afterQueryJobStatus(ResourceOperationStatus status) { - logger.info("afterQueryJobStatus = " + status); - if (Integer.parseInt(status.getProgress()) == 100) { - logger.info("after query finished = " + status); - ActionType jobOperType = ActionType.valueOf(status.getOperType()); - - if (ActionType.ALLOCATE.equals(jobOperType)) { - ServiceInstance nssiInstance = restUtil.getServiceInstance(serviceInfo); - if (nssiInstance == null) { - nssiInstance = new ServiceInstance(); - } - - nssiInstance.setServiceInstanceId(serviceInfo.getNssiId()); - nssiInstance.setServiceInstanceName(serviceInfo.getNssiName()); - nssiInstance.setServiceType(serviceInfo.getSST()); - - nssiInstance.setOrchestrationStatus(initStatus); - nssiInstance.setModelInvariantId(serviceInfo.getServiceInvariantUuid()); - nssiInstance.setModelVersionId(serviceInfo.getServiceUuid()); - nssiInstance.setServiceInstanceLocationId(serviceInfo.getPLMNIdList()); - nssiInstance.setEnvironmentContext(esrInfo.getNetworkType().getNetworkType()); - nssiInstance.setServiceRole("nssi"); - - restUtil.createServiceInstance(nssiInstance, serviceInfo); - } else if (ActionType.DEALLOCATE.equals(jobOperType)) { - // TODO - restUtil.deleteServiceInstance(serviceInfo); - } - } - } - - @Override - protected String wrapActDeActReqBody(ActDeActNssi actDeActNssi) throws ApplicationException { - return marshal(actDeActNssi); - } - - @Override - protected RestResponse doQueryJobStatus(ResourceOperationStatus status) throws ApplicationException { - return doResponseStatus(status); - } - - private RestResponse doResponseStatus(ResourceOperationStatus status) throws ApplicationException { - RestResponse restResponse = sendRequest(null); - JobStatusResponse jobStatusResponse = unMarshal(restResponse.getResponseContent(), JobStatusResponse.class); - - ResponseDescriptor rspDesc = jobStatusResponse.getResponseDescriptor(); - - logger.info("status = {}", status); - rspDesc.setNssiId(status.getResourceInstanceID()); - - jobStatusResponse.setResponseDescriptor(rspDesc); - restResponse.setResponseContent(marshal(jobStatusResponse)); - updateRequestDbJobStatus(rspDesc, status, restResponse); - return restResponse; - } - - @Override - protected String wrapReqBody(Object object) throws ApplicationException { - return marshal(object); - } - - @Override - protected RestResponse sendRequest(String content) throws ApplicationException { - return sendExternalRequest(content); - } - - @Override - protected String getApiVersion() { - return "v1"; - } - - - // external - protected RestResponse sendExternalRequest(String content) throws ApplicationException { - NssmfInfo nssmfInfo = restUtil.getNssmfHost(esrInfo); - Header header = new BasicHeader("X-Auth-Token", restUtil.getToken(nssmfInfo)); - String nssmfUrl = nssmfInfo.getUrl() + this.nssmfUrl; - return restUtil.send(nssmfUrl, this.httpMethod, content, header); - } - - protected void updateRequestDbJobStatus(ResponseDescriptor rspDesc, ResourceOperationStatus status, - RestResponse rsp) throws ApplicationException { - status.setProgress(Integer.toString(rspDesc.getProgress())); - switch (fromString(rspDesc.getStatus())) { - case STARTED: - updateDbStatus(status, rsp.getStatus(), STARTED, QUERY_JOB_STATUS_SUCCESS); - break; - case PROCESSING: - updateDbStatus(status, rsp.getStatus(), PROCESSING, QUERY_JOB_STATUS_SUCCESS); - break; - case FINISHED: - if (rspDesc.getProgress() == 100) { - updateDbStatus(status, rsp.getStatus(), FINISHED, QUERY_JOB_STATUS_SUCCESS); - } - break; - case ERROR: - updateDbStatus(status, rsp.getStatus(), ERROR, QUERY_JOB_STATUS_FAILED); - throw new ApplicationException(500, QUERY_JOB_STATUS_FAILED); - default: - throw new ApplicationException(500, QUERY_JOB_STATUS_FAILED); - } - } - - protected void updateDbStatus(ResourceOperationStatus status, int rspStatus, JobStatus jobStatus, - String description) { - status.setErrorCode(valueOf(rspStatus)); - status.setStatus(jobStatus.toString()); - status.setStatusDescription(description); - repository.save(status); - } - - @Override - protected RestResponse doQuerySubnetCapability(QuerySubnetCapability req) throws ApplicationException { - - ObjectMapper oMapper = new ObjectMapper(); - InputStream inputStream = TypeReference.class.getResourceAsStream("/subnetCapability.json"); - Map subnetCapability = new HashMap<>(); - try { - subnetCapability = oMapper.readValue(inputStream, Map.class); - } catch (Exception e) { - logger.debug("Exception while reading subnet capability value from json", e); - } - Map<String, Object> responseMap = new HashMap<>(); - List<String> subnetTypes = req.getSubnetTypes(); - for (String value : subnetTypes) { - if (subnetCapability.containsKey(value)) { - responseMap.put(value, subnetCapability.get(value)); - } - } - String response = null; - try { - response = oMapper.writeValueAsString(responseMap); - } catch (JsonProcessingException e) { - logger.debug("Exception while converting subnet capability object to String {}", e.getMessage()); - } - - RestResponse rsp = new RestResponse(); - rsp.setStatus(HttpStatus.SC_OK); - rsp.setResponseContent(response); - return rsp; - } - - /** - * after request, if response code is 2XX, continue handle, else return - */ - @Override - protected void afterRequest() throws ApplicationException { - if (valueOf(restResponse.getStatus()).startsWith("2")) { - doAfterRequest(); - } - } - - - protected void doAfterRequest() throws ApplicationException { - // - NssiResponse response = unMarshal(restResponse.getResponseContent(), NssiResponse.class); - ResourceOperationStatus status = - new ResourceOperationStatus(serviceInfo.getNsiId(), response.getJobId(), serviceInfo.getServiceUuid()); - status.setResourceInstanceID(response.getNssiId()); - status.setOperType(actionType.toString()); - status.setProgress("0"); - - response.setStatus(STARTED.toString()); - restResponse.setResponseContent(marshal(response)); - updateDbStatus(status, restResponse.getStatus(), STARTED, NssmfAdapterUtil.getStatusDesc(actionType)); - } -} diff --git a/adapters/mso-nssmf-adapter/src/main/java/org/onap/so/adapters/nssmf/manager/impl/InternalNssmfManager.java b/adapters/mso-nssmf-adapter/src/main/java/org/onap/so/adapters/nssmf/manager/impl/InternalNssmfManager.java deleted file mode 100644 index 64ab199bc1..0000000000 --- a/adapters/mso-nssmf-adapter/src/main/java/org/onap/so/adapters/nssmf/manager/impl/InternalNssmfManager.java +++ /dev/null @@ -1,130 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * ONAP - SO - * ================================================================================ - # Copyright (c) 2020, CMCC Technologies Co., Ltd. - # - # 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. - * ============LICENSE_END========================================================= - */ - -package org.onap.so.adapters.nssmf.manager.impl; - -import org.apache.http.Header; -import org.apache.http.message.BasicHeader; -import org.onap.so.adapters.nssmf.consts.NssmfAdapterConsts; -import org.onap.so.adapters.nssmf.entity.RestResponse; -import org.onap.so.adapters.nssmf.enums.SelectionType; -import org.onap.so.adapters.nssmf.exceptions.ApplicationException; -import org.onap.so.beans.nsmf.*; -import org.onap.so.db.request.beans.ResourceOperationStatus; -import static org.onap.so.adapters.nssmf.enums.JobStatus.PROCESSING; -import static org.onap.so.adapters.nssmf.util.NssmfAdapterUtil.marshal; - -public abstract class InternalNssmfManager extends BaseNssmfManager { - - @Override - protected String wrapAllocateReqBody(NssmfAdapterNBIRequest nbiRequest) throws ApplicationException { - return doWrapAllocateReqBody(nbiRequest); - } - - protected abstract String doWrapAllocateReqBody(NssmfAdapterNBIRequest nbiRequest) throws ApplicationException; - - @Override - protected String wrapReqBody(Object object) throws ApplicationException { - NssmfRequest nssmfRequest = new NssmfRequest(serviceInfo, esrInfo.getNetworkType(), object); - return marshal(nssmfRequest); - } - - - @Override - protected String wrapActDeActReqBody(ActDeActNssi actDeActNssi) throws ApplicationException { - - return wrapReqBody(actDeActNssi); - } - - - @Override - protected String wrapDeAllocateReqBody(DeAllocateNssi deAllocateNssi) throws ApplicationException { - return wrapReqBody(deAllocateNssi); - } - - - @Override - protected RestResponse doQueryJobStatus(ResourceOperationStatus status) throws ApplicationException { - return responseDBStatus(status); - } - - private RestResponse responseDBStatus(ResourceOperationStatus status) throws ApplicationException { - JobStatusResponse statusResponse = new JobStatusResponse(); - ResponseDescriptor descriptor = new ResponseDescriptor(); - if (status == null) { - descriptor.setProgress(0); - descriptor.setStatus(PROCESSING.name()); - descriptor.setStatusDescription("Initiating Nssi Instance"); - } else { - descriptor.setStatus(status.getStatus()); - descriptor.setStatusDescription(status.getStatusDescription()); - descriptor.setProgress(Integer.parseInt(status.getProgress())); - descriptor.setNssiId(status.getResourceInstanceID()); - } - statusResponse.setResponseDescriptor(descriptor); - return restUtil.createResponse(200, marshal(statusResponse)); - } - - @Override - protected RestResponse sendRequest(String content) { - return sendInternalRequest(content); - } - - @Override - protected void afterRequest() { - // - } - - @Override - protected void afterQueryJobStatus(ResourceOperationStatus status) { - // internal - } - - // internal - private RestResponse sendInternalRequest(String content) { - Header header = new BasicHeader("Authorization", adapterConfig.getInfraAuth()); - this.nssmfUrl = adapterConfig.getInfraEndpoint() + this.nssmfUrl; - return restUtil.send(this.nssmfUrl, this.httpMethod, content, header); - } - - @Override - protected String getApiVersion() { - return NssmfAdapterConsts.CURRENT_INTERNAL_NSSMF_API_VERSION; - } - - - @Override - protected SelectionType doQueryNSSISelectionCapability() { - return SelectionType.NSSMF; - } - - @Override - protected String wrapModifyReqBody(NssmfAdapterNBIRequest nbiRequest) throws ApplicationException { - return doWrapModifyReqBody(nbiRequest); - } - - protected abstract String doWrapModifyReqBody(NssmfAdapterNBIRequest nbiRequest) throws ApplicationException; - - @Override - protected RestResponse doQuerySubnetCapability(QuerySubnetCapability req) throws ApplicationException { - // handler - return sendRequest(marshal(req)); - } -} diff --git a/adapters/mso-nssmf-adapter/src/main/java/org/onap/so/adapters/nssmf/manager/impl/external/ExternalAnNssmfManager.java b/adapters/mso-nssmf-adapter/src/main/java/org/onap/so/adapters/nssmf/manager/impl/external/ExternalAnNssmfManager.java deleted file mode 100644 index 1af6d15c06..0000000000 --- a/adapters/mso-nssmf-adapter/src/main/java/org/onap/so/adapters/nssmf/manager/impl/external/ExternalAnNssmfManager.java +++ /dev/null @@ -1,175 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * ONAP - SO - * ================================================================================ - # Copyright (c) 2020, CMCC Technologies Co., Ltd. - # - # 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. - * ============LICENSE_END========================================================= - */ - -package org.onap.so.adapters.nssmf.manager.impl.external; - -import org.onap.so.adapters.nssmf.entity.RestResponse; -import org.onap.so.adapters.nssmf.enums.ActionType; -import org.onap.so.adapters.nssmf.enums.JobStatus; -import org.onap.so.adapters.nssmf.enums.SelectionType; -import org.onap.so.adapters.nssmf.exceptions.ApplicationException; -import org.onap.so.adapters.nssmf.manager.impl.ExternalNssmfManager; -import org.onap.so.adapters.nssmf.util.NssmfAdapterUtil; -import org.onap.so.beans.nsmf.AnSliceProfile; -import org.onap.so.beans.nsmf.DeAllocateNssi; -import org.onap.so.beans.nsmf.NssiResponse; -import org.onap.so.beans.nsmf.NssmfAdapterNBIRequest; -import org.onap.so.beans.nsmf.ResponseDescriptor; -import org.onap.so.beans.nsmf.JobStatusResponse; -import org.onap.so.db.request.beans.ResourceOperationStatus; -import java.util.HashMap; -import java.util.Map; -import java.util.UUID; -import static org.onap.so.adapters.nssmf.util.NssmfAdapterUtil.marshal; -import static org.onap.so.adapters.nssmf.util.NssmfAdapterUtil.unMarshal; - - -public class ExternalAnNssmfManager extends ExternalNssmfManager { - - /** - * request body params - */ - private Map<String, String> bodyParams = new HashMap<>(); - - @Override - protected String doWrapExtAllocateReqBody(NssmfAdapterNBIRequest nbiRequest) throws ApplicationException { - Map<String, Object> request = new HashMap<>(); - - AnSliceProfile anSliceProfile = nbiRequest.getAllocateAnNssi().getSliceProfile(); - - RanSliceProfile ranSliceProfile = new RanSliceProfile(); - ranSliceProfile.setSliceProfileId(anSliceProfile.getSliceProfileId()); - ranSliceProfile.setSNSSAIList(anSliceProfile.getSNSSAIList()); - ranSliceProfile.setPLMNIdList(anSliceProfile.getPLMNIdList()); - ranSliceProfile.setPerfReq(anSliceProfile.getPerfReq()); - ranSliceProfile.setMaxNumberofUEs(anSliceProfile.getMaxNumberOfUEs()); - ranSliceProfile.setCoverageAreaTAList(anSliceProfile.getCoverageAreaTAList()); - ranSliceProfile.setLatency(anSliceProfile.getLatency()); - ranSliceProfile.setUEMobilityLevel(anSliceProfile.getUeMobilityLevel()); - ranSliceProfile.setResourceSharingLevel(anSliceProfile.getResourceSharingLevel()); - - request.put("attributeListIn", ranSliceProfile); - return marshal(request); - } - - @Override - protected void doAfterRequest() throws ApplicationException { - if (ActionType.ALLOCATE.equals(actionType) || ActionType.DEALLOCATE.equals(actionType)) { - String nssiId; - if (ActionType.ALLOCATE.equals(actionType)) { - @SuppressWarnings("unchecked") - Map<String, String> response = unMarshal(restResponse.getResponseContent(), Map.class); - nssiId = response.get("href"); - } else { - nssiId = this.bodyParams.get("nssiId"); - } - - NssiResponse resp = new NssiResponse(); - resp.setJobId(UUID.randomUUID().toString()); - resp.setNssiId(nssiId); - - RestResponse returnRsp = new RestResponse(); - - returnRsp.setStatus(202); - returnRsp.setResponseContent(marshal(resp)); - restResponse = returnRsp; - - ResourceOperationStatus status = - new ResourceOperationStatus(serviceInfo.getNsiId(), resp.getJobId(), serviceInfo.getServiceUuid()); - status.setResourceInstanceID(nssiId); - status.setOperType(actionType.toString()); - - updateDbStatus(status, restResponse.getStatus(), JobStatus.STARTED, - NssmfAdapterUtil.getStatusDesc(actionType)); - } - // todo - } - - @Override - protected String doWrapModifyReqBody(NssmfAdapterNBIRequest nbiRequest) throws ApplicationException { - // TODO - return null; - } - - @Override - protected String doWrapDeAllocateReqBody(DeAllocateNssi deAllocateNssi) throws ApplicationException { - this.bodyParams.clear(); - this.bodyParams.put("nssiId", deAllocateNssi.getNssiId()); - - Map<String, String> request = new HashMap<>(); - request.put("nSSId", deAllocateNssi.getNssiId()); - return marshal(request); - } - - - @Override - public RestResponse modifyNssi(NssmfAdapterNBIRequest modifyRequest) throws ApplicationException { - // TODO - return null; - } - - @Override - public RestResponse activateNssi(NssmfAdapterNBIRequest nbiRequest, String snssai) throws ApplicationException { - // TODO - NssiResponse resp = new NssiResponse(); - String nssiId = nbiRequest.getActDeActNssi().getNssiId(); - resp.setJobId(UUID.randomUUID().toString()); - resp.setNssiId(nssiId); - - RestResponse returnRsp = new RestResponse(); - - returnRsp.setStatus(202); - returnRsp.setResponseContent(marshal(resp)); - - ResourceOperationStatus status = - new ResourceOperationStatus(serviceInfo.getNsiId(), resp.getJobId(), serviceInfo.getServiceUuid()); - status.setResourceInstanceID(nssiId); - status.setOperType(actionType.toString()); - - updateDbStatus(status, returnRsp.getStatus(), JobStatus.FINISHED, NssmfAdapterUtil.getStatusDesc(actionType)); - return returnRsp; - } - - @Override - protected RestResponse doQueryJobStatus(ResourceOperationStatus status) throws ApplicationException { - ResponseDescriptor responseDescriptor = new ResponseDescriptor(); - responseDescriptor.setStatus(JobStatus.FINISHED.toString()); - responseDescriptor.setProgress(100); - responseDescriptor.setStatusDescription("Finished"); - - JobStatusResponse jobStatusResponse = new JobStatusResponse(); - jobStatusResponse.setResponseDescriptor(responseDescriptor); - - RestResponse restResponse = new RestResponse(); - restResponse.setStatus(200); - restResponse.setResponseContent(marshal(jobStatusResponse)); - - updateRequestDbJobStatus(responseDescriptor, status, restResponse); - - status.setProgress(Integer.toString(responseDescriptor.getProgress())); - - return restResponse; - } - - @Override - protected SelectionType doQueryNSSISelectionCapability() { - return SelectionType.NSSMF; - } -} diff --git a/adapters/mso-nssmf-adapter/src/main/java/org/onap/so/adapters/nssmf/manager/impl/external/ExternalCnNssmfManager.java b/adapters/mso-nssmf-adapter/src/main/java/org/onap/so/adapters/nssmf/manager/impl/external/ExternalCnNssmfManager.java deleted file mode 100644 index 08c464e46b..0000000000 --- a/adapters/mso-nssmf-adapter/src/main/java/org/onap/so/adapters/nssmf/manager/impl/external/ExternalCnNssmfManager.java +++ /dev/null @@ -1,73 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * ONAP - SO - * ================================================================================ - # Copyright (c) 2020, CMCC Technologies Co., Ltd. - # - # 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. - * ============LICENSE_END========================================================= - */ - -package org.onap.so.adapters.nssmf.manager.impl.external; - -import org.onap.aai.domain.yang.ServiceInstance; -import org.onap.so.adapters.nssmf.enums.ActionType; -import org.onap.so.adapters.nssmf.enums.SelectionType; -import org.onap.so.adapters.nssmf.exceptions.ApplicationException; -import org.onap.so.adapters.nssmf.manager.impl.ExternalNssmfManager; -import org.onap.so.beans.nsmf.DeAllocateNssi; -import org.onap.so.beans.nsmf.NssmfAdapterNBIRequest; -import org.onap.so.db.request.beans.ResourceOperationStatus; -import static org.onap.so.adapters.nssmf.util.NssmfAdapterUtil.marshal; - -public class ExternalCnNssmfManager extends ExternalNssmfManager { - - @Override - protected String doWrapExtAllocateReqBody(NssmfAdapterNBIRequest nbiRequest) throws ApplicationException { - return marshal(nbiRequest.getAllocateCnNssi()); - } - - @Override - protected String doWrapModifyReqBody(NssmfAdapterNBIRequest nbiRequest) throws ApplicationException { - return marshal(nbiRequest.getAllocateCnNssi()); - } - - @Override - protected String doWrapDeAllocateReqBody(DeAllocateNssi deAllocateNssi) throws ApplicationException { - return marshal(deAllocateNssi); - } - - @Override - protected void afterQueryJobStatus(ResourceOperationStatus status) { - super.afterQueryJobStatus(status); - ActionType jobOperType = ActionType.valueOf(status.getOperType()); - if (Integer.parseInt(status.getProgress()) == 100) { - if (ActionType.ACTIVATE.equals(jobOperType)) { - ServiceInstance nssiInstance = restUtil.getServiceInstance(serviceInfo); - nssiInstance.setOrchestrationStatus("activated"); - restUtil.updateServiceInstance(nssiInstance, serviceInfo); - } else if (ActionType.DEACTIVATE.equals(jobOperType)) { - ServiceInstance nssiInstance = restUtil.getServiceInstance(serviceInfo); - nssiInstance.setOrchestrationStatus("deactivated"); - restUtil.updateServiceInstance(nssiInstance, serviceInfo); - } - } - } - - @Override - protected SelectionType doQueryNSSISelectionCapability() { - - return SelectionType.NSMF; - } - -} diff --git a/adapters/mso-nssmf-adapter/src/main/java/org/onap/so/adapters/nssmf/manager/impl/external/RanSliceProfile.java b/adapters/mso-nssmf-adapter/src/main/java/org/onap/so/adapters/nssmf/manager/impl/external/RanSliceProfile.java deleted file mode 100644 index 7035456d75..0000000000 --- a/adapters/mso-nssmf-adapter/src/main/java/org/onap/so/adapters/nssmf/manager/impl/external/RanSliceProfile.java +++ /dev/null @@ -1,70 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * ONAP - SO - * ================================================================================ - * Copyright (C) 2020 Huawei Technologies Co., Ltd. All rights reserved. - * ================================================================================ - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * 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. - * ============LICENSE_END========================================================= - */ - -package org.onap.so.adapters.nssmf.manager.impl.external; - -import com.fasterxml.jackson.annotation.JsonInclude; -import com.fasterxml.jackson.annotation.JsonProperty; -import lombok.Data; -import java.io.Serializable; -import java.util.List; -import org.onap.so.beans.nsmf.PerfReq; -import org.onap.so.beans.nsmf.UeMobilityLevel; -import org.onap.so.beans.nsmf.ResourceSharingLevel; - -@JsonInclude(JsonInclude.Include.NON_NULL) -@Data -public class RanSliceProfile implements Serializable { - /* - * Reference 3GPP TS 28.541 V16.5.0, Section 6.3.4. - */ - - private static final long serialVersionUID = 172447042469370448L; - - @JsonProperty(value = "sliceProfileId", required = true) - private String sliceProfileId; - - @JsonProperty(value = "sNSSAIList", required = true) - private List<String> sNSSAIList; - - @JsonProperty(value = "pLMNIdList", required = true) - private List<String> pLMNIdList; - - @JsonProperty(value = "perfReq", required = true) - private PerfReq perfReq; - - @JsonInclude(JsonInclude.Include.NON_DEFAULT) - @JsonProperty(value = "maxNumberofUEs") - private long maxNumberofUEs; - - @JsonProperty(value = "coverageAreaTAList") - private List<Integer> coverageAreaTAList; - - @JsonInclude(JsonInclude.Include.NON_DEFAULT) - @JsonProperty(value = "latency") - private int latency; - - @JsonProperty(value = "uEMobilityLevel") - private UeMobilityLevel uEMobilityLevel; - - @JsonProperty(value = "resourceSharingLevel") - private ResourceSharingLevel resourceSharingLevel; - -} diff --git a/adapters/mso-nssmf-adapter/src/main/java/org/onap/so/adapters/nssmf/manager/impl/internal/InternalAnNssmfManager.java b/adapters/mso-nssmf-adapter/src/main/java/org/onap/so/adapters/nssmf/manager/impl/internal/InternalAnNssmfManager.java deleted file mode 100644 index dc6528381b..0000000000 --- a/adapters/mso-nssmf-adapter/src/main/java/org/onap/so/adapters/nssmf/manager/impl/internal/InternalAnNssmfManager.java +++ /dev/null @@ -1,54 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * ONAP - SO - * ================================================================================ - # Copyright (c) 2020, CMCC Technologies Co., Ltd. - # - # 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. - * ============LICENSE_END========================================================= - */ - -package org.onap.so.adapters.nssmf.manager.impl.internal; - -import org.onap.so.adapters.nssmf.exceptions.ApplicationException; -import org.onap.so.adapters.nssmf.manager.impl.InternalNssmfManager; -import org.onap.so.beans.nsmf.*; -import java.util.HashMap; -import java.util.Map; -import static org.onap.so.adapters.nssmf.util.NssmfAdapterUtil.marshal; - - -public class InternalAnNssmfManager extends InternalNssmfManager { - - @Override - protected String doWrapAllocateReqBody(NssmfAdapterNBIRequest nbiRequest) throws ApplicationException { - NssmfRequest request = - new NssmfRequest(serviceInfo, nbiRequest.getEsrInfo().getNetworkType(), nbiRequest.getAllocateAnNssi()); - request.setName(nbiRequest.getAllocateAnNssi().getNssiName()); - return marshal(request); - } - - @Override - protected String doWrapModifyReqBody(NssmfAdapterNBIRequest nbiRequest) throws ApplicationException { - AllocateAnNssi allocateAnNssi = nbiRequest.getAllocateAnNssi(); - AnSliceProfile sliceProfile = allocateAnNssi.getSliceProfile(); - Map<String, Object> additional = new HashMap<>(); - additional.put("modifyAction", "allocate"); - additional.put("snssaiList", sliceProfile.getSNSSAIList()); - additional.put("sliceProfileId", sliceProfile.getSliceProfileId()); - additional.put("nsiInfo", allocateAnNssi.getNsiInfo()); - additional.put("scriptName", allocateAnNssi.getScriptName()); - NssmfRequest request = new NssmfRequest(serviceInfo, esrInfo.getNetworkType(), additional); - return marshal(request); - } -} diff --git a/adapters/mso-nssmf-adapter/src/main/java/org/onap/so/adapters/nssmf/manager/impl/internal/InternalCnNssmfManager.java b/adapters/mso-nssmf-adapter/src/main/java/org/onap/so/adapters/nssmf/manager/impl/internal/InternalCnNssmfManager.java deleted file mode 100644 index 4a93b3007c..0000000000 --- a/adapters/mso-nssmf-adapter/src/main/java/org/onap/so/adapters/nssmf/manager/impl/internal/InternalCnNssmfManager.java +++ /dev/null @@ -1,56 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * ONAP - SO - * ================================================================================ - # Copyright (c) 2020, CMCC Technologies Co., Ltd. - # - # 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. - * ============LICENSE_END========================================================= - */ - -package org.onap.so.adapters.nssmf.manager.impl.internal; - -import org.onap.so.adapters.nssmf.exceptions.ApplicationException; -import org.onap.so.adapters.nssmf.manager.impl.InternalNssmfManager; -import org.onap.so.beans.nsmf.*; -import java.util.HashMap; -import java.util.Map; -import static org.onap.so.adapters.nssmf.util.NssmfAdapterUtil.marshal; - -public class InternalCnNssmfManager extends InternalNssmfManager { - - @Override - protected String doWrapAllocateReqBody(NssmfAdapterNBIRequest nbiRequest) throws ApplicationException { - - NssmfRequest request = - new NssmfRequest(serviceInfo, nbiRequest.getEsrInfo().getNetworkType(), nbiRequest.getAllocateCnNssi()); - request.setName(nbiRequest.getAllocateCnNssi().getNssiName()); - return marshal(request); - } - - @Override - protected String doWrapModifyReqBody(NssmfAdapterNBIRequest nbiRequest) throws ApplicationException { - AllocateCnNssi allocateCnNssi = nbiRequest.getAllocateCnNssi(); - CnSliceProfile cnSliceProfile = allocateCnNssi.getSliceProfile(); - Map<String, Object> additional = new HashMap<>(); - additional.put("modifyAction", "allocate"); - additional.put("nsiInfo", allocateCnNssi.getNsiInfo()); - additional.put("scriptName", allocateCnNssi.getScriptName()); - additional.put("snssaiList", cnSliceProfile.getSnssaiList()); - additional.put("sliceProfileId", cnSliceProfile.getSliceProfileId()); - - NssmfRequest request = new NssmfRequest(serviceInfo, esrInfo.getNetworkType(), additional); - return marshal(request); - } - -} diff --git a/adapters/mso-nssmf-adapter/src/main/java/org/onap/so/adapters/nssmf/manager/impl/internal/InternalTnNssmfManager.java b/adapters/mso-nssmf-adapter/src/main/java/org/onap/so/adapters/nssmf/manager/impl/internal/InternalTnNssmfManager.java deleted file mode 100644 index 1b4a9e9fca..0000000000 --- a/adapters/mso-nssmf-adapter/src/main/java/org/onap/so/adapters/nssmf/manager/impl/internal/InternalTnNssmfManager.java +++ /dev/null @@ -1,42 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * ONAP - SO - * ================================================================================ - # Copyright (c) 2020, CMCC Technologies Co., Ltd. - # - # 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. - * ============LICENSE_END========================================================= - */ - -package org.onap.so.adapters.nssmf.manager.impl.internal; - -import org.onap.so.adapters.nssmf.exceptions.ApplicationException; -import org.onap.so.adapters.nssmf.manager.impl.InternalNssmfManager; -import org.onap.so.beans.nsmf.*; -import static org.onap.so.adapters.nssmf.util.NssmfAdapterUtil.marshal; - -public class InternalTnNssmfManager extends InternalNssmfManager { - - @Override - protected String doWrapAllocateReqBody(NssmfAdapterNBIRequest nbiRequest) throws ApplicationException { - - return marshal(new NssmfRequest(serviceInfo, nbiRequest.getEsrInfo().getNetworkType(), - nbiRequest.getAllocateTnNssi())); - } - - @Override - protected String doWrapModifyReqBody(NssmfAdapterNBIRequest nbiRequest) throws ApplicationException { - // TODO - return doWrapAllocateReqBody(nbiRequest); - } -} diff --git a/adapters/mso-nssmf-adapter/src/main/java/org/onap/so/adapters/nssmf/rest/NssmfAdapterRest.java b/adapters/mso-nssmf-adapter/src/main/java/org/onap/so/adapters/nssmf/rest/NssmfAdapterRest.java deleted file mode 100644 index 4fdcbf110f..0000000000 --- a/adapters/mso-nssmf-adapter/src/main/java/org/onap/so/adapters/nssmf/rest/NssmfAdapterRest.java +++ /dev/null @@ -1,145 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * ONAP - SO - * ================================================================================ - * Copyright (C) 2020 Huawei Technologies Co., Ltd. All rights reserved. - * ================================================================================ - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * 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. - * ============LICENSE_END========================================================= - */ - -package org.onap.so.adapters.nssmf.rest; - -import org.onap.so.adapters.nssmf.entity.RestResponse; -import org.onap.so.adapters.nssmf.exceptions.ApplicationException; -import org.onap.so.beans.nsmf.JobStatusRequest; -import org.onap.so.beans.nsmf.NssiActDeActRequest; -import org.onap.so.beans.nsmf.NssiAllocateRequest; -import org.onap.so.beans.nsmf.NssiCreateRequest; -import org.onap.so.beans.nsmf.NssiDeAllocateRequest; -import org.onap.so.beans.nsmf.NssiTerminateRequest; -import org.onap.so.beans.nsmf.NssiUpdateRequest; -import org.onap.so.beans.nsmf.NssiUpdateRequestById; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.http.ResponseEntity; -import org.springframework.stereotype.Controller; -import org.springframework.web.bind.annotation.GetMapping; -import org.springframework.web.bind.annotation.PathVariable; -import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.PutMapping; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RequestMapping; -import static javax.ws.rs.core.MediaType.APPLICATION_JSON; -import static org.onap.so.adapters.nssmf.util.NssmfAdapterUtil.assertObjectNotNull; - -@Deprecated -@Controller -@RequestMapping(value = "/api/rest/provMns/v1", produces = {APPLICATION_JSON}, consumes = {APPLICATION_JSON}) -public class NssmfAdapterRest { - - private static final Logger logger = LoggerFactory.getLogger(NssmfAdapterRest.class); - - @Autowired - private NssmfManager nssmfMgr; - - - @PostMapping(value = "/NSS/nssi") - public ResponseEntity createNssi(@RequestBody NssiCreateRequest create) { - try { - logger.info("Nssmf create request is invoked"); - assertObjectNotNull(create); - RestResponse rsp = getNssmfMgr().createNssi(create); - return buildResponse(rsp); - } catch (ApplicationException e) { - return e.buildErrorResponse(); - } - } - - @PostMapping(value = "/NSS/nssi/{nssiId}") - public ResponseEntity terminateNssi(@RequestBody NssiTerminateRequest terminate, - @PathVariable("nssiId") String nssiId) { - try { - logger.info("Nssmf terminate request is invoked"); - assertObjectNotNull(terminate); - RestResponse rsp = getNssmfMgr().terminateNssi(terminate, nssiId); - return buildResponse(rsp); - } catch (ApplicationException e) { - return e.buildErrorResponse(); - } - } - - @PutMapping(value = "/NSS/SliceProfiles/{sliceProfileId}") - public ResponseEntity modifyNssi(@RequestBody NssiUpdateRequest update, - @PathVariable("sliceProfileId") String sliceId) { - try { - logger.info("Nssmf modify request is invoked"); - assertObjectNotNull(update); - RestResponse rsp = getNssmfMgr().updateNssi(update, sliceId); - return buildResponse(rsp); - } catch (ApplicationException e) { - return e.buildErrorResponse(); - } - } - - @PutMapping(value = "/NSS/nssi/{nssiId}") - public ResponseEntity modifyNssiById(@RequestBody NssiUpdateRequestById updateById, - @PathVariable("nssiId") String nssiId) { - try { - logger.info("Nssmf modify by ID request is invoked"); - assertObjectNotNull(updateById); - RestResponse rsp = getNssmfMgr().updateNssiById(updateById, nssiId); - return buildResponse(rsp); - } catch (ApplicationException e) { - return e.buildErrorResponse(); - } - } - - - @GetMapping(value = "/vendor/{vendorName}/type/{networkType}/NSS" + "/SliceProfiles/{sliceProfileId}") - public ResponseEntity queryNssi(@PathVariable("vendorName") String vendorName, - @PathVariable("networktype") String networkType, @PathVariable("sliceProfileId") String sliceId) { - try { - logger.info("Nssmf query nssi request is invoked"); - RestResponse rsp = getNssmfMgr().queryNssi(vendorName, networkType, sliceId); - return buildResponse(rsp); - } catch (ApplicationException e) { - return e.buildErrorResponse(); - } - } - - @GetMapping(value = "/vendor/{vendorName}/type/{networkType}/NSS/nssi" + "/{nssiId}") - public ResponseEntity queryNssiById(@PathVariable("vendorName") String vendorName, - @PathVariable("networkTtype") String networkType, @PathVariable("nssiId") String nssiId) { - try { - logger.info("Nssmf query nssi by ID request is invoked"); - RestResponse rsp = getNssmfMgr().queryNssiById(vendorName, networkType, nssiId); - return buildResponse(rsp); - } catch (ApplicationException e) { - return e.buildErrorResponse(); - } - } - - public void setNssmfMgr(NssmfManager nssmfMgr) { - this.nssmfMgr = nssmfMgr; - } - - public NssmfManager getNssmfMgr() { - return nssmfMgr; - } - - private ResponseEntity buildResponse(RestResponse rsp) { - return ResponseEntity.status(rsp.getStatus()).body(rsp.getResponseContent()); - } -} diff --git a/adapters/mso-nssmf-adapter/src/main/java/org/onap/so/adapters/nssmf/rest/NssmfManager.java b/adapters/mso-nssmf-adapter/src/main/java/org/onap/so/adapters/nssmf/rest/NssmfManager.java deleted file mode 100644 index 2d0980f60e..0000000000 --- a/adapters/mso-nssmf-adapter/src/main/java/org/onap/so/adapters/nssmf/rest/NssmfManager.java +++ /dev/null @@ -1,549 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * ONAP - SO - * ================================================================================ - * Copyright (C) 2020 Huawei Technologies Co., Ltd. All rights reserved. - * ================================================================================ - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * 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. - * ============LICENSE_END========================================================= - */ - -package org.onap.so.adapters.nssmf.rest; - -import org.onap.so.adapters.nssmf.entity.RestResponse; -import org.onap.so.adapters.nssmf.enums.JobStatus; -import org.onap.so.adapters.nssmf.exceptions.ApplicationException; -import org.onap.so.adapters.nssmf.util.RestUtil; -import org.onap.so.beans.nsmf.ActDeActNssi; -import org.onap.so.beans.nsmf.AllocateAnNssi; -import org.onap.so.beans.nsmf.AllocateCnNssi; -import org.onap.so.beans.nsmf.AllocateTnNssi; -import org.onap.so.beans.nsmf.CreateCnNssi; -import org.onap.so.beans.nsmf.DeAllocateNssi; -import org.onap.so.beans.nsmf.EsrInfo; -import org.onap.so.beans.nsmf.JobStatusRequest; -import org.onap.so.beans.nsmf.JobStatusResponse; -import org.onap.so.beans.nsmf.NetworkType; -import org.onap.so.beans.nsmf.NssiActDeActRequest; -import org.onap.so.beans.nsmf.NssiAllocateRequest; -import org.onap.so.beans.nsmf.NssiCreateRequest; -import org.onap.so.beans.nsmf.NssiDeAllocateRequest; -import org.onap.so.beans.nsmf.NssiResponse; -import org.onap.so.beans.nsmf.NssiTerminateRequest; -import org.onap.so.beans.nsmf.NssiUpdateRequest; -import org.onap.so.beans.nsmf.NssiUpdateRequestById; -import org.onap.so.beans.nsmf.ResponseDescriptor; -import org.onap.so.beans.nsmf.TerminateNssi; -import org.onap.so.beans.nsmf.UpdateCnNssi; -import org.onap.so.beans.nsmf.UpdateCnNssiById; -import org.onap.so.db.request.beans.ResourceOperationStatus; -import org.onap.so.db.request.data.repository.ResourceOperationStatusRepository; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.context.annotation.Primary; -import org.springframework.data.domain.Example; -import org.springframework.stereotype.Component; -import static java.lang.String.valueOf; -import static org.onap.so.adapters.nssmf.enums.HttpMethod.DELETE; -import static org.onap.so.adapters.nssmf.enums.HttpMethod.GET; -import static org.onap.so.adapters.nssmf.enums.HttpMethod.POST; -import static org.onap.so.adapters.nssmf.enums.HttpMethod.PUT; -import static org.onap.so.adapters.nssmf.enums.JobStatus.ERROR; -import static org.onap.so.adapters.nssmf.enums.JobStatus.FINISHED; -import static org.onap.so.adapters.nssmf.enums.JobStatus.PROCESSING; -import static org.onap.so.adapters.nssmf.enums.JobStatus.STARTED; -import static org.onap.so.adapters.nssmf.enums.JobStatus.fromString; -import static org.onap.so.adapters.nssmf.util.NssmfAdapterUtil.StatusDesc.ACTIVATE_NSS_SUCCESS; -import static org.onap.so.adapters.nssmf.util.NssmfAdapterUtil.StatusDesc.ALLOCATE_NSS_SUCCESS; -import static org.onap.so.adapters.nssmf.util.NssmfAdapterUtil.StatusDesc.CREATE_NSS_SUCCESS; -import static org.onap.so.adapters.nssmf.util.NssmfAdapterUtil.StatusDesc.DEACTIVATE_NSS_SUCCESS; -import static org.onap.so.adapters.nssmf.util.NssmfAdapterUtil.StatusDesc.DEALLOCATE_NSS_SUCCESS; -import static org.onap.so.adapters.nssmf.util.NssmfAdapterUtil.StatusDesc.QUERY_JOB_STATUS_FAILED; -import static org.onap.so.adapters.nssmf.util.NssmfAdapterUtil.StatusDesc.QUERY_JOB_STATUS_SUCCESS; -import static org.onap.so.adapters.nssmf.util.NssmfAdapterUtil.assertObjectNotNull; -import static org.onap.so.adapters.nssmf.util.NssmfAdapterUtil.marshal; -import static org.onap.so.adapters.nssmf.util.NssmfAdapterUtil.unMarshal; -import static org.onap.so.beans.nsmf.ActDeActNssi.ACT_URL; -import static org.onap.so.beans.nsmf.ActDeActNssi.DE_ACT_URL; - -@Component -@Primary -@Deprecated -public class NssmfManager { - - private static final Logger logger = LoggerFactory.getLogger(NssmfManager.class); - - public final static String QUERY = "/api/rest/provMns/v1/NSS" + "/SliceProfiles/{sliceProfileId}"; - - public final static String QUERY_BY_ID = "/api/rest/provMns/v1/NSS/nssi" + "/{nssiId}"; - - @Autowired - private ResourceOperationStatusRepository rscOperStatusRepo; - - @Autowired - private RestUtil restUtil; - - - public RestResponse allocateNssi(NssiAllocateRequest nssmiAllocate) throws ApplicationException { - - assertObjectNotNull(nssmiAllocate.getEsrInfo()); - assertObjectNotNull(nssmiAllocate.getEsrInfo().getNetworkType()); - assertObjectNotNull(nssmiAllocate.getEsrInfo().getVendor()); - - String nsiId = null; - String allocateReq = null; - String allocateUrl = null; - logger.info("Allocate Nssi for " + nssmiAllocate.getEsrInfo().getNetworkType() + " Network has begun"); - - switch (nssmiAllocate.getEsrInfo().getNetworkType()) { - - case CORE: - AllocateCnNssi cn = nssmiAllocate.getAllocateCnNssi(); - assertObjectNotNull(cn); - assertObjectNotNull(cn.getNsiInfo()); - assertObjectNotNull(cn.getNsiInfo().getNsiId()); - nsiId = cn.getNsiInfo().getNsiId(); - assertObjectNotNull(nsiId); - allocateReq = marshal(cn); - allocateUrl = AllocateCnNssi.URL; - break; - - case ACCESS: - AllocateAnNssi an = nssmiAllocate.getAllocateAnNssi(); - assertObjectNotNull(an); - assertObjectNotNull(an.getNsiInfo()); - assertObjectNotNull(an.getNsiInfo().getNsiId()); - nsiId = an.getNsiInfo().getNsiId(); - assertObjectNotNull(nsiId); - allocateReq = marshal(an); - allocateUrl = AllocateAnNssi.URL; - break; - - case TRANSPORT: - AllocateTnNssi tn = nssmiAllocate.getAllocateTnNssi(); - assertObjectNotNull(tn); - // assertObjectNotNull(tn.getNsiInfo()); - // assertObjectNotNull(tn.getNsiInfo().getNsiId()); - // nsiId = tn.getNsiInfo().getNsiId(); - allocateReq = marshal(tn); - // allocateUrl = AllocateTnNssi.URL; - break; - - } - - RestResponse rsp = restUtil.sendRequest(allocateUrl, POST, allocateReq, nssmiAllocate.getEsrInfo()); - assertObjectNotNull(rsp); - - if (valueOf(rsp.getStatus()).startsWith("2")) { - NssiResponse allocateRes = unMarshal(rsp.getResponseContent(), NssiResponse.class); - - ResourceOperationStatus status = - new ResourceOperationStatus(allocateRes.getNssiId(), allocateRes.getJobId(), nsiId); - logger.info("save segment and operaton info -> begin"); - updateDbStatus(status, rsp.getStatus(), STARTED, ALLOCATE_NSS_SUCCESS); - logger.info("save segment and operation info -> end"); - } - return rsp; - } - - - - public RestResponse createNssi(NssiCreateRequest nssiCreate) throws ApplicationException { - - assertObjectNotNull(nssiCreate.getEsrInfo()); - assertObjectNotNull(nssiCreate.getEsrInfo().getNetworkType()); - assertObjectNotNull(nssiCreate.getEsrInfo().getVendor()); - - String nsiId = null; - String createReq = null; - String createUrl = null; - logger.info("Create Nssi for " + nssiCreate.getEsrInfo().getNetworkType() + " Network has begun"); - - switch (nssiCreate.getEsrInfo().getNetworkType()) { - case CORE: - CreateCnNssi cn = nssiCreate.getCreateCnNssi(); - nsiId = cn.getNsiInfo().getNsiId(); - assertObjectNotNull(nsiId); - createReq = marshal(cn); - createUrl = AllocateCnNssi.URL; - break; - - case ACCESS: - case TRANSPORT: - throw new ApplicationException(1, "Create Nssi doesn't " + "support the Network type:" - + nssiCreate.getEsrInfo().getNetworkType()); - } - RestResponse rsp = restUtil.sendRequest(createUrl, POST, createReq, nssiCreate.getEsrInfo()); - assertObjectNotNull(rsp); - - if (valueOf(rsp.getStatus()).startsWith("2")) { - NssiResponse allocateRes = unMarshal(rsp.getResponseContent(), NssiResponse.class); - - ResourceOperationStatus status = - new ResourceOperationStatus(allocateRes.getNssiId(), allocateRes.getJobId(), nsiId); - logger.info("save segment and operaton info -> begin"); - updateDbStatus(status, rsp.getStatus(), STARTED, CREATE_NSS_SUCCESS); - logger.info("save segment and operaton info -> end"); - } - return rsp; - } - - @Deprecated - public RestResponse deAllocateNssi(NssiDeAllocateRequest nssiDeallocate, String sliceId) - throws ApplicationException { - - assertObjectNotNull(nssiDeallocate.getEsrInfo()); - assertObjectNotNull(nssiDeallocate.getEsrInfo().getNetworkType()); - assertObjectNotNull(nssiDeallocate.getEsrInfo().getVendor()); - - DeAllocateNssi deAllocate = nssiDeallocate.getDeAllocateNssi(); - - assertObjectNotNull(sliceId); - assertObjectNotNull(deAllocate.getNssiId()); - assertObjectNotNull(deAllocate.getNsiId()); - - String deallocateUrl = formTnAndAnUrl(nssiDeallocate.getEsrInfo(), DeAllocateNssi.URL, sliceId); - String deAllocateReq = marshal(deAllocate); - - logger.info("Deallocate Nssi has begun"); - - RestResponse rsp = restUtil.sendRequest(deallocateUrl, DELETE, deAllocateReq, nssiDeallocate.getEsrInfo()); - assertObjectNotNull(rsp); - - if (valueOf(rsp.getStatus()).startsWith("2")) { - NssiResponse res = unMarshal(rsp.getResponseContent(), NssiResponse.class); - - ResourceOperationStatus status = - new ResourceOperationStatus(deAllocate.getNssiId(), res.getJobId(), deAllocate.getNsiId()); - logger.info("save segment and operaton info -> begin"); - updateDbStatus(status, rsp.getStatus(), STARTED, DEALLOCATE_NSS_SUCCESS); - logger.info("save segment and operaton info -> end"); - } - return rsp; - } - - private String formTnAndAnUrl(EsrInfo esrInfo, String origUrl, String variable) { - - origUrl = formatUrl(origUrl, variable); - String[] val; - - switch (esrInfo.getNetworkType()) { - - case TRANSPORT: - val = origUrl.split("v1"); - return val[0] + "v1/tn" + val[1]; - - case ACCESS: - val = origUrl.split("v1"); - return val[0] + "v1/an" + val[1]; - - case CORE: - return origUrl; - } - return origUrl; - } - - private String formatUrl(String origUrl, String variable) { - - if (variable != null) { - origUrl = String.format(origUrl, variable); - } - return origUrl; - } - - - public RestResponse terminateNssi(NssiTerminateRequest nssiTerminate, String nssiId) throws ApplicationException { - - assertObjectNotNull(nssiTerminate.getEsrInfo()); - assertObjectNotNull(nssiTerminate.getEsrInfo().getNetworkType()); - assertObjectNotNull(nssiTerminate.getEsrInfo().getVendor()); - - TerminateNssi terminate = nssiTerminate.getTerminateNssi(); - - assertObjectNotNull(nssiId); - assertObjectNotNull(terminate.getNsiId()); - - logger.info("Terminate Nssi has begun"); - - String terminateUrl = formTnAndAnUrl(nssiTerminate.getEsrInfo(), TerminateNssi.URL, nssiId); - String terminateReq = marshal(terminate); - - RestResponse rsp = restUtil.sendRequest(terminateUrl, DELETE, terminateReq, nssiTerminate.getEsrInfo()); - assertObjectNotNull(rsp); - - if (valueOf(rsp.getStatus()).startsWith("2")) { - NssiResponse res = unMarshal(rsp.getResponseContent(), NssiResponse.class); - - ResourceOperationStatus status = new ResourceOperationStatus(nssiId, res.getJobId(), terminate.getNsiId()); - logger.info("save segment and operaton info -> begin"); - updateDbStatus(status, rsp.getStatus(), STARTED, DEALLOCATE_NSS_SUCCESS); - logger.info("save segment and operaton info -> end"); - } - return rsp; - } - - public RestResponse activateNssi(NssiActDeActRequest nssiActivate, String snssai) throws ApplicationException { - - assertObjectNotNull(nssiActivate.getEsrInfo()); - assertObjectNotNull(nssiActivate.getEsrInfo().getNetworkType()); - assertObjectNotNull(nssiActivate.getEsrInfo().getVendor()); - - ActDeActNssi activate = nssiActivate.getActDeActNssi(); - - assertObjectNotNull(snssai); - assertObjectNotNull(activate.getNssiId()); - assertObjectNotNull(activate.getNsiId()); - - logger.info("Activate Nssi has begun"); - - String activateUrl = formTnAndAnUrl(nssiActivate.getEsrInfo(), ACT_URL, snssai); - String activateReq = marshal(activate); - - RestResponse rsp = restUtil.sendRequest(activateUrl, PUT, activateReq, nssiActivate.getEsrInfo()); - assertObjectNotNull(rsp); - - if (valueOf(rsp.getStatus()).startsWith("2")) { - NssiResponse activateRes = unMarshal(rsp.getResponseContent(), NssiResponse.class); - - ResourceOperationStatus status = - new ResourceOperationStatus(activate.getNssiId(), activateRes.getJobId(), activate.getNsiId()); - logger.info("save segment and operaton info -> begin"); - updateDbStatus(status, rsp.getStatus(), STARTED, ACTIVATE_NSS_SUCCESS); - logger.info("save segment and operaton info -> end"); - } - return rsp; - } - - public RestResponse deActivateNssi(NssiActDeActRequest nssiDeActivate, String snssai) throws ApplicationException { - - assertObjectNotNull(nssiDeActivate.getEsrInfo()); - assertObjectNotNull(nssiDeActivate.getEsrInfo().getNetworkType()); - assertObjectNotNull(nssiDeActivate.getEsrInfo().getVendor()); - - logger.info("Deactivate Nssi has begun"); - - ActDeActNssi deActivate = nssiDeActivate.getActDeActNssi(); - - assertObjectNotNull(snssai); - assertObjectNotNull(deActivate.getNssiId()); - assertObjectNotNull(deActivate.getNsiId()); - - String deActivateUrl = formTnAndAnUrl(nssiDeActivate.getEsrInfo(), DE_ACT_URL, snssai); - String deActivateReq = marshal(deActivate); - - RestResponse rsp = restUtil.sendRequest(deActivateUrl, PUT, deActivateReq, nssiDeActivate.getEsrInfo()); - assertObjectNotNull(rsp); - - if (valueOf(rsp.getStatus()).startsWith("2")) { - NssiResponse deActivateRes = unMarshal(rsp.getResponseContent(), NssiResponse.class); - - ResourceOperationStatus status = new ResourceOperationStatus(deActivate.getNssiId(), - deActivateRes.getJobId(), deActivate.getNsiId()); - logger.info("save segment and operaton info -> begin"); - updateDbStatus(status, rsp.getStatus(), STARTED, DEACTIVATE_NSS_SUCCESS); - logger.info("save segment and operaton info -> end"); - } - return rsp; - } - - public RestResponse queryJobStatus(JobStatusRequest jobReq, String jobId) throws ApplicationException { - - assertObjectNotNull(jobReq.getEsrInfo()); - assertObjectNotNull(jobReq.getEsrInfo().getNetworkType()); - assertObjectNotNull(jobReq.getEsrInfo().getVendor()); - assertObjectNotNull(jobId); - assertObjectNotNull(jobReq.getNssiId()); - assertObjectNotNull(jobReq.getNsiId()); - - logger.info("Query job status has begun"); - - ResourceOperationStatus status = new ResourceOperationStatus(jobReq.getNssiId(), jobId, jobReq.getNsiId()); - status = rscOperStatusRepo.findOne(Example.of(status)) - .orElseThrow(() -> new ApplicationException(404, "Cannot Find Operation Status")); - - String statusUrl = formatUrl(JobStatusRequest.URL, jobId); - if (jobReq.getResponseId() != null) { - statusUrl = statusUrl + "?responseId=" + jobReq.getResponseId(); - } - - RestResponse rsp = restUtil.sendRequest(statusUrl, GET, "", jobReq.getEsrInfo()); - assertObjectNotNull(rsp); - - if (!valueOf(rsp.getStatus()).startsWith("2")) { - updateDbStatus(status, rsp.getStatus(), ERROR, QUERY_JOB_STATUS_FAILED); - throw new ApplicationException(500, QUERY_JOB_STATUS_FAILED); - } - - ResponseDescriptor rspDesc = - unMarshal(rsp.getResponseContent(), JobStatusResponse.class).getResponseDescriptor(); - logger.info("save segment and operaton info -> begin"); - updateRequestDbJobStatus(rspDesc, status, rsp); - logger.info("save segment and operaton info -> end"); - return rsp; - } - - - public RestResponse updateNssi(NssiUpdateRequest nssiUpdate, String sliceId) throws ApplicationException { - - assertObjectNotNull(nssiUpdate.getEsrInfo()); - assertObjectNotNull(nssiUpdate.getEsrInfo().getNetworkType()); - assertObjectNotNull(nssiUpdate.getEsrInfo().getVendor()); - assertObjectNotNull(sliceId); - - String nsiId = null; - String nssiId = null; - String updateReq = null; - String updateUrl = null; - logger.info("Update Nssi for " + nssiUpdate.getEsrInfo().getNetworkType() + " Network has begun"); - - switch (nssiUpdate.getEsrInfo().getNetworkType()) { - case CORE: - UpdateCnNssi cn = nssiUpdate.getUpdateCnNssi(); - nsiId = cn.getNsiInfo().getNsiId(); - nssiId = cn.getNssiId(); - assertObjectNotNull(nsiId); - assertObjectNotNull(nssiId); - updateReq = marshal(cn); - updateUrl = formatUrl(UpdateCnNssi.URL, sliceId); - break; - - case ACCESS: - case TRANSPORT: - throw new ApplicationException(1, "Update Nssi doesn't " + "support the Network type:" - + nssiUpdate.getEsrInfo().getNetworkType()); - } - - RestResponse rsp = restUtil.sendRequest(updateUrl, PUT, updateReq, nssiUpdate.getEsrInfo()); - assertObjectNotNull(rsp); - - if (valueOf(rsp.getStatus()).startsWith("2")) { - NssiResponse allocateRes = unMarshal(rsp.getResponseContent(), NssiResponse.class); - - ResourceOperationStatus status = new ResourceOperationStatus(nssiId, allocateRes.getJobId(), nsiId); - logger.info("save segment and operaton info -> begin"); - updateDbStatus(status, rsp.getStatus(), STARTED, ALLOCATE_NSS_SUCCESS); - logger.info("save segment and operaton info -> end"); - } - return rsp; - } - - public RestResponse updateNssiById(NssiUpdateRequestById nssiUpdateById, String nssiId) - throws ApplicationException { - - assertObjectNotNull(nssiUpdateById.getEsrInfo()); - assertObjectNotNull(nssiUpdateById.getEsrInfo().getNetworkType()); - assertObjectNotNull(nssiUpdateById.getEsrInfo().getVendor()); - assertObjectNotNull(nssiId); - - String nsiId = null; - String updateReq = null; - String updateUrl = null; - logger.info("Update Nssi by ID for " + nssiUpdateById.getEsrInfo().getNetworkType() + " Network has begun"); - - switch (nssiUpdateById.getEsrInfo().getNetworkType()) { - case CORE: - UpdateCnNssiById cn = nssiUpdateById.getUpdateCnNssiById(); - nsiId = cn.getNsiInfo().getNsiId(); - assertObjectNotNull(nsiId); - updateReq = marshal(cn); - updateUrl = formatUrl(UpdateCnNssiById.URL, nssiId); - break; - - case ACCESS: - case TRANSPORT: - throw new ApplicationException(1, "Update Nssi doesn't " + "support the Network type:" - + nssiUpdateById.getEsrInfo().getNetworkType()); - } - - RestResponse rsp = restUtil.sendRequest(updateUrl, PUT, updateReq, nssiUpdateById.getEsrInfo()); - assertObjectNotNull(rsp); - - if (valueOf(rsp.getStatus()).startsWith("2")) { - NssiResponse allocateRes = unMarshal(rsp.getResponseContent(), NssiResponse.class); - - ResourceOperationStatus status = new ResourceOperationStatus(nssiId, allocateRes.getJobId(), nsiId); - logger.info("save segment and operaton info -> begin"); - updateDbStatus(status, rsp.getStatus(), STARTED, ALLOCATE_NSS_SUCCESS); - logger.info("save segment and operaton info -> end"); - } - return rsp; - } - - public RestResponse queryNssi(String vendor, String type, String sliceId) throws ApplicationException { - - logger.info("Query Nssi has begun"); - String getUrl = formatUrl(QUERY, sliceId); - EsrInfo esr = new EsrInfo(); - esr.setVendor(vendor); - esr.setNetworkType(NetworkType.valueOf(type)); - RestResponse rsp = restUtil.sendRequest(getUrl, GET, "", esr); - assertObjectNotNull(rsp); - return rsp; - } - - public RestResponse queryNssiById(String vendor, String type, String nssiId) throws ApplicationException { - - logger.info("Query Nssi by ID has begun"); - String getUrl = formatUrl(QUERY_BY_ID, nssiId); - EsrInfo esr = new EsrInfo(); - esr.setVendor(vendor); - esr.setNetworkType(NetworkType.valueOf(type)); - RestResponse rsp = restUtil.sendRequest(getUrl, GET, "", esr); - assertObjectNotNull(rsp); - return rsp; - } - - private void updateRequestDbJobStatus(ResponseDescriptor rspDesc, ResourceOperationStatus status, RestResponse rsp) - throws ApplicationException { - - switch (fromString(rspDesc.getStatus())) { - - case STARTED: - updateDbStatus(status, rsp.getStatus(), STARTED, QUERY_JOB_STATUS_SUCCESS); - break; - - case ERROR: - updateDbStatus(status, rsp.getStatus(), ERROR, QUERY_JOB_STATUS_FAILED); - throw new ApplicationException(500, QUERY_JOB_STATUS_FAILED); - - case FINISHED: - if (rspDesc.getProgress() == 100) { - updateDbStatus(status, rsp.getStatus(), FINISHED, QUERY_JOB_STATUS_SUCCESS); - } - break; - - case PROCESSING: - updateDbStatus(status, rsp.getStatus(), PROCESSING, QUERY_JOB_STATUS_SUCCESS); - break; - } - } - - private void updateDbStatus(ResourceOperationStatus status, int rspStatus, JobStatus jobStatus, - String description) { - status.setErrorCode(valueOf(rspStatus)); - status.setStatus(jobStatus.toString()); - status.setStatusDescription(description); - logger.info("Updating DB status"); - rscOperStatusRepo.save(status); - logger.info("Updating successful"); - } - - public void setRscOperStatusRepo(ResourceOperationStatusRepository rscOperStatusRepo) { - this.rscOperStatusRepo = rscOperStatusRepo; - } - - public void setRestUtil(RestUtil restUtil) { - this.restUtil = restUtil; - } -} diff --git a/adapters/mso-nssmf-adapter/src/main/java/org/onap/so/adapters/nssmf/rest/TrustAllHostNameVerifier.java b/adapters/mso-nssmf-adapter/src/main/java/org/onap/so/adapters/nssmf/rest/TrustAllHostNameVerifier.java deleted file mode 100644 index fc0f3ddde5..0000000000 --- a/adapters/mso-nssmf-adapter/src/main/java/org/onap/so/adapters/nssmf/rest/TrustAllHostNameVerifier.java +++ /dev/null @@ -1,33 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * ONAP - SO - * ================================================================================ - * Copyright (C) 2020 Huawei Technologies Co., Ltd. All rights reserved. - * ================================================================================ - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * 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. - * ============LICENSE_END========================================================= - */ - -package org.onap.so.adapters.nssmf.rest; - -import javax.net.ssl.HostnameVerifier; -import javax.net.ssl.SSLSession; - -@Deprecated -public class TrustAllHostNameVerifier implements HostnameVerifier { - - public boolean verify(String hostname, SSLSession session) { - return true; - } - -} diff --git a/adapters/mso-nssmf-adapter/src/main/java/org/onap/so/adapters/nssmf/service/NssmfManagerService.java b/adapters/mso-nssmf-adapter/src/main/java/org/onap/so/adapters/nssmf/service/NssmfManagerService.java deleted file mode 100644 index 92fe5576dd..0000000000 --- a/adapters/mso-nssmf-adapter/src/main/java/org/onap/so/adapters/nssmf/service/NssmfManagerService.java +++ /dev/null @@ -1,45 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * ONAP - SO - * ================================================================================ - # Copyright (c) 2020, CMCC Technologies Co., Ltd. - # - # 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. - * ============LICENSE_END========================================================= - */ - -package org.onap.so.adapters.nssmf.service; - -import org.onap.so.adapters.nssmf.annotation.ServiceLogger; -import org.onap.so.beans.nsmf.*; -import org.springframework.http.ResponseEntity; -import org.springframework.stereotype.Service; - -@Service -@ServiceLogger -public interface NssmfManagerService { - ResponseEntity allocateNssi(NssmfAdapterNBIRequest allocateRequest); - - ResponseEntity deAllocateNssi(NssmfAdapterNBIRequest allocateRequest, String sliceProfileId); - - ResponseEntity activateNssi(NssmfAdapterNBIRequest deActRequest, String snssai); - - ResponseEntity deActivateNssi(NssmfAdapterNBIRequest nssiDeActivate, String snssai); - - ResponseEntity queryJobStatus(NssmfAdapterNBIRequest jobReq, String jobId); - - ResponseEntity queryNSSISelectionCapability(NssmfAdapterNBIRequest nbiRequest); - - ResponseEntity querySubnetCapability(NssmfAdapterNBIRequest nbiRequest); - -} diff --git a/adapters/mso-nssmf-adapter/src/main/java/org/onap/so/adapters/nssmf/service/impl/NssmfManagerServiceImpl.java b/adapters/mso-nssmf-adapter/src/main/java/org/onap/so/adapters/nssmf/service/impl/NssmfManagerServiceImpl.java deleted file mode 100644 index 5b53856f2f..0000000000 --- a/adapters/mso-nssmf-adapter/src/main/java/org/onap/so/adapters/nssmf/service/impl/NssmfManagerServiceImpl.java +++ /dev/null @@ -1,143 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * ONAP - SO - * ================================================================================ - # Copyright (c) 2020, CMCC Technologies Co., Ltd. - # - # 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. - * ============LICENSE_END========================================================= - */ - -package org.onap.so.adapters.nssmf.service.impl; - -import org.apache.commons.lang3.StringUtils; -import org.onap.so.adapters.nssmf.annotation.ServiceLogger; -import org.onap.so.adapters.nssmf.config.NssmfAdapterConfig; -import org.onap.so.adapters.nssmf.enums.ActionType; -import org.onap.so.adapters.nssmf.exceptions.ApplicationException; -import org.onap.so.adapters.nssmf.manager.NssmfManagerBuilder; -import org.onap.so.adapters.nssmf.entity.RestResponse; -import org.onap.so.adapters.nssmf.manager.NssmfManager; -import org.onap.so.adapters.nssmf.service.NssmfManagerService; -import org.onap.so.adapters.nssmf.util.RestUtil; -import org.onap.so.beans.nsmf.*; -import org.onap.so.db.request.data.repository.ResourceOperationStatusRepository; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.http.ResponseEntity; -import org.springframework.stereotype.Service; - - -@Service -@ServiceLogger -public class NssmfManagerServiceImpl implements NssmfManagerService { - - @Autowired - private RestUtil restUtil; - - @Autowired - private ResourceOperationStatusRepository repository; - - @Autowired - private NssmfAdapterConfig nssmfAdapterConfig; - - @Override - public ResponseEntity allocateNssi(NssmfAdapterNBIRequest request) { - try { - - if (StringUtils.isNotBlank(request.getServiceInfo().getNssiId())) { - return buildResponse(buildNssmfManager(request, ActionType.MODIFY).modifyNssi(request)); - } - - return buildResponse(buildNssmfManager(request, ActionType.ALLOCATE).allocateNssi(request)); - - } catch (ApplicationException e) { - return e.buildErrorResponse(); - } - } - - @Override - public ResponseEntity deAllocateNssi(NssmfAdapterNBIRequest request, String sliceProfileId) { - try { - return buildResponse( - buildNssmfManager(request, ActionType.DEALLOCATE).deAllocateNssi(request, sliceProfileId)); - } catch (ApplicationException e) { - return e.buildErrorResponse(); - } - } - - @Override - public ResponseEntity activateNssi(NssmfAdapterNBIRequest request, String snssai) { - try { - return buildResponse(buildNssmfManager(request, ActionType.ACTIVATE).activateNssi(request, snssai)); - } catch (ApplicationException e) { - return e.buildErrorResponse(); - } - } - - @Override - public ResponseEntity deActivateNssi(NssmfAdapterNBIRequest request, String snssai) { - try { - return buildResponse(buildNssmfManager(request, ActionType.DEACTIVATE).deActivateNssi(request, snssai)); - } catch (ApplicationException e) { - return e.buildErrorResponse(); - } - } - - @Override - public ResponseEntity queryJobStatus(NssmfAdapterNBIRequest jobReq, String jobId) { - try { - return buildResponse(buildNssmfManager(jobReq, ActionType.QUERY_JOB_STATUS).queryJobStatus(jobReq, jobId)); - } catch (ApplicationException e) { - return e.buildErrorResponse(); - } - } - - @Override - public ResponseEntity queryNSSISelectionCapability(NssmfAdapterNBIRequest nbiRequest) { - EsrInfo esrInfo = nbiRequest.getEsrInfo(); - try { - return buildResponse(buildNssmfManager(esrInfo, ActionType.QUERY_NSSI_SELECTION_CAPABILITY, null) - .queryNSSISelectionCapability(nbiRequest)); - } catch (ApplicationException e) { - return e.buildErrorResponse(); - } - } - - @Override - public ResponseEntity querySubnetCapability(NssmfAdapterNBIRequest nbiRequest) { - EsrInfo esrInfo = nbiRequest.getEsrInfo(); - try { - return buildResponse(buildNssmfManager(esrInfo, ActionType.QUERY_SUB_NET_CAPABILITY, null) - .querySubnetCapability(nbiRequest)); - } catch (ApplicationException e) { - return e.buildErrorResponse(); - } - } - - private ResponseEntity buildResponse(RestResponse rsp) { - return ResponseEntity.status(rsp.getStatus()).body(rsp.getResponseContent()); - } - - - private NssmfManager buildNssmfManager(NssmfAdapterNBIRequest request, ActionType actionType) - throws ApplicationException { - return buildNssmfManager(request.getEsrInfo(), actionType, request.getServiceInfo()); - } - - private NssmfManager buildNssmfManager(EsrInfo esrInfo, ActionType actionType, ServiceInfo serviceInfo) - throws ApplicationException { - - return new NssmfManagerBuilder(esrInfo).setActionType(actionType).setRepository(repository) - .setRestUtil(restUtil).setAdapterConfig(nssmfAdapterConfig).setServiceInfo(serviceInfo).build(); - } -} diff --git a/adapters/mso-nssmf-adapter/src/main/java/org/onap/so/adapters/nssmf/util/NssmfAdapterUtil.java b/adapters/mso-nssmf-adapter/src/main/java/org/onap/so/adapters/nssmf/util/NssmfAdapterUtil.java deleted file mode 100644 index 090417ddc2..0000000000 --- a/adapters/mso-nssmf-adapter/src/main/java/org/onap/so/adapters/nssmf/util/NssmfAdapterUtil.java +++ /dev/null @@ -1,123 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * ONAP - SO - * ================================================================================ - * Copyright (C) 2020 Huawei Technologies Co., Ltd. All rights reserved. - * ================================================================================ - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * 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. - * ============LICENSE_END========================================================= - */ - -package org.onap.so.adapters.nssmf.util; - -import com.fasterxml.jackson.databind.ObjectMapper; -import java.io.IOException; -import org.onap.so.adapters.nssmf.enums.ActionType; -import org.onap.so.adapters.nssmf.exceptions.ApplicationException; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -import org.onap.logging.filter.base.ErrorCode; -import org.springframework.stereotype.Component; -import static org.onap.so.logger.LoggingAnchor.THREE; -import static org.onap.so.logger.MessageEnum.RA_NS_EXC; - -public class NssmfAdapterUtil { - - private static final Logger LOGGER = LoggerFactory.getLogger(NssmfAdapterUtil.class); - - public static final int BAD_REQUEST = 400; - - private static final String UNMARSHAL_FAIL_MSG = "Failed to unmarshal json"; - - private static final String MARSHAL_FAIL_MSG = "Failed to marshal object"; - - private static final ObjectMapper MAPPER = new ObjectMapper(); - - public static class StatusDesc { - - public static final String ALLOCATE_NSS_SUCCESS = "Allocating nss is " + "successful"; - - public static final String MODIFY_NSS_SUCCESS = "Modify nss is " + "successful"; - - public static final String CREATE_NSS_SUCCESS = "Creating nss is " + "successful"; - - public static final String DEALLOCATE_NSS_SUCCESS = "Deallocate nss " + "is successful"; - - public static final String ACTIVATE_NSS_SUCCESS = "Activate nss " + "is successful"; - - public static final String DEACTIVATE_NSS_SUCCESS = "Deactivate nss " + "is successful"; - - public static final String QUERY_JOB_STATUS_FAILED = "Query job " + "status failed"; - - public static final String QUERY_JOB_STATUS_SUCCESS = "Query job " + "status is successful"; - - private StatusDesc() { - - } - } - - private NssmfAdapterUtil() { - - } - - public static void assertObjectNotNull(Object object) throws ApplicationException { - if (null == object) { - LOGGER.error("Object is null."); - throw new ApplicationException(BAD_REQUEST, "An object is null."); - } - } - - public static <T> T unMarshal(String jsonstr, Class<T> type) throws ApplicationException { - try { - return MAPPER.readValue(jsonstr, type); - } catch (IOException e) { - LOGGER.error(THREE, RA_NS_EXC.toString(), ErrorCode.BusinessProcessError.getValue(), UNMARSHAL_FAIL_MSG, e); - throw new ApplicationException(BAD_REQUEST, UNMARSHAL_FAIL_MSG); - } - } - - public static String marshal(Object srcObj) throws ApplicationException { - try { - return MAPPER.writerWithDefaultPrettyPrinter().writeValueAsString(srcObj); - } catch (IOException e) { - LOGGER.error(THREE, RA_NS_EXC.toString(), ErrorCode.BusinessProcessError.getValue(), MARSHAL_FAIL_MSG, e); - throw new ApplicationException(BAD_REQUEST, MARSHAL_FAIL_MSG); - } - } - - - public static String getStatusDesc(ActionType actionType) { - String desc = ""; - switch (actionType) { - case ALLOCATE: - desc = StatusDesc.ALLOCATE_NSS_SUCCESS; - break; - case DEALLOCATE: - desc = StatusDesc.DEALLOCATE_NSS_SUCCESS; - break; - case ACTIVATE: - desc = StatusDesc.ACTIVATE_NSS_SUCCESS; - break; - case DEACTIVATE: - desc = StatusDesc.DEACTIVATE_NSS_SUCCESS; - break; - case MODIFY: - desc = StatusDesc.MODIFY_NSS_SUCCESS; - break; - default: - break; - } - - return desc; - } -} diff --git a/adapters/mso-nssmf-adapter/src/main/java/org/onap/so/adapters/nssmf/util/RestUtil.java b/adapters/mso-nssmf-adapter/src/main/java/org/onap/so/adapters/nssmf/util/RestUtil.java deleted file mode 100644 index 60bf423ed8..0000000000 --- a/adapters/mso-nssmf-adapter/src/main/java/org/onap/so/adapters/nssmf/util/RestUtil.java +++ /dev/null @@ -1,358 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * ONAP - SO - * ================================================================================ - * Copyright (C) 2020 Huawei Technologies Co., Ltd. All rights reserved. - * ================================================================================ - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * 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. - * ============LICENSE_END========================================================= - */ - -package org.onap.so.adapters.nssmf.util; - -import javax.net.ssl.*; -import javax.ws.rs.core.UriBuilder; -import java.net.SocketTimeoutException; -import java.net.URI; -import org.apache.http.Header; -import org.apache.http.HttpResponse; -import org.apache.http.client.HttpClient; -import org.apache.http.client.config.RequestConfig; -import org.apache.http.client.methods.*; -import org.apache.http.conn.ConnectTimeoutException; -import org.apache.http.conn.ssl.SSLConnectionSocketFactory; -import org.apache.http.entity.StringEntity; -import org.apache.http.impl.client.HttpClients; -import org.apache.http.message.BasicHeader; -import org.apache.http.util.EntityUtils; -import org.onap.aai.domain.yang.*; -import org.onap.so.adapters.nssmf.exceptions.ApplicationException; -import org.onap.so.adapters.nssmf.extclients.aai.AaiServiceProvider; -import org.onap.so.adapters.nssmf.entity.TokenRequest; -import org.onap.so.adapters.nssmf.entity.TokenResponse; -import org.onap.so.adapters.nssmf.enums.HttpMethod; -import org.onap.so.adapters.nssmf.entity.NssmfInfo; -import org.onap.so.adapters.nssmf.entity.RestResponse; -import org.onap.so.beans.nsmf.EsrInfo; -import org.onap.so.beans.nsmf.ServiceInfo; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Component; -import static org.apache.http.entity.ContentType.APPLICATION_JSON; -import static org.onap.so.adapters.nssmf.enums.HttpMethod.POST; -import static org.onap.so.adapters.nssmf.util.NssmfAdapterUtil.BAD_REQUEST; -import static org.onap.so.adapters.nssmf.util.NssmfAdapterUtil.marshal; -import static org.onap.so.adapters.nssmf.util.NssmfAdapterUtil.unMarshal; -import static org.onap.logging.filter.base.ErrorCode.AvailabilityError; -import static org.onap.so.logger.LoggingAnchor.FOUR; -import static org.onap.so.logger.MessageEnum.RA_NS_EXC; - -@Component -public class RestUtil { - - private static final Logger logger = LoggerFactory.getLogger(RestUtil.class); - - private static final int DEFAULT_TIME_OUT = 60000; - - private static final String NSSMI_ADAPTER = "NSSMI Adapter"; - - private static final String TOKEN_URL = "/api/rest/securityManagement/v1" + "/oauth/token"; - - @Autowired - private AaiServiceProvider aaiSvcProv; - - public void createServiceInstance(ServiceInstance serviceInstance, ServiceInfo serviceInfo) { - aaiSvcProv.invokeCreateServiceInstance(serviceInstance, serviceInfo.getGlobalSubscriberId(), - serviceInfo.getSubscriptionServiceType(), serviceInfo.getNssiId()); - } - - public void updateServiceInstance(ServiceInstance serviceInstance, ServiceInfo serviceInfo) { - aaiSvcProv.invokeUpdateServiceInstance(serviceInstance, serviceInfo.getGlobalSubscriberId(), - serviceInfo.getSubscriptionServiceType(), serviceInfo.getNssiId()); - } - - public ServiceInstance getServiceInstance(ServiceInfo serviceInfo) { - return aaiSvcProv.invokeGetServiceInstance(serviceInfo.getGlobalSubscriberId(), - serviceInfo.getSubscriptionServiceType(), serviceInfo.getNssiId()); - } - - public void deleteServiceInstance(ServiceInfo serviceInfo) { - aaiSvcProv.invokeDeleteServiceInstance(serviceInfo.getGlobalSubscriberId(), - serviceInfo.getSubscriptionServiceType(), serviceInfo.getNssiId()); - } - - public NssmfInfo getNssmfHost(EsrInfo esrInfo) throws ApplicationException { - EsrThirdpartySdncList sdncList = aaiSvcProv.invokeGetThirdPartySdncList(); - if (sdncList != null && sdncList.getEsrThirdpartySdnc() != null) { - for (EsrThirdpartySdnc sdncEsr : sdncList.getEsrThirdpartySdnc()) { - - EsrSystemInfoList sysInfoList = - aaiSvcProv.invokeGetThirdPartySdncEsrSystemInfo(sdncEsr.getThirdpartySdncId()); - - if (sysInfoList != null && sysInfoList.getEsrSystemInfo() != null) { - for (EsrSystemInfo esr : sysInfoList.getEsrSystemInfo()) { - if (esr != null && esr.getType().equals(esrInfo.getNetworkType().getNetworkType()) - && esr.getVendor().equals(esrInfo.getVendor())) { - logger.info("Found an entry with vendor name " + esrInfo.getVendor() + " and network type " - + esrInfo.getNetworkType() + " in ESR."); - NssmfInfo nssmfInfo = new NssmfInfo(); - nssmfInfo.setIpAddress(esr.getIpAddress()); - nssmfInfo.setPort(esr.getPort()); - nssmfInfo.setCacert(esr.getSslCacert()); - nssmfInfo.setUserName(esr.getUserName()); - nssmfInfo.setPassword(esr.getPassword()); - String endPoint = UriBuilder.fromPath("").host(esr.getIpAddress()) - .port(Integer.valueOf(esr.getPort())).scheme("https").build().toString(); - nssmfInfo.setUrl(endPoint); - return nssmfInfo; - } - } - } - - } - } - - throw new ApplicationException(BAD_REQUEST, "ESR information is improper"); - } - - - public String getToken(NssmfInfo nssmfInfo) throws ApplicationException { - - - TokenRequest req = new TokenRequest(); - req.setGrantType("password"); - req.setUserName(nssmfInfo.getUserName()); - req.setValue(nssmfInfo.getPassword()); - - String tokenReq = marshal(req); - - logger.info("Sending token request to NSSMF: " + tokenReq); - RestResponse tokenRes = send(nssmfInfo.getUrl() + TOKEN_URL, POST, tokenReq, null); - - TokenResponse res = unMarshal(tokenRes.getResponseContent(), TokenResponse.class); - - return res.getAccessToken(); - } - - - public RestResponse send(String url, HttpMethod methodType, String content, Header header) { - - HttpRequestBase req = null; - HttpResponse res = null; - - logger.debug("Beginning to send message {}: {}", methodType, url); - - try { - int timeout = DEFAULT_TIME_OUT; - - RequestConfig config = RequestConfig.custom().setSocketTimeout(timeout).setConnectTimeout(timeout) - .setConnectionRequestTimeout(timeout).build(); - logger.debug("Sending request to NSSMF: " + content); - req = getHttpReq(url, methodType, header, config, content); - res = getHttpsClient().execute(req); - - String resContent = null; - if (res.getEntity() != null) { - resContent = EntityUtils.toString(res.getEntity(), "UTF-8"); - } - - int statusCode = res.getStatusLine().getStatusCode(); - String statusMessage = res.getStatusLine().getReasonPhrase(); - logger.info("NSSMF Response: {} {}", statusCode, - statusMessage + (resContent == null ? "" : System.lineSeparator() + resContent)); - - if (res.getStatusLine().getStatusCode() >= 300) { - String errMsg = "{\n \"errorCode\": " + res.getStatusLine().getStatusCode() - + "\n \"errorDescription\": " + statusMessage + "\n}"; - logError(errMsg); - return createResponse(statusCode, errMsg); - } - if (null != req) { - req.reset(); - } - req = null; - - return createResponse(statusCode, resContent); - - } catch (SocketTimeoutException | ConnectTimeoutException e) { - String errMsg = "Request to NSSMF timed out"; - logError(errMsg, e); - return createResponse(408, errMsg); - } catch (Exception e) { - String errMsg = "Error processing request to NSSMF"; - logError(errMsg, e); - return createResponse(500, errMsg); - } finally { - if (res != null) { - try { - EntityUtils.consume(res.getEntity()); - } catch (Exception e) { - logger.debug("Exception :", e); - } - } - if (req != null) { - try { - req.reset(); - } catch (Exception e) { - logger.debug("Exception :", e); - } - } - } - } - - public RestResponse createResponse(int statusCode, String errMsg) { - RestResponse restResponse = new RestResponse(); - restResponse.setStatus(statusCode); - restResponse.setResponseContent(errMsg); - return restResponse; - } - - private HttpRequestBase getHttpReq(String url, HttpMethod method, Header header, RequestConfig config, - String content) throws ApplicationException { - HttpRequestBase base; - switch (method) { - case POST: - HttpPost post = new HttpPost(url); - post.setEntity(new StringEntity(content, APPLICATION_JSON)); - base = post; - break; - - case GET: - HttpGetWithBody get = new HttpGetWithBody(url); - if (content != null) { - get.setEntity(new StringEntity(content, APPLICATION_JSON)); - } - base = get; - break; - - case PUT: - HttpPut put = new HttpPut(url); - put.setEntity(new StringEntity(content, APPLICATION_JSON)); - base = put; - break; - - case PATCH: - base = new HttpPatch(url); - break; - - case DELETE: - HttpDeleteWithBody delete = new HttpDeleteWithBody(url); - if (content != null) { - delete.setEntity(new StringEntity(content, APPLICATION_JSON)); - } - base = delete; - break; - default: - throw new ApplicationException(404, "invalid method: " + method); - - } - base.setConfig(config); - if (header != null) { - base.setHeader(header); - } - return base; - } - - public RestResponse sendRequest(String allocateUrl, HttpMethod post, String allocateReq, EsrInfo esrInfo) - throws ApplicationException { - NssmfInfo nssmfInfo = getNssmfHost(esrInfo); - Header header = new BasicHeader("X-Auth-Token", getToken(nssmfInfo)); - String nssmfUrl = nssmfInfo.getUrl() + allocateUrl; - return send(nssmfUrl, post, allocateReq, header); - } - - class HttpDeleteWithBody extends HttpEntityEnclosingRequestBase { - public static final String METHOD_NAME = "DELETE"; - - @Override - public String getMethod() { - return METHOD_NAME; - } - - public HttpDeleteWithBody(final String uri) { - super(); - setURI(URI.create(uri)); - } - - public HttpDeleteWithBody(final URI uri) { - super(); - setURI(uri); - } - - public HttpDeleteWithBody() { - super(); - } - } - - class HttpGetWithBody extends HttpEntityEnclosingRequestBase { - public static final String METHOD_NAME = "GET"; - - public HttpGetWithBody() { - super(); - } - - public HttpGetWithBody(final String uri) { - super(); - setURI(URI.create(uri)); - } - - public HttpGetWithBody(final URI uri) { - super(); - setURI(uri); - } - - @Override - public String getMethod() { - return METHOD_NAME; - } - } - - - public HttpClient getHttpsClient() { - - TrustManager[] trustAllCerts = new TrustManager[] {new X509TrustManager() { - @Override - public java.security.cert.X509Certificate[] getAcceptedIssuers() { - return null; - } - - @Override - public void checkClientTrusted(java.security.cert.X509Certificate[] certs, String authType) {} - - @Override - public void checkServerTrusted(java.security.cert.X509Certificate[] certs, String authType) {} - }}; - - // Install the all-trusting trust manager - try { - SSLContext sc = SSLContext.getInstance("SSL"); - sc.init(null, trustAllCerts, new java.security.SecureRandom()); - - SSLConnectionSocketFactory sslsf = new SSLConnectionSocketFactory(sc, - new String[] {"TLSv1", "TLSv1.1", "TLSv1.2", "TLSv1.3"}, null, (s, sslSession) -> true); - return HttpClients.custom().setSSLSocketFactory(sslsf).build(); - } catch (Exception e) { - throw new IllegalArgumentException(e); - } - } - - private static void logError(String errMsg, Throwable t) { - logger.error(FOUR, RA_NS_EXC.toString(), NSSMI_ADAPTER, AvailabilityError.getValue(), errMsg, t); - } - - private static void logError(String errMsg) { - logger.error(FOUR, RA_NS_EXC.toString(), NSSMI_ADAPTER, AvailabilityError.toString(), errMsg); - } -} - diff --git a/adapters/mso-nssmf-adapter/src/main/resources/META-INF/services/org.onap.so.client.RestProperties b/adapters/mso-nssmf-adapter/src/main/resources/META-INF/services/org.onap.so.client.RestProperties deleted file mode 100644 index f93ec63f37..0000000000 --- a/adapters/mso-nssmf-adapter/src/main/resources/META-INF/services/org.onap.so.client.RestProperties +++ /dev/null @@ -1 +0,0 @@ -org.onap.so.adapters.nssmf.extclients.aai.AaiClientPropertiesImpl
\ No newline at end of file diff --git a/adapters/mso-nssmf-adapter/src/main/resources/application-aaf.yaml b/adapters/mso-nssmf-adapter/src/main/resources/application-aaf.yaml deleted file mode 100644 index e69de29bb2..0000000000 --- a/adapters/mso-nssmf-adapter/src/main/resources/application-aaf.yaml +++ /dev/null diff --git a/adapters/mso-nssmf-adapter/src/main/resources/application-basic.yaml b/adapters/mso-nssmf-adapter/src/main/resources/application-basic.yaml deleted file mode 100644 index e69de29bb2..0000000000 --- a/adapters/mso-nssmf-adapter/src/main/resources/application-basic.yaml +++ /dev/null diff --git a/adapters/mso-nssmf-adapter/src/main/resources/application-test.yaml b/adapters/mso-nssmf-adapter/src/main/resources/application-test.yaml deleted file mode 100644 index 8e10dfb72b..0000000000 --- a/adapters/mso-nssmf-adapter/src/main/resources/application-test.yaml +++ /dev/null @@ -1,60 +0,0 @@ - -aai: - auth: 2A11B07DB6214A839394AA1EC5844695F5114FC407FF5422625FB00175A3DCB8A1FF745F22867EFA72D5369D599BBD88DA8BED4233CF5586 - endpoint: https://aai.onap:30233 -logging: - path: logs - -spring: - datasource: - jdbcUrl: jdbc:mariadb://49.232.146.162:8989/requestdb - username: root - password: 123456 - driver-class-name: org.mariadb.jdbc.Driver - initialization-mode: always - jpa: - generate-ddl: false - show-sql: false - hibernate: - ddl-auto: none - naming-strategy: org.hibernate.cfg.ImprovedNamingStrategy - enable-lazy-load-no-trans: true - database-platform: org.hibernate.dialect.MySQL5InnoDBDialect - security: - usercredentials: - - username: bpel - password: '$2a$10$Fh9ffgPw2vnmsghsRD3ZauBL1aKXebigbq3BB1RPWtE62UDILsjke' - role: BPEL-Client - - username: mso_admin - password: '$2a$10$Fh9ffgPw2vnmsghsRD3ZauBL1aKXebigbq3BB1RPWtE62UDILsjke' - role: ACTUATOR -server: - port: 8080 - tomcat: - max-threads: 50 - -mso: - key: 07a7159d3bf51a0e53be7a8f89699be7 - site-name: localSite - logPath: ./logs/nssmf - adapters: - requestDb: - endpoint: https://so-request-db-adapter.onap:8083 - auth: Basic YnBlbDpwYXNzd29yZDEk - infra: - endpoint: https://so.onap:8080 - auth: Basic SW5mcmFQb3J0YWxDbGllbnQ6cGFzc3dvcmQxJA== - -#Actuator -management: - endpoints: - web: - base-path: /manage - exposure: - include: "*" - metrics: - se-global-registry: false - export: - prometheus: - enabled: true # Whether exporting of metrics to Prometheus is enabled. - step: 1m # Step size (i.e. reporting frequency) to use.
\ No newline at end of file diff --git a/adapters/mso-nssmf-adapter/src/main/resources/application.yaml b/adapters/mso-nssmf-adapter/src/main/resources/application.yaml deleted file mode 100644 index 5501fba88f..0000000000 --- a/adapters/mso-nssmf-adapter/src/main/resources/application.yaml +++ /dev/null @@ -1,77 +0,0 @@ -# -# ============LICENSE_START======================================================= -# ONAP - SO -# ================================================================================ -# Copyright (C) 2020 Huawei Technologies Co., Ltd. All rights reserved. -# ================================================================================ -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# 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. -# ============LICENSE_END========================================================= -#/ -aai: - auth: 2A11B07DB6214A839394AA1EC5844695F5114FC407FF5422625FB00175A3DCB8A1FF745F22867EFA72D5369D599BBD88DA8BED4233CF5586 - endpoint: https://aai.onap:30233 -logging: - path: logs - -spring: - datasource: - jdbc-url: jdbc:mariadb://${DB_HOST}:${DB_PORT}/requestdb - username: ${DB_USERNAME} - password: ${DB_PASSWORD} - driver-class-name: org.mariadb.jdbc.Driver - jpa: - show-sql: false - hibernate: - dialect: org.hibernate.dialect.MySQL5Dialect - ddl-auto: validate - naming-strategy: org.hibernate.cfg.ImprovedNamingStrategy - enable-lazy-load-no-trans: true - security: - usercredentials: - - username: bpel - password: '$2a$10$Fh9ffgPw2vnmsghsRD3ZauBL1aKXebigbq3BB1RPWtE62UDILsjke' - role: BPEL-Client - - username: mso_admin - password: '$2a$10$Fh9ffgPw2vnmsghsRD3ZauBL1aKXebigbq3BB1RPWtE62UDILsjke' - role: ACTUATOR - -server: - port: 8080 - tomcat: - max-threads: 50 - -mso: - key: 07a7159d3bf51a0e53be7a8f89699be7 - site-name: localSite - logPath: ./logs/nssmf - adapters: - requestDb: - endpoint: https://so-request-db-adapter.{{ include "common.namespace" . }}:8083 - auth: Basic YnBlbDpwYXNzd29yZDEk - infra: - endpoint: http://so.onap:8080 - auth: Basic SW5mcmFQb3J0YWxDbGllbnQ6cGFzc3dvcmQxJA== - -#Actuator -management: - endpoints: - web: - base-path: /manage - exposure: - include: "*" - metrics: - se-global-registry: false - export: - prometheus: - enabled: true # Whether exporting of metrics to Prometheus is enabled. - step: 1m # Step size (i.e. reporting frequency) to use. diff --git a/adapters/mso-nssmf-adapter/src/main/resources/org.onap.so.p12 b/adapters/mso-nssmf-adapter/src/main/resources/org.onap.so.p12 Binary files differdeleted file mode 100644 index 79631bf344..0000000000 --- a/adapters/mso-nssmf-adapter/src/main/resources/org.onap.so.p12 +++ /dev/null diff --git a/adapters/mso-nssmf-adapter/src/main/resources/org.onap.so.trust.jks b/adapters/mso-nssmf-adapter/src/main/resources/org.onap.so.trust.jks Binary files differdeleted file mode 100644 index 6f8168d896..0000000000 --- a/adapters/mso-nssmf-adapter/src/main/resources/org.onap.so.trust.jks +++ /dev/null diff --git a/adapters/mso-nssmf-adapter/src/main/resources/subnetCapability.json b/adapters/mso-nssmf-adapter/src/main/resources/subnetCapability.json deleted file mode 100644 index 8753e85ea2..0000000000 --- a/adapters/mso-nssmf-adapter/src/main/resources/subnetCapability.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "AN": { - "latency": 5, - "maxNumberofUEs": "100" - }, - "CN": { - "latency": 5, - "maxNumberofConns": "100" - } -} diff --git a/adapters/mso-nssmf-adapter/src/test/java/org/onap/so/adapters/nssmf/NssmfAdapterRestTest.java b/adapters/mso-nssmf-adapter/src/test/java/org/onap/so/adapters/nssmf/NssmfAdapterRestTest.java deleted file mode 100644 index f78bfd297a..0000000000 --- a/adapters/mso-nssmf-adapter/src/test/java/org/onap/so/adapters/nssmf/NssmfAdapterRestTest.java +++ /dev/null @@ -1,400 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * ONAP - SO - * ================================================================================ - * Copyright (C) 2020 Huawei Technologies Co., Ltd. All rights reserved. - * ================================================================================ - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * 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. - * ============LICENSE_END========================================================= - */ - -package org.onap.so.adapters.nssmf; - -import static java.nio.charset.StandardCharsets.UTF_8; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertNotNull; -import static org.mockito.ArgumentMatchers.any; -import static org.mockito.Mockito.doAnswer; -import static org.mockito.Mockito.when; -import static org.mockito.MockitoAnnotations.initMocks; -import static org.onap.so.adapters.nssmf.util.NssmfAdapterUtil.marshal; -import static org.onap.so.adapters.nssmf.util.NssmfAdapterUtil.unMarshal; -import static org.onap.so.beans.nsmf.NetworkType.CORE; -import static org.onap.so.beans.nsmf.ResourceSharingLevel.NON_SHARED; -import java.io.ByteArrayInputStream; -import java.io.InputStream; -import java.util.LinkedList; -import java.util.List; -import org.apache.http.Header; -import org.apache.http.HttpEntity; -import org.apache.http.HttpResponse; -import org.apache.http.StatusLine; -import org.apache.http.client.HttpClient; -import org.apache.http.client.methods.HttpRequestBase; -import org.junit.Before; -import org.junit.Test; -import org.junit.runner.RunWith; -import org.mockito.Mock; -import org.mockito.invocation.InvocationOnMock; -import org.mockito.stubbing.Answer; -import org.onap.so.adapters.nssmf.entity.TokenResponse; -import org.onap.so.adapters.nssmf.enums.HttpMethod; -import org.onap.so.adapters.nssmf.rest.NssmfAdapterRest; -import org.onap.so.adapters.nssmf.entity.NssmfInfo; -import org.onap.so.adapters.nssmf.rest.NssmfManager; -import org.onap.so.adapters.nssmf.util.RestUtil; -import org.onap.so.beans.nsmf.ActDeActNssi; -import org.onap.so.beans.nsmf.AllocateCnNssi; -import org.onap.so.beans.nsmf.CnSliceProfile; -import org.onap.so.beans.nsmf.DeAllocateNssi; -import org.onap.so.beans.nsmf.EsrInfo; -import org.onap.so.beans.nsmf.JobStatusRequest; -import org.onap.so.beans.nsmf.NsiInfo; -import org.onap.so.beans.nsmf.NssiActDeActRequest; -import org.onap.so.beans.nsmf.NssiAllocateRequest; -import org.onap.so.beans.nsmf.NssiDeAllocateRequest; -import org.onap.so.beans.nsmf.NssiResponse; -import org.onap.so.beans.nsmf.PerfReq; -import org.onap.so.beans.nsmf.PerfReqEmbb; -import org.onap.so.db.request.data.repository.ResourceOperationStatusRepository; -import org.skyscreamer.jsonassert.JSONAssert; -import org.springframework.http.ResponseEntity; -import org.springframework.test.context.junit4.SpringRunner; - -@RunWith(SpringRunner.class) -public class NssmfAdapterRestTest { - - private final static String ALLOCATE = "{\n" + " \"esrInfo\" : {\n" + " \"vendor\" : \"huawei\",\n" - + " \"networkType\" : \"cn\"\n" + " },\n" + " \"allocateCnNssi\" : {\n" - + " \"nssiId\" : \"NSST-C-001-HDBNJ-NSSMF-01-A-ZX\",\n" + " \"nssiName\" : \"eMBB-001\",\n" - + " \"sliceProfile\" : {\n" + " \"snssaiList\" : [ \"001-100001\" ],\n" - + " \"maxNumberofPDUSession\" : 10,\n" - + " \"sliceProfileId\" : \"ab9af40f13f721b5f13539d87484098\",\n" - + " \"plmnIdList\" : [ \"460-00\", \"460-01\" ],\n" + " \"perfReq\" : {\n" - + " \"perfReqEmbbList\" : [ {\n" + " \"activityFactor\" : 50\n" + " } ]\n" - + " },\n" + " \"maxNumberofUEs\" : 200,\n" - + " \"coverageAreaTAList\" : [ \"1\", \"2\", \"3\" ],\n" + " \"latency\" : 6,\n" - + " \"resourceSharingLevel\" : \"non-shared\"\n" + " },\n" + " \"scriptName\" : \"CN1\",\n" - + " \"nsiInfo\" : {\n" + " \"nsiName\" : \"eMBB-001\",\n" - + " \"nsiId\" : \"NSI-M-001-HDBNJ-NSMF-01-A-ZX\"\n" + " }\n" + " }\n" + "}"; - - private NssmfManager nssmfMgr; - - @Mock - private ResourceOperationStatusRepository rscOperStatusRepo; - - @Mock - private RestUtil restUtil; - - @Mock - private NssmfAdapterRest nssmfRest; - - @Mock - private HttpResponse tokenResponse; - - @Mock - private HttpEntity tokenEntity; - - @Mock - private HttpResponse commonResponse; - - @Mock - private HttpEntity commonEntity; - - @Mock - private StatusLine statusLine; - - @Mock - private HttpClient httpClient; - - private InputStream postStream; - - private InputStream tokenStream; - - @Before - public void setUp() { - initMocks(this); - nssmfMgr = new NssmfManager(); - nssmfMgr.setRestUtil(restUtil); - nssmfMgr.setRscOperStatusRepo(rscOperStatusRepo); - } - - private void createCommonMock(int statusCode, NssmfInfo nssmf) throws Exception { - when(this.restUtil.send(any(String.class), any(HttpMethod.class), any(String.class), any(Header.class))) - .thenCallRealMethod(); - when(this.restUtil.createResponse(any(Integer.class), any(String.class))).thenCallRealMethod(); - when(nssmfRest.getNssmfMgr()).thenReturn(nssmfMgr); - // when(nssmfRest.createAllocateNssi(any(NssiAllocateRequest.class))).thenCallRealMethod(); - // when(nssmfRest.deAllocateNssi(any(NssiDeAllocateRequest.class), any(String.class))).thenCallRealMethod(); - // when(nssmfRest.activateNssi(any(NssiActDeActRequest.class), any(String.class))).thenCallRealMethod(); - // when(nssmfRest.deactivateNssi(any(NssiActDeActRequest.class), any(String.class))).thenCallRealMethod(); - // - // when(nssmfRest.queryJobStatus(any(JobStatusRequest.class), any(String.class))).thenCallRealMethod(); - when(restUtil.sendRequest(any(String.class), any(HttpMethod.class), any(String.class), any(EsrInfo.class))) - .thenCallRealMethod(); - when(restUtil.getHttpsClient()).thenReturn(httpClient); - - when(statusLine.getStatusCode()).thenReturn(200); - when(restUtil.getNssmfHost(any(EsrInfo.class))).thenReturn(nssmf); - - when(tokenResponse.getEntity()).thenReturn(tokenEntity); - when(tokenResponse.getStatusLine()).thenReturn(statusLine); - when(tokenEntity.getContent()).thenReturn(tokenStream); - - when(commonResponse.getEntity()).thenReturn(commonEntity); - when(commonResponse.getStatusLine()).thenReturn(statusLine); - when(commonEntity.getContent()).thenReturn(postStream); - - Answer<HttpResponse> answer = new Answer<HttpResponse>() { - - public HttpResponse answer(InvocationOnMock invocation) throws Throwable { - Object[] arguments = invocation.getArguments(); - if (arguments != null && arguments.length == 1 && arguments[0] != null) { - - HttpRequestBase base = (HttpRequestBase) arguments[0]; - if (base.getURI().toString().endsWith("/oauth/token")) { - return tokenResponse; - } else { - return commonResponse; - } - } - return commonResponse; - } - }; - doAnswer(answer).when(httpClient).execute(any(HttpRequestBase.class)); - } - - // @Test - // public void testNssiAllocate() throws Exception { - // NssmfInfo nssmf = new NssmfInfo(); - // nssmf.setUserName("nssmf-user"); - // nssmf.setPassword("nssmf-pass"); - // nssmf.setPort("8080"); - // nssmf.setIpAddress("127.0.0.1"); - // - // NssiResponse nssiRes = new NssiResponse(); - // nssiRes.setJobId("4b45d919816ccaa2b762df5120f72067"); - // nssiRes.setNssiId("NSSI-C-001-HDBNJ-NSSMF-01-A-ZX"); - // - // TokenResponse token = new TokenResponse(); - // token.setAccessToken("7512eb3feb5249eca5ddd742fedddd39"); - // token.setExpires(1800); - // - // postStream = new ByteArrayInputStream(marshal(nssiRes).getBytes(UTF_8)); - // tokenStream = new ByteArrayInputStream(marshal(token).getBytes(UTF_8)); - // - // createCommonMock(200, nssmf); - // // assertEquals(prettyPrint(createAllocateNssi()), ALLOCATE); - // ResponseEntity res = nssmfRest.createAllocateNssi(createAllocateNssi()); - // assertNotNull(res); - // assertNotNull(res.getBody()); - // NssiResponse allRes = unMarshal(res.getBody().toString(), NssiResponse.class); - // assertEquals(allRes.getJobId(), "4b45d919816ccaa2b762df5120f72067"); - // assertEquals(allRes.getNssiId(), "NSSI-C-001-HDBNJ-NSSMF-01-A-ZX"); - // } - // - // @Test - // public void testNssiDeAllocate() throws Exception { - // NssmfInfo nssmf = new NssmfInfo(); - // nssmf.setUserName("nssmf-user"); - // nssmf.setPassword("nssmf-pass"); - // nssmf.setPort("8080"); - // nssmf.setIpAddress("127.0.0.1"); - // - // NssiResponse nssiRes = new NssiResponse(); - // nssiRes.setJobId("4b45d919816ccaa2b762df5120f72067"); - // - // TokenResponse token = new TokenResponse(); - // token.setAccessToken("7512eb3feb5249eca5ddd742fedddd39"); - // token.setExpires(1800); - // - // postStream = new ByteArrayInputStream(marshal(nssiRes).getBytes(UTF_8)); - // tokenStream = new ByteArrayInputStream(marshal(token).getBytes(UTF_8)); - // - // createCommonMock(200, nssmf); - // ResponseEntity res = nssmfRest.deAllocateNssi(deAllocateNssi(), "ab9af40f13f721b5f13539d87484098"); - // assertNotNull(res); - // assertNotNull(res.getBody()); - // NssiResponse allRes = unMarshal(res.getBody().toString(), NssiResponse.class); - // assertEquals(allRes.getJobId(), "4b45d919816ccaa2b762df5120f72067"); - // } - // - // @Test - // public void testNssiActivate() throws Exception { - // NssmfInfo nssmf = new NssmfInfo(); - // nssmf.setUserName("nssmf-user"); - // nssmf.setPassword("nssmf-pass"); - // nssmf.setPort("8080"); - // nssmf.setIpAddress("127.0.0.1"); - // - // NssiResponse nssiRes = new NssiResponse(); - // nssiRes.setJobId("4b45d919816ccaa2b762df5120f72067"); - // - // TokenResponse token = new TokenResponse(); - // token.setAccessToken("7512eb3feb5249eca5ddd742fedddd39"); - // token.setExpires(1800); - // - // postStream = new ByteArrayInputStream(marshal(nssiRes).getBytes(UTF_8)); - // tokenStream = new ByteArrayInputStream(marshal(token).getBytes(UTF_8)); - // - // createCommonMock(200, nssmf); - // ResponseEntity res = nssmfRest.activateNssi(activateNssi(), "001-100001"); - // assertNotNull(res); - // assertNotNull(res.getBody()); - // NssiResponse allRes = unMarshal(res.getBody().toString(), NssiResponse.class); - // assertEquals(allRes.getJobId(), "4b45d919816ccaa2b762df5120f72067"); - // } - // - // @Test - // public void testNssiDeActivate() throws Exception { - // NssmfInfo nssmf = new NssmfInfo(); - // nssmf.setUserName("nssmf-user"); - // nssmf.setPassword("nssmf-pass"); - // nssmf.setPort("8080"); - // nssmf.setIpAddress("127.0.0.1"); - // - // NssiResponse nssiRes = new NssiResponse(); - // nssiRes.setJobId("4b45d919816ccaa2b762df5120f72067"); - // - // TokenResponse token = new TokenResponse(); - // token.setAccessToken("7512eb3feb5249eca5ddd742fedddd39"); - // token.setExpires(1800); - // - // postStream = new ByteArrayInputStream(marshal(nssiRes).getBytes(UTF_8)); - // tokenStream = new ByteArrayInputStream(marshal(token).getBytes(UTF_8)); - // - // createCommonMock(200, nssmf); - // ResponseEntity res = nssmfRest.deactivateNssi(deActivateNssi(), "001-100001"); - // assertNotNull(res); - // assertNotNull(res.getBody()); - // NssiResponse allRes = unMarshal(res.getBody().toString(), NssiResponse.class); - // assertEquals(allRes.getJobId(), "4b45d919816ccaa2b762df5120f72067"); - // } - // - @Test - public void testAllocateJsonSerDeSer() throws Exception { - JSONAssert.assertEquals(marshal(allocateNssi()), ALLOCATE, false); - NssiAllocateRequest all = unMarshal(ALLOCATE, NssiAllocateRequest.class); - assertNotNull(all); - assertNotNull(all.getAllocateCnNssi()); - assertNotNull(all.getAllocateCnNssi().getSliceProfile()); - assertEquals(all.getAllocateCnNssi().getSliceProfile().getResourceSharingLevel(), NON_SHARED); - assertNotNull(all.getAllocateCnNssi().getSliceProfile().getPerfReq()); - assertNotNull(all.getAllocateCnNssi().getSliceProfile().getPerfReq().getPerfReqEmbbList()); - PerfReqEmbb embb = - all.getAllocateCnNssi().getSliceProfile().getPerfReq().getPerfReqEmbbList().iterator().next(); - assertNotNull(embb); - assertEquals(embb.getActivityFactor(), 50); - } - - public NssiAllocateRequest allocateNssi() throws Exception { - CnSliceProfile sP = new CnSliceProfile(); - List<String> sns = new LinkedList<>(); - sns.add("001-100001"); - List<String> plmn = new LinkedList<>(); - plmn.add("460-00"); - plmn.add("460-01"); - PerfReqEmbb embb = new PerfReqEmbb(); - embb.setActivityFactor(50); - List<PerfReqEmbb> embbList = new LinkedList<>(); - embbList.add(embb); - PerfReq perfReq = new PerfReq(); - perfReq.setPerfReqEmbbList(embbList); - List<String> taList = new LinkedList<>(); - taList.add("1"); - taList.add("2"); - taList.add("3"); - sP.setSnssaiList(sns); - sP.setSliceProfileId("ab9af40f13f721b5f13539d87484098"); - sP.setPLMNIdList(plmn); - sP.setPerfReq(perfReq); - sP.setMaxNumberOfUEs(200); - sP.setCoverageAreaTAList(taList); - sP.setLatency(6); - sP.setResourceSharingLevel(NON_SHARED); - sP.setMaxNumberOfPDUSession(10); - NsiInfo nsiInfo = new NsiInfo(); - nsiInfo.setNsiId("NSI-M-001-HDBNJ-NSMF-01-A-ZX"); - nsiInfo.setNsiName("eMBB-001"); - AllocateCnNssi cnNssi = new AllocateCnNssi(); - cnNssi.setNssiId("NSST-C-001-HDBNJ-NSSMF-01-A-ZX"); - cnNssi.setNssiName("eMBB-001"); - cnNssi.setScriptName("CN1"); - cnNssi.setSliceProfile(sP); - cnNssi.setNsiInfo(nsiInfo); - EsrInfo esrInfo = new EsrInfo(); - esrInfo.setVendor("huawei"); - esrInfo.setNetworkType(CORE); - NssiAllocateRequest allocate = new NssiAllocateRequest(); - allocate.setAllocateCnNssi(cnNssi); - allocate.setEsrInfo(esrInfo); - return allocate; - } - - // - // public NssiDeAllocateRequest deAllocateNssi() throws Exception { - // DeAllocateNssi deAllocateNssi = new DeAllocateNssi(); - // deAllocateNssi.setTerminateNssiOption(0); - // List<String> snssai = new LinkedList<>(); - // snssai.add("001-100001"); - // deAllocateNssi.setNsiId("NSI-M-001-HDBNJ-NSMF-01-A-ZX"); - // deAllocateNssi.setNssiId("NSSI-C-001-HDBNJ-NSSMF-01-A-ZX"); - // deAllocateNssi.setScriptName("CN1"); - // deAllocateNssi.setSnssaiList(snssai); - // EsrInfo esrInfo = new EsrInfo(); - // esrInfo.setVendor("huawei"); - // esrInfo.setNetworkType(CORE); - // NssiDeAllocateRequest deAllocate = new NssiDeAllocateRequest(); - // deAllocate.setDeAllocateNssi(deAllocateNssi); - // deAllocate.setEsrInfo(esrInfo); - // return deAllocate; - // } - // - // public NssiActDeActRequest activateNssi() throws Exception { - // EsrInfo esrInfo = new EsrInfo(); - // esrInfo.setVendor("huawei"); - // esrInfo.setNetworkType(CORE); - // ActDeActNssi act = new ActDeActNssi(); - // act.setNsiId("NSI-M-001-HDBNJ-NSMF-01-A-ZX"); - // act.setNssiId("NSSI-C-001-HDBNJ-NSSMF-01-A-ZX"); - // NssiActDeActRequest actReq = new NssiActDeActRequest(); - // actReq.setActDeActNssi(act); - // actReq.setEsrInfo(esrInfo); - // return actReq; - // } - // - // public NssiActDeActRequest deActivateNssi() throws Exception { - // EsrInfo esrInfo = new EsrInfo(); - // esrInfo.setVendor("huawei"); - // esrInfo.setNetworkType(CORE); - // ActDeActNssi deAct = new ActDeActNssi(); - // deAct.setNsiId("NSI-M-001-HDBNJ-NSMF-01-A-ZX"); - // deAct.setNssiId("NSSI-C-001-HDBNJ-NSSMF-01-A-ZX"); - // NssiActDeActRequest deActReq = new NssiActDeActRequest(); - // deActReq.setActDeActNssi(deAct); - // deActReq.setEsrInfo(esrInfo); - // return deActReq; - // } - // - public String queryJobStatusNssi() throws Exception { - EsrInfo esrInfo = new EsrInfo(); - esrInfo.setVendor("huawei"); - esrInfo.setNetworkType(CORE); - - JobStatusRequest jobStatus = new JobStatusRequest(); - jobStatus.setEsrInfo(esrInfo); - jobStatus.setNsiId("NSI-M-001-HDBNJ-NSMF-01-A-ZX"); - jobStatus.setNssiId("NSSI-C-001-HDBNJ-NSSMF-01-A-ZX"); - return marshal(jobStatus); - } -} diff --git a/adapters/mso-nssmf-adapter/src/test/java/org/onap/so/adapters/nssmf/service/impl/NssmfManagerServiceImplTest.java b/adapters/mso-nssmf-adapter/src/test/java/org/onap/so/adapters/nssmf/service/impl/NssmfManagerServiceImplTest.java deleted file mode 100644 index 26904fa8a4..0000000000 --- a/adapters/mso-nssmf-adapter/src/test/java/org/onap/so/adapters/nssmf/service/impl/NssmfManagerServiceImplTest.java +++ /dev/null @@ -1,442 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * ONAP - SO - * ================================================================================ - # Copyright (c) 2020, CMCC Technologies Co., Ltd. - # - # 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. - * ============LICENSE_END========================================================= - */ - -package org.onap.so.adapters.nssmf.service.impl; - - -import org.apache.http.Header; -import org.apache.http.HttpEntity; -import org.apache.http.HttpResponse; -import org.apache.http.StatusLine; -import org.apache.http.client.HttpClient; -import org.apache.http.client.methods.HttpRequestBase; -import org.junit.Before; -import org.junit.Test; -import org.junit.runner.RunWith; -import org.mockito.Mock; -import org.mockito.stubbing.Answer; -import org.onap.so.adapters.nssmf.consts.NssmfAdapterConsts; -import org.onap.so.adapters.nssmf.entity.NssmfInfo; -import org.onap.so.adapters.nssmf.entity.TokenResponse; -import org.onap.so.adapters.nssmf.enums.ActionType; -import org.onap.so.adapters.nssmf.enums.HttpMethod; -import org.onap.so.adapters.nssmf.util.RestUtil; -import org.onap.so.beans.nsmf.*; -import org.onap.so.beans.nsmf.oof.SubnetCapability; -import org.onap.so.db.request.beans.ResourceOperationStatus; -import org.onap.so.db.request.data.repository.ResourceOperationStatusRepository; -import org.springframework.http.ResponseEntity; -import org.springframework.test.context.junit4.SpringRunner; -import java.io.ByteArrayInputStream; -import java.io.InputStream; -import java.lang.reflect.Field; -import java.util.*; -import static java.nio.charset.StandardCharsets.UTF_8; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertNotNull; -import static org.mockito.ArgumentMatchers.any; -import static org.mockito.Mockito.doAnswer; -import static org.mockito.Mockito.when; -import static org.mockito.MockitoAnnotations.initMocks; -import static org.onap.so.adapters.nssmf.util.NssmfAdapterUtil.marshal; -import static org.onap.so.adapters.nssmf.util.NssmfAdapterUtil.unMarshal; -import static org.onap.so.beans.nsmf.NetworkType.CORE; -import static org.onap.so.beans.nsmf.ResourceSharingLevel.NON_SHARED; - -@RunWith(SpringRunner.class) -public class NssmfManagerServiceImplTest { - - @Mock - private RestUtil restUtil; - - - private NssmfManagerServiceImpl nssiManagerService; - - @Mock - private HttpResponse tokenResponse; - - @Mock - private HttpEntity tokenEntity; - - @Mock - private HttpResponse commonResponse; - - @Mock - private HttpEntity commonEntity; - - @Mock - private StatusLine statusLine; - - @Mock - private HttpClient httpClient; - - private InputStream postStream; - - private InputStream tokenStream; - - @Mock - private ResourceOperationStatusRepository repository; - - @Before - public void setUp() throws Exception { - initMocks(this); - - nssiManagerService = new NssmfManagerServiceImpl(); - - Field restUtil = nssiManagerService.getClass().getDeclaredField("restUtil"); - restUtil.setAccessible(true); - restUtil.set(nssiManagerService, this.restUtil); - - Field repository = nssiManagerService.getClass().getDeclaredField("repository"); - repository.setAccessible(true); - repository.set(nssiManagerService, this.repository); - // nssiManagerService.setRestUtil(this.restUtil); - - when(this.restUtil.send(any(String.class), any(HttpMethod.class), any(), any(Header.class))) - .thenCallRealMethod(); - when(this.restUtil.createResponse(any(Integer.class), any(String.class))).thenCallRealMethod(); - } - - private void createCommonMock(int statusCode, NssmfInfo nssmf) throws Exception { - when(restUtil.getToken(any(NssmfInfo.class))).thenReturn("7512eb3feb5249eca5ddd742fedddd39"); - when(restUtil.getHttpsClient()).thenReturn(httpClient); - - when(statusLine.getStatusCode()).thenReturn(statusCode); - when(restUtil.getNssmfHost(any(EsrInfo.class))).thenReturn(nssmf); - - when(tokenResponse.getEntity()).thenReturn(tokenEntity); - when(tokenResponse.getStatusLine()).thenReturn(statusLine); - when(tokenEntity.getContent()).thenReturn(tokenStream); - - when(commonResponse.getEntity()).thenReturn(commonEntity); - when(commonResponse.getStatusLine()).thenReturn(statusLine); - when(commonEntity.getContent()).thenReturn(postStream); - - Answer<HttpResponse> answer = invocation -> { - Object[] arguments = invocation.getArguments(); - if (arguments != null && arguments.length == 1 && arguments[0] != null) { - - HttpRequestBase base = (HttpRequestBase) arguments[0]; - if (base.getURI().toString().endsWith("/oauth/token")) { - return tokenResponse; - } else { - return commonResponse; - } - } - return commonResponse; - }; - - doAnswer(answer).when(httpClient).execute(any(HttpRequestBase.class)); - - } - - @Test - public void allocateNssi() throws Exception { - - NssmfInfo nssmf = new NssmfInfo(); - nssmf.setUserName("nssmf-user"); - nssmf.setPassword("nssmf-pass"); - nssmf.setPort("8080"); - nssmf.setIpAddress("127.0.0.1"); - nssmf.setUrl("http://127.0.0.1:8080"); - - NssiResponse nssiRes = new NssiResponse(); - nssiRes.setJobId("4b45d919816ccaa2b762df5120f72067"); - nssiRes.setNssiId("NSSI-C-001-HDBNJ-NSSMF-01-A-ZX"); - - TokenResponse token = new TokenResponse(); - token.setAccessToken("7512eb3feb5249eca5ddd742fedddd39"); - token.setExpires(1800); - - postStream = new ByteArrayInputStream(marshal(nssiRes).getBytes(UTF_8)); - tokenStream = new ByteArrayInputStream(marshal(token).getBytes(UTF_8)); - - createCommonMock(200, nssmf); - - - NssmfAdapterNBIRequest nbiRequest = createAllocateNssi(); - assertNotNull(nbiRequest); - System.out.println(marshal(nbiRequest)); - ResponseEntity res = nssiManagerService.allocateNssi(nbiRequest); - assertNotNull(res); - assertNotNull(res.getBody()); - NssiResponse allRes = unMarshal(res.getBody().toString(), NssiResponse.class); - assertEquals(allRes.getJobId(), "4b45d919816ccaa2b762df5120f72067"); - assertEquals(allRes.getNssiId(), "NSSI-C-001-HDBNJ-NSSMF-01-A-ZX"); - - System.out.println(res); - } - - - - private NssmfAdapterNBIRequest createAllocateNssi() { - CnSliceProfile sP = new CnSliceProfile(); - List<String> sns = new LinkedList<>(); - sns.add("001-100001"); - List<String> plmn = new LinkedList<>(); - plmn.add("460-00"); - plmn.add("460-01"); - PerfReqEmbb embb = new PerfReqEmbb(); - embb.setActivityFactor(50); - List<PerfReqEmbb> embbList = new LinkedList<>(); - embbList.add(embb); - PerfReq perfReq = new PerfReq(); - perfReq.setPerfReqEmbbList(embbList); - List<String> taList = new LinkedList<>(); - taList.add("1"); - taList.add("2"); - taList.add("3"); - sP.setSnssaiList(sns); - sP.setSliceProfileId("ab9af40f13f721b5f13539d87484098"); - sP.setPLMNIdList(plmn); - sP.setPerfReq(perfReq); - sP.setMaxNumberOfUEs(200); - sP.setCoverageAreaTAList(taList); - sP.setLatency(6); - sP.setResourceSharingLevel(NON_SHARED); - NsiInfo nsiInfo = new NsiInfo(); - nsiInfo.setNsiId("NSI-M-001-HDBNJ-NSMF-01-A-ZX"); - nsiInfo.setNsiName("eMBB-001"); - AllocateCnNssi cnNssi = new AllocateCnNssi(); - cnNssi.setNssiId("NSST-C-001-HDBNJ-NSSMF-01-A-ZX"); - cnNssi.setNssiName("eMBB-001"); - cnNssi.setScriptName("CN1"); - cnNssi.setSliceProfile(sP); - cnNssi.setNsiInfo(nsiInfo); - - NssmfAdapterNBIRequest nbiRequest = createNbiRequest(); - nbiRequest.setAllocateCnNssi(cnNssi); - return nbiRequest; - } - - @Test - public void deAllocateNssi() throws Exception { - DeAllocateNssi deAllocateNssi = new DeAllocateNssi(); - deAllocateNssi.setTerminateNssiOption(0); - List<String> snssai = new LinkedList<>(); - snssai.add("001-100001"); - deAllocateNssi.setNsiId("NSI-M-001-HDBNJ-NSMF-01-A-ZX"); - deAllocateNssi.setNssiId("NSSI-C-001-HDBNJ-NSSMF-01-A-ZX"); - deAllocateNssi.setScriptName("CN1"); - deAllocateNssi.setSnssaiList(snssai); - - NssmfAdapterNBIRequest nbiRequest = createNbiRequest(); - nbiRequest.setDeAllocateNssi(deAllocateNssi); - - NssmfInfo nssmf = new NssmfInfo(); - nssmf.setUserName("nssmf-user"); - nssmf.setPassword("nssmf-pass"); - nssmf.setPort("8080"); - nssmf.setIpAddress("127.0.0.1"); - - NssiResponse nssiRes = new NssiResponse(); - nssiRes.setJobId("4b45d919816ccaa2b762df5120f72067"); - - TokenResponse token = new TokenResponse(); - token.setAccessToken("7512eb3feb5249eca5ddd742fedddd39"); - token.setExpires(1800); - - postStream = new ByteArrayInputStream(marshal(nssiRes).getBytes(UTF_8)); - tokenStream = new ByteArrayInputStream(marshal(token).getBytes(UTF_8)); - - createCommonMock(202, nssmf); - ResponseEntity res = nssiManagerService.deAllocateNssi(nbiRequest, "ab9af40f13f721b5f13539d87484098"); - assertNotNull(res); - assertNotNull(res.getBody()); - NssiResponse allRes = unMarshal(res.getBody().toString(), NssiResponse.class); - assertEquals(allRes.getJobId(), "4b45d919816ccaa2b762df5120f72067"); - assertNotNull(res); - assertNotNull(res.getBody()); - } - - @Test - public void activateNssi() throws Exception { - NssmfInfo nssmf = new NssmfInfo(); - nssmf.setUserName("nssmf-user"); - nssmf.setPassword("nssmf-pass"); - nssmf.setPort("8080"); - nssmf.setIpAddress("127.0.0.1"); - - NssiResponse nssiRes = new NssiResponse(); - nssiRes.setJobId("4b45d919816ccaa2b762df5120f72067"); - - TokenResponse token = new TokenResponse(); - token.setAccessToken("7512eb3feb5249eca5ddd742fedddd39"); - token.setExpires(1800); - - postStream = new ByteArrayInputStream(marshal(nssiRes).getBytes(UTF_8)); - tokenStream = new ByteArrayInputStream(marshal(token).getBytes(UTF_8)); - - ActDeActNssi act = new ActDeActNssi(); - act.setNsiId("NSI-M-001-HDBNJ-NSMF-01-A-ZX"); - act.setNssiId("NSSI-C-001-HDBNJ-NSSMF-01-A-ZX"); - - NssmfAdapterNBIRequest nbiRequest = createNbiRequest(); - nbiRequest.setActDeActNssi(act); - - createCommonMock(200, nssmf); - ResponseEntity res = nssiManagerService.activateNssi(nbiRequest, "001-100001"); - assertNotNull(res); - assertNotNull(res.getBody()); - NssiResponse allRes = unMarshal(res.getBody().toString(), NssiResponse.class); - assertEquals(allRes.getJobId(), "4b45d919816ccaa2b762df5120f72067"); - } - - @Test - public void deActivateNssi() throws Exception { - NssmfInfo nssmf = new NssmfInfo(); - nssmf.setUserName("nssmf-user"); - nssmf.setPassword("nssmf-pass"); - nssmf.setPort("8080"); - nssmf.setIpAddress("127.0.0.1"); - - NssiResponse nssiRes = new NssiResponse(); - nssiRes.setJobId("4b45d919816ccaa2b762df5120f72067"); - - TokenResponse token = new TokenResponse(); - token.setAccessToken("7512eb3feb5249eca5ddd742fedddd39"); - token.setExpires(1800); - - postStream = new ByteArrayInputStream(marshal(nssiRes).getBytes(UTF_8)); - tokenStream = new ByteArrayInputStream(marshal(token).getBytes(UTF_8)); - - ActDeActNssi act = new ActDeActNssi(); - act.setNsiId("NSI-M-001-HDBNJ-NSMF-01-A-ZX"); - act.setNssiId("NSSI-C-001-HDBNJ-NSSMF-01-A-ZX"); - - NssmfAdapterNBIRequest nbiRequest = createNbiRequest(); - nbiRequest.setActDeActNssi(act); - - createCommonMock(200, nssmf); - ResponseEntity res = nssiManagerService.deActivateNssi(nbiRequest, "001-100001"); - assertNotNull(res); - assertNotNull(res.getBody()); - NssiResponse allRes = unMarshal(res.getBody().toString(), NssiResponse.class); - assertEquals(allRes.getJobId(), "4b45d919816ccaa2b762df5120f72067"); - } - - @Test - public void queryJobStatus() throws Exception { - NssmfInfo nssmf = new NssmfInfo(); - nssmf.setUserName("nssmf-user"); - nssmf.setPassword("nssmf-pass"); - nssmf.setPort("8080"); - nssmf.setIpAddress("127.0.0.1"); - - JobStatusResponse jobStatusResponse = new JobStatusResponse(); - ResponseDescriptor descriptor = new ResponseDescriptor(); - descriptor.setResponseId("7512eb3feb5249eca5ddd742fedddd39"); - descriptor.setProgress(20); - descriptor.setStatusDescription("Initiating VNF Instance"); - descriptor.setStatus("processing"); - jobStatusResponse.setResponseDescriptor(descriptor); - - TokenResponse token = new TokenResponse(); - token.setAccessToken("7512eb3feb5249eca5ddd742fedddd39"); - token.setExpires(1800); - - postStream = new ByteArrayInputStream(marshal(jobStatusResponse).getBytes(UTF_8)); - tokenStream = new ByteArrayInputStream(marshal(token).getBytes(UTF_8)); - - ResourceOperationStatus operationStatus = new ResourceOperationStatus(); - operationStatus.setOperationId("4b45d919816ccaa2b762df5120f72067"); - operationStatus.setResourceTemplateUUID("8ee5926d-720b-4bb2-86f9-d20e921c143b"); - operationStatus.setServiceId("NSI-M-001-HDBNJ-NSMF-01-A-ZX"); - operationStatus.setOperType(ActionType.ALLOCATE.toString()); - - NssmfAdapterNBIRequest nbiRequest = createNbiRequest(); - nbiRequest.setResponseId("7512eb3feb5249eca5ddd742fedddd39"); - List<ResourceOperationStatus> optional = new ArrayList<>(); - optional.add(operationStatus); - - doAnswer(invocation -> optional).when(repository).findByServiceIdAndOperationId(any(), any()); - - createCommonMock(200, nssmf); - - ResponseEntity res = nssiManagerService.queryJobStatus(nbiRequest, "4b45d919816ccaa2b762df5120f72067"); - assertNotNull(res); - assertNotNull(res.getBody()); - JobStatusResponse allRes = unMarshal(res.getBody().toString(), JobStatusResponse.class); - assertEquals(allRes.getResponseDescriptor().getProgress(), 20); - assertEquals(allRes.getResponseDescriptor().getStatus(), "processing"); - assertEquals(allRes.getResponseDescriptor().getResponseId(), "7512eb3feb5249eca5ddd742fedddd39"); - - } - - @Test - public void queryNSSISelectionCapability() throws Exception { - - NssmfAdapterNBIRequest nbiRequest = createNbiRequest(); - ResponseEntity res = nssiManagerService.queryNSSISelectionCapability(nbiRequest); - assertNotNull(res); - assertNotNull(res.getBody()); - Map allRes = unMarshal(res.getBody().toString(), Map.class); - assertEquals(allRes.get("selection"), "NSMF"); - - System.out.println(res); - - nbiRequest.getEsrInfo().setVendor(NssmfAdapterConsts.ONAP_INTERNAL_TAG); - res = nssiManagerService.queryNSSISelectionCapability(nbiRequest); - assertNotNull(res); - assertNotNull(res.getBody()); - allRes = unMarshal(res.getBody().toString(), Map.class); - assertEquals(allRes.get("selection"), "NSSMF"); - - System.out.println(res); - - nbiRequest.getEsrInfo().setNetworkType(NetworkType.ACCESS); - res = nssiManagerService.queryNSSISelectionCapability(nbiRequest); - assertNotNull(res); - assertNotNull(res.getBody()); - allRes = unMarshal(res.getBody().toString(), Map.class); - assertEquals(allRes.get("selection"), "NSSMF"); - - System.out.println(res); - } - - private NssmfAdapterNBIRequest createNbiRequest() { - NssmfAdapterNBIRequest nbiRequest = new NssmfAdapterNBIRequest(); - EsrInfo esrInfo = new EsrInfo(); - esrInfo.setVendor("huawei"); - esrInfo.setNetworkType(CORE); - ServiceInfo serviceInfo = new ServiceInfo(); - serviceInfo.setServiceUuid("8ee5926d-720b-4bb2-86f9-d20e921c143b"); - serviceInfo.setServiceInvariantUuid("e75698d9-925a-4cdd-a6c0-edacbe6a0b51"); - serviceInfo.setGlobalSubscriberId("5GCustomer"); - serviceInfo.setServiceType("5G"); - serviceInfo.setNsiId("NSI-M-001-HDBNJ-NSMF-01-A-ZX"); - nbiRequest.setEsrInfo(esrInfo); - nbiRequest.setServiceInfo(serviceInfo); - return nbiRequest; - } - - @Test - public void querySubnetCapability() { - NssmfAdapterNBIRequest nbiRequest = createNbiRequest(); - - QuerySubnetCapability subnetCapabilityQuery = new QuerySubnetCapability(); - List<String> subnetTypes = Arrays.asList("TN-FH", "TN-MH", "TN-BH"); - subnetCapabilityQuery.setSubnetTypes(subnetTypes); - nbiRequest.setSubnetCapabilityQuery(subnetCapabilityQuery); - ResponseEntity res = nssiManagerService.queryNSSISelectionCapability(nbiRequest); - assertNotNull(res); - assertNotNull(res.getBody()); - } -} diff --git a/adapters/mso-nssmf-adapter/src/test/resources/application-test.yaml b/adapters/mso-nssmf-adapter/src/test/resources/application-test.yaml deleted file mode 100644 index fa323e887b..0000000000 --- a/adapters/mso-nssmf-adapter/src/test/resources/application-test.yaml +++ /dev/null @@ -1,60 +0,0 @@ - -aai: - auth: 2A11B07DB6214A839394AA1EC5844695F5114FC407FF5422625FB00175A3DCB8A1FF745F22867EFA72D5369D599BBD88DA8BED4233CF5586 - endpoint: https://aai.onap:30233 -logging: - path: logs - -spring: - datasource: - username: root - password: 123456 - driver-class-name: org.mariadb.jdbc.Driver - initialization-mode: always - url: jdbc:mariadb://49.232.146.162:8989/requestdb - jpa: - generate-ddl: false - show-sql: false - hibernate: - ddl-auto: none - naming-strategy: org.hibernate.cfg.ImprovedNamingStrategy - enable-lazy-load-no-trans: true - database-platform: org.hibernate.dialect.MySQL5InnoDBDialect - security: - usercredentials: - - username: bpel - password: '$2a$10$Fh9ffgPw2vnmsghsRD3ZauBL1aKXebigbq3BB1RPWtE62UDILsjke' - role: BPEL-Client - - username: mso_admin - password: '$2a$10$Fh9ffgPw2vnmsghsRD3ZauBL1aKXebigbq3BB1RPWtE62UDILsjke' - role: ACTUATOR -server: - port: 8080 - tomcat: - max-threads: 50 - -mso: - key: 07a7159d3bf51a0e53be7a8f89699be7 - site-name: localSite - logPath: ./logs/nssmf - adapters: - requestDb: - endpoint: https://so-request-db-adapter.{{ include "common.namespace" . }}:8083 - auth: Basic YnBlbDpwYXNzd29yZDEk - infra: - endpoint: https://so.{{ include "common.namespace" . }}:8080 - auth: Basic SW5mcmFQb3J0YWxDbGllbnQ6cGFzc3dvcmQxJA== - -#Actuator -management: - endpoints: - web: - base-path: /manage - exposure: - include: "*" - metrics: - se-global-registry: false - export: - prometheus: - enabled: true # Whether exporting of metrics to Prometheus is enabled. - step: 1m # Step size (i.e. reporting frequency) to use.
\ No newline at end of file diff --git a/adapters/pom.xml b/adapters/pom.xml index b779659439..29f5c5ced1 100644 --- a/adapters/pom.xml +++ b/adapters/pom.xml @@ -22,7 +22,6 @@ <module>mso-vfc-adapter</module> <module>mso-openstack-adapters</module> <module>etsi-sol003-adapter</module> - <module>mso-nssmf-adapter</module> <module>mso-oof-adapter</module> <module>so-appc-orchestrator</module> </modules> diff --git a/packages/docker/pom.xml b/packages/docker/pom.xml index 759890d86c..41e0761712 100644 --- a/packages/docker/pom.xml +++ b/packages/docker/pom.xml @@ -223,30 +223,6 @@ </build> </image> <image> - <name>${docker.image.prefix}/nssmf-adapter</name> - <build> - <cleanup>try</cleanup> - <dockerFile>docker-files/Dockerfile.so-nssmf-adapter</dockerFile> - <tags> - <tag>${project.version}</tag> - <tag>${project.version}-${maven.build.timestamp}</tag> - <tag>${project.docker.latesttag.version}</tag> - </tags> - <assembly> - <inline> - <dependencySets> - <dependencySet> - <includes> - <include>org.onap.so.adapters:mso-nssmf-adapter</include> - </includes> - <outputFileNameMapping>app.jar</outputFileNameMapping> - </dependencySet> - </dependencySets> - </inline> - </assembly> - </build> - </image> - <image> <name>${docker.image.prefix}/so-oof-adapter</name> <build> <cleanup>try</cleanup> @@ -469,7 +445,7 @@ <goal>push</goal> </goals> <configuration> - <image>${docker.image.prefix}/catalog-db-adapter,${docker.image.prefix}/request-db-adapter,${docker.image.prefix}/sdnc-adapter,${docker.image.prefix}/openstack-adapter,${docker.image.prefix}/vfc-adapter,${docker.image.prefix}/sdc-controller,${docker.image.prefix}/bpmn-infra,${docker.image.prefix}/api-handler-infra,${docker.image.prefix}/so-monitoring,${docker.image.prefix}/so-simulator,${docker.image.prefix}/mso-nssmf-adapter,${docker.image.prefix}/so-oof-adapter,${docker.image.prefix}/so-etsi-nfvo-ns-lcm</image> + <image>${docker.image.prefix}/catalog-db-adapter,${docker.image.prefix}/request-db-adapter,${docker.image.prefix}/sdnc-adapter,${docker.image.prefix}/openstack-adapter,${docker.image.prefix}/vfc-adapter,${docker.image.prefix}/sdc-controller,${docker.image.prefix}/bpmn-infra,${docker.image.prefix}/api-handler-infra,${docker.image.prefix}/so-monitoring,${docker.image.prefix}/so-simulator,${docker.image.prefix}/so-oof-adapter,${docker.image.prefix}/so-etsi-nfvo-ns-lcm</image> </configuration> </execution> </executions> @@ -519,11 +495,6 @@ </dependency> <dependency> <groupId>org.onap.so.adapters</groupId> - <artifactId>mso-nssmf-adapter</artifactId> - <version>${project.version}</version> - </dependency> - <dependency> - <groupId>org.onap.so.adapters</groupId> <artifactId>mso-oof-adapter</artifactId> <version>${project.version}</version> </dependency> diff --git a/packages/docker/src/main/docker/docker-files/Dockerfile.so-nssmf-adapter b/packages/docker/src/main/docker/docker-files/Dockerfile.so-nssmf-adapter deleted file mode 100644 index 19368fb597..0000000000 --- a/packages/docker/src/main/docker/docker-files/Dockerfile.so-nssmf-adapter +++ /dev/null @@ -1,32 +0,0 @@ -FROM onap/so/base-image:1.0 - -ARG http_proxy -ENV HTTP_PROXY=$http_proxy -ENV http_proxy=$HTTP_PROXY -ARG https_proxy -ENV HTTPS_PROXY=$https_proxy -ENV https_proxy=$HTTPS_PROXY - -USER root -RUN mkdir -p /app/config -RUN mkdir -p /app/certificates -RUN mkdir -p /app/logs -RUN mkdir -p /app/ca-certificates -RUN apk update && apk add apache2-utils - -COPY maven/app.jar /app -COPY configs/logging/logback-spring.xml /app -COPY scripts/start-app.sh /app -COPY scripts/wait-for.sh /app -COPY ca-certificates/onap-ca.crt /app/ca-certificates/onap-ca.crt -RUN chown -R so:so /app - -USER so -# Springboot configuration (required) -VOLUME /app/config - -# Root certificates (optional) -VOLUME /app/ca-certificates - -WORKDIR /app -ENTRYPOINT ["/app/start-app.sh"] |