Example #1
0
class TestZoneAttrVsan(unittest.TestCase):
    def __init__(self, testName, sw):
        super().__init__(testName)
        self.switch = sw

    def setUp(self) -> None:
        log.debug(self.switch.version)
        log.debug(self.switch.ipaddr)
        self.vsandb = self.switch.vsans
        while True:
            self.id = get_random_id()
            if self.id not in self.vsandb.keys():
                break
        self.v = Vsan(switch=self.switch, id=self.id)
        self.v.create()
        self.z = Zone(self.switch, "test_zone", self.id)

    def test_vsan_read(self):
        self.assertEqual(self.id, self.z.vsan.id)

    def test_vsan_write_error(self):
        with self.assertRaises(AttributeError) as e:
            self.z.vsan = 5
        self.assertEqual("can't set attribute", str(e.exception))

    def tearDown(self) -> None:
        self.v.delete()
Example #2
0
class TestVsanAttrInterfaces(unittest.TestCase):
    def __init__(self, testName, sw):
        super().__init__(testName)
        self.switch = sw

    def setUp(self) -> None:
        log.debug(self.switch.version)
        log.debug(self.switch.ipaddr)
        self.vsandb = self.switch.vsans
        while True:
            self.id = get_random_id()
            if self.id not in self.vsandb.keys():
                break
        self.v = Vsan(switch=self.switch, id=self.id)

    def test_interfaces_read(self):
        ## reading interfaces in default vsan 1
        self.assertIsNotNone(self.vsandb[1].interfaces)

    def test_interfaces_read_nonexistingvsan(self):
        self.assertIsNone(self.v.interfaces)

    def test_interfaces_write_error(self):
        with self.assertRaises(AttributeError) as e:
            self.v.interfaces = "asdf"
        self.assertEqual("can't set attribute", str(e.exception))

    def tearDown(self) -> None:
        if self.v.id is not None:
            self.v.delete()
        self.assertEqual(self.vsandb.keys(), self.switch.vsans.keys())
Example #3
0
class TestZoneAttrName(unittest.TestCase):
    def __init__(self, testName, sw):
        super().__init__(testName)
        self.switch = sw

    def setUp(self) -> None:
        log.debug(self.switch.version)
        log.debug(self.switch.ipaddr)
        self.vsandb = self.switch.vsans
        while True:
            self.id = get_random_id()
            if self.id not in self.vsandb.keys():
                break
        self.v = Vsan(switch=self.switch, id=self.id)
        self.v.create()
        self.z = Zone(self.switch, "test_zone", self.id)

    def test_name_read(self):
        self.z.create()
        self.assertEqual("test_zone", self.z.name)

    def test_name_read_nonexisting(self):
        # TODO: Was working in 8.4.2a not in 8.4.2b (CSCvv59174)
        # with self.assertRaises(CLIError) as c:
        #     self.z.name
        # self.assertIn("Zone not present", str(c.exception))
        self.assertIsNone(self.z.name)

    def test_name_write_error(self):
        with self.assertRaises(AttributeError) as e:
            self.z.name = "asdf"
        self.assertEqual("can't set attribute", str(e.exception))

    def tearDown(self) -> None:
        self.v.delete()
Example #4
0
class TestZoneSetDelete(unittest.TestCase):
    def __init__(self, testName, sw):
        super().__init__(testName)
        self.switch = sw

    def setUp(self) -> None:
        log.debug(self.switch.version)
        log.debug(self.switch.ipaddr)
        self.vsandb = self.switch.vsans
        while True:
            self.id = get_random_id()
            if self.id not in self.vsandb.keys():
                break
        self.v = Vsan(switch=self.switch, id=self.id)
        self.v.create()
        self.zoneset = ZoneSet(self.switch, "test_zoneset", self.id)

    def test_delete(self):
        self.zoneset.create()
        self.assertEqual("test_zoneset", self.zoneset.name)
        self.zoneset.delete()
        with self.assertRaises(CLIError) as e:
            self.zoneset.name
        self.assertIn("Zoneset not present", str(e.exception))

    def test_delete_nonexisting(self):
        with self.assertRaises(CLIError) as e:
            self.zoneset.delete()
        self.assertIn("Zoneset not present", str(e.exception))

    def tearDown(self) -> None:
        self.v.delete()
class TestSwitchAttrActiveZonesets(unittest.TestCase):
    def __init__(self, testName, sw):
        super().__init__(testName)
        self.switch = sw

    def setUp(self) -> None:
        log.debug(self.switch.version)
        log.debug(self.switch.ipaddr)
        self.vsandb = self.switch.vsans
        while True:
            self.id = random.randint(2, 400)
            if self.id not in self.vsandb.keys():
                break
        self.v = Vsan(switch=self.switch, id=self.id)
        self.v.create()

    def test_active_zonesets_read(self):
        # self.skipTest("need to check")
        zone = Zone(self.switch, "test_zone", self.id)
        zone.create()
        zoneset = ZoneSet(self.switch, "test_zoneset", self.id)
        zoneset.create()
        zone.add_members([{"fcid": "0x123456"}])
        zoneset.add_members([zone])
        zoneset.activate(True)
        active_zonesets = self.switch.active_zonesets
        self.assertIn(self.v.id, list(active_zonesets.keys()))

    def test_active_zonesets_write_error(self):
        with self.assertRaises(AttributeError) as e:
            self.switch.active_zonesets = "asdf"
        self.assertEqual("can't set attribute", str(e.exception))

    def tearDown(self) -> None:
        self.v.delete()
class TestZoneAttrFulldbZoneCount(unittest.TestCase):
    def __init__(self, testName, sw):
        super().__init__(testName)
        self.switch = sw

    def setUp(self) -> None:
        log.debug(self.switch.version)
        log.debug(self.switch.ipaddr)
        self.vsandb = self.switch.vsans
        while True:
            self.id = get_random_id()
            if self.id not in self.vsandb.keys():
                break
        self.v = Vsan(switch=self.switch, id=self.id)
        self.v.create()
        self.z = Zone(self.switch, "test_zone", self.id)

    def test_fulldb_zone_count_read(self):
        self.z.create()
        log.debug("Full DB Zone Count : " + str(self.z.fulldb_zone_count))
        self.assertEqual(1, self.z.fulldb_zone_count)

    def test_fulldb_zone_count_read_nonexisting(self):
        log.debug("Full DB Zone Count(nonexisting) : " + str(self.z.fulldb_zone_count))
        self.assertEqual(0, self.z.fulldb_zone_count)

    def test_fulldb_zone_count_write_error(self):
        with self.assertRaises(AttributeError) as e:
            self.z.fulldb_zone_count = "asdf"
        self.assertEqual("can't set attribute", str(e.exception))

    def tearDown(self) -> None:
        self.v.delete()
Example #7
0
class TestZoneAttrEffectivedbSize(unittest.TestCase):
    def __init__(self, testName, sw):
        super().__init__(testName)
        self.switch = sw

    def setUp(self) -> None:
        log.debug(self.switch.version)
        log.debug(self.switch.ipaddr)
        self.vsandb = self.switch.vsans
        while True:
            self.id = get_random_id()
            if self.id not in self.vsandb.keys():
                break
        self.v = Vsan(switch=self.switch, id=self.id)
        self.v.create()
        self.z = Zone(self.switch, "test_zone", self.id)

    def test_effectivedb_size_read(self):
        self.z.create()
        log.debug("Effective DB Size : " + str(self.z.effectivedb_size))
        self.assertIsNotNone(self.z.effectivedb_size)

    def test_effectivedb_size_read_nonexisting(self):
        log.debug("Effective DB Size(nonexisting) : " +
                  str(self.z.effectivedb_size))
        self.assertIsNotNone(self.z.effectivedb_size)

    def test_effectivedb_size_write_error(self):
        with self.assertRaises(AttributeError) as e:
            self.z.effectivedb_size = "asdf"
        self.assertEqual("can't set attribute", str(e.exception))

    def tearDown(self) -> None:
        self.v.delete()
 def test_nonexistingvsan(self):
     i = self.vsan_id[0]
     v = Vsan(self.switch, i)
     if v.id is not None:
         v.delete()
     with self.assertRaises(VsanNotPresent) as e:
         z = ZoneSet(self.switch, v, self.zoneset_name[0])
     self.assertEqual("VsanNotPresent: Vsan "+str(i)+" is not present on the switch.",str(e.exception))
Example #9
0
 def test_create_boundary(self):
     for i in self.boundary_id:
         v = Vsan(switch=self.switch, id=i)
         with self.assertRaises(CLIError) as e:
             v.create()
         self.assertEqual(
             'The command " vsan database ; vsan ' + str(i) +
             ' " gave the error " % Invalid command ".', str(e.exception))
 def test_delete_reserved(self):
     for i in self.reserved_id:
         v = Vsan(switch=self.switch, id=i)
         with self.assertRaises(CLIError) as e:
             v.delete()
         self.assertEqual(
             'The command " terminal dont-ask ; vsan database ; no vsan ' +
             str(i) + ' " gave the error " vsan ' + str(i) +
             ':vsan(s) reserved ".', str(e.exception))
 def test_name_write_reserved(self):
     for i in self.reserved_id:
         v = Vsan(switch=self.switch, id=i)
         with self.assertRaises(CLIError) as e:
             v.name = 'vsan'
         self.assertEqual(
             'The command " vsan database ; vsan ' + str(i) +
             ' name \'vsan\' " gave the error " vsan ' + str(i) +
             ':vsan(s) reserved ".', str(e.exception))
Example #12
0
 def setUp(self) -> None:
     log.debug(self.switch.version)
     log.debug(self.switch.ipaddr)
     self.vsandb = self.switch.vsans
     while True:
         self.id = get_random_id()
         if self.id not in self.vsandb.keys():
             break
     self.v = Vsan(switch=self.switch, id=self.id)
 def test_delete_default_vsan(self):
     i = self.default_id
     v = Vsan(switch=self.switch, id=i)
     with self.assertRaises(CLIError) as e:
         v.delete()
     self.assertEqual(
         'The command " terminal dont-ask ; vsan database ; no vsan ' +
         str(i) + ' " gave the error " vsan ' + str(i) +
         ':cannot delete default vsan ".', str(e.exception))
 def setUp(self) -> None:
     log.debug(self.switch.version)
     log.debug(self.switch.ipaddr)
     self.vsandb = self.switch.vsans
     while True:
         self.id = random.randint(2, 400)
         if self.id not in self.vsandb.keys():
             break
     self.v = Vsan(switch=self.switch, id=self.id)
     self.v.create()
 def test_nonexistingvsan(self):
     i = self.vsan_id[0]
     v = Vsan(self.switch, i)
     if v.id is not None:
         v.delete()
     with self.assertRaises(VsanNotPresent) as e:
         z = Zone(self.switch, v, "z1")
     self.assertEqual(
         "VsanNotPresent: Vsan " + str(i) +
         " is not present on the switch. Please create the vsan first.",
         str(e.exception))
Example #16
0
 def setUp(self) -> None:
     log.debug(self.switch.version)
     log.debug(self.switch.ipaddr)
     self.vsandb = self.switch.vsans
     while True:
         self.id = get_random_id()
         if self.id not in self.vsandb.keys():
             break
     self.v = Vsan(switch=self.switch, id=self.id)
     self.v.create()
     self.zoneset = ZoneSet(self.switch, "test_zoneset", self.id)
Example #17
0
class TestZoneSetActivate(unittest.TestCase):
    def __init__(self, testName, sw):
        super().__init__(testName)
        self.switch = sw

    def setUp(self) -> None:
        log.debug(self.switch.version)
        log.debug(self.switch.ipaddr)
        self.vsandb = self.switch.vsans
        while True:
            self.id = get_random_id()
            if self.id not in self.vsandb.keys():
                break
        self.v = Vsan(switch=self.switch, id=self.id)
        self.v.create()
        self.zone = Zone(self.switch, "test_zone", self.id)
        self.zone.create()
        self.zoneset = ZoneSet(self.switch, "test_zoneset", self.id)
        self.zoneset.create()
        self.zone_members = members_dict

    def test_activate(self):
        self.zone.add_members(self.zone_members)
        self.zoneset.add_members([self.zone])

        self.zoneset.activate(True)
        self.assertTrue(self.zoneset.is_active())

        self.zoneset.activate(False)
        self.assertFalse(self.zoneset.is_active())

    def test_activate_zonehasnomembers(self):
        self.zoneset.add_members([self.zone])

        self.zoneset.activate(True)  # not activated since zone has no members
        self.assertFalse(self.zoneset.is_active())

    def test_activate_multiple(self):
        self.zone.add_members(self.zone_members)
        self.zoneset.add_members([self.zone])
        self.zoneset.activate(True)
        self.assertTrue(self.zoneset.is_active())

        zoneset1 = ZoneSet(self.switch, "test_zoneset_2", self.id)
        zoneset1.create()
        zoneset1.add_members([self.zone])

        zoneset1.activate(True)
        self.assertTrue(zoneset1.is_active())
        self.assertFalse(self.zoneset.is_active())

    def tearDown(self) -> None:
        self.v.delete()
Example #18
0
 def test_name_write_repeated(self):
     name = "test___repeated___name"
     self.v.create(name)
     while True:
         i = get_random_id()
         if i not in self.switch.vsans.keys():
             break
     v1 = Vsan(switch=self.switch, id=i)
     with self.assertRaises(CLIError) as e:
         v1.name = name
     self.assertIn("vsan name is already in use", str(e.exception))
     self.v.delete()
Example #19
0
 def test_addinterfaces_type_error(self):
     v = Vsan(switch=self.switch, id=self.vsan_id[0])
     v.create()
     fc = Fc(switch=self.switch, name=self.fc_name[0])
     with self.assertRaises(TypeError) as e:
         v.add_interfaces(fc)
     self.assertEqual("'Fc' object is not iterable", str(e.exception))
     pc = PortChannel(self.switch, self.pc_id[0])
     with self.assertRaises(TypeError) as e:
         v.add_interfaces(pc)
     self.assertEqual("'PortChannel' object is not iterable",
                      str(e.exception))
     v.delete()
Example #20
0
 def test_addinterfaces_invalid(self):
     v = Vsan(switch=self.switch, id=self.vsan_id[6])
     v.create()
     with self.assertRaises(AttributeError) as e:
         v.add_interfaces("asdfg")
     self.assertEqual("'str' object has no attribute 'name'",
                      str(e.exception))
     v.delete()
 def test_suspend_write(self):
     v = Vsan(switch=self.switch, id=self.vsan_id[0])
     v.create()
     v.suspend = True
     self.assertEqual("suspended", v.state)
     v.suspend = False
     self.assertEqual("active", v.state)
     v.delete()
Example #22
0
 def test_addinterfaces_splitlist(self):
     v = Vsan(switch=self.switch, id=self.vsan_id[3])
     v.create()
     fc1 = Fc(switch=self.switch, name=self.fc_name[2])
     fc2 = Fc(switch=self.switch, name=self.fc_name[3])
     pc = PortChannel(self.switch, self.pc_id[2])
     pc.create()
     v.add_interfaces([fc1])
     v.add_interfaces([fc2])
     v.add_interfaces([pc])
     self.assertEqual(fc1.name, v.interfaces[0].name)
     self.assertEqual(fc2.name, v.interfaces[1].name)
     self.assertEqual(pc.name, v.interfaces[2].name)
     pc.delete()
     v.delete()
Example #23
0
    def test_add_members_samezone(self):
        v = Vsan(self.switch, self.vsan_id[2])
        v.create()
        zone1 = Zone(self.switch, v, self.zone_name[3])
        zone2 = Zone(self.switch, v, self.zone_name[4])
        zone1.create()
        zone2.create()

        zoneset1 = ZoneSet(self.switch, v, self.zoneset_name[2])
        zoneset2 = ZoneSet(self.switch, v, self.zoneset_name[3])
        members = [zone1, zone2]
        zoneset1.add_members(members)
        zoneset2.add_members(members)

        self.assertEqual([zone.name for zone in members],list(zoneset1.members.keys()))
        self.assertEqual([zone.name for zone in members],list(zoneset2.members.keys()))
Example #24
0
 def test_create_success(self):
     i = self.create_id
     v = Vsan(switch=self.switch, id=i)
     if v.id is not None:
         v.delete()
     self.assertIsNone(v.id)
     v.create()
     self.assertEqual(i, v.id)
     v.delete()
Example #25
0
 def test_addinterfaces_repeated(self):
     v = Vsan(switch=self.switch, id=self.vsan_id[8])
     v.create()
     fc1 = Fc(switch=self.switch, name=self.fc_name[7])
     pc = PortChannel(self.switch, self.pc_id[5])
     pc.create()
     v.add_interfaces([fc1, fc1, fc1, fc1])
     self.assertEqual(fc1.name, v.interfaces[0].name)
     pc.delete()
     v.delete()
 def test_id_read_nonexistingvsan(self):
     v = Vsan(switch=self.switch, id=self.vsan_id)
     if v.id is not None:
         v.delete()
     for i in self.boundary_id:
         v = Vsan(switch=self.switch, id=i)
         self.assertIsNone(v.id)
     for i in self.reserved_id:
         v = Vsan(switch=self.switch, id=i)
         self.assertEqual(i, v.id)
 def test_id_write_error(self):
     v = Vsan(switch=self.switch, id=self.vsan_id)
     v.create()
     with self.assertRaises(AttributeError) as e:
         v.id = 4
     self.assertEqual("can't set attribute", str(e.exception))
     v.delete()
 def test_suspend_write_nonexistingvsan(self):
     v = Vsan(switch=self.switch, id=self.vsan_id[2])
     if v.id is not None:
         v.delete()
     v.suspend = True
     self.assertEqual("suspended", v.state)
     v.delete()
 def test_name_write_max32(self):
     v = Vsan(switch=self.switch, id=self.vsan_id[3])
     v.create()
     name = self.max32_name
     v.name = name
     self.assertEqual(name, v.name)
     v.delete()
 def test_interfaces_read(self):
     v = Vsan(switch=self.switch, id=self.vsan_id[0])
     v.create()
     fc = [
         Fc(switch=self.switch, name=self.fc_name[0]),
         Fc(switch=self.switch, name=self.fc_name[1])
     ]
     v.add_interfaces(fc)
     self.assertEqual(self.fc_name[0], v.interfaces[0].name)
     self.assertEqual(self.fc_name[1], v.interfaces[1].name)
     v.delete()