Optimize the OpQueryNodes for names only
[ganeti-local] / scripts / gnt-backup
index 7191c83..5abe682 100755 (executable)
@@ -28,6 +28,8 @@ from ganeti import opcodes
 from ganeti import constants
 
 
+_VALUE_TRUE = "true"
+
 def PrintExportList(opts, args):
   """Prints a list of all the exported system images.
 
@@ -39,8 +41,7 @@ def PrintExportList(opts, args):
     nothing
 
   """
-  op = opcodes.OpQueryExports(nodes=opts.nodes)
-  exports = SubmitOpCode(op)
+  exports = GetClient().QueryExports(opts.nodes)
   for node in exports:
     print ("Node: %s" % node)
     print ("Exports:")
@@ -102,7 +103,16 @@ def ImportInstance(opts, args):
                                 wait_for_sync=opts.wait_for_sync, mac="auto",
                                 file_storage_dir=opts.file_storage_dir,
                                 file_driver=opts.file_driver,
-                                iallocator=opts.iallocator)
+                                iallocator=opts.iallocator,
+                                auto_balance=auto_balance,
+                                hvm_boot_order=opts.hvm_boot_order,
+                                hvm_acpi=opts.hvm_acpi,
+                                hvm_nic_type=opts.hvm_nic_type,
+                                hvm_disk_type=opts.hvm_disk_type,
+                                hvm_pae=opts.hvm_pae,
+                                hvm_cdrom_image_path=opts.hvm_cdrom_image_path,
+                                vnc_bind_address=opts.vnc_bind_address)
+
   SubmitOpCode(op)
   return 0
 
@@ -142,8 +152,8 @@ import_opts = [
   make_option("-p", "--cpu", dest="vcpus", help="Number of virtual CPUs",
               default=1, type="int", metavar="<PROC>"),
   make_option("-t", "--disk-template", dest="disk_template",
-              help="Custom disk setup (diskless, plain, local_raid1,"
-              " remote_raid1 or drbd)", default=None, metavar="TEMPL"),
+              help="Custom disk setup (diskless, file, plain, drbd)",
+              default=None, metavar="TEMPL"),
   make_option("-i", "--ip", dest="ip",
               help="IP address ('none' [default], 'auto', or specify address)",
               default='none', type="string", metavar="<ADDRESS>"),
@@ -168,6 +178,34 @@ import_opts = [
               metavar="<DIR>"),
   make_option("--file-driver", dest="file_driver", help="Driver to use"
               " for image files", default="loop", metavar="<DRIVER>"),
+  make_option("--hvm-boot-order", dest="hvm_boot_order",
+              help="Boot device order for HVM (one or more of [acdn])",
+              default=None, type="string", metavar="<BOOTORDER>"),
+  make_option("--hvm-acpi", dest="hvm_acpi",
+              help="ACPI support for HVM (true|false)",
+              metavar="<BOOL>", choices=["true", "false"]),
+  make_option("--hvm-nic-type", dest="hvm_nic_type",
+              help="Type of virtual NIC for HVM "
+              "(rtl8139,ne2k_pci,ne2k_isa,paravirtual)",
+              metavar="NICTYPE", choices=[constants.HT_HVM_NIC_RTL8139,
+                                          constants.HT_HVM_NIC_NE2K_PCI,
+                                          constants.HT_HVM_NIC_NE2K_ISA,
+                                          constants.HT_HVM_DEV_PARAVIRTUAL],
+              default=constants.HT_HVM_NIC_RTL8139),
+  make_option("--hvm-disk-type", dest="hvm_disk_type",
+              help="Type of virtual disks for HVM (ioemu,paravirtual)",
+              metavar="DISKTYPE", choices=[constants.HT_HVM_DEV_IOEMU,
+                                           constants.HT_HVM_DEV_PARAVIRTUAL],
+              default=constants.HT_HVM_DEV_IOEMU,),
+  make_option("--hvm-pae", dest="hvm_pae",
+              help="PAE support for HVM (true|false)",
+              metavar="<BOOL>", choices=["true", "false"]),
+  make_option("--hvm-cdrom-image-path", dest="hvm_cdrom_image_path",
+              help="CDROM image path for HVM (absolute path or None)",
+              default=None, type="string", metavar="<CDROMIMAGE>"),
+  make_option("--vnc-bind-address", dest="vnc_bind_address",
+              help="bind address for VNC (IP address)",
+              default=None, type="string", metavar="<VNCADDRESS>"),
   ]
 
 commands = {
@@ -177,7 +215,7 @@ commands = {
                         help="List only backups stored on this node"
                              " (can be used multiple times)"),
             ],
-           "Lists instance exports available in the ganeti cluster"),
+           "", "Lists instance exports available in the ganeti cluster"),
   'export': (ExportInstance, ARGS_ONE,
              [DEBUG_OPT, FORCE_OPT,
               make_option("-n", "--node", dest="node", help="Target node",
@@ -185,11 +223,16 @@ commands = {
               make_option("","--noshutdown", dest="shutdown",
                           action="store_false", default=True,
                           help="Don't shutdown the instance (unsafe)"), ],
+             "-n <target_node> [opts...] <name>",
              "Exports an instance to an image"),
   'import': (ImportInstance, ARGS_ONE, import_opts,
+             ("[...] -t disk-type -n node[:secondary-node]"
+              " --src-node node --src-dir dir"
+              " <name>"),
              "Imports an instance from an exported image"),
   'remove': (RemoveExport, ARGS_ONE,
              [DEBUG_OPT],
+             "<name>",
              "Remove exports of named instance from the filesystem."),
   }