Add --force-join option to gnt-node add
[ganeti-local] / lib / client / gnt_instance.py
index e9f324a..b6e5ce3 100644 (file)
@@ -1,7 +1,7 @@
 #
 #
 
-# Copyright (C) 2006, 2007, 2008, 2009, 2010 Google Inc.
+# Copyright (C) 2006, 2007, 2008, 2009, 2010, 2011 Google Inc.
 #
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
@@ -57,8 +57,6 @@ _SHUTDOWN_NODES_TAGS_MODES = (
     _SHUTDOWN_NODES_SEC_BY_TAGS)
 
 
-_VALUE_TRUE = "true"
-
 #: default list of options for L{ListInstances}
 _LIST_DEF_FIELDS = [
   "name", "hypervisor", "os", "pnode", "status", "oper_ram",
@@ -195,7 +193,7 @@ def _EnsureInstancesExist(client, names):
   @raise errors.OpPrereqError: in case any instance is missing
 
   """
-  # TODO: change LUQueryInstances to that it actually returns None
+  # TODO: change LUInstanceQuery to that it actually returns None
   # instead of raising an exception, or devise a better mechanism
   result = client.QueryInstances(names, ["name"], False)
   for orig_name, row in zip(names, result):
@@ -458,7 +456,7 @@ def ReinstallInstance(opts, args):
 
   # second, if requested, ask for an OS
   if opts.select_os is True:
-    op = opcodes.OpDiagnoseOS(output_fields=["name", "variants"], names=[])
+    op = opcodes.OpOsDiagnose(output_fields=["name", "variants"], names=[])
     result = SubmitOpCode(op, opts=opts)
 
     if not result:
@@ -504,7 +502,7 @@ def ReinstallInstance(opts, args):
 
   jex = JobExecutor(verbose=multi_on, opts=opts)
   for instance_name in inames:
-    op = opcodes.OpReinstallInstance(instance_name=instance_name,
+    op = opcodes.OpInstanceReinstall(instance_name=instance_name,
                                      os_type=os_name,
                                      force_variant=opts.force_variant,
                                      osparams=opts.osparams)
@@ -538,7 +536,7 @@ def RemoveInstance(opts, args):
     if not AskUser(usertext):
       return 1
 
-  op = opcodes.OpRemoveInstance(instance_name=instance_name,
+  op = opcodes.OpInstanceRemove(instance_name=instance_name,
                                 ignore_failures=opts.ignore_failures,
                                 shutdown_timeout=opts.shutdown_timeout)
   SubmitOrSend(op, opts, cl=cl)
@@ -561,7 +559,7 @@ def RenameInstance(opts, args):
                    " that '%s' is a FQDN. Continue?" % args[1]):
       return 1
 
-  op = opcodes.OpRenameInstance(instance_name=args[0],
+  op = opcodes.OpInstanceRename(instance_name=args[0],
                                 new_name=args[1],
                                 ip_check=opts.ip_check,
                                 name_check=opts.name_check)
@@ -611,7 +609,8 @@ def DeactivateDisks(opts, args):
 
   """
   instance_name = args[0]
-  op = opcodes.OpInstanceDeactivateDisks(instance_name=instance_name)
+  op = opcodes.OpInstanceDeactivateDisks(instance_name=instance_name,
+                                         force=opts.force)
   SubmitOrSend(op, opts)
   return 0
 
@@ -636,7 +635,7 @@ def RecreateDisks(opts, args):
   else:
     opts.disks = []
 
-  op = opcodes.OpRecreateInstanceDisks(instance_name=instance_name,
+  op = opcodes.OpInstanceRecreateDisks(instance_name=instance_name,
                                        disks=opts.disks)
   SubmitOrSend(op, opts)
   return 0
@@ -661,8 +660,9 @@ def GrowDisk(opts, args):
     raise errors.OpPrereqError("Invalid disk index: %s" % str(err),
                                errors.ECODE_INVAL)
   amount = utils.ParseUnit(args[2])
-  op = opcodes.OpGrowDisk(instance_name=instance, disk=disk, amount=amount,
-                          wait_for_sync=opts.wait_for_sync)
+  op = opcodes.OpInstanceGrowDisk(instance_name=instance,
+                                  disk=disk, amount=amount,
+                                  wait_for_sync=opts.wait_for_sync)
   SubmitOrSend(op, opts)
   return 0
 
@@ -678,7 +678,7 @@ def _StartupInstance(name, opts):
   @return: the opcode needed for the operation
 
   """
-  op = opcodes.OpStartupInstance(instance_name=name,
+  op = opcodes.OpInstanceStartup(instance_name=name,
                                  force=opts.force,
                                  ignore_offline_nodes=opts.ignore_offline)
   # do not add these parameters to the opcode unless they're defined
@@ -700,7 +700,7 @@ def _RebootInstance(name, opts):
   @return: the opcode needed for the operation
 
   """
-  return opcodes.OpRebootInstance(instance_name=name,
+  return opcodes.OpInstanceReboot(instance_name=name,
                                   reboot_type=opts.reboot_type,
                                   ignore_secondaries=opts.ignore_secondaries,
                                   shutdown_timeout=opts.shutdown_timeout)
@@ -717,7 +717,7 @@ def _ShutdownInstance(name, opts):
   @return: the opcode needed for the operation
 
   """
-  return opcodes.OpShutdownInstance(instance_name=name,
+  return opcodes.OpInstanceShutdown(instance_name=name,
                                     timeout=opts.timeout,
                                     ignore_offline_nodes=opts.ignore_offline)
 
@@ -760,10 +760,10 @@ def ReplaceDisks(opts, args):
     # replace secondary
     mode = constants.REPLACE_DISK_CHG
 
-  op = opcodes.OpReplaceDisks(instance_name=args[0], disks=disks,
-                              remote_node=new_2ndary, mode=mode,
-                              iallocator=iallocator,
-                              early_release=opts.early_release)
+  op = opcodes.OpInstanceReplaceDisks(instance_name=args[0], disks=disks,
+                                      remote_node=new_2ndary, mode=mode,
+                                      iallocator=iallocator,
+                                      early_release=opts.early_release)
   SubmitOrSend(op, opts)
   return 0
 
@@ -794,7 +794,7 @@ def FailoverInstance(opts, args):
     if not AskUser(usertext):
       return 1
 
-  op = opcodes.OpFailoverInstance(instance_name=instance_name,
+  op = opcodes.OpInstanceFailover(instance_name=instance_name,
                                   ignore_consistency=opts.ignore_consistency,
                                   shutdown_timeout=opts.shutdown_timeout)
   SubmitOrSend(op, opts, cl=cl)
@@ -842,7 +842,7 @@ def MigrateInstance(opts, args):
   else:
     mode = opts.migration_mode
 
-  op = opcodes.OpMigrateInstance(instance_name=instance_name, mode=mode,
+  op = opcodes.OpInstanceMigrate(instance_name=instance_name, mode=mode,
                                  cleanup=opts.cleanup)
   SubmitOpCode(op, cl=cl, opts=opts)
   return 0
@@ -869,7 +869,7 @@ def MoveInstance(opts, args):
     if not AskUser(usertext):
       return 1
 
-  op = opcodes.OpMoveInstance(instance_name=instance_name,
+  op = opcodes.OpInstanceMove(instance_name=instance_name,
                               target_node=opts.node,
                               shutdown_timeout=opts.shutdown_timeout)
   SubmitOrSend(op, opts, cl=cl)
@@ -1141,7 +1141,7 @@ def ShowInstanceConfig(opts, args):
     return 1
 
   retcode = 0
-  op = opcodes.OpQueryInstanceData(instances=args, static=opts.static)
+  op = opcodes.OpInstanceQueryData(instances=args, static=opts.static)
   result = SubmitOpCode(op, opts=opts)
   if not result:
     ToStdout("No instances.")
@@ -1279,7 +1279,7 @@ def SetInstanceParams(opts, args):
              " specifying a secondary node")
     return 1
 
-  op = opcodes.OpSetInstanceParams(instance_name=args[0],
+  op = opcodes.OpInstanceSetParams(instance_name=args[0],
                                    nics=opts.nics,
                                    disks=opts.disks,
                                    disk_template=opts.disk_template,
@@ -1464,8 +1464,8 @@ commands = {
     "<instance>", "Activate an instance's disks"),
   'deactivate-disks': (
     DeactivateDisks, ARGS_ONE_INSTANCE,
-    [SUBMIT_OPT, DRY_RUN_OPT, PRIORITY_OPT],
-    "<instance>", "Deactivate an instance's disks"),
+    [FORCE_OPT, SUBMIT_OPT, DRY_RUN_OPT, PRIORITY_OPT],
+    "[-f] <instance>", "Deactivate an instance's disks"),
   'recreate-disks': (
     RecreateDisks, ARGS_ONE_INSTANCE,
     [SUBMIT_OPT, DISKIDX_OPT, DRY_RUN_OPT, PRIORITY_OPT],