1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
| # Copyright (c) 2012 The Chromium OS Authors. All rights reserved.
| # Use of this source code is governed by a BSD-style license that can be
| # found in the LICENSE file.
|
| import logging, sys
|
| from config import rpm_config
| import rpm_controller
|
| LOGGING_FORMAT = rpm_config.get('GENERAL','logging_format')
| oyster_rpm_name_format = 'chromeos1-rack%d-rpm1'
| atlantis_rpm_name_format = 'chromeos2-row%d-rack%d-rpm1'
| DEFAULT_OYSTERBAY_OUTLET_MAP = {
| 1 : 'host1',
| 2 : 'host2',
| 4 : 'host3',
| 5 : 'host4',
| 7 : 'host5',
| 8 : 'host6',
| 9 : 'host7',
| 10 : 'host8',
| 12 : 'host9',
| 13 : 'host10',
| 15 : 'host11',
| 16 : 'host12'
| }
| DEFAULT_ATLANTIS_OUTLET_MAP = {
| 1 : 'host1',
| 2 : 'host7',
| 4 : 'host2',
| 5 : 'host8',
| 7 : 'host3',
| 8 : 'host9',
| 9 : 'host4',
| 10 : 'host10',
| 12 : 'host5',
| 13 : 'host11',
| 15 : 'host6',
| 16 : 'host12'
| }
|
|
| def setup_rpm(rpm_name):
| logging.debug('Setting up %s.', rpm_name)
| rpm = rpm_controller.SentryRPMController(rpm_name)
| if rpm_name.startswith('chromeos1'):
| outlet_mapping = DEFAULT_OYSTERBAY_OUTLET_MAP
| else:
| outlet_mapping = DEFAULT_ATLANTIS_OUTLET_MAP
| if not rpm.setup(outlet_mapping):
| logging.error('Failed to set up %s.', rpm_name)
|
|
| def main():
| if len(sys.argv) != 2:
| print 'USAGE: python %s [rpm|atlantis|oyster]' % sys.argv[0]
| print 'atlantis|oyster: implies all RPMs inside that lab.'
| return
| if sys.argv[1] != 'atlantis' and sys.argv[1] != 'oyster':
| setup_rpm(sys.argv[1])
| return
| if sys.argv[1] == 'oyster':
| logging.debug('Setting up All RPM devices in lab: Oyster Bay.')
| for rack in range(3,8):
| setup_rpm(oyster_rpm_name_format % rack)
| return
| logging.debug('Setting up All RPM devices in lab: Atlantis.')
| for row in range(1,6):
| for rack in range(1,8):
| if ((row == 1 and rack == 1) or (row == 1 and rack == 2) or
| (row == 5 and rack == 6) or (row ==5 and rack == 7)):
| # These RPM's do not follow the normal layout.
| continue
| setup_rpm(atlantis_rpm_name_format % (row, rack))
|
|
| if __name__ == '__main__':
| logging.basicConfig(level=logging.DEBUG, format=LOGGING_FORMAT)
| main()
|
|