ConfD User Community

No tailf:action shows up in RESTCONF GET /operations

With some tailf:actions sprinkled around the yang model, these go to the operations tree under restconf.

However a GET on /operations doesn’t show any of the available operations generated by these, they seem hidden by default? In the RESTCONF api I pretty much have to guess how to format the request. They work, but the paths have to be guessed based on knowledge of the yang model.

example:

    grouping doan-import {
        tailf:action import {
            tailf:cli-configure-mode;
            tailf:info "Import stuff";
            tailf:exec "/bin/some_script_import.sh" {
                tailf:args "$(path)";
            }
[...]

How to get the available operations exposed by default?

{
    "restconf": {
        "operations": {}
    }
}

As the RFC 8040 says - only RPC operations, no YANG 1.1 actions or the deprecated tailf:action, are to be listed under the {+restconf}/operations resource
https://tools.ietf.org/html/rfc8040#section-3.3.2
https://tools.ietf.org/html/rfc8040#section-3.6

$ pwd
/Users/tailf/confd-7.2.1/examples.confd/restconf/yang-patch
$ curl -u admin:admin http://localhost:8008/restconf/operations
<operations xmlns="urn:ietf:params:xml:ns:yang:ietf-restconf">
  <jbox:play xmlns:jbox="http://example.com/ns/example-jukebox">/restconf/operations/example-jukebox:play</jbox:play>
</operations>

Get the YANG model:

$ curl -su admin:admin http://localhost:8008/restconf/tailf/modules/example-jukebox/2016-08-15 |grep -A17 "rpc play"
  rpc play {
    description
      "Control function for the jukebox player.";
    input {
      leaf playlist {
        type string;
        mandatory true;
        description
          "The playlist name.";
      }
      leaf song-number {
        type uint32;
        mandatory true;
        description
          "Song number in playlist to play.";
      }
    }
  }

Thanks, trying to think of a way for the cli and rpc to share the same code to avoid duplication.