def create_jobtype(classname=None, sourcecode=None): """Creates a job type on the master and fires a deferred when finished""" if classname is None: classname = "Test%s" % urandom(8).encode("hex") if sourcecode is None: sourcecode = dedent( """ from pyfarm.jobtypes.core.jobtype import JobType class %s(JobType): pass""" % classname ) finished = Deferred() def posted(response): if response.code == CREATED: finished.callback(response.json()) else: finished.errback(response.json()) post( config["master_api"] + "/jobtypes/", callback=posted, errback=finished.errback, data={"name": classname, "classname": classname, "code": sourcecode}, ) return finished
def post(self, url, **kwargs): return post(self.get_url(url), **kwargs)