The 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.
- Args:
- method: The method name to call. 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.
- Args:
- service_id: The ID of the data service on which to invoke the call. method: The method name to call. 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 name is the name of the service. Must be unique across all
- services
- :param classPath is a string giving the path to the class name, e.g.
- congress.datasources.fake_datasource.FakeDataSource
- :param args is the list of arguments to give the DataService
- constructor
:param type_ is the kind of service :param id_ is an optional parameter for specifying the uuid.
-
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.
-
get_driver_info
(driver_name)¶
-
get_driver_schema
(drivername)¶
-
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.
- Args:
- node_id: The ID of the node on which to invoke the call. method: The method name to call. 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.
- Args:
- service_id: The ID of the data service on which to invoke the call. method: The method name to call. kwargs: A dict of method arguments.
- Returns:
- The result of the method invocation.
Raises: MessagingTimeout, RemoteError, MessageDeliveryFailure, NotFound
-
is_valid_service
(service_id)¶
-
load_drivers
()¶ Load all configured drivers and check no name conflict
-
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.
- Args:
- service_id: The ID of the data service on which to invoke the call. method: The method name to call. 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.
- Args:
- service_id: The ID of the data service on which to invoke the call. method: The method name to call. 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.
-