Source code for virtualbox.library_ext.appliance
"""
Add helper code to the default IAppliance class.
"""
from virtualbox import library
from virtualbox.library import VirtualSystemDescriptionType as DescType
from virtualbox.library import VirtualSystemDescriptionValueType as DescValueType
# Define some default params for create session
[docs]class IAppliance(library.IAppliance):
__doc__ = library.IAppliance.__doc__
# Extend read to wait and interpret the values into Description
# objects.
[docs] def read(self, ova_path):
"Read and interpret ova file into this Appliance object."
p = super(IAppliance, self).read(ova_path)
p.wait_for_completion()
self.interpret()
warnings = self.get_warnings()
if warnings:
warning = Warning("\n".join(warnings))
warning.warnings = warnings
raise warning
read.__doc__ = library.IAppliance.read.__doc__
[docs] def find_description(self, name):
"Find a description for the given appliance name."
for desc in self.virtual_system_descriptions:
values = desc.get_values_by_type(DescType.name,
DescValueType.original)
if name in values:
break
else:
raise Exception("Failed to find description for %s" % name)
return desc
# Simply this call by setting options to default []
[docs] def import_machines(self, options=None):
if options is None:
options = []
return super(IAppliance, self).import_machines(options)
import_machines.__doc__ = library.IAppliance.import_machines.__doc__