const struct sbrec_chassis *chassis_rec;
const struct sbrec_port_binding *binding_rec;
- if (!ctx->ovnsb_idl_txn) {
- return;
- }
-
chassis_rec = get_chassis(ctx->ovnsb_idl, chassis_id);
if (!chassis_rec) {
return;
sset_add(&all_lports, node->name);
}
- ovsdb_idl_txn_add_comment(
- ctx->ovnsb_idl_txn,"ovn-controller: updating port bindings for '%s'",
- chassis_id);
-
/* Run through each binding record to see if it is resident on this
* chassis and update the binding accordingly. This includes both
* directly connected logical ports and children of those ports. */
if (binding_rec->chassis == chassis_rec) {
continue;
}
- if (binding_rec->chassis) {
- VLOG_INFO("Changing chassis for lport %s from %s to %s",
- binding_rec->logical_port,
- binding_rec->chassis->name,
- chassis_rec->name);
+ if (ctx->ovnsb_idl_txn) {
+ if (binding_rec->chassis) {
+ VLOG_INFO("Changing chassis for lport %s from %s to %s.",
+ binding_rec->logical_port,
+ binding_rec->chassis->name,
+ chassis_rec->name);
+ } else {
+ VLOG_INFO("Claiming lport %s for this chassis.",
+ binding_rec->logical_port);
+ }
+ sbrec_port_binding_set_chassis(binding_rec, chassis_rec);
}
- sbrec_port_binding_set_chassis(binding_rec, chassis_rec);
} else if (binding_rec->chassis == chassis_rec) {
- sbrec_port_binding_set_chassis(binding_rec, NULL);
+ if (ctx->ovnsb_idl_txn) {
+ VLOG_INFO("Releasing lport %s from this chassis.",
+ binding_rec->logical_port);
+ sbrec_port_binding_set_chassis(binding_rec, NULL);
+ }
} else if (!binding_rec->chassis
&& !strcmp(binding_rec->type, "localnet")) {
/* localnet ports will never be bound to a chassis, but we want