Merge branch 'master' of git://git.qubes-os.org/marmarek/core-admin
This commit is contained in:
commit
473491032d
@ -46,8 +46,10 @@ def main():
|
|||||||
help="Create NetVM")
|
help="Create NetVM")
|
||||||
parser.add_option ("-s", "--standalone", action="store_true", dest="standalone", default=False,
|
parser.add_option ("-s", "--standalone", action="store_true", dest="standalone", default=False,
|
||||||
help="Create standalone VM - independent of template ")
|
help="Create standalone VM - independent of template ")
|
||||||
parser.add_option ("-r", "--root", dest="root", default=None,
|
parser.add_option ("-R", "--root-move-from", dest="root_move", default=None,
|
||||||
help="Use provided root.img instead of default/empty one (file will be MOVED)")
|
help="Use provided root.img instead of default/empty one (file will be MOVED)")
|
||||||
|
parser.add_option ("-r", "--root-copy-from", dest="root_copy", default=None,
|
||||||
|
help="Use provided root.img instead of default/empty one (file will be COPIED)")
|
||||||
parser.add_option ("-m", "--mem", dest="mem", default=None,
|
parser.add_option ("-m", "--mem", dest="mem", default=None,
|
||||||
help="Initial memory size (in MB)")
|
help="Initial memory size (in MB)")
|
||||||
parser.add_option ("-c", "--vcpus", dest="vcpus", default=None,
|
parser.add_option ("-c", "--vcpus", dest="vcpus", default=None,
|
||||||
@ -89,7 +91,13 @@ def main():
|
|||||||
exit (1)
|
exit (1)
|
||||||
label = QubesVmLabels[options.label]
|
label = QubesVmLabels[options.label]
|
||||||
|
|
||||||
if not options.standalone and options.root is not None:
|
if options.hvm and not options.template:
|
||||||
|
options.standalone = True
|
||||||
|
|
||||||
|
if options.hvm_template:
|
||||||
|
options.standalone = True
|
||||||
|
|
||||||
|
if not options.standalone and any([options.root_copy, options.root_move]):
|
||||||
print >> sys.stderr, "root.img can be specified only for standalone VMs"
|
print >> sys.stderr, "root.img can be specified only for standalone VMs"
|
||||||
exit (1)
|
exit (1)
|
||||||
|
|
||||||
@ -97,13 +105,15 @@ def main():
|
|||||||
print >> sys.stderr, "Template VM cannot be based on another template"
|
print >> sys.stderr, "Template VM cannot be based on another template"
|
||||||
exit (1)
|
exit (1)
|
||||||
|
|
||||||
if options.hvm and not options.template:
|
if options.root_copy and options.root_move:
|
||||||
options.standalone = True
|
print >> sys.stderr, "Only one of --root-move-from and --root-copy from can be specified"
|
||||||
|
exit(1)
|
||||||
|
|
||||||
if options.hvm_template:
|
if options.root_copy is not None and not os.path.exists(options.root_copy):
|
||||||
options.standalone = True
|
print >> sys.stderr, "File specified as root.img does not exists"
|
||||||
|
exit (1)
|
||||||
|
|
||||||
if options.root is not None and not os.path.exists(options.root):
|
if options.root_move is not None and not os.path.exists(options.root_move):
|
||||||
print >> sys.stderr, "File specified as root.img does not exists"
|
print >> sys.stderr, "File specified as root.img does not exists"
|
||||||
exit (1)
|
exit (1)
|
||||||
|
|
||||||
@ -170,9 +180,13 @@ def main():
|
|||||||
|
|
||||||
try:
|
try:
|
||||||
vm.create_on_disk(verbose=options.verbose, source_template=template)
|
vm.create_on_disk(verbose=options.verbose, source_template=template)
|
||||||
if options.root:
|
if options.root_move:
|
||||||
os.unlink(vm.root_img)
|
os.unlink(vm.root_img)
|
||||||
os.rename(options.root, vm.root_img)
|
os.rename(options.root_move, vm.root_img)
|
||||||
|
elif options.root_copy:
|
||||||
|
os.unlink(vm.root_img)
|
||||||
|
# use "cp" to preserve sparse file
|
||||||
|
subprocess.check_call(["cp", options.root_copy, vm.root_img])
|
||||||
|
|
||||||
except (IOError, OSError) as err:
|
except (IOError, OSError) as err:
|
||||||
print >> sys.stderr, "ERROR: {0}".format(err)
|
print >> sys.stderr, "ERROR: {0}".format(err)
|
||||||
|
Loading…
Reference in New Issue
Block a user