# Returns the IP's for the port
ips = self._allocate_ips_for_port(context, network, port)
+ if 'status' not in p:
+ status = constants.PORT_STATUS_ACTIVE
+ else:
+ status = p['status']
+
port = models_v2.Port(tenant_id=tenant_id,
name=p['name'],
id=port_id,
network_id=network_id,
mac_address=mac_address,
admin_state_up=p['admin_state_up'],
- status=constants.PORT_STATUS_ACTIVE,
+ status=status,
device_id=p['device_id'],
device_owner=p['device_owner'])
context.session.add(port)
with session.begin(subtransactions=True):
self._ensure_default_security_group_on_port(context, port)
sgids = self._get_security_groups_on_port(context, port)
+ # Set port status as 'DOWN'. This will be updated by agent
+ port['port']['status'] = q_const.PORT_STATUS_DOWN
+
port = super(LinuxBridgePluginV2,
self).create_port(context, port)
self._process_port_create_security_group(
def setUp(self):
super(LinuxBridgePluginV2TestCase, self).setUp(PLUGIN_NAME)
+ self.port_create_status = 'DOWN'
class TestLinuxBridgeBasicGet(test_plugin.TestBasicGet,
VIF_TYPE = portbindings.VIF_TYPE_BRIDGE
HAS_PORT_FILTER = True
+ def test_update_port_status_build(self):
+ with self.port() as port:
+ self.assertEqual(port['port']['status'], 'DOWN')
+ self.assertEqual(self.port_create_status, 'DOWN')
+
class TestLinuxBridgeNetworksV2(test_plugin.TestNetworksV2,
LinuxBridgePluginV2TestCase):
cfg.CONF.set_override('max_dns_nameservers', 2)
cfg.CONF.set_override('max_subnet_host_routes', 2)
self.api = APIRouter()
+ # Set the defualt port status
+ self.port_create_status = 'ACTIVE'
def _is_native_bulk_supported():
plugin_obj = QuantumManager.get_plugin()
class TestPortsV2(QuantumDbPluginV2TestCase):
def test_create_port_json(self):
- keys = [('admin_state_up', True), ('status', 'ACTIVE')]
+ keys = [('admin_state_up', True), ('status', self.port_create_status)]
with self.port(name='myname') as port:
for k, v in keys:
self.assertEqual(port['port'][k], v)
self.assertEqual(res.status_int, 403)
def test_create_port_public_network(self):
- keys = [('admin_state_up', True), ('status', 'ACTIVE')]
+ keys = [('admin_state_up', True), ('status', self.port_create_status)]
with self.network(shared=True) as network:
port_res = self._create_port('json',
network['network']['id'],
def test_create_port_public_network_with_ip(self):
with self.network(shared=True) as network:
with self.subnet(network=network, cidr='10.0.0.0/24') as subnet:
- keys = [('admin_state_up', True), ('status', 'ACTIVE'),
+ keys = [('admin_state_up', True),
+ ('status', self.port_create_status),
('fixed_ips', [{'subnet_id': subnet['subnet']['id'],
'ip_address': '10.0.0.2'}])]
port_res = self._create_port('json',