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()
 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_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.º 4
0
 def test_active_members_read(self):
     self.skipTest("not a correct test case Needs to be fixed")
     zone = Zone(self.switch, "test_zone", self.id)
     zone.create()
     zone.add_members([{"fcid": "0x123456"}])
     members = [zone]
     self.z.add_members(members)
     self.z.activate(True)
     if self.z.is_active():
         self.assertEqual([m.name for m in members],
                          list(self.z.active_members.keys()))
 def test_remove_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.assertIsNotNone(z.members)
     z.remove_members(members)
     self.assertIsNone(z.members)
     z.delete()
     v.delete()
Ejemplo n.º 6
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()
 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_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()
 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_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_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_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_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()
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()
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.º 16
0
class TestZoneAddMembers(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_add_members_zone_notpresent(self):
    #     self.z.delete()
    #     members = ["10:99:88:90:76:88:99:ef"]
    #     # TODO: Was working in 8.4.2a not in 8.4.2b (CSCvv59174)
    #     #with self.assertRaises(CLIError) as e:
    #     #    self.z.add_members(members)
    #     #self.assertIn("Zone not present", str(e.exception))

    def test_add_members_dict(self):
        fc_name = ""
        for k, v in list(self.switch.interfaces.items()):
            if type(v) is Fc:
                fc_name = k
                break
        while True:
            pc_id = get_random_id(1, 256)
            if "port-channel" + str(pc_id) not in self.switch.interfaces.keys(
            ):
                break
        pc = PortChannel(self.switch, pc_id)
        d = DeviceAlias(self.switch)
        olddb = d.database
        if olddb is None:
            da_name = get_random_string()
            da_pwwn = get_random_pwwn()
        else:
            while True:
                da_name = get_random_string()
                da_pwwn = get_random_pwwn()
                if da_name not in olddb.keys() and da_pwwn not in olddb.values(
                ):
                    break
        d.create({da_name: da_pwwn})
        members = [
            {
                "pwwn": "50:08:01:60:08:9f:4d:00"
            },
            {
                "interface": fc_name
            },
            {
                "device-alias": da_name
            },
            {
                "ip-address": "1.1.1.1"
            },
            {
                "symbolic-nodename": "symbnodename"
            },
            {
                "fwwn": "11:12:13:14:15:16:17:18"
            },
            {
                "fcid": "0x123456"
            },
            {
                "interface": pc.name
            },
            {
                "fcalias": "somefcalias"
            },
        ]
        self.switch.config("fcalias name somefcalias vsan " + str(self.id))
        self.z.add_members(members)
        mem = self.z.members
        d.delete(da_name)
        log.debug("Zone Members To Add : " + str(members))
        log.debug("Zone Members Added : " + str(mem))
        self.assertEqual(len(members), len(mem))

    def test_add_members(self):
        members = []
        # print(self.switch.interfaces)
        for v in list(self.switch.interfaces.values()):
            if type(v) is Fc:
                members.append(v)
                break
        while True:
            pc_id = get_random_id(1, 256)
            if "port-channel" + str(pc_id) not in self.switch.interfaces.keys(
            ):
                break
        members.append(PortChannel(self.switch, pc_id))
        members.append("10:99:88:90:76:88:99:ef")
        self.z.add_members(members)
        log.debug("Zone Members To Add : " + str(members))
        log.debug("Zone Members Added : " + str(self.z.members))
        self.assertEqual(len(members), len(self.z.members))

    def test_add_members_error_pwwn(self):
        members = [{"pwwn": "50:08:01:60:08:9f:4d:00:01"}]
        with self.assertRaises(CLIError) as e:
            self.z.add_members(members)
        self.assertEqual(
            'The command " zone name test_zone vsan ' + str(self.id) +
            ' ; member pwwn 50:08:01:60:08:9f:4d:00:01 " gave the error " % Invalid command ".',
            str(e.exception),
        )

    def test_add_members_error_ip(self):
        members = [{"ip-address": "1.1.1.1.1"}]
        with self.assertRaises(CLIError) as e:
            self.z.add_members(members)
        self.assertEqual(
            'The command " zone name test_zone vsan ' + str(self.id) +
            ' ; member ip-address 1.1.1.1.1 " gave the error " % Invalid ip address ".',
            str(e.exception),
        )

    def test_add_members_error_fcid(self):
        members = [{"fcid": "0x123"}]
        with self.assertRaises(CLIError) as e:
            self.z.add_members(members)
        self.assertEqual(
            'The command " zone name test_zone vsan ' + str(self.id) +
            ' ; member fcid 0x123 " gave the error " Invalid FCID ".',
            str(e.exception),
        )

    def test_add_members_error_fwwn(self):
        members = [{"fwwn": "11:12:13:14:15:16:17:18:19"}]
        with self.assertRaises(CLIError) as e:
            self.z.add_members(members)
        self.assertEqual(
            'The command " zone name test_zone vsan ' + str(self.id) +
            ' ; member fwwn 11:12:13:14:15:16:17:18:19 " gave the error " % Invalid command ".',
            str(e.exception),
        )

    def test_add_members_error_fcalias(self):
        members = [{"fcalias": "somefcalias"}]
        with self.assertRaises(CLIError) as e:
            self.z.add_members(members)
        self.assertEqual(
            'The command " zone name test_zone vsan ' + str(self.id) +
            ' ; member fcalias somefcalias " gave the error " Alias not present ".',
            str(e.exception),
        )

    def tearDown(self) -> None:
        self.v.delete()
Ejemplo n.º 17
0
class TestZoneRemoveMembers(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_remove_members_dict(self):
        fc_name = ""
        for k, v in list(self.switch.interfaces.items()):
            if type(v) is Fc:
                fc_name = k
                break
        while True:
            pc_id = get_random_id(1, 256)
            if "port-channel" + str(pc_id) not in self.switch.interfaces.keys():
                break
        pc = PortChannel(self.switch, pc_id)
        d = DeviceAlias(self.switch)
        olddb = d.database
        if olddb is None:
            da_name = get_random_string()
            da_pwwn = get_random_pwwn()
        else:
            while True:
                da_name = get_random_string()
                da_pwwn = get_random_pwwn()
                if da_name not in olddb.keys() and da_pwwn not in olddb.values():
                    break
        d.create({da_name: da_pwwn})
        members = [
            {"pwwn": "50:08:01:60:08:9f:4d:00"},
            {"interface": fc_name},
            {"device-alias": da_name},
            {"ip-address": "1.1.1.1"},
            {"symbolic-nodename": "symbnodename"},
            {"fwwn": "11:12:13:14:15:16:17:18"},
            {"fcid": "0x123456"},
            {"interface": pc.name},
            {"fcalias": "somefcalias"},
        ]
        self.switch.config("fcalias name somefcalias vsan " + str(self.id))
        self.z.add_members(members)
        mem = self.z.members
        self.assertIsNotNone(self.z.members)
        self.z.remove_members(members)
        self.assertEqual([], self.z.members)
        d.delete(da_name)

    def test_remove_members_list(self):
        members = []
        for v in list(self.switch.interfaces.values()):
            if type(v) is Fc:
                members.append(v)
                break
        while True:
            pc_id = get_random_id(1, 256)
            if "port-channel" + str(pc_id) not in self.switch.interfaces.keys():
                break
        members.append(PortChannel(self.switch, pc_id))
        members.append("10:99:88:90:76:88:99:ef")
        self.z.add_members(members)
        self.assertIsNotNone(self.z.members)
        self.z.remove_members(members)
        self.assertEqual([], self.z.members)
        self.z.delete()

    def test_remove_members_notpresent(self):
        members = ["10:99:88:90:76:88:99:ef"]
        self.assertEqual([], self.z.members)
        with self.assertRaises(CLIError) as e:
            self.z.remove_members(members)
        self.assertIn("Member not present", str(e.exception))
        self.z.delete()

    def test_remove_members_zone_notpresent(self):
        self.z.delete()
        members = ["10:99:88:90:76:88:99:ef"]
        with self.assertRaises(CLIError) as e:
            self.z.remove_members(members)
        self.assertIn("Zone not present", str(e.exception))

    def tearDown(self) -> None:
        self.v.delete()
Ejemplo n.º 18
0
class TestZoneAttrMembers(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_members_read(self):
        self.z.create()
        fc_name = ""
        for k, v in list(self.switch.interfaces.items()):
            if type(v) is Fc:
                fc_name = k
                break
        while True:
            pc_id = get_random_id(1, 256)
            if "port-channel" + str(pc_id) not in self.switch.interfaces.keys(
            ):
                break
        pc = PortChannel(self.switch, pc_id)
        d = DeviceAlias(self.switch)
        olddb = d.database
        if olddb is None:
            da_name = get_random_string()
            da_pwwn = get_random_pwwn()
        else:
            while True:
                da_name = get_random_string()
                da_pwwn = get_random_pwwn()
                if da_name not in olddb.keys() and da_pwwn not in olddb.values(
                ):
                    break
        d.create({da_name: da_pwwn})
        members = [
            {
                "pwwn": "50:08:01:60:08:9f:4d:00"
            },
            {
                "interface": fc_name
            },
            {
                "device-alias": da_name
            },
            {
                "ip-address": "1.1.1.1"
            },
            {
                "symbolic-nodename": "symbnodename"
            },
            {
                "fwwn": "11:12:13:14:15:16:17:18"
            },
            {
                "fcid": "0x123456"
            },
            {
                "interface": pc.name
            },
            {
                "fcalias": "somefcalias"
            },
        ]
        self.switch.config("fcalias name somefcalias vsan " + str(self.id))
        self.z.add_members(members)
        mem = self.z.members
        d.delete(da_name)
        log.debug("Given Zone Members : " + str(members))
        log.debug("Zone Members : " + str(mem))
        self.assertEqual(len(members), len(mem))

    def test_members_read_nonexisting(self):
        # TODO: Was working in 8.4.2a not in 8.4.2b (CSCvv59174)
        # with self.assertRaises(CLIError) as c:
        #     self.z.members
        # self.assertIn("Zone not present", str(c.exception))
        self.assertEqual(self.z.members, [])

    def test_members_write_error(self):
        with self.assertRaises(AttributeError) as e:
            self.z.members = []
        self.assertEqual("can't set attribute", str(e.exception))

    def tearDown(self) -> None:
        self.v.delete()
Ejemplo n.º 19
0
    {
        "ip-address": "1.1.1.1"
    },
    {
        "symbolic-nodename": "symbnodename"
    },
    {
        "fwwn": "11:12:13:14:15:16:17:18"
    },
    {
        "fcid": "0x123456"
    },
]

# Adding members to zone
z.add_members(memlist)

# Display zone name, vsan id, members
print("Zone name: " + z.name)
print("Vsan id: " + str(z.vsan.id))
print("Zone members: " + str(z.members))

# Removing members from zone
z.remove_members(memlist)

# Deleting zone
z.delete()

# Deleting vsan
v.delete()