hi, Ben:
Thanks for your reply,  it really works with the following command:
ovsdb-client transact 
"[\"Open_vSwitch\",{\"mutations\":[[\"ports\",\"delete\",[\"uuid\",\"508cd3d7-a29c-47c3-80df-cdff04228cf9\"]]],
 \"table\":\"Bridge\", 
\"where\":[[\"_uuid\",\"==\",[\"uuid\",\"a24d9a54-c30c-4224-906d-d0af73c53094\"]]],
 \"op\":\"mutate\"}]"


Then there is another question, how can I delete a port with its name? As you 
see, in the above command, I must use the "uuid" to delete port from bridge 
table. Is there a simple way to use "select" and "mutate" to delete port with 
name? like this:
ovsdb-client transact  
"["Open_vSwitch",{"mutations":[["ports","delete",["uuid","{"columns":["_uuid"],"table":"Port","where":[["name","==","p0"]],"op":"select"}"]]],
 "table":"Bridge", 
"where":[["_uuid","==",["uuid","a24d9a54-c30c-4224-906d-d0af73c53094"]]],
"op":"mutate"}]"







At 2014-09-03 11:23:40, "Ben Pfaff" <b...@nicira.com> wrote:
>Please don't drop the mailing list.
>
>On Wed, Sep 03, 2014 at 03:53:13PM +0800, ychen wrote:
>> hi, Ben:
>> I am still have serval problems about transact.
>> when I use the following format to add port p100,type=internal, system 
>> returns error
>>  "ovsdb-client: invalid syntax for 'transact' (use --help for help)"
>> ovsdb-client transact {"method":"transact", 
>> "params":["Open_vSwitch",{"row":{"type":"internal"},"table":"Interface","uuid-name":"rowp100intf","op":"insert"},{"row":{"ports":["set",[["uuid","275537c3-b469-47d1-b3c0-10efd08cb193"],["named-uuid","rowp100port"]]]},"table":"Bridge","where":[["_uuid","==",["uuid","8f725ab8-c5f4-4077-a251-d866e7a448d9"]]],"op":"update"},{"row":{"name":"p100","interfaces":["named-uuid","rowp100intf"],"tag":100},"table":"Port","uuid-name":"rowp100port","op":"insert"}],
>>  "id":1}
>
>It looks like you forgot to quote to protect the JSON content from the
>shell.
>
>> Also, I have tried to substitute the outer {} to [], and "method:transact" 
>> to "method=transact", but system still reports error.
>> so what's the correct transact format?
>
>As specified in RFC 7047.
>
>> Another question:
>> I noticed that when add or delete one port, we should always update table 
>> Bridge. But the update operation needs the old value(exp: add port p100, 
>> there will be an operation update in bridge table, column ports). That's 
>> really complicated when I want to debug with tool ovsdb-tool or ovsdb-client.
>> I am considering why we can't just use operation like "add" or "remove" to 
>> add/delete one element of the ports column?(or other column which type is 
>> map or set)
>
>Use "mutate"?
_______________________________________________
discuss mailing list
discuss@openvswitch.org
http://openvswitch.org/mailman/listinfo/discuss

Reply via email to