protected String getConfigureBucketPayload(BucketSettings settings, boolean includeName) { Map<String, Object> customSettings = settings.customSettings(); Map<String, Object> actual = new LinkedHashMap<String, Object>(8 + customSettings.size()); actual.put("name", settings.name()); actual.put("ramQuotaMB", settings.quota()); actual.put("authType", "sasl"); if (settings.password() != null && !settings.password().isEmpty()) { actual.put("saslPassword", settings.password()); actual.put("replicaNumber", settings.replicas()); if (settings.port() > 0) { actual.put("proxyPort", settings.port()); if (settings.compressionMode() != null) { String compressionMode; switch (settings.compressionMode()) { case OFF: compressionMode = "off"; break; case ACTIVE: compressionMode = "active"; break; default: throw new UnsupportedOperationException("Could not convert compression mode " + settings.compressionMode()); if (settings.ejectionMethod() != null) { if (settings.ejectionMethod() == EjectionMethod.FULL) { actual.put("evictionPolicy", "fullEviction"); switch(settings.type()) {
private static CouchbaseContainer initCouchbaseContainer() { CouchbaseContainer couchbaseContainer = new CouchbaseContainer("couchbase/server:community-5.1.1"); final UserSettings communityAdminUserSettings = UserSettings.build() .password(getDefaultBucketSettings().password()) .roles(Collections.singletonList(new UserRole("admin"))); couchbaseContainer.withNewBucket(getDefaultBucketSettings(), communityAdminUserSettings); couchbaseContainer.start(); return couchbaseContainer; }
@Override public Boolean call(BucketSettings bucketSettings) { return bucketSettings.name().equals(name); } });
final String payload = getConfigureBucketPayload(settings, true); return ensureBucketIsHealthy(hasBucket(settings.name()) .doOnNext(new Action1<Boolean>() { @Override
public void createBucket(BucketSettings bucketSetting, UserSettings userSettings, boolean primaryIndex) { ClusterManager clusterManager = getCouchbaseCluster().clusterManager(clusterUsername, clusterPassword); // Insert Bucket BucketSettings bucketSettings = clusterManager.insertBucket(bucketSetting); try { // Insert Bucket user clusterManager.upsertUser(AuthDomain.LOCAL, bucketSetting.name(), userSettings); } catch (Exception e) { logger().warn("Unable to insert user '" + bucketSetting.name() + "', maybe you are using older version"); } if (index) { Bucket bucket = getCouchbaseCluster().openBucket(bucketSettings.name(), bucketSettings.password()); new CouchbaseQueryServiceWaitStrategy(bucket).waitUntilReady(this); if (primaryIndex) { bucket.query(Index.createPrimaryIndex().on(bucketSetting.name())); } } }
final String payload = getConfigureBucketPayload(settings, false); return ensureBucketIsHealthy(hasBucket(settings.name()) .doOnNext(new Action1<Boolean>() { @Override
public void createBucket(BucketSettings bucketSetting, boolean primaryIndex) { ClusterManager clusterManager = getCouchbaseCluster().clusterManager(clusterUsername, clusterPassword); // Insert Bucket BucketSettings bucketSettings = clusterManager.insertBucket(bucketSetting); // Insert Bucket admin user UserSettings userSettings = UserSettings.build() .password(bucketSetting.password()) .roles(Collections.singletonList(new UserRole("bucket_admin", bucketSetting.name()))); try { clusterManager.upsertUser(AuthDomain.LOCAL, bucketSetting.name(), userSettings); } catch (Exception e) { logger().warn("Unable to insert user '" + bucketSetting.name() + "', maybe you are using older version"); } if (index) { Bucket bucket = getCouchbaseCluster().openBucket(bucketSettings.name(), bucketSettings.password()); new CouchbaseQueryServiceWaitStrategy(bucket).waitUntilReady(this); if (primaryIndex) { bucket.query(Index.createPrimaryIndex().on(bucketSetting.name())); } } }