Repository: couchdb-setup Updated Branches: refs/heads/wizard-halp [created] 74ac2d3a9
add failing test Project: http://git-wip-us.apache.org/repos/asf/couchdb-setup/repo Commit: http://git-wip-us.apache.org/repos/asf/couchdb-setup/commit/74ac2d3a Tree: http://git-wip-us.apache.org/repos/asf/couchdb-setup/tree/74ac2d3a Diff: http://git-wip-us.apache.org/repos/asf/couchdb-setup/diff/74ac2d3a Branch: refs/heads/wizard-halp Commit: 74ac2d3a91f8e44a9a928decf5777e31585eb386 Parents: ff19be1 Author: Robert Kowalski <[email protected]> Authored: Fri Jul 31 17:04:23 2015 +0200 Committer: Robert Kowalski <[email protected]> Committed: Fri Jul 31 17:04:23 2015 +0200 ---------------------------------------------------------------------- src/setup.erl | 21 +++++++++++----- test/t-admin-party.sh | 60 ++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 75 insertions(+), 6 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/couchdb-setup/blob/74ac2d3a/src/setup.erl ---------------------------------------------------------------------- diff --git a/src/setup.erl b/src/setup.erl index 2118349..aa2da56 100644 --- a/src/setup.erl +++ b/src/setup.erl @@ -69,14 +69,23 @@ enable_cluster(Options) -> enable_cluster_http(Options) end. +get_remote_request_options(Options) -> + case couch_util:get_value(remote_current_user, Options, undefined) of + undefined -> + []; + _ -> + [ + {basic_auth, { + binary_to_list(couch_util:get_value(remote_current_user, Options)), + binary_to_list(couch_util:get_value(remote_current_password, Options)) + }} + ] + end. + enable_cluster_http(Options) -> % POST to nodeB/_setup - RequestOptions = [ - {basic_auth, { - binary_to_list(couch_util:get_value(remote_current_user, Options)), - binary_to_list(couch_util:get_value(remote_current_password, Options)) - }} - ], + + RequestOptions = get_remote_request_options(Options), Body = ?JSON_ENCODE({[ {<<"action">>, <<"enable_cluster">>}, http://git-wip-us.apache.org/repos/asf/couchdb-setup/blob/74ac2d3a/test/t-admin-party.sh ---------------------------------------------------------------------- diff --git a/test/t-admin-party.sh b/test/t-admin-party.sh new file mode 100755 index 0000000..3c94917 --- /dev/null +++ b/test/t-admin-party.sh @@ -0,0 +1,60 @@ +#!/bin/sh -ex +# Licensed 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. + +HEADERS="-HContent-Type:application/json" +# show cluster state: +curl 127.0.0.1:15986/_nodes/_all_docs + +# Enable Cluster on node A +curl 127.0.0.1:15984/_cluster_setup -d '{"action":"enable_cluster","username":"a","password":"b","bind_address":"0.0.0.0"}' $HEADERS + +# Add node B on node A +curl a:[email protected]:15984/_cluster_setup -d '{"action":"add_node","username":"a","password":"b","host":"127.0.0.1","port":25984}' $HEADERS + +# Enable Cluster on node B +curl a:[email protected]:15984/_cluster_setup -d '{"action":"enable_cluster","remote_node":"127.0.0.1","port":"25984","username":"a","password":"b","bind_address":"0.0.0.0"}' $HEADERS + +# Show cluster state: +curl a:[email protected]:15986/_nodes/_all_docs + +# Show db doesnât exist on node A +curl a:[email protected]:15984/foo + +# Show db doesnât exist on node B +curl a:[email protected]:25984/foo + +# Create database (on node A) +curl -X PUT a:[email protected]:15984/foo + +# Show db does exist on node A +curl a:[email protected]:15984/foo + +# Show db does exist on node B +curl a:[email protected]:25984/foo + +# Finish cluster +curl a:[email protected]:15984/_cluster_setup -d '{"action":"finish_cluster"}' $HEADERS + +# Show system dbs exist on node A +curl a:[email protected]:15984/_users +curl a:[email protected]:15984/_replicator +curl a:[email protected]:15984/_metadata +curl a:[email protected]:15984/_global_changes + +# Show system dbs exist on node B +curl a:[email protected]:25984/_users +curl a:[email protected]:25984/_replicator +curl a:[email protected]:25984/_metadata +curl a:[email protected]:25984/_global_changes + +echo "YAY ALL GOOD"
