Package ClusterShell :: Module Communication
[hide private]
[frames] | no frames]

Module Communication

source code

ClusterShell inter-nodes communication module

This module contains the required material for nodes to communicate between each others within the propagation tree. At the highest level, messages are instances of several classes. They can be converted into XML to be sent over SSH links through a Channel instance.

In the other side, XML is parsed and new message objects are instanciated.

Communication channels have been implemented as ClusterShell events handlers. Whenever a message chunk is read, the data is given to a SAX XML parser, that will use it to create corresponding messages instances as a messages factory.

As soon as an instance is ready, it is then passed to a recv() method in the channel. The recv() method of the Channel class is a stub, that requires to be implemented in subclass to process incoming messages. So is the start() method too.

Subclassing the Channel class allows implementing whatever logic you want on the top of a communication channel.


Version: 1.7.3

Classes [hide private]
  MessageProcessingError
base exception raised when an error occurs while processing incoming or outgoing messages.
  XMLReader
SAX handler for XML -> Messages instances conversion
  Channel
Use this event handler to establish a communication channel between to hosts whithin the propagation tree.
  Message
base message class
  ConfigurationMessage
configuration propagation container
  RoutedMessageBase
abstract class for routed message (with worker source id)
  ControlMessage
action request
  ACKMessage
acknowledgement message
  ErrorMessage
error message
  StdOutMessage
container message for standard output
  StdErrMessage
container message for stderr output
  RetcodeMessage
container message for return code
  TimeoutMessage
container message for timeout notification
  StartMessage
message indicating the start of a channel communication
  EndMessage
end of channel message
Variables [hide private]
  ENCODING = 'utf-8'
  DEFAULT_B64_LINE_LENGTH = 65536
  __package__ = 'ClusterShell'