Merge "Minor doc change for manager and resorce_manager."

This commit is contained in:
Jenkins 2013-05-29 18:56:32 +00:00 committed by Gerrit Code Review
commit 6343ffc06c
2 changed files with 29 additions and 16 deletions

View File

@ -15,6 +15,26 @@
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the # WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
# License for the specific language governing permissions and limitations # License for the specific language governing permissions and limitations
# under the License. # under the License.
"""Handles all activity related to bare-metal deployments.
A single instance of :py:class:`ironic.manager.manager.ManagerService` is
created within the *ironic-manager* process, and is responsible for performing
all actions on bare metal resources (Chassis, Nodes, and Ports). Commands are
received via RPC calls. The manager service also performs periodic tasks, eg.
to monitor the status of active deployments.
Drivers are loaded via entrypoints, by the
:py:class:`ironic.manager.resource_manager.NodeManager` class. Each driver is
instantiated once and a ref to that singleton is included in each resource
manager, depending on the node's configuration. In this way, a single
ManagerService may use multiple drivers, and manage heterogeneous hardware.
When multiple :py:class:`ManagerService` are run on different hosts, they are
all active and cooperatively manage all nodes in the deplyment. Nodes are
locked by each manager when performing actions which change the state of that
node; these locks are represented by the
:py:class:`ironic.manager.task_manager.TaskManager` class.
"""
from ironic.common import service from ironic.common import service
from ironic.db import api as dbapi from ironic.db import api as dbapi
@ -27,16 +47,7 @@ LOG = log.getLogger(__name__)
class ManagerService(service.PeriodicService): class ManagerService(service.PeriodicService):
"""Ironic Manager Service. """Ironic Manager service main class."""
A single instance of this class is created within the ironic-manager
process. It is responsible for performing all actions on Chassis, Nodes,
and Ports, and tracks these actions via Trackers.
Tracker instances are created on-demand and destroyed when the
operation(s) are complete. Persistent state is stored in a database,
which is also used to coordinate locks between ManagerServices.
"""
RPC_API_VERSION = '1.0' RPC_API_VERSION = '1.0'

View File

@ -17,14 +17,16 @@
# under the License. # under the License.
""" """
A NodeManager instance holds the data and drivers for a distinct node. Hold the data and drivers for a distinct node within a given context.
Each NodeManager instance is a semi-singleton, keyed by the node id, and Each :py:class:`ironic.manager.resource_manager.NodeManager` instance is a
contains references to the TaskManagers which called it. When no more semi-singleton, keyed by the node id. It contains references to all
TaskManagers reference a given NodeManager, it is automatically destroyed. :py:class:`ironic.manager.task_manager.TaskManager` which called it. When no
more TaskManagers reference a given NodeManager, it is automatically destroyed.
Do not request a NodeManager directly; instead, you should use a Do not request a NodeManager directly; instead, you should use a TaskManager to
TaskManager to manage the resource in a given context. manage the resource in a given context. See the documentation on TaskManager
for an example.
""" """
from stevedore import dispatch from stevedore import dispatch