# -*- python -*-
# ex: set syntax=python:

# Copyright 2015 The Chromium Authors. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.

# This is an list of dictionaries to describe slaves.
# This list is intentionally flat to be easy to filter arbitrarily.

slaves = [
  # Release builders.
  {
    'master': 'V8FYI',
    'builder': ['V8 lkgr finder',
                'Auto-roll - push',
                'Auto-roll - deps',
                'Auto-roll - v8 deps',
                'Auto-roll - release process',
                'Auto-roll - v8rel'],
    'hostname': 'vm178-m3',
    'os': 'linux',
    'version': 'trusty',
    'bits': '64',
  },
  # Blink builders.
  {
    'master': 'V8FYI',
    'builder': ['V8-Blink Win'],
    'hostname': 'vm6-m3',
    'os': 'win',
    'version': 'win7',
    'bits': '64',
  },
  {
    'master': 'V8FYI',
    'builder': ['V8-Blink Mac'],
    'hostname': 'vm634-m3',
    'os': 'mac',
    'version': '10.9',
    'bits': '64',
  },
  {
    'master': 'V8FYI',
    'builder': ['V8-Blink Linux 64 - ignition'],
    'hostname': 'slave3-c3',
    'os': 'linux',
    'version': 'trusty',
    'bits': '64',
  },
  # Chromium bots.
  {
    'master': 'V8FYI',
    'builder': ['Android Builder',
                'Linux Debug Builder',
                'Linux ASAN Builder'],
    'hostname': 'slave192-c3',
    'os': 'linux',
    'version': 'trusty',
    'bits': '64',
  },
  {
    'master': 'V8FYI',
    'builder': ['Linux Snapshot Builder',
                'V8 Linux GN',
                'V8 Android GN (dbg)'],
    'hostname': 'slave193-c3',
    'os': 'linux',
    'version': 'trusty',
    'bits': '64',
  },
  {
    'master': 'V8FYI',
    'builder': 'Linux Tests (dbg)(1)',
    'hostname': 'slave194-c3',
    'os': 'linux',
    'version': 'trusty',
    'bits': '64',
  },
  # Clusterfuzz builders.
  {
    'master': 'V8FYI',
    'builder': ['Chromium ASAN (symbolized)',
                'Chromium ASAN - debug'],
    'hostname': 'slave188-c3',
    'os': 'linux',
    'version': 'trusty',
    'bits': '64',
  },
  {
    'master': 'V8FYI',
    'builder': ['Chromium Win SyzyASAN'],
    'hostname': 'vm317-m3',
    'os': 'win',
    'version': 'win7',
    'bits': '64',
  },
  {
    'master': 'V8FYI',
    'builder': ['V8 - node.js integration'],
    'hostname': 'slave27-c3',
    'os': 'linux',
    'version': 'trusty',
    'bits': '64',
  },
  # GPU builders.
  {
    'master': 'V8FYI',
    'builder': ['Win Release (NVIDIA)'],
    'hostname': 'vm98-m3',
    'os': 'win',
    'version': 'win7',
    'bits': '64',
  },
  {
    'master': 'V8FYI',
    'builder': ['Mac Release (Intel)'],
    'hostname': 'vm99-m3',
    'os': 'mac',
    'version': '10.9',
    'bits': '64',
  },
  {
    'master': 'V8FYI',
    'builder': ['Linux Release (NVIDIA)'],
    'hostname': 'slave223-c3',
    'os': 'linux',
    'version': 'trusty',
    'bits': '64',
  },
  {
    'master': 'V8FYI',
    'builder': ['Android Release (Nexus 5X)'],
    'hostname': 'slave243-c3',
    'os': 'linux',
    'version': 'trusty',
    'bits': '64',
  }
]

for i in [195, 196]:
  slaves.append({
    'master': 'V8FYI',
    'builder': 'V8-Blink Linux 64',
    'hostname': 'slave%d-c3' % i,
    'os': 'linux',
    'version': 'trusty',
    'bits': '64',
  })

for i in [241, 242]:
  slaves.append({
    'master': 'V8FYI',
    'builder': 'V8-Blink Linux 64 (dbg)',
    'hostname': 'slave%d-c3' % i,
    'os': 'linux',
    'version': 'trusty',
    'bits': '64',
  })
