return port_data
def update_port(self, context, id, port):
- self._enforce_set_auth(context, port,
- self.port_security_enabled_update)
+ if attr.is_attr_set(port['port'].get(psec.PORTSECURITY)):
+ self._enforce_set_auth(context, port,
+ self.port_security_enabled_update)
+ tenant_id = self._get_tenant_id_for_create(context, port)
delete_security_groups = self._check_update_deletes_security_groups(
port)
has_security_groups = self._check_update_has_security_groups(port)
context, id, port)
# copy values over
ret_port.update(port['port'])
- tenant_id = self._get_tenant_id_for_create(context, ret_port)
# TODO(salvatore-orlando): We might need transaction management
# but the change for metadata support should not be too disruptive
self.assertEqual(res['port']['admin_state_up'],
data['port']['admin_state_up'])
+ def test_update_port_not_admin(self):
+ res = self._create_network(self.fmt, 'net1', True,
+ tenant_id='not_admin',
+ set_context=True)
+ net1 = self.deserialize(self.fmt, res)
+ res = self._create_port(self.fmt, net1['network']['id'],
+ tenant_id='not_admin', set_context=True)
+ port = self.deserialize(self.fmt, res)
+ data = {'port': {'admin_state_up': False}}
+ quantum_context = context.Context('', 'not_admin')
+ port = self._update('ports', port['port']['id'], data,
+ quantum_context=quantum_context)
+ self.assertEqual(port['port']['admin_state_up'], False)
+
def test_update_device_id_null(self):
with self.port() as port:
data = {'port': {'device_id': None}}