Re: [Netconf] Fwd: I-D Action: draft-bierman-netconf-restconf-03.txt

Martin Bjorklund <mbj@tail-f.com> Wed, 08 January 2014 11:29 UTC

Return-Path: <mbj@tail-f.com>
X-Original-To: netconf@ietfa.amsl.com
Delivered-To: netconf@ietfa.amsl.com
Received: from localhost (ietfa.amsl.com [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 22D921AE247 for <netconf@ietfa.amsl.com>; Wed, 8 Jan 2014 03:29:52 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.438
X-Spam-Level:
X-Spam-Status: No, score=-2.438 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, RP_MATCHES_RCVD=-0.538] autolearn=ham
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 eWAJTPaO6HDr for <netconf@ietfa.amsl.com>; Wed, 8 Jan 2014 03:29:50 -0800 (PST)
Received: from mail.tail-f.com (mail.tail-f.com [109.74.15.94]) by ietfa.amsl.com (Postfix) with ESMTP id 478241AE1D7 for <netconf@ietf.org>; Wed, 8 Jan 2014 03:29:50 -0800 (PST)
Received: from localhost (138.162.241.83.in-addr.dgcsystems.net [83.241.162.138]) by mail.tail-f.com (Postfix) with ESMTPSA id A2EE6240C20B; Wed, 8 Jan 2014 12:29:39 +0100 (CET)
Date: Wed, 08 Jan 2014 12:29:39 +0100
Message-Id: <20140108.122939.2299520154335083466.mbj@tail-f.com>
To: wdec.ietf@gmail.com
From: Martin Bjorklund <mbj@tail-f.com>
In-Reply-To: <CAFFjW4g63nRp0yYrzW6W=UisEbH=OMHHsfV2U=xCeeq+ne0-xg@mail.gmail.com>
References: <CAFFjW4iNBMamFFwEtbiXPjSJ2g4mi+Q_3jQ1oyFkgJd47bhcbg@mail.gmail.com> <CABCOCHQgnAQXBrgpAADk3SiOsZkg76M9Z7zeFT4UdCPdU_cXdQ@mail.gmail.com> <CAFFjW4g63nRp0yYrzW6W=UisEbH=OMHHsfV2U=xCeeq+ne0-xg@mail.gmail.com>
X-Mailer: Mew version 6.5rc2 on Emacs 23.4 / Mule 6.0 (HANACHIRUSATO)
Mime-Version: 1.0
Content-Type: Text/Plain; charset="us-ascii"
Content-Transfer-Encoding: 7bit
Cc: netconf@ietf.org
Subject: Re: [Netconf] Fwd: I-D Action: draft-bierman-netconf-restconf-03.txt
X-BeenThere: netconf@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: Network Configuration WG mailing list <netconf.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/netconf>, <mailto:netconf-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www.ietf.org/mail-archive/web/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, 08 Jan 2014 11:29:52 -0000

Wojciech Dec <wdec.ietf@gmail.com> wrote:
> On 6 January 2014 12:49, Andy Bierman <andy@yumaworks.com> wrote:
> >
> >
> >
> > On Mon, Jan 6, 2014 at 3:33 AM, Wojciech Dec <wdec.ietf@gmail.com> wrote:
> >>
> >> Hi Andy, all,
> >>
> >> are the issues leading to this draft  documented somewhere? The IETF
> >> 88 minutes only talk about the yang patch aspect.
> >>
> >> Anyway, I took a read through the latest document and the change to
> >> have all Yang data-nodes be resources. Am I correct in interpreting it
> >> that now  every leaf node  effectively becomes a resource with a
> >> separate URI? Could the authors provide some more insight regarding
> >> this change?
> >>
> >
> >
> >
> > Since YANG Patch is now optional, there is no way to delete an optional leaf
> > or leaf-list otherwise, except to copy the entire resource, and then replace
> > the entire resource (minus the optional leaf).
> 
> 
> I am still not able to get the full rationale for the change.  Can the
> authors or chairs provide that?
> 
> Anyway, it now appears that every single data leaf is a resource,
> instead of an attribute

Yes, every leaf is a subresource to its parent list or container.
This just means that you can GET/POST/DELETE the leaf directly, w/o
having to PATCH the parent.

> and the spec doesn't specify a distinction
> between handling parent resources and its sub-resources, e.g. At the
> very least POST/PUT operations to sub resources need to be constrained
> by their parent resource, and leaving that up to the implementation is
> kind of a step backwards for the spec as a whole besides being IMO a
> major complication for client or server, and likely both e.g how
> should a change to a sub-resource that doesn't meet some condition of
> the parent be handled? For a single parent resource, how should
> multiple sub-resource changes be coordinated (the parent resource
> needs to be consistent)? Etc.

I am afraid I do not understand your concern.  Could you provide an
example (data model and requests) that you feel is problematic or
unclear?

> If this current development was driven by questions/problems in the
> support of HTTP Patch operation (incl. JSON patch), the solution
> appears to be possibly worse than the supposed problem. That's why it
> would be good to understand the rationale some more.

If the "yang patch" media type is opitonal, there is no other way to
delete optional leafs.  If the optional leaf is a resource it can be
removed with DELETE.


/martin