@InterfaceStability.Committed @InterfaceAudience.Public public interface AsyncCluster
Cluster
.
A AsyncCluster
is able to open many AsyncBucket
s while sharing the underlying resources very
efficiently. In addition, the AsyncClusterManager
is available to perform cluster-wide operations.Modifier and Type | Method and Description |
---|---|
AsyncCluster |
authenticate(Authenticator auth)
Sets the
Authenticator to use when credentials are needed for an operation
but no explicit credentials are provided. |
AsyncCluster |
authenticate(String username,
String password)
Shortcut method to directly authenticate with a username and a password.
|
rx.Observable<AsyncClusterManager> |
clusterManager()
Provides access to the
AsyncClusterManager to perform cluster-wide operations, using the
credentials set through the configured Authenticator , for the
CredentialContext.CLUSTER_MANAGEMENT context. |
rx.Observable<AsyncClusterManager> |
clusterManager(String username,
String password)
Provides access to the
AsyncClusterManager to perform cluster-wide operations. |
rx.Observable<ClusterFacade> |
core()
Returns the underlying "core-io" library through its
ClusterFacade . |
rx.Observable<DiagnosticsReport> |
diagnostics()
Provides a simple health check which allows insight into the current state of
services and endpoints.
|
rx.Observable<DiagnosticsReport> |
diagnostics(String reportId)
Provides a simple health check which allows insight into the current state of
services and endpoints.
|
rx.Observable<Boolean> |
disconnect()
Disconnects form all open buckets and shuts down the
CouchbaseEnvironment if it is the exclusive owner. |
rx.Observable<AsyncBucket> |
openBucket()
Opens the default bucket with an empty password.
|
rx.Observable<AsyncBucket> |
openBucket(String name)
Opens the bucket with the given name using the password from the
Authenticator that was last
set
If no credential context can be found for the bucket when using ClassicAuthenticator , the old behavior of defaulting to an empty
password is used. |
rx.Observable<AsyncBucket> |
openBucket(String name,
List<Transcoder<? extends Document,?>> transcoders)
Opens the bucket with the given name using the password from the
Authenticator that was last
set
If no credential context can be found for the bucket when using ClassicAuthenticator , the old behavior of defaulting to an empty
password is used. |
rx.Observable<AsyncBucket> |
openBucket(String name,
String password)
Opens the bucket with the given name and password.
|
rx.Observable<AsyncBucket> |
openBucket(String name,
String password,
List<Transcoder<? extends Document,?>> transcoders)
Opens the bucket with the given name, password and a custom list of
Transcoder s. |
rx.Observable<AsyncN1qlQueryResult> |
query(N1qlQuery query)
Asynchronously perform a N1QL query that can span multiple buckets.
|
rx.Observable<AsyncBucket> openBucket()
Observable
can error under the following conditions:
- com.couchbase.client.core.CouchbaseException: If the bucket could not be opened (see logs and nested stack
trace for more details why it failed).
- com.couchbase.client.core.BackpressureException: If the incoming request rate is too high to be processed.rx.Observable<AsyncBucket> openBucket(String name)
Authenticator
that was last
set
If no credential context can be found for the bucket when using ClassicAuthenticator
, the old behavior of defaulting to an empty
password is used.
The Observable
can error under the following conditions:
- com.couchbase.client.core.CouchbaseException: If the bucket could not be opened (see logs and nested stack
trace for more details why it failed).
- com.couchbase.client.core.BackpressureException: If the incoming request rate is too high to be processed.
- AuthenticatorException
: If more than one credentials was returned by the Authenticator for this bucket.name
- the name of the bucket.rx.Observable<AsyncBucket> openBucket(String name, List<Transcoder<? extends Document,?>> transcoders)
Authenticator
that was last
set
If no credential context can be found for the bucket when using ClassicAuthenticator
, the old behavior of defaulting to an empty
password is used.
The Observable
can error under the following conditions:
- com.couchbase.client.core.CouchbaseException: If the bucket could not be opened (see logs and nested stack
trace for more details why it failed).
- com.couchbase.client.core.BackpressureException: If the incoming request rate is too high to be processed.
- AuthenticatorException
: If more than one credentials was returned by the Authenticator for this bucket.name
- the name of the bucket.rx.Observable<AsyncBucket> openBucket(String name, String password)
Observable
can error under the following conditions:
- com.couchbase.client.core.CouchbaseException: If the bucket could not be opened (see logs and nested stack
trace for more details why it failed).
- com.couchbase.client.core.BackpressureException: If the incoming request rate is too high to be processed.name
- the name of the bucket.rx.Observable<AsyncBucket> openBucket(String name, String password, List<Transcoder<? extends Document,?>> transcoders)
Transcoder
s.
The Observable
can error under the following conditions:
- com.couchbase.client.core.CouchbaseException: If the bucket could not be opened (see logs and nested stack
trace for more details why it failed).
- com.couchbase.client.core.BackpressureException: If the incoming request rate is too high to be processed.name
- the name of the bucket.@InterfaceStability.Uncommitted rx.Observable<AsyncN1qlQueryResult> query(N1qlQuery query)
Authenticator
.
In order to use that method, at least one AsyncBucket
must currently be opened. Note that if you
are only performing queries spanning a single bucket, you should prefer opening that Bucket
and
use the query API at the bucket level.
The Observable can fail in the following notable conditions:
- UnsupportedOperationException
: no bucket is currently opened.
- IllegalStateException
: no Authenticator
is set or no credentials are available in it for cluster
level querying.
- TimeoutException
: the operation takes longer than the specified timeout.
- BackpressureException
: the producer outpaces the SDK.
- RequestCancelledException
: the operation had to be cancelled while on the wire or the retry strategy
cancelled it instead of retrying.query
- the N1qlQuery
to execute.query result
.rx.Observable<AsyncClusterManager> clusterManager(String username, String password)
AsyncClusterManager
to perform cluster-wide operations.
Note that the credentials provided here are different from bucket-level credentials. As a rule of thumb, the
"Administrator" credentials need to be passed in here or any credentials with enough permissions to perform
the underlying operations. **Bucket level credentials will not work.**username
- the username to perform cluster-wide operations.password
- the password associated with the username.AsyncClusterManager
if successful.rx.Observable<AsyncClusterManager> clusterManager()
AsyncClusterManager
to perform cluster-wide operations, using the
credentials set through the configured Authenticator
, for the
CredentialContext.CLUSTER_MANAGEMENT
context.
The Observable can error under the following notable condition:
- AuthenticatorException
: if no Authenticator
is set or it doesn't contains a cluster
management credential.AsyncClusterManager
if successful.rx.Observable<Boolean> disconnect()
CouchbaseEnvironment
if it is the exclusive owner.rx.Observable<ClusterFacade> core()
ClusterFacade
.
Handle with care, with great power comes great responsibility. All additional checks which are normally performed
by this library are skipped.ClusterFacade
from the "core-io" package.AsyncCluster authenticate(Authenticator auth)
Authenticator
to use when credentials are needed for an operation
but no explicit credentials are provided.
Note that setting a new Authenticator will not be propagated to any Bucket
that
has been opened with the previous Authenticator, as the instance is passed to the Bucket
for its own use.auth
- the new Authenticator
to use.AsyncCluster authenticate(String username, String password)
username
- the username to authenticatepassword
- the password for the username@InterfaceStability.Experimental @InterfaceAudience.Public rx.Observable<DiagnosticsReport> diagnostics()
DiagnosticsReport
.@InterfaceStability.Experimental @InterfaceAudience.Public rx.Observable<DiagnosticsReport> diagnostics(String reportId)
DiagnosticsReport
.Copyright © 2015 Couchbase, Inc.