diff -r 000000000000 -r f5aecaad0bcf BorgInstance.py --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/BorgInstance.py Thu Jan 18 21:42:00 2018 +0000 @@ -0,0 +1,49 @@ +# +# Borgend borg launcher / processor +# + +import json +import subprocess +import config +import Queue +import Thread + +def linereader(stream, instance, queue) + # What to do on error? + for line in iter(stream.readline, b''): + status=json.loads(line) + queue.put({'identifier': instance.identifier, + 'operation': instance.operation, + 'status': status}) + out.close() + +class BorgInstance: + + def __init__(self, identifier, operation, args): + self.identifier=identifier; + self.operation=operation; + self.args=args; + + def construct_cmdline(self): + ??? + + def launch(self, queue): + # What to do with stderr? Is it needed? + self.proc=subprocess.Popen(self.construct_cmdline(), + stdout=subprocess.PIPE, + stderr=subprocess.PIPE) + linereaderargs=(self.proc.stdout, self, queue) + self.t=Thread(target=linereader, args=linereaderargs) + t.daemon=True + t.start() + + def read_output(): + try: + obj=self.queue.get_nowait() + except Empty: + obj=Empty + return obj + + + +