Skip to content

Commit

Permalink
Merge pull request neo4j#62 from spacecowboy/cc-test
Browse files Browse the repository at this point in the history
Added test for causal clustering and fixed it
  • Loading branch information
spacecowboy authored Oct 31, 2016
2 parents 3662a8c + 1f68825 commit bb2f548
Show file tree
Hide file tree
Showing 4 changed files with 83 additions and 5 deletions.
8 changes: 4 additions & 4 deletions src/3.1/docker-entrypoint.sh
Original file line number Diff line number Diff line change
Expand Up @@ -46,10 +46,10 @@ if [ "$1" == "neo4j" ]; then
setting "ha.host.data" "${NEO4J_ha_host_data:-}"
setting "ha.host.coordination" "${NEO4J_ha_host_coordination:-}"
setting "ha.initial_hosts" "${NEO4J_ha_initialHosts:-}"
setting "core_edge.expected_core_cluster_size" "${NEO4J_coreEdge_expectedCoreClusterSize:-}"
setting "core_edge.initial_discovery_members" "${NEO4J_coreEdge_initialDiscoveryMembers:-}"
setting "core_edge.transaction_advertised_address" "${NEO4J_coreEdge_transactionAdvertisedAddress:-$(hostname):6000}"
setting "core_edge.raft_advertised_address" "${NEO4J_coreEdge_raftAdvertisedAddress:-$(hostname):7000}"
setting "causal_clustering.expected_core_cluster_size" "${NEO4J_causalClustering_expectedCoreClusterSize:-}"
setting "causal_clustering.initial_discovery_members" "${NEO4J_causalClustering_initialDiscoveryMembers:-}"
setting "causal_clustering.transaction_advertised_address" "${NEO4J_causalClustering_transactionAdvertisedAddress:-$(hostname):6000}"
setting "causal_clustering.raft_advertised_address" "${NEO4J_causalClustering_raftAdvertisedAddress:-$(hostname):7000}"

[ -f "${EXTENSION_SCRIPT:-}" ] && . ${EXTENSION_SCRIPT}

Expand Down
39 changes: 39 additions & 0 deletions test/causal-cluster-compose.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
version: '2'

networks:
lan:

services:

core1:
image: neo4j:3.1
container_name: placeholder
networks:
- lan
environment:
- NEO4J_AUTH=none
- NEO4J_dbms_mode=CORE
- NEO4J_causalClustering_expectedCoreClusterSize=3
- NEO4J_causalClustering_initialDiscoveryMembers=core1:5000,core2:5000,core3:5000

core2:
image: neo4j:3.1
networks:
- lan
environment:
- NEO4J_AUTH=neo4j/neo
- NEO4J_dbms_mode=CORE
- NEO4J_causalClustering_expectedCoreClusterSize=3
- NEO4J_causalClustering_initialDiscoveryMembers=core1:5000,core2:5000,core3:5000

core3:
image: neo4j:3.1
networks:
- lan
environment:
- NEO4J_AUTH=neo4j/neo
- NEO4J_dbms_mode=CORE
- NEO4J_causalClustering_transactionAdvertisedAddress=core3:5000
- NEO4J_causalClustering_raftAdvertisedAddress=core3:7000
- NEO4J_causalClustering_expectedCoreClusterSize=3
- NEO4J_causalClustering_initialDiscoveryMembers=core1:5000,core2:5000,core3:5000
17 changes: 16 additions & 1 deletion test/helpers.sh
Original file line number Diff line number Diff line change
Expand Up @@ -13,13 +13,28 @@ docker_run() {
trap "docker_rm ${cid}" EXIT
}

docker_compose_up() {
local l_image="$1" l_cname="$2" l_composefile="$3"; shift; shift; shift
sed --in-place='' --expression="s|image: .*|image: ${l_image}|g" "${l_composefile}"
sed --in-place='' --expression="s|container_name: .*|container_name: ${l_cname}|g" "${l_composefile}"

docker-compose --file "${l_composefile}" --project-name test up -d
trap "docker-compose --file ${l_composefile} down" EXIT
}

docker_compose_ip() {
local l_cname="$1"
docker inspect --format '{{ .NetworkSettings.Networks.test_lan.IPAddress }}' "${l_cname}"
}

docker_ip() {
local l_cname="$1"
docker inspect --format '{{ .NetworkSettings.IPAddress }}' "${l_cname}"
}

neo4j_wait() {
local l_ip="$1" end="$((SECONDS+30))"
local l_time="${3:-30}"
local l_ip="$1" end="$((SECONDS+${l_time}))"
if [[ -n "${2:-}" ]]; then
local auth="--user $2"
fi
Expand Down
24 changes: 24 additions & 0 deletions test/test-causal-clustering-basic
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
#!/usr/bin/env bash
set -o errexit -o nounset

. "$(dirname "$0")/helpers.sh"

readonly image="$1"
readonly series="$2"

if [[ "${series}" == "2.3" ]] || [[ "${series}" == "3.0" ]]; then
echo "Skipping: Causal-Clustering not available pre 3.1"
exit 0
fi

if ! which docker-compose >/dev/null; then
echo "Skipping: no docker-compose if path"
exit 0
fi

readonly cname="neo4j-$(uuidgen)"
readonly compose_file="$(dirname "$0")/causal-cluster-compose.yml"

docker_compose_up "${image}" "${cname}" "${compose_file}"
readonly ip="$(docker_compose_ip "${cname}")"
neo4j_wait "${ip}" "" "120"

0 comments on commit bb2f548

Please sign in to comment.