Revision 01e2ce3a test/ganeti.bdev_unittest.py

b/test/ganeti.bdev_unittest.py
61 61
    """Test drbdsetup show parser creation"""
62 62
    bdev.DRBD8._GetShowParser()
63 63

  
64
  def testParserBoth(self):
64
  def testParserBoth80(self):
65 65
    """Test drbdsetup show parser for disk and network"""
66 66
    data = self._ReadTestData("bdev-both.txt")
67 67
    result = bdev.DRBD8._GetDevInfo(data)
......
70 70
                    "Wrong local disk info")
71 71
    self.failUnless(self._has_net(result, ("192.168.1.1", 11000),
72 72
                                  ("192.168.1.2", 11000)),
73
                    "Wrong network info")
73
                    "Wrong network info (8.0.x)")
74

  
75
  def testParserBoth83(self):
76
    """Test drbdsetup show parser for disk and network"""
77
    data = self._ReadTestData("bdev-8.3-both.txt")
78
    result = bdev.DRBD8._GetDevInfo(data)
79
    self.failUnless(self._has_disk(result, "/dev/xenvg/test.data",
80
                                   "/dev/xenvg/test.meta"),
81
                    "Wrong local disk info")
82
    self.failUnless(self._has_net(result, ("192.168.1.1", 11000),
83
                                  ("192.168.1.2", 11000)),
84
                    "Wrong network info (8.2.x)")
74 85

  
75 86
  def testParserNet(self):
76 87
    """Test drbdsetup show parser for disk and network"""
......
103 114
    """Read in txt data"""
104 115
    testutils.GanetiTestCase.setUp(self)
105 116
    proc_data = self._TestDataFilename("proc_drbd8.txt")
117
    proc83_data = self._TestDataFilename("proc_drbd83.txt")
106 118
    self.proc_data = bdev.DRBD8._GetProcData(filename=proc_data)
119
    self.proc83_data = bdev.DRBD8._GetProcData(filename=proc83_data)
107 120
    self.mass_data = bdev.DRBD8._MassageProcData(self.proc_data)
121
    self.mass83_data = bdev.DRBD8._MassageProcData(self.proc83_data)
108 122

  
109 123
  def testIOErrors(self):
110 124
    """Test handling of errors while reading the proc file."""
......
116 130
  def testMinorNotFound(self):
117 131
    """Test not-found-minor in /proc"""
118 132
    self.failUnless(9 not in self.mass_data)
133
    self.failUnless(9 not in self.mass83_data)
119 134

  
120 135
  def testLineNotMatch(self):
121 136
    """Test wrong line passed to DRBD8Status"""
......
123 138

  
124 139
  def testMinor0(self):
125 140
    """Test connected, primary device"""
126
    stats = bdev.DRBD8Status(self.mass_data[0])
127
    self.failUnless(stats.is_in_use)
128
    self.failUnless(stats.is_connected and stats.is_primary and
129
                    stats.peer_secondary and stats.is_disk_uptodate)
141
    for data in [self.mass_data, self.mass83_data]:
142
      stats = bdev.DRBD8Status(data[0])
143
      self.failUnless(stats.is_in_use)
144
      self.failUnless(stats.is_connected and stats.is_primary and
145
                      stats.peer_secondary and stats.is_disk_uptodate)
130 146

  
131 147
  def testMinor1(self):
132 148
    """Test connected, secondary device"""
133
    stats = bdev.DRBD8Status(self.mass_data[1])
134
    self.failUnless(stats.is_in_use)
135
    self.failUnless(stats.is_connected and stats.is_secondary and
136
                    stats.peer_primary and stats.is_disk_uptodate)
149
    for data in [self.mass_data, self.mass83_data]:
150
      stats = bdev.DRBD8Status(data[1])
151
      self.failUnless(stats.is_in_use)
152
      self.failUnless(stats.is_connected and stats.is_secondary and
153
                      stats.peer_primary and stats.is_disk_uptodate)
137 154

  
138 155
  def testMinor2(self):
139 156
    """Test unconfigured device"""
140
    stats = bdev.DRBD8Status(self.mass_data[2])
141
    self.failIf(stats.is_in_use)
157
    for data in [self.mass_data, self.mass83_data]:
158
      stats = bdev.DRBD8Status(data[2])
159
      self.failIf(stats.is_in_use)
142 160

  
143 161
  def testMinor4(self):
144 162
    """Test WFconn device"""
145
    stats = bdev.DRBD8Status(self.mass_data[4])
146
    self.failUnless(stats.is_in_use)
147
    self.failUnless(stats.is_wfconn and stats.is_primary and
148
                    stats.rrole == 'Unknown' and
149
                    stats.is_disk_uptodate)
163
    for data in [self.mass_data, self.mass83_data]:
164
      stats = bdev.DRBD8Status(data[4])
165
      self.failUnless(stats.is_in_use)
166
      self.failUnless(stats.is_wfconn and stats.is_primary and
167
                      stats.rrole == 'Unknown' and
168
                      stats.is_disk_uptodate)
150 169

  
151 170
  def testMinor6(self):
152 171
    """Test diskless device"""
153
    stats = bdev.DRBD8Status(self.mass_data[6])
154
    self.failUnless(stats.is_in_use)
155
    self.failUnless(stats.is_connected and stats.is_secondary and
156
                    stats.peer_primary and stats.is_diskless)
172
    for data in [self.mass_data, self.mass83_data]:
173
      stats = bdev.DRBD8Status(data[6])
174
      self.failUnless(stats.is_in_use)
175
      self.failUnless(stats.is_connected and stats.is_secondary and
176
                      stats.peer_primary and stats.is_diskless)
157 177

  
158 178
  def testMinor8(self):
159 179
    """Test standalone device"""
160
    stats = bdev.DRBD8Status(self.mass_data[8])
161
    self.failUnless(stats.is_in_use)
162
    self.failUnless(stats.is_standalone and
163
                    stats.rrole == 'Unknown' and
164
                    stats.is_disk_uptodate)
180
    for data in [self.mass_data, self.mass83_data]:
181
      stats = bdev.DRBD8Status(data[8])
182
      self.failUnless(stats.is_in_use)
183
      self.failUnless(stats.is_standalone and
184
                      stats.rrole == 'Unknown' and
185
                      stats.is_disk_uptodate)
165 186

  
166 187
if __name__ == '__main__':
167 188
  unittest.main()

Also available in: Unified diff