Ejemplo n.º 1
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.z = Zone(self.switch, "test_zone", self.id)
     self.z.create()
 def test_create_name_invalid(self):
     i = self.vsan_id[2]
     v = Vsan(self.switch, i)
     v.create()
     name = self.zone_name_invalid
     z = Zone(self.switch, v, name)
     with self.assertRaises(CLIError) as e:
         z.create()
     self.assertEqual(
         "The command \" zone name " + str(name) + " vsan " + str(i) +
         " \" gave the error \" Illegal character present in the name \".",
         str(e.exception))
     v.delete()
 def test_create_name_invalidfirstchar(self):
     i = self.vsan_id[3]
     v = Vsan(self.switch, i)
     v.create()
     name = self.zone_name_invalidfirstchar
     z = Zone(self.switch, v, name)
     with self.assertRaises(CLIError) as e:
         z.create()
     self.assertEqual(
         "The command \" zone name " + str(name) + " vsan " + str(i) +
         " \" gave the error \" Illegal first character (name must start with a letter) \".",
         str(e.exception))
     v.delete()
Ejemplo n.º 4
0
 def test_default_zone_write_invalid(self):
     v = Vsan(self.switch, self.vsan_id[3])
     v.create()
     z = Zone(self.switch, v, self.zone_name[3])
     z.create()
     default_zone = 'asdf'
     with self.assertRaises(CLIError) as e:
         z.default_zone = default_zone
     self.assertEqual(
         'The command " No cmd sent " gave the error " Invalid default-zone value '
         + str(default_zone) + ' . Valid values are: permit,deny ".',
         str(e.exception))
     v.delete()
 def test_create_name_beyondmax(self):
     i = self.vsan_id[4]
     v = Vsan(self.switch, i)
     v.create()
     name = self.zone_name_beyondmax
     z = Zone(self.switch, v, name)
     with self.assertRaises(CLIError) as e:
         z.create()
     self.maxDiff = 1000
     self.assertEqual(
         "The command \" zone name " + str(name) + " vsan " + str(i) +
         " \" gave the error \" % String exceeded max length of (64) \".",
         str(e.exception))
     v.delete()
 def test_remove_members_dict(self):
     i = self.vsan_id[0]
     v = Vsan(self.switch, i)
     v.create()
     z = Zone(self.switch, v, self.zone_name[0])
     z.create()
     self.switch.config('fcalias name somefcalias vsan '+str(i))
     members = self.members_dict
     z.add_members(members)
     self.assertIsNotNone(z.members)
     z.remove_members(members)
     self.assertIsNone(z.members)
     z.delete()
     v.delete()
    def test_activate_multiple(self):
        v = Vsan(self.switch, self.vsan_id[2])
        v.create()

        zoneset = ZoneSet(self.switch, v, self.zoneset_name[2] )
        zoneset.create()
        zone = Zone(self.switch, v, self.zone_name[2])
        zone.create()
        zone.add_members(self.zone_members)
        zoneset.add_members([zone])
        zoneset.activate(True)
        self.assertTrue(zoneset.is_active())

        zoneset1 = ZoneSet(self.switch, v, self.zoneset_name[3] )
        zoneset1.create()
        zoneset1.add_members([zone])

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

        zone.delete()
        zoneset.delete()
        zoneset1.delete()
        v.delete()
Ejemplo n.º 8
0
 def test_fulldb_zoneset_count_read_nonexisting(self):
     v = Vsan(self.switch, self.vsan_id[1])
     v.create()
     z = Zone(self.switch, v, self.zone_name[1])
     print("Full DB Zoneset Count(nonexisting) : " +
           str(z.fulldb_zoneset_count))
     v.delete()
Ejemplo n.º 9
0
 def test_activedb_zoneset_name_read_nonexisting(self):
     v = Vsan(self.switch, self.vsan_id[1])
     v.create()
     z = Zone(self.switch, v, self.zone_name[1])
     print("Active DB Zoneset Name(nonexisting) : " +
           str(z.activedb_zoneset_name))
     v.delete()
 def test_effectivedb_size_percentage_read_nonexisting(self):
     v = Vsan(self.switch, self.vsan_id[1])
     v.create()
     z = Zone(self.switch, v, self.zone_name[1])
     print("Effective DB Size Percentage(nonexisting) : " +
           str(z.effectivedb_size_percentage))
     v.delete()
Ejemplo n.º 11
0
 def test_add_members(self):
     zone1 = Zone(self.switch, "test_zone1", self.id)
     zone1.create()
     zone2 = Zone(self.switch, "test_zone2", self.id)
     zone2.create()
     members = [zone1, zone2]
     self.zoneset.add_members(members)
     self.assertEqual([zone.name for zone in members],
                      list(self.zoneset.members.keys()))
 def test_add_members(self):
     v = Vsan(self.switch,self.vsan_id[1])
     v.create()
     z = Zone(self.switch, v, self.zone_name[1])
     z.create()
     members = self.members_list
     z.add_members(members)
     self.assertEqual(len(members),len(z.members))
     print("Zone Members : "+str(z.members))
     z.delete()
     v.delete()
Ejemplo n.º 13
0
 def test_add_members_nonexisting(self):
     v = Vsan(self.switch, self.vsan_id[0])
     v.create()
     zonename = self.zone_name[0]
     zone = Zone(self.switch, v, zonename)
     zoneset = ZoneSet(self.switch, v, self.zoneset_name[0])
     with self.assertRaises(ZoneNotPresent) as e:
         zoneset.add_members([zone])
     self.assertEqual("ZoneNotPresent: The given zoneset member '"+str(zonename)+"' is not present in the switch. Please create the zone first.",str(e.exception))
     v.delete()
Ejemplo n.º 14
0
class TestZoneAttrActiveMembers(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)
        self.z.create()

    def test_active_members_read(self):
        self.skipTest("not a correct test case Needs to be fixed")
        zoneset = ZoneSet(self.switch, "test_zoneset", self.id)
        zoneset.create()
        members = [{"fcid": "0x123456"}]
        self.z.add_members(members)
        zoneset.add_members([self.z])
        zoneset.activate(True)
        if zoneset.is_active():
            self.assertEqual(members, self.z.active_members)

    def test_active_members_read_nonexisting(self):
        self.skipTest("not a correct test case Needs to be fixed")
        # with self.assertRaises(CLIError) as e:
        #     self.z.active_members
        # self.assertIn("Zone not present", str(e.exception))

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

    def tearDown(self) -> None:
        self.v.delete()
Ejemplo n.º 15
0
class TestZoneSetRemoveMembers(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()

    def test_remove_members_nonexisting(self):
        self.assertEqual({}, self.zoneset.members)
        with self.assertRaises(CLIError) as e:
            self.zoneset.remove_members([self.zone])
        self.assertEqual(
            'The command " zoneset name test_zoneset vsan '
            + str(self.id)
            + ' ; no member test_zone " gave the error " Zone not present ".',
            str(e.exception),
        )

    def test_remove_members(self):
        zone1 = self.zone
        zone2 = Zone(self.switch, "test_zone2", self.id)
        zone2.create()
        self.zoneset.add_members([zone1, zone2])
        self.assertIsNotNone(self.zoneset.members)
        self.zoneset.remove_members([zone1, zone2])
        self.assertEqual({}, self.zoneset.members)

    def tearDown(self) -> None:
        self.v.delete()
 def test_add_members_dict(self):
     i = self.vsan_id[0]
     v = Vsan(self.switch, i)
     v.create()
     z = Zone(self.switch, v, self.zone_name[0])
     z.create()
     members = self.members_dict
     self.switch.config('fcalias name somefcalias vsan '+str(i))
     z.add_members(members)
     self.assertEqual(len(members),len(z.members))
     print("Zone Members : "+str(z.members))
     z.delete()
     v.delete()
 def test_add_members_error_fcid(self):
     i = self.vsan_id[4]
     v = Vsan(self.switch,i)
     v.create()
     name = self.zone_name[4]
     z = Zone(self.switch, v, name)
     z.create()
     members = [{'fcid': '0x123'}]
     with self.assertRaises(CLIError) as e:
         z.add_members(members)
     self.assertEqual('The command " zone name '+str(name)+' vsan '+str(i)+' ; member fcid 0x123 " gave the error " Invalid FCID ".',str(e.exception))
     z.delete()
     v.delete()
 def test_add_members_error_fcalias(self):
     i = self.vsan_id[6]
     v = Vsan(self.switch,i)
     v.create()
     name = self.zone_name[6]
     z = Zone(self.switch, v, name)
     z.create()
     members = [{'fcalias': 'somefcalias'}]
     with self.assertRaises(CLIError) as e:
         z.add_members(members)
     self.assertEqual('The command " zone name '+str(name)+' vsan '+str(i)+' ; member fcalias somefcalias " gave the error " Alias not present ".',str(e.exception))
     z.delete()
     v.delete()
 def test_add_members_error_pwwn(self):
     i = self.vsan_id[2]
     v = Vsan(self.switch,i)
     v.create()
     name = self.zone_name[2]
     z = Zone(self.switch, v, name)
     z.create()
     members = [{'pwwn': '50:08:01:60:08:9f:4d:00:01'}]
     with self.assertRaises(CLIError) as e:
         z.add_members(members)
     self.assertEqual('The command " zone name '+str(name)+' vsan '+str(i)+' ; member pwwn 50:08:01:60:08:9f:4d:00:01 " gave the error " % Invalid command ".',str(e.exception))
     z.delete()
     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 = 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))
 def test_add_members_error_ip(self):
     i = self.vsan_id[3]
     v = Vsan(self.switch,i)
     v.create()
     name = self.zone_name[3]
     z = Zone(self.switch, v, name)
     z.create()
     members = [{'ip-address': '1.1.1.1.1'}]
     with self.assertRaises(CLIError) as e:
         z.add_members(members)
     self.assertEqual('The command " zone name '+str(name)+' vsan '+str(i)+' ; member ip-address 1.1.1.1.1 " gave the error " % Invalid ip address ".',str(e.exception))
     z.delete()
     v.delete()
 def test_add_members_error_fwwn(self):
     i = self.vsan_id[5]
     v = Vsan(self.switch,i)
     v.create()
     name = self.zone_name[5]
     z = Zone(self.switch, v, name)
     z.create()
     members = [{'fwwn': '11:12:13:14:15:16:17:18:19'}]
     with self.assertRaises(CLIError) as e:
         z.add_members(members)
     self.assertEqual('The command " zone name '+str(name)+' vsan '+str(i)+' ; member fwwn 11:12:13:14:15:16:17:18:19 " gave the error " % Invalid command ".',str(e.exception))
     z.delete()
     v.delete()
Ejemplo n.º 23
0
class TestZoneAttrMode(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)
        self.old = self.z.mode

    def test_mode_read(self):
        self.assertIn(self.z.mode, [BASIC, ENHANCED])

    def test_mode_write(self):
        self.z.create()
        self.z.mode = BASIC
        self.assertEqual(BASIC, self.z.mode)
        self.z.mode = ENHANCED
        self.assertEqual(ENHANCED, self.z.mode)

    def test_mode_write_invalid(self):
        mode = "asdf"
        with self.assertRaises(InvalidZoneMode) as e:
            self.z.mode = mode
        self.assertEqual(
            "InvalidZoneMode: Invalid zone mode " + str(mode) +
            " . Valid values are: basic,enhanced",
            str(e.exception),
        )

    def tearDown(self) -> None:
        self.z.mode = self.old
        self.v.delete()
Ejemplo n.º 24
0
class TestZoneAttrDefaultZone(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)
        self.old = self.z.default_zone

    def test_default_zone_read(self):
        self.assertIn(self.z.default_zone, [PERMIT, DENY])

    def test_default_zone_write(self):
        self.z.default_zone = DENY
        self.assertEqual(DENY, self.z.default_zone)
        self.z.default_zone = PERMIT
        self.assertEqual(PERMIT, self.z.default_zone)

    def test_default_zone_write_invalid(self):
        self.z.create()
        default_zone = "asdf"
        with self.assertRaises(InvalidDefaultZone) as e:
            self.z.default_zone = default_zone
        self.assertIn(
            "Invalid default-zone value " + default_zone +
            " . Valid values are: " + PERMIT + "," + DENY,
            str(e.exception),
        )

    def tearDown(self) -> None:
        self.z.default_zone = self.old
        self.v.delete()
Ejemplo n.º 25
0
class TestZoneDelete(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_delete(self):
        self.z.create()
        self.assertEqual("test_zone", self.z.name)
        self.z.delete()
        with self.assertRaises(CLIError) as e:
            self.z.name
        self.assertIn("Zone not present", str(e.exception))

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

    def tearDown(self) -> None:
        self.v.delete()
Ejemplo n.º 26
0
class TestZoneAttrSmartZone(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)
        self.old = self.z.smart_zone

    def test_smart_zone_read(self):
        self.assertIn(self.z.smart_zone, [True, False])

    def test_smart_zone_write(self):
        self.z.create()
        old = self.z.smart_zone
        self.z.smart_zone = True
        self.assertTrue(self.z.smart_zone)
        self.z.smart_zone = False
        self.assertFalse(self.z.smart_zone)
        self.z.smart_zone = old

    def test_smart_zone_write_invalid(self):
        with self.assertRaises(ValueError) as e:
            self.z.smart_zone = "asdf"
        self.assertEqual("Smart zone value must be of typr bool, True/False",
                         str(e.exception))

    def tearDown(self) -> None:
        self.z.smart_zone = self.old
        self.v.delete()
class TestZoneAttrActivedbZoneCount(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_activedb_zone_count_read(self):
        self.z.create()
        zoneset = ZoneSet(self.switch, "test_zoneset", self.id)
        zoneset.create()
        self.z.add_members([{"fcid": "0x123456"}])
        zoneset.add_members([self.z])
        zoneset.activate(True)
        if zoneset.is_active():
            self.assertIsNotNone(self.z.activedb_zone_count)
        else:
            self.assertIsNone(self.z.activedb_zone_count)

    def test_activedb_zone_count_read_nonexisting(self):
        self.assertIsNone(self.z.activedb_zone_count)

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

    def tearDown(self) -> None:
        self.v.delete()
Ejemplo n.º 28
0
 def test_default_zone_write(self):
     v = Vsan(self.switch, self.vsan_id[2])
     v.create()
     z = Zone(self.switch, v, self.zone_name[2])
     z.create()
     old = z.default_zone
     z.default_zone = DENY
     self.assertEqual(DENY, z.default_zone)
     z.default_zone = PERMIT
     self.assertEqual(PERMIT, z.default_zone)
     z.default_zone = old
     v.delete()
Ejemplo n.º 29
0
 def test_mode_write(self):
     v = Vsan(self.switch,self.vsan_id[2])
     v.create()
     z = Zone(self.switch, v, self.zone_name[2])
     z.create()
     old = z.mode
     z.mode = BASIC
     self.assertEqual(BASIC,z.mode)
     z.mode = ENHANCED
     self.assertEqual(ENHANCED,z.mode)
     z.mode = old
     v.delete()
 def test_smart_zone_write(self):
     v = Vsan(self.switch, self.vsan_id[2])
     v.create()
     z = Zone(self.switch, v, self.zone_name[2])
     z.create()
     old = z.smart_zone
     z.smart_zone = True
     self.assertEqual('enabled', z.smart_zone)
     z.smart_zone = False
     self.assertEqual('disabled', z.smart_zone)
     z.smart_zone = old
     v.delete()