@task_manager.require_exclusive_lock
    def set_boot_device(self, task, device, persistent=False):
        if device not in self.get_supported_boot_devices(task):
            raise exception.InvalidParameterValue(_(
                "Invalid boot device %s specified.") % device)

        seamicro_info = _parse_driver_info(task.node)
        try:
            server = _get_server(seamicro_info)
            boot_device = _BOOT_DEVICES_MAP[device]
            server.set_boot_order(boot_device)
        except seamicro_client_exception.ClientException as ex:
            LOG.error(_LE("Seamicro set boot device failed for node "
                          "%(node)s with the following error: %(error)s"),
                      {'node': task.node.uuid, 'error': ex})
            raise exception.IronicException(message=six.text_type(ex))
Like open but method is enforced to PUT.
dataset/ETHPy150Open openstack/ironic/ironic/drivers/modules/seamicro.py/Management.set_boot_device--crossover with--dataset/ETHPy150Open IanLewis/kay/kay/lib/werkzeug/test.py/Client.put