make ovs plugin pay attention to port state

This commit is contained in:
Dan Wendlandt 2011-08-01 00:14:18 -07:00
parent d83afeccf1
commit 3df4e822a2
3 changed files with 24 additions and 7 deletions

View File

@ -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 = {}

View File

@ -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):

View File

@ -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):