Return-Path: X-Original-To: apmail-couchdb-commits-archive@www.apache.org Delivered-To: apmail-couchdb-commits-archive@www.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id 4EC5718696 for ; Fri, 31 Jul 2015 15:03:03 +0000 (UTC) Received: (qmail 54218 invoked by uid 500); 31 Jul 2015 15:03:03 -0000 Delivered-To: apmail-couchdb-commits-archive@couchdb.apache.org Received: (qmail 54169 invoked by uid 500); 31 Jul 2015 15:03:03 -0000 Mailing-List: contact commits-help@couchdb.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@couchdb.apache.org Delivered-To: mailing list commits@couchdb.apache.org Received: (qmail 54157 invoked by uid 99); 31 Jul 2015 15:03:03 -0000 Received: from git1-us-west.apache.org (HELO git1-us-west.apache.org) (140.211.11.23) by apache.org (qpsmtpd/0.29) with ESMTP; Fri, 31 Jul 2015 15:03:03 +0000 Received: by git1-us-west.apache.org (ASF Mail Server at git1-us-west.apache.org, from userid 33) id B3E23DFBC9; Fri, 31 Jul 2015 15:03:02 +0000 (UTC) Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit From: robertkowalski@apache.org To: commits@couchdb.apache.org Message-Id: X-Mailer: ASF-Git Admin Mailer Subject: couchdb-setup git commit: add failing test Date: Fri, 31 Jul 2015 15:03:02 +0000 (UTC) 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 Authored: Fri Jul 31 17:04:23 2015 +0200 Committer: Robert Kowalski 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:b@127.0.0.1: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:b@127.0.0.1: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:b@127.0.0.1:15986/_nodes/_all_docs + +# Show db doesn’t exist on node A +curl a:b@127.0.0.1:15984/foo + +# Show db doesn’t exist on node B +curl a:b@127.0.0.1:25984/foo + +# Create database (on node A) +curl -X PUT a:b@127.0.0.1:15984/foo + +# Show db does exist on node A +curl a:b@127.0.0.1:15984/foo + +# Show db does exist on node B +curl a:b@127.0.0.1:25984/foo + +# Finish cluster +curl a:b@127.0.0.1:15984/_cluster_setup -d '{"action":"finish_cluster"}' $HEADERS + +# Show system dbs exist on node A +curl a:b@127.0.0.1:15984/_users +curl a:b@127.0.0.1:15984/_replicator +curl a:b@127.0.0.1:15984/_metadata +curl a:b@127.0.0.1:15984/_global_changes + +# Show system dbs exist on node B +curl a:b@127.0.0.1:25984/_users +curl a:b@127.0.0.1:25984/_replicator +curl a:b@127.0.0.1:25984/_metadata +curl a:b@127.0.0.1:25984/_global_changes + +echo "YAY ALL GOOD"