Nothing cares about the relative order of the groups, and the
`showgroup' command wants to be able to look one up by name. Really,
the question is why I didn't do it like this the first time.
testaddr = TESTADDR
## Scan the configuration file and build the groups structure.
testaddr = TESTADDR
## Scan the configuration file and build the groups structure.
for sec in cp.sections():
pats = []
for tag in cp.options(sec):
for sec in cp.sections():
pats = []
for tag in cp.options(sec):
(p and not pp) or \
(p == pp and n.withinp(nn)),
pats))
(p and not pp) or \
(p == pp and n.withinp(nn)),
pats))
- groups.append((sec, pats))
## Done.
me.testaddr = testaddr
## Done.
me.testaddr = testaddr
def cmd_showconfig():
T.svcinfo('test-addr=%s' % CF.testaddr)
def cmd_showgroups():
def cmd_showconfig():
T.svcinfo('test-addr=%s' % CF.testaddr)
def cmd_showgroups():
- for sec, pats in CF.groups:
- T.svcinfo(sec)
+ for g in sorted(CF.groups.iterkeys()):
+ T.svcinfo(g)
- for s, p in CF.groups:
- if s == g:
- pats = p
- break
- else:
- raise T.TripeJobError('unknown-group', g)
+ try: pats = CF.groups[g]
+ except KeyError: raise T.TripeJobError('unknown-group', g)
for t, p, n in pats:
T.svcinfo('peer', t,
'target', p and str(p) or '(default)',
for t, p, n in pats:
T.svcinfo('peer', t,
'target', p and str(p) or '(default)',
## Now decide what to do.
changes = []
## Now decide what to do.
changes = []
- for g, pp in CF.groups:
+ for g, pp in CF.groups.iteritems():
if T._debug: print '# check group %s' % g
## Find out which peer in the group ought to be active.
if T._debug: print '# check group %s' % g
## Find out which peer in the group ought to be active.