【问题标题】:Opendaylight YANG RPC modelling for anyxml /anydata types针对 anyxml /anydata 类型的 Opendaylight YANG RPC 建模
【发布时间】:2016-04-22 13:28:42
【问题描述】:

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

我一直参与开发 Opendaylight 控制器应用程序,我必须在其中发布动态 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"
  } ]

请向我推荐 YANG 模型,以便在输出中发布上述数据。

【问题讨论】:

    标签: sdn opendaylight ietf-netmod-yang


    【解决方案1】:

    由于您已将“anyxml service_element”作为“list discoveryList”的输出类型,因此您不能期望它作为任何类/接口生成。

    您可以将输出修改为:

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

    【讨论】:

    • 感谢@Bhavesh 的回复。实际上,我想在输出中发布以下类型的 ** 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" } ] 请建议我使用 YANG 模型,以便将上述示例数据发布到输出中。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-03-28
    • 2012-04-17
    • 2015-08-10
    • 1970-01-01
    • 1970-01-01
    • 2017-02-14
    • 1970-01-01
    相关资源
    最近更新 更多