[PATCH] launch: libvirt: Better error when bridge / virbr0 doesn't exist (RHBZ#1262127).
by Richard W.M. Jones
The current diagnostic is terrible. This one tells the user how to
diagnose and fix the problem.
---
src/launch-libvirt.c | 47 +++++++++++++++++++++++++++++++++++++++++++++++
1 file changed, 47 insertions(+)
diff --git a/src/launch-libvirt.c b/src/launch-libvirt.c
index 1c0bfac..d4c4c47 100644
--- a/src/launch-libvirt.c
+++ b/src/launch-libvirt.c
@@ -181,6 +181,7 @@ static int is_blk (const char *path);
static void ignore_errors (void *ignore, virErrorPtr ignore2);
static void set_socket_create_context (guestfs_h *g);
static void clear_socket_create_context (guestfs_h *g);
+static int check_bridge_exists (guestfs_h *g, const char *brname);
#if HAVE_LIBSELINUX
static void selinux_warning (guestfs_h *g, const char *func, const char *selinux_op, const char *data);
@@ -393,6 +394,9 @@ launch_libvirt (guestfs_h *g, void *datav, const char *libvirt_uri)
}
guestfs_pop_error_handler (g);
+ if (g->enable_network && check_bridge_exists (g, data->network_bridge) == -1)
+ goto cleanup;
+
/* Locate and/or build the appliance. */
TRACE0 (launch_build_libvirt_appliance_start);
@@ -1988,6 +1992,49 @@ is_blk (const char *path)
return S_ISBLK (statbuf.st_mode);
}
+static int
+is_dir (const char *path)
+{
+ struct stat statbuf;
+
+ if (stat (path, &statbuf) == -1)
+ return 0;
+ return S_ISDIR (statbuf.st_mode);
+}
+
+/* Used to check the network_bridge exists, or give a useful error
+ * message.
+ */
+static int
+check_bridge_exists (guestfs_h *g, const char *brname)
+{
+ CLEANUP_FREE char *path = NULL;
+
+ /* If this doesn't look like Linux, give up. */
+ if (!is_dir ("/sys/class/net"))
+ return 0;
+
+ /* Does the interface exist and is it a bridge? */
+ path = safe_asprintf (g, "/sys/class/net/%s/bridge", brname);
+ if (is_dir (path))
+ return 0;
+
+ error (g,
+ _("bridge '%s' not found. Try running:\n"
+ "\n"
+ " brctl show\n"
+ "\n"
+ "to get a list of bridges on the host, and then selecting the\n"
+ "bridge you wish the appliance network to connect to using:\n"
+ "\n"
+ " export LIBGUESTFS_BACKEND_SETTINGS=network_bridge=<bridge name>\n"
+ "\n"
+ "You may also need to allow the bridge in /etc/qemu/bridge.conf.\n"
+ "For further information see guestfs(3)."),
+ brname);
+ return -1;
+}
+
static void
ignore_errors (void *ignore, virErrorPtr ignore2)
{
--
2.5.0
9 years, 2 months
missing btrfs subvol support
by Olaf Hering
Is btrfs subvol support failing just for me? Looks like nothing adds the
required '@/' string. virt-ls uses the first variant of the command:
><rescue> mount -vo subvol=var/spool,ro /dev/sda2 /sysroot/
[ 113.852047] BTRFS info (device sda2): disk space caching is enabled
[ 113.852869] BTRFS: has skinny extents
mount: mount(2) failed: No such file or directory
><rescue> mount -vo subvol=@var/spool,ro /dev/sda2 /sysroot/
[ 116.082642] BTRFS info (device sda2): disk space caching is enabled
[ 116.083476] BTRFS: has skinny extents
mount: mount(2) failed: No such file or directory
><rescue> mount -vo subvol=@/var/spool,ro /dev/sda2 /sysroot/
[ 123.995343] BTRFS info (device sda2): disk space caching is enabled
[ 123.996238] BTRFS: has skinny extents
mount: /dev/sda2 mounted on /sysroot.
><rescue> exit
fstab is:
UUID=d538a81f-9778-424d-96cc-e48dd2d4a323 swap swap defaults 0 0
UUID=65b72f12-eccb-4cf2-a4f4-9c4bb462456f / btrfs defaults 0 0
UUID=65b72f12-eccb-4cf2-a4f4-9c4bb462456f /var/spool btrfs subvol=@/var/spool 0 0
Olaf
9 years, 2 months
[PATCH] inspect: try to use /etc/os-release on Linux guests
by Pino Toscano
If a Linux guest has /etc/os-release (mandatory for systemd, so all the
recent Linux distributions have it), try to parse it for the distro, its
version, and its product name. If we cannot get all of them, the
detection as done so far continues.
Other than changes in the product_name string (which is free-form
anyway, and already documented to not be parseable), there should be no
regressions in the detected distro and version.
---
src/inspect-fs-unix.c | 143 ++++++++++++++++++++++++++++++++++++++++++++++++++
1 file changed, 143 insertions(+)
diff --git a/src/inspect-fs-unix.c b/src/inspect-fs-unix.c
index 65ab8ef..19975a7 100644
--- a/src/inspect-fs-unix.c
+++ b/src/inspect-fs-unix.c
@@ -141,6 +141,140 @@ parse_release_file (guestfs_h *g, struct inspect_fs *fs,
return 0;
}
+/* Parse a os-release file.
+ *
+ * Only few fields are parsed, falling back to the usual detection if we
+ * cannot read all of them.
+ *
+ * For the format of os-release, see also:
+ * http://www.freedesktop.org/software/systemd/man/os-release.html
+ */
+static int
+parse_os_release (guestfs_h *g, struct inspect_fs *fs, const char *filename)
+{
+ int64_t size;
+ CLEANUP_FREE_STRING_LIST char **lines = NULL;
+ size_t i;
+ enum inspect_os_distro distro = OS_DISTRO_UNKNOWN;
+ CLEANUP_FREE char *product_name = NULL;
+ int major_version = -1, minor_version = -1;
+
+ /* Don't trust guestfs_read_lines not to break with very large files.
+ * Check the file size is something reasonable first.
+ */
+ size = guestfs_filesize (g, filename);
+ if (size == -1)
+ /* guestfs_filesize failed and has already set error in handle */
+ return -1;
+ if (size > MAX_SMALL_FILE_SIZE) {
+ error (g, _("size of %s is unreasonably large (%" PRIi64 " bytes)"),
+ filename, size);
+ return -1;
+ }
+
+ lines = guestfs_read_lines (g, filename);
+ if (lines == NULL)
+ return -1;
+
+ for (i = 0; lines[i] != NULL; ++i) {
+ const char *line = lines[i];
+ const char *value;
+ size_t value_len;
+
+ if (line[0] == '#')
+ continue;
+
+ value = strchr (line, '=');
+ if (value == NULL)
+ continue;
+
+ ++value;
+ value_len = strlen (line) - (value - line);
+ if (value_len > 1 && value[0] == '"' && value[value_len-1] == '"') {
+ ++value;
+ value_len -= 2;
+ }
+
+#define VALUE_IS(a) STREQLEN(value, a, value_len)
+ if (STRPREFIX (line, "ID=")) {
+ if (VALUE_IS ("alpine"))
+ distro = OS_DISTRO_ALPINE_LINUX;
+ else if (VALUE_IS ("altlinux"))
+ distro = OS_DISTRO_ALTLINUX;
+ else if (VALUE_IS ("arch"))
+ distro = OS_DISTRO_ARCHLINUX;
+ else if (VALUE_IS ("centos"))
+ distro = OS_DISTRO_CENTOS;
+ else if (VALUE_IS ("debian"))
+ distro = OS_DISTRO_DEBIAN;
+ else if (VALUE_IS ("fedora"))
+ distro = OS_DISTRO_FEDORA;
+ else if (VALUE_IS ("frugalware"))
+ distro = OS_DISTRO_FRUGALWARE;
+ else if (VALUE_IS ("mageia"))
+ distro = OS_DISTRO_MAGEIA;
+ else if (VALUE_IS ("opensuse"))
+ distro = OS_DISTRO_OPENSUSE;
+ else if (VALUE_IS ("rhel"))
+ distro = OS_DISTRO_RHEL;
+ else if (VALUE_IS ("ubuntu"))
+ distro = OS_DISTRO_UBUNTU;
+ } else if (STRPREFIX (line, "PRETTY_NAME=")) {
+ free (product_name);
+ product_name = safe_strndup (g, value, value_len);
+ } else if (STRPREFIX (line, "VERSION_ID=")) {
+ char *major, *minor;
+ if (match2 (g, value, re_major_minor, &major, &minor)) {
+ major_version = guestfs_int_parse_unsigned_int (g, major);
+ free (major);
+ if (major_version == -1) {
+ free (minor);
+ return -1;
+ }
+ minor_version = guestfs_int_parse_unsigned_int (g, minor);
+ free (minor);
+ if (minor_version == -1)
+ return -1;
+ } else {
+ char buf[value_len + 1];
+ snprintf (buf, sizeof buf, "%*s", (int) value_len, value);
+ major_version = guestfs_int_parse_unsigned_int (g, buf);
+ free (major);
+ /* Handle cases where VERSION_ID is not a number. */
+ if (major_version != -1)
+ minor_version = 0;
+ }
+ }
+#undef VALUE_IS
+ }
+
+ /* If we haven't got all the fields, exit right away. */
+ if (distro == OS_DISTRO_UNKNOWN || product_name == NULL ||
+ major_version == -1 || minor_version == -1)
+ return 0;
+
+ /* Apparently, os-release in Debian and CentOS does not provide the full
+ * version number in VERSION_ID, but just the "major" part of it.
+ * Hence, if minor_version is 0, act as there was no information in
+ * os-release, which will continue the inspection using the release files
+ * as done previously.
+ */
+ if ((distro == OS_DISTRO_DEBIAN || distro == OS_DISTRO_CENTOS) &&
+ minor_version == 0)
+ return 0;
+
+ /* We got everything, so set the fields and report the inspection
+ * was successful.
+ */
+ fs->distro = distro;
+ fs->product_name = product_name;
+ product_name = NULL;
+ fs->major_version = major_version;
+ fs->minor_version = minor_version;
+
+ return 1;
+}
+
/* Ubuntu has /etc/lsb-release containing:
* DISTRIB_ID=Ubuntu # Distro
* DISTRIB_RELEASE=10.04 # Version
@@ -348,6 +482,15 @@ guestfs_int_check_linux_root (guestfs_h *g, struct inspect_fs *fs)
fs->type = OS_TYPE_LINUX;
+ if (guestfs_is_file_opts (g, "/etc/os-release",
+ GUESTFS_IS_FILE_OPTS_FOLLOWSYMLINKS, 1, -1) > 0) {
+ r = parse_os_release (g, fs, "/etc/os-release");
+ if (r == -1) /* error */
+ return -1;
+ if (r == 1) /* ok - detected the release from this file */
+ goto skip_release_checks;
+ }
+
if (guestfs_is_file_opts (g, "/etc/lsb-release",
GUESTFS_IS_FILE_OPTS_FOLLOWSYMLINKS, 1, -1) > 0) {
r = parse_lsb_release (g, fs, "/etc/lsb-release");
--
2.1.0
9 years, 2 months
[PATCH 0/2] virt-builder OpenSUSE images
by Cédric Bosdonnat
Hi guys,
Here are two patches to get opensuse images in virt-builder.
Cédric Bosdonnat (2):
Allow curl to follow redirects.
builder: add opensuse images sources
builder/Makefile.am | 3 ++-
builder/downloader.ml | 4 ++--
builder/opensuse.conf.in | 3 +++
builder/opensuse.gpg | 21 +++++++++++++++++++++
configure.ac | 1 +
5 files changed, 29 insertions(+), 3 deletions(-)
create mode 100644 builder/opensuse.conf.in
create mode 100644 builder/opensuse.gpg
--
2.1.4
9 years, 2 months
[PATCH] customize: password: use SHA-512 on openSUSE >= 11.0
by Pino Toscano
openSUSE 11.0 has glibc 2.8, which supports the SHA-512 method.
Fallback to an explicit MD5 for older versions.
---
customize/password.ml | 3 +++
1 file changed, 3 insertions(+)
diff --git a/customize/password.ml b/customize/password.ml
index 27ced67..258d726 100644
--- a/customize/password.ml
+++ b/customize/password.ml
@@ -162,6 +162,9 @@ and default_crypto g root =
| "ubuntu", v when v >= 10 -> `SHA512
| "ubuntu", _ -> `MD5
+ | "opensuse", v when v >= 11 -> `SHA512
+ | "opensuse", _ -> `MD5
+
| _, _ ->
let minor = g#inspect_get_minor_version root in
warning (f_"password: using insecure md5 password encryption for guest of type %s version %d.%d.
--
2.1.0
9 years, 2 months
[PATCH] inspect: recognize the Frugalware distribution
by Pino Toscano
Just basic identification, name and version.
---
generator/actions.ml | 4 ++++
src/guestfs-internal.h | 1 +
src/inspect-fs-unix.c | 21 +++++++++++++++++++++
src/inspect-fs.c | 2 ++
src/inspect-icon.c | 1 +
src/inspect.c | 1 +
6 files changed, 30 insertions(+)
diff --git a/generator/actions.ml b/generator/actions.ml
index 13c8bc8..2f0ad0b 100644
--- a/generator/actions.ml
+++ b/generator/actions.ml
@@ -1099,6 +1099,10 @@ FreeBSD.
FreeDOS.
+=item \"frugalware\"
+
+Frugalware.
+
=item \"gentoo\"
Gentoo.
diff --git a/src/guestfs-internal.h b/src/guestfs-internal.h
index 6cf3dad..f0eb28a 100644
--- a/src/guestfs-internal.h
+++ b/src/guestfs-internal.h
@@ -554,6 +554,7 @@ enum inspect_os_distro {
OS_DISTRO_COREOS,
OS_DISTRO_ALPINE_LINUX,
OS_DISTRO_ALTLINUX,
+ OS_DISTRO_FRUGALWARE,
};
enum inspect_os_package_format {
diff --git a/src/inspect-fs-unix.c b/src/inspect-fs-unix.c
index abbae35..65ab8ef 100644
--- a/src/inspect-fs-unix.c
+++ b/src/inspect-fs-unix.c
@@ -85,6 +85,7 @@ COMPILE_REGEXP (re_openbsd_duid, "^[0-9a-f]{16}\\.[a-z]", 0)
COMPILE_REGEXP (re_openbsd_dev, "^/dev/(s|w)d([0-9])([a-z])$", 0)
COMPILE_REGEXP (re_netbsd_dev, "^/dev/(l|s)d([0-9])([a-z])$", 0)
COMPILE_REGEXP (re_altlinux, " (?:(\\d+)(?:\\.(\\d+)(?:[\\.\\d]+)?)?)\\s+\\((?:[^)]+)\\)$", 0)
+COMPILE_REGEXP (re_frugalware, "Frugalware (\\d+)\\.(\\d+)", 0)
static void check_architecture (guestfs_h *g, struct inspect_fs *fs);
static int check_hostname_unix (guestfs_h *g, struct inspect_fs *fs);
@@ -632,6 +633,26 @@ guestfs_int_check_linux_root (guestfs_h *g, struct inspect_fs *fs)
if (guestfs_int_parse_major_minor (g, fs) == -1)
return -1;
}
+ else if (guestfs_is_file_opts (g, "/etc/frugalware-release",
+ GUESTFS_IS_FILE_OPTS_FOLLOWSYMLINKS, 1, -1) > 0) {
+ fs->distro = OS_DISTRO_FRUGALWARE;
+
+ if (parse_release_file (g, fs, "/etc/frugalware-release") == -1)
+ return -1;
+
+ if (match2 (g, fs->product_name, re_frugalware, &major, &minor)) {
+ fs->major_version = guestfs_int_parse_unsigned_int (g, major);
+ free (major);
+ if (fs->major_version == -1) {
+ free (minor);
+ return -1;
+ }
+ fs->minor_version = guestfs_int_parse_unsigned_int (g, minor);
+ free (minor);
+ if (fs->minor_version == -1)
+ return -1;
+ }
+ }
skip_release_checks:;
diff --git a/src/inspect-fs.c b/src/inspect-fs.c
index b239302..b6f03ee 100644
--- a/src/inspect-fs.c
+++ b/src/inspect-fs.c
@@ -499,6 +499,7 @@ guestfs_int_check_package_format (guestfs_h *g, struct inspect_fs *fs)
case OS_DISTRO_FREEBSD:
case OS_DISTRO_NETBSD:
case OS_DISTRO_OPENBSD:
+ case OS_DISTRO_FRUGALWARE:
case OS_DISTRO_UNKNOWN:
fs->package_format = OS_PACKAGE_FORMAT_UNKNOWN;
break;
@@ -575,6 +576,7 @@ guestfs_int_check_package_management (guestfs_h *g, struct inspect_fs *fs)
case OS_DISTRO_FREEBSD:
case OS_DISTRO_NETBSD:
case OS_DISTRO_OPENBSD:
+ case OS_DISTRO_FRUGALWARE:
case OS_DISTRO_UNKNOWN:
fs->package_management = OS_PACKAGE_MANAGEMENT_UNKNOWN;
break;
diff --git a/src/inspect-icon.c b/src/inspect-icon.c
index 93cd67a..33d0aa7 100644
--- a/src/inspect-icon.c
+++ b/src/inspect-icon.c
@@ -184,6 +184,7 @@ guestfs_impl_inspect_get_icon (guestfs_h *g, const char *root, size_t *size_r,
case OS_DISTRO_OPENBSD:
case OS_DISTRO_ALPINE_LINUX:
case OS_DISTRO_ALTLINUX:
+ case OS_DISTRO_FRUGALWARE:
case OS_DISTRO_UNKNOWN:
; /* nothing */
}
diff --git a/src/inspect.c b/src/inspect.c
index c01888a..7c7ee0c 100644
--- a/src/inspect.c
+++ b/src/inspect.c
@@ -266,6 +266,7 @@ guestfs_impl_inspect_get_distro (guestfs_h *g, const char *root)
case OS_DISTRO_FEDORA: ret = safe_strdup (g, "fedora"); break;
case OS_DISTRO_FREEBSD: ret = safe_strdup (g, "freebsd"); break;
case OS_DISTRO_FREEDOS: ret = safe_strdup (g, "freedos"); break;
+ case OS_DISTRO_FRUGALWARE: ret = safe_strdup (g, "frugalware"); break;
case OS_DISTRO_GENTOO: ret = safe_strdup (g, "gentoo"); break;
case OS_DISTRO_LINUX_MINT: ret = safe_strdup (g, "linuxmint"); break;
case OS_DISTRO_MAGEIA: ret = safe_strdup (g, "mageia"); break;
--
2.1.0
9 years, 2 months
[PATCH] build: improve maintainer-check-extra-dist target
by Pino Toscano
Filter out from the git ls-files output the files we don't care they
appeared (gnulib and intltools stuff), and use comm to only show the
remaining added files (i.e. files not being distributed).
The output of comm is redirected to file and then printed, so we can
check it is empty (failing the target if not).
---
Makefile.am | 16 +++++++++-------
1 file changed, 9 insertions(+), 7 deletions(-)
diff --git a/Makefile.am b/Makefile.am
index 8f0bb1b..f4916a1 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -573,13 +573,15 @@ maintainer-tag:
maintainer-check-extra-dist:
zcat $(PACKAGE_NAME)-$(VERSION).tar.gz | tar tf - | sort | \
sed 's,^$(PACKAGE_NAME)-$(VERSION)/,,' > tmp/tarfiles
- git ls-files | sort > tmp/gitfiles
- diff -ur tmp/tarfiles tmp/gitfiles | \
- grep '^\+' | \
- grep -v '^\+intltool-.*\.in' | \
- grep -v '^\+.gitmodules' | \
- grep -v '^\+.gnulib' ||:
- rm tmp/tarfiles tmp/gitfiles
+ git ls-files | \
+ grep -v '^intltool-.*\.in' | \
+ grep -v '^\.gitmodules' | \
+ grep -v '^\.gnulib' | \
+ sort > tmp/gitfiles
+ comm -13 tmp/tarfiles tmp/gitfiles > tmp/comm-out
+ cat tmp/comm-out
+ [ ! -s tmp/comm-out ]
+ rm tmp/tarfiles tmp/gitfiles tmp/comm-out
# Provide help on common Makefile targets.
--
2.1.0
9 years, 2 months
[PATCH] customize: Create .ssh as 0700 and .ssh/authorized_keys as 0600 (RHBZ#1260778).
by Richard W.M. Jones
Both ssh-copy-id and ssh create .ssh as 0700. ssh-copy-id creates
.ssh/authorized_keys as 0600.
Thanks: Ryan Sawhill for finding the bug.
---
customize/ssh_key.ml | 4 ++--
src/guestfs.pod | 17 +++++++++++++++++
2 files changed, 19 insertions(+), 2 deletions(-)
diff --git a/customize/ssh_key.ml b/customize/ssh_key.ml
index 09664bf..dd6056f 100644
--- a/customize/ssh_key.ml
+++ b/customize/ssh_key.ml
@@ -119,14 +119,14 @@ let do_ssh_inject_unix (g : Guestfs.guestfs) user selector =
let ssh_dir = sprintf "%s/.ssh" home_dir in
if not (g#exists ssh_dir) then (
g#mkdir ssh_dir;
- g#chmod 0o755 ssh_dir
+ g#chmod 0o700 ssh_dir
);
(* Create ~user/.ssh/authorized_keys if it doesn't exist. *)
let auth_keys = sprintf "%s/authorized_keys" ssh_dir in
if not (g#exists auth_keys) then (
g#touch auth_keys;
- g#chmod 0o644 auth_keys
+ g#chmod 0o600 auth_keys
);
(* Append the key. *)
diff --git a/src/guestfs.pod b/src/guestfs.pod
index 75afa9d..366d6f5 100644
--- a/src/guestfs.pod
+++ b/src/guestfs.pod
@@ -2244,6 +2244,23 @@ allowed a malformed filesystem to take over the appliance.
If you use sVirt to confine qemu, that would thwart some attacks.
+=head2 Permissions of F<.ssh> and F<.ssh/authorized_keys>
+
+L<https://bugzilla.redhat.com/1260778>
+
+The tools L<virt-customize(1)>, L<virt-sysprep(1)> and
+L<virt-builder(1)> have an I<--ssh-inject> option for injecting an SSH
+key into virtual machine disk images. They may create a F<~user/.ssh>
+directory and F<~user/.ssh/authorized_keys> file in the guest to do
+this.
+
+In libguestfs E<lt> 1.31.5 and libguestfs E<lt> 1.30.1, the new
+directory and file would get mode C<0755> and mode C<0644>
+respectively. However these permissions (especially for
+F<~user/.ssh>) are wider than the permissions that OpenSSH uses. In
+current libguestfs, the directory and file are created with mode
+C<0700> and mode C<0600>.
+
=head1 CONNECTION MANAGEMENT
=head2 guestfs_h *
--
2.5.0
9 years, 2 months
[PATCH 0/4 v3] builder: support for Simple Streams metadata
by Pino Toscano
Hi,
this series adds a basic support for Simple Streams v1.0 metadata
files. This makes it possible to create a repository .conf files with
[cirros]
uri=http://download.cirros-cloud.net
format=simplestreams
to read the latest version of each CirrOS image.
Thanks,
Pino Toscano (4):
builder: add non-int revisions
builder: add simple libyajl binding
build: expose HAVE_YAJL to automake
builder: support Simple Streams v1.0 as index metadata
.gitignore | 3 +
builder/Makefile.am | 51 ++-
builder/builder.ml | 11 +-
builder/cache.ml | 2 +-
builder/cache.mli | 6 +-
builder/downloader.mli | 2 +-
builder/index.ml | 4 +-
builder/index.mli | 2 +-
builder/index_parser.ml | 4 +-
builder/simplestreams_parser.ml | 204 ++++++++++
builder/simplestreams_parser.mli | 19 +
builder/sources.ml | 9 +
builder/sources.mli | 1 +
builder/test-simplestreams/streams/v1/index.json | 18 +
.../v1/net.cirros-cloud:released:download.json | 429 +++++++++++++++++++++
.../virt-builder/repos.d/cirros.conf.in | 3 +
builder/test-virt-builder-list-simplestreams.sh | 108 ++++++
builder/utils.ml | 7 +
builder/virt-builder.pod | 7 +
builder/yajl-c.c | 143 +++++++
builder/yajl.ml | 30 ++
builder/yajl.mli | 33 ++
builder/yajl_tests.ml | 139 +++++++
configure.ac | 2 +
po/POTFILES | 1 +
po/POTFILES-ml | 3 +
26 files changed, 1226 insertions(+), 15 deletions(-)
create mode 100644 builder/simplestreams_parser.ml
create mode 100644 builder/simplestreams_parser.mli
create mode 100644 builder/test-simplestreams/streams/v1/index.json
create mode 100644 builder/test-simplestreams/streams/v1/net.cirros-cloud:released:download.json
create mode 100644 builder/test-simplestreams/virt-builder/repos.d/cirros.conf.in
create mode 100755 builder/test-virt-builder-list-simplestreams.sh
create mode 100644 builder/yajl-c.c
create mode 100644 builder/yajl.ml
create mode 100644 builder/yajl.mli
create mode 100644 builder/yajl_tests.ml
--
2.1.0
9 years, 2 months
virt-v2v : 3 hours logs looping/hanging/doing things before starting upload
by Nicolas Ecarnot
Hi,
[This msg follows what I asked this morning on IRC, where I wrote that :]
After a good number of successful P2V using
virt-p2v-livecd-1.28.1-1.49.1-el7.iso, I'm stuck at converting an old
Suse Linux 10 64 bits.
Suse linux 10 64 bits, using virt-p2v-livecd-1.28.1-1.49.1-el7.iso to
P2V towards oVirt. After a nice connection to the P2V server, the P2V
GUI is showing its usual very verbose log (supermin, etc...) and got
stuck into a loop showing a 3 pages log of one single long line
beginning with "libguestfs: trace: command_lines = [...", and I see no
NFS mounting neither any disk filling.
Then...
Coming back from lunch break, I'm witnessing the upload process has
began. So eventually, it took 3 solid hours of unknown looping before
starting the upload...
Now I see the NFS disk filling, so I'm confident it's going to be fine.
IRC readers asked for the logs, so here are the link :
(the upload is still going on)
--
Nicolas ECARNOT
9 years, 2 months