Browse code

Merge "Allow jobs to disable all services"

Zuul authored on 2017/12/14 15:54:24
Showing 2 changed files
... ...
@@ -53,7 +53,12 @@ Write the local.conf file for use by devstack
53 53
    A dictionary mapping service names to boolean values.  If the
54 54
    boolean value is ``false``, a ``disable_service`` line will be
55 55
    emitted for the service name.  If it is ``true``, then
56
-   ``enable_service`` will be emitted.  All other values are ignored.
56
+   ``enable_service`` will be emitted. All other values are ignored.
57
+   The special key ``base`` can be used to enable or disable the base set of
58
+   services enabled by default. If ``base`` is found, it will processed before
59
+   all other keys. If its value is ``False`` a ``disable_all_services`` will be
60
+   emitted; if its value is ``True`` nothing will be emitted since base
61
+   services are enabled by default.
57 62
 
58 63
 .. zuul:rolevar:: devstack_plugins
59 64
    :type: dict
... ...
@@ -124,6 +124,9 @@ class LocalConf(object):
124 124
                 self.localrc.append('enable_plugin {} {}'.format(k, v))
125 125
 
126 126
     def handle_services(self, services):
127
+        base_services = services.pop('base', True)
128
+        if not base_services:
129
+            self.localrc.append('disable_all_services')
127 130
         for k, v in services.items():
128 131
             if v is False:
129 132
                 self.localrc.append('disable_service {}'.format(k))