Hi, All:
During implementing RFC8040, we face a few problems related to leaf-list usage.
I am wondering how do we create multiple instance of leaf-list data resource?
Suppose we have example-foo.yang model as follows:
example-top.yang
container top {
list list1 {
key "key1 key2 key3";
...
list list2 {
key "key4 key5";
...
leaf X { type string; }
}
}
leaf-list Y {
type uint32;
}
}
To create a new "Y" resource within the "top" resource, can we make
the client send the following request:
POST /restconf/data/example-top:top HTTP/1.1
Host: example.com
Content-Type: application/yang-data+json
{
"example-top:Y" : [value1,value2]
}
response:
HTTP/1.1 201 Created
Date: Thu, 26 Jan 2017 20:56:30 GMT
Server: example-server
Location: https://example.com/restconf/data/example-top:top/Y=value1&value2
Last-Modified: Thu, 26 Jan 2017 20:56:30 GMT
ETag: "b3830f23a4c"
Also I don’t understand why we add limitation to PUT method and plain patch
method on leaf-list and don’t allow
The value of leaf-list instance to be changed by these two methods
see section 4.5 and section 4.6.1
“
4.5. PUT
If the target resource represents a YANG leaf-list, then the PUT
method MUST NOT change the value of the leaf-list instance.
4.6.1. Plain Patch
If the target resource represents a YANG leaf-list, then the PATCH
method MUST NOT change the value of the leaf-list instance.
“
Suppose I want to delete all leaf-list instance values associated with
leaf-list "Y",
Can I send the following request:
DELETE /restconf/data/example-top:top/Y HTTP/1.1
Host: example.com
Quoted section 4.7:
“
4.7. DELETE
If the target resource represents a configuration leaf-list or list
data node, then it MUST represent a single YANG leaf-list or list
instance. The server MUST NOT use the DELETE method to delete more
than one such instance.
”
It seems obvious that DELETE method can not delete more than one instances. But
I don’t know why?
Also I don’t know we add constraint on XML encoding in the Get request, only
allow one single element be
returned for XML encoding, see section 4.3 of RFC8040 as follows:
“
4.3. GET
If a retrieval request for a data resource representing a YANG
leaf-list or list object identifies more than one instance and XML
encoding is used in the response, then an error response containing a
"400 Bad Request" status-line MUST be returned by the server.
“
Suppose I want to retrieve/delete/modify multiple leaf-list instance data
resource, can I wrap leaf-list "Y" within container "top",
create/delete/modify container "top" data resource?
“
Comments?
-Qin
_______________________________________________
netmod mailing list
[email protected]
https://www.ietf.org/mailman/listinfo/netmod