예제 #1
0
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)