def test_create_name_max(self): v = Vsan(self.switch, self.vsan_id[5]) v.create() name = self.zone_name_max z = Zone(self.switch, v, name) z.create() self.assertEqual(name, z.name) z.delete() v.delete()
def test_create(self): v = Vsan(self.switch, self.vsan_id[1]) v.create() zonename = self.zone_name[0] z = Zone(self.switch, v, zonename) z.create() self.assertEqual(zonename, z.name) z.delete() v.delete()
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_locked_write_error(self): v = Vsan(self.switch, self.vsan_id[2]) v.create() z = Zone(self.switch, v, self.zone_name[2]) z.create() with self.assertRaises(AttributeError) as e: z.locked = "asdf" self.assertEqual('can\'t set attribute', str(e.exception)) v.delete()
def test_create_name_beyondmax(self): name = "zo123456789123456789123456789123456789123456789123456789123456789" z = Zone(self.switch, name, self.id) with self.assertRaises(CLIError) as e: z.create() self.assertEqual( 'The command " zone name ' + str(name) + " vsan " + str(self.id) + ' " gave the error " % String exceeded max length of (64) ".', str(e.exception), )
def test_create_name_invalid(self): name = "zone1*!" z = Zone(self.switch, name, self.id) with self.assertRaises(CLIError) as e: z.create() self.assertEqual( 'The command " zone name ' + str(name) + " vsan " + str(self.id) + ' " gave the error " Illegal character present in the name ".', str(e.exception), )
def test_mode_write_invalid(self): v = Vsan(self.switch,self.vsan_id[3]) v.create() z = Zone(self.switch, v, self.zone_name[3]) z.create() mode = 'asdf' with self.assertRaises(InvalidZoneMode) as e: z.mode = mode self.assertEqual('InvalidZoneMode: Invalid zone mode '+str(mode)+' . Valid values are: basic,enhanced',str(e.exception)) v.delete()
def test_add_members_typeerror(self): v = Vsan(self.switch, self.vsan_id[3]) v.create() zone = Zone(self.switch, v, self.zone_name[5]) zone.create() zoneset = ZoneSet(self.switch, v, self.zoneset_name[4]) with self.assertRaises(AttributeError) as e: zoneset.add_members(zone.name) self.assertEqual("'str' object has no attribute 'name'",str(e.exception)) v.delete()
def test_create_name_invalidfirstchar(self): name = "1zone" z = Zone(self.switch, name, self.id) with self.assertRaises(CLIError) as e: z.create() self.assertEqual( 'The command " zone name ' + str(name) + " vsan " + str(self.id) + ' " gave the error " Illegal first character (name must start with a letter) ".', str(e.exception), )
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()
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_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_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()
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_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()
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()
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_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()
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_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_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_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_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_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_remove_members_nonexisting(self): i = self.vsan_id[0] v = Vsan(self.switch, i) v.create() zone = Zone(self.switch, v, self.zone_name[0]) zone.create() zoneset = ZoneSet(self.switch, v, self.zoneset_name[0]) self.assertIsNone(zoneset.members) with self.assertRaises(CLIError) as e: zoneset.remove_members([zone]) self.assertEqual('The command " zoneset name '+str(zoneset.name)+' vsan '+str(i)+' ; no member '+str(zone.name)+' " gave the error " Zone not present ".',str(e.exception)) zone.delete() zoneset.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()
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_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()