def setUp(self):
     super(TrunkManagerTestCase, self).setUp()
     trunk_id = uuidutils.generate_uuid()
     self.tester = self.useFixture(
         conn_testers.OVSTrunkConnectionTester(
             self.net1_cidr, utils.gen_trunk_br_name(trunk_id)))
     self.trunk_manager = trunk_manager.TrunkManager(self.tester.bridge)
     self.trunk = trunk_manager.TrunkParentPort(trunk_id,
                                                uuidutils.generate_uuid())
 def setUp(self):
     super(SubPortTestCase, self).setUp()
     trunk_id = uuidutils.generate_uuid()
     port_id = uuidutils.generate_uuid()
     port_mac = common_utils.get_random_mac('fa:16:3e:00:00:00'.split(':'))
     trunk_bridge_name = utils.gen_trunk_br_name(trunk_id)
     trunk_bridge = self.useFixture(
         net_helpers.OVSTrunkBridgeFixture(trunk_bridge_name)).bridge
     segmentation_id = helpers.get_not_used_vlan(trunk_bridge, VLAN_RANGE)
     self.subport = trunk_manager.SubPort(trunk_id, port_id, port_mac,
                                          segmentation_id)
     self.subport.bridge = trunk_bridge
     self.br_int = self.useFixture(net_helpers.OVSBridgeFixture()).bridge
Beispiel #3
0
    def _set_trunk_metadata(self, trunk_br, port, trunk_id, subport_ids):
        """Set trunk metadata in OVS port for trunk parent port."""
        # update the parent port external_ids to store the trunk bridge
        # name, trunk id and subport ids so we can easily remove the trunk
        # bridge and service ports once this port is removed
        trunk_bridge = trunk_br or ovs_lib.OVSBridge(
            trunk_utils.gen_trunk_br_name(trunk_id))
        port = port or self._get_parent_port(trunk_bridge)

        port['external_ids']['bridge_name'] = trunk_br.br_name
        port['external_ids']['trunk_id'] = trunk_id
        port['external_ids']['subport_ids'] = jsonutils.dumps(subport_ids)
        trunk_br.set_db_attribute('Interface', port['name'], 'external_ids',
                                  port['external_ids'])
Beispiel #4
0
 def test_ovs_bridge_name_set_when_trunk_bound(self):
     helpers.register_ovs_agent(host=helpers.HOST)
     with self.port() as port:
         trunk_port_id = port['port']['id']
         trunk_req = {
             'port_id': trunk_port_id,
             'tenant_id': 'test_tenant',
             'sub_ports': []
         }
         trunk_res = self.trunk_plugin.create_trunk(self.context,
                                                    {'trunk': trunk_req})
         port['port'][pb.HOST_ID] = helpers.HOST
         bound_port = self.core_plugin.update_port(self.context,
                                                   trunk_port_id, port)
         self.assertEqual(
             trunk_utils.gen_trunk_br_name(trunk_res['id']),
             bound_port[pb.VIF_DETAILS][pb.VIF_DETAILS_BRIDGE_NAME])
Beispiel #5
0
def vif_details_bridge_name_handler(resource, event, set_br_name, **kwargs):
    """If port is a trunk port, generate a bridge_name for its vif_details."""
    port = kwargs['port']
    if 'trunk_details' in port:
        set_br_name(utils.gen_trunk_br_name(port['trunk_details']['trunk_id']))
 def __init__(self, trunk_id):
     name = utils.gen_trunk_br_name(trunk_id)
     super(TrunkBridge, self).__init__(name)
Beispiel #7
0
def vif_details_bridge_name_handler(resource, event, set_br_name, **kwargs):
    """If port is a trunk port, generate a bridge_name for its vif_details."""
    port = kwargs['port']
    if 'trunk_details' in port:
        set_br_name(utils.gen_trunk_br_name(port['trunk_details']['trunk_id']))
Beispiel #8
0
 def manages_this_trunk(self, trunk_id):
     """True if this OVSDB handler manages trunk based on given ID."""
     bridge_name = trunk_utils.gen_trunk_br_name(trunk_id)
     return ovs_lib.BaseOVS().bridge_exists(bridge_name)
Beispiel #9
0
 def __init__(self, trunk_id):
     name = utils.gen_trunk_br_name(trunk_id)
     super(TrunkBridge, self).__init__(name)