Revision aa104b5e qa/qa_cluster.py

b/qa/qa_cluster.py
1133 1133
    failovermaster.Release()
1134 1134

  
1135 1135

  
1136
def TestUpgrade():
1137
  """Test gnt-cluster upgrade.
1138

  
1139
  This tests the 'gnt-cluster upgrade' command by flipping
1140
  between the current and a different version of Ganeti.
1141
  To also recover subtile points in the configuration up/down
1142
  grades, instances are left over both upgrades.
1143

  
1144
  """
1145
  this_version = qa_config.get("dir-version")
1146
  other_version = qa_config.get("other-dir-version")
1147
  if this_version is None or other_version is None:
1148
    print qa_utils.FormatInfo("Test not run, as versions not specified")
1149
    return
1150

  
1151
  inst_creates = []
1152
  upgrade_instances = qa_config.get("upgrade-instances", [])
1153
  live_instances = []
1154
  for (test_name, templ, cf, n) in qa_instance.available_instance_tests:
1155
    if (qa_config.TestEnabled(test_name) and
1156
        qa_config.IsTemplateSupported(templ) and
1157
        templ in upgrade_instances):
1158
      inst_creates.append((cf, n))
1159
      break
1160
  
1161
  for (cf, n) in inst_creates:
1162
    nodes = qa_config.AcquireManyNodes(n)
1163
    live_instances.append(cf(nodes))
1164

  
1165
  AssertCommand(["gnt-cluster", "upgrade", "--to", other_version])
1166
  AssertCommand(["gnt-cluster", "verify"])
1167

  
1168
  for instance in live_instances:
1169
    qa_instance.TestInstanceRemove(instance)
1170
    instance.Release()
1171
  live_instances = []
1172
  for (cf, n) in inst_creates:
1173
    nodes = qa_config.AcquireManyNodes(n)
1174
    live_instances.append(cf(nodes))
1175

  
1176
  AssertCommand(["gnt-cluster", "upgrade", "--to", this_version])
1177
  AssertCommand(["gnt-cluster", "verify"])
1178

  
1179
  for instance in live_instances:
1180
    qa_instance.TestInstanceRemove(instance)
1181
    instance.Release()
1182

  
1136 1183
def _NodeQueueDrainFile(node):
1137 1184
  """Returns path to queue drain file for a node.
1138 1185

  

Also available in: Unified diff