diff --git a/doc/source/dev/api.rst b/doc/source/dev/api.rst index 26694a26b2..43c67dc04b 100644 --- a/doc/source/dev/api.rst +++ b/doc/source/dev/api.rst @@ -5,7 +5,5 @@ Ironic's API Server =========== .. toctree:: - ../api/ironic.api.config - ../api/ironic.api.controllers.root - ../api/ironic.api.controllers.v1 ../api/ironic.api.hooks + ../api/ironic.api.controllers.root diff --git a/doc/source/dev/architecture.rst b/doc/source/dev/architecture.rst index 968118b263..6835a612b0 100644 --- a/doc/source/dev/architecture.rst +++ b/doc/source/dev/architecture.rst @@ -62,8 +62,26 @@ There are three categories of driver interfaces: will merely relay the message from the API service to the appropriate driver. -.. _API service: ../dev/api-spec-v1.html +Message Routing +=============== + +Each Conductor registers itself in the database upon start-up, and periodically +updates the timestamp of its record. Contained within this registration is a +list of the drivers which this Conductor instance supports. This allows all +services to maintain a consistent view of which Conductors and which drivers +are available at all times. + +Based on their respective driver, all nodes are mapped across the set of +available Conductors using a `consistent hashing algorithm`_. Node-specific +tasks are dispatched from the API tier to the appropriate conductor using +conductor-specific RPC channels. As Conductor instances join or leave the +cluster, nodes may be remapped to different Conductors, thus triggering various +driver actions such as take-over or clean-up. + + +.. _API service: ../webapi/v1.html .. _BaseDriver: ../api/ironic.drivers.base.html#ironic.drivers.base.BaseDriver .. _Conductor service: ../api/ironic.conductor.manager.html .. _DB API: ../api/ironic.db.api.html .. _diskimage-builder: https://github.com/openstack/diskimage-builder +.. _consistent hashing algorithm: ../api/ironic.common.hash_ring.html diff --git a/doc/source/dev/cmd.rst b/doc/source/dev/cmd.rst deleted file mode 100644 index bfe316a554..0000000000 --- a/doc/source/dev/cmd.rst +++ /dev/null @@ -1,10 +0,0 @@ -.. _cmd: - -========================== -List of Installed Commands -========================== - -.. toctree:: - ../api/ironic.cmd.api - ../api/ironic.cmd.dbsync - ../api/ironic.cmd.conductor diff --git a/doc/source/dev/common.rst b/doc/source/dev/common.rst index afec82cfdf..142b88cab4 100644 --- a/doc/source/dev/common.rst +++ b/doc/source/dev/common.rst @@ -5,9 +5,10 @@ Common Modules and Utilities ============================ .. toctree:: - ../api/ironic.common.context + ../api/ironic.common.driver_factory ../api/ironic.common.exception - ../api/ironic.common.service + ../api/ironic.common.hash_ring + ../api/ironic.common.images ../api/ironic.common.states ../api/ironic.common.utils diff --git a/doc/source/dev/db.rst b/doc/source/dev/db.rst index 3235aff243..ea4b55126c 100644 --- a/doc/source/dev/db.rst +++ b/doc/source/dev/db.rst @@ -6,8 +6,4 @@ DB API Layer .. toctree:: ../api/ironic.db.api - ../api/ironic.db.migration - ../api/ironic.db.models - ../api/ironic.db.sqlalchemy.api - ../api/ironic.db.sqlalchemy.migration ../api/ironic.db.sqlalchemy.models diff --git a/doc/source/dev/drivers.rst b/doc/source/dev/drivers.rst index d89f76754f..8571f63352 100644 --- a/doc/source/dev/drivers.rst +++ b/doc/source/dev/drivers.rst @@ -4,7 +4,17 @@ Pluggable Drivers ================= +The IPMITool driver provides an interface to the command-line `ipmitool`_ +utility, whereas the IPMINative driver provides an interface to the newer +`pyghmi`_ python library. + .. toctree:: ../api/ironic.drivers.base - ../api/ironic.drivers.fake - ../api/ironic.drivers.ipmi + ../api/ironic.drivers.pxe + ../api/ironic.drivers.modules.ipminative + ../api/ironic.drivers.modules.ipmitool + ../api/ironic.drivers.modules.pxe + ../api/ironic.drivers.modules.ssh + +.. _ipmitool: http://ipmitool.sourceforge.net/ +.. _pyghmi: https://github.com/stackforge/pyghmi diff --git a/doc/source/index.rst b/doc/source/index.rst index bd83687797..58484c6558 100644 --- a/doc/source/index.rst +++ b/doc/source/index.rst @@ -17,15 +17,19 @@ together multiple drivers, each of which implement some portion of that functionality with respect to physical hardware. For an in-depth look at the project's scope and structure, see the -:doc:`dev/architecture` page. +:doc:`developer/architecture` page. -Status: Hard Hat Required! -========================== +Status: Alpha Quality +===================== -Ironic is under rapid initial development, forked from Nova's `Baremetal -driver`_. If you're looking for an OpenStack service to provision bare metal -today, that is where you want to look. +Ironic is targeting inclusion in the OpenStack Icehouse release. The current +codebase should be considered "alpha" quality. All major functional components +exist but there are many known bugs which will prevent general use at this +time. Additionally, usage documentation still needs to be written. + +If you are looking for the preceding baremetal service, which was included in +OpenStack Grizzly and Havana releases, please see Nova's `Baremetal driver`_. .. TODO .. - installation @@ -39,18 +43,18 @@ today, that is where you want to look. .. - hw plugins -Developer Docs -============== +Developer Documentation +======================= -For those wishing to develop Ironic itself, or add drivers to extend Ironic's -functionality, the following documentation is provided. +Overview +-------- .. toctree:: :maxdepth: 1 - dev/architecture - dev/contributing - dev/dev-quickstart + developer/architecture + developer/contributing + developer/dev-quickstart Client API Reference -------------------- @@ -64,14 +68,13 @@ Python API Quick Reference -------------------------- .. toctree:: - :maxdepth: 2 + :maxdepth: 1 - dev/api - dev/cmd - dev/common - dev/db - dev/drivers - dev/conductor + developer/api + developer/common + developer/db + developer/drivers + developer/conductor Indices and tables ==================