[couchdb-fauxton] 01/01: Update for changes to _cluster_setup endpoint
This is an automated email from the ASF dual-hosted git repository. wohali pushed a commit to branch 874-update-setup-wizard in repository https://gitbox.apache.org/repos/asf/couchdb-fauxton.git commit 942f19b2a1229565a82010d3e02fb8562c4013a5 Author: Joan TouzetAuthorDate: Mon Jul 17 02:23:47 2017 -0400 Update for changes to _cluster_setup endpoint These changes add support for the new enable_single_node action, which tolerates binding a node to 127.0.0.1. They also add support for the new mandatory node_count parameter when setting up a cluster. This parameter in the API call actually sets [cluster] n value, so it is set to min(3, ) based on recommendations from @rnewson and personal experience. Closes #874 --- app/addons/setup/resources.js | 11 +- app/addons/setup/route.js | 1 + app/addons/setup/setup.actions.js | 36 + app/addons/setup/setup.actiontypes.js | 1 + app/addons/setup/setup.js | 74 +-- app/addons/setup/setup.stores.js | 14 ++- app/addons/setup/tests/setupSpec.js | 22 +++ 7 files changed, 146 insertions(+), 13 deletions(-) diff --git a/app/addons/setup/resources.js b/app/addons/setup/resources.js index 1963f04..609ca73 100644 --- a/app/addons/setup/resources.js +++ b/app/addons/setup/resources.js @@ -37,13 +37,22 @@ Setup.Model = Backbone.Model.extend({ return 'Admin password is required'; } -if (attrs.bind_address && attrs.bind_address === '127.0.0.1') { +if (attrs.bind_address && attrs.bind_address === '127.0.0.1' && +!attrs.singlenode) { return 'Bind address can not be 127.0.0.1'; } if (attrs.port && _.isNaN(+attrs.port)) { return 'Bind port must be a number'; } + +if (attrs.nodeCount && _.isNaN(+attrs.nodeCount)) { + return 'Node count must be a number'; +} + +if (attrs.nodeCount && attrs.nodeCount < 1) { + return 'Node count must be >= 1'; +} } }); diff --git a/app/addons/setup/route.js b/app/addons/setup/route.js index e2b487e..b8845bb 100644 --- a/app/addons/setup/route.js +++ b/app/addons/setup/route.js @@ -72,6 +72,7 @@ var RouteObject = FauxtonAPI.RouteObject.extend({ finishView: function () { const setup = new Setup.Model(); +SetupActions.getClusterStateFromCouch(); return } endpoint={setup.url('apiurl')} diff --git a/app/addons/setup/setup.actions.js b/app/addons/setup/setup.actions.js index 79d9ef9..f46e681 100644 --- a/app/addons/setup/setup.actions.js +++ b/app/addons/setup/setup.actions.js @@ -13,6 +13,7 @@ import FauxtonAPI from "../../core/api"; import SetupResources from "./resources"; import ActionTypes from "./setup.actiontypes"; import SetupStores from "./setup.stores"; +import Api from "../auth/api"; var setupStore = SetupStores.setupStore; export default { @@ -66,11 +67,12 @@ export default { var password = setupStore.getPassword(); var setupModel = new SetupResources.Model({ - action: 'enable_cluster', + action: 'enable_single_node', username: username, password: password, bind_address: setupStore.getBindAdressForSetupNode(), - port: setupStore.getPortForSetupNode() + port: setupStore.getPortForSetupNode(), + singlenode: true }); setupModel.on('invalid', function (model, error) { @@ -84,10 +86,16 @@ export default { setupModel.save() .then(function () { -return FauxtonAPI.session.login(username, password); +return Api.login({name: username, password}); }) .then(function () { -return this.finishClusterSetup('CouchDB is set up!'); +FauxtonAPI.addNotification({ + msg: 'Single node setup successful.', + type: 'success', + fade: false, + clear: true +}); +FauxtonAPI.navigate('#setup/finish'); }.bind(this)); }, @@ -96,6 +104,7 @@ export default { var password = setupStore.getPassword(); var portForSetupNode = setupStore.getPortForSetupNode(); var bindAddressForSetupNode = setupStore.getBindAdressForSetupNode(); +var nodeCountForSetupNode = setupStore.getNodeCountForSetupNode(); var bindAddressForAdditionalNode = setupStore.getAdditionalNode().bindAddress; var remoteAddressForAdditionalNode = setupStore.getAdditionalNode().remoteAddress; @@ -107,7 +116,9 @@ export default { username: username, password: password, bind_address: bindAddressForSetupNode, - port: portForSetupNode + port: portForSetupNode, + node_count: nodeCountForSetupNode, + singlenode: false }); setupNode.on('invalid', function (model, error) { @@ -125,6 +136,7 @@ export default { password: password, bind_address: bindAddressForAdditionalNode, port: portForForAdditionalNode, + node_count:
[couchdb-fauxton] 01/01: Update for changes to _cluster_setup endpoint
This is an automated email from the ASF dual-hosted git repository. wohali pushed a commit to branch 874-update-setup-wizard in repository https://gitbox.apache.org/repos/asf/couchdb-fauxton.git commit 39598adcf57ebce762211817c1004e0af31e195f Author: Joan TouzetAuthorDate: Mon Jul 17 02:23:47 2017 -0400 Update for changes to _cluster_setup endpoint These changes add support for the new enable_single_node action, which tolerates binding a node to 127.0.0.1. They also add support for the new mandatory node_count parameter when setting up a cluster. This parameter in the API call actually sets [cluster] n value, so it is set to min(3, ) based on recommendations from @rnewson and personal experience. Closes #874 --- app/addons/setup/resources.js | 11 +- app/addons/setup/route.js | 1 + app/addons/setup/setup.actions.js | 31 --- app/addons/setup/setup.actiontypes.js | 1 + app/addons/setup/setup.js | 74 +-- app/addons/setup/setup.stores.js | 14 ++- app/addons/setup/tests/setupSpec.js | 22 +++ 7 files changed, 143 insertions(+), 11 deletions(-) diff --git a/app/addons/setup/resources.js b/app/addons/setup/resources.js index 1963f04..609ca73 100644 --- a/app/addons/setup/resources.js +++ b/app/addons/setup/resources.js @@ -37,13 +37,22 @@ Setup.Model = Backbone.Model.extend({ return 'Admin password is required'; } -if (attrs.bind_address && attrs.bind_address === '127.0.0.1') { +if (attrs.bind_address && attrs.bind_address === '127.0.0.1' && +!attrs.singlenode) { return 'Bind address can not be 127.0.0.1'; } if (attrs.port && _.isNaN(+attrs.port)) { return 'Bind port must be a number'; } + +if (attrs.nodeCount && _.isNaN(+attrs.nodeCount)) { + return 'Node count must be a number'; +} + +if (attrs.nodeCount && attrs.nodeCount < 1) { + return 'Node count must be >= 1'; +} } }); diff --git a/app/addons/setup/route.js b/app/addons/setup/route.js index e2b487e..b8845bb 100644 --- a/app/addons/setup/route.js +++ b/app/addons/setup/route.js @@ -72,6 +72,7 @@ var RouteObject = FauxtonAPI.RouteObject.extend({ finishView: function () { const setup = new Setup.Model(); +SetupActions.getClusterStateFromCouch(); return } endpoint={setup.url('apiurl')} diff --git a/app/addons/setup/setup.actions.js b/app/addons/setup/setup.actions.js index 79d9ef9..1e556d3 100644 --- a/app/addons/setup/setup.actions.js +++ b/app/addons/setup/setup.actions.js @@ -66,11 +66,12 @@ export default { var password = setupStore.getPassword(); var setupModel = new SetupResources.Model({ - action: 'enable_cluster', + action: 'enable_single_node', username: username, password: password, bind_address: setupStore.getBindAdressForSetupNode(), - port: setupStore.getPortForSetupNode() + port: setupStore.getPortForSetupNode(), + singlenode: true }); setupModel.on('invalid', function (model, error) { @@ -87,7 +88,13 @@ export default { return FauxtonAPI.session.login(username, password); }) .then(function () { -return this.finishClusterSetup('CouchDB is set up!'); +FauxtonAPI.addNotification({ + msg: 'Single node setup successful.', + type: 'success', + fade: false, + clear: true +}); +FauxtonAPI.navigate('#setup/finish'); }.bind(this)); }, @@ -96,6 +103,7 @@ export default { var password = setupStore.getPassword(); var portForSetupNode = setupStore.getPortForSetupNode(); var bindAddressForSetupNode = setupStore.getBindAdressForSetupNode(); +var nodeCountForSetupNode = setupStore.getNodeCountForSetupNode(); var bindAddressForAdditionalNode = setupStore.getAdditionalNode().bindAddress; var remoteAddressForAdditionalNode = setupStore.getAdditionalNode().remoteAddress; @@ -107,7 +115,9 @@ export default { username: username, password: password, bind_address: bindAddressForSetupNode, - port: portForSetupNode + port: portForSetupNode, + node_count: nodeCountForSetupNode, + singlenode: false }); setupNode.on('invalid', function (model, error) { @@ -125,6 +135,7 @@ export default { password: password, bind_address: bindAddressForAdditionalNode, port: portForForAdditionalNode, + node_count: nodeCountForSetupNode, remote_node: remoteAddressForAdditionalNode, remote_current_user: username, remote_current_password: password @@ -159,7 +170,8 @@ export default { username: username, password: password, host: remoteAddressForAdditionalNode, -port: portForForAdditionalNode +port: portForForAdditionalNode, +singlenode: false
[couchdb-fauxton] 01/01: Update for changes to _cluster_setup endpoint
This is an automated email from the ASF dual-hosted git repository. wohali pushed a commit to branch 874-update-setup-wizard in repository https://gitbox.apache.org/repos/asf/couchdb-fauxton.git commit bec315494c0777f2136f2c337755e7d1fd95d08b Author: Joan TouzetAuthorDate: Mon Jul 17 02:23:47 2017 -0400 Update for changes to _cluster_setup endpoint These changes add support for the new enable_single_node action, which tolerates binding a node to 127.0.0.1. They also add support for the new mandatory node_count parameter when setting up a cluster. This parameter in the API call actually sets [cluster] n value, so it is set to min(3, ) based on recommendations from @rnewson and personal experience. Closes #874 --- app/addons/setup/resources.js | 11 +- app/addons/setup/route.js | 1 + app/addons/setup/setup.actions.js | 31 --- app/addons/setup/setup.actiontypes.js | 1 + app/addons/setup/setup.js | 71 +-- app/addons/setup/setup.stores.js | 14 ++- app/addons/setup/tests/setupSpec.js | 22 +++ 7 files changed, 140 insertions(+), 11 deletions(-) diff --git a/app/addons/setup/resources.js b/app/addons/setup/resources.js index 1963f04..609ca73 100644 --- a/app/addons/setup/resources.js +++ b/app/addons/setup/resources.js @@ -37,13 +37,22 @@ Setup.Model = Backbone.Model.extend({ return 'Admin password is required'; } -if (attrs.bind_address && attrs.bind_address === '127.0.0.1') { +if (attrs.bind_address && attrs.bind_address === '127.0.0.1' && +!attrs.singlenode) { return 'Bind address can not be 127.0.0.1'; } if (attrs.port && _.isNaN(+attrs.port)) { return 'Bind port must be a number'; } + +if (attrs.nodeCount && _.isNaN(+attrs.nodeCount)) { + return 'Node count must be a number'; +} + +if (attrs.nodeCount && attrs.nodeCount < 1) { + return 'Node count must be >= 1'; +} } }); diff --git a/app/addons/setup/route.js b/app/addons/setup/route.js index e2b487e..b8845bb 100644 --- a/app/addons/setup/route.js +++ b/app/addons/setup/route.js @@ -72,6 +72,7 @@ var RouteObject = FauxtonAPI.RouteObject.extend({ finishView: function () { const setup = new Setup.Model(); +SetupActions.getClusterStateFromCouch(); return } endpoint={setup.url('apiurl')} diff --git a/app/addons/setup/setup.actions.js b/app/addons/setup/setup.actions.js index 79d9ef9..45213aa 100644 --- a/app/addons/setup/setup.actions.js +++ b/app/addons/setup/setup.actions.js @@ -66,11 +66,12 @@ export default { var password = setupStore.getPassword(); var setupModel = new SetupResources.Model({ - action: 'enable_cluster', + action: 'enable_single_node', username: username, password: password, bind_address: setupStore.getBindAdressForSetupNode(), - port: setupStore.getPortForSetupNode() + port: setupStore.getPortForSetupNode(), + singlenode: true }); setupModel.on('invalid', function (model, error) { @@ -87,7 +88,13 @@ export default { return FauxtonAPI.session.login(username, password); }) .then(function () { -return this.finishClusterSetup('CouchDB is set up!'); + FauxtonAPI.addNotification({ +msg: 'Single node setup successful.', +type: 'success', +fade: false, +clear: true + }); + FauxtonAPI.navigate('#setup/finish'); }.bind(this)); }, @@ -96,6 +103,7 @@ export default { var password = setupStore.getPassword(); var portForSetupNode = setupStore.getPortForSetupNode(); var bindAddressForSetupNode = setupStore.getBindAdressForSetupNode(); +var nodeCountForSetupNode = setupStore.getNodeCountForSetupNode(); var bindAddressForAdditionalNode = setupStore.getAdditionalNode().bindAddress; var remoteAddressForAdditionalNode = setupStore.getAdditionalNode().remoteAddress; @@ -107,7 +115,9 @@ export default { username: username, password: password, bind_address: bindAddressForSetupNode, - port: portForSetupNode + port: portForSetupNode, + node_count: nodeCountForSetupNode, + singlenode: false }); setupNode.on('invalid', function (model, error) { @@ -125,6 +135,7 @@ export default { password: password, bind_address: bindAddressForAdditionalNode, port: portForForAdditionalNode, + node_count: nodeCountForSetupNode, remote_node: remoteAddressForAdditionalNode, remote_current_user: username, remote_current_password: password @@ -159,7 +170,8 @@ export default { username: username, password: password, host: remoteAddressForAdditionalNode, -port: portForForAdditionalNode +port: portForForAdditionalNode, +singlenode: false });
[couchdb-fauxton] 01/01: Update for changes to _cluster_setup endpoint
This is an automated email from the ASF dual-hosted git repository. wohali pushed a commit to branch 874-update-setup-wizard in repository https://gitbox.apache.org/repos/asf/couchdb-fauxton.git commit 1f2e1803437936c45dc5a995670ea0d1ecebd73d Author: Joan TouzetAuthorDate: Mon Jul 17 02:23:47 2017 -0400 Update for changes to _cluster_setup endpoint These changes add support for the new enable_single_node action, which tolerates binding a node to 127.0.0.1. They also add support for the new mandatory node_count parameter when setting up a cluster. This parameter in the API call actually sets [cluster] n value, so it is set to min(3, ) based on recommendations from @rnewson and personal experience. Closes #874 --- app/addons/setup/resources.js | 11 +- app/addons/setup/route.js | 1 + app/addons/setup/setup.actions.js | 31 --- app/addons/setup/setup.actiontypes.js | 1 + app/addons/setup/setup.js | 71 +-- app/addons/setup/setup.stores.js | 14 ++- app/addons/setup/tests/setupSpec.js | 21 +++ 7 files changed, 139 insertions(+), 11 deletions(-) diff --git a/app/addons/setup/resources.js b/app/addons/setup/resources.js index 1963f04..609ca73 100644 --- a/app/addons/setup/resources.js +++ b/app/addons/setup/resources.js @@ -37,13 +37,22 @@ Setup.Model = Backbone.Model.extend({ return 'Admin password is required'; } -if (attrs.bind_address && attrs.bind_address === '127.0.0.1') { +if (attrs.bind_address && attrs.bind_address === '127.0.0.1' && +!attrs.singlenode) { return 'Bind address can not be 127.0.0.1'; } if (attrs.port && _.isNaN(+attrs.port)) { return 'Bind port must be a number'; } + +if (attrs.nodeCount && _.isNaN(+attrs.nodeCount)) { + return 'Node count must be a number'; +} + +if (attrs.nodeCount && attrs.nodeCount < 1) { + return 'Node count must be >= 1'; +} } }); diff --git a/app/addons/setup/route.js b/app/addons/setup/route.js index e2b487e..b8845bb 100644 --- a/app/addons/setup/route.js +++ b/app/addons/setup/route.js @@ -72,6 +72,7 @@ var RouteObject = FauxtonAPI.RouteObject.extend({ finishView: function () { const setup = new Setup.Model(); +SetupActions.getClusterStateFromCouch(); return } endpoint={setup.url('apiurl')} diff --git a/app/addons/setup/setup.actions.js b/app/addons/setup/setup.actions.js index 79d9ef9..45213aa 100644 --- a/app/addons/setup/setup.actions.js +++ b/app/addons/setup/setup.actions.js @@ -66,11 +66,12 @@ export default { var password = setupStore.getPassword(); var setupModel = new SetupResources.Model({ - action: 'enable_cluster', + action: 'enable_single_node', username: username, password: password, bind_address: setupStore.getBindAdressForSetupNode(), - port: setupStore.getPortForSetupNode() + port: setupStore.getPortForSetupNode(), + singlenode: true }); setupModel.on('invalid', function (model, error) { @@ -87,7 +88,13 @@ export default { return FauxtonAPI.session.login(username, password); }) .then(function () { -return this.finishClusterSetup('CouchDB is set up!'); + FauxtonAPI.addNotification({ +msg: 'Single node setup successful.', +type: 'success', +fade: false, +clear: true + }); + FauxtonAPI.navigate('#setup/finish'); }.bind(this)); }, @@ -96,6 +103,7 @@ export default { var password = setupStore.getPassword(); var portForSetupNode = setupStore.getPortForSetupNode(); var bindAddressForSetupNode = setupStore.getBindAdressForSetupNode(); +var nodeCountForSetupNode = setupStore.getNodeCountForSetupNode(); var bindAddressForAdditionalNode = setupStore.getAdditionalNode().bindAddress; var remoteAddressForAdditionalNode = setupStore.getAdditionalNode().remoteAddress; @@ -107,7 +115,9 @@ export default { username: username, password: password, bind_address: bindAddressForSetupNode, - port: portForSetupNode + port: portForSetupNode, + node_count: nodeCountForSetupNode, + singlenode: false }); setupNode.on('invalid', function (model, error) { @@ -125,6 +135,7 @@ export default { password: password, bind_address: bindAddressForAdditionalNode, port: portForForAdditionalNode, + node_count: nodeCountForSetupNode, remote_node: remoteAddressForAdditionalNode, remote_current_user: username, remote_current_password: password @@ -159,7 +170,8 @@ export default { username: username, password: password, host: remoteAddressForAdditionalNode, -port: portForForAdditionalNode +port: portForForAdditionalNode, +singlenode: false });
[couchdb-fauxton] 01/01: Update for changes to _cluster_setup endpoint
This is an automated email from the ASF dual-hosted git repository. wohali pushed a commit to branch 874-update-setup-wizard in repository https://gitbox.apache.org/repos/asf/couchdb-fauxton.git commit 372ff46c81f5074f460fe3640d3c33b84cb7c058 Author: Joan TouzetAuthorDate: Mon Jul 17 02:23:47 2017 -0400 Update for changes to _cluster_setup endpoint These changes add support for the new enable_single_node action, which tolerates binding a node to 127.0.0.1. They also add support for the new mandatory node_count parameter when setting up a cluster. This parameter in the API call actually sets [cluster] n value, so it is set to min(3, ) based on recommendations from @rnewson and personal experience. Closes #874 --- app/addons/setup/resources.js | 11 +- app/addons/setup/route.js | 1 + app/addons/setup/setup.actions.js | 31 --- app/addons/setup/setup.actiontypes.js | 1 + app/addons/setup/setup.js | 71 +-- app/addons/setup/setup.stores.js | 14 ++- app/addons/setup/tests/setupSpec.js | 21 +++ 7 files changed, 139 insertions(+), 11 deletions(-) diff --git a/app/addons/setup/resources.js b/app/addons/setup/resources.js index 1963f04..609ca73 100644 --- a/app/addons/setup/resources.js +++ b/app/addons/setup/resources.js @@ -37,13 +37,22 @@ Setup.Model = Backbone.Model.extend({ return 'Admin password is required'; } -if (attrs.bind_address && attrs.bind_address === '127.0.0.1') { +if (attrs.bind_address && attrs.bind_address === '127.0.0.1' && +!attrs.singlenode) { return 'Bind address can not be 127.0.0.1'; } if (attrs.port && _.isNaN(+attrs.port)) { return 'Bind port must be a number'; } + +if (attrs.nodeCount && _.isNaN(+attrs.nodeCount)) { + return 'Node count must be a number'; +} + +if (attrs.nodeCount && attrs.nodeCount < 1) { + return 'Node count must be >= 1'; +} } }); diff --git a/app/addons/setup/route.js b/app/addons/setup/route.js index e2b487e..b8845bb 100644 --- a/app/addons/setup/route.js +++ b/app/addons/setup/route.js @@ -72,6 +72,7 @@ var RouteObject = FauxtonAPI.RouteObject.extend({ finishView: function () { const setup = new Setup.Model(); +SetupActions.getClusterStateFromCouch(); return } endpoint={setup.url('apiurl')} diff --git a/app/addons/setup/setup.actions.js b/app/addons/setup/setup.actions.js index 79d9ef9..45213aa 100644 --- a/app/addons/setup/setup.actions.js +++ b/app/addons/setup/setup.actions.js @@ -66,11 +66,12 @@ export default { var password = setupStore.getPassword(); var setupModel = new SetupResources.Model({ - action: 'enable_cluster', + action: 'enable_single_node', username: username, password: password, bind_address: setupStore.getBindAdressForSetupNode(), - port: setupStore.getPortForSetupNode() + port: setupStore.getPortForSetupNode(), + singlenode: true }); setupModel.on('invalid', function (model, error) { @@ -87,7 +88,13 @@ export default { return FauxtonAPI.session.login(username, password); }) .then(function () { -return this.finishClusterSetup('CouchDB is set up!'); + FauxtonAPI.addNotification({ +msg: 'Single node setup successful.', +type: 'success', +fade: false, +clear: true + }); + FauxtonAPI.navigate('#setup/finish'); }.bind(this)); }, @@ -96,6 +103,7 @@ export default { var password = setupStore.getPassword(); var portForSetupNode = setupStore.getPortForSetupNode(); var bindAddressForSetupNode = setupStore.getBindAdressForSetupNode(); +var nodeCountForSetupNode = setupStore.getNodeCountForSetupNode(); var bindAddressForAdditionalNode = setupStore.getAdditionalNode().bindAddress; var remoteAddressForAdditionalNode = setupStore.getAdditionalNode().remoteAddress; @@ -107,7 +115,9 @@ export default { username: username, password: password, bind_address: bindAddressForSetupNode, - port: portForSetupNode + port: portForSetupNode, + node_count: nodeCountForSetupNode, + singlenode: false }); setupNode.on('invalid', function (model, error) { @@ -125,6 +135,7 @@ export default { password: password, bind_address: bindAddressForAdditionalNode, port: portForForAdditionalNode, + node_count: nodeCountForSetupNode, remote_node: remoteAddressForAdditionalNode, remote_current_user: username, remote_current_password: password @@ -159,7 +170,8 @@ export default { username: username, password: password, host: remoteAddressForAdditionalNode, -port: portForForAdditionalNode +port: portForForAdditionalNode, +singlenode: false });