diff --git a/example-riaks.py b/example-riaks.py index fcdc9160..62234240 100644 --- a/example-riaks.py +++ b/example-riaks.py @@ -86,6 +86,18 @@ def setup_riak(): # Dep('riak_service1', 'run', 'success', 'riak_service2', 'join'), # Dep('riak_service1', 'run', 'success', 'riak_service3', 'join'), + # React('riak_service2', 'join', 'error', 'riak_service2', 'leave'), + # React('riak_service3', 'join', 'error', 'riak_service3', 'leave'), + + React('riak_service2', 'leave', 'success', 'riak_service2', 'join'), + React('riak_service3', 'leave', 'success', 'riak_service3', 'join'), + + # React('riak_service2', 'leave', 'success', 'riak_service1', 'commit_leave'), + # React('riak_service3', 'leave', 'success', 'riak_service1', 'commit_leave'), + + # Dep('riak_service1', 'commit_leave', 'success', 'riak_service2', 'join'), + # Dep('riak_service1', 'commit_leave', 'success', 'riak_service3', 'join'), + React('riak_service3', 'join', 'success', 'riak_service1', 'commit'), React('riak_service2', 'join', 'success', 'riak_service1', 'commit') ] diff --git a/resources/riak_node/actions/join.yml b/resources/riak_node/actions/join.yml index 501d16f4..beea8443 100644 --- a/resources/riak_node/actions/join.yml +++ b/resources/riak_node/actions/join.yml @@ -2,3 +2,14 @@ sudo: yes tasks: - shell: riak-admin cluster join {{join_to}} + ignore_errors: true + register: join_output + # those below are hacky solution for "this node is already member of a cluster + # solar for now lacks logic that would allow to avoid it + - shell: /bin/true + when: join_output|failed and join_output.stdout.find("This node is already a member of a cluster") != -1 + - shell: /bin/false + when: join_output|failed and join_output.stdout.find("This node is already a member of a cluster") == -1 + - shell: /bin/true + when: join_output|success +