All of lore.kernel.org
 help / color / mirror / Atom feed
From: "W. Michael Petullo" <mike@flyn.org>
To: Ian Jackson <Ian.Jackson@eu.citrix.com>
Cc: "xen-devel@lists.xen.org" <xen-devel@lists.xen.org>
Subject: Re: Using "xl create" without domain config file
Date: Fri, 8 Jun 2012 13:31:06 -0500	[thread overview]
Message-ID: <20120608183106.GA12674@imp.flyn.org> (raw)
In-Reply-To: <20432.59361.773966.629519@mariner.uk.xensource.com>

[...]

>>> -    if (!S_ISREG(stab.st_mode)) {
>>> -        LIBXL__LOG_ERRNO(ctx, LIBXL__LOG_ERROR, "%s is not a plain file", filename);
>>> +    if (S_ISDIR(stab.st_mode)) {
>>> +        LIBXL__LOG_ERRNO(ctx, LIBXL__LOG_ERROR, "%s is a directory", filename);
>>
>> This is not correct.  If, for example, /dev/tty is specified, it will
>> go wrong.
>>
>> The reason for the restriction to plain files is that those are the
>> only thing on which stat works to provide the size.  If we are to
>> support other objects, we need to change the reading algorithm.
>
> Another alternative would be to special-case the string "/dev/null"
> (in xl, not libxl) and not read a config file at all in that case.

This patch treats /dev/null as a special case.

# HG changeset patch
# Parent 435493696053a079ec17d6e1a63e5f2be3a2c9d0
xl: Allow use of /dev/null with xl create to enable command-line definition

xm allows specifying /dev/null as the domain configuration argument to its
create option; add same functionality to xl. xl treats the configuration
argument /dev/null as a special case.  This allows specifying an entire
domain configuration on the command line.

Signed-off-by: W. Michael Petullo <mike@flyn.org>

diff -r 435493696053 tools/libxl/xl_cmdimpl.c
--- a/tools/libxl/xl_cmdimpl.c  Fri May 25 08:18:47 2012 +0100
+++ b/tools/libxl/xl_cmdimpl.c  Thu Jun 07 22:40:58 2012 -0500
@@ -1454,10 +1454,13 @@ static int create_domain(struct domain_c

     if (config_file) {
         free(config_data);  config_data = 0;
-        ret = libxl_read_file_contents(&ctx, config_file,
-                                       &config_data, &config_len);
-        if (ret) { fprintf(stderr, "Failed to read config file: %s: %s\n",
-                           config_file, strerror(errno)); return ERROR_FAIL; }
+        // /dev/null represents special case (read config. from command line)
+        if (strcmp(config_file, "/dev/null")) {
+            ret = libxl_read_file_contents(&ctx, config_file,
+                                           &config_data, &config_len);
+            if (ret) { fprintf(stderr, "Failed to read config file: %s: %s\n",
+                               config_file, strerror(errno)); return ERROR_FAIL; }
+        }
         if (!restore_file && extra_config && strlen(extra_config)) {
             if (config_len > INT_MAX - (strlen(extra_config) + 2 + 1)) {
                 fprintf(stderr, "Failed to attach extra configration\n");

  reply	other threads:[~2012-06-08 18:31 UTC|newest]

Thread overview: 11+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-05-31  4:50 Using "xl create" without domain config file W. Michael Petullo
2012-06-01  5:45 ` Ian Campbell
2012-06-01 18:01 ` Ian Jackson
2012-06-02 14:19   ` W. Michael Petullo
2012-06-06 10:40     ` Ian Jackson
2012-06-07 17:41       ` Ian Jackson
2012-06-08 18:31         ` W. Michael Petullo [this message]
2012-06-11 13:41           ` Ian Jackson
2012-06-11 20:22             ` W. Michael Petullo
2012-07-04 14:48               ` Ian Campbell
2012-08-17 21:37                 ` W. Michael Petullo

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=20120608183106.GA12674@imp.flyn.org \
    --to=mike@flyn.org \
    --cc=Ian.Jackson@eu.citrix.com \
    --cc=xen-devel@lists.xen.org \
    /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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.