Вопрос касается поведения 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)
Обратите внимание, что мы слушаем не модификации контейнера, а его поддерево.
Какой тип модификации следует ожидать для LogicalNetwork, если объект Tenant и LogicalNetwork являются новыми? Это должно быть SUBTREE_MODIFIED или WRITE?
Мы используем азот-SR3 и видим, что он «ЗАПИШИТЕ». Однако наши разработчики заверили меня, что в предыдущей версии ODL это был «SUBTREE_MODIFIED». Итак, вопрос в том, что это должно быть.