0

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 文档来定义 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 模型,以便在输出中发布上述数据。

4

1 回答 1

0

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

您可以将输出修改为:

output {
    anyxml service_element {
        description: .........
    }
}
于 2016-04-21T12:24:26.147 回答