什么是由于父合并而创建的子树的修改类型

What is Modification Type of the sub-tree created as a result of merge of the parent

问题是关于 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);

我们使用“merge”更新容器。

我们还有 DataTreeChangeListener,我们可以在其中接收有关更新的信息。

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

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

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

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

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