From 15c3e24302d176b5f582ad0f06270dd87c7f5655 Mon Sep 17 00:00:00 2001 From: Pedro Alvarez Date: Mon, 28 Mar 2016 17:43:05 +0000 Subject: Add initial fake client for one request Change-Id: I51be9f05ed0ae05de32f74f41bd0a62c8dffe2f8 --- gear/client.py | 65 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 65 insertions(+) create mode 100644 gear/client.py diff --git a/gear/client.py b/gear/client.py new file mode 100644 index 00000000..29c0df93 --- /dev/null +++ b/gear/client.py @@ -0,0 +1,65 @@ +import gear +import sys +import json +import threading +import requests +import time +import signal +import urlparse +import distbuild +#TODO: values from settings +cache_server = 'http://cache.baserock.org:8080' + +# Artifact build states. These are used to loosely track the state of the +# remote cache. +UNBUILT = 'not-built' +BUILDING = 'building' +BUILT = 'built' + +import logging +logging.basicConfig() + +class GearRequestClient(gear.Client): + def __init__(self): + super(GearRequestClient, self).__init__() + self.finished = False + + def handleWorkComplete(self, packet): + job = super(GearRequestClient, self).handleWorkComplete(packet) + print "Build workcomplete" + self.controller._mark_artifact_as_built(job.data[-1]) + self.finished = True + return job + + def handleWorkFailed(self, packet): + job = super(GearRequestClient, self).handleWorkFailed(packet) + print "Build workfailed" + self.controller._mark_artifact_as_built(job.data[-1]) + self.finished = True + return job + + def handleWorkData(self, packet): + job = super(GearRequestClient, self).handleWorkData(packet) + job.data = [] + return job + +request = {} +request['repo'] = "baserock:baserock/definitions" +request['ref'] = "fbce45e45da79e5c35341845ec3b3d7c321e6ff2" +request['system'] = "systems/minimal-system-x86_64-generic.morph" +json_request = json.dumps(request) +print json_request + +gear_request_client = GearRequestClient() +gear_request_client.addServer('localhost') +gear_request_client.waitForServer() +job = gear.Job("build-request", json_request) +gear_request_client.submitJob(job) + +while not gear_request_client.finished: + try: + print "waiting" + time.sleep(3) + except KeyboardInterrupt: + print "Ctrl + C: asking tasks to exit nicely...\n" + exit(0) -- cgit v1.2.1