On Thu, Jun 25, 2015 at 01:27:23PM +0200, Eren Yagdiran wrote: > Allow users to add disk images to their sandbox. Only disk images are supported so far, but the > parameter is intentionally designed for future changes. > --- > bin/virt-sandbox.c | 37 +++++++++++++++++++++++++++++++++++++ > 1 file changed, 37 insertions(+) > > diff --git a/bin/virt-sandbox.c b/bin/virt-sandbox.c > index 1ab2f8a..ac56346 100644 > --- a/bin/virt-sandbox.c > +++ b/bin/virt-sandbox.c > @@ -63,6 +63,7 @@ int main(int argc, char **argv) { > GMainLoop *loop = NULL; > GError *error = NULL; > gchar *name = NULL; > + gchar **disks = NULL; > gchar **mounts = NULL; > gchar **includes = NULL; > gchar *includefile = NULL; > @@ -92,6 +93,8 @@ int main(int argc, char **argv) { > N_("name of the sandbox"), "NAME" }, > { "root", 'r', 0, G_OPTION_ARG_STRING, &root, > N_("root directory of the sandbox"), "DIR" }, > + { "disk", ' ', 0, G_OPTION_ARG_STRING_ARRAY, &disks, > + N_("add a disk in the guest"), "TYPE:TARGET=SOURCE,FORMAT=FORMAT" }, > { "mount", 'm', 0, G_OPTION_ARG_STRING_ARRAY, &mounts, > N_("mount a filesystem in the guest"), "TYPE:TARGET=SOURCE" }, > { "include", 'i', 0, G_OPTION_ARG_STRING_ARRAY, &includes, > @@ -182,6 +185,13 @@ int main(int argc, char **argv) { > gvir_sandbox_config_set_username(cfg, "root"); > } > > + if (disks && > + !gvir_sandbox_config_add_disk_strv(cfg, disks, &error)) { > + g_printerr(_("Unable to parse disks: %s\n"), > + error && error->message ? error->message : _("Unknown failure")); > + goto cleanup; > + } > + > if (mounts && > !gvir_sandbox_config_add_mount_strv(cfg, mounts, &error)) { > g_printerr(_("Unable to parse mounts: %s\n"), > @@ -319,6 +329,33 @@ inheriting the host's root filesystem. > NB. C<DIR> must contain a matching install of the libvirt-sandbox > package. This restriction may be lifted in a future version. > > +=item B<--disk TYPE:TARGET=SOURCE,FORMAT=FORMAT> > + > +Sets up a disk inside the sandbox by using B<SOURCE> with target device B<TARGET> > +and type B<TYPE> and format B<FORMAT>. Example: file:hda=/var/lib/sandbox/demo/tmp.qcow2,format=qcow2 > +Format is an optional parameter. > + > +=over 4 > + > +=item B<TYPE> > + > +Type parameter can be set to "file". > + > +=item B<TARGET> > + > +Target parameter can be set to "hda" or any other libvirt supported target disk Per the discussion on the previous set of patches, we must *not* expose the libvirt <disk> target device string to the end user at all, because it means the user has to know about the differences in virtualizaton technology used. The latter patches in your series support the /dev/disk/by-tag/TAGNAME symlink to a /dev/TARGET device node, so the user should only be providing the "TAGNAMNE" and not the TARGET. ie, -disk file:data=/var/lib/sandbox/demo/tmp.qcow2,format=qcow2 would end up creating a link /dev/disk/by-tag/data which symlinked to /dev/vda on KVM, or /dev/sda on LXC, or /dev/xvda on Xen (hypothetical) etc. Regards, Daniel -- |: http://berrange.com -o- http://www.flickr.com/photos/dberrange/ :| |: http://libvirt.org -o- http://virt-manager.org :| |: http://autobuild.org -o- http://search.cpan.org/~danberr/ :| |: http://entangle-photo.org -o- http://live.gnome.org/gtk-vnc :| -- libvir-list mailing list libvir-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/libvir-list