summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorsourabh_sourabh <sourabh.sourabh@est.tech>2024-01-04 17:01:27 +0000
committersourabh_sourabh <sourabh.sourabh@est.tech>2024-01-11 11:22:34 +0000
commit02d8bf8c8a3469f75ef841c9d8c72349c51f3330 (patch)
treec2334148ec039389f70eb626609a742356114a66
parent8092359e5a03ebfd1fe5afaee3e6e64fdba082d3 (diff)
Improve dmi plugin csit stub
- Modified dmi plugin stub to return diff. modules based on cm handle id Issue-ID: CPS-2006 Change-Id: I61a0fd11b8f41ceb69dac296ad3570b91137cdcd Signed-off-by: sourabh_sourabh <sourabh.sourabh@est.tech>
-rw-r--r--csit/data/cps-core/dataOperationRequest.json2
-rw-r--r--csit/data/subscription-notification/cmSubscriptionNcmpInEventForCsit.json2
-rw-r--r--csit/data/subscription-notification/createCmHandleRequestBody.json2
-rw-r--r--csit/plans/cps/sdnc/check_sdnc_mount_node.sh8
-rw-r--r--csit/tests/cm-handle-query/cm-handle-query.robot6
-rw-r--r--csit/tests/cps-data-operations/cps-data-operations.robot4
-rw-r--r--csit/tests/cps-data-sync/cps-data-sync.robot8
-rw-r--r--csit/tests/cps-model-sync/cps-model-sync.robot16
-rw-r--r--csit/tests/ncmp-passthrough/ncmp-passthrough.robot26
-rw-r--r--dmi-plugin-demo-and-csit-stub/dmi-plugin-demo-and-csit-stub-service/src/main/java/org/onap/cps/ncmp/dmi/rest/stub/controller/DmiRestStubController.java45
-rw-r--r--dmi-plugin-demo-and-csit-stub/dmi-plugin-demo-and-csit-stub-service/src/main/resources/module/bookStoreModuleResourcesResponse.json27
-rw-r--r--dmi-plugin-demo-and-csit-stub/dmi-plugin-demo-and-csit-stub-service/src/main/resources/module/bookStoreModuleResponse.json24
-rw-r--r--dmi-plugin-demo-and-csit-stub/dmi-plugin-demo-and-csit-stub-service/src/main/resources/module/ietfYangModuleResourcesResponse.json (renamed from dmi-plugin-demo-and-csit-stub/dmi-plugin-demo-and-csit-stub-service/src/main/resources/module/moduleResourcesResponse.json)3
-rw-r--r--dmi-plugin-demo-and-csit-stub/dmi-plugin-demo-and-csit-stub-service/src/main/resources/module/ietfYangModuleResponse.json (renamed from dmi-plugin-demo-and-csit-stub/dmi-plugin-demo-and-csit-stub-service/src/main/resources/module/moduleResponse.json)2
14 files changed, 119 insertions, 56 deletions
diff --git a/csit/data/cps-core/dataOperationRequest.json b/csit/data/cps-core/dataOperationRequest.json
index 1b94a299dc..ddaecdfb9a 100644
--- a/csit/data/cps-core/dataOperationRequest.json
+++ b/csit/data/cps-core/dataOperationRequest.json
@@ -6,7 +6,7 @@
"datastore": "ncmp-datastore:passthrough-operational",
"options": "(fields=schemas/schema)",
"resourceIdentifier": "parent/child",
- "targetIds": ["850117873c9a4936856a5081be96e6a8"]
+ "targetIds": ["CMHandle1"]
}
]
} \ No newline at end of file
diff --git a/csit/data/subscription-notification/cmSubscriptionNcmpInEventForCsit.json b/csit/data/subscription-notification/cmSubscriptionNcmpInEventForCsit.json
index be749adaca..755f9a9779 100644
--- a/csit/data/subscription-notification/cmSubscriptionNcmpInEventForCsit.json
+++ b/csit/data/subscription-notification/cmSubscriptionNcmpInEventForCsit.json
@@ -11,7 +11,7 @@
},
"predicates": {
"targets": [
- "CMHandle1"
+ "ietfYang-CMHandle1"
],
"datastore": "ncmp-datastore:passthrough-running",
"datastore-xpath-filter": "//_3gpp-nr-nrm-gnbdufunction:GNBDUFunction/_3gpp-nr-nrm-nrcelldu:NRCellDU/ | //_3gpp-nr-nrm-gnbcuupfunction:GNBCUUPFunction// | //_3gpp-nr-nrm-gnbcucpfunction:GNBCUCPFunction/_3gpp-nr-nrm-nrcelldu:NRCellCU// | //_3gpp-nr-nrm-nrsectorcarrier:NRSectorCarrier//"
diff --git a/csit/data/subscription-notification/createCmHandleRequestBody.json b/csit/data/subscription-notification/createCmHandleRequestBody.json
index 642ea6269e..cc096e4aa8 100644
--- a/csit/data/subscription-notification/createCmHandleRequestBody.json
+++ b/csit/data/subscription-notification/createCmHandleRequestBody.json
@@ -3,7 +3,7 @@
"dmiModelPlugin":"x",
"createdCmHandles": [
{
- "cmHandle": "CMHandle1",
+ "cmHandle": "ietfYang-CMHandle1",
"cmHandleProperties": {
"Books": "Social Media"
},
diff --git a/csit/plans/cps/sdnc/check_sdnc_mount_node.sh b/csit/plans/cps/sdnc/check_sdnc_mount_node.sh
index 9ea6670769..e92cec717f 100644
--- a/csit/plans/cps/sdnc/check_sdnc_mount_node.sh
+++ b/csit/plans/cps/sdnc/check_sdnc_mount_node.sh
@@ -1,5 +1,5 @@
# ============LICENSE_START=======================================================
-# Copyright (C) 2023 Nordix Foundation
+# Copyright (C) 2023-2024 Nordix Foundation
# ================================================================================
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
@@ -44,13 +44,13 @@ SDNC_TIME=0
while [ "$SDNC_TIME" -le "$SDNC_TIME_OUT" ]; do
# Mount netconf node
- curl --location --request PUT 'http://'$SDNC_HOST:$SDNC_PORT'/restconf/config/network-topology:network-topology/topology/topology-netconf/node/PNFDemo' \
+ curl --location --request PUT 'http://'$SDNC_HOST:$SDNC_PORT'/restconf/config/network-topology:network-topology/topology/topology-netconf/node/ietfYang-PNFDemo' \
--header 'Authorization: Basic YWRtaW46S3A4Yko0U1hzek0wV1hsaGFrM2VIbGNzZTJnQXc4NHZhb0dHbUp2VXkyVQ==' \
--header 'Content-Type: application/json' \
--data-raw '{
"node": [
{
- "node-id": "PNFDemo",
+ "node-id": "ietfYang-PNFDemo",
"netconf-node-topology:protocol": {
"name": "TLS"
},
@@ -70,7 +70,7 @@ while [ "$SDNC_TIME" -le "$SDNC_TIME_OUT" ]; do
RESPONSE=$( curl --location --request GET 'http://'$SDNC_HOST:$SDNC_PORT'/restconf/config/network-topology:network-topology/topology/topology-netconf' --header 'Authorization: basic YWRtaW46S3A4Yko0U1hzek0wV1hsaGFrM2VIbGNzZTJnQXc4NHZhb0dHbUp2VXkyVQ==')
- if [[ "$RESPONSE" == *"PNFDemo"* ]]; then
+ if [[ "$RESPONSE" == *"ietfYang-PNFDemo"* ]]; then
echo "Node mounted in $SDNC_TIME"
sleep 10
break;
diff --git a/csit/tests/cm-handle-query/cm-handle-query.robot b/csit/tests/cm-handle-query/cm-handle-query.robot
index 4941cde077..a16446a743 100644
--- a/csit/tests/cm-handle-query/cm-handle-query.robot
+++ b/csit/tests/cm-handle-query/cm-handle-query.robot
@@ -1,6 +1,6 @@
/*
* ============LICENSE_START=======================================================
- * Copyright (C) 2022 Nordix Foundation
+ * Copyright (C) 2022-2024 Nordix Foundation
* ================================================================================
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -42,14 +42,14 @@ Retrieve CM Handle ids where query parameters Match (module and property query)
${headers}= Create Dictionary Content-Type=application/json Authorization=${auth}
${response}= POST On Session CPS_URL ${uri} headers=${headers} data=${jsonModuleAndPropertyQueryParameters}
Should Be Equal As Strings ${response.status_code} 200
- Should Contain ${response.json()} PNFDemo
+ Should Contain ${response.json()} ietfYang-PNFDemo
Retrieve CM Handle ids where query parameters Match (empty query)
${uri}= Set Variable ${ncmpBasePath}/ch/id-searches
${headers}= Create Dictionary Content-Type=application/json Authorization=${auth}
${response}= POST On Session CPS_URL ${uri} headers=${headers} data=${jsonEmptyQueryParameters}
Should Be Equal As Strings ${response.status_code} 200
- Should Contain ${response.json()} PNFDemo
+ Should Contain ${response.json()} ietfYang-PNFDemo
Throw 400 when Structure of Request is Incorrect
${uri}= Set Variable ${ncmpBasePath}/ch/id-searches
diff --git a/csit/tests/cps-data-operations/cps-data-operations.robot b/csit/tests/cps-data-operations/cps-data-operations.robot
index d0206d19b1..1f6611955e 100644
--- a/csit/tests/cps-data-operations/cps-data-operations.robot
+++ b/csit/tests/cps-data-operations/cps-data-operations.robot
@@ -1,6 +1,6 @@
/*
* ============LICENSE_START=======================================================
- * Copyright (C) 2023 Nordix Foundation
+ * Copyright (C) 2023-2024 Nordix Foundation
* ================================================================================
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -36,7 +36,7 @@ ${topic} data-operation-client-topic
${ncmpBasePath} /ncmp
${expectedRequestId} ${EMPTY}
${dmipluginCsitStubUrl} http://${DMI_CSIT_STUB_HOST}:${DMI_CSIT_STUB_PORT}
-${newCmHandleRequestBody} {"dmiPlugin":"${dmipluginCsitStubUrl}","createdCmHandles":[{"cmHandle":"850117873c9a4936856a5081be96e6a8"}]}
+${newCmHandleRequestBody} {"dmiPlugin":"${dmipluginCsitStubUrl}","createdCmHandles":[{"cmHandle":"CMHandle1"}]}
*** Test Cases ***
diff --git a/csit/tests/cps-data-sync/cps-data-sync.robot b/csit/tests/cps-data-sync/cps-data-sync.robot
index e96e10a42f..71de4be1fe 100644
--- a/csit/tests/cps-data-sync/cps-data-sync.robot
+++ b/csit/tests/cps-data-sync/cps-data-sync.robot
@@ -1,6 +1,6 @@
/*
* ============LICENSE_START=======================================================
- * Copyright (C) 2022 Nordix Foundation
+ * Copyright (C) 2022-2024 Nordix Foundation
* ================================================================================
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -35,19 +35,19 @@ ${ncmpBasePath} /ncmp
*** Test Cases ***
Operational state goes to UNSYNCHRONIZED when data sync (flag) is enabled
- ${uri}= Set Variable ${ncmpBasePath}/v1/ch/PNFDemo/data-sync
+ ${uri}= Set Variable ${ncmpBasePath}/v1/ch/ietfYang-PNFDemo/data-sync
${params}= Create Dictionary dataSyncEnabled=true
${headers}= Create Dictionary Authorization=${auth}
${response}= PUT On Session CPS_URL ${uri} params=${params} headers=${headers}
Should Be Equal As Strings ${response.status_code} 200
- ${verifyUri}= Set Variable ${ncmpBasePath}/v1/ch/PNFDemo/state
+ ${verifyUri}= Set Variable ${ncmpBasePath}/v1/ch/ietfYang-PNFDemo/state
${verifyHeaders}= Create Dictionary Authorization=${auth}
${verifyResponse}= GET On Session CPS_URL ${verifyUri} headers=${verifyHeaders}
Should Be Equal As Strings ${verifyResponse.json()['state']['dataSyncState']['operational']['syncState']} UNSYNCHRONIZED
Sleep 5
Operational state goes to SYNCHRONIZED after sometime when data sync (flag) is enabled
- ${uri}= Set Variable ${ncmpBasePath}/v1/ch/PNFDemo/state
+ ${uri}= Set Variable ${ncmpBasePath}/v1/ch/ietfYang-PNFDemo/state
${headers}= Create Dictionary Authorization=${auth}
${response}= GET On Session CPS_URL ${uri} headers=${headers}
Should Be Equal As Strings ${response.json()['state']['dataSyncState']['operational']['syncState']} SYNCHRONIZED \ No newline at end of file
diff --git a/csit/tests/cps-model-sync/cps-model-sync.robot b/csit/tests/cps-model-sync/cps-model-sync.robot
index 519c7a7270..704d02c4ba 100644
--- a/csit/tests/cps-model-sync/cps-model-sync.robot
+++ b/csit/tests/cps-model-sync/cps-model-sync.robot
@@ -1,6 +1,6 @@
/*
* ============LICENSE_START=======================================================
- * Copyright (C) 2021-2022 Nordix Foundation
+ * Copyright (C) 2021-2024 Nordix Foundation
* ================================================================================
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -34,8 +34,8 @@ ${auth} Basic Y3BzdXNlcjpjcHNyMGNrcyE=
${ncmpInventoryBasePath} /ncmpInventory
${ncmpBasePath} /ncmp
${dmiUrl} http://${DMI_HOST}:${DMI_PORT}
-${jsonDataCreate} {"dmiPlugin":"${dmiUrl}","dmiDataPlugin":"","dmiModelPlugin":"","createdCmHandles":[{"cmHandle":"PNFDemo","cmHandleProperties":{"Book1":"Sci-Fi Book"},"publicCmHandleProperties":{"Contact":"storeemail@bookstore.com", "Contact2":"storeemail2@bookstore.com"}}]}
-${jsonDataUpdate} {"dmiPlugin":"${dmiUrl}","dmiDataPlugin":"","dmiModelPlugin":"","updatedCmHandles":[{"cmHandle":"PNFDemo","cmHandleProperties":{"Book1":"Romance Book"},"publicCmHandleProperties":{"Contact":"newemailforstore@bookstore.com"}}]}
+${jsonDataCreate} {"dmiPlugin":"${dmiUrl}","dmiDataPlugin":"","dmiModelPlugin":"","createdCmHandles":[{"cmHandle":"ietfYang-PNFDemo","cmHandleProperties":{"Book1":"Sci-Fi Book"},"publicCmHandleProperties":{"Contact":"storeemail@bookstore.com", "Contact2":"storeemail2@bookstore.com"}}]}
+${jsonDataUpdate} {"dmiPlugin":"${dmiUrl}","dmiDataPlugin":"","dmiModelPlugin":"","updatedCmHandles":[{"cmHandle":"ietfYang-PNFDemo","cmHandleProperties":{"Book1":"Romance Book"},"publicCmHandleProperties":{"Contact":"newemailforstore@bookstore.com"}}]}
*** Test Cases ***
Register data node and sync modules.
@@ -45,13 +45,13 @@ Register data node and sync modules.
Should Be Equal As Strings ${response.status_code} 200
Get CM Handle details and confirm it has been registered.
- ${uri}= Set Variable ${ncmpBasePath}/v1/ch/PNFDemo
+ ${uri}= Set Variable ${ncmpBasePath}/v1/ch/ietfYang-PNFDemo
${headers}= Create Dictionary Authorization=${auth}
${response}= GET On Session CPS_URL ${uri} headers=${headers}
${responseJson}= Set Variable ${response.json()}
${schemaCount}= Get length ${responseJson}
Should Be Equal As Strings ${response.status_code} 200
- IF "${responseJson['cmHandle']}" == "PNFDemo"
+ IF "${responseJson['cmHandle']}" == "ietfYang-PNFDemo"
FOR ${item} IN @{responseJson['publicCmHandleProperties']}
Should Be Equal As Strings "${item['Contact']}" "storeemail@bookstore.com"
END
@@ -64,20 +64,20 @@ Update data node and sync modules.
Should Be Equal As Strings ${response.status_code} 200
Get CM Handle details and confirm it has been updated.
- ${uri}= Set Variable ${ncmpBasePath}/v1/ch/PNFDemo
+ ${uri}= Set Variable ${ncmpBasePath}/v1/ch/ietfYang-PNFDemo
${headers}= Create Dictionary Authorization=${auth}
${response}= GET On Session CPS_URL ${uri} headers=${headers}
${responseJson}= Set Variable ${response.json()}
${schemaCount}= Get length ${responseJson}
Should Be Equal As Strings ${response.status_code} 200
- IF "${responseJson['cmHandle']}" == "PNFDemo"
+ IF "${responseJson['cmHandle']}" == "ietfYang-PNFDemo"
FOR ${item} IN @{responseJson['publicCmHandleProperties']}
Should Be Equal As Strings "${item['Contact']}" "newemailforstore@bookstore.com"
END
END
Get modules for registered data node
- ${uri}= Set Variable ${ncmpBasePath}/v1/ch/PNFDemo/modules
+ ${uri}= Set Variable ${ncmpBasePath}/v1/ch/ietfYang-PNFDemo/modules
${headers}= Create Dictionary Authorization=${auth}
${response}= GET On Session CPS_URL ${uri} headers=${headers}
Should Be Equal As Strings ${response.status_code} 200
diff --git a/csit/tests/ncmp-passthrough/ncmp-passthrough.robot b/csit/tests/ncmp-passthrough/ncmp-passthrough.robot
index 48af1cf85c..02689f3362 100644
--- a/csit/tests/ncmp-passthrough/ncmp-passthrough.robot
+++ b/csit/tests/ncmp-passthrough/ncmp-passthrough.robot
@@ -1,6 +1,6 @@
/*
* ============LICENSE_START=======================================================
- * Copyright (C) 2021 Nordix Foundation
+ * Copyright (C) 2021-2024 Nordix Foundation
* ================================================================================
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -37,13 +37,13 @@ ${netconf} NETCONF
*** Test Cases ***
Get for Passthrough Operational (CF, RO) with fields & topic
- ${uri}= Set Variable ${ncmpBasePath}/v1/ch/PNFDemo/data/ds/ncmp-datastore:passthrough-operational?resourceIdentifier=ietf-netconf-monitoring:netconf-state&options=(fields=schemas/schema)&topic=test-topic
+ ${uri}= Set Variable ${ncmpBasePath}/v1/ch/ietfYang-PNFDemo/data/ds/ncmp-datastore:passthrough-operational?resourceIdentifier=ietf-netconf-monitoring:netconf-state&options=(fields=schemas/schema)&topic=test-topic
${headers}= Create Dictionary Authorization=${auth}
${response}= Get On Session CPS_URL ${uri} headers=${headers} expected_status=200
Should Be Equal As Strings ${response.status_code} 200
Get for Passthrough Operational (CF, RO) with fields
- ${uri}= Set Variable ${ncmpBasePath}/v1/ch/PNFDemo/data/ds/ncmp-datastore:passthrough-operational?resourceIdentifier=ietf-netconf-monitoring:netconf-state&options=(fields=schemas/schema)
+ ${uri}= Set Variable ${ncmpBasePath}/v1/ch/ietfYang-PNFDemo/data/ds/ncmp-datastore:passthrough-operational?resourceIdentifier=ietf-netconf-monitoring:netconf-state&options=(fields=schemas/schema)
${headers}= Create Dictionary Authorization=${auth}
${response}= Get On Session CPS_URL ${uri} headers=${headers} expected_status=200
${responseJson}= Set Variable ${response.json()}
@@ -52,14 +52,14 @@ Get for Passthrough Operational (CF, RO) with fields
Should Contain ${responseJson['ietf-netconf-monitoring:netconf-state']['schemas']['schema'][0]['location']} ${netconf}
Create to bookstore using passthrough-running
- ${uri}= Set Variable ${ncmpBasePath}/v1/ch/PNFDemo/data/ds/ncmp-datastore:passthrough-running?resourceIdentifier=stores:bookstore
+ ${uri}= Set Variable ${ncmpBasePath}/v1/ch/ietfYang-PNFDemo/data/ds/ncmp-datastore:passthrough-running?resourceIdentifier=stores:bookstore
${headers}= Create Dictionary Content-Type=application/json Authorization=${auth}
${jsonData}= Get Binary File ${DATADIR_NCMP}${/}bookstoreCreateExample.json
${response}= POST On Session CPS_URL ${uri} headers=${headers} data=${jsonData}
Should Be Equal As Strings ${response.status_code} 201
Verify create to bookstore using passthrough-running
- ${uri}= Set Variable ${ncmpBasePath}/v1/ch/PNFDemo/data/ds/ncmp-datastore:passthrough-running?resourceIdentifier=stores:bookstore
+ ${uri}= Set Variable ${ncmpBasePath}/v1/ch/ietfYang-PNFDemo/data/ds/ncmp-datastore:passthrough-running?resourceIdentifier=stores:bookstore
${headers}= Create Dictionary Authorization=${auth}
${response}= Get On Session CPS_URL ${uri} headers=${headers}
Should Be Equal As Strings ${response.status_code} 200
@@ -75,14 +75,14 @@ Verify create to bookstore using passthrough-running
END
Update Bookstore using passthrough-running update Category 01 (replace category)
- ${uri}= Set Variable ${ncmpBasePath}/v1/ch/PNFDemo/data/ds/ncmp-datastore:passthrough-running?resourceIdentifier=stores:bookstore/categories=01
+ ${uri}= Set Variable ${ncmpBasePath}/v1/ch/ietfYang-PNFDemo/data/ds/ncmp-datastore:passthrough-running?resourceIdentifier=stores:bookstore/categories=01
${headers}= Create Dictionary Content-Type=application/json Authorization=${auth}
${jsonData}= Get Binary File ${DATADIR_NCMP}${/}bookstoreUpdateExample.json
${response}= PUT On Session CPS_URL ${uri} headers=${headers} data=${jsonData}
Should Be Equal As Strings ${response.status_code} 200
Verify update to bookstore using passthrough-running updated category 01
- ${uri}= Set Variable ${ncmpBasePath}/v1/ch/PNFDemo/data/ds/ncmp-datastore:passthrough-running?resourceIdentifier=stores:bookstore/categories=01
+ ${uri}= Set Variable ${ncmpBasePath}/v1/ch/ietfYang-PNFDemo/data/ds/ncmp-datastore:passthrough-running?resourceIdentifier=stores:bookstore/categories=01
${headers}= Create Dictionary Authorization=${auth}
${response}= Get On Session CPS_URL ${uri} headers=${headers}
Should Be Equal As Strings ${response.status_code} 200
@@ -93,7 +93,7 @@ Verify update to bookstore using passthrough-running updated category 01
END
Verify update to bookstore using passthrough-running did not remove category 02
- ${uri}= Set Variable ${ncmpBasePath}/v1/ch/PNFDemo/data/ds/ncmp-datastore:passthrough-running?resourceIdentifier=stores:bookstore
+ ${uri}= Set Variable ${ncmpBasePath}/v1/ch/ietfYang-PNFDemo/data/ds/ncmp-datastore:passthrough-running?resourceIdentifier=stores:bookstore
${headers}= Create Dictionary Authorization=${auth}
${response}= Get On Session CPS_URL ${uri} headers=${headers}
Should Be Equal As Strings ${response.status_code} 200
@@ -101,13 +101,13 @@ Verify update to bookstore using passthrough-running did not remove category 02
Should Be Equal As Numbers ${schemaCount} 2
Delete Bookstore using passthrough-running for Category 01
- ${uri}= Set Variable ${ncmpBasePath}/v1/ch/PNFDemo/data/ds/ncmp-datastore:passthrough-running?resourceIdentifier=stores:bookstore/categories=01
+ ${uri}= Set Variable ${ncmpBasePath}/v1/ch/ietfYang-PNFDemo/data/ds/ncmp-datastore:passthrough-running?resourceIdentifier=stores:bookstore/categories=01
${headers}= Create Dictionary Content-Type=application/json Authorization=${auth}
${response}= DELETE On Session CPS_URL ${uri} headers=${headers}
Should Be Equal As Strings ${response.status_code} 204
Verify delete to bookstore using passthrough-running removed only category 01
- ${uri}= Set Variable ${ncmpBasePath}/v1/ch/PNFDemo/data/ds/ncmp-datastore:passthrough-running?resourceIdentifier=stores:bookstore
+ ${uri}= Set Variable ${ncmpBasePath}/v1/ch/ietfYang-PNFDemo/data/ds/ncmp-datastore:passthrough-running?resourceIdentifier=stores:bookstore
${headers}= Create Dictionary Authorization=${auth}
${response}= Get On Session CPS_URL ${uri} headers=${headers}
${responseJson}= Set Variable ${response.json()['stores:bookstore']['categories']}
@@ -121,12 +121,12 @@ Verify delete to bookstore using passthrough-running removed only category 01
END
Patch will add new category with new book and add a new book to an existing category
- ${uri}= Set Variable ${ncmpBasePath}/v1/ch/PNFDemo/data/ds/ncmp-datastore:passthrough-running?resourceIdentifier=stores:bookstore
+ ${uri}= Set Variable ${ncmpBasePath}/v1/ch/ietfYang-PNFDemo/data/ds/ncmp-datastore:passthrough-running?resourceIdentifier=stores:bookstore
${headers}= Create Dictionary Content-Type=application/yang.patch+json Authorization=${auth}
${jsonData}= Get Binary File ${DATADIR_NCMP}${/}bookstorePatchExample.json
${response}= PATCH On Session CPS_URL ${uri} headers=${headers} data=${jsonData}
Should Be Equal As Strings ${response.status_code} 200
- ${verifyUri}= Set Variable ${ncmpBasePath}/v1/ch/PNFDemo/data/ds/ncmp-datastore:passthrough-running?resourceIdentifier=stores:bookstore/categories=100
+ ${verifyUri}= Set Variable ${ncmpBasePath}/v1/ch/ietfYang-PNFDemo/data/ds/ncmp-datastore:passthrough-running?resourceIdentifier=stores:bookstore/categories=100
${verifyHeaders}= Create Dictionary Authorization=${auth}
${verifyResponse}= Get On Session CPS_URL ${verifyUri} headers=${verifyHeaders}
Should Be Equal As Strings ${verifyResponse.status_code} 200
@@ -135,6 +135,6 @@ Patch will add new category with new book and add a new book to an existing cate
Should Be Equal As Strings "${item['name']}" "Category100"
END
END
- ${verifyUri}= Set Variable ${ncmpBasePath}/v1/ch/PNFDemo/data/ds/ncmp-datastore:passthrough-running?resourceIdentifier=stores:bookstore/categories=02/books=A%20New%20book%20in%20existing%20category
+ ${verifyUri}= Set Variable ${ncmpBasePath}/v1/ch/ietfYang-PNFDemo/data/ds/ncmp-datastore:passthrough-running?resourceIdentifier=stores:bookstore/categories=02/books=A%20New%20book%20in%20existing%20category
${verifyResponse}= Get On Session CPS_URL ${verifyUri} headers=${verifyHeaders}
Should Be Equal As Strings ${verifyResponse.status_code} 200
diff --git a/dmi-plugin-demo-and-csit-stub/dmi-plugin-demo-and-csit-stub-service/src/main/java/org/onap/cps/ncmp/dmi/rest/stub/controller/DmiRestStubController.java b/dmi-plugin-demo-and-csit-stub/dmi-plugin-demo-and-csit-stub-service/src/main/java/org/onap/cps/ncmp/dmi/rest/stub/controller/DmiRestStubController.java
index 5c724290db..a4f7111324 100644
--- a/dmi-plugin-demo-and-csit-stub/dmi-plugin-demo-and-csit-stub-service/src/main/java/org/onap/cps/ncmp/dmi/rest/stub/controller/DmiRestStubController.java
+++ b/dmi-plugin-demo-and-csit-stub/dmi-plugin-demo-and-csit-stub-service/src/main/java/org/onap/cps/ncmp/dmi/rest/stub/controller/DmiRestStubController.java
@@ -1,6 +1,6 @@
/*
* ============LICENSE_START=======================================================
- * Copyright (C) 2023 Nordix Foundation
+ * Copyright (C) 2023-2024 Nordix Foundation
* ================================================================================
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -44,6 +44,7 @@ import org.onap.cps.ncmp.events.async1_0_0.DataOperationEvent;
import org.onap.cps.ncmp.events.async1_0_0.Response;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.ApplicationContext;
+import org.springframework.core.io.Resource;
import org.springframework.core.io.ResourceLoader;
import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
@@ -73,37 +74,35 @@ public class DmiRestStubController {
/**
* Get all modules for given cm handle.
*
- * @param cmHandle The identifier for a network function, network element, subnetwork,
+ * @param cmHandleId The identifier for a network function, network element, subnetwork,
* or any other cm object by managed Network CM Proxy
* @param moduleReferencesRequest module references request body
* @return ResponseEntity response entity having module response as json string.
*/
- @PostMapping("/v1/ch/{cmHandle}/modules")
- public ResponseEntity<String> getModuleReferences(@PathVariable final String cmHandle,
+ @PostMapping("/v1/ch/{cmHandleId}/modules")
+ public ResponseEntity<String> getModuleReferences(@PathVariable final String cmHandleId,
@RequestBody final Object moduleReferencesRequest) {
- final String moduleResponseContent = ResourceFileReaderUtil
- .getResourceFileContent(applicationContext.getResource(
- ResourceLoader.CLASSPATH_URL_PREFIX + "module/moduleResponse.json"));
- log.info("cm handle: {} requested for modules", cmHandle);
+ final String moduleResponseContent = getModuleResourceResponse(cmHandleId,
+ "ModuleResponse.json");
+ log.info("cm handle: {} requested for modules", cmHandleId);
return ResponseEntity.ok(moduleResponseContent);
}
/**
- * Get all module resources for given cm handle.
+ * Retrieves module resources for a given cmHandleId.
*
- * @param cmHandle The identifier for a network function, network element, subnetwork,
+ * @param cmHandleId The identifier for a network function, network element, subnetwork,
* or any other cm object by managed Network CM Proxy
* @param moduleResourcesReadRequest module resources read request body
* @return ResponseEntity response entity having module resources response as json string.
*/
- @PostMapping("/v1/ch/{cmHandle}/moduleResources")
+ @PostMapping("/v1/ch/{cmHandleId}/moduleResources")
public ResponseEntity<String> retrieveModuleResources(
- @PathVariable final String cmHandle,
+ @PathVariable final String cmHandleId,
@RequestBody final Object moduleResourcesReadRequest) {
- final String moduleResourcesResponseContent = ResourceFileReaderUtil
- .getResourceFileContent(applicationContext.getResource(
- ResourceLoader.CLASSPATH_URL_PREFIX + "module/moduleResourcesResponse.json"));
- log.info("cm handle: {} requested for module resources", cmHandle);
+ final String moduleResourcesResponseContent = getModuleResourceResponse(cmHandleId,
+ "ModuleResourcesResponse.json");
+ log.info("cm handle: {} requested for modules resources", cmHandleId);
return ResponseEntity.ok(moduleResourcesResponseContent);
}
@@ -186,4 +185,18 @@ public class DmiRestStubController {
dataOperationEvent.setData(data);
return dataOperationEvent;
}
+
+ private String getModuleResourceResponse(final String cmHandleId, final String moduleResponseType) {
+ final String nodeType = cmHandleId.split("-")[0];
+ final String moduleResponseFilePath = String.format("module/%s%s", nodeType, moduleResponseType);
+ final Resource moduleResponseResource = applicationContext.getResource(
+ ResourceLoader.CLASSPATH_URL_PREFIX + moduleResponseFilePath);
+ if (moduleResponseResource.exists()) {
+ log.info("Using requested node type: {}", nodeType);
+ return ResourceFileReaderUtil.getResourceFileContent(moduleResponseResource);
+ }
+ log.info("Using default node type: ietfYang");
+ return ResourceFileReaderUtil.getResourceFileContent(applicationContext.getResource(
+ ResourceLoader.CLASSPATH_URL_PREFIX + "module/ietfYang" + moduleResponseType));
+ }
}
diff --git a/dmi-plugin-demo-and-csit-stub/dmi-plugin-demo-and-csit-stub-service/src/main/resources/module/bookStoreModuleResourcesResponse.json b/dmi-plugin-demo-and-csit-stub/dmi-plugin-demo-and-csit-stub-service/src/main/resources/module/bookStoreModuleResourcesResponse.json
new file mode 100644
index 0000000000..5f07fca8df
--- /dev/null
+++ b/dmi-plugin-demo-and-csit-stub/dmi-plugin-demo-and-csit-stub-service/src/main/resources/module/bookStoreModuleResourcesResponse.json
@@ -0,0 +1,27 @@
+[
+ {
+ "moduleName": "book-store-types-11",
+ "revision": "2013-07-25",
+ "yangSource": "module book-store-types-11 {\n\n namespace \"urn:ietf:params:xml:ns:yang:book-store-types-11\";\n prefix \"yang\";\n\n organization\n \"IETF NETMOD (NETCONF Data Modeling Language) Working Group\";\n\n contact\n \"WG Web: <http://tools.ietf.org/wg/netmod/>\n WG List: <mailto:netmod@ietf.org>\n\n WG Chair: David Kessens\n <mailto:david.kessens@nsn.com>\n\n WG Chair: Juergen Schoenwaelder\n <mailto:j.schoenwaelder@jacobs-university.de>\n\n Editor: Juergen Schoenwaelder\n <mailto:j.schoenwaelder@jacobs-university.de>\";\n\n description\n \"This module contains a collection of generally useful derived\n YANG data types.\n\n Copyright (c) 2013 IETF Trust and the persons identified as\n authors of the code. All rights reserved.\n\n Redistribution and use in source and binary forms, with or\n without modification, is permitted pursuant to, and subject\n to the license terms contained in, the Simplified BSD License\n set forth in Section 4.c of the IETF Trust's Legal Provisions\n Relating to IETF Documents\n (http://trustee.ietf.org/license-info).\n\n This version of this YANG module is part of RFC 6991; see\n the RFC itself for full legal notices.\";\n\n revision 2013-07-25 {\n description\n \"This revision adds the following new data types:\n - yang-identifier\n - hex-string\n - uuid\n - dotted-quad\";\n reference\n \"RFC 6991: Common YANG Data Types\";\n }\n\n revision 2010-09-24 {\n description\n \"Initial revision.\";\n reference\n \"RFC 6021: Common YANG Data Types\";\n }\n\n /*** collection of counter and gauge types ***/\n\n typedef counter32 {\n type uint32;\n description\n \"The counter32 type represents a non-negative integer\n that monotonically increases until it reaches a\n maximum value of 2^32-1 (4294967295 decimal), when it\n wraps around and starts increasing again from zero.\n\n Counters have no defined 'initial' value, and thus, a\n single value of a counter has (in general) no information\n content. Discontinuities in the monotonically increasing\n value normally occur at re-initialization of the\n management system, and at other times as specified in the\n description of a schema node using this type. If such\n other times can occur, for example, the creation of\n a schema node of type counter32 at times other than\n re-initialization, then a corresponding schema node\n should be defined, with an appropriate type, to indicate\n the last discontinuity.\n\n The counter32 type should not be used for configuration\n schema nodes. A default statement SHOULD NOT be used in\n combination with the type counter32.\n\n In the value set and its semantics, this type is equivalent\n to the Counter32 type of the SMIv2.\";\n reference\n \"RFC 2578: Structure of Management Information Version 2\n (SMIv2)\";\n }\n}\n"
+ },
+ {
+ "moduleName": "book-store-types-12",
+ "revision": "2013-07-26",
+ "yangSource": "module book-store-types-12 {\n\n namespace \"urn:ietf:params:xml:ns:yang:book-store-types-12\";\n prefix \"yang\";\n\n organization\n \"IETF NETMOD (NETCONF Data Modeling Language) Working Group\";\n\n contact\n \"WG Web: <http://tools.ietf.org/wg/netmod/>\n WG List: <mailto:netmod@ietf.org>\n\n WG Chair: David Kessens\n <mailto:david.kessens@nsn.com>\n\n WG Chair: Juergen Schoenwaelder\n <mailto:j.schoenwaelder@jacobs-university.de>\n\n Editor: Juergen Schoenwaelder\n <mailto:j.schoenwaelder@jacobs-university.de>\";\n\n description\n \"This module contains a collection of generally useful derived\n YANG data types.\n\n Copyright (c) 2013 IETF Trust and the persons identified as\n authors of the code. All rights reserved.\n\n Redistribution and use in source and binary forms, with or\n without modification, is permitted pursuant to, and subject\n to the license terms contained in, the Simplified BSD License\n set forth in Section 4.c of the IETF Trust's Legal Provisions\n Relating to IETF Documents\n (http://trustee.ietf.org/license-info).\n\n This version of this YANG module is part of RFC 6991; see\n the RFC itself for full legal notices.\";\n\n revision 2013-07-26 {\n description\n \"This revision adds the following new data types:\n - yang-identifier\n - hex-string\n - uuid\n - dotted-quad\";\n reference\n \"RFC 6991: Common YANG Data Types\";\n }\n\n revision 2010-09-24 {\n description\n \"Initial revision.\";\n reference\n \"RFC 6021: Common YANG Data Types\";\n }\n\n /*** collection of counter and gauge types ***/\n\n typedef counter32 {\n type uint32;\n description\n \"The counter32 type represents a non-negative integer\n that monotonically increases until it reaches a\n maximum value of 2^32-1 (4294967295 decimal), when it\n wraps around and starts increasing again from zero.\n\n Counters have no defined 'initial' value, and thus, a\n single value of a counter has (in general) no information\n content. Discontinuities in the monotonically increasing\n value normally occur at re-initialization of the\n management system, and at other times as specified in the\n description of a schema node using this type. If such\n other times can occur, for example, the creation of\n a schema node of type counter32 at times other than\n re-initialization, then a corresponding schema node\n should be defined, with an appropriate type, to indicate\n the last discontinuity.\n\n The counter32 type should not be used for configuration\n schema nodes. A default statement SHOULD NOT be used in\n combination with the type counter32.\n\n In the value set and its semantics, this type is equivalent\n to the Counter32 type of the SMIv2.\";\n reference\n \"RFC 2578: Structure of Management Information Version 2\n (SMIv2)\";\n }\n}\n"
+ },
+ {
+ "moduleName": "book-store-types-13",
+ "revision": "2013-07-27",
+ "yangSource": "module book-store-types-13 {\n\n namespace \"urn:ietf:params:xml:ns:yang:book-store-types-13\";\n prefix \"yang\";\n\n organization\n \"IETF NETMOD (NETCONF Data Modeling Language) Working Group\";\n\n contact\n \"WG Web: <http://tools.ietf.org/wg/netmod/>\n WG List: <mailto:netmod@ietf.org>\n\n WG Chair: David Kessens\n <mailto:david.kessens@nsn.com>\n\n WG Chair: Juergen Schoenwaelder\n <mailto:j.schoenwaelder@jacobs-university.de>\n\n Editor: Juergen Schoenwaelder\n <mailto:j.schoenwaelder@jacobs-university.de>\";\n\n description\n \"This module contains a collection of generally useful derived\n YANG data types.\n\n Copyright (c) 2013 IETF Trust and the persons identified as\n authors of the code. All rights reserved.\n\n Redistribution and use in source and binary forms, with or\n without modification, is permitted pursuant to, and subject\n to the license terms contained in, the Simplified BSD License\n set forth in Section 4.c of the IETF Trust's Legal Provisions\n Relating to IETF Documents\n (http://trustee.ietf.org/license-info).\n\n This version of this YANG module is part of RFC 6991; see\n the RFC itself for full legal notices.\";\n\n revision 2013-07-27 {\n description\n \"This revision adds the following new data types:\n - yang-identifier\n - hex-string\n - uuid\n - dotted-quad\";\n reference\n \"RFC 6991: Common YANG Data Types\";\n }\n\n revision 2010-09-24 {\n description\n \"Initial revision.\";\n reference\n \"RFC 6021: Common YANG Data Types\";\n }\n\n /*** collection of counter and gauge types ***/\n\n typedef counter32 {\n type uint32;\n description\n \"The counter32 type represents a non-negative integer\n that monotonically increases until it reaches a\n maximum value of 2^32-1 (4294967295 decimal), when it\n wraps around and starts increasing again from zero.\n\n Counters have no defined 'initial' value, and thus, a\n single value of a counter has (in general) no information\n content. Discontinuities in the monotonically increasing\n value normally occur at re-initialization of the\n management system, and at other times as specified in the\n description of a schema node using this type. If such\n other times can occur, for example, the creation of\n a schema node of type counter32 at times other than\n re-initialization, then a corresponding schema node\n should be defined, with an appropriate type, to indicate\n the last discontinuity.\n\n The counter32 type should not be used for configuration\n schema nodes. A default statement SHOULD NOT be used in\n combination with the type counter32.\n\n In the value set and its semantics, this type is equivalent\n to the Counter32 type of the SMIv2.\";\n reference\n \"RFC 2578: Structure of Management Information Version 2\n (SMIv2)\";\n }\n}\n"
+ },
+ {
+ "moduleName": "book-store-types-14",
+ "revision": "2013-07-28",
+ "yangSource": "module book-store-types-14 {\n\n namespace \"urn:ietf:params:xml:ns:yang:book-store-types-14\";\n prefix \"yang\";\n\n organization\n \"IETF NETMOD (NETCONF Data Modeling Language) Working Group\";\n\n contact\n \"WG Web: <http://tools.ietf.org/wg/netmod/>\n WG List: <mailto:netmod@ietf.org>\n\n WG Chair: David Kessens\n <mailto:david.kessens@nsn.com>\n\n WG Chair: Juergen Schoenwaelder\n <mailto:j.schoenwaelder@jacobs-university.de>\n\n Editor: Juergen Schoenwaelder\n <mailto:j.schoenwaelder@jacobs-university.de>\";\n\n description\n \"This module contains a collection of generally useful derived\n YANG data types.\n\n Copyright (c) 2013 IETF Trust and the persons identified as\n authors of the code. All rights reserved.\n\n Redistribution and use in source and binary forms, with or\n without modification, is permitted pursuant to, and subject\n to the license terms contained in, the Simplified BSD License\n set forth in Section 4.c of the IETF Trust's Legal Provisions\n Relating to IETF Documents\n (http://trustee.ietf.org/license-info).\n\n This version of this YANG module is part of RFC 6991; see\n the RFC itself for full legal notices.\";\n\n revision 2013-07-28 {\n description\n \"This revision adds the following new data types:\n - yang-identifier\n - hex-string\n - uuid\n - dotted-quad\";\n reference\n \"RFC 6991: Common YANG Data Types\";\n }\n\n revision 2010-09-24 {\n description\n \"Initial revision.\";\n reference\n \"RFC 6021: Common YANG Data Types\";\n }\n\n /*** collection of counter and gauge types ***/\n\n typedef counter32 {\n type uint32;\n description\n \"The counter32 type represents a non-negative integer\n that monotonically increases until it reaches a\n maximum value of 2^32-1 (4294967295 decimal), when it\n wraps around and starts increasing again from zero.\n\n Counters have no defined 'initial' value, and thus, a\n single value of a counter has (in general) no information\n content. Discontinuities in the monotonically increasing\n value normally occur at re-initialization of the\n management system, and at other times as specified in the\n description of a schema node using this type. If such\n other times can occur, for example, the creation of\n a schema node of type counter32 at times other than\n re-initialization, then a corresponding schema node\n should be defined, with an appropriate type, to indicate\n the last discontinuity.\n\n The counter32 type should not be used for configuration\n schema nodes. A default statement SHOULD NOT be used in\n combination with the type counter32.\n\n In the value set and its semantics, this type is equivalent\n to the Counter32 type of the SMIv2.\";\n reference\n \"RFC 2578: Structure of Management Information Version 2\n (SMIv2)\";\n }\n}\n"
+ },
+ {
+ "moduleName": "book-store-types-15",
+ "revision": "2013-07-29",
+ "yangSource": "module book-store-types-15 {\n\n namespace \"urn:ietf:params:xml:ns:yang:book-store-types-15\";\n prefix \"yang\";\n\n organization\n \"IETF NETMOD (NETCONF Data Modeling Language) Working Group\";\n\n contact\n \"WG Web: <http://tools.ietf.org/wg/netmod/>\n WG List: <mailto:netmod@ietf.org>\n\n WG Chair: David Kessens\n <mailto:david.kessens@nsn.com>\n\n WG Chair: Juergen Schoenwaelder\n <mailto:j.schoenwaelder@jacobs-university.de>\n\n Editor: Juergen Schoenwaelder\n <mailto:j.schoenwaelder@jacobs-university.de>\";\n\n description\n \"This module contains a collection of generally useful derived\n YANG data types.\n\n Copyright (c) 2013 IETF Trust and the persons identified as\n authors of the code. All rights reserved.\n\n Redistribution and use in source and binary forms, with or\n without modification, is permitted pursuant to, and subject\n to the license terms contained in, the Simplified BSD License\n set forth in Section 4.c of the IETF Trust's Legal Provisions\n Relating to IETF Documents\n (http://trustee.ietf.org/license-info).\n\n This version of this YANG module is part of RFC 6991; see\n the RFC itself for full legal notices.\";\n\n revision 2013-07-29 {\n description\n \"This revision adds the following new data types:\n - yang-identifier\n - hex-string\n - uuid\n - dotted-quad\";\n reference\n \"RFC 6991: Common YANG Data Types\";\n }\n\n revision 2010-09-24 {\n description\n \"Initial revision.\";\n reference\n \"RFC 6021: Common YANG Data Types\";\n }\n\n /*** collection of counter and gauge types ***/\n\n typedef counter32 {\n type uint32;\n description\n \"The counter32 type represents a non-negative integer\n that monotonically increases until it reaches a\n maximum value of 2^32-1 (4294967295 decimal), when it\n wraps around and starts increasing again from zero.\n\n Counters have no defined 'initial' value, and thus, a\n single value of a counter has (in general) no information\n content. Discontinuities in the monotonically increasing\n value normally occur at re-initialization of the\n management system, and at other times as specified in the\n description of a schema node using this type. If such\n other times can occur, for example, the creation of\n a schema node of type counter32 at times other than\n re-initialization, then a corresponding schema node\n should be defined, with an appropriate type, to indicate\n the last discontinuity.\n\n The counter32 type should not be used for configuration\n schema nodes. A default statement SHOULD NOT be used in\n combination with the type counter32.\n\n In the value set and its semantics, this type is equivalent\n to the Counter32 type of the SMIv2.\";\n reference\n \"RFC 2578: Structure of Management Information Version 2\n (SMIv2)\";\n }\n}\n"
+ }
+] \ No newline at end of file
diff --git a/dmi-plugin-demo-and-csit-stub/dmi-plugin-demo-and-csit-stub-service/src/main/resources/module/bookStoreModuleResponse.json b/dmi-plugin-demo-and-csit-stub/dmi-plugin-demo-and-csit-stub-service/src/main/resources/module/bookStoreModuleResponse.json
new file mode 100644
index 0000000000..9215a58d50
--- /dev/null
+++ b/dmi-plugin-demo-and-csit-stub/dmi-plugin-demo-and-csit-stub-service/src/main/resources/module/bookStoreModuleResponse.json
@@ -0,0 +1,24 @@
+{
+ "schemas": [
+ {
+ "moduleName": "book-store-types-11",
+ "revision": "2013-07-25"
+ },
+ {
+ "moduleName": "book-store-types-12",
+ "revision": "2013-07-26"
+ },
+ {
+ "moduleName": "book-store-types-13",
+ "revision": "2013-07-27"
+ },
+ {
+ "moduleName": "book-store-types-14",
+ "revision": "2013-07-28"
+ },
+ {
+ "moduleName": "book-store-types-15",
+ "revision": "2013-07-29"
+ }
+ ]
+} \ No newline at end of file
diff --git a/dmi-plugin-demo-and-csit-stub/dmi-plugin-demo-and-csit-stub-service/src/main/resources/module/moduleResourcesResponse.json b/dmi-plugin-demo-and-csit-stub/dmi-plugin-demo-and-csit-stub-service/src/main/resources/module/ietfYangModuleResourcesResponse.json
index 571c2efe5c..4326733f5e 100644
--- a/dmi-plugin-demo-and-csit-stub/dmi-plugin-demo-and-csit-stub-service/src/main/resources/module/moduleResourcesResponse.json
+++ b/dmi-plugin-demo-and-csit-stub/dmi-plugin-demo-and-csit-stub-service/src/main/resources/module/ietfYangModuleResourcesResponse.json
@@ -49,5 +49,4 @@
"revision": "2013-07-24",
"yangSource": "module ietf-yang-types-10 {\n\n namespace \"urn:ietf:params:xml:ns:yang:ietf-yang-types-10\";\n prefix \"yang\";\n\n organization\n \"IETF NETMOD (NETCONF Data Modeling Language) Working Group\";\n\n contact\n \"WG Web: <http://tools.ietf.org/wg/netmod/>\n WG List: <mailto:netmod@ietf.org>\n\n WG Chair: David Kessens\n <mailto:david.kessens@nsn.com>\n\n WG Chair: Juergen Schoenwaelder\n <mailto:j.schoenwaelder@jacobs-university.de>\n\n Editor: Juergen Schoenwaelder\n <mailto:j.schoenwaelder@jacobs-university.de>\";\n\n description\n \"This module contains a collection of generally useful derived\n YANG data types.\n\n Copyright (c) 2013 IETF Trust and the persons identified as\n authors of the code. All rights reserved.\n\n Redistribution and use in source and binary forms, with or\n without modification, is permitted pursuant to, and subject\n to the license terms contained in, the Simplified BSD License\n set forth in Section 4.c of the IETF Trust's Legal Provisions\n Relating to IETF Documents\n (http://trustee.ietf.org/license-info).\n\n This version of this YANG module is part of RFC 6991; see\n the RFC itself for full legal notices.\";\n\n revision 2013-07-24 {\n description\n \"This revision adds the following new data types:\n - yang-identifier\n - hex-string\n - uuid\n - dotted-quad\";\n reference\n \"RFC 6991: Common YANG Data Types\";\n }\n\n revision 2010-09-24 {\n description\n \"Initial revision.\";\n reference\n \"RFC 6021: Common YANG Data Types\";\n }\n\n /*** collection of counter and gauge types ***/\n\n typedef counter32 {\n type uint32;\n description\n \"The counter32 type represents a non-negative integer\n that monotonically increases until it reaches a\n maximum value of 2^32-1 (4294967295 decimal), when it\n wraps around and starts increasing again from zero.\n\n Counters have no defined 'initial' value, and thus, a\n single value of a counter has (in general) no information\n content. Discontinuities in the monotonically increasing\n value normally occur at re-initialization of the\n management system, and at other times as specified in the\n description of a schema node using this type. If such\n other times can occur, for example, the creation of\n a schema node of type counter32 at times other than\n re-initialization, then a corresponding schema node\n should be defined, with an appropriate type, to indicate\n the last discontinuity.\n\n The counter32 type should not be used for configuration\n schema nodes. A default statement SHOULD NOT be used in\n combination with the type counter32.\n\n In the value set and its semantics, this type is equivalent\n to the Counter32 type of the SMIv2.\";\n reference\n \"RFC 2578: Structure of Management Information Version 2\n (SMIv2)\";\n }\n}\n"
}
-]
-
+] \ No newline at end of file
diff --git a/dmi-plugin-demo-and-csit-stub/dmi-plugin-demo-and-csit-stub-service/src/main/resources/module/moduleResponse.json b/dmi-plugin-demo-and-csit-stub/dmi-plugin-demo-and-csit-stub-service/src/main/resources/module/ietfYangModuleResponse.json
index ef49eb4883..2cbd8d1313 100644
--- a/dmi-plugin-demo-and-csit-stub/dmi-plugin-demo-and-csit-stub-service/src/main/resources/module/moduleResponse.json
+++ b/dmi-plugin-demo-and-csit-stub/dmi-plugin-demo-and-csit-stub-service/src/main/resources/module/ietfYangModuleResponse.json
@@ -41,4 +41,4 @@
"revision": "2013-07-24"
}
]
-}
+} \ No newline at end of file