xen-devel.lists.xenproject.org archive mirror
 help / color / mirror / Atom feed
From: Ian Jackson <ian.jackson@eu.citrix.com>
To: xen-devel@lists.xensource.com
Cc: Ian Jackson <Ian.Jackson@eu.citrix.com>,
	Ian Jackson <ian.jackson@eu.citrix.com>
Subject: [PATCH 14/14] xl: xl block-attach -N (dry run) option
Date: Thu, 12 May 2011 15:36:44 +0100	[thread overview]
Message-ID: <1305211004-31687-15-git-send-email-ian.jackson@eu.citrix.com> (raw)
In-Reply-To: <1305211004-31687-14-git-send-email-ian.jackson@eu.citrix.com>

This is mainly for debugging purposes at the moment.  Eventually I
hope all commands will gain this so that -N will be a global option.

In the meantime this new option is not documented and should be
regarded as unstable.

Signed-off-by: Ian Jackson <Ian.Jackson@eu.citrix.com>
---
 tools/libxl/xl_cmdimpl.c |   34 +++++++++++++++++++++++++++++++---
 1 files changed, 31 insertions(+), 3 deletions(-)

diff --git a/tools/libxl/xl_cmdimpl.c b/tools/libxl/xl_cmdimpl.c
index ccffd26..a8b3f9f 100644
--- a/tools/libxl/xl_cmdimpl.c
+++ b/tools/libxl/xl_cmdimpl.c
@@ -3930,13 +3930,25 @@ int main_networkdetach(int argc, char **argv)
 
 int main_blockattach(int argc, char **argv)
 {
-    int opt;
+    int opt, dry_run = 0;
     uint32_t fe_domid, be_domid = 0;
     libxl_device_disk disk = { 0 };
     XLU_Config *config = 0;
 
-    if ((opt = def_getopt(argc, argv, "", "block-attach", 2)) != -1)
-        return opt;
+    while ((opt = getopt(argc, argv, "Nh")) != -1) {
+        switch (opt) {
+        case 'N':
+            /* fixme this should become a global option eventually */
+            dry_run = 1;
+            break;
+        case 'h':
+            help("block-attach");
+            return 0;
+        default:
+            fprintf(stderr, "option `%c' not supported.\n", optopt);
+            break;
+        }
+    }
     if ((argc-optind < 2)) {
         help("block-attach");
         return 2;
@@ -3953,6 +3965,22 @@ int main_blockattach(int argc, char **argv)
 
     disk.backend_domid = be_domid;
 
+    if (dry_run) {
+        /* fixme: this should be generated from the idl */
+        /* fixme: enums (backend, format) should be converted to strings */
+        printf("disk.backend_domid = %"PRIx32"\n", disk.backend_domid);
+        printf("disk.pdev_path =     %s\n",        disk.pdev_path);
+        printf("disk.vdev =          %s\n",        disk.vdev);
+        printf("disk.backend =       %d\n",        disk.backend);
+        printf("disk.format =        %d\n",        disk.format);
+        printf("disk.script =        %s\n",        disk.script);
+        printf("disk.removable =     %d\n",        disk.removable);
+        printf("disk.readwrite =     %d\n",        disk.readwrite);
+        printf("disk.is_cdrom =      %d\n",        disk.is_cdrom);
+        if (ferror(stdout) || fflush(stdout)) { perror("stdout"); exit(-1); }
+        return 0;
+    }
+
     if (libxl_device_disk_add(ctx, fe_domid, &disk)) {
         fprintf(stderr, "libxl_device_disk_add failed.\n");
     }
-- 
1.7.2.5

  reply	other threads:[~2011-05-12 14:36 UTC|newest]

Thread overview: 36+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2011-05-12 14:36 [PATCH/RFC 00/14] libxl: disk configuration handling Ian Jackson
2011-05-12 14:36 ` [PATCH 01/14] libxl: add missing copyright notices to some files Ian Jackson
2011-05-12 14:36   ` [PATCH 02/14] libxl: add missing copyright notices to autogenerated files Ian Jackson
2011-05-12 14:36     ` [PATCH 03/14] libxl: provide TOSTRING in libxl_internal.h and libxlu_internal.h Ian Jackson
2011-05-12 14:36       ` [PATCH 04/14] libxl: make libxl_ctx_free tolerate NULL ctx argument Ian Jackson
2011-05-12 14:36         ` [PATCH 05/14] libxl: disks: expose new "script" parameter for external block scripts Ian Jackson
2011-05-12 14:36           ` [PATCH 06/14] libxl: disks: rename disk param "unpluggable" to "removable" Ian Jackson
2011-05-12 14:36             ` [PATCH 07/14] libxl: disks: Make LIBXL_DISK_BACKEND_UNKNOWN work Ian Jackson
2011-05-12 14:36               ` [PATCH 08/14] libxl: disks: new xlu_disk_parse function Ian Jackson
2011-05-12 14:36                 ` [PATCH 09/14] libxl: disks: commit libxlu_disk_l.[ch] flex output Ian Jackson
2011-05-12 14:36                   ` [PATCH 10/14] docs: update xl-disk-configuration.txt to describe new syntax Ian Jackson
2011-05-12 14:36                     ` [PATCH 11/14] xl: disks: replace config file disk spec parser with call to xlu_disk_parse Ian Jackson
2011-05-12 14:36                       ` [PATCH 12/14] xl: disks: replace block-attach disk config parser with call to xlu_parse_disk Ian Jackson
2011-05-12 14:36                         ` [PATCH 13/14] libxl: disks: allow specification of "backendtype=phy|tap|qdisk" Ian Jackson
2011-05-12 14:36                           ` Ian Jackson [this message]
2011-05-13 12:56                             ` [PATCH 14/14] xl: xl block-attach -N (dry run) option Ian Campbell
2011-05-13 12:53                           ` [PATCH 13/14] libxl: disks: allow specification of "backendtype=phy|tap|qdisk" Ian Campbell
2011-06-02 16:57                             ` Ian Jackson
2011-05-12 14:42                         ` [PATCH 12/14] xl: disks: replace block-attach disk config parser with call to xlu_parse_disk Ian Jackson
2011-05-13 12:50                         ` Ian Campbell
2011-05-13 12:49                       ` [PATCH 11/14] xl: disks: replace config file disk spec parser with call to xlu_disk_parse Ian Campbell
2011-05-13 12:45                     ` [PATCH 10/14] docs: update xl-disk-configuration.txt to describe new syntax Ian Campbell
2011-05-18 10:31                       ` Ian Jackson
2011-05-20  9:27                         ` Ian Campbell
2011-05-20 10:21                           ` Ian Jackson
2011-05-20 10:26                             ` Ian Campbell
2011-05-13 10:49                   ` [PATCH 09/14] libxl: disks: commit libxlu_disk_l.[ch] flex output Ian Campbell
2011-05-13 10:48                 ` [PATCH 08/14] libxl: disks: new xlu_disk_parse function Ian Campbell
2011-06-02 16:50                   ` Ian Jackson
2011-05-13 10:38               ` [PATCH 07/14] libxl: disks: Make LIBXL_DISK_BACKEND_UNKNOWN work Ian Campbell
2011-06-02 16:48                 ` Ian Jackson
2011-05-13 10:36             ` [PATCH 06/14] libxl: disks: rename disk param "unpluggable" to "removable" Ian Campbell
2011-05-13 10:35           ` [PATCH 05/14] libxl: disks: expose new "script" parameter for external block scripts Ian Campbell
2011-06-02 16:48             ` Ian Jackson
2011-05-13 10:33 ` [PATCH/RFC 00/14] libxl: disk configuration handling Ian Campbell
2011-06-02 16:57   ` Ian Jackson

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1305211004-31687-15-git-send-email-ian.jackson@eu.citrix.com \
    --to=ian.jackson@eu.citrix.com \
    --cc=xen-devel@lists.xensource.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).