示例#1
0
文件: lookup.py 项目: vjuranek/vdsm
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)
示例#2
0
文件: lookup.py 项目: nirs/vdsm
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)
示例#3
0
文件: lookup.py 项目: vjuranek/vdsm
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, ))
示例#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)
示例#5
0
文件: vmfakelib.py 项目: oVirt/vdsm
 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)
示例#6
0
文件: lookup.py 项目: vjuranek/vdsm
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)
示例#7
0
文件: lookup.py 项目: nirs/vdsm
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)