============LICENSE_START=======================================================
Copyright (c) 2021 Pantheon.tech.
Modifications Copyright (C) 2021 Bell Canada.
+ Modification Copyright (C) 2021 Nordix Foundation
================================================================================
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
</build>
</profile>
<profile>
- <id>xnf-docker</id>
+ <id>ncmp-docker</id>
<activation>
<activeByDefault>false</activeByDefault>
</activation>
<properties>
- <image.name>cps-nf-proxy</image.name>
+ <image.name>cps-ncmp</image.name>
</properties>
<dependencies>
<dependency>
<groupId>${project.groupId}</groupId>
- <artifactId>cps-nf-proxy-rest</artifactId>
+ <artifactId>cps-ncmp-rest</artifactId>
+ <version>${project.version}</version>
</dependency>
<dependency>
<groupId>${project.groupId}</groupId>
</build>
</profile>
<profile>
- <id>cps-xnf-docker</id>
+ <id>cps-ncmp-docker</id>
<activation>
<activeByDefault>true</activeByDefault>
</activation>
<properties>
- <image.name>cps-and-nf-proxy</image.name>
+ <image.name>cps-and-ncmp</image.name>
</properties>
<dependencies>
</dependency>
<dependency>
<groupId>${project.groupId}</groupId>
- <artifactId>cps-nf-proxy-rest</artifactId>
+ <artifactId>cps-ncmp-rest</artifactId>
+ <version>${project.version}</version>
</dependency>
<dependency>
<groupId>${project.groupId}</groupId>
<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ============LICENSE_START=======================================================
+ Modification Copyright (C) 2021 Nordix Foundation
+ ================================================================================
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+ ============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">
</dependency>
<dependency>
<groupId>${project.groupId}</groupId>
- <artifactId>cps-nf-proxy-service</artifactId>
+ <artifactId>cps-ncmp-service</artifactId>
<version>${project.version}</version>
</dependency>
<dependency>
<groupId>${project.groupId}</groupId>
- <artifactId>cps-nf-proxy-rest</artifactId>
+ <artifactId>cps-ncmp-rest</artifactId>
<version>${project.version}</version>
</dependency>
<dependency>
+# ============LICENSE_START=======================================================
+# Modification (C) 2021 Nordix Foundation
+# ================================================================================
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+# SPDX-License-Identifier: Apache-2.0
+# ============LICENSE_END=========================================================
+
components:
schemas:
ErrorMessage:
cmHandleInPath:
name: cm-handle
in: path
- description: The identifier for a network function, network element, subnetwork or any other cm object by managed NF-Proxy
+ description: The identifier for a network function, network element, subnetwork or any other cm object by managed Network CM Proxy
required: true
schema:
type: string
+# ============LICENSE_START=======================================================
+# Modification (C) 2021 Nordix Foundation
+# ================================================================================
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+# SPDX-License-Identifier: Apache-2.0
+# ============LICENSE_END=========================================================
+
nodeByCmHandleAndXpath:
get:
description: Get a node with an option to retrieve all the children for a given cm Handle
tags:
- - nf-proxy
+ - network-cm-proxy
summary: Get a node given a cm Handle and xpath
operationId: getNodeByCmHandleAndXpath
parameters:
get:
description: Query nodes for the given cps path and cm Handle
tags:
- - nf-proxy
+ - network-cm-proxy
summary: Query data nodes
operationId: queryNodesByCmHandleAndCpsPath
parameters:
patch:
description: Update node leaves for the given cps path and cm Handle
tags:
- - nf-proxy
+ - network-cm-proxy
summary: Update node leaves
operationId: updateNodeLeaves
parameters:
put:
description: Replace a node with descendants for the given cps path and cm Handle
tags:
- - nf-proxy
+ - network-cm-proxy
summary: Replace a node with descendants
operationId: replaceNode
parameters:
--- /dev/null
+# ============LICENSE_START=======================================================
+# Modification (C) 2021 Nordix Foundation
+# ================================================================================
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+# SPDX-License-Identifier: Apache-2.0
+# ============LICENSE_END=========================================================
+
+openapi: 3.0.1
+info:
+ title: NCMP to CPS Proxy API
+ description: NCMP to CPS Proxy API
+ version: "1.0"
+servers:
+ - url: //localhost:8088/
+paths:
+ /v1/cm-handles/{cm-handle}/node:
+ $ref: 'ncmproxy.yml#/nodeByCmHandleAndXpath'
+
+ /v1/cm-handles/{cm-handle}/nodes/query:
+ $ref: 'ncmproxy.yml#/nodesByCmHandleAndCpsPath'
+
+ /v1/cm-handles/{cm-handle}/nodes:
+ $ref: 'ncmproxy.yml#/nodesByCmHandleAndXpath'
\ No newline at end of file
--- /dev/null
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ============LICENSE_START=======================================================
+ Modification Copyright (C) 2021 Nordix Foundation
+ ================================================================================
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+ ============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 https://maven.apache.org/xsd/maven-4.0.0.xsd">
+<modelVersion>4.0.0</modelVersion>
+<parent>
+ <groupId>org.onap.cps</groupId>
+ <artifactId>cps-parent</artifactId>
+ <version>1.1.0-SNAPSHOT</version>
+ <relativePath>../cps-parent/pom.xml</relativePath>
+</parent>
+
+<artifactId>cps-ncmp-rest</artifactId>
+
+<properties>
+ <minimum-coverage>0.0</minimum-coverage>
+</properties>
+
+<dependencies>
+ <dependency>
+ <groupId>${project.groupId}</groupId>
+ <artifactId>cps-ncmp-service</artifactId>
+ <version>${project.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.springframework.boot</groupId>
+ <artifactId>spring-boot-starter-web</artifactId>
+ <exclusions>
+ <exclusion>
+ <groupId>org.springframework.boot</groupId>
+ <artifactId>spring-boot-starter-tomcat</artifactId>
+ </exclusion>
+ </exclusions>
+ </dependency>
+ <dependency>
+ <groupId>org.springframework.boot</groupId>
+ <artifactId>spring-boot-starter-jetty</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>io.swagger.core.v3</groupId>
+ <artifactId>swagger-annotations</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>io.springfox</groupId>
+ <artifactId>springfox-boot-starter</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>io.swagger</groupId>
+ <artifactId>swagger-annotations</artifactId>
+ </dependency>
+ <!-- T E S T D E P E N D E N C I E S -->
+ <dependency>
+ <groupId>org.codehaus.groovy</groupId>
+ <artifactId>groovy</artifactId>
+ <scope>test</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.spockframework</groupId>
+ <artifactId>spock-core</artifactId>
+ <scope>test</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.spockframework</groupId>
+ <artifactId>spock-spring</artifactId>
+ <scope>test</scope>
+ </dependency>
+ <dependency>
+ <groupId>cglib</groupId>
+ <artifactId>cglib-nodep</artifactId>
+ <scope>test</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.springframework.boot</groupId>
+ <artifactId>spring-boot-starter-test</artifactId>
+ <scope>test</scope>
+ <exclusions>
+ <exclusion>
+ <groupId>org.junit.vintage</groupId>
+ <artifactId>junit-vintage-engine</artifactId>
+ </exclusion>
+ </exclusions>
+ </dependency>
+ <dependency>
+ <groupId>com.google.code.gson</groupId>
+ <artifactId>gson</artifactId>
+ </dependency>
+</dependencies>
+
+<build>
+ <plugins>
+ <!-- Swagger code generation. -->
+ <plugin>
+ <groupId>io.swagger.codegen.v3</groupId>
+ <artifactId>swagger-codegen-maven-plugin</artifactId>
+ <executions>
+ <execution>
+ <goals>
+ <goal>generate</goal>
+ </goals>
+ <configuration>
+ <inputSpec>${project.basedir}/docs/openapi/openapi.yml</inputSpec>
+ <invokerPackage>org.onap.cps.ncmp.rest.controller</invokerPackage>
+ <modelPackage>org.onap.cps.ncmp.rest.model</modelPackage>
+ <apiPackage>org.onap.cps.ncmp.rest.api</apiPackage>
+ <language>spring</language>
+ <generateSupportingFiles>false</generateSupportingFiles>
+ <configOptions>
+ <sourceFolder>src/gen/java</sourceFolder>
+ <dateLibrary>java11</dateLibrary>
+ <interfaceOnly>true</interfaceOnly>
+ <useTags>true</useTags>
+ </configOptions>
+ </configuration>
+ </execution>
+ </executions>
+ </plugin>
+ </plugins>
+</build>
+</project>
/*-
* ============LICENSE_START=======================================================
* Copyright (C) 2021 Pantheon.tech
+ * Modifications (C) 2021 Nordix Foundation
* ================================================================================
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* ============LICENSE_END=========================================================
*/
-package org.onap.cps.nfproxy.config;
+package org.onap.cps.ncmp.config;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import springfox.documentation.spring.web.plugins.Docket;
@Configuration
-public class NfProxyConfig {
+public class NetworkCmProxyConfig {
/**
* Swagger-ui configuration.
*/
- @Bean("nf-proxy-docket")
+ @Bean("ncmp-docket")
public Docket api() {
return new Docket(DocumentationType.OAS_30)
- .groupName("nf-proxy-docket")
+ .groupName("ncmp-docket")
.select()
.apis(RequestHandlerSelectors.any())
.paths(PathSelectors.any())
* ============LICENSE_END=========================================================
*/
-package org.onap.cps.nfproxy.rest.controller;
+package org.onap.cps.ncmp.rest.controller;
import com.google.gson.Gson;
import com.google.gson.GsonBuilder;
import java.util.Collection;
import javax.validation.Valid;
-import org.onap.cps.nfproxy.api.NfProxyDataService;
-import org.onap.cps.nfproxy.rest.api.NfProxyApi;
+import org.onap.cps.ncmp.api.NetworkCmProxyDataService;
+import org.onap.cps.ncmp.rest.api.NetworkCmProxyApi;
import org.onap.cps.spi.FetchDescendantsOption;
import org.onap.cps.spi.model.DataNode;
import org.onap.cps.utils.DataMapUtils;
@RestController
-@RequestMapping("${rest.api.xnf-base-path}")
-public class NfProxyController implements NfProxyApi {
+@RequestMapping("${rest.api.ncmp-base-path}")
+public class NetworkCmProxyController implements NetworkCmProxyApi {
private static final Gson GSON = new GsonBuilder().create();
private static final String XPATH_ROOT = "/";
@Autowired
- private NfProxyDataService nfProxyDataService;
+ private NetworkCmProxyDataService networkCmProxyDataService;
@Override
public ResponseEntity<Object> getNodeByCmHandleAndXpath(final String cmHandle, @Valid final String xpath,
}
final FetchDescendantsOption fetchDescendantsOption = Boolean.TRUE.equals(includeDescendants)
? FetchDescendantsOption.INCLUDE_ALL_DESCENDANTS : FetchDescendantsOption.OMIT_DESCENDANTS;
- final DataNode dataNode = nfProxyDataService.getDataNode(cmHandle, xpath, fetchDescendantsOption);
+ final DataNode dataNode = networkCmProxyDataService.getDataNode(cmHandle, xpath, fetchDescendantsOption);
return new ResponseEntity<>(DataMapUtils.toDataMap(dataNode), HttpStatus.OK);
}
final FetchDescendantsOption fetchDescendantsOption = Boolean.TRUE.equals(includeDescendants)
? FetchDescendantsOption.INCLUDE_ALL_DESCENDANTS : FetchDescendantsOption.OMIT_DESCENDANTS;
final Collection<DataNode> dataNodes =
- nfProxyDataService.queryDataNodes(cmHandle, cpsPath, fetchDescendantsOption);
+ networkCmProxyDataService.queryDataNodes(cmHandle, cpsPath, fetchDescendantsOption);
return new ResponseEntity<>(GSON.toJson(dataNodes), HttpStatus.OK);
}
@Override
public ResponseEntity<Object> replaceNode(@Valid final String jsonData, final String cmHandle,
@Valid final String parentNodeXpath) {
- nfProxyDataService.replaceNodeTree(cmHandle, parentNodeXpath, jsonData);
+ networkCmProxyDataService.replaceNodeTree(cmHandle, parentNodeXpath, jsonData);
return new ResponseEntity<>(HttpStatus.OK);
}
@Override
public ResponseEntity<Object> updateNodeLeaves(@Valid final String jsonData, final String cmHandle,
@Valid final String parentNodeXpath) {
- nfProxyDataService.updateNodeLeaves(cmHandle, parentNodeXpath, jsonData);
+ networkCmProxyDataService.updateNodeLeaves(cmHandle, parentNodeXpath, jsonData);
return new ResponseEntity<>(HttpStatus.OK);
}
}
* ============LICENSE_END=========================================================
*/
-package org.onap.cps.nfproxy.rest.exceptions;
+package org.onap.cps.ncmp.rest.exceptions;
import lombok.AccessLevel;
import lombok.NoArgsConstructor;
import lombok.extern.slf4j.Slf4j;
-import org.onap.cps.nfproxy.rest.controller.NfProxyController;
-import org.onap.cps.nfproxy.rest.model.ErrorMessage;
+import org.onap.cps.ncmp.rest.controller.NetworkCmProxyController;
+import org.onap.cps.ncmp.rest.model.ErrorMessage;
import org.onap.cps.spi.exceptions.CpsException;
import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
*/
@Slf4j
@NoArgsConstructor(access = AccessLevel.PRIVATE)
-@RestControllerAdvice(assignableTypes = {NfProxyController.class})
-public class NfProxyRestExceptionHandler {
+@RestControllerAdvice(assignableTypes = {NetworkCmProxyController.class})
+public class NetworkCmProxyRestExceptionHandler {
private static final String CHECK_LOGS_FOR_DETAILS = "Check logs for details.";
{
"resourcePackages": [
- "org.onap.cps.nfproxy.rest.controller"
+ "org.onap.cps.ncmp.rest.controller"
],
"prettyPrint": true,
"cacheTTL": 0,
"openAPI": {
"info": {
- "title": "ONAP Open API v3 CPS xNF Proxy Spec",
+ "title": "ONAP Open API v3 CPS Network CM Proxy Spec",
"description": "The API Description may be multiline, and GitHub Flavored Markdown, GFM syntax, can be used for rich text representation.",
"x-logo": {
"url": "logo.png"
/*
* ============LICENSE_START=======================================================
* Copyright (C) 2021 highstreet technologies GmbH
+ * Modification Copyright (C) 2021 Nordix Foundation
* ================================================================================
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* ============LICENSE_END=========================================================
*/
-package org.onap.cps.nfproxy.config
+package org.onap.cps.ncmp.config
import spock.lang.Specification
import springfox.documentation.spring.web.plugins.Docket
-class NfProxyConfigSpec extends Specification {
- def objectUnderTest = new NfProxyConfig()
+class NetworkCmProxyConfigSpec extends Specification {
+ def objectUnderTest = new NetworkCmProxyConfig()
- def 'NfProxy configuration has a Docket API.'() {
- expect: 'the NfProxy configuration has a Docket API'
+ def 'NetworkCmProxy configuration has a Docket API.'() {
+ expect: 'the NetworkCmProxy configuration has a Docket API'
objectUnderTest.api() instanceof Docket
}
}
* ============LICENSE_END=========================================================
*/
-package org.onap.cps.nfproxy.rest.controller
+package org.onap.cps.ncmp.rest.controller
import com.google.gson.Gson
-import org.onap.cps.nfproxy.api.NfProxyDataService
+import org.onap.cps.ncmp.api.NetworkCmProxyDataService
import org.onap.cps.spi.model.DataNodeBuilder
import org.spockframework.spring.SpringBean
import org.springframework.beans.factory.annotation.Autowired
import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.*
@WebMvcTest
-class NfProxyControllerSpec extends Specification {
+class NetworkCmProxyControllerSpec extends Specification {
@Autowired
MockMvc mvc
@SpringBean
- NfProxyDataService mockNfProxyDataService = Mock()
+ NetworkCmProxyDataService mockNetworkCmProxyDataService = Mock()
- @Value('${rest.api.xnf-base-path}')
+ @Value('${rest.api.ncmp-base-path}')
def basePath
def dataNodeBaseEndpoint
given: 'service method returns a list containing a data node'
def dataNode = new DataNodeBuilder().withXpath('/xpath').build()
def cpsPath = 'some cps-path'
- mockNfProxyDataService.queryDataNodes(cmHandle, cpsPath, expectedCpsDataServiceOption) >> [dataNode]
+ mockNetworkCmProxyDataService.queryDataNodes(cmHandle, cpsPath, expectedCpsDataServiceOption) >> [dataNode]
and: 'the query endpoint'
def dataNodeEndpoint = "$dataNodeBaseEndpoint/cm-handles/$cmHandle/nodes/query"
when: 'query data nodes API is invoked'
.param('xpath', xpath)
).andReturn().response
then: 'the service method is invoked once with expected parameters'
- 1 * mockNfProxyDataService.updateNodeLeaves(cmHandle, xpath, jsonData)
+ 1 * mockNetworkCmProxyDataService.updateNodeLeaves(cmHandle, xpath, jsonData)
and: 'response status indicates success'
response.status == HttpStatus.OK.value()
}
.param('xpath', xpath)
).andReturn().response
then: 'the service method is invoked once with expected parameters'
- 1 * mockNfProxyDataService.replaceNodeTree(cmHandle, xpath, jsonData)
+ 1 * mockNetworkCmProxyDataService.replaceNodeTree(cmHandle, xpath, jsonData)
and: 'response status indicates success'
response.status == HttpStatus.OK.value()
}
given: 'the service returns a data node'
def xpath = 'some xpath'
def dataNode = new DataNodeBuilder().withXpath(xpath).withLeaves(["leaf": "value"]).build()
- mockNfProxyDataService.getDataNode(cmHandle, xpath, OMIT_DESCENDANTS) >> dataNode
+ mockNetworkCmProxyDataService.getDataNode(cmHandle, xpath, OMIT_DESCENDANTS) >> dataNode
and: 'the query endpoint'
def endpoint = "$dataNodeBaseEndpoint/cm-handles/$cmHandle/node"
when: 'get request is performed through REST API'
/*
* ============LICENSE_START=======================================================
* Copyright (C) 2021 highstreet technologies GmbH
+ * Modification Copyright (C) 2021 Nordix Foundation
* ================================================================================
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* ============LICENSE_END=========================================================
*/
-package org.onap.cps.nfproxy.rest.exceptions
+package org.onap.cps.ncmp.rest.exceptions
import groovy.json.JsonSlurper
-import org.onap.cps.nfproxy.api.NfProxyDataService
+import org.onap.cps.ncmp.api.NetworkCmProxyDataService
import org.onap.cps.spi.FetchDescendantsOption
import org.onap.cps.spi.exceptions.CpsException
import org.spockframework.spring.SpringBean
import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.get
@WebMvcTest
-class NfProxyRestExceptionHandlerSpec extends Specification {
+class NetworkCmProxyRestExceptionHandlerSpec extends Specification {
@Autowired
MockMvc mvc
@SpringBean
- NfProxyDataService mockNfProxyDataService = Mock()
+ NetworkCmProxyDataService mockNetworkCmProxyDataService = Mock()
- @Value('${rest.api.xnf-base-path}')
+ @Value('${rest.api.ncmp-base-path}')
def basePath
def dataNodeBaseEndpoint
}
def setupTestException(exception) {
- mockNfProxyDataService.getDataNode(cmHandle, xpath, FetchDescendantsOption.OMIT_DESCENDANTS) >>
+ mockNetworkCmProxyDataService.getDataNode(cmHandle, xpath, FetchDescendantsOption.OMIT_DESCENDANTS) >>
{ throw exception}
}
--- /dev/null
+# ============LICENSE_START=======================================================
+# Copyright (C) 2021 Nordix Foundation
+# ================================================================================
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+# SPDX-License-Identifier: Apache-2.0
+# ============LICENSE_END=========================================================
+
+rest:
+ api:
+ ncmp-base-path: /cps-ncmp/api
+spring:
\ No newline at end of file
--- /dev/null
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ============LICENSE_START=======================================================
+ Modification Copyright (C) 2021 Nordix Foundation
+ ================================================================================
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+ ============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.cps</groupId>
+ <artifactId>cps-parent</artifactId>
+ <version>1.1.0-SNAPSHOT</version>
+ <relativePath>../cps-parent/pom.xml</relativePath>
+</parent>
+
+<artifactId>cps-ncmp-service</artifactId>
+
+<properties>
+ <minimum-coverage>0.0</minimum-coverage>
+</properties>
+
+<dependencies>
+ <dependency>
+ <groupId>org.springframework.boot</groupId>
+ <artifactId>spring-boot-starter-validation</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>${project.groupId}</groupId>
+ <artifactId>cps-service</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.spockframework</groupId>
+ <artifactId>spock-core</artifactId>
+ <scope>test</scope>
+ </dependency>
+</dependencies>
+</project>
\ No newline at end of file
* ============LICENSE_END=========================================================
*/
-package org.onap.cps.nfproxy.api;
+package org.onap.cps.ncmp.api;
import java.util.Collection;
import org.checkerframework.checker.nullness.qual.NonNull;
/*
* Datastore interface for handling CPS data.
*/
-public interface NfProxyDataService {
+public interface NetworkCmProxyDataService {
/**
* Retrieves datanode by XPath for a given cm handle.
*
* @param cmHandle The identifier for a network function, network element, subnetwork or any other cm
- * object by managed NF-Proxy
+ * object by managed Network CM Proxy
* @param xpath xpath
* @param fetchDescendantsOption defines the scope of data to fetch: either single node or all the descendant nodes
* (recursively) as well
* Get datanodes for the given cm handle by cps path.
*
* @param cmHandle The identifier for a network function, network element, subnetwork or any other cm
- * object by managed NF-Proxy
+ * object by managed Network CM Proxy
* @param cpsPath cps path
* @param fetchDescendantsOption defines whether the descendants of the node(s) found by the query should be
* included in the output
* Updates data node for given cm handle using xpath to parent node.
*
* @param cmHandle The identifier for a network function, network element, subnetwork or any other cm object
- * by managed NF-Proxy
+ * by managed Network CM Proxy
* @param parentNodeXpath xpath to parent node
* @param jsonData json data
*/
* Replaces existing data node content including descendants.
*
* @param cmHandle The identifier for a network function, network element, subnetwork or any other cm object
- * by managed NF-Proxy
+ * by managed Network CM Proxy
* @param parentNodeXpath xpath to parent node
* @param jsonData json data
*/
* ============LICENSE_END=========================================================
*/
-package org.onap.cps.nfproxy.api.impl;
+package org.onap.cps.ncmp.api.impl;
import java.util.Collection;
import org.onap.cps.api.CpsDataService;
import org.onap.cps.api.CpsQueryService;
-import org.onap.cps.nfproxy.api.NfProxyDataService;
+import org.onap.cps.ncmp.api.NetworkCmProxyDataService;
import org.onap.cps.spi.FetchDescendantsOption;
import org.onap.cps.spi.model.DataNode;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
@Service
-public class NfProxyDataServiceImpl implements NfProxyDataService {
+public class NetworkCmProxyDataServiceImpl implements NetworkCmProxyDataService {
private static final String NF_PROXY_DATASPACE_NAME = "NFP-Operational";
import org.onap.cps.api.CpsDataService
import org.onap.cps.api.CpsQueryService
-import org.onap.cps.nfproxy.api.impl.NfProxyDataServiceImpl
+import org.onap.cps.ncmp.api.impl.NetworkCmProxyDataServiceImpl
import org.onap.cps.spi.FetchDescendantsOption
import spock.lang.Specification
-class NfProxyDataServiceImplSpec extends Specification {
- def objectUnderTest = new NfProxyDataServiceImpl()
+class NetworkCmProxyDataServiceImplSpec extends Specification {
+ def objectUnderTest = new NetworkCmProxyDataServiceImpl()
def mockcpsDataService = Mock(CpsDataService)
def mockcpsQueryService = Mock(CpsQueryService)
+++ /dev/null
-openapi: 3.0.1
-info:
- title: xNF to CPS Proxy API
- description: xNF to CPS Proxy API
- version: "1.0"
-servers:
- - url: //localhost:8088/
-paths:
- /v1/cm-handles/{cm-handle}/node:
- $ref: 'xnfProxy.yml#/nodeByCmHandleAndXpath'
-
- /v1/cm-handles/{cm-handle}/nodes/query:
- $ref: 'xnfProxy.yml#/nodesByCmHandleAndCpsPath'
-
- /v1/cm-handles/{cm-handle}/nodes:
- $ref: 'xnfProxy.yml#/nodesByCmHandleAndXpath'
\ No newline at end of file
+++ /dev/null
-<project xmlns="http://maven.apache.org/POM/4.0.0"
- xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
- <modelVersion>4.0.0</modelVersion>
- <parent>
- <groupId>org.onap.cps</groupId>
- <artifactId>cps-parent</artifactId>
- <version>1.1.0-SNAPSHOT</version>
- <relativePath>../cps-parent/pom.xml</relativePath>
- </parent>
-
- <artifactId>cps-nf-proxy-rest</artifactId>
-
- <properties>
- <minimum-coverage>0.0</minimum-coverage>
- </properties>
-
- <dependencies>
- <dependency>
- <groupId>${project.groupId}</groupId>
- <artifactId>cps-nf-proxy-service</artifactId>
- </dependency>
- <dependency>
- <groupId>org.springframework.boot</groupId>
- <artifactId>spring-boot-starter-web</artifactId>
- <exclusions>
- <exclusion>
- <groupId>org.springframework.boot</groupId>
- <artifactId>spring-boot-starter-tomcat</artifactId>
- </exclusion>
- </exclusions>
- </dependency>
- <dependency>
- <groupId>org.springframework.boot</groupId>
- <artifactId>spring-boot-starter-jetty</artifactId>
- </dependency>
- <dependency>
- <groupId>io.swagger.core.v3</groupId>
- <artifactId>swagger-annotations</artifactId>
- </dependency>
- <dependency>
- <groupId>io.springfox</groupId>
- <artifactId>springfox-boot-starter</artifactId>
- </dependency>
- <dependency>
- <groupId>io.swagger</groupId>
- <artifactId>swagger-annotations</artifactId>
- </dependency>
- <!-- T E S T D E P E N D E N C I E S -->
- <dependency>
- <groupId>org.codehaus.groovy</groupId>
- <artifactId>groovy</artifactId>
- <scope>test</scope>
- </dependency>
- <dependency>
- <groupId>org.spockframework</groupId>
- <artifactId>spock-core</artifactId>
- <scope>test</scope>
- </dependency>
- <dependency>
- <groupId>org.spockframework</groupId>
- <artifactId>spock-spring</artifactId>
- <scope>test</scope>
- </dependency>
- <dependency>
- <groupId>cglib</groupId>
- <artifactId>cglib-nodep</artifactId>
- <scope>test</scope>
- </dependency>
- <dependency>
- <groupId>org.springframework.boot</groupId>
- <artifactId>spring-boot-starter-test</artifactId>
- <scope>test</scope>
- <exclusions>
- <exclusion>
- <groupId>org.junit.vintage</groupId>
- <artifactId>junit-vintage-engine</artifactId>
- </exclusion>
- </exclusions>
- </dependency>
- </dependencies>
-
- <build>
- <plugins>
- <!-- Swagger code generation. -->
- <plugin>
- <groupId>io.swagger.codegen.v3</groupId>
- <artifactId>swagger-codegen-maven-plugin</artifactId>
- <executions>
- <execution>
- <goals>
- <goal>generate</goal>
- </goals>
- <configuration>
- <inputSpec>${project.basedir}/docs/openapi/openapi.yml</inputSpec>
- <invokerPackage>org.onap.cps.nfproxy.rest.controller</invokerPackage>
- <modelPackage>org.onap.cps.nfproxy.rest.model</modelPackage>
- <apiPackage>org.onap.cps.nfproxy.rest.api</apiPackage>
- <language>spring</language>
- <generateSupportingFiles>false</generateSupportingFiles>
- <configOptions>
- <sourceFolder>src/gen/java</sourceFolder>
- <dateLibrary>java11</dateLibrary>
- <interfaceOnly>true</interfaceOnly>
- <useTags>true</useTags>
- </configOptions>
- </configuration>
- </execution>
- </executions>
- </plugin>
- </plugins>
- </build>
-</project>
+++ /dev/null
-
-rest:
- api:
- xnf-base-path: /xnf-proxy/api
-spring:
+++ /dev/null
-<?xml version="1.0" encoding="UTF-8"?>
-<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.cps</groupId>
- <artifactId>cps-parent</artifactId>
- <version>1.1.0-SNAPSHOT</version>
- <relativePath>../cps-parent/pom.xml</relativePath>
- </parent>
-
- <artifactId>cps-nf-proxy-service</artifactId>
-
- <properties>
- <minimum-coverage>0.0</minimum-coverage>
- </properties>
-
- <dependencies>
- <dependency>
- <groupId>org.springframework.boot</groupId>
- <artifactId>spring-boot-starter-validation</artifactId>
- </dependency>
- <dependency>
- <groupId>${project.groupId}</groupId>
- <artifactId>cps-service</artifactId>
- </dependency>
- <dependency>
- <groupId>org.spockframework</groupId>
- <artifactId>spock-core</artifactId>
- <scope>test</scope>
- </dependency>
- </dependencies>
-</project>
\ No newline at end of file
../cps-service/target/site/jacoco-aggregate/jacoco.xml,
../cps-rest/target/site/jacoco-ut/jacoco.xml,
../cps-rest/target/site/jacoco-aggregate/jacoco.xml,
- ../cps-nf-proxy-rest/target/site/jacoco-ut/jacoco.xml,
- ../cps-nf-proxy-rest/target/site/jacoco-aggregate/jacoco.xml,
+ ../cps-ncmp-rest/target/site/jacoco-ut/jacoco.xml,
+ ../cps-ncmp-rest/target/site/jacoco-aggregate/jacoco.xml,
../cps-application/target/site/jacoco-ut/jacoco.xml,
../cps-application/target/site/jacoco-aggregate/jacoco.xml
</sonar.coverage.jacoco.xmlReportPaths>
without generating any docker images:
```bash
-mvn clean install -Pcps-docker -Pxnf-docker -Pcps-xnf-docker -Djib.skip
+mvn clean install -Pcps-docker -Pncmp-docker -Pcps-ncmp-docker -Djib.skip
```
## Building Java Archive and Docker images
* Following command builds the JAR file and also generates the Docker image for all CPS components:
```bash
-mvn clean install -Pcps-docker -Pxnf-docker -Pcps-xnf-docker -Dnexus.repository=
+mvn clean install -Pcps-docker -Pncmp-docker -Pcps-ncmp-docker -Dnexus.repository=
```
* Following command builds the JAR file and generates the Docker image for specified CPS component:
- (with `<docker-profile>` being one of `cps-docker`, `xnf-docker` or `cps-xnf-docker`):
+ (with `<docker-profile>` being one of `cps-docker`, `ncmp-docker` or `cps-ncmp-docker`):
```bash
mvn clean install -P<docker-profile> -Dnexus.repository=
`docker-compose/docker-compose.yml` file is provided to be run with `docker-compose` tool and images previously built.
It starts both Postgres database and CPS services.
-1. Edit `docker-compose.yml` and uncomment desired service to be deployed, by default `cps-and-nf-proxy`
- is enabled. You can comment it and uncomment `cps-standalone` or `nf-proxy-standalone`.
+1. Edit `docker-compose.yml` and uncomment desired service to be deployed, by default `cps-and-ncmp`
+ is enabled. You can comment it and uncomment `cps-standalone` or `ncmp-standalone`.
2. Execute following command from `docker-compose` folder:
```bash
+# ============LICENSE_START=======================================================\r
+# Modification (C) 2021 Nordix Foundation\r
+# ================================================================================\r
+# Licensed under the Apache License, Version 2.0 (the "License");\r
+# you may not use this file except in compliance with the License.\r
+# You may obtain a copy of the License at\r
+#\r
+# http://www.apache.org/licenses/LICENSE-2.0\r
+# Unless required by applicable law or agreed to in writing, software\r
+# distributed under the License is distributed on an "AS IS" BASIS,\r
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r
+# See the License for the specific language governing permissions and\r
+# limitations under the License.\r
+#\r
+# SPDX-License-Identifier: Apache-2.0\r
+# ============LICENSE_END=========================================================\r
+\r
server:\r
port: 8080\r
\r
rest:\r
api:\r
cps-base-path: /cps/api\r
- xnf-base-path: /cps-nf-proxy/api\r
+ ncmp-base-path: /cps-ncmp/api\r
\r
spring:\r
main:\r
# ============LICENSE_START=======================================================
# Copyright (c) 2020 Pantheon.tech.
# Modifications Copyright (C) 2021 Bell Canada.
+# Modification (C) 2021 Nordix Foundation
# ================================================================================
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# depends_on:
# - dbpostgresql
- #nf-proxy-standalone:
- # container_name: cps-nf-proxy
- # image: cps-nf-proxy:${VERSION}
+ #ncmp-standalone:
+ # container_name: cps-ncmp
+ # image: cps-ncmp:${VERSION}
# volumes:
# - "./application.yml:/app/resources/application.yml"
# ports:
# depends_on:
# - dbpostgresql
- cps-and-nf-proxy:
- container_name: cps-and-nf-proxy
- image: cps-and-nf-proxy:${VERSION}
+ cps-and-ncmp:
+ container_name: cps-and-ncmp
+ image: cps-and-ncmp:${VERSION}
volumes:
- "./application.yml:/app/resources/application.yml"
ports:
environment:
POSTGRES_DB: cpsdb
POSTGRES_USER: ${DB_USERNAME}
- POSTGRES_PASSWORD: ${DB_PASSWORD}
\ No newline at end of file
+ POSTGRES_PASSWORD: ${DB_PASSWORD}
============LICENSE_START=======================================================\r
Copyright (c) 2020 Linux Foundation.\r
Modifications Copyright (C) 2021 Bell Canada.\r
+ Modification Copyright (C) 2021 Nordix Foundation\r
================================================================================\r
Licensed under the Apache License, Version 2.0 (the "License");\r
you may not use this file except in compliance with the License.\r
<module>cps-parent</module>\r
<module>cps-service</module>\r
<module>cps-rest</module>\r
- <module>cps-nf-proxy-service</module>\r
- <module>cps-nf-proxy-rest</module>\r
+ <module>cps-ncmp-service</module>\r
+ <module>cps-ncmp-rest</module>\r
<module>cps-ri</module>\r
<module>checkstyle</module>\r
<module>spotbugs</module>\r