Use hostname in Nodepool requests
Rather than identifying a Nodepool request as originating from
'zuul', identify it with the hostname of the zuul scheduler. This
way the operator of a site with multiple zuuls can identify whence
requests originated.
Change-Id: I69aaca90d2bc3fac5fe55cdd9c57d724f6e103b4
diff --git a/tests/unit/test_nodepool.py b/tests/unit/test_nodepool.py
index 19c7e05..0a55f9f 100644
--- a/tests/unit/test_nodepool.py
+++ b/tests/unit/test_nodepool.py
@@ -37,6 +37,7 @@
self.zk = zuul.zk.ZooKeeper()
self.zk.connect(self.zk_config)
+ self.hostname = 'nodepool-test-hostname'
self.provisioned_requests = []
# This class implements the scheduler methods zuul.nodepool
diff --git a/zuul/model.py b/zuul/model.py
index 519b294..76038a4 100644
--- a/zuul/model.py
+++ b/zuul/model.py
@@ -472,7 +472,8 @@
class NodeRequest(object):
"""A request for a set of nodes."""
- def __init__(self, build_set, job, nodeset):
+ def __init__(self, requestor, build_set, job, nodeset):
+ self.requestor = requestor
self.build_set = build_set
self.job = job
self.nodeset = nodeset
@@ -507,7 +508,7 @@
d = {}
nodes = [n.image for n in self.nodeset.getNodes()]
d['node_types'] = nodes
- d['requestor'] = 'zuul' # TODOv3(jeblair): better descriptor
+ d['requestor'] = self.requestor
d['state'] = self.state
d['state_time'] = self.state_time
return d
diff --git a/zuul/nodepool.py b/zuul/nodepool.py
index d116a2b..e94b950 100644
--- a/zuul/nodepool.py
+++ b/zuul/nodepool.py
@@ -26,7 +26,7 @@
# Create a copy of the nodeset to represent the actual nodes
# returned by nodepool.
nodeset = job.nodeset.copy()
- req = model.NodeRequest(build_set, job, nodeset)
+ req = model.NodeRequest(self.sched.hostname, build_set, job, nodeset)
self.requests[req.uid] = req
self.sched.zk.submitNodeRequest(req, self._updateNodeRequest)
diff --git a/zuul/scheduler.py b/zuul/scheduler.py
index 2679522..8eab545 100644
--- a/zuul/scheduler.py
+++ b/zuul/scheduler.py
@@ -22,6 +22,7 @@
import pickle
import six
from six.moves import queue as Queue
+import socket
import sys
import threading
import time
@@ -256,6 +257,7 @@
def __init__(self, config, testonly=False):
threading.Thread.__init__(self)
self.daemon = True
+ self.hostname = socket.gethostname()
self.wake_event = threading.Event()
self.layout_lock = threading.Lock()
self.run_handler_lock = threading.Lock()