Add new command gnt-debug test-osparams
authorLisa Velden <velden@google.com>
Fri, 3 Jul 2015 11:37:38 +0000 (13:37 +0200)
committerLisa Velden <velden@google.com>
Wed, 8 Jul 2015 10:28:10 +0000 (12:28 +0200)
which takes secret parameters with --os-secret-parameters and writes
them to stdout. This command can be used to test the transmission of
secret parameters.

Signed-off-by: Lisa Velden <velden@google.com>
Reviewed-by: Hrvoje Ribicic <riba@google.com>

lib/client/gnt_debug.py
lib/cmdlib/__init__.py
lib/cmdlib/test.py
man/gnt-debug.rst
src/Ganeti/Hs2Py/OpDoc.hs
src/Ganeti/OpCodes.hs

index d05fbc2..48a557f 100644 (file)
@@ -583,6 +583,16 @@ def TestJobqueue(opts, _):
   return 0
 
 
+def TestOsParams(opts, _):
+  """Set secret os parameters.
+
+  """
+  op = opcodes.OpTestOsParams(osparams_secret=opts.osparams_secret)
+  SubmitOrSend(op, opts)
+
+  return 0
+
+
 def ListLocks(opts, args): # pylint: disable=W0613
   """List all locks.
 
@@ -785,6 +795,10 @@ commands = {
   "test-jobqueue": (
     TestJobqueue, ARGS_NONE, [PRIORITY_OPT],
     "", "Test a few aspects of the job queue"),
+  "test-osparams": (
+    TestOsParams, ARGS_NONE, [OSPARAMS_SECRET_OPT] + SUBMIT_OPTS,
+    "[--os-parameters-secret <params>]",
+    "Test secret os parameter transmission"),
   "locks": (
     ListLocks, ARGS_NONE,
     [NOHDR_OPT, SEP_OPT, FIELDS_OPT, INTERVAL_OPT, VERBOSE_OPT],
index ee02417..5fd9b8d 100644 (file)
@@ -128,6 +128,7 @@ from ganeti.cmdlib.misc import \
   LUExtStorageDiagnose, \
   LURestrictedCommand
 from ganeti.cmdlib.test import \
+  LUTestOsParams, \
   LUTestDelay, \
   LUTestJqueue, \
   LUTestAllocator
index 5ec7c92..167be3d 100644 (file)
@@ -353,6 +353,23 @@ class LUTestJqueue(NoHooksLU):
     return True
 
 
+class LUTestOsParams(NoHooksLU):
+  """Utility LU to test secret OS parameter transmission.
+
+  """
+  REQ_BGL = False
+
+  def ExpandNames(self):
+    self.needed_locks = {}
+
+  def Exec(self, feedback_fn):
+    if self.op.osparams_secret:
+      msg = "Secret OS parameters: %s" % self.op.osparams_secret.Unprivate()
+      feedback_fn(msg)
+    else:
+      raise errors.OpExecError("Opcode needs secret parameters")
+
+
 class LUTestAllocator(NoHooksLU):
   """Run allocator tests.
 
index 6614c12..e934d0e 100644 (file)
@@ -99,6 +99,13 @@ TEST-JOBQUEUE
 Executes a few tests on the job queue. This command might generate
 failed jobs deliberately.
 
+TEST_OSPARAMS
+~~~~~~~~~~~~~
+
+**test-osparams** {--os-parameters-secret *param*=*value*... }
+
+Tests secret os parameter transmission.
+
 LOCKS
 ~~~~~
 
index 82aba2f..aee68db 100644 (file)
@@ -465,6 +465,10 @@ opTestJqueue :: String
 opTestJqueue =
   "Utility opcode to test some aspects of the job queue."
 
+opTestOsParams :: String
+opTestOsParams =
+  "Utility opcode to test secret os parameter transmission."
+
 opTestDummy :: String
 opTestDummy =
   "Utility opcode used by unittests."
index 271b409..209943d 100644 (file)
@@ -903,6 +903,12 @@ $(genOpCode "OpCode"
      , pJQueueFail
      ],
      [])
+  , ("OpTestOsParams",
+     [t| () |],
+     OpDoc.opTestOsParams,
+     [ pInstOsParamsSecret
+     ],
+     [])
   , ("OpTestDummy",
      [t| () |],
      OpDoc.opTestDummy,