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
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
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
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