#NEWLINE# def get_boot_device( self , task ) : #NEWLINE# #INDENT# "Get the current boot device for the task's node.\n\n        Provides the current boot device of the node. Be aware that not\n        all drivers support this.\n\n        :param task: a task from TaskManager.\n        :raises: InvalidParameterValue if any connection parameters are\n            incorrect.\n        :raises: MissingParameterValue if a required parameter is missing\n        :raises: SSHConnectFailed if ssh failed to connect to the node.\n        :raises: SSHCommandFailed on an error from ssh.\n        :raises: NodeNotFound if could not find a VM corresponding to any\n            of the provided MACs.\n        :returns: a dictionary containing:\n\n            :boot_device: the boot device, one of\n                :mod:`ironic.common.boot_devices` or None if it is unknown.\n            :persistent: Whether the boot device will persist to all\n                future boots or not, None if it is unknown.\n\n        " #NEWLINE# node = task . node #NEWLINE# driver_info = _parse_driver_info ( node ) #NEWLINE# driver_info [ 'macs' ] = driver_utils . get_node_mac_addresses ( self ) #NEWLINE# ssh_obj = _get_connection ( node ) #NEWLINE# response = { #NEWLINE# #INDENT# 'boot_device' : None , #NEWLINE# 'persistent' : None , #NEWLINE# #UNINDENT# } #NEWLINE# try : #NEWLINE# #INDENT# response [ 'boot_device' ] = _get_boot_device ( ssh_obj , driver_info ) #NEWLINE# #UNINDENT# except NotImplementedError : #NEWLINE# #INDENT# LOG . warning ( _LW ( 'Failed to get boot device for node %(node)s, virt_type %(vtype)s does not support this operation' ) , { #NEWLINE# #INDENT# 'node' : node . uuid , #NEWLINE# 'vtype' : driver_info [ 'virt_type' ] , #NEWLINE# #UNINDENT# } ) #NEWLINE# #UNINDENT# return response