Example #1
0
    def test_crt_sea(self):
        vswitch_file = pvmhttp.PVMFile('fake_vswitch_feed.txt')

        vswitch_resp = pvmhttp.PVMResp(pvmfile=vswitch_file).get_response()
        vsw_wrap = net.VSwitch.wrap(vswitch_resp.feed.entries[0])

        # Create mocked data
        sea = net.SEA.bld(self.adpt,
                          pvid=1,
                          vios_href='127.0.0.1',
                          adpt_name='ent0',
                          vswitch=vsw_wrap)

        self.assertIsNotNone(sea)
        self.assertEqual(1, sea.pvid)
        self.assertEqual('127.0.0.1', sea.vio_uri)
        self.assertEqual('ent0', sea.backing_device.dev_name)

        ta = sea.primary_adpt
        self.assertTrue(ta._required)
        self.assertEqual(1, ta.pvid)
        self.assertFalse(ta.has_tag_support)
        self.assertEqual(vsw_wrap.switch_id, ta.vswitch_id)
        self.assertEqual(1, ta.trunk_pri)
        self.assertEqual(vsw_wrap.related_href, ta.associated_vswitch_uri)
Example #2
0
    def test_contrl_channel(self):
        vios_file = pvmhttp.PVMFile('fake_vios_feed.txt')

        vios_resp = pvmhttp.PVMResp(pvmfile=vios_file).get_response()
        vios_wrap = vios.VIOS.wrap(vios_resp.feed.entries[0])

        self.assertEqual('ent5', vios_wrap.seas[0].control_channel)
Example #3
0
    def setUp(self):
        super(TestWrapper, self).setUp()
        self.adptfx = None
        self.adpt = None
        adptfx_args = self.mock_adapter_fx_args or {}
        self.adptfx = self.useFixture(fx.AdapterFx(**adptfx_args))
        self.adpt = self.adptfx.adpt

        # Load the file just once...
        if self.__class__._pvmfile is None:
            self.__class__._pvmfile = pvmhttp.PVMFile(self.file)
        # ...but reconstruct the PVMResp every time
        self.resp = pvmhttp.PVMResp(pvmfile=self.__class__._pvmfile,
                                    adapter=self.adpt).get_response()
        # Some wrappers don't support etag.  Subclasses testing those wrappers
        # should not be using self.entries, so ignore.
        try:
            self.entries = self.wrapper_class_to_test.wrap(self.resp)
        except TypeError:
            pass
        if self.resp.feed:
            self.dwrap = self.wrapper_class_to_test.wrap(
                self.resp.feed.entries[0])
        else:
            self.dwrap = self.wrapper_class_to_test.wrap(self.resp.entry)
Example #4
0
def main(argv):

    new_response = pvmhttp.PVMResp()
    output_file = None
    file_to_refresh = None

    aindex = 0
    while aindex < len(argv):
        if argv[aindex] == '-path':
            aindex += 1
            new_response.path = argv[aindex]
        elif argv[aindex] == '-comment':
            aindex += 1
            new_response.comment = argv[aindex]
        elif argv[aindex] == '-output':
            aindex += 1
            output_file = argv[aindex]
        elif argv[aindex] == '-refresh':
            aindex += 1
            file_to_refresh = argv[aindex]
        else:
            print("Unknown argument ", argv[aindex])
            usage()

        aindex += 1

    if file_to_refresh:
        rc = refresh_response(file_to_refresh)
        exit(rc)

    if new_response.path is None or output_file is None:
        usage()

    print("Connecting.")
    adap = adp.Adapter()
    print("Reading path:  ", new_response.path)
    new_response.response = adap.read(new_response.path)

    print("Received ", new_response.response)

    orig_file_name = output_file

    dirname = os.path.dirname(output_file)
    if dirname is None or dirname == '':
        dirname = os.path.dirname(__file__)
        output_file = os.path.join(dirname, output_file)

    new_response.save(output_file)

    print("Response has been saved in ", output_file)
    print("Use the pvmhttp.load_pvm_resp('%s') method "
          "to load it in your testcase " % orig_file_name)

    print("You can have the %s file rebuilt by running: "
          "create_httpresp -refresh %s" % (orig_file_name, orig_file_name))
Example #5
0
    def test_crt_net_bridge(self):
        vswitch_file = pvmhttp.PVMFile('fake_vswitch_feed.txt')

        vswitch_resp = pvmhttp.PVMResp(pvmfile=vswitch_file).get_response()
        vsw_wrap = net.VSwitch.wrap(vswitch_resp.feed.entries[0])

        # Create mocked data
        nb = net.NetBridge.bld(self.adpt,
                               pvid=1,
                               vios_to_backing_adpts=[('vio_href1', 'ent0'),
                                                      ('vio_href2', 'ent2')],
                               vswitch=vsw_wrap,
                               load_balance=True)

        self.assertIsNotNone(nb)
        self.assertEqual(1, nb.pvid)
        self.assertEqual(2, len(nb.seas))
        self.assertEqual(0, len(nb.load_grps))
        self.assertTrue(nb.load_balance)

        # First SEA.  Should be the primary
        sea1 = nb.seas[0]
        self.assertIsNotNone(sea1)
        self.assertEqual(1, sea1.pvid)
        self.assertEqual('vio_href1', sea1.vio_uri)
        self.assertEqual('ent0', sea1.backing_device.dev_name)
        self.assertTrue(sea1.is_primary)

        # Validate the trunk.
        ta = sea1.primary_adpt
        self.assertTrue(ta._required)
        self.assertEqual(1, ta.pvid)
        self.assertFalse(ta.has_tag_support)
        self.assertEqual(vsw_wrap.switch_id, ta.vswitch_id)
        self.assertEqual(1, ta.trunk_pri)
        self.assertEqual(vsw_wrap.related_href, ta.associated_vswitch_uri)

        # Check that the second SEA is similar but not primary.
        sea2 = nb.seas[1]
        self.assertIsNotNone(sea2)
        self.assertEqual(1, sea2.pvid)
        self.assertEqual('vio_href2', sea2.vio_uri)
        self.assertEqual('ent2', sea2.backing_device.dev_name)
        self.assertFalse(sea2.is_primary)
        self.assertIsNone(sea2.ha_mode)

        # Validate the second SEA trunk.
        ta = sea2.primary_adpt
        self.assertTrue(ta._required)
        self.assertEqual(1, ta.pvid)
        self.assertFalse(ta.has_tag_support)
        self.assertEqual(vsw_wrap.switch_id, ta.vswitch_id)
        self.assertEqual(2, ta.trunk_pri)
        self.assertEqual(vsw_wrap.related_href, ta.associated_vswitch_uri)
Example #6
0
    def test_sea_modification(self):
        """Verifies that the SEA can have a Trunk Adapter added to it."""
        vswitch_file = pvmhttp.PVMFile('fake_vswitch_feed.txt')

        vswitch_resp = pvmhttp.PVMResp(pvmfile=vswitch_file).get_response()
        vsw_wrap = net.VSwitch.wrap(vswitch_resp.feed.entries[0])

        # Create mocked data
        ta = net.TrunkAdapter.bld(self.adpt,
                                  pvid=1,
                                  vlan_ids=[1, 2, 3],
                                  vswitch=vsw_wrap)
        self.assertEqual(1, len(self.dwrap.seas[0].addl_adpts))
        self.dwrap.seas[0].addl_adpts.append(ta)
        self.assertEqual(2, len(self.dwrap.seas[0].addl_adpts))

        # Check that the total trunks is now three elements
        self.assertEqual(3, len(self.dwrap.seas[0]._get_trunks()))
Example #7
0
    def test_crt_trunk_adapter(self):
        vswitch_file = pvmhttp.PVMFile('fake_vswitch_feed.txt')

        vswitch_resp = pvmhttp.PVMResp(pvmfile=vswitch_file).get_response()
        vsw_wrap = net.VSwitch.wrap(vswitch_resp.feed.entries[0])

        # Create mocked data
        ta = net.TrunkAdapter.bld(self.adpt,
                                  pvid=1,
                                  vlan_ids=[1, 2, 3],
                                  vswitch=vsw_wrap)

        self.assertIsNotNone(ta)
        self.assertTrue(ta._required)
        self.assertEqual(1, ta.pvid)
        self.assertEqual([1, 2, 3], ta.tagged_vlans)
        self.assertTrue(ta.has_tag_support)
        self.assertEqual(vsw_wrap.switch_id, ta.vswitch_id)
        self.assertEqual(1, ta.trunk_pri)
        self.assertEqual(vsw_wrap.related_href, ta.associated_vswitch_uri)

        # Try adding a VLAN to the trunk adapter.
        ta.tagged_vlans.append(4)
        self.assertEqual([1, 2, 3, 4], ta.tagged_vlans)