Ignore:
Timestamp:
Nov 30, 2010 4:45:00 PM (13 years ago)
Author:
Ted Faber <faber@…>
Branches:
axis_example, compt_changes, info-ops, master
Children:
4692a16
Parents:
c002cb2
Message:

Support for priorities and export projects

File:
1 edited

Legend:

Unmodified
Added
Removed
  • fedd/federation/access.py

    rc002cb2 r1f6a573  
    5353            self.value = value
    5454            self.priority = pri
     55        def __str__(self):
     56            return "%s: %s (%d)" % (self.attr, self.value, self.priority)
    5557
    5658    def __init__(self, config=None, auth=None):
     
    140142        """
    141143
    142         map_re = re.compile("(\S+)\s+->\s+(.*)");
     144        map_re = re.compile("(\S+)\s+->\s+(.*)")
     145        priority_re = re.compile("([^,]+),\s*(\d+)")
     146
    143147        if access_obj is None:
    144148            access_obj = lambda(x): "%s" % x
    145149
    146150        self.access = []
     151        priorities = { }
    147152
    148153        f = open(fn, 'r')
     
    160165                    continue
    161166
     167                # If a priority is found, collect them
     168                m = priority_re.match(line)
     169                if m:
     170                    try:
     171                        priorities[m.group(1)] = int(m.group(2))
     172                    except ValueError, e:
     173                        if self.log:
     174                            self.log.debug("Bad priority in %s line %d" % \
     175                                    (fn, lineno))
     176                    continue
     177
    162178                # Nothing matched to here: unknown line - raise exception
    163179                # (finally will close f)
     
    167183        finally:
    168184            if f: f.close()
     185
     186        # Set priorities
     187        for a in self.access:
     188            if a.attr in priorities:
     189                a.priority = priorities[a.attr]
    169190
    170191    def write_state(self):
Note: See TracChangeset for help on using the changeset viewer.