Use "None" in *_img attr for "not applicable"

Some VM types do not have particular disk image. Instead of enumerating
cases in storage class, signal unused image from VM class by setting
appropriate attr to None.
This commit is contained in:
Marek Marczykowski-Górecki 2013-08-02 20:33:28 +02:00
parent 396011e227
commit ada5ebd784
2 changed files with 6 additions and 4 deletions

View File

@ -145,12 +145,12 @@ class QubesVmStorage(object):
"VM directory doesn't exist: {0}".\ "VM directory doesn't exist: {0}".\
format(self.vmdir)) format(self.vmdir))
if self.vm.updateable and not os.path.exists (self.root_img): if self.root_img and not os.path.exists (self.root_img):
raise QubesException ( raise QubesException (
"VM root image file doesn't exist: {0}".\ "VM root image file doesn't exist: {0}".\
format(self.root_img)) format(self.root_img))
if not os.path.exists (self.private_img): if self.private_img and not os.path.exists (self.private_img):
raise QubesException ( raise QubesException (
"VM private image file doesn't exist: {0}".\ "VM private image file doesn't exist: {0}".\
format(self.private_img)) format(self.private_img))
@ -168,12 +168,12 @@ class QubesVmStorage(object):
source_template = self.vm.template source_template = self.vm.template
# Re-create only for template based VMs # Re-create only for template based VMs
if source_template is not None: if source_template is not None and self.volatile_img:
if os.path.exists(self.volatile_img): if os.path.exists(self.volatile_img):
os.remove(self.volatile_img) os.remove(self.volatile_img)
# For StandaloneVM create it only if not already exists (eg after backup-restore) # For StandaloneVM create it only if not already exists (eg after backup-restore)
if not os.path.exists(self.volatile_img): if self.volatile_img and not os.path.exists(self.volatile_img):
if verbose: if verbose:
print >> sys.stderr, "--> Creating volatile image: {0}...".\ print >> sys.stderr, "--> Creating volatile image: {0}...".\
format(self.volatile_img) format(self.volatile_img)

View File

@ -44,6 +44,8 @@ class QubesXenVmStorage(QubesVmStorage):
self.modules_dev = "xvdd" self.modules_dev = "xvdd"
def _format_disk_dev(self, path, script, vdev, rw=True, type="disk", domain=None): def _format_disk_dev(self, path, script, vdev, rw=True, type="disk", domain=None):
if path is None:
return ''
template = " <disk type='block' device='{type}'>\n" \ template = " <disk type='block' device='{type}'>\n" \
" <driver name='phy'/>\n" \ " <driver name='phy'/>\n" \
" <source dev='{path}'/>\n" \ " <source dev='{path}'/>\n" \