ovn-org/libovsdb

can update key value when mutateInsert duplicate key into map

gugulee opened this issue · 0 comments

when insert a duplicate key into map, it will be ingored.

can update key value when insert a duplicate key into map?
this is useful when update logical_switch_port table external_ids column.
for example,

// lsp.ExternalIDs should be map[ key:value ]
mutations := model.Mutation{
	Field:   &lsp.ExternalIDs,
	Value:   map[string]string{"key": "value"},
	Mutator: ovsdb.MutateOperationInsert,
}

ops, err := c.ovnNbClient.Where(lsp).Mutate(lsp, mutations)
if err != nil {
	return err
}

if err := c.Transact("ls-set-external-ids", ops); err != nil {
	return err
}

// insert `key`  repeatedly, lsp.ExternalIDs should be map[ key:value1 ]
mutations := model.Mutation{
	Field:   &lsp.ExternalIDs,
	Value:   map[string]string{"key": "value1"},
	Mutator: ovsdb.MutateOperationInsert,
}