Re: [netconf] FW: [netmod] CRUD operations on Leaf-list in RFC8040

Andy Bierman <andy@yumaworks.com> Wed, 25 September 2019 15:01 UTC

Return-Path: <andy@yumaworks.com>
X-Original-To: netconf@ietfa.amsl.com
Delivered-To: netconf@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id C4AB31200C7 for <netconf@ietfa.amsl.com>; Wed, 25 Sep 2019 08:01:23 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.889
X-Spam-Level:
X-Spam-Status: No, score=-1.889 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, T_MIME_MALF=0.01] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=yumaworks-com.20150623.gappssmtp.com
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 8XBf92Mb6c5v for <netconf@ietfa.amsl.com>; Wed, 25 Sep 2019 08:01:20 -0700 (PDT)
Received: from mail-lf1-x12a.google.com (mail-lf1-x12a.google.com [IPv6:2a00:1450:4864:20::12a]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 3D2A8120026 for <netconf@ietf.org>; Wed, 25 Sep 2019 08:01:20 -0700 (PDT)
Received: by mail-lf1-x12a.google.com with SMTP id y127so4494147lfc.0 for <netconf@ietf.org>; Wed, 25 Sep 2019 08:01:20 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yumaworks-com.20150623.gappssmtp.com; s=20150623; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=3PBDJF9+r4uZ6Rzv+uD9chYC8DPAZaXne21r0mZeHP8=; b=VwTEfUmeviJB1BhadWfJzR0bm9kT2vS6LvDt7ogrckYYdu/x+YZZLDkB9YWy1rkbqJ r9Hg2jtd6e6QB1lyqQXdWkvBgT2virSR797LAZDS4EKxBzsaW3nqJmkrdSOgAfS8EC70 aE2Q9izDXV7XzBQvOv+lliZ8slahpEoqhqfr3r/O2slzt3nwR2plK97r2W/dPbzI4f3r N1FBRUDRQvdLKclDvY1+uQEig/mXyBZj0qAPdWGqaEc4cHjInSiVVk+TpndSmn6lIqAe Xka/TOsCY9RMo5ZR2AcsUJPvssA+cg2vOMNciBGGWqV7DINQwH/RXLcyMVaLSDyxZVMj YUkA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=3PBDJF9+r4uZ6Rzv+uD9chYC8DPAZaXne21r0mZeHP8=; b=RTKVALy4S6C75fyKJKWlc1fZ7d/PfPCD4AqcO0eAzoLPWEdnCAXkLQuczXxfhx5nk+ qZy94T+2btF9RJNLTDwiVJ1gvM8krC+rFOreHwVEETJu+xIHkw5dLun6Lyzo6oZEGhFC nLhgecQRbbRWrvgZgS6htnDbu7GK4gV+NdbRSlqBfFiYvkeU6LVUosR35DmIfs8ZvpKd qBhFByWQqaGO3Mpj3wP3ItMm2d542lAVFEXJv/psG8JMWC8H7XbYe26UYRNc1w6R3E9O ODrBHogKePzKFKlePZ0bdgL/KJ/0kAjMK79pXnxTMbwnZtca5BHboFEEiehABHZR7Igr 3rLQ==
X-Gm-Message-State: APjAAAUHV6wATul2gjG3UKMrL+g9BHuxllQc+Ap7pJQ8i8DR1EvjijF5 /7sub+p3Jv9T0g0n2XL/kD4wDEHeIycLCsBpjFDnLA==
X-Google-Smtp-Source: APXvYqz2p96HWB0U+U3K4cWZgyBOmILrQpHqjSCMb8jD3ilpsFs6Sj+in4HsISBtDnccgA0yXl8eGX60Mox/XQEIFrY=
X-Received: by 2002:ac2:554e:: with SMTP id l14mr6916765lfk.32.1569423678367; Wed, 25 Sep 2019 08:01:18 -0700 (PDT)
MIME-Version: 1.0
References: <B8F9A780D330094D99AF023C5877DABAA9322BD1@dggeml511-mbs.china.huawei.com> <B8F9A780D330094D99AF023C5877DABAA9323036@dggeml511-mbs.china.huawei.com>
In-Reply-To: <B8F9A780D330094D99AF023C5877DABAA9323036@dggeml511-mbs.china.huawei.com>
From: Andy Bierman <andy@yumaworks.com>
Date: Wed, 25 Sep 2019 08:01:07 -0700
Message-ID: <CABCOCHQMUKMsxzVvayEx913v=-OOFiPTpubZjt6c9n7EcDwgtA@mail.gmail.com>
To: Qin Wu <bill.wu@huawei.com>
Cc: netconf <netconf@ietf.org>
Content-Type: multipart/alternative; boundary="000000000000da06a0059361ece7"
Archived-At: <https://mailarchive.ietf.org/arch/msg/netconf/QXJ-ind78nB3Qu2DIwngC_B7ZNM>
Subject: Re: [netconf] FW: [netmod] CRUD operations on Leaf-list in RFC8040
X-BeenThere: netconf@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: NETCONF WG list <netconf.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/netconf>, <mailto:netconf-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/netconf/>
List-Post: <mailto:netconf@ietf.org>
List-Help: <mailto:netconf-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/netconf>, <mailto:netconf-request@ietf.org?subject=subscribe>
X-List-Received-Date: Wed, 25 Sep 2019 15:01:24 -0000

Hi,

The RESTCONF target resource has to be one resource.
The WG added YANG Patch (RFC 8072) to do more complex editing operations.

Andy


On Wed, Sep 25, 2019 at 7:57 AM Qin Wu <bill.wu@huawei.com> wrote:

>
> Send to netconf for discussion in the right place,thank Jurgen for kindly
> reminder.
>
>
> *发件人: *Qin Wu<bill.wu@huawei.com>
> *收件人: *netmod<netmod@ietf.org>
> *抄送: *Zengjuan<annette.zeng@huawei.com>
> *主题: *[netmod] CRUD operations on Leaf-list in RFC8040
> *时间: *2019-09-25 19:55:12
>
> 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
>
>
> _______________________________________________
> netconf mailing list
> netconf@ietf.org
> https://www.ietf.org/mailman/listinfo/netconf
>