Add nodepool request framework

This does not actually talk to nodepool, but this adds the nodepool
request flow to the pipeline managers, and establishes a nodepool
class for zuul to interact with nodepool directly.

Change-Id: I41c4d8f86e140786d590698f1a0048c0011382dd
diff --git a/tests/base.py b/tests/base.py
index c5ea320..6321fe9 100755
--- a/tests/base.py
+++ b/tests/base.py
@@ -55,6 +55,7 @@
 import zuul.merger.client
 import zuul.merger.merger
 import zuul.merger.server
+import zuul.nodepool
 import zuul.reporter.gerrit
 import zuul.reporter.smtp
 import zuul.source.gerrit
@@ -1003,9 +1004,11 @@
             self.config, self.sched, self.swift)
         self.merge_client = zuul.merger.client.MergeClient(
             self.config, self.sched)
+        self.nodepool = zuul.nodepool.Nodepool(self.sched)
 
         self.sched.setLauncher(self.launcher)
         self.sched.setMerger(self.merge_client)
+        self.sched.setNodepool(self.nodepool)
 
         self.webapp = zuul.webapp.WebApp(
             self.sched, port=0, listen_address='127.0.0.1')
diff --git a/tests/fixtures/config/multi-tenant/git/common-config/zuul.yaml b/tests/fixtures/config/multi-tenant/git/common-config/zuul.yaml
index 7719573..08117d6 100644
--- a/tests/fixtures/config/multi-tenant/git/common-config/zuul.yaml
+++ b/tests/fixtures/config/multi-tenant/git/common-config/zuul.yaml
@@ -16,3 +16,6 @@
 - job:
     name:
       python27
+    nodes:
+      - name: controller
+        image: ubuntu-trusty