#!/bin/env python from twisted.spread import pb from twisted.internet import reactor import socket class PbTester(object): def __init__(self): print "Starting client" # self.remote_hello = None # self.remote_report_load = None def runTests(self): self.connect().addCallback( lambda _: self.sayHello()).addCallback( lambda _: self.report_load()).addCallback( lambda _: reactor.stop() ) def connect(self): factory = pb.PBClientFactory() reactor.connectTCP("localhost",8789, factory) return factory.getRootObject().addCallback(self._connected) def _connected(self, rootObj): self.remote_hello = rootObj self.remote_report_load = rootObj def sayHello(self): print "Calling hello" return self.remote_hello.callRemote('hello') def report_load(self): loadavg_file = open("/proc/loadavg","r") loadavg_line = loadavg_file.readline() loadavg = loadavg_line.split()[0:3] print "Calling report_load..." return self.remote_report_load.callRemote('report_load',hostname,loadavg) hostname = socket.gethostname().split('.')[0] t = PbTester() t.runTests() reactor.run()