什么是由于父合并而创建的子树的修改类型
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.
问题是关于 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.