コード例 #1
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()
        # TODO: Was working in 8.4.2a not in 8.4.2b (CSCvv59174)
        # with self.assertRaises(CLIError) as e:
        #     self.zoneset.name
        # self.assertIn("Zoneset not present", str(e.exception))
        self.assertIsNone(self.zoneset.name)

    # def test_delete_nonexisting(self):
    #     # TODO: Was working in 8.4.2a not in 8.4.2b (CSCvv59174)
    #     with self.assertRaises(CLIError) as e:
    #         self.zoneset.delete()
    #     self.assertIn("Zoneset not present", str(e.exception))

    def tearDown(self) -> None:
        self.v.delete()
コード例 #2
0
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):
        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()
コード例 #3
0
 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))
コード例 #4
0
 def test_name_write_error(self):
     v = Vsan(self.switch, self.vsan_id[2])
     v.create()
     z = ZoneSet(self.switch, v, self.zoneset_name[2])
     with self.assertRaises(AttributeError) as e:
         z.name = "asdf"
     self.assertEqual('can\'t set attribute', str(e.exception))
     v.delete()
コード例 #5
0
 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()
コード例 #6
0
 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()
コード例 #7
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()
コード例 #8
0
 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),
     )
コード例 #9
0
 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()
コード例 #10
0
 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),
     )
コード例 #11
0
 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()
コード例 #12
0
ファイル: test_zonesetdelete.py プロジェクト: mandalde/mdssdk
 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)
コード例 #13
0
 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),
     )
コード例 #14
0
 def test_delete_nonexisting(self):
     i = self.vsan_id[1]
     v = Vsan(self.switch, i)
     v.create()
     zonesetname = self.zoneset_name[1]
     z = ZoneSet(self.switch, v, zonesetname)
     with self.assertRaises(CLIError) as e:
         z.delete()
     self.assertEqual(
         'The command " no zoneset name ' + str(zonesetname) + ' vsan ' +
         str(i) + ' " gave the error " Zoneset not present ".',
         str(e.exception))
     v.delete()
コード例 #15
0
 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)
コード例 #16
0
 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)
コード例 #17
0
    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())
コード例 #18
0
 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))
コード例 #19
0
 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()))
コード例 #20
0
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()
コード例 #21
0
 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()
コード例 #22
0
    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()
コード例 #23
0
 def test_remove_members(self):
     v = Vsan(self.switch, self.vsan_id[1])
     v.create()
     zone1 = Zone(self.switch, v, self.zone_name[1])
     zone2 = Zone(self.switch, v, self.zone_name[2])
     zone1.create()
     zone2.create()
     zoneset = ZoneSet(self.switch, v, self.zoneset_name[1])
     zoneset.add_members([zone1, zone2])
     self.assertIsNotNone(zoneset.members)
     zoneset.remove_members([zone1, zone2])
     self.assertIsNone(zoneset.members)
     zoneset.delete()
     zone1.delete()
     zone2.delete()
     v.delete()
コード例 #24
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()))
コード例 #25
0
 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()
コード例 #26
0
 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()
コード例 #27
0
  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()
コード例 #28
0
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)
        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()
コード例 #29
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()
コード例 #30
0
 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()