针对anyxml / anydata类型的Opendaylight YANG RPC建模

时间:2016-04-21 06:54:44

标签: sdn opendaylight ietf-netmod-yang

Opendaylight(Beryllium)是否支持YANG RPC数据建模类型,如anyxml / anydata?

我参与开发了一个Opendaylight Controller App,我必须在其中发布动态JSON数据作为RPC(NorthBound API)的一部分。

这是我的YANG RPC定义:

rpc service_discovery{
    input {
        leaf service_account_id{
            type string;
        }
        leaf action{
            type string;
        }
    }
    output {
        list discoveryList{
            anyxml service_element;
        }
    }
}

引用此YANG IETF documentation来定义anyxml / anydata类型

当我构建这个YANG时,我看不到针对anyxml类型生成的JAVA接口/类,并且不确定如何对应于这种类型的JAVA实现。这阻止了我发布从SouthBound API收到的动态JSON。

以下是我想在输出中发布的示例数据。这里的难点是,JSON属性是动态的,因此无法在YANG中静态定义它们。所以我选择了anyxml类型。

[ {
    "id_1": "123245",
    "name_1": "test1",
    "deployment_1": "prod",
    "type_1": "cloud"
  },
  {
    "id_2": "33455",
    "name_2": "Test2",
    "deployment_2": "QA",
    "type_2": "container"
  } ]

请建议我将杨模型的上述数据发布在输出中。

1 个答案:

答案 0 :(得分:0)

因为你已经放了" anyxml service_element"作为" list discoveryList"的输出类型,因此您不能指望它作为任何类/接口生成。

您可以将输出修改为:

output {
    anyxml service_element {
        description: .........
    }
}