#!/usr/bin/python

"""
Finds hosts that are shared between both cautotest and cautotest-cq.
"""

import common
from autotest_lib.server import frontend

cautotest = frontend.AFE(server='cautotest')
cautotest_cq = frontend.AFE(server='cautotest-cq')

cautotest_hosts = [x['hostname'] for x in cautotest.run('get_hosts')]
cautotest_cq_hosts = [x['hostname'] for x in cautotest_cq.run('get_hosts')]

for host in cautotest_hosts:
    if host in cautotest_cq_hosts:
        print host
