def hasTransformManagerNavigatorBindings(self,appdata,t_nodedata,n_nodedata): binding_q = leginondata.BindingSpecData(application=appdata) binding_q['from node alias'] = t_nodedata['alias'] binding_q['to node alias'] = n_nodedata['alias'] binding_q['event class string'] = 'MoveToTargetEvent' binding_results = binding_q.query() if binding_results: return True else: return False
def delBindingSpec(self, eventclass_string, fromnodealias, tonodealias): bindingspecdata = leginondata.BindingSpecData() bindingspecdata['event class string'] = eventclass_string bindingspecdata['from node alias'] = fromnodealias bindingspecdata['to node alias'] = tonodealias bindingspecdata['application'] = self.data for spec in self.bindingspecs: same = True for key in bindingspecdata: if bindingspecdata[key] != spec[key]: same = False if same: self.bindingspecs.remove(spec)
def addBindingSpec(self, eventclass_string, fromnodealias, tonodealias): bindingspecdata = leginondata.BindingSpecData() bindingspecdata['event class string'] = eventclass_string bindingspecdata['from node alias'] = fromnodealias bindingspecdata['to node alias'] = tonodealias bindingspecdata['application'] = self.data for spec in self.bindingspecs: same = True for key in bindingspecdata: if bindingspecdata[key] != spec[key]: same = False if same: raise ValueError('binding already exists in application') self.bindingspecs.append(bindingspecdata)
def load_from_db(self, name): instance = leginondata.ApplicationData(name=name) applicationdatalist = instance.query() try: appdata = applicationdatalist[0] except IndexError: raise ValueError('no such application') nodeinstance = leginondata.NodeSpecData(application=appdata) self.nodespecs = nodeinstance.query() bindinginstance = leginondata.BindingSpecData(application=appdata) self.bindingspecs = bindinginstance.query() self.applicationdata = appdata ## create a copy so we can modify it self.data = leginondata.ApplicationData(initializer=appdata)
def importLaunchedApplications(self): print 'importing Applications....' source_session = self.getSourceSession() q = leginondata.LaunchedApplicationData(session=source_session) launched_apps = self.research(q) self.publish(launched_apps) for appdata in map((lambda x: x['application']), launched_apps): q = leginondata.NodeSpecData(application=appdata) nodespecs = self.research(q) self.publish(nodespecs) q = leginondata.BindingSpecData(application=appdata) bindingspecs = self.research(q) self.publish(bindingspecs)