Re: [Netconf] [netmod] Restconf - config and operational data sets

Andy Bierman <andy@yumaworks.com> Tue, 26 November 2013 16:43 UTC

Return-Path: <andy@yumaworks.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 9AE7E1ADEC1 for <netconf@ietfa.amsl.com>; Tue, 26 Nov 2013 08:43:20 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -0.778
X-Spam-Level:
X-Spam-Status: No, score=-0.778 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, FM_FORGED_GMAIL=0.622, HTML_MESSAGE=0.001, J_CHICKENPOX_44=0.6, J_CHICKENPOX_64=0.6, RCVD_IN_DNSWL_LOW=-0.7, SPF_PASS=-0.001] autolearn=no
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 5AhTIhJgZABB for <netconf@ietfa.amsl.com>; Tue, 26 Nov 2013 08:43:18 -0800 (PST)
Received: from mail-qa0-f46.google.com (mail-qa0-f46.google.com [209.85.216.46]) by ietfa.amsl.com (Postfix) with ESMTP id 6DC971A1F55 for <netconf@ietf.org>; Tue, 26 Nov 2013 08:43:18 -0800 (PST)
Received: by mail-qa0-f46.google.com with SMTP id f11so4600879qae.5 for <netconf@ietf.org>; Tue, 26 Nov 2013 08:43:18 -0800 (PST)
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:mime-version:in-reply-to:references:date :message-id:subject:from:to:content-type; bh=jXCVOD34oOt232zGmrIDnLpFPp0vS+CMKVdCrdCY1Cs=; b=dvdhRRCxqwUsYl6Vre0qcCqZ9UfCTFWd6Ka3HJ3c+C+BcLGX78Ewy2kUnvwGyz1rFE ufSNLW0yKwqQbpq2eks6yt7o3e84aQ9j2Sk9jXPhXKCtWRh7tUnmmnrJomHn6D3Rfnrh TFo+ZEaIbySKRRz6luUrkwV0TNC/Lf5bejRhp16LNDYPU6VnzB08tQJ9CTnk4o52S0uY 52cYeSiQCMu87Y6fdXm1yE5D7V3FjJF581946TAOsGLkxMhVExf03m4MGVXPYt4yiIJQ XeYzLmE1z7MAU2sbYGH5mwOOX70/aThx+hCs2EbqGjXGN9AppkK8JJ8+2V5WSLsI1ykV /EAw==
X-Gm-Message-State: ALoCoQlwodVAoimh+LrOngMSun2EC19tXK/ywRDiv0Hz7u5MdjdfTfrt9vIYxjySJU3Cmbq/afhn
MIME-Version: 1.0
X-Received: by 10.224.60.193 with SMTP id q1mr14889972qah.99.1385484198032; Tue, 26 Nov 2013 08:43:18 -0800 (PST)
Received: by 10.140.86.200 with HTTP; Tue, 26 Nov 2013 08:43:17 -0800 (PST)
In-Reply-To: <20131126140557.GA63168@elstar.local>
References: <CAFFjW4j96ehWxFStgHWWLZkHAk3iPJjO1nMzVVOhsoLNy5bEpA@mail.gmail.com> <20131126140557.GA63168@elstar.local>
Date: Tue, 26 Nov 2013 08:43:17 -0800
Message-ID: <CABCOCHRZOQ2S83Zq1zOFoVRVDzfNC2uBoA0NEAP5ZiX-GmoV5A@mail.gmail.com>
From: Andy Bierman <andy@yumaworks.com>
To: Juergen Schoenwaelder <j.schoenwaelder@jacobs-university.de>, Wojciech Dec <wdec.ietf@gmail.com>, draft-bierman-netconf-restconf@tools.ietf.org, Netconf <netconf@ietf.org>
Content-Type: multipart/alternative; boundary="001a1133dee677487204ec172d61"
Subject: Re: [Netconf] [netmod] Restconf - config and operational data sets
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: Tue, 26 Nov 2013 16:43:20 -0000

On Tue, Nov 26, 2013 at 6:05 AM, Juergen Schoenwaelder <
j.schoenwaelder@jacobs-university.de> wrote:

> Hi,
>
> I think the current home for restconf discussions is the NETCONF WG
> mailing list and not the NETMOD WG mailing list.
>
> /js
>
> On Tue, Nov 26, 2013 at 03:02:07PM +0100, Wojciech Dec wrote:
> > Hello Restconf authors,
> >
> > (retrying)
> >
> > got a question regarding your latest Restconf draft. This features the
> split
> > between /config and /operational URIs .
> >
> > The text in section 5.1.1 and 5.1.2 indicates that the data in these URIs
> > use
> > data-stores that are effectively dis-joint sets, i.e. Rw data is in
> /config
> > and
> > ro data is in /operational.
> > Is that the intent, correct interpretation?
> >
>

This is a conceptual API so the split is an implementation detail.
The operational data includes ancestor list+keys and containers.


> > If so, then the following example also in the draft indicates something
> > else:
> >
> > The jukebox data model is:
> >
> >          |  +--ro artist-count?   uint32
> >         |  +--ro album-count?    uint32
> >         |  +--rw song-count?     uint32
> >
>

Thanks for finding this bug (song-count is supposed to be config false
in the example-jukebox YANG module.



> >
> > (p102)
> >
> > While on p52 we see the following returned from the operational store:
> >
> > GET /restconf/operational/example-jukebox:jukebox/library
> >         HTTP/1.1
> >      Host: example.com <http://example.com/>
> >      Accept: application/yang.data+json
> >
> >   The server might respond:
> >
> >      HTTP/1.1 200 OK
> >      Date: Mon, 23 Apr 2012 17:01:30 GMT
> >      Server: example-server
> >      Cache-Control: no-cache
> >      Pragma: no-cache
> >      Content-Type: application/yang.data+json
> >
> >      {
> >        "example-jukebox:library" : {
> >           "artist-count" : 42,
> >           "album-count" : 59,
> >           "song-count" : 374
> >        }
> >      }
> >
> > Which interpretation is correct?
> >
>

The retrieval is correct.
The YANG example will be fixed.



> > That said, personally I find this URI "fork" undesirable, and not
> > something a Rest-like interface ought to provide. If anything, the
> > example, even if it turns out to be due to a typo, offers a better
> > alternative; ie have a resource that provides "all" info, config and
> > operational, and another that delivers an oper or config only set. Some
> > better even better options can also be thought of. Anyway, before going
> > there, it would be great to understand whether my interpretation is
> > correct.
> >
>


I thought about this idea some more and it doesn't really work
because the entity tags and last-modified timestamps for
config=true data nodes would be affected by changes to
descendant operational data nodes.

>From and HTTP caching POV, the ETag and Last-Modified headers
need to be updated if the resource changes at all. From a RESTCONF POV,
only the configuration data nodes can affect these headers or else they
are useless for If-Match testing for editing operations.


> Regards,
> > Wojciech.
>
>
Andy


> > _______________________________________________
> > netmod mailing list
> > netmod@ietf.org
> > https://www.ietf.org/mailman/listinfo/netmod
>
>
> --
> Juergen Schoenwaelder           Jacobs University Bremen gGmbH
> Phone: +49 421 200 3587         Campus Ring 1, 28759 Bremen, Germany
> Fax:   +49 421 200 3103         <http://www.jacobs-university.de/>
>