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()
Beispiel #3
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()
        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()
Beispiel #4
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()
Beispiel #5
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))
Beispiel #6
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()
Beispiel #7
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()
Beispiel #8
0
 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()
Beispiel #9
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)
 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()
Beispiel #11
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),
     )
 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()
Beispiel #13
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),
     )
Beispiel #14
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),
     )
 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()
Beispiel #23
0
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()
Beispiel #27
0
    {
        "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])
Beispiel #28
0
 def test_create(self):
     z = ZoneSet(self.switch, "test_zoneset", self.id)
     z.create()
     self.assertEqual("test_zoneset", z.name)
Beispiel #29
0
 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)