063c5f1b78
Fixes #865. This makes the necessary changes so that consensu is selected on "init" with a flag set, by default, to "crdt". This generates only a "crdt" or a "raft" section, not both. If the configuration file has a "raft" section, "raft" will be used to start the daemon. If it has a "crdt" section, "crdt" will be used. If it has none or both sections, an error will happen. This also affects "state *" commands, which will now autoselect how to work from the existing configuration.
71 lines
2.8 KiB
Bash
Executable File
71 lines
2.8 KiB
Bash
Executable File
#!/bin/bash
|
|
|
|
test_description="Test service state import"
|
|
|
|
. lib/test-lib.sh
|
|
|
|
test_ipfs_init
|
|
test_cluster_init
|
|
|
|
test_expect_success IPFS,CLUSTER "state cleanup refreshes state on restart (crdt)" '
|
|
cid=`docker exec ipfs sh -c "echo test_54 | ipfs add -q"` &&
|
|
ipfs-cluster-ctl pin add "$cid" && sleep 5 &&
|
|
ipfs-cluster-ctl pin ls "$cid" | grep -q "$cid" &&
|
|
ipfs-cluster-ctl status "$cid" | grep -q -i "PINNED" &&
|
|
[ 1 -eq "$(ipfs-cluster-ctl --enc=json status | jq ". | length")" ] &&
|
|
cluster_kill && sleep 5 &&
|
|
ipfs-cluster-service --config "test-config" state cleanup -f &&
|
|
cluster_start && sleep 5 &&
|
|
[ 0 -eq "$(ipfs-cluster-ctl --enc=json status | jq ". | length")" ]
|
|
'
|
|
|
|
test_expect_success IPFS,CLUSTER "export + cleanup + import == noop (crdt)" '
|
|
cid=`docker exec ipfs sh -c "echo test_54 | ipfs add -q"` &&
|
|
ipfs-cluster-ctl pin add "$cid" && sleep 5 &&
|
|
[ 1 -eq "$(ipfs-cluster-ctl --enc=json status | jq ". | length")" ] &&
|
|
cluster_kill && sleep 5 &&
|
|
ipfs-cluster-service --config "test-config" state export -f import.json &&
|
|
ipfs-cluster-service --config "test-config" state cleanup -f &&
|
|
ipfs-cluster-service --config "test-config" state import -f import.json &&
|
|
cluster_start && sleep 5 &&
|
|
ipfs-cluster-ctl pin ls "$cid" | grep -q "$cid" &&
|
|
ipfs-cluster-ctl status "$cid" | grep -q -i "PINNED" &&
|
|
[ 1 -eq "$(ipfs-cluster-ctl --enc=json status | jq ". | length")" ]
|
|
'
|
|
|
|
cluster_kill
|
|
sleep 5
|
|
test_cluster_init "" raft
|
|
|
|
test_expect_success IPFS,CLUSTER "state cleanup refreshes state on restart (raft)" '
|
|
cid=`docker exec ipfs sh -c "echo test_54 | ipfs add -q"` &&
|
|
ipfs-cluster-ctl pin add "$cid" && sleep 5 &&
|
|
ipfs-cluster-ctl pin ls "$cid" | grep -q "$cid" &&
|
|
ipfs-cluster-ctl status "$cid" | grep -q -i "PINNED" &&
|
|
[ 1 -eq "$(ipfs-cluster-ctl --enc=json status | jq ". | length")" ] &&
|
|
cluster_kill && sleep 5 &&
|
|
ipfs-cluster-service --config "test-config" state cleanup -f &&
|
|
cluster_start && sleep 5 &&
|
|
[ 0 -eq "$(ipfs-cluster-ctl --enc=json status | jq ". | length")" ]
|
|
'
|
|
|
|
test_expect_success IPFS,CLUSTER "export + cleanup + import == noop (raft)" '
|
|
cid=`docker exec ipfs sh -c "echo test_54 | ipfs add -q"` &&
|
|
ipfs-cluster-ctl pin add "$cid" && sleep 5 &&
|
|
[ 1 -eq "$(ipfs-cluster-ctl --enc=json status | jq ". | length")" ] &&
|
|
cluster_kill && sleep 5 &&
|
|
ipfs-cluster-service --config "test-config" state export -f import.json &&
|
|
ipfs-cluster-service --config "test-config" state cleanup -f &&
|
|
ipfs-cluster-service --config "test-config" state import -f import.json &&
|
|
cluster_start && sleep 5 &&
|
|
ipfs-cluster-ctl pin ls "$cid" | grep -q "$cid" &&
|
|
ipfs-cluster-ctl status "$cid" | grep -q -i "PINNED" &&
|
|
[ 1 -eq "$(ipfs-cluster-ctl --enc=json status | jq ". | length")" ]
|
|
'
|
|
|
|
|
|
test_clean_ipfs
|
|
test_clean_cluster
|
|
|
|
test_done
|