On Fri, May 10, 2013 at 02:29:25PM -0400, dwalsh(a)redhat.com wrote:
From: Dan Walsh <dwalsh(a)redhat.com>
Add similar support to virt-sandbox-service that is in virt-sandbox
to add guest-bind, host-bind and host-image mount points on the command
line. Openshift needs feature.
---
bin/virt-sandbox-service | 38 ++++++++++++++++++++--
bin/virt-sandbox-service-bash-completion.sh | 4 ++-
bin/virt-sandbox-service-create.pod | 49 ++++++++++++++++++++++++++---
3 files changed, 82 insertions(+), 9 deletions(-)
diff --git a/bin/virt-sandbox-service b/bin/virt-sandbox-service
index d7f43a5..0c656d7 100755
--- a/bin/virt-sandbox-service
+++ b/bin/virt-sandbox-service
@@ -330,12 +340,10 @@ class GenericContainer(Container):
sys.stdout.write(_("Created sandbox container image %s\n") %
self.image)
else:
sys.stdout.write(_("Created sandbox container dir %s\n") %
self.dest)
+ self.add_mounts()
self.save_config()
def create(self):
- config_path = self.get_config_path()
- if os.path.exists(config_path):
- raise ValueError([_("%s already exists") % config_path ])
You're removing code here that you just added in the previous patch.
@@ -1007,6 +1017,25 @@ class CheckUnit(argparse.Action):
unitfiles = [ (value, src) ]
setattr(namespace, self.dest, unitfiles)
+valid_mounts = { "host-bind", "host-image", "guest-bind"
}
+class AddMount(argparse.Action):
+ def __call__(self, parser, namespace, values, option_string=None):
+ mounts = getattr(namespace, self.dest)
+ mrec = values.split(":")
+ if mrec[0] not in valid_mounts:
+ raise ValueError([_("Invalid mount type '%s'. Valid types
%s." % ( mrec[0], ",".join(valid_mounts)))])
+ try:
+ dest,src = mrec[1].split("=");
+ mdict = {"type":mrec[0], "src": src,
"dest":dest }
+ except (IndexError, ValueError):
+ raise ValueError([_("Invalid mount '%s' specification.") %
values ])
All this code can just go away - the gvir_config_add_mount_strv does
validation already.
+
+ if mounts:
+ mounts.append(values)
+ else:
+ mounts = [values]
+ setattr(namespace, self.dest, mounts)
+
class SetNet(argparse.Action):
def __call__(self, parser, namespace, values, option_string=None):
nets = getattr(namespace, self.dest)
@@ -1056,6 +1085,9 @@ def gen_create_args(subparser):
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 :|