Revision 5fa0375e qa/qa_instance.py

b/qa/qa_instance.py
35 35
import qa_error
36 36

  
37 37
from qa_utils import AssertIn, AssertCommand, AssertEqual
38
from qa_utils import InstanceCheck, INST_DOWN, INST_UP, FIRST_ARG, RETURN_VALUE
38 39

  
39 40

  
40 41
def _GetDiskStatePath(disk):
......
72 73
    raise
73 74

  
74 75

  
76
@InstanceCheck(None, INST_UP, RETURN_VALUE)
75 77
def TestInstanceAddWithPlainDisk(node):
76 78
  """gnt-instance add -t plain"""
77 79
  return _DiskTest(node["primary"], "plain")
78 80

  
79 81

  
82
@InstanceCheck(None, INST_UP, RETURN_VALUE)
80 83
def TestInstanceAddWithDrbdDisk(node, node2):
81 84
  """gnt-instance add -t drbd"""
82 85
  return _DiskTest("%s:%s" % (node["primary"], node2["primary"]),
83 86
                   "drbd")
84 87

  
85 88

  
89
@InstanceCheck(None, INST_DOWN, FIRST_ARG)
86 90
def TestInstanceRemove(instance):
87 91
  """gnt-instance remove"""
88 92
  AssertCommand(["gnt-instance", "remove", "-f", instance["name"]])
......
90 94
  qa_config.ReleaseInstance(instance)
91 95

  
92 96

  
97
@InstanceCheck(INST_DOWN, INST_UP, FIRST_ARG)
93 98
def TestInstanceStartup(instance):
94 99
  """gnt-instance startup"""
95 100
  AssertCommand(["gnt-instance", "startup", instance["name"]])
96 101

  
97 102

  
103
@InstanceCheck(INST_UP, INST_DOWN, FIRST_ARG)
98 104
def TestInstanceShutdown(instance):
99 105
  """gnt-instance shutdown"""
100 106
  AssertCommand(["gnt-instance", "shutdown", instance["name"]])
101 107

  
102 108

  
109
@InstanceCheck(INST_UP, INST_UP, FIRST_ARG)
103 110
def TestInstanceReboot(instance):
104 111
  """gnt-instance reboot"""
105 112
  options = qa_config.get("options", {})
......
109 116
    AssertCommand(["gnt-instance", "reboot", "--type=%s" % rtype, name])
110 117

  
111 118
  AssertCommand(["gnt-instance", "shutdown", name])
119
  qa_utils.RunInstanceCheck(instance, False)
112 120
  AssertCommand(["gnt-instance", "reboot", name])
113 121

  
114 122
  master = qa_config.GetMasterNode()
......
118 126
  AssertEqual(result_output.strip(), constants.INSTST_RUNNING)
119 127

  
120 128

  
129
@InstanceCheck(INST_DOWN, INST_DOWN, FIRST_ARG)
121 130
def TestInstanceReinstall(instance):
122 131
  """gnt-instance reinstall"""
123 132
  AssertCommand(["gnt-instance", "reinstall", "-f", instance["name"]])
......
147 156
           _ReadSsconfInstanceList())
148 157

  
149 158

  
159
@InstanceCheck(INST_UP, INST_UP, FIRST_ARG)
150 160
def TestInstanceRenameAndBack(rename_source, rename_target):
151 161
  """gnt-instance rename
152 162

  
......
155 165

  
156 166
  """
157 167
  _CheckSsconfInstanceList(rename_source)
168

  
158 169
  # first do a rename to a different actual name, expecting it to fail
159 170
  qa_utils.AddToEtcHosts(["meeeeh-not-exists", rename_target])
160 171
  try:
......
163 174
    _CheckSsconfInstanceList(rename_source)
164 175
  finally:
165 176
    qa_utils.RemoveFromEtcHosts(["meeeeh-not-exists", rename_target])
177

  
166 178
  # and now rename instance to rename_target...
167 179
  AssertCommand(["gnt-instance", "rename", rename_source, rename_target])
168 180
  _CheckSsconfInstanceList(rename_target)
181
  qa_utils.RunInstanceCheck(rename_source, False)
182
  qa_utils.RunInstanceCheck(rename_target, True)
183

  
169 184
  # and back
170 185
  AssertCommand(["gnt-instance", "rename", rename_target, rename_source])
171 186
  _CheckSsconfInstanceList(rename_source)
187
  qa_utils.RunInstanceCheck(rename_target, False)
172 188

  
173 189

  
190
@InstanceCheck(INST_UP, INST_UP, FIRST_ARG)
174 191
def TestInstanceFailover(instance):
175 192
  """gnt-instance failover"""
176 193
  cmd = ["gnt-instance", "failover", "--force", instance["name"]]
194

  
177 195
  # failover ...
178 196
  AssertCommand(cmd)
197
  qa_utils.RunInstanceCheck(instance, True)
198

  
179 199
  # ... and back
180 200
  AssertCommand(cmd)
181 201

  
182 202

  
203
@InstanceCheck(INST_UP, INST_UP, FIRST_ARG)
183 204
def TestInstanceMigrate(instance):
184 205
  """gnt-instance migrate"""
185 206
  cmd = ["gnt-instance", "migrate", "--force", instance["name"]]
207

  
186 208
  # migrate ...
187 209
  AssertCommand(cmd)
210
  qa_utils.RunInstanceCheck(instance, True)
211

  
188 212
  # ... and back
189 213
  AssertCommand(cmd)
214

  
215
  # TODO: Split into multiple tests
190 216
  AssertCommand(["gnt-instance", "shutdown", instance["name"]])
217
  qa_utils.RunInstanceCheck(instance, False)
191 218
  AssertCommand(cmd, fail=True)
192 219
  AssertCommand(["gnt-instance", "migrate", "--force", "--allow-failover",
193 220
                 instance["name"]])
194 221
  AssertCommand(["gnt-instance", "start", instance["name"]])
195 222
  AssertCommand(cmd)
223
  qa_utils.RunInstanceCheck(instance, True)
224

  
196 225
  AssertCommand(["gnt-instance", "modify", "-B",
197 226
                 ("%s=%s" %
198 227
                  (constants.BE_ALWAYS_FAILOVER, constants.VALUE_TRUE)),
199 228
                 instance["name"]])
229

  
200 230
  AssertCommand(cmd, fail=True)
231
  qa_utils.RunInstanceCheck(instance, True)
201 232
  AssertCommand(["gnt-instance", "migrate", "--force", "--allow-failover",
202 233
                 instance["name"]])
234

  
235
  # TODO: Verify whether the default value is restored here (not hardcoded)
203 236
  AssertCommand(["gnt-instance", "modify", "-B",
204 237
                 ("%s=%s" %
205 238
                  (constants.BE_ALWAYS_FAILOVER, constants.VALUE_FALSE)),
206 239
                 instance["name"]])
240

  
207 241
  AssertCommand(cmd)
242
  qa_utils.RunInstanceCheck(instance, True)
208 243

  
209 244

  
210 245
def TestInstanceInfo(instance):
......
212 247
  AssertCommand(["gnt-instance", "info", instance["name"]])
213 248

  
214 249

  
250
@InstanceCheck(INST_UP, INST_UP, FIRST_ARG)
215 251
def TestInstanceModify(instance):
216 252
  """gnt-instance modify"""
217 253
  # Assume /sbin/init exists on all systems
......
257 293
    AssertCommand(["gnt-instance", "modify", arg, instance["name"]], fail=True)
258 294

  
259 295

  
296
@InstanceCheck(INST_DOWN, INST_DOWN, FIRST_ARG)
260 297
def TestInstanceStoppedModify(instance):
261 298
  """gnt-instance modify (stopped instance)"""
262 299
  name = instance["name"]
......
271 308
  AssertCommand(["gnt-instance", "modify", "--online", name])
272 309

  
273 310

  
311
@InstanceCheck(INST_DOWN, INST_DOWN, FIRST_ARG)
274 312
def TestInstanceConvertDisk(instance, snode):
275 313
  """gnt-instance modify -t"""
276 314
  name = instance["name"]
......
279 317
                 "-n", snode["primary"], name])
280 318

  
281 319

  
320
@InstanceCheck(INST_DOWN, INST_DOWN, FIRST_ARG)
282 321
def TestInstanceGrowDisk(instance):
283 322
  """gnt-instance grow-disk"""
284 323
  name = instance["name"]
......
311 350
  qa_utils.GenericQueryFieldsTest("gnt-instance", query.INSTANCE_FIELDS.keys())
312 351

  
313 352

  
353
@InstanceCheck(INST_UP, INST_UP, FIRST_ARG)
314 354
def TestInstanceConsole(instance):
315 355
  """gnt-instance console"""
316 356
  AssertCommand(["gnt-instance", "console", "--show-cmd", instance["name"]])
317 357

  
318 358

  
359
@InstanceCheck(INST_UP, INST_UP, FIRST_ARG)
319 360
def TestReplaceDisks(instance, pnode, snode, othernode):
320 361
  """gnt-instance replace-disks"""
321 362
  # pylint: disable=W0613
......
344 385
  AssertCommand(["gnt-instance", "start", instance["name"]])
345 386

  
346 387

  
388
@InstanceCheck(INST_UP, INST_UP, FIRST_ARG)
347 389
def TestInstanceExport(instance, node):
348 390
  """gnt-backup export -n ..."""
349 391
  name = instance["name"]
......
351 393
  return qa_utils.ResolveInstanceName(name)
352 394

  
353 395

  
396
@InstanceCheck(INST_UP, None, FIRST_ARG)
354 397
def TestInstanceExportWithRemove(instance, node):
355 398
  """gnt-backup export --remove-instance"""
356 399
  AssertCommand(["gnt-backup", "export", "-n", node["primary"],
357 400
                 "--remove-instance", instance["name"]])
358 401

  
359 402

  
403
@InstanceCheck(INST_UP, INST_UP, FIRST_ARG)
360 404
def TestInstanceExportNoTarget(instance):
361 405
  """gnt-backup export (without target node, should fail)"""
362 406
  AssertCommand(["gnt-backup", "export", instance["name"]], fail=True)
363 407

  
364 408

  
365
def TestInstanceImport(node, newinst, expnode, name):
409
@InstanceCheck(None, INST_UP, FIRST_ARG)
410
def TestInstanceImport(newinst, node, expnode, name):
366 411
  """gnt-backup import"""
367 412
  cmd = (["gnt-backup", "import",
368 413
          "--disk-template=plain",

Also available in: Unified diff