Exemple #1
0
def drive_from_element(disk_devices, disk_element):
    # we try serial first for backward compatibility
    # REQUIRED_FOR: vdsm <= 4.2
    serial_elem = vmxml.find_first(disk_element, 'serial', None)
    if serial_elem is not None:
        serial = vmxml.text(serial_elem)
        try:
            return drive_by_serial(disk_devices, serial)
        except LookupError:
            pass  # try again by alias before to give up

    alias = core.find_device_alias(disk_element)
    return device_by_alias(disk_devices, alias)
Exemple #2
0
def drive_from_element(disk_devices, disk_element):
    # we try serial first for backward compatibility
    # REQUIRED_FOR: vdsm <= 4.2
    serial_elem = vmxml.find_first(disk_element, 'serial', None)
    if serial_elem is not None:
        serial = vmxml.text(serial_elem)
        try:
            return drive_by_serial(disk_devices, serial)
        except LookupError:
            pass  # try again by alias before to give up

    alias = core.find_device_alias(disk_element)
    return device_by_alias(disk_devices, alias)
Exemple #3
0
def xml_device_by_alias(device_xml, alias):
    """
    Return an XML device having the given alias.

    :param device_xml: parsed <devices> element, typically taken
      from DomainDescriptor.devices
    :type device_xml: DOM object
    :param alias: device alias
    :type alias: string
    :returns: DOM object of the device element having the given alias
    :raises: `LookupError` if no device with `alias` is found
    """
    for dom in vmxml.children(device_xml):
        xml_alias = core.find_device_alias(dom)
        if xml_alias and xml_alias == alias:
            return dom
    raise LookupError("Unable to find matching XML for device %r" % (alias, ))
Exemple #4
0
 def detachDevice(self, device_xml):
     if self.vm is not None:
         dev = xmlutils.fromstring(device_xml)
         alias = core.find_device_alias(dev)
         self.vm.onDeviceRemoved(alias)
Exemple #5
0
 def detachDevice(self, device_xml):
     if self.vm is not None:
         dev = xmlutils.fromstring(device_xml)
         alias = core.find_device_alias(dev)
         self.vm.onDeviceRemoved(alias)
Exemple #6
0
def device_from_xml_alias(devices, device_xml):
    dev = xmlutils.fromstring(device_xml)
    alias = core.find_device_alias(dev)
    return device_by_alias(devices, alias)
Exemple #7
0
def device_from_xml_alias(devices, device_xml):
    dev = xmlutils.fromstring(device_xml)
    alias = core.find_device_alias(dev)
    return device_by_alias(devices, alias)