def METHOD_NAME(self):
    job_id_list = []
    for device in self.params["device_tag"].split():
        device_params = self.params.object_params(device)
        snapshot_tags = device_params["snapshot_tags"].split()
        self.device_node = self.get_node_name(device)
        options = ["base-node", "top-node", "speed"]
        arguments = self.params.copy_from_keys(options)
        arguments["base-node"] = self.get_node_name(device)
        arguments["top-node"] = self.get_node_name(snapshot_tags[-2])
        device = self.get_node_name(snapshot_tags[-1])
        if len(self.params["device_tag"].split()) == 1:
            backup_utils.block_commit(self.main_vm, device, **arguments)
        else:
            commit_cmd = backup_utils.block_commit_qmp_cmd
            cmd, args = commit_cmd(device, **arguments)
            job_id = args.get("job-id", device)
            job_id_list.append(job_id)
            self.main_vm.monitor.cmd(cmd, args)
    for job_id in job_id_list:
        job_utils.wait_until_block_job_completed(self.main_vm, job_id)