コード例 #1
0
ファイル: DatabaseExporter.py プロジェクト: tomthorogood/Mogu
 def export_validators(self,callback=None):
     self.validatorWriters = []
     for validator in self.roots['validator']:
         identifier = Keyspace.identifier('validator',validator)
         attrs = self.db.hgetall(validator)
         self.validatorWriters.append(ScriptWriter.ValidatorWriter(identifier,attrs))
     self.convert_output(self.validatorWriters)
     if callback:
         return callback(self.scripts)
     else:
         return self.scripts
コード例 #2
0
ファイル: DatabaseExporter.py プロジェクト: tomthorogood/Mogu
 def export_policies(self,callback=None):
     self.policyWriters = []
     for policy in self.roots['policy']:
         identifier = Keyspace.identifier('policy',policy)
         attrs = self.db.hgetall(policy)
         self.policyWriters.append(ScriptWriter.PolicyWriter(identifier,attrs))
     self.convert_output(self.policyWriters)
     if callback:
         return callback(self.scripts)
     else:
         return self.scripts
コード例 #3
0
ファイル: DatabaseExporter.py プロジェクト: tomthorogood/Mogu
    def export_abstract_widget(self,datatype,container,callback=None):
        container = []
        for widget in self.roots[datatype]:
            identifier = Keyspace.identifier(datatype,widget)
            events = Keyspace.zipstring(datatype,identifier,'events')
            children = Keyspace.zipstring(datatype,identifier,'children')
            
            has_events = self.db.exists(events)
            has_children = self.db.exists(children)
            if has_events:
                triggerlist = self.db.lrange(events,0,self.db.llen(events))
                eventdict = {}
                for trigger in triggerlist:
                    commandlist = Keyspace.zipstring(datatype,identifier,'events',trigger)
                    eventdict[trigger] = self.db.lrange(commandlist,0,self.db.llen(commandlist))
                events = eventdict
            else:
                events = None
            if has_children:
                childlist = self.db.lrange(children,0,self.db.llen(children))
                children = childlist
            else:
                children = None

            attributes = self.db.hgetall(widget)
            
            if datatype == 'widget':
                container.append(ScriptWriter.WidgetWriter(
                    identifier,attributes,children=children,events=events)
                )
            elif datatype == 'template':
                container.append(ScriptWriter.TemplateWriter(
                    identifier,attributes,children=children,events=events)
                )

        self.convert_output(container)
        if callback:
            return callback(self.scripts)
        else:
            return self.scripts
コード例 #4
0
ファイル: DatabaseExporter.py プロジェクト: tomthorogood/Mogu
    def export_data(self, callback=None):
        self.dataWriters = []
        for data in self.roots['data']:
            identifier = Keyspace.identifier('data',data)
            redistype = self.db.type(data)
            data_object = None
            if redistype == 'string':
                data_object = self.db.get(data)
            elif redistype == 'hash':
                data_object = self.db.hgetall(data)
            elif redistype == 'list':
                data_object = self.db.lrange(data,0,self.db.llen(data))
            self.dataWriters.append(ScriptWriter.DataWriter(identifier,data_object))

        self.convert_output(self.dataWriters)
        if callback:
            return callback(self.scripts)
        else:
            return self.scripts