dom0/qvm-start: support for custom Xen config

This commit is contained in:
Marek Marczykowski 2012-03-15 20:58:12 +01:00
parent 616a86d211
commit edecda6a97
2 changed files with 11 additions and 0 deletions

View File

@ -881,9 +881,15 @@ class QubesVm(object):
return args return args
@property
def uses_custom_config(self):
return self.conf_file != self.absolute_path(self.name + ".conf", None)
def create_config_file(self, file_path = None, source_template = None, prepare_dvm = False): def create_config_file(self, file_path = None, source_template = None, prepare_dvm = False):
if file_path is None: if file_path is None:
file_path = self.conf_file file_path = self.conf_file
if self.uses_custom_config:
return
if source_template is None: if source_template is None:
source_template = self.template source_template = self.template

View File

@ -41,6 +41,8 @@ def main():
help="Temporarily attach specified drive as CD/DVD") help="Temporarily attach specified drive as CD/DVD")
parser.add_option ("--dvm", action="store_true", dest="preparing_dvm", default=False, parser.add_option ("--dvm", action="store_true", dest="preparing_dvm", default=False,
help="Do actions necessary when preparing DVM image") help="Do actions necessary when preparing DVM image")
parser.add_option ("--custom-config", action="store", dest="custom_config", default=None,
help="Use custom Xen config instead of Qubes-generated one")
(options, args) = parser.parse_args () (options, args) = parser.parse_args ()
if (len (args) != 1): if (len (args) != 1):
@ -64,6 +66,9 @@ def main():
print >> sys.stderr, "This VM does not support attaching drives" print >> sys.stderr, "This VM does not support attaching drives"
exit (1) exit (1)
if options.custom_config:
vm.conf_file = options.custom_config
try: try:
vm.verify_files() vm.verify_files()
xid = vm.start(debug_console=options.debug_console, verbose=options.verbose, preparing_dvm=options.preparing_dvm) xid = vm.start(debug_console=options.debug_console, verbose=options.verbose, preparing_dvm=options.preparing_dvm)