Cell messaging module.
This module defines the different message types that are passed between cells and the methods that they can call when the target cell has been reached.
The interface into this module is the MessageRunner class.
Bases: object
This class is the main interface into creating messages and processing them.
Public methods in this class are typically called by the CellsManager to create a new message and process it with the exception of ‘message_from_json’ which should be used by CellsDrivers to convert a JSONified message it has received back into the appropriate Message class.
Private methods are used internally when we need to keep some ‘global’ state. For instance, eventlet queues used for responses are held in this class. Also, when a Message is process()ed above and it’s determined we should take action locally, _process_message_locally() will be called.
When needing to add a new method to call in a Cell2Cell message, define the new method below and also add it to the appropriate MessageMethods class where the real work will be done.
Tell child cells to send us capabilities. This is typically called on startup of the nova-cells service.
Tell child cells to send us capacities. This is typically called on startup of the nova-cells service.
Update bandwidth usage at top level cell.
Return compute node entry from a specific cell by ID.
Return list of compute nodes in all child cells.
Return compute node stats from all child cells.
Delete consoleauth tokens for an instance in API cells.
This is used by API cell when it didn’t know what cell an instance was in, but the instance was requested to be deleted or soft_deleted. So, we’ll broadcast this everywhere.
Destroy an instance at the top level cell.
Create an instance fault at the top level cell.
Update an instance at the top level cell.
Turns a message in JSON format into an appropriate Message instance. This is called when cells receive a message from another cell.
Call a compute API method in a specific cell.
Called by the scheduler to tell a child cell to schedule a new instance for build.
Force a sync of all instances, potentially by project_id, and potentially since a certain date/time.
Get task logs from the DB from all cells or a particular cell.
If ‘cell_name’ is None or ‘’, get responses from all cells. If ‘host’ is not None, filter by host. If ‘state’ is not None, filter by state.
Return a list of Response objects.
Send our capabilities to parent cells.
Send our capacities to parent cells.
Validate console port with child cell compute node.