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()