class attk_client(object): def __init__(self, id, url, password): self.id = id self.block_id = None self.password = password self.url = url self.xml = ServerProxy(self._make_url()) self.attack_id = None self.status = None def _make_url(self): url = list(urlsplit(self.url)) url[1] = 'x:' + self.password + '@' + url[1] url[2] = url[2] + 'RPC2' return urlunsplit(url) def start(self, attack_id, block_id, attack_module, init_args, start_args): try: result = self.xml.startAttack(attack_id, attack_module, Binary(cPickle.dumps(init_args)), Binary(cPickle.dumps(start_args))) if result == True: self.block_id = block_id self.attack_id = attack_id return True else: return False except Error, e: debug('ERROR: %s' % e) return False