예제 #1
0
    def run(self):
        """This must return a new dict of variables to use in parsing
           the template."""

        if not self.variableDict.has_key('enable'):
            return self.variableDict

        oldenables = self.variableDict['enable']
        del self.variableDict['enable']
        enable = TemplateVar('', key='enable')

        for record in oldenables.allRows():
            if record.len() >= 1:
                if record.len() >= 2:
                    value = record.options()[1:]
                else:
                    value = []
                enable.setMember(record.options()[0], value, noKey=True)
            else:
                raise ParseError, "Found 'enable' keyword with no arguments."

        # A helper method to add variables to the variableDict
        self.addVar(enable)

        return self.variableDict
예제 #2
0
    def doUsers(self):
        # Add 'realmadmins', 'realmotheradmins', 
        # 'realmusers' to variables
        group = 'default'
        key = None
        if self.variableDict.has_key('users'):
            if self.variableDict['users'].len() == 2:
                group = self.variableDict['users'][0]
                key = self.variableDict['users'][1]
            else:
                msg = "The 'users' keyword requires a group name and key."
                raise ParseError, msg

        realmadmins = self.adminUsers(group, key)
        t = TemplateVar(['realmadmins'] + realmadmins)
        self.addVar(t)
        
        if not self.haveVar('enable'):
            enable = TemplateVar('', key='enable')
        else:
            enable = self.variableDict['enable']

        if enable.hasMember('adminusers'):
            self.addVar(TemplateVar(enable.adminusers.options(), 
                                    key='realmotheradmins', noKey=True))
        else:
            self.addVar(TemplateVar([], key='realmotheradmins', noKey=True))

        if enable.hasMember('normalusers'):
            self.addVar(TemplateVar(enable.normalusers.options(), 
                                    key='realmusers', noKey=True))
        else:
            self.addVar(TemplateVar([], key='realmusers', noKey=True))