This group is locked. No changes can be made to the group while it is locked.
Since we dont support the controller restart case yet with neutron, it is a pain to unstack / restack devstack,
every single time you have to update your code. But, you dont have to restart the controller for your changes
done in OVSDB. We are in OSGi framework which supports bundle restarts and we can effectively use that.
I follow these steps during my development time (which dramatically reduces the time it takes for fixing issues).
0. Make sure the OVS instances on the Nodes have no manager configuration or set to "ptcp:6640".
1. Always start ODL first (till we have the controller restart issue fixed)
2. Stack the Devstack controller, followed by the compute nodes.
3. Once the Stacking is done, the OVS instances automatically connects to the ODL Controller and things start to work.
4. <Do your testing, etc...>
Say you have to fix a code in OVSDB, do the changes and build it. once you have the plugin ready.
0. "sudo ovs-vsctl set-manager ptcp:6640" on all the devstack nodes (this is just to avoid timing issues).
1. on the OSGI console, do "ss ovsdb" and get the <id> for the 3 ovsdb bundles.
id State Bundle
31 ACTIVE org.opendaylight.ovsdb_0.5.0.SNAPSHOT
159 ACTIVE org.opendaylight.ovsdb.neutron_0.5.0.SNAPSHOT
234 ACTIVE org.opendaylight.ovsdb.northbound_0.5.0.SNAPSHOT
2. execute "stop <#id>" the #id is the bundle that you have a fix for and have built it.
3. copy the bundle to the plugins folder.
4. start <#id>
5. sudo ovs-vsctl set-manager tcp:<ip>:6640
The above steps will work without any restacking requirement. This is possible because, we are stateless and we rely on the
states that is maintained in the neutron bundle on the controller and the OVSDB that we get from the OVS instance when we
first connect to it.
ofcourse, this may not work if you have to restart the neutron plugin on the controller or any other specific cases where the
cache will vanish. But for the purpose of OVSDB development, this should fit 90% of your needs.