Re: [netmod] Action and RPC statements

Phil Shafer <phil@juniper.net> Thu, 02 November 2017 21:16 UTC

Return-Path: <phil@juniper.net>
X-Original-To: netmod@ietfa.amsl.com
Delivered-To: netmod@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 8CCBB13F989 for <netmod@ietfa.amsl.com>; Thu, 2 Nov 2017 14:16:40 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.021
X-Spam-Level:
X-Spam-Status: No, score=-2.021 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H3=-0.01, RCVD_IN_MSPIKE_WL=-0.01, SPF_PASS=-0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (1024-bit key) header.d=juniper.net
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 iFQjN9mDLLoc for <netmod@ietfa.amsl.com>; Thu, 2 Nov 2017 14:16:38 -0700 (PDT)
Received: from NAM01-BN3-obe.outbound.protection.outlook.com (mail-bn3nam01on0133.outbound.protection.outlook.com [104.47.33.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-SHA384 (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 5912513F987 for <netmod@ietf.org>; Thu, 2 Nov 2017 14:16:38 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=juniper.net; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version; bh=+fsry1pnfvIdmR3DSvwYQFygUSnEftFfA78Lj+jQDt8=; b=VgqEi++UrJgQgFT7LmYTt45w3iQDaQcTinOWD6DqO7zriB5YsUgh071iugakytZaoI+dgbF9Ho/wMRNHfDn+SiU5Z7r/HIkdWDU9lg8RnQRFCofeWUl+dO2n7HVDBkINStO1Lid6Gzpqql7RmrpL0Xn9GXjRJC5b1bvRdFvLZ5k=
Received: from BN3PR05CA0019.namprd05.prod.outlook.com (10.174.64.29) by SN1PR0501MB2079.namprd05.prod.outlook.com (10.163.227.28) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P256) id 15.20.197.4; Thu, 2 Nov 2017 21:16:36 +0000
Received: from DM3NAM05FT039.eop-nam05.prod.protection.outlook.com (2a01:111:f400:7e51::207) by BN3PR05CA0019.outlook.office365.com (2603:10b6:400::29) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384) id 15.20.197.4 via Frontend Transport; Thu, 2 Nov 2017 21:16:35 +0000
Authentication-Results: spf=softfail (sender IP is 66.129.239.12) smtp.mailfrom=juniper.net; ietf.org; dkim=none (message not signed) header.d=none;ietf.org; dmarc=fail action=none header.from=juniper.net;
Received-SPF: SoftFail (protection.outlook.com: domain of transitioning juniper.net discourages use of 66.129.239.12 as permitted sender)
Received: from p-emfe01a-sac.jnpr.net (66.129.239.12) by DM3NAM05FT039.mail.protection.outlook.com (10.152.98.153) with Microsoft SMTP Server (version=TLS1_0, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA_P256) id 15.20.197.9 via Frontend Transport; Thu, 2 Nov 2017 21:16:35 +0000
Received: from p-mailhub01.juniper.net (10.47.226.20) by p-emfe01a-sac.jnpr.net (172.24.192.21) with Microsoft SMTP Server (TLS) id 14.3.123.3; Thu, 2 Nov 2017 14:16:34 -0700
Received: from idle.juniper.net (idleski.juniper.net [172.25.4.26]) by p-mailhub01.juniper.net (8.14.4/8.11.3) with ESMTP id vA2LGVqp004499; Thu, 2 Nov 2017 14:16:32 -0700 (envelope-from phil@juniper.net)
Received: from idle.juniper.net (localhost [127.0.0.1]) by idle.juniper.net (8.15.2/8.15.2) with ESMTP id vA2LGTB3044617; Thu, 2 Nov 2017 17:16:30 -0400 (EDT) (envelope-from phil@juniper.net)
Message-ID: <201711022116.vA2LGTB3044617@idle.juniper.net>
From: Phil Shafer <phil@juniper.net>
To: Andy Bierman <andy@yumaworks.com>
CC: Robert Wilton <rwilton@cisco.com>, Kent Watsen <kwatsen@juniper.net>, Martin Bjorklund <mbj@tail-f.com>, "netmod@ietf.org" <netmod@ietf.org>, Randy Presuhn <randy_presuhn@alumni.stanford.edu>
In-Reply-To: <CABCOCHRkpPQ7Udcd7AZDTwYvEP3BOOv8ec6GOUOf2_QZsZApEA@mail.gmail.com>
MIME-Version: 1.0
Content-Type: text/plain; charset="us-ascii"
Content-ID: <44615.1509657389.1@idle.juniper.net>
Date: Thu, 02 Nov 2017 17:16:29 -0400
X-EOPAttributedMessage: 0
X-MS-Office365-Filtering-HT: Tenant
X-Forefront-Antispam-Report: CIP:66.129.239.12; IPV:NLI; CTRY:US; EFV:NLI; SFV:NSPM; SFS:(10019020)(6009001)(376002)(39860400002)(346002)(2980300002)(199003)(189002)(24454002)(6246003)(53936002)(356003)(69596002)(106466001)(189998001)(8276002)(8676002)(2810700001)(86362001)(4326008)(575784001)(68736007)(236005)(97736004)(50466002)(105596002)(81156014)(2906002)(81166006)(8936002)(50986999)(7696004)(47776003)(54906003)(53416004)(7126002)(305945005)(46406003)(97756001)(1076002)(23726003)(76506005)(478600001)(54356999)(229853002)(6916009)(316002)(2950100002)(16586007)(5660300001)(77096006)(512874002)(299355004); DIR:OUT; SFP:1102; SCL:1; SRVR:SN1PR0501MB2079; H:p-emfe01a-sac.jnpr.net; FPR:; SPF:SoftFail; PTR:InfoDomainNonexistent; A:1; MX:1; LANG:en;
X-Microsoft-Exchange-Diagnostics: 1; DM3NAM05FT039; 1:T6tWoSXShtFmGVeaOsLKXwQN0cF70SexGnpKJQytgNxj95b38keGQZ3i/FJbl2IevoTahd3Ekj0HfCcclMAh0g9ixFhOAKHkBqH6iDJ4bAo3jp/hSVxJS53K4jwgggkK
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id: 4e427515-304f-4c39-58de-08d52236ffb1
X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(22001)(4534020)(4602075)(4627115)(201703031133081)(201702281549075)(2017052603199); SRVR:SN1PR0501MB2079;
X-Microsoft-Exchange-Diagnostics: 1; SN1PR0501MB2079; 3:Fh9EQcKJ1/I9f7NgdbWzGeIvgk+bu6TGUEQqzZzrP8OyDaoKjMtvd7O+NDJE4EQ2z/TylYIleIBb1BhOyGfhr0Qd5n6OIIiR2mXN5nVAzDAqoXcv5m7ozasois8pqoSytGFPk6EIZ7NNsOEtulRg7yBdac2xn3ZSzN4L613wLLpcZ9jVkfNdyYkjIFeSiZ17Yc1isEQhWRMYuRHHFXQ6zQCh4AVs7FuM5nI3dZxWXiijOoTzaW5PD4EGkoUqdEmWz08vDOXC5axeipwBREiXU29z3G7/pDLvem3is+OM2pagXTCdJ4rLvS7VcGpG1MW4Rjc+l5MJhlD7K0bPSOiQaJBjWMh60n12O0zITtnekXs=; 25:Dt9ct6fRoxOMRmAdEZfeN2DUIXHZzj+51YOMGS1mX8EJwZKrYj3nzjiB6+rz9nc4mYP/BN2jMbqe2xzfkSGpMswOI8g7/81SU95WorL2tOUKrfxxDR6R/bJIjcoslL3KnBLE+aA+woEt+G0rkSMPRZS4oiavKzWukmWVqCtrhwibXM7Deh4tfFKTB6qxr2ex2T1l7+72p0HhrPyYDo1b6mDZrQPcOB9nnXUfeNksOk9V4bNDPZR7G5aYzMoyJFCszWzmTctUdDV/c0okUK87tHa7mJDk3GzDkcyn4n3jfYbHao6UuixO4zPQdPh6UDPD/mt+c3g1DzRopTwidSXulw==
X-MS-TrafficTypeDiagnostic: SN1PR0501MB2079:
X-Microsoft-Exchange-Diagnostics: 1; SN1PR0501MB2079; 31:BL39uCadFe6R61It/xQ/Mlhs/DIvN5a+TBSHIZWKp2B8NODjXB9b0rrIm52pTZ9kgu9k2IYj0YJqh+UuN1zPxm5yGuPglY8ZHer9njCkm8YxwGOZnXAVdTC3JJhE4s3fxupXI6Tb9FCxM0M02Xep/BewO4xYzDtwok1YzmzWhpMJiqsCgYDADKIDgA1MByp4bZ8udsM1ymV0q+Os5UbbUeqZhIacffMVbnVZX9cVspU=; 20:my7UZur7qhuvJuCYidbeiwootG8ODi7KYMJHTDDAKyHjpPZ6IPpvuEB0KIa35tWNLxz2qGhol1wdqy8eFTsDz8jJlbScrWOTbsbfn5MoYzY8sx8TI+wp9yzgGsxuFFUJ5sqTB4ADwx735EFHYLTBPUTl/tguFyZHYBxDFxLkYHFjYggHzFtgPHWRnkyVpQbzO/nT8IaMMpy4f7YsK2UGixGoTRaC0uAbjMSMzaRPYVRBrL7ZHxPzjzHdCYujYpqy4clDMHl7Pbjg6XJGb3g/raMNMQXLRct7hzz4/Y7OtwURwbPkIHCWzE/dY/7gvB1PX87NHCO18OwMGmZLdNBFwhrmGdgAWWnLt0vBJtI2X16SlEIyota0wBgwrhpF/PlUoDIPxCu9ZwMKR+YW7tZ+xKSawLjSX3ZPr8BriZ6XPnnOOehHvL/v1B90nb9J2TKoGNq/KDymf9fKt0vjPrVI4jDLlZpRqYVhyLGp5n/hAoM46eTprub68fC2E/7XYMJC
X-Exchange-Antispam-Report-Test: UriScan:(158342451672863)(138986009662008);
X-Microsoft-Antispam-PRVS: <SN1PR0501MB2079961C25CC60267AAABB7BC95C0@SN1PR0501MB2079.namprd05.prod.outlook.com>
X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(100000700101)(100105000095)(100000701101)(100105300095)(100000702101)(100105100095)(6040450)(2401047)(5005006)(8121501046)(3231020)(3002001)(10201501046)(100000703101)(100105400095)(93006095)(93003095)(6055026)(6041248)(20161123558100)(20161123562025)(20161123560025)(20161123564025)(201703131423075)(201702281528075)(201703061421075)(201703061406153)(20161123555025)(6072148)(201708071742011)(100000704101)(100105200095)(100000705101)(100105500095); SRVR:SN1PR0501MB2079; BCL:0; PCL:0; RULEID:(100000800101)(100110000095)(100000801101)(100110300095)(100000802101)(100110100095)(100000803101)(100110400095)(100000804101)(100110200095)(100000805101)(100110500095); SRVR:SN1PR0501MB2079;
X-Microsoft-Exchange-Diagnostics: 1; SN1PR0501MB2079; 4:CzTfXDZMjpH35pXuHHXiuQRV/uzIHbvJN8l95+nCbiv5sBBa/VCMPcP9E9xyoagZOqaXVl3NpIU2an9nz3fGsbAR2h9V3Gf9EzDYA+chIh8++q3CnPEpr+4UzI840/bcqiDK0CA/sK04faAvNROLGj1SDCl+GX8R0znsIFQtmsanCatv6xvFPORjw1mYTc51WKD5LTcPg4wddom48FRcg9m+naY7XPnqvt/XU25XtpoF4GbXHv3jPcwr6busfJlcy3vgAWNYTnca0LxnsvHpAbSQFOyICE3+txOOIlb760FhI+e50ykikUssS44HK5o/uFRnajkAk6vjWi24mUaeySa0zIcwbP0z4GsYniqzBvQ=
X-Forefront-PRVS: 047999FF16
X-Microsoft-Exchange-Diagnostics: 1; SN1PR0501MB2079; 23:GJn03fAMY3Cunf4QDnorX/7It4rGsgdF0d4kA3iyhUA6rySy6wKyTRTH0yzTw9UHc0fbnNSkSs1fBZerjH9dtZqSQud7Kl/Zp8befxvS9pNCjLkFmZ0Hr8bQjJgPsB34ps/LGe7vd7dhLpz5D1mLfENhIEPjcRFaMTp6bwkoqUA5dh2IVEQpmyuj3mvGHnIGyqz6/2vfZ1fdSVrCLq17sYojil/CWr9NV/JdgwEP3+bs65V9dW8umoUR91NSZvZjL4xC8w+sCyrkuCoGGwczo1bd+Xg1o0MssoVXj3s+AUL42QD/2KOfZqxpiptanOfCNCmt+IHaZYAIYWbP/COSR7DtVqV2DlUtCTRd0eLH/tMmMFJlyCdNNEh6sVfg3JV8NGMZVe4VMARNl8cwN1AWbgWy1wCEalCCdpuJtDCPSkflICbyuaebKEryOvmf2LjwsVl+5ePqBpgYimK8aS9Vt56tFWVWQRZUGocap70oDIwDdxzyP/7ixNObNxDbX/LvqjotRbtMZR2qwJnX23kf3Zo0Y3fUOhFWsmM+54HazPI8GJdq9oKQHWQHJH+8cPunU5IHcVCmIr4nfYs7SBYilwkWCn8XnO95VrznvmBo3n+piKYtNOzzdtspIm0GOF384yTv3es+MWstttU++n0I3atgEfOuwYnS1n4qwMybP9nPgNOoOj7EJUSmCtzNGuLlA5odj0JoBMH/NqN0zlG4TQg/NxyKDOmns3/OURkboeDUo50T1kTYmvbvAxuPVGKGg4nPCoF3MofCSSaNHpyqNCOZ9cxnA+nsBU0n1tAhToaE3laZ6xlKjE0lPJ2WS7oMgevM8qWWwGSt4rU209+SJ48tQQAmZHW/m90NjXe+tLbojmK5s0gMkh1mMHeCEeMSJHoasxOrVC1zR0ASqk/yXPGEFBSvB6Z5d/TwjE4XUsUbfczWvmczWIYSYBetgD3NEMtVJq+oRvOGEkl1NMLj7jgrvoW5qD7HisaSj+Tr4YfL9mx5V392lS9Er0sGeWSs6uJrIircSxg0+/zEpj2ZN2qw7DfPk1WC0vO0k0qeGprwFOvfkSwakOwRRy2tdKEovv2JZYiJT5CG2aZV5SjI6tpNqU0JLDH4iymJq+vc/7L4BLOLud8rCmMNtrwmcAjh7AdaMHLw7vUDDjnRm3LnEEiR0eyOQ7uyuRVoKMswlWT2ZUV5oZe7C79oMdGOzonEqphjRJVJM15j5DNTwNa1OQ==
X-Microsoft-Exchange-Diagnostics: 1; SN1PR0501MB2079; 6:ejRbdD7Vf0i2QlpPRAvao7rl3EFbgBvXh1k7nHHOrvTkPv3t/a80ldmmxzmYpfi/8RibbW1LQ/plYfu0HgtX83kB3Bx5pv/qsVYZlGzCtPQ6ObK06RpLHEy51gngc+W6b3f6ROEA7kvQijt23BXb73zexc4p65boLnploBSrbpmv94J0GlhYqOKfu0rXwK4RZYmdWMQSVcOvDjqENVz8EOnzxyUx3CleSNgb3yJPSM5udDZoVDt9qKFrD0ZhwAg0kg2jcJ6bQBAUwjxjpbmBqHzOWruZfwd77Fi+JGFHHNQY+5wo9WwRwFKIoV38rBRDElrj1i/XA48xWGXPdvXQoKDtRJzzQTNlHM+IzETIUqE=; 5:FYPVL105+EAuL5HwUAk+JqBIADuMrcz+RL3RxoOLJ2XQ5LDYkpzk39AZMk2sgBwB5u3GSaxAekWd9zMUZ0QjlmISU3ksJV2K08eOnRRNXrRx2qG4ngkk5Dvpa//17lg6zll3Ilsqh8d3gImYa50OjHKCRZO/EFDaaXaJhHx2GgE=; 24:J2OSf0PwvdtCzztAqZgSqwN3s5r4wXXHMlrZItOJ1qtaKWL+QTmjHD3akntl+uPbjhphTXjuAkEKz837+yqNqiP8ykPuIZJNJzMJJuXpibs=; 7:Hzw68dGLEDgbJFLAT5QsIMV5FDKj2UWxblQws5WIyxYJx+YPsZi1XnTbrm36CIuSGykMqSTr3YUUFs24j//z7CngkUK5Vrk3MO+v9VAN/m6F+b5tixcjJxGERSvT1ErZKR3QQlKc6X9nHjzg4GoW5oziuYejLpDC3gxuWk+zCzGZY2ze/ZAjpUUNlfDcZZ6YBvz3rUSIcdXcBZNfp10sNU+J3t4hBP9XduR0IjL3uC8+61Ion4FXx8kB9bDQnpU1
SpamDiagnosticOutput: 1:99
SpamDiagnosticMetadata: NSPM
X-OriginatorOrg: juniper.net
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 02 Nov 2017 21:16:35.2899 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 4e427515-304f-4c39-58de-08d52236ffb1
X-MS-Exchange-CrossTenant-Id: bea78b3c-4cdb-4130-854a-1d193232e5f4
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=bea78b3c-4cdb-4130-854a-1d193232e5f4; Ip=[66.129.239.12]; Helo=[p-emfe01a-sac.jnpr.net]
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: SN1PR0501MB2079
Archived-At: <https://mailarchive.ietf.org/arch/msg/netmod/A2jYk0g1-1ptQFaRpOwEkG5sLts>
Subject: Re: [netmod] Action and RPC statements
X-BeenThere: netmod@ietf.org
X-Mailman-Version: 2.1.22
Precedence: list
List-Id: NETMOD WG list <netmod.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/netmod>, <mailto:netmod-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/netmod/>
List-Post: <mailto:netmod@ietf.org>
List-Help: <mailto:netmod-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/netmod>, <mailto:netmod-request@ietf.org?subject=subscribe>
X-List-Received-Date: Thu, 02 Nov 2017 21:16:41 -0000

Sorry, if I wasn't clear.  I meant the <datastore> element would
be directly under <action>, so the system knows where to start
looking for data.  Guessing is bad.

Thanks,
 Phil


Andy Bierman writes:
>So a server will be required to guess the correct datastore until it
>finds the right one that matches the action instance?
>
>   <action>
>       <top>
>          <list1>
>             <key>10</key>
>             <do-test>
>                <datastore>candidate</datastore>
>             </do-test>
>          </list1>
>        </top>
>    </action>
>
>The server will guess the datastore in some proprietary order and parse
>instances of /top/ and /top/list1.  Then it finds the <do-test> action
>and parses the input to get to the datastore and find out the real datastore
>to use.  If the server guessed wrong, then it reparses the <action> against
>the requested datastore.  Hopefully the schema trees match up.
>
>Will vendors do all the extra work required to support this sort of thing?
>I doubt it.
>
>
>Andy
>
>
>
>
>On Tue, Oct 31, 2017 at 11:36 PM, Phil Shafer <phil@juniper.net> wrote:
>
>> Robert Wilton writes:
>> >ii) However, as far as I can see, it doesn't make sense for an action to
>> >directly affect the contents of any configuration datastore, that should
>> >be done via a purpose built rpc (like edit-config).
>>
>> An example action would be to retrieve the  fingerprint of an ssh
>> key.  I might want to get the fingerprint of a key in <candidate>
>> before I commit it.
>>
>> Or I could have an action that sets the SNMPv3 auth key to a random
>> value, and I want to invoke that action against <candidate>.
>>
>> Seems like <startup> might also be an interesting place to target
>> actions, but I can't think of a good example.
>>
>> There are always scenarios where something is useful, and the problem
>> with ruling it out is that it becomes needed at some later point.
>> We've a habit of ruling out things and later wishing we had them.
>>
>> Is the easy fix to just put a datastore leaf under rpc/action and
>> have it default to operational?  Any specific RPC can define its
>> own datastore leaf of hard-code the database in the description
>> (explicitly or implicitly <operational>), but the <action> RPC only
>> gets this if we make a new parameter for it.
>>
>> Thanks,
>>  Phil
>>
>
>--001a11411b0ad2d58d055cee96cb
>Content-Type: text/html; charset="UTF-8"
>Content-Transfer-Encoding: quoted-printable
>
><div dir=3D"ltr">Hi,<div><br></div><div>So a server will be required to gue=
>ss the correct datastore until it</div><div>finds the right one that matche=
>s the action instance?</div><div><br></div><div>=C2=A0 =C2=A0&lt;action&gt;=
></div><div>=C2=A0 =C2=A0 =C2=A0 =C2=A0&lt;top&gt;</div><div>=C2=A0 =C2=A0 =
>=C2=A0 =C2=A0 =C2=A0 &lt;list1&gt;</div><div>=C2=A0 =C2=A0 =C2=A0 =C2=A0 =
>=C2=A0 =C2=A0 =C2=A0&lt;key&gt;10&lt;/key&gt;</div><div>=C2=A0 =C2=A0 =C2=
>=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0&lt;do-test&gt;</div><div>=C2=A0 =C2=A0 =C2=
>=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 &lt;datastore&gt;candidate&lt;/datas=
>tore&gt;</div><div>=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0&lt;/do-=
>test&gt;</div><div>=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 &lt;/list1&gt;</div><=
>div>=C2=A0 =C2=A0 =C2=A0 =C2=A0 &lt;/top&gt;</div><div>=C2=A0 =C2=A0 &lt;/a=
>ction&gt;</div><div><br></div><div>The server will guess the datastore in s=
>ome proprietary order and parse</div><div>instances of /top/ and /top/list1=
>.=C2=A0 Then it finds the &lt;do-test&gt; action</div><div>and parses the i=
>nput to get to the datastore and find out the real datastore</div><div>to u=
>se.=C2=A0 If the server guessed wrong, then it reparses the &lt;action&gt; =
>against</div><div>the requested datastore.=C2=A0 Hopefully the schema trees=
> match up.</div><div><br></div><div>Will vendors do all the extra work requ=
>ired to support this sort of thing?</div><div>I doubt it.</div><div><br></d=
>iv><div><br></div><div>Andy</div><div><br></div><div><br></div><div><br></d=
>iv><div><div class=3D"gmail_extra"><br><div class=3D"gmail_quote">On Tue, O=
>ct 31, 2017 at 11:36 PM, Phil Shafer <span dir=3D"ltr">&lt;<a href=3D"mailt=
>o:phil@juniper.net" target=3D"_blank">phil@juniper.net</a>&gt;</span> wrote=
>:<br><blockquote class=3D"gmail_quote" style=3D"margin:0 0 0 .8ex;border-le=
>ft:1px #ccc solid;padding-left:1ex">Robert Wilton writes:<br>
>&gt;ii) However, as far as I can see, it doesn&#39;t make sense for an acti=
>on to<br>
>&gt;directly affect the contents of any configuration datastore, that shoul=
>d<br>
>&gt;be done via a purpose built rpc (like edit-config).<br>
><br>
>An example action would be to retrieve the=C2=A0 fingerprint of an ssh<br>
>key.=C2=A0 I might want to get the fingerprint of a key in &lt;candidate&gt=
>;<br>
>before I commit it.<br>
><br>
>Or I could have an action that sets the SNMPv3 auth key to a random<br>
>value, and I want to invoke that action against &lt;candidate&gt;.<br>
><br>
>Seems like &lt;startup&gt; might also be an interesting place to target<br>
>actions, but I can&#39;t think of a good example.<br>
><br>
>There are always scenarios where something is useful, and the problem<br>
>with ruling it out is that it becomes needed at some later point.<br>
>We&#39;ve a habit of ruling out things and later wishing we had them.<br>
><br>
>Is the easy fix to just put a datastore leaf under rpc/action and<br>
>have it default to operational?=C2=A0 Any specific RPC can define its<br>
>own datastore leaf of hard-code the database in the description<br>
>(explicitly or implicitly &lt;operational&gt;), but the &lt;action&gt; RPC =
>only<br>
>gets this if we make a new parameter for it.<br>
><br>
>Thanks,<br>
>=C2=A0Phil<br>
></blockquote></div><br></div></div></div>
>
>--001a11411b0ad2d58d055cee96cb--