Revision 11064155 test/py/ganeti.utils.lvm_unittest.py

b/test/py/ganeti.utils.lvm_unittest.py
43 43
  _EPS = 1e-4
44 44

  
45 45
  def testOnePv(self):
46
    errmsgs = utils.LvmExclusiveCheckNodePvs([self._MED_PV])
46
    (errmsgs, (small, big)) = utils.LvmExclusiveCheckNodePvs([self._MED_PV])
47 47
    self.assertFalse(errmsgs)
48
    self.assertEqual(small, self._MED_PV.size)
49
    self.assertEqual(big, self._MED_PV.size)
48 50

  
49 51
  def testEqualPvs(self):
50
    errmsgs = utils.LvmExclusiveCheckNodePvs([self._MED_PV] * 2)
52
    (errmsgs, (small, big)) = utils.LvmExclusiveCheckNodePvs(
53
      [self._MED_PV] * 2)
51 54
    self.assertFalse(errmsgs)
52
    errmsgs = utils.LvmExclusiveCheckNodePvs([self._SMALL_PV] * 3)
55
    self.assertEqual(small, self._MED_PV.size)
56
    self.assertEqual(big, self._MED_PV.size)
57
    (errmsgs, (small, big)) = utils.LvmExclusiveCheckNodePvs(
58
      [self._SMALL_PV] * 3)
53 59
    self.assertFalse(errmsgs)
60
    self.assertEqual(small, self._SMALL_PV.size)
61
    self.assertEqual(big, self._SMALL_PV.size)
54 62

  
55 63
  def testTooDifferentPvs(self):
56
    errmsgs = utils.LvmExclusiveCheckNodePvs([self._MED_PV, self._BIG_PV])
64
    (errmsgs, (small, big)) = utils.LvmExclusiveCheckNodePvs(
65
      [self._MED_PV, self._BIG_PV])
57 66
    self.assertEqual(len(errmsgs), 1)
58
    errmsgs = utils.LvmExclusiveCheckNodePvs([self._MED_PV, self._SMALL_PV])
67
    self.assertEqual(small, self._MED_PV.size)
68
    self.assertEqual(big, self._BIG_PV.size)
69
    (errmsgs, (small, big)) = utils.LvmExclusiveCheckNodePvs(
70
      [self._MED_PV, self._SMALL_PV])
59 71
    self.assertEqual(len(errmsgs), 1)
72
    self.assertEqual(small, self._SMALL_PV.size)
73
    self.assertEqual(big, self._MED_PV.size)
60 74

  
61 75
  def testBoundarySizeCases(self):
62 76
    medpv1 = self._MED_PV.Copy()
63 77
    medpv2 = self._MED_PV.Copy()
64
    errmsgs = utils.LvmExclusiveCheckNodePvs([medpv1, medpv2, self._MED_PV])
78
    (errmsgs, (small, big)) = utils.LvmExclusiveCheckNodePvs(
79
      [medpv1, medpv2, self._MED_PV])
65 80
    self.assertFalse(errmsgs)
81
    self.assertEqual(small, self._MED_PV.size)
82
    self.assertEqual(big, self._MED_PV.size)
66 83
    # Just within the margins
67 84
    medpv1.size = self._MED_PV.size * (1 - constants.PART_MARGIN + self._EPS)
68 85
    medpv2.size = self._MED_PV.size * (1 + constants.PART_MARGIN - self._EPS)
69
    errmsgs = utils.LvmExclusiveCheckNodePvs([medpv1, medpv2, self._MED_PV])
86
    (errmsgs, (small, big)) = utils.LvmExclusiveCheckNodePvs(
87
      [medpv1, medpv2, self._MED_PV])
70 88
    self.assertFalse(errmsgs)
89
    self.assertEqual(small, medpv1.size)
90
    self.assertEqual(big, medpv2.size)
71 91
    # Just outside the margins
72 92
    medpv1.size = self._MED_PV.size * (1 - constants.PART_MARGIN - self._EPS)
73 93
    medpv2.size = self._MED_PV.size * (1 + constants.PART_MARGIN)
74
    errmsgs = utils.LvmExclusiveCheckNodePvs([medpv1, medpv2, self._MED_PV])
94
    (errmsgs, (small, big)) = utils.LvmExclusiveCheckNodePvs(
95
      [medpv1, medpv2, self._MED_PV])
75 96
    self.assertTrue(errmsgs)
97
    self.assertEqual(small, medpv1.size)
98
    self.assertEqual(big, medpv2.size)
76 99
    medpv1.size = self._MED_PV.size * (1 - constants.PART_MARGIN)
77 100
    medpv2.size = self._MED_PV.size * (1 + constants.PART_MARGIN + self._EPS)
78
    errmsgs = utils.LvmExclusiveCheckNodePvs([medpv1, medpv2, self._MED_PV])
101
    (errmsgs, (small, big)) = utils.LvmExclusiveCheckNodePvs(
102
      [medpv1, medpv2, self._MED_PV])
79 103
    self.assertTrue(errmsgs)
104
    self.assertEqual(small, medpv1.size)
105
    self.assertEqual(big, medpv2.size)
80 106

  
81 107

  
82 108
if __name__ == "__main__":

Also available in: Unified diff