父级合并后创建的子树的修改类型是什么

时间:2018-06-29 21:17:17

标签: opendaylight

问题与WriteTransaction.merge的行为有关。我们有杨容器。

container tenants {
    list tenant {
        key tenant-id;
        uses tenant-attributes;
        list logical-network {
            key ln-id;
            uses logical-network-attributes;
        }
    }
}

我们使用

更新此容器
InstanceIdentifier<Tenant> path = InstanceIdentifier.builder(Tenants.class)
  .child(Tenant.class, new TenantKey(tenant_id)).build();
writeTransaction.merge(LogicalDatastoreType.CONFIGURATION, path, tenant, true);

要更新容器,我们使用“ 合并”。

我们还有DataTreeChangeListener,用于接收有关更新的信息。

public void onDataTreeChanged(
    Collection<DataTreeModification<LogicalNetwork>> changed)

请注意,我们不是在监听容器的修改,而是在监听它的子树。

如果Tenant对象和LogicalNetwork是新的,我们应该为LogicalNetwork期望哪个ModificationType?应该是SUBTREE_MODIFIED还是WRITE?

我们使用Nitrogen-SR3,我们可以看到它是“ WRITE”。但是,我们的开发人员向我保证,在ODL的先前版本中为“ SUBTREE_MODIFIED”。所以,问题是它应该是什么。

1 个答案:

答案 0 :(得分:0)

如果您已注册的数据树部分植根于LogicalNetwork,则在创建或完全替换LogicalNetwork节点时,ModificationType将为WRITE。如果添加或更新了现有LogicalNetwork节点的任何子节点,则它将为SUBTREE_MODIFIED。