def proc_evt_variable_get(self, task, evt): """Process variable_get event.""" handle = evt.arg('handle', '') dest = evt.arg('dest', '') if handle == '' and localhost(dest): key = evt.arg('key') if self.runtime.vars.has_key(key): value = self.runtime.vars[key] task.proc_cmd(command.variable_value(key, value, handle=handle, dest=dest)) else: task.proc_cmd(command.variable_value(key, None, handle=handle, error="Undefined variable.", dest=dest)) return True else: key = evt.arg('key') s = repr(("command.variable_value", key, handle, dest)) if self.__waiting_tasks.has_key(s): _, l = self.__waiting_tasks[s] if task not in l: l.append(task) log.debug("Controller.__waiting_tasks=%r", self.__waiting_tasks) return True _, l = self.__waiting_tasks[s] = (evt, [task]) log.debug("Controller.__waiting_tasks=%r", self.__waiting_tasks)
def proc_evt(self, evt): evev = evt.event() if evev in ['variable_set', 'variable_get']: handle = evt.arg('handle', '') dest = evt.arg('dest', '') key = evt.arg('key') if evev == 'variable_set': self.set_var(key, handle, dest, evt.arg('value')) else: value = self.get_var(key, handle, dest) return command.variable_value(key, value, handle=handle, dest=dest)