congress.dse2.dse_node module

congress.dse2.dse_node module

class congress.dse2.dse_node.DseNode(messaging_config, node_id, node_rpc_endpoints, partition_id=None)

Bases: object

Addressable entity participating on the DSE message bus.

The Data Services Engine (DSE) is comprised of one or more DseNode instances that each may run one or more DataService instances. All communication between data services uses the DseNode interface.

Attributes:

  • node_id: The unique ID of this node on the DSE.
  • messaging_config: Configuration options for the message bus. See oslo.messaging for more details.
  • node_rpc_endpoints: List of object instances exposing a remotely invokable interface.
CONTROL_TOPIC = 'congress-control'
EXCHANGE = 'congress'
RPC_VERSION = '1.0'
SERVICE_TOPIC_PREFIX = 'congress-service-'
broadcast_node_rpc(method, kwargs=None)

Invoke RPC method on all DSE Nodes.

Param:method: The method name to call.
Param:kwargs: A dict of method arguments.
Returns:None Methods are invoked asynchronously and results are dropped.
Raises:RemoteError, MessageDeliveryFailure
broadcast_service_rpc(service_id, method, kwargs=None)

Invoke RPC method on all instances of service_id.

Param:service_id: The ID of the data service on which to invoke the call.
Param:method: The method name to call.
Param:kwargs: A dict of method arguments.
Returns:None - Methods are invoked asynchronously and results are dropped.
Raises:RemoteError, MessageDeliveryFailure
create_datasource_service(datasource)

Create a new DataService on this node.

Param:datasource: datsource object.
delete_missing_driver_datasources()
dse_status()

Return latest observation of DSE status.

get_datasource(id_)

Return the created datasource.

get_datasources(filter_secret=False)

Return the created datasources as recorded in the DB.

This returns what datasources the database contains, not the datasources that this server instance is running.

classmethod get_driver_info(driver_name)
classmethod get_driver_schema(drivername)
classmethod get_drivers_info()
get_global_service_names(hidden=False)

Return names of all services on all nodes.

get_services(hidden=False)

Return all local service objects.

get_subscribers(service_id)

List of services subscribed to this service.

get_subscription(service_id)

Return publisher/tables subscribed by service: service_id

Return data structure: {publisher_id -> set of tables}

invoke_node_rpc(node_id, method, kwargs=None, timeout=None)

Invoke RPC method on a DSE Node.

Param:node_id: The ID of the node on which to invoke the call.
Param:method: The method name to call.
Param:kwargs: A dict of method arguments.
Returns:The result of the method invocation.
Raises:MessagingTimeout, RemoteError, MessageDeliveryFailure
invoke_service_rpc(service_id, method, kwargs=None, timeout=None, local=False, retry=None)

Invoke RPC method on a DSE Service.

Param:service_id: The ID of the data service on which to invoke the call.
Param:method: The method name to call.
Param:kwargs: A dict of method arguments.
Returns:The result of the method invocation.
Raises:MessagingTimeout, RemoteError, MessageDeliveryFailure, NotFound
is_valid_service(service_id)
classmethod load_custom_drivers()
classmethod load_drivers()

Loads all configured drivers

loaded_drivers = {}
make_datasource_dict(req, fields=None)
node_rpc_target(namespace=None, server=None, fanout=False)
publish_table(publisher, table, data)

Invoke RPC method on all insances of service_id.

Param:service_id: The ID of the data service on which to invoke the call.
Param:method: The method name to call.
Param:kwargs: A dict of method arguments.
Returns:None Methods are invoked asynchronously and results are dropped.
Raises:RemoteError, MessageDeliveryFailure
publish_table_sequenced(publisher, table, data, is_snapshot, seqnum)

Invoke RPC method on all insances of service_id.

Param:service_id: The ID of the data service on which to invoke the call.
Param:method: The method name to call.
Param:kwargs: A dict of method arguments.
Returns:None Methods are invoked asynchronously and results are dropped.
Raises:RemoteError, MessageDeliveryFailure
register_service(service)
service_object(service_id=None, uuid_=None)

Return the service object requested.

Search by service_id or uuid_ (only one should be supplied). None if not found.

service_rpc_target(service_id, namespace=None, server=None, fanout=False)
start()
stop()
subscribe_table(subscriber, publisher, table)

Prepare local service to receives publications from target/table.

table_subscribers(publisher, table)

List services on this node that subscribes to publisher/table.

to_set_of_tuples(snapshot)
unregister_service(service_id=None, uuid_=None)

Unregister service from DseNode matching on service_id or uuid_

Only one should be supplied. No-op if no matching service found.

unsubscribe_table(subscriber, publisher, table)

Remove subscription for local service to target/table.

validate_create_datasource(req)
wait()
class congress.dse2.dse_node.DseNodeEndpoints(dsenode)

Bases: object

Collection of RPC endpoints that the DseNode exposes on the bus.

Must be a separate class since all public methods of a given class are assumed to be valid RPC endpoints.

handle_publish(context, publisher, table, data)

Function called on the node when a publication is sent.

Forwards the publication to all of the relevant services.

handle_publish_sequenced(context, publisher, table, data, is_snapshot, seqnum)

Function called on the node when a publication is sent.

Forwards the publication to all of the relevant services.

Creative Commons Attribution 3.0 License

Except where otherwise noted, this document is licensed under Creative Commons Attribution 3.0 License. See all OpenStack Legal Documents.