Hello community,

here is the log from the commit of package openstack-quantum for 
openSUSE:Factory checked in at 2013-01-30 11:17:54
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/openstack-quantum (Old)
 and      /work/SRC/openSUSE:Factory/.openstack-quantum.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "openstack-quantum", Maintainer is "[email protected]"

Changes:
--------
--- /work/SRC/openSUSE:Factory/openstack-quantum/openstack-quantum.changes      
2013-01-24 10:46:55.000000000 +0100
+++ /work/SRC/openSUSE:Factory/.openstack-quantum.new/openstack-quantum.changes 
2013-01-30 11:17:56.000000000 +0100
@@ -0,0 +1,8 @@
+--------------------------------------------------------------------
+Wed Jan 30 07:10:52 UTC 2013 - [email protected]
+
+- Update to version 2012.2.3+git.1359529852.a84ba7e:
+  + Regression caused by commit b56c2c998
+  + LinuxBridge: update status according to admin_state_up
+  + Ensure that correct root helper is used
+

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ openstack-quantum.spec ++++++
--- /var/tmp/diff_new_pack.tX0j0R/_old  2013-01-30 11:17:57.000000000 +0100
+++ /var/tmp/diff_new_pack.tX0j0R/_new  2013-01-30 11:17:57.000000000 +0100
@@ -1,7 +1,7 @@
 #
 # spec file for package openstack-quantum
 #
-# Copyright (c) 2012 SUSE LINUX Products GmbH, Nuernberg, Germany.
+# Copyright (c) 2013 SUSE LINUX Products GmbH, Nuernberg, Germany.
 #
 # All modifications and additions to the file contributed by third parties
 # remain the property of their copyright owners, unless otherwise agreed
@@ -21,8 +21,8 @@
 %define username openstack-%{component}
 
 Name:           openstack-%{component}
-Version:        2012.2.3+git.1358525076.1a24b68
-Release:        0
+Version:        2012.2.3+git.1359529852.a84ba7e
+Release:        1
 License:        Apache-2.0
 Summary:        OpenStack Virtual Network Service (Quantum)
 Url:            https://launchpad.net/quantum

++++++ quantum-stable-folsom.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/quantum-2012.2.3/ChangeLog 
new/quantum-2012.2.3/ChangeLog
--- old/quantum-2012.2.3/ChangeLog      2013-01-18 00:53:52.000000000 +0100
+++ new/quantum-2012.2.3/ChangeLog      2013-01-30 02:30:05.000000000 +0100
@@ -1,3 +1,50 @@
+commit a84ba7e171e809dbb62e8065f63729ba34d395d8
+Author: Gary Kotton <[email protected]>
+Date:   Tue Jan 29 15:46:01 2013 +0000
+
+    Regression caused by commit b56c2c998
+    
+    Fixes bug 1109001
+    
+    Change-Id: I5f0304cca380813e552cd229635a9aacee42126a
+
+ .../linuxbridge/agent/linuxbridge_quantum_agent.py |    7 +++----
+ quantum/plugins/linuxbridge/lb_quantum_plugin.py   |    2 +-
+ 2 files changed, 4 insertions(+), 5 deletions(-)
+
+commit b56c2c9983fbbc709d56bb6dfb171045afe56a06
+Author: Gary Kotton <[email protected]>
+Date:   Sun Jan 13 09:16:29 2013 +0000
+
+    LinuxBridge: update status according to admin_state_up
+    
+    Fixes bug 1099065
+    
+    In addition to this the agent will only treat ports that exist on the 
agent.
+    
+    Change-Id: I927649a45a860421ef0d825015516000475ad08d
+
+ quantum/agent/rpc.py                               |    6 +
+ .../linuxbridge/agent/linuxbridge_quantum_agent.py |  162 ++++++++++----------
+ quantum/plugins/linuxbridge/lb_quantum_plugin.py   |   25 ++-
+ .../unit/linuxbridge/test_lb_quantum_agent.py      |    2 +-
+ quantum/tests/unit/linuxbridge/test_rpcapi.py      |    7 +
+ 5 files changed, 116 insertions(+), 86 deletions(-)
+
+commit fe0ae7a7f098a8a65b685bca3bf9ff5be46e54ff
+Author: Gary Kotton <[email protected]>
+Date:   Fri Jan 25 15:30:26 2013 +0000
+
+    Ensure that correct root helper is used
+    
+    Fixes bug 1105193
+    
+    Change-Id: Iaaf0b3687c410f5dbfa152d601ae3b2492a610dd
+
+ quantum/agent/ovs_cleanup_util.py            |    9 +++++++--
+ quantum/tests/unit/test_agent_ovs_cleanup.py |    1 +
+ 2 files changed, 8 insertions(+), 2 deletions(-)
+
 commit 1a24b687287393f96b724a6cfc98a796fa3cb2ea
 Author: Akihiro MOTOKI <[email protected]>
 Date:   Tue Jan 8 16:57:23 2013 +0900
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/quantum-2012.2.3/quantum/agent/ovs_cleanup_util.py 
new/quantum-2012.2.3/quantum/agent/ovs_cleanup_util.py
--- old/quantum-2012.2.3/quantum/agent/ovs_cleanup_util.py      2013-01-18 
00:51:39.000000000 +0100
+++ new/quantum-2012.2.3/quantum/agent/ovs_cleanup_util.py      2013-01-30 
02:28:03.000000000 +0100
@@ -42,10 +42,15 @@
                          'on integration and external network bridges.')
     ]
 
+    agent_opts = [
+        cfg.StrOpt('root_helper', default='sudo'),
+    ]
+
     conf = cfg.CommonConfigOpts()
     conf.register_opts(opts)
     conf.register_opts(l3_agent.L3NATAgent.OPTS)
     conf.register_opts(interface.OPTS)
+    conf.register_opts(agent_opts, 'AGENT')
     config.setup_logging(conf)
     return conf
 
@@ -61,7 +66,7 @@
 
     configuration_bridges = set([conf.ovs_integration_bridge,
                                  conf.external_network_bridge])
-    ovs_bridges = set(ovs_lib.get_bridges(conf.root_helper))
+    ovs_bridges = set(ovs_lib.get_bridges(conf.AGENT.root_helper))
 
     if conf.ovs_all_ports:
         bridges = ovs_bridges
@@ -70,7 +75,7 @@
 
     for bridge in bridges:
         LOG.info(_("Cleaning %s"), bridge)
-        ovs = ovs_lib.OVSBridge(bridge, conf.root_helper)
+        ovs = ovs_lib.OVSBridge(bridge, conf.AGENT.root_helper)
         ovs.delete_ports(all_ports=conf.ovs_all_ports)
 
     LOG.info(_("OVS cleanup completed successfully"))
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/quantum-2012.2.3/quantum/agent/rpc.py 
new/quantum-2012.2.3/quantum/agent/rpc.py
--- old/quantum-2012.2.3/quantum/agent/rpc.py   2013-01-18 00:51:39.000000000 
+0100
+++ new/quantum-2012.2.3/quantum/agent/rpc.py   2013-01-30 02:28:03.000000000 
+0100
@@ -74,6 +74,12 @@
                                        agent_id=agent_id),
                          topic=self.topic)
 
+    def update_device_up(self, context, device, agent_id):
+        return self.call(context,
+                         self.make_msg('update_device_up', device=device,
+                                       agent_id=agent_id),
+                         topic=self.topic)
+
     def tunnel_sync(self, context, tunnel_ip):
         return self.call(context,
                          self.make_msg('tunnel_sync', tunnel_ip=tunnel_ip),
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/quantum-2012.2.3/quantum/plugins/linuxbridge/agent/linuxbridge_quantum_agent.py
 
new/quantum-2012.2.3/quantum/plugins/linuxbridge/agent/linuxbridge_quantum_agent.py
--- 
old/quantum-2012.2.3/quantum/plugins/linuxbridge/agent/linuxbridge_quantum_agent.py
 2013-01-18 00:51:39.000000000 +0100
+++ 
new/quantum-2012.2.3/quantum/plugins/linuxbridge/agent/linuxbridge_quantum_agent.py
 2013-01-30 02:28:03.000000000 +0100
@@ -62,12 +62,16 @@
 PORT_BINDINGS = "port_bindings"
 
 
-class LinuxBridge:
+class LinuxBridgeManager:
     def __init__(self, interface_mappings, root_helper):
         self.interface_mappings = interface_mappings
         self.root_helper = root_helper
         self.ip = ip_lib.IPWrapper(self.root_helper)
 
+        self.udev = pyudev.Context()
+        monitor = pyudev.Monitor.from_netlink(self.udev)
+        monitor.filter_by('net')
+
     def device_exists(self, device):
         """Check if ethernet device exists."""
         try:
@@ -391,38 +395,76 @@
                 return
             LOG.debug("Done deleting subinterface %s" % interface)
 
+    def update_devices(self, registered_devices):
+        devices = self.udev_get_tap_devices()
+        if devices == registered_devices:
+            return
+        added = devices - registered_devices
+        removed = registered_devices - devices
+        return {'current': devices,
+                'added': added,
+                'removed': removed}
+
+    def udev_get_tap_devices(self):
+        devices = set()
+        for device in self.udev.list_devices(subsystem='net'):
+            name = self.udev_get_name(device)
+            if self.is_tap_device(name):
+                devices.add(name)
+        return devices
+
+    def is_tap_device(self, name):
+        return name.startswith(TAP_INTERFACE_PREFIX)
+
+    def udev_get_name(self, device):
+        return device.sys_name
+
 
 class LinuxBridgeRpcCallbacks():
 
     # Set RPC API version to 1.0 by default.
     RPC_API_VERSION = '1.0'
 
-    def __init__(self, context, linux_br):
+    def __init__(self, context, agent):
         self.context = context
-        self.linux_br = linux_br
+        self.agent = agent
 
     def network_delete(self, context, **kwargs):
         LOG.debug("network_delete received")
         network_id = kwargs.get('network_id')
-        bridge_name = self.linux_br.get_bridge_name(network_id)
+        bridge_name = self.agent.br_mgr.get_bridge_name(network_id)
         LOG.debug("Delete %s", bridge_name)
-        self.linux_br.delete_vlan_bridge(bridge_name)
+        self.agent.br_mgr.delete_vlan_bridge(bridge_name)
 
     def port_update(self, context, **kwargs):
-        LOG.debug("port_update received")
+        LOG.debug(_("port_update received"))
+        # Check port exists on node
         port = kwargs.get('port')
+        tap_device_name = self.agent.br_mgr.get_tap_device_name(port['id'])
+        devices = self.agent.br_mgr.udev_get_tap_devices()
+        if not tap_device_name in devices:
+            return
+
         if port['admin_state_up']:
             vlan_id = kwargs.get('vlan_id')
             physical_network = kwargs.get('physical_network')
             # create the networking for the port
-            self.linux_br.add_interface(port['network_id'],
-                                        physical_network,
-                                        vlan_id,
-                                        port['id'])
+            self.agent.br_mgr.add_interface(port['network_id'],
+                                            physical_network,
+                                            vlan_id,
+                                            port['id'])
+            # update plugin about port status
+            self.agent.plugin_rpc.update_device_up(self.context,
+                                                   tap_device_name,
+                                                   self.agent.agent_id)
         else:
-            bridge_name = self.linux_br.get_bridge_name(port['network_id'])
-            tap_device_name = self.linux_br.get_tap_device_name(port['id'])
-            self.linux_br.remove_interface(bridge_name, tap_device_name)
+            bridge_name = self.agent.br_mgr.get_bridge_name(
+                port['network_id'])
+            self.agent.br_mgr.remove_interface(bridge_name, tap_device_name)
+            # update plugin about port status
+            self.agent.plugin_rpc.update_device_down(self.context,
+                                                     tap_device_name,
+                                                     self.agent.agent_id)
 
     def create_rpc_dispatcher(self):
         '''Get the rpc dispatcher for this manager.
@@ -445,18 +487,18 @@
         self.db_connection_url = db_connection_url
 
     def setup_linux_bridge(self, interface_mappings):
-        self.linux_br = LinuxBridge(interface_mappings, self.root_helper)
+        self.br_mgr = LinuxBridgeManager(interface_mappings, self.root_helper)
 
     def process_port_binding(self, network_id, interface_id,
                              physical_network, vlan_id):
-        return self.linux_br.add_interface(network_id,
-                                           physical_network, vlan_id,
-                                           interface_id)
+        return self.br_mgr.add_interface(network_id,
+                                         physical_network, vlan_id,
+                                         interface_id)
 
     def remove_port_binding(self, network_id, interface_id):
-        bridge_name = self.linux_br.get_bridge_name(network_id)
-        tap_device_name = self.linux_br.get_tap_device_name(interface_id)
-        return self.linux_br.remove_interface(bridge_name, tap_device_name)
+        bridge_name = self.br_mgr.get_bridge_name(network_id)
+        tap_device_name = self.br_mgr.get_tap_device_name(interface_id)
+        return self.br_mgr.remove_interface(bridge_name, tap_device_name)
 
     def process_unplugged_interfaces(self, plugged_interfaces):
         """
@@ -468,44 +510,29 @@
         plugged_tap_device_names = []
         plugged_gateway_device_names = []
         for interface in plugged_interfaces:
-            if interface.startswith(GATEWAY_INTERFACE_PREFIX):
-                """
-                The name for the gateway devices is set by the linux net
-                driver, hence we use the name as is
-                """
-                plugged_gateway_device_names.append(interface)
-            else:
-                tap_device_name = self.linux_br.get_tap_device_name(interface)
-                plugged_tap_device_names.append(tap_device_name)
+            tap_device_name = self.br_mgr.get_tap_device_name(interface)
+            plugged_tap_device_names.append(tap_device_name)
 
         LOG.debug("plugged tap device names %s" % plugged_tap_device_names)
-        for tap_device in self.linux_br.get_all_tap_devices():
+        for tap_device in self.br_mgr.get_all_tap_devices():
             if tap_device not in plugged_tap_device_names:
                 current_bridge_name = (
-                    self.linux_br.get_bridge_for_tap_device(tap_device))
+                    self.br_mgr.get_bridge_for_tap_device(tap_device))
                 if current_bridge_name:
-                    self.linux_br.remove_interface(current_bridge_name,
-                                                   tap_device)
-
-        for gw_device in self.linux_br.get_all_gateway_devices():
-            if gw_device not in plugged_gateway_device_names:
-                current_bridge_name = (
-                    self.linux_br.get_bridge_for_tap_device(gw_device))
-                if current_bridge_name:
-                    self.linux_br.remove_interface(current_bridge_name,
-                                                   gw_device)
+                    self.br_mgr.remove_interface(current_bridge_name,
+                                                 tap_device)
 
     def process_deleted_networks(self, vlan_bindings):
         current_quantum_networks = vlan_bindings.keys()
         current_quantum_bridge_names = []
         for network in current_quantum_networks:
-            bridge_name = self.linux_br.get_bridge_name(network)
+            bridge_name = self.br_mgr.get_bridge_name(network)
             current_quantum_bridge_names.append(bridge_name)
 
-        quantum_bridges_on_this_host = self.linux_br.get_all_quantum_bridges()
+        quantum_bridges_on_this_host = self.br_mgr.get_all_quantum_bridges()
         for bridge in quantum_bridges_on_this_host:
             if bridge not in current_quantum_bridge_names:
-                self.linux_br.delete_vlan_bridge(bridge)
+                self.br_mgr.delete_vlan_bridge(bridge)
 
     def manage_networks_on_host(self, db,
                                 old_vlan_bindings,
@@ -637,8 +664,7 @@
         self.context = context.RequestContext('quantum', 'quantum',
                                               is_admin=False)
         # Handle updates from service
-        self.callbacks = LinuxBridgeRpcCallbacks(self.context,
-                                                 self.linux_br)
+        self.callbacks = LinuxBridgeRpcCallbacks(self.context, self)
         self.dispatcher = self.callbacks.create_rpc_dispatcher()
         # Define the listening consumers for the agent
         consumers = [[topics.PORT, topics.UPDATE],
@@ -646,41 +672,14 @@
         self.connection = agent_rpc.create_consumers(self.dispatcher,
                                                      self.topic,
                                                      consumers)
-        self.udev = pyudev.Context()
-        monitor = pyudev.Monitor.from_netlink(self.udev)
-        monitor.filter_by('net')
 
     def setup_linux_bridge(self, interface_mappings):
-        self.linux_br = LinuxBridge(interface_mappings, self.root_helper)
+        self.br_mgr = LinuxBridgeManager(interface_mappings, self.root_helper)
 
     def remove_port_binding(self, network_id, interface_id):
-        bridge_name = self.linux_br.get_bridge_name(network_id)
-        tap_device_name = self.linux_br.get_tap_device_name(interface_id)
-        return self.linux_br.remove_interface(bridge_name, tap_device_name)
-
-    def update_devices(self, registered_devices):
-        devices = self.udev_get_all_tap_devices()
-        if devices == registered_devices:
-            return
-        added = devices - registered_devices
-        removed = registered_devices - devices
-        return {'current': devices,
-                'added': added,
-                'removed': removed}
-
-    def udev_get_all_tap_devices(self):
-        devices = set()
-        for device in self.udev.list_devices(subsystem='net'):
-            name = self.udev_get_name(device)
-            if self.is_tap_device(name):
-                devices.add(name)
-        return devices
-
-    def is_tap_device(self, name):
-        return name.startswith(TAP_INTERFACE_PREFIX)
-
-    def udev_get_name(self, device):
-        return device.sys_name
+        bridge_name = self.br_mgr.get_bridge_name(network_id)
+        tap_device_name = self.br_mgr.get_tap_device_name(interface_id)
+        return self.br_mgr.remove_interface(bridge_name, tap_device_name)
 
     def process_network_devices(self, device_info):
         resync_a = False
@@ -708,10 +707,10 @@
                 LOG.info("Port %s updated. Details: %s", device, details)
                 if details['admin_state_up']:
                     # create the networking for the port
-                    self.linux_br.add_interface(details['network_id'],
-                                                details['physical_network'],
-                                                details['vlan_id'],
-                                                details['port_id'])
+                    self.br_mgr.add_interface(details['network_id'],
+                                              details['physical_network'],
+                                              details['vlan_id'],
+                                              details['port_id'])
                 else:
                     self.remove_port_binding(details['network_id'],
                                              details['port_id'])
@@ -750,7 +749,7 @@
                 devices.clear()
                 sync = False
 
-            device_info = self.update_devices(devices)
+            device_info = self.br_mgr.update_devices(devices)
 
             # notify plugin about device deltas
             if device_info:
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/quantum-2012.2.3/quantum/plugins/linuxbridge/lb_quantum_plugin.py 
new/quantum-2012.2.3/quantum/plugins/linuxbridge/lb_quantum_plugin.py
--- old/quantum-2012.2.3/quantum/plugins/linuxbridge/lb_quantum_plugin.py       
2013-01-18 00:51:39.000000000 +0100
+++ new/quantum-2012.2.3/quantum/plugins/linuxbridge/lb_quantum_plugin.py       
2013-01-30 02:28:03.000000000 +0100
@@ -72,8 +72,10 @@
                      'network_id': port['network_id'],
                      'port_id': port['id'],
                      'admin_state_up': port['admin_state_up']}
-            # Set the port status to UP
-            db.set_port_status(port['id'], q_const.PORT_STATUS_ACTIVE)
+            new_status = (q_const.PORT_STATUS_ACTIVE if port['admin_state_up']
+                          else q_const.PORT_STATUS_DOWN)
+            if port['status'] != new_status:
+                db.set_port_status(port['id'], new_status)
         else:
             entry = {'device': device}
             LOG.debug("%s can not be found in database", device)
@@ -89,14 +91,29 @@
         if port:
             entry = {'device': device,
                      'exists': True}
-            # Set port status to DOWN
-            db.set_port_status(port['id'], q_const.PORT_STATUS_DOWN)
+            if port['status'] != q_const.PORT_STATUS_DOWN:
+                # Set port status to DOWN
+                db.set_port_status(port['id'], q_const.PORT_STATUS_DOWN)
         else:
             entry = {'device': device,
                      'exists': False}
             LOG.debug("%s can not be found in database", device)
         return entry
 
+    def update_device_up(self, rpc_context, **kwargs):
+        """Device is up on agent"""
+        agent_id = kwargs.get('agent_id')
+        device = kwargs.get('device')
+        LOG.debug(_("Device %(device)s up %(agent_id)s"),
+                  locals())
+        port = db.get_port_from_device(device[self.TAP_PREFIX_LEN:])
+        if port:
+            if port['status'] != q_const.PORT_STATUS_ACTIVE:
+                # Set port status to ACTIVE
+                db.set_port_status(port['id'], q_const.PORT_STATUS_ACTIVE)
+        else:
+            LOG.debug(_("%s can not be found in database"), device)
+
 
 class AgentNotifierApi(proxy.RpcProxy):
     '''Agent side of the linux bridge rpc API.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/quantum-2012.2.3/quantum/tests/unit/linuxbridge/test_lb_quantum_agent.py 
new/quantum-2012.2.3/quantum/tests/unit/linuxbridge/test_lb_quantum_agent.py
--- 
old/quantum-2012.2.3/quantum/tests/unit/linuxbridge/test_lb_quantum_agent.py    
    2013-01-18 00:51:39.000000000 +0100
+++ 
new/quantum-2012.2.3/quantum/tests/unit/linuxbridge/test_lb_quantum_agent.py    
    2013-01-30 02:28:03.000000000 +0100
@@ -30,7 +30,7 @@
         interface_mappings = {'physnet1': 'eth1'}
         root_helper = cfg.CONF.AGENT.root_helper
 
-        self.linux_bridge = linuxbridge_quantum_agent.LinuxBridge(
+        self.linux_bridge = linuxbridge_quantum_agent.LinuxBridgeManager(
             interface_mappings, root_helper)
 
     def test_ensure_physical_in_bridge_invalid(self):
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/quantum-2012.2.3/quantum/tests/unit/linuxbridge/test_rpcapi.py 
new/quantum-2012.2.3/quantum/tests/unit/linuxbridge/test_rpcapi.py
--- old/quantum-2012.2.3/quantum/tests/unit/linuxbridge/test_rpcapi.py  
2013-01-18 00:51:34.000000000 +0100
+++ new/quantum-2012.2.3/quantum/tests/unit/linuxbridge/test_rpcapi.py  
2013-01-30 02:27:58.000000000 +0100
@@ -91,3 +91,10 @@
                           'update_device_down', rpc_method='call',
                           device='fake_device',
                           agent_id='fake_agent_id')
+
+    def test_update_device_up(self):
+        rpcapi = agent_rpc.PluginApi(topics.PLUGIN)
+        self._test_lb_api(rpcapi, topics.PLUGIN,
+                          'update_device_up', rpc_method='call',
+                          device='fake_device',
+                          agent_id='fake_agent_id')
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/quantum-2012.2.3/quantum/tests/unit/test_agent_ovs_cleanup.py 
new/quantum-2012.2.3/quantum/tests/unit/test_agent_ovs_cleanup.py
--- old/quantum-2012.2.3/quantum/tests/unit/test_agent_ovs_cleanup.py   
2013-01-18 00:51:39.000000000 +0100
+++ new/quantum-2012.2.3/quantum/tests/unit/test_agent_ovs_cleanup.py   
2013-01-30 02:28:03.000000000 +0100
@@ -29,6 +29,7 @@
             self.assertEqual(conf.external_network_bridge, 'br-ex')
             self.assertEqual(conf.ovs_integration_bridge, 'br-int')
             self.assertFalse(conf.ovs_all_ports)
+            self.assertEqual(conf.AGENT.root_helper, 'sudo')
 
     def test_main(self):
         with mock.patch('quantum.common.config.setup_logging'):
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/quantum-2012.2.3/quantum/vcsversion.py 
new/quantum-2012.2.3/quantum/vcsversion.py
--- old/quantum-2012.2.3/quantum/vcsversion.py  2013-01-18 00:53:51.000000000 
+0100
+++ new/quantum-2012.2.3/quantum/vcsversion.py  2013-01-30 02:30:04.000000000 
+0100
@@ -2,6 +2,6 @@
 # This file is automatically generated by setup.py, So don't edit it. :)
 version_info = {
     'branch_nick': '(no',
-    'revision_id': '1a24b687287393f96b724a6cfc98a796fa3cb2ea',
-    'revno': 1371
+    'revision_id': 'a84ba7e171e809dbb62e8065f63729ba34d395d8',
+    'revno': 1374
 }

-- 
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to