|  | Write the local.conf file for use by devstack | 
|  |  | 
|  | **Role Variables** | 
|  |  | 
|  | .. zuul:rolevar:: devstack_base_dir | 
|  | :default: /opt/stack | 
|  |  | 
|  | The devstack base directory. | 
|  |  | 
|  | .. zuul:rolevar:: devstack_local_conf_path | 
|  | :default: {{ devstack_base_dir }}/devstack/local.conf | 
|  |  | 
|  | The path of the local.conf file. | 
|  |  | 
|  | .. zuul:rolevar:: devstack_localrc | 
|  | :type: dict | 
|  |  | 
|  | A dictionary of variables that should be written to the localrc | 
|  | section of local.conf.  The values (which are strings) may contain | 
|  | bash shell variables, and will be ordered so that variables used by | 
|  | later entries appear first. | 
|  |  | 
|  | As a special case, the variable ``LIBS_FROM_GIT`` will be | 
|  | constructed automatically from the projects which appear in the | 
|  | ``required-projects`` list defined by the job plus the project of | 
|  | the change under test.  To instruct devstack to install a library | 
|  | from source rather than pypi, simply add that library to the job's | 
|  | ``required-projects`` list.  To override the | 
|  | automatically-generated value, set ``LIBS_FROM_GIT`` in | 
|  | ``devstack_localrc`` to the desired value. | 
|  |  | 
|  | .. zuul:rolevar:: devstack_local_conf | 
|  | :type: dict | 
|  |  | 
|  | A complex argument consisting of nested dictionaries which combine | 
|  | to form the meta-sections of the local_conf file.  The top level is | 
|  | a dictionary of phases, followed by dictionaries of filenames, then | 
|  | sections, which finally contain key-value pairs for the INI file | 
|  | entries in those sections. | 
|  |  | 
|  | The keys in this dictionary are the devstack phases. | 
|  |  | 
|  | .. zuul:rolevar:: [phase] | 
|  | :type: dict | 
|  |  | 
|  | The keys in this dictionary are the filenames for this phase. | 
|  |  | 
|  | .. zuul:rolevar:: [filename] | 
|  | :type: dict | 
|  |  | 
|  | The keys in this dictionary are the INI sections in this file. | 
|  |  | 
|  | .. zuul:rolevar:: [section] | 
|  | :type: dict | 
|  |  | 
|  | This is a dictionary of key-value pairs which comprise | 
|  | this section of the INI file. | 
|  |  | 
|  | .. zuul:rolevar:: devstack_base_services | 
|  | :type: list | 
|  | :default: {{ base_services | default(omit) }} | 
|  |  | 
|  | A list of base services which are enabled. Services can be added or removed | 
|  | from this list via the ``devstack_services`` variable. This is ignored if | 
|  | ``base`` is set to ``False`` in ``devstack_services``. | 
|  |  | 
|  | .. zuul:rolevar:: devstack_services | 
|  | :type: dict | 
|  |  | 
|  | A dictionary mapping service names to boolean values.  If the | 
|  | boolean value is ``false``, a ``disable_service`` line will be | 
|  | emitted for the service name.  If it is ``true``, then | 
|  | ``enable_service`` will be emitted. All other values are ignored. | 
|  |  | 
|  | The special key ``base`` can be used to enable or disable the base set of | 
|  | services enabled by default. If ``base`` is found, it will processed before | 
|  | all other keys. If its value is ``False`` a ``disable_all_services`` will be | 
|  | emitted; if its value is ``True`` services from ``devstack_base_services`` | 
|  | will be emitted via ``ENABLED_SERVICES``. | 
|  |  | 
|  | .. zuul:rolevar:: devstack_plugins | 
|  | :type: dict | 
|  |  | 
|  | A dictionary mapping a plugin name to a git repo location.  If the | 
|  | location is a non-empty string, then an ``enable_plugin`` line will | 
|  | be emmitted for the plugin name. | 
|  |  | 
|  | If a plugin declares a dependency on another plugin (via | 
|  | ``plugin_requires`` in the plugin's settings file), this role will | 
|  | automatically emit ``enable_plugin`` lines in the correct order. |