)]}'
{"quantum/plugins/openvswitch/README":[{"author":{"_account_id":1397,"deleted":true},"change_message_id":"e00840b02264c15a8495387e5c281a6826dd09bf","unresolved":false,"context_lines":[{"line_number":7,"context_line":""},{"line_number":8,"context_line":"1) The plugin itself: The plugin uses a database backend (mysql for"},{"line_number":9,"context_line":"   now) to store configuration and mappings that are used by the"},{"line_number":10,"context_line":"   agent."},{"line_number":11,"context_line":""},{"line_number":12,"context_line":"2) An agent which runs on the hypervisor (dom0) and communicates with"},{"line_number":13,"context_line":"   openvswitch.  The agent gathers the configuration and mappings from"}],"source_content_type":"application/octet-stream","patch_set":1,"id":"AAAACX%2F%2F%2FpA%3D","line":10,"updated":"2011-09-20 18:47:52.000000000","message":"I would note that this runs on a centralized service, often on the same host as nova itself.  We use the term \"quantum service host\" below, so we should try and define it somewhere here.","commit_id":"0107bb4e053aa5518077d526cfcb27666fe478e9"},{"author":{"_account_id":233,"name":"Brad Hall","email":"brad@nicira.com","username":"bgh"},"unresolved":false,"context_lines":[{"line_number":7,"context_line":""},{"line_number":8,"context_line":"1) The plugin itself: The plugin uses a database backend (mysql for"},{"line_number":9,"context_line":"   now) to store configuration and mappings that are used by the"},{"line_number":10,"context_line":"   agent."},{"line_number":11,"context_line":""},{"line_number":12,"context_line":"2) An agent which runs on the hypervisor (dom0) and communicates with"},{"line_number":13,"context_line":"   openvswitch.  The agent gathers the configuration and mappings from"}],"source_content_type":"application/octet-stream","patch_set":1,"id":"AAAACX%2F%2F%2Foo%3D","line":10,"in_reply_to":"AAAACX%2F%2F%2FpA%3D","updated":"2011-09-20 19:54:12.000000000","message":"Done","commit_id":"0107bb4e053aa5518077d526cfcb27666fe478e9"},{"author":{"_account_id":1397,"deleted":true},"change_message_id":"e00840b02264c15a8495387e5c281a6826dd09bf","unresolved":false,"context_lines":[{"line_number":31,"context_line":"--xenapi_ovs_integration_bridge\u003dxapi1"},{"line_number":32,"context_line":"--linuxnet_interface_driver\u003dnova.network.linux_net.LinuxOVSInterfaceDriver"},{"line_number":33,"context_line":""},{"line_number":34,"context_line":"1b) (If you\u0027re using kvm) Configure the bridge, vif driver, and libvirt/vif"},{"line_number":35,"context_line":"    type"},{"line_number":36,"context_line":"--libvirt_ovs_integration_bridge\u003dbr-int"},{"line_number":37,"context_line":"--libvirt_type\u003dqemu"}],"source_content_type":"application/octet-stream","patch_set":1,"id":"AAAACX%2F%2F%2Fpc%3D","line":34,"updated":"2011-09-20 18:47:52.000000000","message":"I would probably change this to qemu/kvm","commit_id":"0107bb4e053aa5518077d526cfcb27666fe478e9"},{"author":{"_account_id":233,"name":"Brad Hall","email":"brad@nicira.com","username":"bgh"},"unresolved":false,"context_lines":[{"line_number":31,"context_line":"--xenapi_ovs_integration_bridge\u003dxapi1"},{"line_number":32,"context_line":"--linuxnet_interface_driver\u003dnova.network.linux_net.LinuxOVSInterfaceDriver"},{"line_number":33,"context_line":""},{"line_number":34,"context_line":"1b) (If you\u0027re using kvm) Configure the bridge, vif driver, and libvirt/vif"},{"line_number":35,"context_line":"    type"},{"line_number":36,"context_line":"--libvirt_ovs_integration_bridge\u003dbr-int"},{"line_number":37,"context_line":"--libvirt_type\u003dqemu"}],"source_content_type":"application/octet-stream","patch_set":1,"id":"AAAACX%2F%2F%2FoU%3D","line":34,"in_reply_to":"AAAACX%2F%2F%2Fpc%3D","updated":"2011-09-20 19:54:12.000000000","message":"Done","commit_id":"0107bb4e053aa5518077d526cfcb27666fe478e9"},{"author":{"_account_id":1397,"deleted":true},"change_message_id":"e00840b02264c15a8495387e5c281a6826dd09bf","unresolved":false,"context_lines":[{"line_number":38,"context_line":"--libvirt_vif_type\u003dethernet"},{"line_number":39,"context_line":"--libvirt_vif_driver\u003dnova.virt.libvirt.vif.LibvirtOpenVswitchDriver"},{"line_number":40,"context_line":"--linuxnet_interface_driver\u003dnova.network.linux_net.LinuxOVSInterfaceDriver"},{"line_number":41,"context_line":""},{"line_number":42,"context_line":"# -- Quantum configuration"},{"line_number":43,"context_line":""},{"line_number":44,"context_line":"Make the openvswitch plugin the current quantum plugin"}],"source_content_type":"application/octet-stream","patch_set":1,"id":"AAAACX%2F%2F%2FpY%3D","line":41,"updated":"2011-09-20 18:47:52.000000000","message":"--linuxnet_interface_driver\u003dnova.network.linux_net.LinuxOVSInterfaceDriver is not actually required yet, as DHCP is not yet integrated with Quantum Manager.  We may want to note this (though I will be covering this in the main docs as well)","commit_id":"0107bb4e053aa5518077d526cfcb27666fe478e9"},{"author":{"_account_id":233,"name":"Brad Hall","email":"brad@nicira.com","username":"bgh"},"unresolved":false,"context_lines":[{"line_number":38,"context_line":"--libvirt_vif_type\u003dethernet"},{"line_number":39,"context_line":"--libvirt_vif_driver\u003dnova.virt.libvirt.vif.LibvirtOpenVswitchDriver"},{"line_number":40,"context_line":"--linuxnet_interface_driver\u003dnova.network.linux_net.LinuxOVSInterfaceDriver"},{"line_number":41,"context_line":""},{"line_number":42,"context_line":"# -- Quantum configuration"},{"line_number":43,"context_line":""},{"line_number":44,"context_line":"Make the openvswitch plugin the current quantum plugin"}],"source_content_type":"application/octet-stream","patch_set":1,"id":"AAAACX%2F%2F%2FoQ%3D","line":41,"in_reply_to":"AAAACX%2F%2F%2FpY%3D","updated":"2011-09-20 19:54:12.000000000","message":"Done","commit_id":"0107bb4e053aa5518077d526cfcb27666fe478e9"},{"author":{"_account_id":1397,"deleted":true},"change_message_id":"e00840b02264c15a8495387e5c281a6826dd09bf","unresolved":false,"context_lines":[{"line_number":65,"context_line":""},{"line_number":66,"context_line":"# log in to mysql service"},{"line_number":67,"context_line":"$ mysql -u root -p"},{"line_number":68,"context_line":"# grant access to user-remote host combination.  Note: if you\u0027re going to use"},{"line_number":69,"context_line":"# a wildcard here it should be a management network with only trusted hosts."},{"line_number":70,"context_line":"mysql\u003e GRANT USAGE ON *.* to root@\u0027yourremotehost\u0027 IDENTIFIED BY \u0027newpassword\u0027;"},{"line_number":71,"context_line":"# force update of authorization changes"}],"source_content_type":"application/octet-stream","patch_set":1,"id":"AAAACX%2F%2F%2FpU%3D","line":68,"updated":"2011-09-20 18:47:52.000000000","message":"This may be a bit unclear.  I would say: the OVS Quantum agent running on each compute node must be able to make a mysql connection back to the main database server.","commit_id":"0107bb4e053aa5518077d526cfcb27666fe478e9"},{"author":{"_account_id":233,"name":"Brad Hall","email":"brad@nicira.com","username":"bgh"},"unresolved":false,"context_lines":[{"line_number":65,"context_line":""},{"line_number":66,"context_line":"# log in to mysql service"},{"line_number":67,"context_line":"$ mysql -u root -p"},{"line_number":68,"context_line":"# grant access to user-remote host combination.  Note: if you\u0027re going to use"},{"line_number":69,"context_line":"# a wildcard here it should be a management network with only trusted hosts."},{"line_number":70,"context_line":"mysql\u003e GRANT USAGE ON *.* to root@\u0027yourremotehost\u0027 IDENTIFIED BY \u0027newpassword\u0027;"},{"line_number":71,"context_line":"# force update of authorization changes"}],"source_content_type":"application/octet-stream","patch_set":1,"id":"AAAACX%2F%2F%2FoM%3D","line":68,"in_reply_to":"AAAACX%2F%2F%2FpU%3D","updated":"2011-09-20 19:54:12.000000000","message":"Done","commit_id":"0107bb4e053aa5518077d526cfcb27666fe478e9"},{"author":{"_account_id":1397,"deleted":true},"change_message_id":"e00840b02264c15a8495387e5c281a6826dd09bf","unresolved":false,"context_lines":[{"line_number":66,"context_line":"# log in to mysql service"},{"line_number":67,"context_line":"$ mysql -u root -p"},{"line_number":68,"context_line":"# grant access to user-remote host combination.  Note: if you\u0027re going to use"},{"line_number":69,"context_line":"# a wildcard here it should be a management network with only trusted hosts."},{"line_number":70,"context_line":"mysql\u003e GRANT USAGE ON *.* to root@\u0027yourremotehost\u0027 IDENTIFIED BY \u0027newpassword\u0027;"},{"line_number":71,"context_line":"# force update of authorization changes"},{"line_number":72,"context_line":"mysql\u003e FLUSH PRIVILEGES;"}],"source_content_type":"application/octet-stream","patch_set":1,"id":"AAAACX%2F%2F%2FpQ%3D","line":69,"updated":"2011-09-20 18:47:52.000000000","message":"Its not clear what you\u0027re talking about wildcarding... I suspect it is the \u0027yourremotehost\u0027 portion, but its a bit confusing as the same line includes wildcards for the database and table (i.e. *.*)","commit_id":"0107bb4e053aa5518077d526cfcb27666fe478e9"},{"author":{"_account_id":233,"name":"Brad Hall","email":"brad@nicira.com","username":"bgh"},"unresolved":false,"context_lines":[{"line_number":66,"context_line":"# log in to mysql service"},{"line_number":67,"context_line":"$ mysql -u root -p"},{"line_number":68,"context_line":"# grant access to user-remote host combination.  Note: if you\u0027re going to use"},{"line_number":69,"context_line":"# a wildcard here it should be a management network with only trusted hosts."},{"line_number":70,"context_line":"mysql\u003e GRANT USAGE ON *.* to root@\u0027yourremotehost\u0027 IDENTIFIED BY \u0027newpassword\u0027;"},{"line_number":71,"context_line":"# force update of authorization changes"},{"line_number":72,"context_line":"mysql\u003e FLUSH PRIVILEGES;"}],"source_content_type":"application/octet-stream","patch_set":1,"id":"AAAACX%2F%2F%2FoI%3D","line":69,"in_reply_to":"AAAACX%2F%2F%2FpQ%3D","updated":"2011-09-20 19:54:12.000000000","message":"Done","commit_id":"0107bb4e053aa5518077d526cfcb27666fe478e9"},{"author":{"_account_id":1397,"deleted":true},"change_message_id":"e00840b02264c15a8495387e5c281a6826dd09bf","unresolved":false,"context_lines":[{"line_number":92,"context_line":"  all of the necessary pieces into /etc/xapi.d/plugins.  It will also"},{"line_number":93,"context_line":"  output the name of the integration bridge that you\u0027ll need for your nova"},{"line_number":94,"context_line":"  configuration.  Make sure to specify this in your nova flagfile as"},{"line_number":95,"context_line":"  --{xenapi,libvirt}_ovs_integration_bridge."},{"line_number":96,"context_line":""},{"line_number":97,"context_line":"  NOTE: Make sure it determined the integration bridge correctly and make sure"},{"line_number":98,"context_line":"  that is specified in your ovs_quantum_plugin.ini."}],"source_content_type":"application/octet-stream","patch_set":1,"id":"AAAACX%2F%2F%2FpM%3D","line":95,"updated":"2011-09-20 18:47:52.000000000","message":"this sub-section is XenServer specific, I think, so its probably OK to just specify xenapi_ovs_integration_bridge","commit_id":"0107bb4e053aa5518077d526cfcb27666fe478e9"},{"author":{"_account_id":233,"name":"Brad Hall","email":"brad@nicira.com","username":"bgh"},"unresolved":false,"context_lines":[{"line_number":92,"context_line":"  all of the necessary pieces into /etc/xapi.d/plugins.  It will also"},{"line_number":93,"context_line":"  output the name of the integration bridge that you\u0027ll need for your nova"},{"line_number":94,"context_line":"  configuration.  Make sure to specify this in your nova flagfile as"},{"line_number":95,"context_line":"  --{xenapi,libvirt}_ovs_integration_bridge."},{"line_number":96,"context_line":""},{"line_number":97,"context_line":"  NOTE: Make sure it determined the integration bridge correctly and make sure"},{"line_number":98,"context_line":"  that is specified in your ovs_quantum_plugin.ini."}],"source_content_type":"application/octet-stream","patch_set":1,"id":"AAAACX%2F%2F%2FoE%3D","line":95,"in_reply_to":"AAAACX%2F%2F%2FpM%3D","updated":"2011-09-20 19:54:12.000000000","message":"Done","commit_id":"0107bb4e053aa5518077d526cfcb27666fe478e9"},{"author":{"_account_id":1397,"deleted":true},"change_message_id":"e00840b02264c15a8495387e5c281a6826dd09bf","unresolved":false,"context_lines":[{"line_number":95,"context_line":"  --{xenapi,libvirt}_ovs_integration_bridge."},{"line_number":96,"context_line":""},{"line_number":97,"context_line":"  NOTE: Make sure it determined the integration bridge correctly and make sure"},{"line_number":98,"context_line":"  that is specified in your ovs_quantum_plugin.ini."},{"line_number":99,"context_line":""},{"line_number":100,"context_line":"- Run the agent [on your hypervisor (dom0)]:"},{"line_number":101,"context_line":""}],"source_content_type":"application/octet-stream","patch_set":1,"id":"AAAACX%2F%2F%2FpI%3D","line":98,"updated":"2011-09-20 18:47:52.000000000","message":"This wording is kind of funny.","commit_id":"0107bb4e053aa5518077d526cfcb27666fe478e9"},{"author":{"_account_id":233,"name":"Brad Hall","email":"brad@nicira.com","username":"bgh"},"unresolved":false,"context_lines":[{"line_number":95,"context_line":"  --{xenapi,libvirt}_ovs_integration_bridge."},{"line_number":96,"context_line":""},{"line_number":97,"context_line":"  NOTE: Make sure it determined the integration bridge correctly and make sure"},{"line_number":98,"context_line":"  that is specified in your ovs_quantum_plugin.ini."},{"line_number":99,"context_line":""},{"line_number":100,"context_line":"- Run the agent [on your hypervisor (dom0)]:"},{"line_number":101,"context_line":""}],"source_content_type":"application/octet-stream","patch_set":1,"id":"AAAACX%2F%2F%2Fn8%3D","line":98,"in_reply_to":"AAAACX%2F%2F%2FpI%3D","updated":"2011-09-20 19:54:12.000000000","message":"Done","commit_id":"0107bb4e053aa5518077d526cfcb27666fe478e9"},{"author":{"_account_id":1397,"deleted":true},"change_message_id":"e00840b02264c15a8495387e5c281a6826dd09bf","unresolved":false,"context_lines":[{"line_number":106,"context_line":"- Edit ovs_quantum_plugin.ini and make sure the integration bridge is set to"},{"line_number":107,"context_line":"  br-int."},{"line_number":108,"context_line":"- Copy ovs_quantum_agent.py and ovs_quantum_plugin.ini to the Linux"},{"line_number":109,"context_line":"  host and run:"},{"line_number":110,"context_line":"$ python ovs_quantum_agent.py ovs_quantum_plugin.ini"},{"line_number":111,"context_line":""},{"line_number":112,"context_line":"# -- Getting quantum up and running"}],"source_content_type":"application/octet-stream","patch_set":1,"id":"AAAACX%2F%2F%2FpE%3D","line":109,"updated":"2011-09-20 18:47:52.000000000","message":"\"Linux host\" is a bit generic.  Here we can probably just call it the \"compute node\"","commit_id":"0107bb4e053aa5518077d526cfcb27666fe478e9"},{"author":{"_account_id":233,"name":"Brad Hall","email":"brad@nicira.com","username":"bgh"},"unresolved":false,"context_lines":[{"line_number":106,"context_line":"- Edit ovs_quantum_plugin.ini and make sure the integration bridge is set to"},{"line_number":107,"context_line":"  br-int."},{"line_number":108,"context_line":"- Copy ovs_quantum_agent.py and ovs_quantum_plugin.ini to the Linux"},{"line_number":109,"context_line":"  host and run:"},{"line_number":110,"context_line":"$ python ovs_quantum_agent.py ovs_quantum_plugin.ini"},{"line_number":111,"context_line":""},{"line_number":112,"context_line":"# -- Getting quantum up and running"}],"source_content_type":"application/octet-stream","patch_set":1,"id":"AAAACX%2F%2F%2Fn4%3D","line":109,"in_reply_to":"AAAACX%2F%2F%2FpE%3D","updated":"2011-09-20 19:54:12.000000000","message":"Done","commit_id":"0107bb4e053aa5518077d526cfcb27666fe478e9"},{"author":{"_account_id":1397,"deleted":true},"change_message_id":"e00840b02264c15a8495387e5c281a6826dd09bf","unresolved":false,"context_lines":[{"line_number":115,"context_line":"~/src/quantum  $ PYTHONPATH\u003d.:$PYTHONPATH python bin/quantum etc/quantum.conf"},{"line_number":116,"context_line":"- Run ovs_quantum_plugin.py via the quantum plugin framework cli [on the"},{"line_number":117,"context_line":"  quantum service host]"},{"line_number":118,"context_line":"~/src/quantum$ PYTHONPATH\u003d.:$PYTHONPATH python quantum/cli.py"},{"line_number":119,"context_line":""},{"line_number":120,"context_line":"This will show help all of the available commands."},{"line_number":121,"context_line":""}],"source_content_type":"application/octet-stream","patch_set":1,"id":"AAAACX%2F%2F%2Fo8%3D","line":118,"updated":"2011-09-20 18:47:52.000000000","message":"the cli is now in bin/ and no longer has a .py extension. \n\nI also think we no longer require the PYTHONPATH as long as you are invoking it from the standard directory.   \n\nThis comment applies below as well.\n\nNow that we will have separate documentation on how to run Quantum, we could probably remove a fair amount of this completely.","commit_id":"0107bb4e053aa5518077d526cfcb27666fe478e9"},{"author":{"_account_id":233,"name":"Brad Hall","email":"brad@nicira.com","username":"bgh"},"unresolved":false,"context_lines":[{"line_number":115,"context_line":"~/src/quantum  $ PYTHONPATH\u003d.:$PYTHONPATH python bin/quantum etc/quantum.conf"},{"line_number":116,"context_line":"- Run ovs_quantum_plugin.py via the quantum plugin framework cli [on the"},{"line_number":117,"context_line":"  quantum service host]"},{"line_number":118,"context_line":"~/src/quantum$ PYTHONPATH\u003d.:$PYTHONPATH python quantum/cli.py"},{"line_number":119,"context_line":""},{"line_number":120,"context_line":"This will show help all of the available commands."},{"line_number":121,"context_line":""}],"source_content_type":"application/octet-stream","patch_set":1,"id":"AAAACX%2F%2F%2Fn0%3D","line":118,"in_reply_to":"AAAACX%2F%2F%2Fo8%3D","updated":"2011-09-20 19:54:12.000000000","message":"Done","commit_id":"0107bb4e053aa5518077d526cfcb27666fe478e9"},{"author":{"_account_id":1397,"deleted":true},"change_message_id":"e00840b02264c15a8495387e5c281a6826dd09bf","unresolved":false,"context_lines":[{"line_number":137,"context_line":""},{"line_number":138,"context_line":"- To get a listing of the vif names in the format that the ovs quantum"},{"line_number":139,"context_line":"  service will expect them in, issue the following command on the xen"},{"line_number":140,"context_line":"  hypervisor (dom0):"},{"line_number":141,"context_line":""},{"line_number":142,"context_line":"$ for vif in `xe vif-list params\u003duuid --minimal | sed s/,/\" \"/g`; do echo $(xe vif-list params\u003dvm-name-label uuid\u003d${vif} --minimal)-eth$(xe vif-list params\u003ddevice uuid\u003d${vif} --minimal); done"}],"source_content_type":"application/octet-stream","patch_set":1,"id":"AAAACX%2F%2F%2Fo0%3D","line":140,"updated":"2011-09-20 18:47:52.000000000","message":"This is xenserver specific.  I would probably remove this all together, as using the Quantum Manager, vifs are automatically plugged.  I think you were planning on adding a nova-manage command to list all vif-uuids, right?","commit_id":"0107bb4e053aa5518077d526cfcb27666fe478e9"},{"author":{"_account_id":233,"name":"Brad Hall","email":"brad@nicira.com","username":"bgh"},"unresolved":false,"context_lines":[{"line_number":137,"context_line":""},{"line_number":138,"context_line":"- To get a listing of the vif names in the format that the ovs quantum"},{"line_number":139,"context_line":"  service will expect them in, issue the following command on the xen"},{"line_number":140,"context_line":"  hypervisor (dom0):"},{"line_number":141,"context_line":""},{"line_number":142,"context_line":"$ for vif in `xe vif-list params\u003duuid --minimal | sed s/,/\" \"/g`; do echo $(xe vif-list params\u003dvm-name-label uuid\u003d${vif} --minimal)-eth$(xe vif-list params\u003ddevice uuid\u003d${vif} --minimal); done"}],"source_content_type":"application/octet-stream","patch_set":1,"id":"AAAACX%2F%2F%2FnU%3D","line":140,"in_reply_to":"AAAACX%2F%2F%2Fo0%3D","updated":"2011-09-20 19:54:12.000000000","message":"Done","commit_id":"0107bb4e053aa5518077d526cfcb27666fe478e9"},{"author":{"_account_id":1397,"deleted":true},"change_message_id":"e00840b02264c15a8495387e5c281a6826dd09bf","unresolved":false,"context_lines":[{"line_number":1,"context_line":"# -- Background"},{"line_number":2,"context_line":""},{"line_number":3,"context_line":"The quantum openvswitch plugin is a simple plugin that allows you to"},{"line_number":4,"context_line":"manage connectivity between VMs on hypervisors running openvswitch."},{"line_number":5,"context_line":""},{"line_number":6,"context_line":"The quantum openvswitch plugin consists of three components:"}],"source_content_type":"application/octet-stream","patch_set":2,"id":"AAAACX%2F%2F%2FnA%3D","line":3,"updated":"2011-09-20 20:12:35.000000000","message":"We can probably remove \"simple\" now :)","commit_id":"56218f5e5452f5e102d378c5732fea50dbbdfe16"},{"author":{"_account_id":233,"name":"Brad Hall","email":"brad@nicira.com","username":"bgh"},"unresolved":false,"context_lines":[{"line_number":1,"context_line":"# -- Background"},{"line_number":2,"context_line":""},{"line_number":3,"context_line":"The quantum openvswitch plugin is a simple plugin that allows you to"},{"line_number":4,"context_line":"manage connectivity between VMs on hypervisors running openvswitch."},{"line_number":5,"context_line":""},{"line_number":6,"context_line":"The quantum openvswitch plugin consists of three components:"}],"source_content_type":"application/octet-stream","patch_set":2,"id":"AAAACX%2F%2F%2Fm0%3D","line":3,"in_reply_to":"AAAACX%2F%2F%2FnA%3D","updated":"2011-09-20 20:24:22.000000000","message":"Done","commit_id":"56218f5e5452f5e102d378c5732fea50dbbdfe16"},{"author":{"_account_id":1397,"deleted":true},"change_message_id":"e00840b02264c15a8495387e5c281a6826dd09bf","unresolved":false,"context_lines":[{"line_number":127,"context_line":""},{"line_number":128,"context_line":"This will show help all of the available commands."},{"line_number":129,"context_line":""},{"line_number":130,"context_line":"An example session looks like this:"},{"line_number":131,"context_line":""},{"line_number":132,"context_line":"$ export TENANT\u003dt1"},{"line_number":133,"context_line":"$ python bin/cli create_net $TENANT network1"}],"source_content_type":"application/octet-stream","patch_set":2,"id":"AAAACX%2F%2F%2FnI%3D","line":130,"updated":"2011-09-20 20:12:35.000000000","message":"Maybe mention that the goal is to attach a VM interface with id \"foo\".","commit_id":"56218f5e5452f5e102d378c5732fea50dbbdfe16"},{"author":{"_account_id":233,"name":"Brad Hall","email":"brad@nicira.com","username":"bgh"},"unresolved":false,"context_lines":[{"line_number":127,"context_line":""},{"line_number":128,"context_line":"This will show help all of the available commands."},{"line_number":129,"context_line":""},{"line_number":130,"context_line":"An example session looks like this:"},{"line_number":131,"context_line":""},{"line_number":132,"context_line":"$ export TENANT\u003dt1"},{"line_number":133,"context_line":"$ python bin/cli create_net $TENANT network1"}],"source_content_type":"application/octet-stream","patch_set":2,"id":"AAAACX%2F%2F%2Fmw%3D","line":130,"in_reply_to":"AAAACX%2F%2F%2FnI%3D","updated":"2011-09-20 20:24:22.000000000","message":"Done","commit_id":"56218f5e5452f5e102d378c5732fea50dbbdfe16"},{"author":{"_account_id":1397,"deleted":true},"change_message_id":"e00840b02264c15a8495387e5c281a6826dd09bf","unresolved":false,"context_lines":[{"line_number":136,"context_line":"$ python bin/cli create_port $TENANT $NETWORK"},{"line_number":137,"context_line":"Created Virtual Port:5a1e121b-ccc8-471d-9445-24f15f9f854c on Virtual Network:e754e7c0-a8eb-40e5-861a-b182d30c3441"},{"line_number":138,"context_line":"$ export PORT\u003d5a1e121b-ccc8-471d-9445-24f15f9f854c"},{"line_number":139,"context_line":"$ python bin/cli plug_iface $TENANT $NETWORK $PORT ubuntu1-eth1"},{"line_number":140,"context_line":"Plugged interface \"ubuntu1-eth1\" to port:5a1e121b-ccc8-471d-9445-24f15f9f854c on network:e754e7c0-a8eb-40e5-861a-b182d30c3441"},{"line_number":141,"context_line":""},{"line_number":142,"context_line":"(.. repeat for more ports and interface combinations..)"}],"source_content_type":"application/octet-stream","patch_set":2,"id":"AAAACX%2F%2F%2FnE%3D","line":139,"updated":"2011-09-20 20:12:35.000000000","message":"interface id\u0027s are now real UUIDs for VMs.  Maybe export VIF_UUID\u003d at the beginning, just like you did for tenant?","commit_id":"56218f5e5452f5e102d378c5732fea50dbbdfe16"},{"author":{"_account_id":233,"name":"Brad Hall","email":"brad@nicira.com","username":"bgh"},"unresolved":false,"context_lines":[{"line_number":136,"context_line":"$ python bin/cli create_port $TENANT $NETWORK"},{"line_number":137,"context_line":"Created Virtual Port:5a1e121b-ccc8-471d-9445-24f15f9f854c on Virtual Network:e754e7c0-a8eb-40e5-861a-b182d30c3441"},{"line_number":138,"context_line":"$ export PORT\u003d5a1e121b-ccc8-471d-9445-24f15f9f854c"},{"line_number":139,"context_line":"$ python bin/cli plug_iface $TENANT $NETWORK $PORT ubuntu1-eth1"},{"line_number":140,"context_line":"Plugged interface \"ubuntu1-eth1\" to port:5a1e121b-ccc8-471d-9445-24f15f9f854c on network:e754e7c0-a8eb-40e5-861a-b182d30c3441"},{"line_number":141,"context_line":""},{"line_number":142,"context_line":"(.. repeat for more ports and interface combinations..)"}],"source_content_type":"application/octet-stream","patch_set":2,"id":"AAAACX%2F%2F%2Fms%3D","line":139,"in_reply_to":"AAAACX%2F%2F%2FnE%3D","updated":"2011-09-20 20:24:22.000000000","message":"Done","commit_id":"56218f5e5452f5e102d378c5732fea50dbbdfe16"}]}
