Get desktop application:
View/edit binary Protocol Buffers messages
All rpcs related to transactions and SDK performance and integration testing.
Fetches the set of collections currently being cleaned up. Added in ExtSDKIntegration, and will only be sent if the performer declares support for that extension.
Clear all counters for a given performer
Request that the implementation do its normal client record processing logic (creating CR if needed).
Request that the implementation remove this client from the client record, from all buckets. This was removed as it's quite niche, used by very few tests, and requires backdoor access into cleanup. And its behaviour can be easily replicated with clusterConnectionClose/transactionsFactoryClose, which will remove the client record everywhere too. Performers can remove this, the driver will no longer send it.
Closes all unclosed transaction factories. ExtSDKIntegration performers should not implement this, and the driver will gracefully handle that. The same comments for `disconnectConnections` apply.
Close a particular cluster connection. Added in ExtSDKIntegration, and will only be sent if the performer declares support for that extension or RealPerformerCaps.KV_SUPPORT_1. There is no real analogue pre-ExtSDKIntegration, so all cluster connections will remain open. Required for performers that implement RealPerformerCaps.KV_SUPPORT_1. If any of performerCapsFetch, clusterConnectionCreate and clusterConnectionClose is implemented, they must all be implemented.
Creates a Cluster connection, and optionally configures it. Added in ExtSDKIntegration, and will only be sent if the performer declares support for that extension or RealPerformerCaps.KV_SUPPORT_1. Otherwise CreateConnectionRequest will be used. Required for performers that implement RealPerformerCaps.KV_SUPPORT_1. If any of performerCapsFetch, clusterConnectionCreate and clusterConnectionClose is implemented, they must all be implemented. The performer should not call waitUntilReady as part of the cluster connection. Tests that require a reliable cluster connection should use the WaitUntilReady ClusterLevelCommand.
Creates a clusterConnection between performer and Couchbase Server, and returns the performer caps. Deprecated as ClusterConnectionCreateRequest does the job better, and has a proper close method. Performers can (and are recommended to) implement clusterConnectionCreate and remove support for this, including if they don't support ExtSDKIntegration yet.
Closes all cluster connections. Since ExtSDKIntegrated, the driver should be cleaning up all resources it creates. But this method remains useful to send upfront before all tests, in case the previous run did not finish cleanly. It can only be sent before or after all tests, to avoid destroying the default cluster connection. Required for performers that implement RealPerformerCaps.KV_SUPPORT_1.
Request that the performer Echo a string to the performer logs. Required for performers that implement RealPerformerCaps.KV_SUPPORT_1.
Requests the performer's capabilities. Added in ExtSDKIntegration. If the performer has not implemented this, the driver will gracefully degrade to using the now-legacy CreateConnectionRequest instead. Required for performers that implement RealPerformerCaps.KV_SUPPORT_1. If any of performerCapsFetch, clusterConnectionCreate and clusterConnectionClose is implemented, they must all be implemented.
The performer will execute all run.Request items, and stream back all expected responses. It's intentionally a very generic interface and concept, as it's designed to be used for many purposes. Initially it's for performance and integration testing, for both transactions and SDK workloads (plus some other bits, such as meta-testing performance of various GRPC streaming approaches). Error handling: If the performer encounters anything in the requests that it does not understand, then it should close the stream with an error with a standard GRPC Status.UNIMPLEMENTED code (https://grpc.github.io/grpc/core/md_doc_statuscodes.html) so the driver can cleanly handle this. If the performer hits any kind of error that does not already have an appropriate error response in the GRPC (e.g. something truly unexpected has happened), then it should raise an error with a standard GRPC Status.UNKNOWN code.
Set the counter with the given id to a new value
Observability-related requests.
Stream-related requests. The stream itself will have been established by another rpc, e.g. `run`. These rpcs are at this top-level (rather than say run.Request) because, while a stream's lifespan is bound to a grpc return `stream`, streams are a generic concept and we don't want to duplicate these rpcs inside future other rpcs.
Performs cleanup of a single transaction. It will fetch the ATR entry first. This tests the internals of the cleanup algo, the part shared by the two cleanup systems.
Performs cleanup of a full ATR. Useful for testing multiple performers concurrently cleaning up same ATR. Note it will only cleanup expired entries.
Creates and runs a transaction and returns the result. Abstracts over ExtSDKIntegration by passing both a clusterConnectionId and a transactionsFactoryRef so the performer can use a Cluster or Transactions object as appropriate. In ExtSDKIntegration, the transactionsFactoryRef should be ignored.
Request a Transactions object forces cleanup of all requests on its queue. This was removed as it's quite niche, used by very few tests, almost redundant since ExtRemoveComplete, and requires backdoor access into cleanup. It will no longer be sent and performers should remove it.
Perform a single query transaction. Added in ExtSingleQuery, and will only be sent if the performer declares support for that extension. Abstracts over ExtSDKIntegration by passing both a clusterConnectionId and a transactionsFactoryRef so the performer can use a Cluster or Transactions object as appropriate. In ExtSDKIntegration, the transactionsFactoryRef should be ignored.
Transactions that can communicate bi-directionally with the tests This is for more complex tests that require e.g. concurrent transactions, gating each other's progress.
Create or close a Transactions (e.g. a transactions factory), returning a transactionsFactoryRef. Will be removed eventually as Transactions objects no longer really apply in ExtSDKIntegration - the Cluster is the 'lifecycle object'. Performers that need to support non-ExtSDKIntegration will need to keep this, otherwise they can remove it.