Add a Quick Start tutorial

As a user completely new to oslo_config (well, I had only experienced it
in the already-implemented context of the nova project), I would like to
have had a reference document that provided a step-by-step guide to
writing a simple test script I could use to noodle around.  It might
have gone something like this.

Change-Id: I02ff56f47ac8b93e0ee37eb55b53552059e4da27
This commit is contained in:
Eric Fried 2019-04-26 11:16:16 -05:00
parent b0556fd129
commit bab1556735
2 changed files with 79 additions and 0 deletions

View File

@ -5,6 +5,7 @@
.. toctree::
:maxdepth: 2
quickstart
format
mutable
options

View File

@ -0,0 +1,78 @@
==========================
oslo.config Quick Start!
==========================
Are you brand new to oslo.config? This brief tutorial will get you started
understanding some of the fundamentals.
Prerequisites
-------------
* A plain text editor or Python-enabled IDE
* A Python interpreter
* A command shell from which the interpreter can be invoked
* The oslo_config library in your Python path.
Test Script
-----------
Put this in a file called ``oslocfgtest.py``.
.. code:: python
# The sys module lets you get at the command line arguments.
import sys
# Load up the cfg module, which contains all the classes and methods
# you'll need.
from oslo_config import cfg
# Define an option group
grp = cfg.OptGroup('mygroup')
# Define a couple of options
opts = [cfg.StrOpt('option1'),
cfg.IntOpt('option2', default=42)]
# Register your config group
cfg.CONF.register_group(grp)
# Register your options within the config group
cfg.CONF.register_opts(opts, group=grp)
# Process command line arguments. The arguments tell CONF where to
# find your config file, which it loads and parses to populate itself.
cfg.CONF(sys.argv[1:])
# Now you can access the values from the config file as
# CONF.<group>.<opt>
print("The value of option1 is %s" % cfg.CONF.mygroup.option1)
print("The value of option2 is %d" % cfg.CONF.mygroup.option2)
Conf File
---------
Put this in a file called ``oslocfgtest.conf`` in the same directory as
``oslocfgtest.py``.
.. code:: ini
[mygroup]
option1 = foo
# Comment out option2 to test the default value
# option2 = 123
Run It!
-------
From your command shell, in the same directory as your script and conf, invoke:
.. code:: shell
python oslocfgtest.py --config-file oslocfgtest.conf
Revel in the output being exactly as expected. If you've done everything
right, you should see:
.. code:: shell
The value of option1 is foo
The value of option2 is 42
Now go play with some more advanced option settings!