/*
* Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements. See the NOTICE file
* distributed with this work for additional information
* regarding copyright ownership. The ASF licenses this file
* to you under the Apache License, Version 2.0 (the
* "License"); you may not use this file except in compliance
* with the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing,
* software distributed under the License is distributed on an
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
* KIND, either express or implied. See the License for the
* specific language governing permissions and limitations
* under the License.
*/
package org.apache.brooklyn.entity.nosql.couchbase;
import java.util.List;
import java.util.Map;
import org.apache.brooklyn.api.entity.EntitySpec;
import org.apache.brooklyn.api.location.Location;
import org.apache.brooklyn.core.entity.trait.Startable;
import org.apache.brooklyn.entity.AbstractEc2LiveTest;
import org.apache.brooklyn.entity.group.DynamicCluster;
import org.apache.brooklyn.test.EntityTestUtils;
import org.testng.annotations.Test;
import com.google.common.collect.ImmutableList;
import com.google.common.collect.ImmutableMap;
public class CouchbaseSyncGatewayEc2LiveTest extends AbstractEc2LiveTest {
@Override
protected void doTest(Location loc) throws Exception {
CouchbaseCluster cluster = app.createAndManageChild(EntitySpec.create(CouchbaseCluster.class)
.configure(CouchbaseNode.COUCHBASE_ADMIN_USERNAME, "Administrator")
.configure(CouchbaseNode.COUCHBASE_ADMIN_PASSWORD, "Password")
.configure(DynamicCluster.INITIAL_SIZE, 3)
.configure(CouchbaseCluster.CREATE_BUCKETS, (List<Map<String,Object>>)ImmutableList.of(
(Map<String,Object>)ImmutableMap.<String, Object>of(
"bucket", "default",
"bucket-ramsize", 100,
"bucket-type", "couchbase",
"bucket-port", 11211
),
(Map<String,Object>)ImmutableMap.<String, Object>of(
"bucket", "my_bucket",
"bucket-ramsize", 100,
"bucket-type", "couchbase",
"bucket-port", 11223
),
(Map<String,Object>)ImmutableMap.<String, Object>of(
"bucket", "another",
"bucket-ramsize", 100,
"bucket-type", "couchbase",
"bucket-port", 11224
))
)
);
CouchbaseSyncGateway gateway = app.createAndManageChild(EntitySpec.create(CouchbaseSyncGateway.class)
.configure(CouchbaseSyncGateway.COUCHBASE_SERVER, cluster)
.configure(CouchbaseSyncGateway.COUCHBASE_SERVER_BUCKET, "my_bucket")
);
app.start(ImmutableList.of(loc));
EntityTestUtils.assertAttributeEqualsEventually(gateway, Startable.SERVICE_UP, true);
}
// Supported operating systems
@Test(groups = {"Live"})
@Override
public void test_Ubuntu_12_0() throws Exception {
super.test_Ubuntu_12_0();
}
@Test(groups = {"Live"})
@Override
public void test_Red_Hat_Enterprise_Linux_6() throws Exception {
super.test_Red_Hat_Enterprise_Linux_6();
}
@Test(groups = {"Live"})
@Override
public void test_CentOS_6_3() throws Exception {
super.test_CentOS_6_3();
}
// Unsupported operating systems
@Test(groups = {"Live"})
@Override
public void test_CentOS_5() throws Exception {
// Unsupported
// error: Failed dependencies:
// libc.so.6(GLIBC_2.7)(64bit) is needed by couchbase-server-2.5.1-1083.x86_64
// libcrypto.so.10()(64bit) is needed by couchbase-server-2.5.1-1083.x86_64
// libreadline.so.6()(64bit) is needed by couchbase-server-2.5.1-1083.x86_64
// libssl.so.10()(64bit) is needed by couchbase-server-2.5.1-1083.x86_64
// libstdc++.so.6(GLIBCXX_3.4.10)(64bit) is needed by couchbase-server-2.5.1-1083.x86_64
// libstdc++.so.6(GLIBCXX_3.4.11)(64bit) is needed by couchbase-server-2.5.1-1083.x86_64
// libstdc++.so.6(GLIBCXX_3.4.9)(64bit) is needed by couchbase-server-2.5.1-1083.x86_64
// libtinfo.so.5()(64bit) is needed by couchbase-server-2.5.1-1083.x86_64
// openssl >= 1.0.0 is needed by couchbase-server-2.5.1-1083.x86_64
// rpmlib(FileDigests) <= 4.6.0-1 is needed by couchbase-server-2.5.1-1083.x86_64
// rpmlib(PayloadIsXz) <= 5.2-1 is needed by couchbase-server-2.5.1-1083.x86_64
}
@Test(groups = {"Live"})
@Override
public void test_Debian_6() throws Exception {
// Unsupported
}
@Test(groups = {"Live"})
@Override
public void test_Debian_7_2() throws Exception {
// Unsupported
}
@Test(groups = {"Live"})
@Override
public void test_Ubuntu_10_0() throws Exception {
// Unsupported
// Installing cannot proceed since the package 'libssl1*' is missing.
// Please install libssl1* and try again.
// $sudo apt-get install libssl1*
//
// Installing libssl1* doesn't fix the issue
}
}