Merge "Add Ironic hardware deployment support"
diff --git a/doc/source/configuration.rst b/doc/source/configuration.rst
index eba2956..a4d940d 100644
--- a/doc/source/configuration.rst
+++ b/doc/source/configuration.rst
@@ -74,7 +74,7 @@
``localrc`` file (actually ``.localrc.auto``). This allows all custom
settings for DevStack to be contained in a single file. If ``localrc``
exists it will be used instead to preserve backward-compatibility. More
-details on the `contents of localrc <localrc.html>`__ are available.
+details on the :doc:`contents of local.conf <local.conf>` are available.
::
diff --git a/doc/source/contributing.rst b/doc/source/contributing.rst
index b4f9f37..7ca3d64 100644
--- a/doc/source/contributing.rst
+++ b/doc/source/contributing.rst
@@ -59,16 +59,17 @@
The DevStack repo generally keeps all of the primary scripts at the root
level.
-``docs`` - Contains the source for this website. It is built using
-``tools/build_docs.sh``.
+``doc`` - Contains the Sphinx source for the documentation.
+``tools/build_docs.sh`` is used to generate the HTML versions of the
+DevStack scripts. A complete doc build can be run with ``tox -edocs``.
-``exercises`` - Contains the test scripts used to validate and
+``exercises`` - Contains the test scripts used to sanity-check and
demonstrate some OpenStack functions. These scripts know how to exit
early or skip services that are not enabled.
``extras.d`` - Contains the dispatch scripts called by the hooks in
-``stack.sh``, ``unstack.sh`` and ``clean.sh``. See `the plugins
-docs <plugins.html>`__ for more information.
+``stack.sh``, ``unstack.sh`` and ``clean.sh``. See :doc:`the plugins
+docs <plugins>` for more information.
``files`` - Contains a variety of otherwise lost files used in
configuring and operating DevStack. This includes templates for
@@ -84,10 +85,10 @@
DevStack repo.
``tests`` - the DevStack test suite is rather sparse, mostly consisting
-of test of specific fragile functions in the ``functions`` file.
+of test of specific fragile functions in the ``functions`` and
+``functions-common`` files.
-``tools`` - Contains a collection of stand-alone scripts, some of which
-have aged a bit (does anyone still do ramdisk installs?). While these
+``tools`` - Contains a collection of stand-alone scripts. While these
may reference the top-level DevStack configuration they can generally be
run alone. There are also some sub-directories to support specific
environments such as XenServer.
diff --git a/doc/source/faq.rst b/doc/source/faq.rst
index 7b33b41..b7943ba 100644
--- a/doc/source/faq.rst
+++ b/doc/source/faq.rst
@@ -47,11 +47,8 @@
and bug reports go to
`LaunchPad <http://bugs.launchpad.net/devstack/>`__. Contributions
follow the usual process as described in the `OpenStack
- wiki <http://wiki.openstack.org/HowToContribute>`__ even though
- DevStack is not an official OpenStack project. This site is housed
- in the CloudBuilder's
- `github <http://github.com/cloudbuilders/devstack>`__ in the
- gh-pages branch.
+ wiki <http://wiki.openstack.org/HowToContribute>`__. This Sphinx
+ documentation is housed in the doc directory.
Q: Why not use packages?
A: Unlike packages, DevStack leaves your cloud ready to develop -
checkouts of the code and services running in screen. However, many
diff --git a/doc/source/guides/multinode-lab.rst b/doc/source/guides/multinode-lab.rst
index 1c53227..4c60b6a 100644
--- a/doc/source/guides/multinode-lab.rst
+++ b/doc/source/guides/multinode-lab.rst
@@ -16,9 +16,9 @@
CD <https://help.ubuntu.com/community/Installation/MinimalCD>`__ for
Ubuntu releases since DevStack will download & install all the
additional dependencies. The netinstall ISO is available for
-`Fedora <http://mirrors.kernel.org/fedora/releases/18/Fedora/x86_64/iso/Fedora-20-x86_64-netinst.iso>`__
+`Fedora <http://mirrors.kernel.org/fedora/releases/>`__
and
-`CentOS/RHEL <http://mirrors.kernel.org/centos/6.5/isos/x86_64/CentOS-6.5-x86_64-netinstall.iso>`__.
+`CentOS/RHEL <http://mirrors.kernel.org/centos/>`__.
Install a couple of packages to bootstrap configuration:
@@ -284,7 +284,7 @@
DevStack will automatically use an existing LVM volume group named
``stack-volumes`` to store cloud-created volumes. If ``stack-volumes``
-doesn't exist, DevStack will set up a 5Gb loop-mounted file to contain
+doesn't exist, DevStack will set up a 10Gb loop-mounted file to contain
it. This obviously limits the number and size of volumes that can be
created inside OpenStack. The size can be overridden by setting
``VOLUME_BACKING_FILE_SIZE`` in ``local.conf``.
diff --git a/doc/source/guides/single-machine.rst b/doc/source/guides/single-machine.rst
index 6059511..a7a1099 100644
--- a/doc/source/guides/single-machine.rst
+++ b/doc/source/guides/single-machine.rst
@@ -1,6 +1,6 @@
-==========
-All-In-One
-==========
+=========================
+All-In-One Single Machine
+=========================
Things are about to get real! Using OpenStack in containers or VMs is
nice for kicking the tires, but doesn't compare to the feeling you get
@@ -17,9 +17,9 @@
CD <https://help.ubuntu.com/community/Installation/MinimalCD>`__ for
Ubuntu releases since DevStack will download & install all the
additional dependencies. The netinstall ISO is available for
-`Fedora <http://mirrors.kernel.org/fedora/releases/18/Fedora/x86_64/iso/Fedora-20-x86_64-netinst.iso>`__
+`Fedora <http://mirrors.kernel.org/fedora/releases/>`__
and
-`CentOS/RHEL <http://mirrors.kernel.org/centos/6.5/isos/x86_64/CentOS-6.5-x86_64-netinstall.iso>`__.
+`CentOS/RHEL <http://mirrors.kernel.org/centos/>`__.
You may be tempted to use a desktop distro on a laptop, it will probably
work but you may need to tell Network Manager to keep its fingers off
the interface(s) that OpenStack uses for bridging.
diff --git a/doc/source/guides/single-vm.rst b/doc/source/guides/single-vm.rst
index d296db6..ef59953 100644
--- a/doc/source/guides/single-vm.rst
+++ b/doc/source/guides/single-vm.rst
@@ -1,6 +1,6 @@
-=============
-Cloud in a VM
-=============
+====================
+All-In-One Single VM
+====================
Use the cloud to build the cloud! Use your cloud to launch new versions
of OpenStack in about 5 minutes. When you break it, start over! The VMs
diff --git a/doc/source/index.rst b/doc/source/index.rst
index 2128620..dbefdec 100644
--- a/doc/source/index.rst
+++ b/doc/source/index.rst
@@ -12,11 +12,8 @@
changes
contributing
- guides/*
-
-
-Quick Start This ain't your first rodeo
----------------------------------------
+Quick Start
+-----------
#. Select a Linux Distribution
@@ -59,40 +56,36 @@
Walk through various setups used by stackers
-OpenStack on VMs
-----------------
+.. toctree::
+ :glob:
+ :maxdepth: 1
-These guides tell you how to virtualize your OpenStack cloud in virtual
-machines. This means that you can get started without having to purchase
-any hardware.
+ guides/single-vm
+ guides/single-machine
+ guides/multinode-lab
-Virtual Machine
-~~~~~~~~~~~~~~~
+All-In-One Single VM
+--------------------
-:doc:`Run OpenStack in a VM <guides/single-vm>`. The VMs launched in your cloud will be slow as
+Run :doc:`OpenStack in a VM <guides/single-vm>`. The VMs launched in your cloud will be slow as
they are running in QEMU (emulation), but it is useful if you don't have
spare hardware laying around. :doc:`[Read] <guides/single-vm>`
-OpenStack on Hardware
----------------------
+All-In-One Single Machine
+-------------------------
-These guides tell you how to deploy a development environment on real
-hardware. Guides range from running OpenStack on a single laptop to
-running a multi-node deployment on datacenter hardware.
+Run :doc:`OpenStack on dedicated hardware <guides/single-machine>` This can include a
+server-class machine or a laptop at home.
+:doc:`[Read] <guides/single-machine>`
-All-In-One
-~~~~~~~~~~
+Multi-Node Lab
+--------------
-:doc:`Run OpenStack on dedicated hardware <guides/single-machine>` to get real performance in your VMs.
-This can include a server-class machine or a laptop at home. :doc:`[Read] <guides/single-machine>`
+Setup a :doc:`multi-node cluster <guides/multinode-lab>` with dedicated VLANs for VMs & Management.
+:doc:`[Read] <guides/multinode-lab>`
-Multi-Node + VLANs
-~~~~~~~~~~~~~~~~~~
-
-:doc:`Setup a multi-node cluster <guides/multinode-lab>` with dedicated VLANs for VMs & Management. :doc:`[Read] <guides/multinode-lab>`
-
-Documentation
-=============
+DevStack Documentation
+======================
Overview
--------
@@ -127,187 +120,102 @@
Code
====
-A look at the bits that make it all go
+*A look at the bits that make it all go*
Scripts
-------
-Generated documentation of DevStack scripts.
+* `stack.sh <stack.sh.html>`__ - The main script
+* `functions <functions.html>`__ - DevStack-specific functions
+* `functions-common <functions-common.html>`__ - Functions shared with other projects
+* `lib/apache <lib/apache.html>`__
+* `lib/baremetal <lib/baremetal.html>`__
+* `lib/ceilometer <lib/ceilometer.html>`__
+* `lib/ceph <lib/ceph.html>`__
+* `lib/cinder <lib/cinder.html>`__
+* `lib/config <lib/config.html>`__
+* `lib/database <lib/database.html>`__
+* `lib/dib <lib/dib.html>`__
+* `lib/dstat <lib/dstat.html>`__
+* `lib/glance <lib/glance.html>`__
+* `lib/heat <lib/heat.html>`__
+* `lib/horizon <lib/horizon.html>`__
+* `lib/infra <lib/infra.html>`__
+* `lib/ironic <lib/ironic.html>`__
+* `lib/keystone <lib/keystone.html>`__
+* `lib/ldap <lib/ldap.html>`__
+* `lib/neutron <lib/neutron.html>`__
+* `lib/nova <lib/nova.html>`__
+* `lib/opendaylight <lib/opendaylight.html>`__
+* `lib/oslo <lib/oslo.html>`__
+* `lib/rpc\_backend <lib/rpc_backend.html>`__
+* `lib/sahara <lib/sahara.html>`__
+* `lib/stackforge <lib/stackforge.html>`__
+* `lib/swift <lib/swift.html>`__
+* `lib/tempest <lib/tempest.html>`__
+* `lib/tls <lib/tls.html>`__
+* `lib/trove <lib/trove.html>`__
+* `lib/zaqar <lib/zaqar.html>`__
+* `unstack.sh <unstack.sh.html>`__
+* `clean.sh <clean.sh.html>`__
+* `run\_tests.sh <run_tests.sh.html>`__
-+-------------------------------+----------------------------------------------+
-| Filename | Link |
-+===============================+==============================================+
-| stack.sh | `Read » <stack.sh.html>`__ |
-+-------------------------------+----------------------------------------------+
-| functions | `Read » <functions.html>`__ |
-+-------------------------------+----------------------------------------------+
-| functions-common | `Read » <functions-common.html>`__ |
-+-------------------------------+----------------------------------------------+
-| lib/apache | `Read » <lib/apache.html>`__ |
-+-------------------------------+----------------------------------------------+
-| lib/baremetal | `Read » <lib/baremetal.html>`__ |
-+-------------------------------+----------------------------------------------+
-| lib/ceilometer | `Read » <lib/ceilometer.html>`__ |
-+-------------------------------+----------------------------------------------+
-| lib/cinder | `Read » <lib/cinder.html>`__ |
-+-------------------------------+----------------------------------------------+
-| lib/config | `Read » <lib/config.html>`__ |
-+-------------------------------+----------------------------------------------+
-| lib/database | `Read » <lib/database.html>`__ |
-+-------------------------------+----------------------------------------------+
-| lib/glance | `Read » <lib/glance.html>`__ |
-+-------------------------------+----------------------------------------------+
-| lib/heat | `Read » <lib/heat.html>`__ |
-+-------------------------------+----------------------------------------------+
-| lib/horizon | `Read » <lib/horizon.html>`__ |
-+-------------------------------+----------------------------------------------+
-| lib/infra | `Read » <lib/infra.html>`__ |
-+-------------------------------+----------------------------------------------+
-| lib/ironic | `Read » <lib/ironic.html>`__ |
-+-------------------------------+----------------------------------------------+
-| lib/keystone | `Read » <lib/keystone.html>`__ |
-+-------------------------------+----------------------------------------------+
-| lib/ldap | `Read » <lib/ldap.html>`__ |
-+-------------------------------+----------------------------------------------+
-| lib/zaqar | `Read » <lib/zaqar.html>`__ |
-+-------------------------------+----------------------------------------------+
-| lib/neutron | `Read » <lib/neutron.html>`__ |
-+-------------------------------+----------------------------------------------+
-| lib/nova | `Read » <lib/nova.html>`__ |
-+-------------------------------+----------------------------------------------+
-| lib/oslo | `Read » <lib/oslo.html>`__ |
-+-------------------------------+----------------------------------------------+
-| lib/rpc\_backend | `Read » <lib/rpc_backend.html>`__ |
-+-------------------------------+----------------------------------------------+
-| lib/sahara | `Read » <lib/sahara.html>`__ |
-+-------------------------------+----------------------------------------------+
-| lib/savanna | `Read » <lib/savanna.html>`__ |
-+-------------------------------+----------------------------------------------+
-| lib/stackforge | `Read » <lib/stackforge.html>`__ |
-+-------------------------------+----------------------------------------------+
-| lib/swift | `Read » <lib/swift.html>`__ |
-+-------------------------------+----------------------------------------------+
-| lib/tempest | `Read » <lib/tempest.html>`__ |
-+-------------------------------+----------------------------------------------+
-| lib/tls | `Read » <lib/tls.html>`__ |
-+-------------------------------+----------------------------------------------+
-| lib/trove | `Read » <lib/trove.html>`__ |
-+-------------------------------+----------------------------------------------+
-| unstack.sh | `Read » <unstack.sh.html>`__ |
-+-------------------------------+----------------------------------------------+
-| clean.sh | `Read » <clean.sh.html>`__ |
-+-------------------------------+----------------------------------------------+
-| run\_tests.sh | `Read » <run_tests.sh.html>`__ |
-+-------------------------------+----------------------------------------------+
-| extras.d/50-ironic.sh | `Read » <extras.d/50-ironic.html>`__ |
-+-------------------------------+----------------------------------------------+
-| extras.d/70-zaqar.sh | `Read » <extras.d/70-zaqar.html>`__ |
-+-------------------------------+----------------------------------------------+
-| extras.d/70-sahara.sh | `Read » <extras.d/70-sahara.html>`__ |
-+-------------------------------+----------------------------------------------+
-| extras.d/70-savanna.sh | `Read » <extras.d/70-savanna.html>`__ |
-+-------------------------------+----------------------------------------------+
-| extras.d/70-trove.sh | `Read » <extras.d/70-trove.html>`__ |
-+-------------------------------+----------------------------------------------+
-| extras.d/80-opendaylight.sh | `Read » <extras.d/80-opendaylight.html>`__ |
-+-------------------------------+----------------------------------------------+
-| extras.d/80-tempest.sh | `Read » <extras.d/80-tempest.html>`__ |
-+-------------------------------+----------------------------------------------+
+* `extras.d/40-dib.sh <extras.d/40-dib.sh.html>`__
+* `extras.d/50-ironic.sh <extras.d/50-ironic.sh.html>`__
+* `extras.d/60-ceph.sh <extras.d/60-ceph.sh.html>`__
+* `extras.d/70-sahara.sh <extras.d/70-sahara.sh.html>`__
+* `extras.d/70-trove.sh <extras.d/70-trove.sh.html>`__
+* `extras.d/70-zaqar.sh <extras.d/70-zaqar.sh.html>`__
+* `extras.d/80-opendaylight.sh <extras.d/80-opendaylight.sh.html>`__
+* `extras.d/80-tempest.sh <extras.d/80-tempest.sh.html>`__
Configuration
-------------
-+--------------+--------------------------------+
-| Filename | Link |
-+==============+================================+
-| local.conf | `Read » <local.conf.html>`__ |
-+--------------+--------------------------------+
-| stackrc | `Read » <stackrc.html>`__ |
-+--------------+--------------------------------+
-| openrc | `Read » <openrc.html>`__ |
-+--------------+--------------------------------+
-| exerciserc | `Read » <exerciserc.html>`__ |
-+--------------+--------------------------------+
-| eucarc | `Read » <eucarc.html>`__ |
-+--------------+--------------------------------+
-
-Tools
------
-
-+-----------------------------+----------------------------------------------+
-| Filename | Link |
-+=============================+==============================================+
-| tools/info.sh | `Read » <tools/info.sh.html>`__ |
-+-----------------------------+----------------------------------------------+
-| tools/build\_docs.sh | `Read » <tools/build_docs.sh.html>`__ |
-+-----------------------------+----------------------------------------------+
-| tools/create\_userrc.sh | `Read » <tools/create_userrc.sh.html>`__ |
-+-----------------------------+----------------------------------------------+
-| tools/fixup\_stuff.sh | `Read » <tools/fixup_stuff.sh.html>`__ |
-+-----------------------------+----------------------------------------------+
-| tools/install\_prereqs.sh | `Read » <tools/install_prereqs.sh.html>`__ |
-+-----------------------------+----------------------------------------------+
-| tools/install\_pip.sh | `Read » <tools/install_pip.sh.html>`__ |
-+-----------------------------+----------------------------------------------+
-| tools/upload\_image.sh | `Read » <tools/upload_image.sh.html>`__ |
-+-----------------------------+----------------------------------------------+
-
-Samples
--------
-
-Generated documentation of DevStack sample files.
-
-+------------+--------------------------------------+
-| Filename | Link |
-+============+======================================+
-| local.sh | `Read » <samples/local.sh.html>`__ |
-+------------+--------------------------------------+
-| localrc | `Read » <samples/localrc.html>`__ |
-+------------+--------------------------------------+
-
-Exercises
----------
-
-+---------------------------------+-------------------------------------------------+
-| Filename | Link |
-+=================================+=================================================+
-| exercise.sh | `Read » <exercise.sh.html>`__ |
-+---------------------------------+-------------------------------------------------+
-| exercises/aggregates.sh | `Read » <exercises/aggregates.sh.html>`__ |
-+---------------------------------+-------------------------------------------------+
-| exercises/boot\_from\_volume.sh | `Read » <exercises/boot_from_volume.sh.html>`__ |
-+---------------------------------+-------------------------------------------------+
-| exercises/bundle.sh | `Read » <exercises/bundle.sh.html>`__ |
-+---------------------------------+-------------------------------------------------+
-| exercises/client-args.sh | `Read » <exercises/client-args.sh.html>`__ |
-+---------------------------------+-------------------------------------------------+
-| exercises/client-env.sh | `Read » <exercises/client-env.sh.html>`__ |
-+---------------------------------+-------------------------------------------------+
-| exercises/euca.sh | `Read » <exercises/euca.sh.html>`__ |
-+---------------------------------+-------------------------------------------------+
-| exercises/floating\_ips.sh | `Read » <exercises/floating_ips.sh.html>`__ |
-+---------------------------------+-------------------------------------------------+
-| exercises/horizon.sh | `Read » <exercises/horizon.sh.html>`__ |
-+---------------------------------+-------------------------------------------------+
-| exercises/neutron-adv-test.sh | `Read » <exercises/neutron-adv-test.sh.html>`__ |
-+---------------------------------+-------------------------------------------------+
-| exercises/sahara.sh | `Read » <exercises/sahara.sh.html>`__ |
-+---------------------------------+-------------------------------------------------+
-| exercises/savanna.sh | `Read » <exercises/savanna.sh.html>`__ |
-+---------------------------------+-------------------------------------------------+
-| exercises/sec\_groups.sh | `Read » <exercises/sec_groups.sh.html>`__ |
-+---------------------------------+-------------------------------------------------+
-| exercises/swift.sh | `Read » <exercises/swift.sh.html>`__ |
-+---------------------------------+-------------------------------------------------+
-| exercises/trove.sh | `Read » <exercises/trove.sh.html>`__ |
-+---------------------------------+-------------------------------------------------+
-| exercises/volumes.sh | `Read » <exercises/volumes.sh.html>`__ |
-+---------------------------------+-------------------------------------------------+
-| exercises/zaqar.sh | `Read » <exercises/zaqar.sh.html>`__ |
-+---------------------------------+-------------------------------------------------+
-
.. toctree::
:glob:
:maxdepth: 1
- *
+ local.conf
+ stackrc
+ openrc
+ exerciserc
+ eucarc
+
+Tools
+-----
+
+* `tools/build\_docs.sh <tools/build_docs.sh.html>`__
+* `tools/create-stack-user.sh <tools/create-stack-user.sh.html>`__
+* `tools/create\_userrc.sh <tools/create_userrc.sh.html>`__
+* `tools/fixup\_stuff.sh <tools/fixup_stuff.sh.html>`__
+* `tools/info.sh <tools/info.sh.html>`__
+* `tools/install\_pip.sh <tools/install_pip.sh.html>`__
+* `tools/install\_prereqs.sh <tools/install_prereqs.sh.html>`__
+* `tools/make\_cert.sh <tools/make_cert.sh.html>`__
+* `tools/upload\_image.sh <tools/upload_image.sh.html>`__
+
+Samples
+-------
+
+* `local.sh <samples/local.sh.html>`__
+
+Exercises
+---------
+
+* `exercise.sh <exercise.sh.html>`__
+* `exercises/aggregates.sh <exercises/aggregates.sh.html>`__
+* `exercises/boot\_from\_volume.sh <exercises/boot_from_volume.sh.html>`__
+* `exercises/bundle.sh <exercises/bundle.sh.html>`__
+* `exercises/client-args.sh <exercises/client-args.sh.html>`__
+* `exercises/client-env.sh <exercises/client-env.sh.html>`__
+* `exercises/euca.sh <exercises/euca.sh.html>`__
+* `exercises/floating\_ips.sh <exercises/floating_ips.sh.html>`__
+* `exercises/horizon.sh <exercises/horizon.sh.html>`__
+* `exercises/neutron-adv-test.sh <exercises/neutron-adv-test.sh.html>`__
+* `exercises/sahara.sh <exercises/sahara.sh.html>`__
+* `exercises/sec\_groups.sh <exercises/sec_groups.sh.html>`__
+* `exercises/swift.sh <exercises/swift.sh.html>`__
+* `exercises/trove.sh <exercises/trove.sh.html>`__
+* `exercises/volumes.sh <exercises/volumes.sh.html>`__
+* `exercises/zaqar.sh <exercises/zaqar.sh.html>`__
diff --git a/doc/source/local.conf.rst b/doc/source/local.conf.rst
index a9dfcb0..b2f7557 100644
--- a/doc/source/local.conf.rst
+++ b/doc/source/local.conf.rst
@@ -4,6 +4,6 @@
``local.conf`` is a user-maintained setings file that is sourced in
``stackrc``. It contains a section that replaces the historical
-``localrc`` file. See `the description of
-local.conf <configuration.html>`__ for more details about the mechanics
+``localrc`` file. See the description of
+:doc:`local.conf <configuration>` for more details about the mechanics
of the file.
diff --git a/doc/source/localrc.rst b/doc/source/localrc.rst
deleted file mode 100644
index 98f3083..0000000
--- a/doc/source/localrc.rst
+++ /dev/null
@@ -1,9 +0,0 @@
-=====================
-localrc - The Old Way
-=====================
-
-``localrc`` is the old file used to configure DevStack. It is deprecated
-and has been replaced by ```local.conf`` <local.conf.html>`__. DevStack
-will continue to use ``localrc`` if it is present and ignore the
-``localrc`` section in ``local.conf.``. Remove ``localrc`` to switch to
-using the new file.
diff --git a/doc/source/openrc.rst b/doc/source/openrc.rst
index dc12f76..56ff5c2 100644
--- a/doc/source/openrc.rst
+++ b/doc/source/openrc.rst
@@ -8,29 +8,30 @@
``local.conf``) in order to pick up ``HOST_IP`` and/or ``SERVICE_HOST``
to use in the endpoints. The values shown below are the default values.
-OS\_TENANT\_NAME
- The introduction of Keystone to the OpenStack ecosystem has
- standardized the term *tenant* as the entity that owns resources. In
- some places references still exist to the original Nova term
- *project* for this use. Also, *tenant\_name* is preferred to
- *tenant\_id*.
+OS\_PROJECT\_NAME (OS\_TENANT\_NAME)
+ Keystone has
+ standardized the term *project* as the entity that owns resources. In
+ some places references still exist to the previous term
+ *tenant* for this use. Also, *project\_name* is preferred to
+ *project\_id*. OS\_TENANT\_NAME remains supported for compatibility
+ with older tools.
::
- OS_TENANT_NAME=demo
+ OS_PROJECT_NAME=demo
OS\_USERNAME
- In addition to the owning entity (tenant), Nova stores the entity
- performing the action as the *user*.
+ In addition to the owning entity (project), OpenStack calls the entity
+ performing the action *user*.
::
OS_USERNAME=demo
OS\_PASSWORD
- With Keystone you pass the keystone password instead of an api key.
- Recent versions of novaclient use OS\_PASSWORD instead of
- NOVA\_API\_KEYs or NOVA\_PASSWORD.
+ Keystone's default authentication requires a password be provided.
+ The usual cautions about putting passwords in environment variables
+ apply, for most DevStack uses this may be an acceptable tradeoff.
::
@@ -39,7 +40,7 @@
HOST\_IP, SERVICE\_HOST
Set API endpoint host using ``HOST_IP``. ``SERVICE_HOST`` may also
be used to specify the endpoint, which is convenient for some
- ``localrc`` configurations. Typically, ``HOST_IP`` is set in the
+ ``local.conf`` configurations. Typically, ``HOST_IP`` is set in the
``localrc`` section.
::
@@ -57,15 +58,6 @@
OS_AUTH_URL=http://$SERVICE_HOST:5000/v2.0
-GLANCE\_HOST
- Some exercises call Glance directly. On a single-node installation,
- Glance should be listening on ``HOST_IP``. If its running elsewhere
- it can be set here.
-
- ::
-
- GLANCE_HOST=$HOST_IP
-
KEYSTONECLIENT\_DEBUG, NOVACLIENT\_DEBUG
Set command-line client log level to ``DEBUG``. These are commented
out by default.
diff --git a/doc/source/overview.rst b/doc/source/overview.rst
index e3cf75d..4078240 100644
--- a/doc/source/overview.rst
+++ b/doc/source/overview.rst
@@ -73,7 +73,7 @@
(Heat)
Additional services not included directly in DevStack can be tied in to
-``stack.sh`` using the `plugin mechanism <plugins.html>`__ to call
+``stack.sh`` using the :doc:`plugin mechanism <plugins>` to call
scripts that perform the configuration and startup of the service.
Node Configurations
diff --git a/doc/source/plugins.rst b/doc/source/plugins.rst
index 282c1a4..b4136c4 100644
--- a/doc/source/plugins.rst
+++ b/doc/source/plugins.rst
@@ -8,8 +8,8 @@
Extras.d Hooks
~~~~~~~~~~~~~~
-These relatively new hooks are an extension of the existing calls from
-``stack.sh`` at the end of its run, plus ``unstack.sh`` and
+These hooks are an extension of the service calls in
+``stack.sh`` at specific points in its run, plus ``unstack.sh`` and
``clean.sh``. A number of the higher-layer projects are implemented in
DevStack using this mechanism.
diff --git a/doc/source/stackrc.rst b/doc/source/stackrc.rst
index 0faab45..b21f74f 100644
--- a/doc/source/stackrc.rst
+++ b/doc/source/stackrc.rst
@@ -15,12 +15,12 @@
Specify which services to launch. These generally correspond to
screen tabs. The default includes: Glance (API and Registry),
Keystone, Nova (API, Certificate, Object Store, Compute, Network,
- Scheduler, VNC proxies, Certificate Authentication), Cinder
+ Scheduler, Certificate Authentication), Cinder
(Scheduler, API, Volume), Horizon, MySQL, RabbitMQ, Tempest.
::
- ENABLED_SERVICES=g-api,g-reg,key,n-api,n-crt,n-obj,n-cpu,n-net,n-cond,cinder,c-sch,c-api,c-vol,n-sch,n-novnc,n-xvnc,n-cauth,horizon,rabbit,tempest,$DATABASE_TYPE
+ ENABLED_SERVICES=g-api,g-reg,key,n-api,n-crt,n-obj,n-cpu,n-net,n-cond,c-sch,c-api,c-vol,n-sch,n-cauth,horizon,rabbit,tempest,$DATABASE_TYPE
Other services that are not enabled by default can be enabled in
``localrc``. For example, to add Swift, use the following service
diff --git a/files/apts/ironic b/files/apts/ironic
index 45fdecc..f6c7b74 100644
--- a/files/apts/ironic
+++ b/files/apts/ironic
@@ -12,6 +12,7 @@
qemu
qemu-kvm
qemu-utils
+sgabios
syslinux
tftpd-hpa
xinetd
diff --git a/files/rpms/cinder b/files/rpms/cinder
index ce6181e..eedff18 100644
--- a/files/rpms/cinder
+++ b/files/rpms/cinder
@@ -3,4 +3,4 @@
qemu-img
postgresql-devel
iscsi-initiator-utils
-python-lxml #dist:f19,f20,rhel7
+python-lxml #dist:f19,f20,f21,rhel7
diff --git a/files/rpms/glance b/files/rpms/glance
index 5a7f073..d2792cf 100644
--- a/files/rpms/glance
+++ b/files/rpms/glance
@@ -6,10 +6,10 @@
python-argparse
python-eventlet
python-greenlet
-python-lxml #dist:f19,f20,rhel7
-python-paste-deploy #dist:f19,f20,rhel7
+python-lxml #dist:f19,f20,f21,rhel7
+python-paste-deploy #dist:f19,f20,f21,rhel7
python-routes
python-sqlalchemy
-python-wsgiref #dist:f18,f19,f20
+python-wsgiref #dist:f18,f19,f20,f21
pyxattr
zlib-devel # testonly
diff --git a/files/rpms/horizon b/files/rpms/horizon
index 7add23a..1d06ac2 100644
--- a/files/rpms/horizon
+++ b/files/rpms/horizon
@@ -12,8 +12,8 @@
python-migrate
python-mox
python-nose
-python-paste #dist:f19,f20
-python-paste-deploy #dist:f19,f20
+python-paste #dist:f19,f20,f21
+python-paste-deploy #dist:f19,f20,f21
python-routes
python-sphinx
python-sqlalchemy
diff --git a/files/rpms/ironic b/files/rpms/ironic
index e646f3a..0a46314 100644
--- a/files/rpms/ironic
+++ b/files/rpms/ironic
@@ -9,6 +9,7 @@
openssh-clients
openvswitch
python-libguestfs
+sgabios
syslinux
tftp-server
xinetd
diff --git a/files/rpms/keystone b/files/rpms/keystone
index ce41ee5..8b0953d 100644
--- a/files/rpms/keystone
+++ b/files/rpms/keystone
@@ -1,10 +1,10 @@
MySQL-python
python-greenlet
-libxslt-devel # dist:f20
-python-lxml #dist:f19,f20
-python-paste #dist:f19,f20
-python-paste-deploy #dist:f19,f20
-python-paste-script #dist:f19,f20
+libxslt-devel # dist:f20,f21
+python-lxml #dist:f19,f20,f21
+python-paste #dist:f19,f20,f21
+python-paste-deploy #dist:f19,f20,f21
+python-paste-script #dist:f19,f20,f21
python-routes
python-sqlalchemy
python-webob
diff --git a/files/rpms/neutron b/files/rpms/neutron
index 2c9dd3d..f2473fb 100644
--- a/files/rpms/neutron
+++ b/files/rpms/neutron
@@ -12,8 +12,8 @@
python-greenlet
python-iso8601
#rhel6 gets via pip
-python-paste # dist:f19,f20,rhel7
-python-paste-deploy # dist:f19,f20,rhel7
+python-paste # dist:f19,f20,f21,rhel7
+python-paste-deploy # dist:f19,f20,f21,rhel7
python-qpid # NOPRIME
python-routes
python-sqlalchemy
diff --git a/files/rpms/nova b/files/rpms/nova
index f3261c6..07f13c7 100644
--- a/files/rpms/nova
+++ b/files/rpms/nova
@@ -29,11 +29,11 @@
python-lockfile
python-migrate
python-mox
-python-paramiko # dist:f19,f20,rhel7
+python-paramiko # dist:f19,f20,f21,rhel7
# ^ on RHEL6, brings in python-crypto which conflicts with version from
# pip we need
-python-paste # dist:f19,f20,rhel7
-python-paste-deploy # dist:f19,f20,rhel7
+python-paste # dist:f19,f20,f21,rhel7
+python-paste-deploy # dist:f19,f20,f21,rhel7
python-qpid # NOPRIME
python-routes
python-sqlalchemy
diff --git a/files/rpms/swift b/files/rpms/swift
index 9ec4aab..ccda22b 100644
--- a/files/rpms/swift
+++ b/files/rpms/swift
@@ -6,7 +6,7 @@
python-greenlet
python-netifaces
python-nose
-python-paste-deploy # dist:f19,f20,rhel7
+python-paste-deploy # dist:f19,f20,f21,rhel7
python-simplejson
python-webob
pyxattr
diff --git a/lib/databases/mysql b/lib/databases/mysql
index 67bf85a..7a444a3 100644
--- a/lib/databases/mysql
+++ b/lib/databases/mysql
@@ -26,10 +26,10 @@
sudo rm -rf /etc/mysql
return
elif is_fedora; then
- if [[ $DISTRO =~ (rhel7) ]]; then
- MYSQL=mariadb
- else
+ if [[ $DISTRO =~ (rhel6) ]]; then
MYSQL=mysqld
+ else
+ MYSQL=mariadb
fi
elif is_suse; then
MYSQL=mysql
@@ -54,10 +54,10 @@
my_conf=/etc/mysql/my.cnf
mysql=mysql
elif is_fedora; then
- if [[ $DISTRO =~ (rhel7) ]]; then
- mysql=mariadb
- else
+ if [[ $DISTRO =~ (rhel6) ]]; then
mysql=mysqld
+ else
+ mysql=mariadb
fi
my_conf=/etc/my.cnf
elif is_suse; then
@@ -142,10 +142,10 @@
fi
# Install mysql-server
if is_ubuntu || is_fedora; then
- if [[ $DISTRO =~ (rhel7) ]]; then
- install_package mariadb-server
- else
+ if [[ $DISTRO =~ (rhel6) ]]; then
install_package mysql-server
+ else
+ install_package mariadb-server
fi
elif is_suse; then
if ! is_package_installed mariadb; then
diff --git a/lib/dstat b/lib/dstat
index a2c522c..a6990bb 100644
--- a/lib/dstat
+++ b/lib/dstat
@@ -1,4 +1,4 @@
-# lib/apache
+# lib/dstat
# Functions to start and stop dstat
# Dependencies:
diff --git a/lib/horizon b/lib/horizon
index 0213948..872e77a 100644
--- a/lib/horizon
+++ b/lib/horizon
@@ -25,8 +25,9 @@
# --------
# Set up default directories
+GITDIR["django_openstack_auth"]=$DEST/django_openstack_auth
+
HORIZON_DIR=$DEST/horizon
-HORIZONAUTH_DIR=$DEST/django_openstack_auth
# local_settings.py is used to customize Dashboard settings.
# The example file in Horizon repo is used by default.
@@ -89,9 +90,7 @@
# Horizon is installed as develop mode, so we can compile here.
# Message catalog compilation is handled by Django admin script,
# so compiling them after the installation avoids Django installation twice.
- cd $HORIZON_DIR
- ./run_tests.sh -N --compilemessages
- cd -
+ (cd $HORIZON_DIR; ./run_tests.sh -N --compilemessages)
}
# init_horizon() - Initialize databases, etc.
@@ -100,6 +99,8 @@
local local_settings=$HORIZON_DIR/openstack_dashboard/local/local_settings.py
cp $HORIZON_SETTINGS $local_settings
+ _horizon_config_set $local_settings "" COMPRESS_OFFLINE True
+
_horizon_config_set $local_settings "" OPENSTACK_HOST \"${KEYSTONE_SERVICE_HOST}\"
_horizon_config_set $local_settings "" OPENSTACK_KEYSTONE_URL "\"${KEYSTONE_SERVICE_PROTOCOL}://${KEYSTONE_SERVICE_HOST}:${KEYSTONE_SERVICE_PORT}/v2.0\""
if [[ -n "$KEYSTONE_TOKEN_HASH_ALGORITHM" ]]; then
@@ -141,19 +142,23 @@
# and run_process
sudo rm -f /var/log/$APACHE_NAME/horizon_*
+ DJANGO_SETTINGS_MODULE=openstack_dashboard.settings django-admin.py collectstatic --noinput
+ DJANGO_SETTINGS_MODULE=openstack_dashboard.settings django-admin.py compress --force
+
}
# install_django_openstack_auth() - Collect source and prepare
function install_django_openstack_auth {
- git_clone $HORIZONAUTH_REPO $HORIZONAUTH_DIR $HORIZONAUTH_BRANCH
-
- # Compile message catalogs before installation
- _prepare_message_catalog_compilation
- cd $HORIZONAUTH_DIR
- python setup.py compile_catalog
- cd -
-
- setup_install $HORIZONAUTH_DIR
+ if use_library_from_git "django_openstack_auth"; then
+ local dir=${GITDIR["django_openstack_auth"]}
+ git_clone_by_name "django_openstack_auth"
+ # Compile message catalogs before installation
+ _prepare_message_catalog_compilation
+ (cd $dir; python setup.py compile_catalog)
+ setup_dev_lib "django_openstack_auth"
+ fi
+ # if we aren't using this library from git, then we just let it
+ # get dragged in by the horizon setup.
}
# install_horizon() - Collect source and prepare
diff --git a/lib/ironic b/lib/ironic
index a0a93d5..a56ab7a 100644
--- a/lib/ironic
+++ b/lib/ironic
@@ -165,6 +165,14 @@
if [[ "$IRONIC_IPXE_ENABLED" == "True" ]] ; then
install_apache_wsgi
fi
+
+ if [[ "$IRONIC_VM_LOG_CONSOLE" == "True" ]] && is_ubuntu; then
+ # Ubuntu packaging+apparmor issue prevents libvirt from loading
+ # the ROM from /usr/share/misc. Workaround by installing it directly
+ # to a directory that it can read from. (LP: #1393548)
+ sudo rm -rf /usr/share/qemu/sgabios.bin
+ sudo cp /usr/share/misc/sgabios.bin /usr/share/qemu/sgabios.bin
+ fi
}
# install_ironicclient() - Collect sources and prepare
diff --git a/lib/keystone b/lib/keystone
index e2c823a..72a79be 100644
--- a/lib/keystone
+++ b/lib/keystone
@@ -34,6 +34,7 @@
# Set up default directories
GITDIR["python-keystoneclient"]=$DEST/python-keystoneclient
+GITDIR["keystonemiddleware"]=$DEST/keystonemiddleware
KEYSTONE_DIR=$DEST/keystone
KEYSTONE_CONF_DIR=${KEYSTONE_CONF_DIR:-/etc/keystone}
@@ -46,8 +47,6 @@
KEYSTONE_WSGI_DIR=${KEYSTONE_WSGI_DIR:-/var/www/keystone}
fi
-KEYSTONEMIDDLEWARE_DIR=$DEST/keystonemiddleware
-
# Set up additional extensions, such as oauth1, federation
# Example of KEYSTONE_EXTENSIONS=oauth1,federation
KEYSTONE_EXTENSIONS=${KEYSTONE_EXTENSIONS:-}
@@ -489,8 +488,10 @@
# install_keystonemiddleware() - Collect source and prepare
function install_keystonemiddleware {
- git_clone $KEYSTONEMIDDLEWARE_REPO $KEYSTONEMIDDLEWARE_DIR $KEYSTONEMIDDLEWARE_BRANCH
- setup_install $KEYSTONEMIDDLEWARE_DIR
+ if use_library_from_git "keystonemiddleware"; then
+ git_clone_by_name "keystonemiddleware"
+ setup_dev_lib "keystonemiddleware"
+ fi
}
# install_keystone() - Collect source and prepare
diff --git a/lib/tempest b/lib/tempest
index 9e025a1..7ef8a30 100644
--- a/lib/tempest
+++ b/lib/tempest
@@ -303,6 +303,7 @@
iniset $TEMPEST_CONFIG compute-feature-enabled change_password False
iniset $TEMPEST_CONFIG compute-feature-enabled block_migration_for_live_migration ${USE_BLOCK_MIGRATION_FOR_LIVE_MIGRATION:-False}
iniset $TEMPEST_CONFIG compute-feature-enabled api_extensions ${COMPUTE_API_EXTENSIONS:-"all"}
+ iniset $TEMPEST_CONFIG compute-feature-enabled xml_api_v2 ${TEMPEST_ENABLE_NOVA_XML_API:-True}
iniset $TEMPEST_CONFIG compute-feature-disabled api_extensions ${DISABLE_COMPUTE_API_EXTENSIONS}
# Compute admin
diff --git a/stack.sh b/stack.sh
index 54444ad..7635f32 100755
--- a/stack.sh
+++ b/stack.sh
@@ -143,7 +143,7 @@
# Warn users who aren't on an explicitly supported distro, but allow them to
# override check and attempt installation with ``FORCE=yes ./stack``
-if [[ ! ${DISTRO} =~ (precise|trusty|7.0|wheezy|sid|testing|jessie|f19|f20|rhel6|rhel7) ]]; then
+if [[ ! ${DISTRO} =~ (precise|trusty|7.0|wheezy|sid|testing|jessie|f19|f20|f21|rhel6|rhel7) ]]; then
echo "WARNING: this script has not been tested on $DISTRO"
if [[ "$FORCE" != "yes" ]]; then
die $LINENO "If you wish to run this script anyway run with FORCE=yes"
diff --git a/stackrc b/stackrc
index 75f606f..18e1de3 100644
--- a/stackrc
+++ b/stackrc
@@ -219,7 +219,7 @@
# volume client
GITREPO["python-cinderclient"]=${CINDERCLIENT_REPO:-${GIT_BASE}/openstack/python-cinderclient.git}
-GITBRACH["python-cinderclient"]=${CINDERCLIENT_BRANCH:-master}
+GITBRANCH["python-cinderclient"]=${CINDERCLIENT_BRANCH:-master}
# python glance client library
GITREPO["python-glanceclient"]=${GLANCECLIENT_REPO:-${GIT_BASE}/openstack/python-glanceclient.git}
@@ -350,12 +350,12 @@
HEAT_TEMPLATES_BRANCH=${HEAT_TEMPLATES_BRANCH:-master}
# django openstack_auth library
-HORIZONAUTH_REPO=${HORIZONAUTH_REPO:-${GIT_BASE}/openstack/django_openstack_auth.git}
-HORIZONAUTH_BRANCH=${HORIZONAUTH_BRANCH:-master}
+GITREPO["django_openstack_auth"]=${HORIZONAUTH_REPO:-${GIT_BASE}/openstack/django_openstack_auth.git}
+GITBRANCH["django_openstack_auth"]=${HORIZONAUTH_BRANCH:-master}
# keystone middleware
-KEYSTONEMIDDLEWARE_REPO=${KEYSTONEMIDDLEWARE_REPO:-${GIT_BASE}/openstack/keystonemiddleware.git}
-KEYSTONEMIDDLEWARE_BRANCH=${KEYSTONEMIDDLEWARE_BRANCH:-master}
+GITREPO["keystonemiddleware"]=${KEYSTONEMIDDLEWARE_REPO:-${GIT_BASE}/openstack/keystonemiddleware.git}
+GITBRANCH["keystonemiddleware"]=${KEYSTONEMIDDLEWARE_BRANCH:-master}
# s3 support for swift
SWIFT3_REPO=${SWIFT3_REPO:-${GIT_BASE}/stackforge/swift3.git}
diff --git a/tools/fixup_stuff.sh b/tools/fixup_stuff.sh
index b8beb01..ca46533 100755
--- a/tools/fixup_stuff.sh
+++ b/tools/fixup_stuff.sh
@@ -18,7 +18,6 @@
# - (re)start messagebus daemon
# - remove distro packages python-crypto and python-lxml
# - pre-install hgtools to work around a bug in RHEL6 distribute
-# - install nose 1.1 from EPEL
# If TOP_DIR is set we're being sourced rather than running stand-alone
# or in a sub-shell
@@ -179,14 +178,6 @@
# Note we do this before the track-depends in ``stack.sh``.
pip_install hgtools
-
- # RHEL6's version of ``python-nose`` is incompatible with Tempest.
- # Install nose 1.1 (Tempest-compatible) from EPEL
- install_package python-nose1.1
- # Add a symlink for the new nosetests to allow tox for Tempest to
- # work unmolested.
- sudo ln -sf /usr/bin/nosetests1.1 /usr/local/bin/nosetests
-
# workaround for https://code.google.com/p/unittest-ext/issues/detail?id=79
install_package python-unittest2 patch
pip_install discover
diff --git a/tools/ironic/scripts/configure-vm b/tools/ironic/scripts/configure-vm
index 4c42c49..378fcb8 100755
--- a/tools/ironic/scripts/configure-vm
+++ b/tools/ironic/scripts/configure-vm
@@ -78,8 +78,10 @@
params['emulator'] = "/usr/bin/qemu-kvm"
if args.console_log:
+ params['bios_serial'] = "<bios useserial='yes'/>"
params['console_log'] = CONSOLE_LOG % {'console_log': args.console_log}
else:
+ params['bios_serial'] = ''
params['console_log'] = ''
libvirt_template = source_template % params
conn = libvirt.open("qemu:///system")
diff --git a/tools/ironic/templates/vm.xml b/tools/ironic/templates/vm.xml
index 4f40334..ae7d685 100644
--- a/tools/ironic/templates/vm.xml
+++ b/tools/ironic/templates/vm.xml
@@ -6,6 +6,7 @@
<type arch='%(arch)s' machine='pc-1.0'>hvm</type>
<boot dev='%(bootdev)s'/>
<bootmenu enable='no'/>
+ %(bios_serial)s
</os>
<features>
<acpi/>