def mbtiles_image_tiles(self):
    tile_count = self.mbtiles.execute('select count(zoom_level) from tiles;').fetchone()[0]

    # Progress bar
    widgets = ['- Uploading %s image tiles: ' % (tile_count), progressbar.Percentage(), ' ', progressbar.Bar(), ' ', progressbar.ETA()]
    progress = progressbar.ProgressBar(widgets = widgets, maxval = tile_count).start()
    completed = 0

    # Create eventlet pile
    pile = eventlet.GreenPile(self.args.concurrency)

    # Get tiles
    tiles = self.mbtiles.execute('select zoom_level, tile_column, tile_row, tile_data from tiles;')
    t = tiles.fetchone()
    while t:
      key = '%s/%s/%s/%s.png' % (self.tileset, t[0], t[1], t[2])
      pile.spawn(self.send_file, key, t[3])

      # Get next and update
      t = tiles.fetchone()
      completed = completed + 1
      progress.update(completed)

    # Wait for pile and stop progress bar
    list(pile)
    progress.finish()
Test to reboot the system with a timeout
dataset/ETHPy150Open MinnPost/mbtiles2s3/mbtiles2s3/mbtiles2s3.py/MBTiles2S3.mbtiles_image_tiles--crossover with--dataset/ETHPy150Open saltstack/salt/tests/unit/modules/win_system_test.py/WinSystemTestCase.test_reboot_with_timeout_in_minutes