Esempio n. 1
0
 def _update_boot_option(self, instance):
     try:
         domain = self._compute_driver._lookup_by_name(instance['name'])
     except exception.NotFound:
         LOG.error("instance %s disappeared while update boot option" %
                   instance['uuid'])
         return
     xml = domain.XMLDesc(0)
     root = etree.fromstring(xml)
     metadata = instance.get('metadata', None)
     if metadata is None:
         self._compute_driver.disable_boot_order_options(root, domain)
         self._compute_driver.set_default_boot_order(root, domain)
         return
     boot_option = None
     if isinstance(metadata, dict):
         boot_option = metadata.get('__bootDev', None)
     else:
         for item in metadata:
             if item['key'] == '__bootDev':
                 boot_option = item['value']
                 break
     if boot_option is None:
         self._compute_driver.disable_boot_order_options(root, domain)
         self._compute_driver.set_default_boot_order(root, domain)
         return
     if not hw_utils.is_valid_boot_option(boot_option):
         return
     boot_option_list = boot_option.split(',')
     self._compute_driver.disable_boot_order_options(root, domain)
     self._compute_driver.update_boot_order_option(root, domain,
                                                   boot_option_list)
 def _update_boot_option(self, instance):
     try:
         domain = self._compute_driver._lookup_by_name(instance['name'])
     except exception.NotFound:
         LOG.error(
             "instance %s disappeared while update boot option"
             % instance['uuid'])
         return
     xml = domain.XMLDesc(0)
     root = etree.fromstring(xml)
     metadata = instance.get('metadata', None)
     if metadata is None:
         self._compute_driver.disable_boot_order_options(root, domain)
         self._compute_driver.set_default_boot_order(root, domain)
         return
     boot_option = None
     if isinstance(metadata, dict):
         boot_option = metadata.get('__bootDev', None)
     else:
         for item in metadata:
             if item['key'] == '__bootDev':
                 boot_option = item['value']
                 break
     if boot_option is None:
         self._compute_driver.disable_boot_order_options(root, domain)
         self._compute_driver.set_default_boot_order(root, domain)
         return
     if not hw_utils.is_valid_boot_option(boot_option):
         return
     boot_option_list = boot_option.split(',')
     self._compute_driver.disable_boot_order_options(root, domain)
     self._compute_driver.update_boot_order_option(root, domain,
                                                   boot_option_list)
Esempio n. 3
0
def _update_boot_option(xml, metadata):
    root = etree.fromstring(xml)
    remove_boot_dev_options(root)
    remove_boot_order_options(root)
    set_default_boot_order(root)
    if metadata is None:
        return etree.tostring(root, pretty_print=True)
    boot_option = None
    if isinstance(metadata, dict):
        boot_option = metadata.get('__bootDev', None)
    else:
        for item in metadata:
            if item['key'] == '__bootDev':
                boot_option = item['value']
                break
    if boot_option is None or not hw_utils.is_valid_boot_option(boot_option):
        return etree.tostring(root, pretty_print=True)
    boot_option_list = boot_option.split(',')
    remove_boot_order_options(root)
    update_boot_order_option(root, boot_option_list)
    return etree.tostring(root, pretty_print=True)
Esempio n. 4
0
def _update_boot_option(xml, metadata):
    root = etree.fromstring(xml)
    remove_boot_dev_options(root)
    remove_boot_order_options(root)
    set_default_boot_order(root)
    if metadata is None:
        return etree.tostring(root, pretty_print=True)
    boot_option = None
    if isinstance(metadata, dict):
        boot_option = metadata.get('__bootDev', None)
    else:
        for item in metadata:
            if item['key'] == '__bootDev':
                boot_option = item['value']
                break
    if boot_option is None or not hw_utils.is_valid_boot_option(boot_option):
        return etree.tostring(root, pretty_print=True)
    boot_option_list = boot_option.split(',')
    remove_boot_order_options(root)
    update_boot_order_option(root, boot_option_list)
    return etree.tostring(root, pretty_print=True)