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()
class TestZoneSetAttrName(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_name_read(self): self.zoneset.create() self.assertEqual("test_zoneset", self.zoneset.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.zoneset.name # self.assertIn("Zoneset not present", str(c.exception)) def test_name_write_error(self): with self.assertRaises(AttributeError) as e: self.zoneset.name = "asdf" self.assertEqual("can't set attribute", str(e.exception)) def tearDown(self) -> None: self.v.delete()
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()
def test_delete(self): v = Vsan(self.switch, self.vsan_id[0]) v.create() z = ZoneSet(self.switch, v, self.zoneset_name[0]) z.create() z.delete() self.assertIsNone(z.name) v.delete()
def test_create_nonexistingvsan(self): self.v.delete() self.assertIsNone(self.v.id) z = ZoneSet(self.switch, "test_zoneset", self.id) with self.assertRaises(CLIError) as e: z.create() self.assertIn("VSAN " + str(self.id) + " is not configured", str(e.exception))
def test_name_read(self): v = Vsan(self.switch, self.vsan_id[0]) v.create() name = self.zoneset_name[0] z = ZoneSet(self.switch, v, name) z.create() self.assertEqual(name, z.name) z.delete() v.delete()
def test_vsan_read(self): i = self.vsan_id[0] v = Vsan(self.switch, i) v.create() z = ZoneSet(self.switch, v, self.zoneset_name[0]) z.create() self.assertEqual(i, z.vsan.id) z.delete() v.delete()
def test_vsan_write_error(self): v = Vsan(self.switch, self.vsan_id[2]) v.create() z = ZoneSet(self.switch, v, self.zoneset_name[2]) z.create() with self.assertRaises(AttributeError) as e: z.vsan = 5 self.assertEqual('can\'t set attribute', str(e.exception)) z.delete() v.delete()
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_create_name_invalidfirstchar(self): i = self.vsan_id[3] v = Vsan(self.switch, i) v.create() invalid = self.zoneset_name_invalidfirstchar z = ZoneSet(self.switch, v, invalid) with self.assertRaises(CLIError) as e: z.create() self.assertEqual("The command \" zoneset name "+str(invalid)+" vsan "+str(i)+" \" gave the error \" Illegal first character (name must start with a letter) \".",str(e.exception)) v.delete()
def test_create_name_beyondmax(self): name = "zo123456789123456789123456789123456789123456789123456789123456789" z = ZoneSet(self.switch, name, self.id) with self.assertRaises(CLIError) as e: z.create() self.assertEqual( 'The command " zoneset name ' + name + " vsan " + str(self.id) + ' " gave the error " % String exceeded max length of (64) ".', str(e.exception), )
def test_create_name_invalid(self): i = self.vsan_id[2] v = Vsan(self.switch, i) v.create() invalid = self.zoneset_name_invalid z = ZoneSet(self.switch, v, invalid) with self.assertRaises(CLIError) as e: z.create() self.assertEqual("The command \" zoneset name "+str(invalid)+" vsan "+str(i)+" \" gave the error \" Illegal character present in the name \".",str(e.exception)) v.delete()
def test_create_name_invalidfirstchar(self): invalid = "1zoneset" z = ZoneSet(self.switch, invalid, self.id) with self.assertRaises(CLIError) as e: z.create() self.assertEqual( 'The command " zoneset name ' + str(invalid) + " vsan " + str(self.id) + ' " gave the error " Illegal first character (name must start with a letter) ".', str(e.exception), )
def test_create_name_invalid(self): invalid = "zoneset1*!" z = ZoneSet(self.switch, invalid, self.id) with self.assertRaises(CLIError) as e: z.create() self.assertEqual( 'The command " zoneset name ' + str(invalid) + " vsan " + str(self.id) + ' " gave the error " Illegal character present in the name ".', str(e.exception), )
def test_create_name_beyondmax(self): i = self.vsan_id[4] v = Vsan(self.switch, i) v.create() name = self.zoneset_name_beyondmax z = ZoneSet(self.switch, v, name) with self.assertRaises(CLIError) as e: z.create() self.maxDiff = 1000 self.assertEqual("The command \" zoneset name " + name + " vsan "+str(i)+" \" gave the error \" % String exceeded max length of (64) \".",str(e.exception)) 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_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)
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_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 test_activate_zonehasnomembers(self): v = Vsan(self.switch, self.vsan_id[1]) v.create() zoneset = ZoneSet(self.switch, v, self.zoneset_name[1] ) zoneset.create() zone = Zone(self.switch, v, self.zone_name[1]) zone.create() zoneset.add_members([zone]) zoneset.activate(True) # not activated since zone has no members self.assertFalse(zoneset.is_active()) zone.delete() zoneset.delete() v.delete()
def test_create_same_name(self): v7 = Vsan(self.switch, self.vsan_id[7]) v7.create() v8 = Vsan(self.switch, self.vsan_id[8]) v8.create() name = self.zoneset_name[2] z7 = ZoneSet(self.switch, v7, name) z7.create() self.assertEqual(name, z7.name) z8 = ZoneSet(self.switch, v8, name) z8.create() self.assertEqual(name, z8.name) v7.delete() v8.delete()
def test_create_max(self): i = self.vsan_id[6] v = Vsan(self.switch, i) v.create() # success case for i in self.zoneset_max_range: name = "zone"+str(i) z = ZoneSet(self.switch, v, name) z.create() self.assertEqual(name, z.name) # failure case name = "zs" z = ZoneSet(self.switch, v, name) with self.assertRaises(CLIError) as e: z.create() self.assertEqual('The command " zoneset name '+str(name)+' vsan '+str(i)+' " gave the error " cannot create the zoneset; maximum possible number of zonesets is already configured ".',str(e.exception)) v.delete()
class TestZoneSetAttrActiveMembers(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 = ZoneSet(self.switch, "test_zoneset", self.id) self.z.create() 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_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("Zoneset 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 TestZoneSetAddMembers(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) self.zoneset.create() # def test_add_members_nonexisting(self): # zone = Zone(self.switch, "test_zone", self.id) # # TODO: Was working in 8.4.2a not in 8.4.2b (CSCvv59174) # with self.assertRaises(CLIError) as e: # self.zoneset.add_members([zone]) # self.assertIn("Zone not present", str(e.exception)) 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_typeerror(self): with self.assertRaises(AttributeError) as e: self.zoneset.add_members("test_zone") self.assertEqual("'str' object has no attribute 'name'", str(e.exception)) def tearDown(self) -> None: self.v.delete()
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()
class TestZoneSetAttrMembers(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) self.zoneset.create() def test_members_read(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_members_read_nonexisting(self): self.assertEqual({}, self.zoneset.members) def test_members_write_error(self): with self.assertRaises(AttributeError) as e: self.zoneset.members = "asdf" self.assertEqual("can't set attribute", str(e.exception)) def tearDown(self) -> None: self.v.delete()
{ "symbolic-nodename": "testsymnode" }, { "fcalias": "somefcalias" }, ] # Adding members to zone z.add_members(memlist) # Instantiating ZoneSet object zoneset = ZoneSet(sw, "zoneset1", v.id) # Creating zoneset zoneset.create() # Add members to zoneset zoneset.add_members([z]) # Activating zoneset zoneset.activate(True) # Display zoneset information print("Zoneset name: " + zoneset.name) print("Vsan id: " + str(zoneset.vsan.id)) print("Zoneset members: " + str(zoneset.members)) print("Activation: " + zonese.is_active()) # Removing members from zoneset zoneset.remove_members([z])
def test_create(self): z = ZoneSet(self.switch, "test_zoneset", self.id) z.create() self.assertEqual("test_zoneset", z.name)
def test_create_name_max(self): name = "z123456789123456789123456789123456789123456789123456789123456789" z = ZoneSet(self.switch, name, self.id) z.create() self.assertEqual(name, z.name)
def test_fulldb_zoneset_count_read(self): zs = ZoneSet(self.switch, "test_zone", self.id) zs.create() log.debug("Full DB Zoneset Count : " + str(self.z.fulldb_zoneset_count)) self.assertEqual(1, self.z.fulldb_zoneset_count)