![]() ![]() create () return node_obj ( 'ConductorManager.update_node' ) # No need to add these since they are subclasses of InvalidParameterValue: # InterfaceNotFoundInEntrypoint # IncompatibleInterface, # NoValidDefaultForInterface # MustBeNone ( exception. check_and_update_node_interfaces ( node_obj ) node_obj. debug ( "RPC create_node called for node %s. :raises: DriverNotFound if the driver or hardware type is not found. :raises: MustBeNone if one or more of the node's interface fields were specified when they should not be. :raises: InvalidParameterValue if some fields fail validation. ![]() :raises: NoValidDefaultForInterface if no default can be calculated for some interfaces, and explicit values must be provided. :raises: IncompatibleInterface if one or more of the requested interfaces are not compatible with the hardware type. :raises: InterfaceNotFoundInEntrypoint if validation fails for any dynamic interfaces (e.g. :param context: an admin context :param node_obj: a created (but not saved to the database) node object. DriverNotFound ) def create_node ( self, context, node_obj ): """Create a node in database. defaultdict ( int ) ( 'ConductorManager.create_node' ) # No need to add these since they are subclasses of InvalidParameterValue: # InterfaceNotFoundInEntrypoint # IncompatibleInterface, # NoValidDefaultForInterface # MustBeNone ( exception. Target ( version = RPC_API_VERSION ) def _init_ ( self, host, topic ): super ( ConductorManager, self ). RPC_API_VERSION = '1.40' target = messaging. BaseConductorManager ): """Ironic Conductor manager main class.""" # NOTE(rloo): This must be in sync with rpcapi.ConductorAPI's. get_metrics_logger ( _name_ ) SYNC_EXCLUDED_STATES = ( states. getLogger ( _name_ ) METRICS = metrics_utils. """ import collections import datetime from six.moves import queue import tempfile import eventlet from futurist import periodics from futurist import waiters from ironic_lib import metrics_utils from oslo_log import log import oslo_messaging as messaging from oslo_utils import excutils from oslo_utils import uuidutils from mon import driver_factory from mon import exception from _service import service_utils as glance_utils from 18n import _, _LE, _LI, _LW from mon import images from mon import states from mon import swift from nductor import base_manager from nductor import notification_utils as notify_utils from nductor import task_manager from nductor import utils from nf import CONF from ironic.drivers import base as drivers_base from ironic.drivers import hardware_type from ironic import objects from ironic.objects import base as objects_base from ironic.objects import fields MANAGER_TOPIC = 'nductor_manager' LOG = log. Rebalancing this ring can trigger various actions by each conductor, such as building or tearing down the TFTP environment for a node, notifying Neutron of a change, etc. A ` `_ is used to distribute nodes across the set of active conductors which support each node's driver. Nodes are locked by each conductor when performing actions which change the state of that node these locks are represented by the :py:class:`_manager.TaskManager` class. When multiple :py:class:`ConductorManager` are run on different hosts, they are all active and cooperatively manage all nodes in the deployment. In this way, a single ConductorManager may use multiple drivers, and manage heterogeneous hardware. Each driver is instantiated only once, when the ConductorManager service starts. ![]() Drivers are loaded via entrypoints by the :py:class:`_factory` class. to monitor the status of active deployments. The conductor service also performs periodic tasks, eg. A single instance of :py:class:`` is created within the *ironic-conductor* process, and is responsible for performing all actions on bare metal resources (Chassis, Nodes, and Ports). """Conduct all activity related to bare-metal deployments. See the # License for the specific language governing permissions and limitations # under the License. You may obtain # a copy of the License at # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, WITHOUT # WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # Licensed under the Apache License, Version 2.0 (the "License") you may # not use this file except in compliance with the License. # Copyright 2013 International Business Machines Corporation # All Rights Reserved. # coding=utf-8 # Copyright 2013 Hewlett-Packard Development Company, L.P. ![]()
0 Comments
Leave a Reply. |
AuthorWrite something about yourself. No need to be fancy, just an overview. ArchivesCategories |