Extend qa to test hotplug support
[ganeti-local] / qa / qa_tags.py
index d438ab9..834f7a8 100644 (file)
@@ -1,3 +1,6 @@
+#
+#
+
 # Copyright (C) 2007 Google Inc.
 #
 # This program is free software; you can redistribute it and/or modify
 
 """
 
-from ganeti import utils
 from ganeti import constants
 
-import qa_config
-import qa_utils
 import qa_rapi
 
-from qa_utils import AssertEqual, StartSSH
+from qa_utils import AssertCommand
 
 
 _TEMP_TAG_NAMES = ["TEMP-Ganeti-QA-Tag%d" % i for i in range(3)]
@@ -37,6 +37,7 @@ _KIND_TO_COMMAND = {
   constants.TAG_CLUSTER: "gnt-cluster",
   constants.TAG_NODE: "gnt-node",
   constants.TAG_INSTANCE: "gnt-instance",
+  constants.TAG_NODEGROUP: "gnt-group",
   }
 
 
@@ -44,8 +45,6 @@ def _TestTags(kind, name):
   """Generic function for add-tags.
 
   """
-  master = qa_config.GetMasterNode()
-
   def cmdfn(subcmd):
     cmd = [_KIND_TO_COMMAND[kind], subcmd]
 
@@ -54,21 +53,13 @@ def _TestTags(kind, name):
 
     return cmd
 
-  cmd = cmdfn('add-tags') + _TEMP_TAG_NAMES
-  AssertEqual(StartSSH(master['primary'],
-                       utils.ShellQuoteArgs(cmd)).wait(), 0)
-
-  cmd = cmdfn('list-tags')
-  AssertEqual(StartSSH(master['primary'],
-                       utils.ShellQuoteArgs(cmd)).wait(), 0)
-
-  cmd = ['gnt-cluster', 'search-tags', _TEMP_TAG_RE]
-  AssertEqual(StartSSH(master['primary'],
-                       utils.ShellQuoteArgs(cmd)).wait(), 0)
-
-  cmd = cmdfn('remove-tags') + _TEMP_TAG_NAMES
-  AssertEqual(StartSSH(master['primary'],
-                       utils.ShellQuoteArgs(cmd)).wait(), 0)
+  for cmd in [
+    cmdfn("add-tags") + _TEMP_TAG_NAMES,
+    cmdfn("list-tags"),
+    ["gnt-cluster", "search-tags", _TEMP_TAG_RE],
+    cmdfn("remove-tags") + _TEMP_TAG_NAMES,
+    ]:
+    AssertCommand(cmd)
 
   if qa_rapi.Enabled():
     qa_rapi.TestTags(kind, name, _TEMP_TAG_NAMES)
@@ -81,9 +72,14 @@ def TestClusterTags():
 
 def TestNodeTags(node):
   """gnt-node tags"""
-  _TestTags(constants.TAG_NODE, node["primary"])
+  _TestTags(constants.TAG_NODE, node.primary)
+
+
+def TestGroupTags(group):
+  """gnt-group tags"""
+  _TestTags(constants.TAG_NODEGROUP, group)
 
 
 def TestInstanceTags(instance):
   """gnt-instance tags"""
-  _TestTags(constants.TAG_INSTANCE, instance["name"])
+  _TestTags(constants.TAG_INSTANCE, instance.name)