From 3df4e822a28a20861627b8ab78fb19b26dd3c9e7 Mon Sep 17 00:00:00 2001 From: Dan Wendlandt Date: Mon, 1 Aug 2011 00:14:18 -0700 Subject: [PATCH] make ovs plugin pay attention to port state --- .../openvswitch/agent/ovs_quantum_agent.py | 2 +- .../plugins/openvswitch/ovs_quantum_plugin.py | 12 ++++++------ tests/unit/test_api.py | 17 +++++++++++++++++ 3 files changed, 24 insertions(+), 7 deletions(-) diff --git a/quantum/plugins/openvswitch/agent/ovs_quantum_agent.py b/quantum/plugins/openvswitch/agent/ovs_quantum_agent.py index 5d2a66ca3..404c80178 100755 --- a/quantum/plugins/openvswitch/agent/ovs_quantum_agent.py +++ b/quantum/plugins/openvswitch/agent/ovs_quantum_agent.py @@ -198,7 +198,7 @@ class OVSQuantumAgent: while True: cursor = conn.cursor() - cursor.execute("SELECT * FROM ports") + cursor.execute("SELECT * FROM ports where state = 'ACTIVE'") rows = cursor.fetchall() cursor.close() all_bindings = {} diff --git a/quantum/plugins/openvswitch/ovs_quantum_plugin.py b/quantum/plugins/openvswitch/ovs_quantum_plugin.py index 3d49f62e8..0544f4d01 100644 --- a/quantum/plugins/openvswitch/ovs_quantum_plugin.py +++ b/quantum/plugins/openvswitch/ovs_quantum_plugin.py @@ -164,18 +164,18 @@ class OVSQuantumPlugin(QuantumPluginBase): ports = db.port_list(net_id) for p in ports: LOG.debug("Appending port: %s" % p.uuid) - d = self._make_port_dict(str(p.uuid), "ACTIVE", None, None) + d = self._make_port_dict(str(p.uuid), p.state, None, None) ids.append(d) return ids def create_port(self, tenant_id, net_id, port_state=None): LOG.debug("Creating port with network_id: %s" % net_id) - port = db.port_create(net_id) - return self._make_port_dict(str(port.uuid), "ACTIVE", None, None) + port = db.port_create(net_id,port_state) + return self._make_port_dict(str(port.uuid), port.state, None, None) def delete_port(self, tenant_id, net_id, port_id): port = db.port_destroy(port_id, net_id) - return self._make_port_dict(str(port.uuid), "ACTIVE", None, None) + return self._make_port_dict(str(port.uuid), port.state, None, None) def update_port(self, tenant_id, net_id, port_id, port_state): """ @@ -184,11 +184,11 @@ class OVSQuantumPlugin(QuantumPluginBase): LOG.debug("update_port() called\n") port = db.port_get(port_id, net_id) db.port_set_state(port_id, net_id, port_state) - return self._make_port_dict(str(port.uuid), "ACTIVE", None, None) + return self._make_port_dict(str(port.uuid), port.state, None, None) def get_port_details(self, tenant_id, net_id, port_id): port = db.port_get(port_id, net_id) - return self._make_port_dict(str(port.uuid), "ACTIVE", + return self._make_port_dict(str(port.uuid), port.state, port.network_id, port.interface_id) def plug_interface(self, tenant_id, net_id, port_id, remote_iface_id): diff --git a/tests/unit/test_api.py b/tests/unit/test_api.py index d17e6ed87..d0daf8548 100644 --- a/tests/unit/test_api.py +++ b/tests/unit/test_api.py @@ -414,6 +414,23 @@ class APITest(unittest.TestCase): show_port_res.body, content_type) self.assertEqual({'id': port_id, 'state': new_port_state}, port_data['port']) + + # now set it back to the original value + update_port_req = testlib.update_port_request(self.tenant_id, + network_id, port_id, + port_state, + format) + update_port_res = update_port_req.get_response(self.api) + self.assertEqual(update_port_res.status_int, 200) + show_port_req = testlib.show_port_request(self.tenant_id, + network_id, port_id, + format) + show_port_res = show_port_req.get_response(self.api) + self.assertEqual(show_port_res.status_int, 200) + port_data = self._port_serializer.deserialize( + show_port_res.body, content_type) + self.assertEqual({'id': port_id, 'state': port_state}, + port_data['port']) LOG.debug("_test_set_port_state - format:%s - END", format) def _test_set_port_state_networknotfound(self, format): -- 2.45.2