- authors:
- Philip Pullman
+ dataSamplePatchRequest:
+ summary: Sample patch request
+ description: Sample patch request body
+ value:
+ ietf-restconf:yang-patch:
+ patch-id: patch-1
+ edit:
+ - edit-id: edit1
+ operation: merge
+ target: /
+ value:
+ test:bookstore:
+ bookstore-name: Chapters
+ categories:
+ - code: '01'
+ name: Science
+ books:
+ - authors:
+ - Author1
+ - Author2
+ - code: '02'
+ name: Arts
+ books:
+ - authors:
+ - Author3
+ - edit-id: edit2
+ operation: merge
+ target: /
+ value:
+ test:bookstore:
+ bookstore-name: Novels
+ categories:
+ - code: '03'
+ name: History
+ books:
+ - authors:
+ - Iain M. Banks
+ - Ursula K. Le Guin
+ - code: '04'
+ name: Fiction
+ books:
+ - authors:
+ - Philip Pullman
+
dataSampleResponse:
summary: Sample response
description: Sample response for selecting 'sample 1'.
requestBody:
required: true
content:
- application/json:
+ '*/*':
schema:
type: object
examples:
dataSampleRequest:
- $ref: 'components.yaml#/components/examples/dataSampleRequest'
+ $ref: 'components.yaml#/components/examples/dataSamplePatchRequest'
responses:
200:
$ref: 'components.yaml#/components/responses/Ok'
public ResponseEntity<Object> patchResourceDataRunningForCmHandle(final String resourceIdentifier,
final String cmHandle,
final Object requestBody, final String contentType) {
- networkCmProxyDataService.writeResourceDataPassThroughRunningForCmHandle(cmHandle,
+ final Object responseObject = networkCmProxyDataService.writeResourceDataPassThroughRunningForCmHandle(cmHandle,
resourceIdentifier, PATCH, GSON.toJson(requestBody), contentType);
- return new ResponseEntity<>(HttpStatus.OK);
+ return ResponseEntity.ok(responseObject);
}
/**
* @param operation required operation
* @param requestBody request body to create resource
* @param contentType content type in body
+ * @return {@code Object} return data
*/
- void writeResourceDataPassThroughRunningForCmHandle(String cmHandle,
+ Object writeResourceDataPassThroughRunningForCmHandle(String cmHandle,
String resourceIdentifier,
OperationEnum operation,
String requestBody,
}
@Override
- public void writeResourceDataPassThroughRunningForCmHandle(final String cmHandle,
+ public Object writeResourceDataPassThroughRunningForCmHandle(final String cmHandle,
final String resourceIdentifier,
final OperationEnum operation,
final String requestData,
final String dataType) {
- handleResponse(
+ return handleResponse(
dmiDataOperations.writeResourceDataPassThroughRunningFromDmi(
cmHandle, resourceIdentifier, operation, requestData, dataType),
"Not able to " + operation + " resource data.");
--- /dev/null
+{
+ "ietf-restconf:yang-patch":{
+ "patch-id":"patch-1",
+ "edit":[
+ {
+ "edit-id":"edit1",
+ "operation":"merge",
+ "target":"/",
+ "value":{
+ "bookstore": {
+ "categories": [
+ {
+ "code": "100",
+ "books": [
+ {
+ "title": "A new book in a new category",
+ "pub_year": "2019",
+ "authors": [
+ "Rahul"
+ ],
+ "lang": "English",
+ "price": "2011"
+ }
+ ],
+ "name": "Category100"
+ }
+ ]
+ }
+ }
+ },
+ {
+ "edit-id":"edit2",
+ "operation":"merge",
+ "target":"/",
+ "value":{
+ "bookstore": {
+ "categories": [
+ {
+ "code": "02",
+ "name": "Horror",
+ "books": [
+ {
+ "title": "A New book in existing category",
+ "lang": "English",
+ "authors": [
+ "Joe & Rahul"
+ ],
+ "pub_year": "2003",
+ "price": "2000"
+ }
+ ]
+ }
+ ]
+ }
+ }
+ }
+ ]
+ }
+}
\ No newline at end of file
Should Be Equal As Strings "${item['name']}" "Horror"
END
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
+ ${headers}= Create Dictionary Content-Type=application/yang.patch+json Authorization=${auth}
+ ${jsonData}= Get Binary File ${DATADIR}${/}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
+ ${verifyHeaders}= Create Dictionary Authorization=${auth}
+ ${verifyResponse}= Get On Session CPS_URL ${verifyUri} headers=${verifyHeaders}
+ ${responseJson}= Set Variable ${verifyResponse.json()}
+ Should Be Equal As Strings ${verifyResponse.status_code} 200
+ FOR ${item} IN @{responseJson['stores:categories']}
+ IF "${item['code']}" == "100"
+ 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
+ ${verifyResponse}= Get On Session CPS_URL ${verifyUri} headers=${verifyHeaders}
+ ${responseJson}= Set Variable ${verifyResponse.json()}
+ Should Be Equal As Strings ${verifyResponse.status_code} 200
\ No newline at end of file