public static DefaultAsyncClusterManager create(final String username, final String password, final ConnectionString connectionString, final CouchbaseEnvironment environment, final ClusterFacade core) { return new DefaultAsyncClusterManager(username, password, connectionString, environment, core); }
@Override public Observable<AsyncClusterManager> clusterManager(final String username, final String password) { return Observable.just( (AsyncClusterManager) DefaultAsyncClusterManager.create( username, password, connectionString, environment, core ) ); }
@Override @InterfaceStability.Experimental public Observable<AsyncClusterApiClient> apiClient() { return ensureServiceEnabled() .map(new Func1<Boolean, AsyncClusterApiClient>() { @Override public AsyncClusterApiClient call(Boolean aBoolean) { return new AsyncClusterApiClient(username, password, core); } }); }
@Override public Observable<BucketSettings> insertBucket(final BucketSettings settings) { final String payload = getConfigureBucketPayload(settings, true); return ensureBucketIsHealthy(hasBucket(settings.name()) .doOnNext(new Action1<Boolean>() { @Override
@Override public Observable<Boolean> upsertUser(final AuthDomain domain, final String userid, final UserSettings userSettings) { final String payload = getUserSettingsPayload(userSettings); return ensureServiceEnabled() .flatMap(new Func1<Boolean, Observable<UpsertUserResponse>>() { @Override
@Override public Observable<User> getUsers(final AuthDomain domain) { return getUser(domain,null); }
@Override public Observable<Boolean> hasBucket(final String name) { return getBucket(name) .isEmpty() .map(new Func1<Boolean, Boolean>() { @Override public Boolean call(Boolean notFound) { return !notFound; } }); }
@Override public Observable<BucketSettings> getBucket(final String name) { return getBuckets().filter(new Func1<BucketSettings, Boolean>() { @Override public Boolean call(BucketSettings bucketSettings) { return bucketSettings.name().equals(name); } }); }
@Override public List<User> getUsers(AuthDomain domain, long timeout, TimeUnit timeUnit) { return Blocking.blockForSingle(asyncClusterManager.getUsers(domain).toList().single(), timeout, timeUnit); }
@Override public Observable<BucketSettings> updateBucket(final BucketSettings settings) { final String payload = getConfigureBucketPayload(settings, false); return ensureBucketIsHealthy(hasBucket(settings.name()) .doOnNext(new Action1<Boolean>() { @Override
@Override public User getUser(AuthDomain domain, String userid) { return Blocking.blockForSingle(asyncClusterManager.getUser(domain, userid).single(), timeout, TIMEOUT_UNIT); }
@Override public BucketSettings getBucket(String name, long timeout, TimeUnit timeUnit) { return Blocking.blockForSingle(asyncClusterManager.getBucket(name).singleOrDefault(null), timeout, timeUnit); }
@Override public List<BucketSettings> getBuckets(long timeout, TimeUnit timeUnit) { return Blocking.blockForSingle(asyncClusterManager.getBuckets().toList(), timeout, timeUnit); }
@Override public Observable<Boolean> removeUser(final AuthDomain domain, final String userid) { return ensureServiceEnabled() .flatMap(new Func1<Boolean, Observable<RemoveUserResponse>>() { @Override public Observable<RemoveUserResponse> call(Boolean aBoolean) { return deferAndWatch(new Func1<Subscriber, Observable<? extends RemoveUserResponse>>() { @Override public Observable<? extends RemoveUserResponse> call(Subscriber subscriber) { RemoveUserRequest request = new RemoveUserRequest( username, password, domain.alias(), userid); request.subscriber(subscriber); return core.send(request); } }); } }) .retryWhen(any().delay(Delay.fixed(100, TimeUnit.MILLISECONDS)).max(Integer.MAX_VALUE).build()) .map(new Func1<RemoveUserResponse, Boolean>() { @Override public Boolean call(RemoveUserResponse response) { return response.status().isSuccess(); } }); }
@Override public User getUser(AuthDomain domain, String userid, long timeout, TimeUnit timeUnit) { return Blocking.blockForSingle(asyncClusterManager.getUser(domain, userid).single(), timeout, timeUnit); }
DefaultClusterManager(final String username, final String password, final ConnectionString connectionString, final CouchbaseEnvironment environment, final ClusterFacade core) { asyncClusterManager = DefaultAsyncClusterManager.create(username, password, connectionString, environment, core); this.timeout = environment.managementTimeout(); }
@Override public Observable<Boolean> removeBucket(final String name) { return ensureServiceEnabled() .flatMap(new Func1<Boolean, Observable<RemoveBucketResponse>>() { @Override public Observable<RemoveBucketResponse> call(Boolean aBoolean) { return deferAndWatch(new Func1<Subscriber, Observable<? extends RemoveBucketResponse>>() { @Override public Observable<? extends RemoveBucketResponse> call(Subscriber subscriber) { RemoveBucketRequest request = new RemoveBucketRequest(name, username, password); request.subscriber(subscriber); return core.send(request); } }); } }) .retryWhen(any().delay(Delay.fixed(100, TimeUnit.MILLISECONDS)).max(Integer.MAX_VALUE).build()) .map(new Func1<RemoveBucketResponse, Boolean>() { @Override public Boolean call(RemoveBucketResponse response) { return response.status().isSuccess(); } }); }
@Override public Observable<ClusterInfo> info() { return ensureServiceEnabled() .flatMap(new Func1<Boolean, Observable<ClusterConfigResponse>>() { @Override
@Override public Observable<User> getUser(final AuthDomain domain, final String userid) { return ensureServiceEnabled() .flatMap(new Func1<Boolean, Observable<GetUsersResponse>>() { @Override
@Override public Observable<BucketSettings> getBuckets() { return ensureServiceEnabled() .flatMap(new Func1<Boolean, Observable<BucketsConfigResponse>>() { @Override