[Netconf] Fwd: Re: How to grep through a YANG? With grepyang

otilibil@eurecom.fr Fri, 30 March 2018 14:42 UTC

Return-Path: <otilibil@eurecom.fr>
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 6863512D7F3 for <netconf@ietfa.amsl.com>; Fri, 30 Mar 2018 07:42:49 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.911
X-Spam-Level:
X-Spam-Status: No, score=-1.911 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, RCVD_IN_DNSWL_NONE=-0.0001, SPF_PASS=-0.001, T_RP_MATCHES_RCVD=-0.01] autolearn=ham autolearn_force=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 hkXGBaIipxoR for <netconf@ietfa.amsl.com>; Fri, 30 Mar 2018 07:42:46 -0700 (PDT)
Received: from smtp2.eurecom.fr (smtp2.eurecom.fr [193.55.113.211]) by ietfa.amsl.com (Postfix) with ESMTP id 58D4F126C22 for <netconf@ietf.org>; Fri, 30 Mar 2018 07:42:45 -0700 (PDT)
X-IronPort-AV: E=Sophos;i="5.48,382,1517871600"; d="scan'208";a="7866846"
Received: from thorgal.eurecom.fr ([10.3.2.220]) by drago2i.eurecom.fr with ESMTP; 30 Mar 2018 16:42:44 +0200
Received: (from apache@localhost) by thorgal.eurecom.fr (8.14.4+Sun/8.14.4/Submit) id w2UEghHI002346; Fri, 30 Mar 2018 16:42:43 +0200 (CEST)
X-Authentication-Warning: thorgal.eurecom.fr: apache set sender to otilibil@eurecom.fr using -f
Received: from reverse.completel.net (reverse.completel.net [92.103.89.82]) by webmail.eurecom.fr (Horde MIME library) with HTTP; Fri, 30 Mar 2018 16:42:43 +0200
Message-ID: <20180330164243.wp441i5thcskkgok@webmail.eurecom.fr>
Date: Fri, 30 Mar 2018 16:42:43 +0200
From: otilibil@eurecom.fr
To: netconf@ietf.org
MIME-Version: 1.0
Content-Type: text/plain; charset="UTF-8"; DelSp="Yes"; format="flowed"
Content-Disposition: inline
Content-Transfer-Encoding: quoted-printable
User-Agent: Internet Messaging Program (IMP) H3 (4.1.4)
X-Originating-IP: 92.103.89.82
X-Remote-Browser: Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/62.0.3202.89 Safari/537.36
Archived-At: <https://mailarchive.ietf.org/arch/msg/netconf/5iYDsTUZgInIMnU4uK2y-M8SK_g>
Subject: [Netconf] Fwd: Re: How to grep through a YANG? With grepyang
X-BeenThere: netconf@ietf.org
X-Mailman-Version: 2.1.22
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: <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: Fri, 30 Mar 2018 14:42:49 -0000

Hi all,
grepyang has got a new feature: it could grep for a node through a module:

# ./grepyang cancel-commit ietf-netconf@2011-06-01.yang
853:  rpc cancel-commit {
854:    if-feature confirmed-commit;
855:    description
856:      "This operation is used to cancel an ongoing confirmed commit.
857:       If the confirmed commit is persistent, the parameter
858:       'persist-id' must be given, and it must match the value of the
859:       'persist' parameter.";
860:    reference "RFC 6241, Section 8.4.4.1";
861:
862:    input {
863:      leaf persist-id {
864:        type string;
865:        description
866:          "This parameter is given in order to cancel a persistent
867:           confirmed commit.  The value must be equal to the value
868:           given in the 'persist' parameter to the <commit> operation.
869:           If it does not match, the operation fails with an
870:          'invalid-value' error.";
871:      }
872:    }
873:  }

Now it can grep for a node with a greped node:

# ./grepyang input cancel-commit ietf-netconf@2011-06-01.yang
853:  rpc cancel-commit {
862:    input {
863:      leaf persist-id {
864:        type string;
865:        description
866:          "This parameter is given in order to cancel a persistent
867:           confirmed commit.  The value must be equal to the value
868:           given in the 'persist' parameter to the <commit> operation.
869:           If it does not match, the operation fails with an
870:          'invalid-value' error.";
871:      }
872:    }
873:  }

pyang lacks such features; that's why I have been working on grepyang.

It is out on Github (https://github.com/ariel-anieli/grepyang); feel  
free to play around with it.

If you find it of any interest, have some remarks, or see it needs  
enhancements; please, do so: I will work on the issues.

Regards,
Ariel

----- Forwarded message from otilibil@eurecom.fr -----
     Date: Mon, 26 Mar 2018 11:37:01 +0200
     From: otilibil@eurecom.fr
Reply-To: otilibil@eurecom.fr
  Subject: Re: [Netconf] How to grep through a YANG? With grepyang
       To: "Bert Wijnen (IETF)" <bwietf@bwijnen.net>, netconf@ietf.org

Thanks, Bert;
If, by playing around with the tool, you come across a behaviour you
did not like, or a feature you would like to be in, please, open an
issue (https://github.com/ariel-anieli/grepyang): I will improve on it.

Regards,
Ariel

Quoting "Bert Wijnen (IETF)" <bwietf@bwijnen.net>:

> Looks like an interesting too.
>
> Bert
>
> On 25/03/2018 00:55, otilibil@eurecom.fr wrote:
>> Hello members,
>>
>> I have put on Github 'grepyang'    
>> (https://github.com/ariel-anieli/grepyang.git), a script that greps  
>>   through a YANG, and extracts snippets matching a key, it seems    
>> 'pyang' does not have that feature; for example:
>>
>> # ./grepyang cancel-commit ietf-netconf@2011-06-01.yang
>> 853:  rpc cancel-commit {
>> 854:    if-feature confirmed-commit;
>> 855:    description
>> 856:      "This operation is used to cancel an ongoing confirmed commit.
>> 857:       If the confirmed commit is persistent, the parameter
>> 858:       'persist-id' must be given, and it must match the value of the
>> 859:       'persist' parameter.";
>> 860:    reference "RFC 6241, Section 8.4.4.1";
>> 861:
>> 862:    input {
>> 863:      leaf persist-id {
>> 864:        type string;
>> 865:        description
>> 866:          "This parameter is given in order to cancel a persistent
>> 867:           confirmed commit.  The value must be equal to the value
>> 868:           given in the 'persist' parameter to the <commit> operation.
>> 869:           If it does not match, the operation fails with an
>> 870:          'invalid-value' error.";
>> 871:      }
>> 872:    }
>> 873:  }
>>
>> If you have any feedback, please, do so: I will improve the tool from it.
>>
>> Regards,
>> Ariel
>>
>> -------------------------------------------------------------------------------
>> This message was sent using EURECOM Webmail: http://webmail.eurecom.fr
>>
>> _______________________________________________
>> Netconf mailing list
>> Netconf@ietf.org
>> https://www.ietf.org/mailman/listinfo/netconf
>>



-------------------------------------------------------------------------------
This message was sent using EURECOM Webmail: http://webmail.eurecom.fr



----- End forwarded message -----


-------------------------------------------------------------------------------
This message was sent using EURECOM Webmail: http://webmail.eurecom.fr