harness: machines: define custom buildall targets for armv7/armv8 machines
[barrelfish] / tools / harness / siteconfig / __init__.py
1 ##########################################################################
2 # Copyright (c) 2009, 2013, ETH Zurich.
3 # All rights reserved.
4 #
5 # This file is distributed under the terms in the attached LICENSE file.
6 # If you do not find this file, copies can be found by writing to:
7 # ETH Zurich D-INFK, Haldeneggsteig 4, CH-8092 Zurich. Attn: Systems Group.
8 ##########################################################################
9
10 import socket, os
11 import debug
12
13 class BaseSite(object):
14     def __getattr__(self, name):
15         raise AttributeError('site configuration (%s) has no parameter named %s'
16                              % (self.__name__, name))
17
18     def get_load_generator(self):
19         """Returns a (username, hostname/IP) tuple for a host to which we can 
20         SSH to run network load generators. May be called multiple times."""
21         raise NotImplementedError
22
23 # this refers to the singleton site instance after importing the correct module
24 site = None
25
26 # Are we at ETH?
27 if os.path.isdir('/home/netos') and socket.getfqdn().endswith('.ethz.ch'):
28     import eth
29 elif socket.getfqdn().endswith('.europe.corp.microsoft.com'):
30     import msrc
31 elif socket.getfqdn().endswith('triangle') or socket.getfqdn().endswith('.cs.washington.edu'):
32     import uw
33 else:
34     debug.warning("unable to guess site, using ETH... expect breakage!")
35     import eth
36
37 # shortcut to lookup a configuration parameter for a site
38 def get(name):
39     return getattr(site, name)