diff options
Diffstat (limited to 'provider_base')
-rw-r--r-- | provider_base/services/_couchdb_master.json | 8 | ||||
-rw-r--r-- | provider_base/services/_couchdb_mirror.json | 1 | ||||
-rw-r--r-- | provider_base/services/_couchdb_plain.json | 8 | ||||
-rw-r--r-- | provider_base/services/couchdb.json | 2 | ||||
-rw-r--r-- | provider_base/services/couchdb.rb | 56 |
5 files changed, 16 insertions, 59 deletions
diff --git a/provider_base/services/_couchdb_master.json b/provider_base/services/_couchdb_master.json deleted file mode 100644 index 20c6f99b..00000000 --- a/provider_base/services/_couchdb_master.json +++ /dev/null @@ -1,8 +0,0 @@ -// -// Applied to master couchdb node when there is a single master -// -{ - "couch": { - "mode": "master" - } -}
\ No newline at end of file diff --git a/provider_base/services/_couchdb_mirror.json b/provider_base/services/_couchdb_mirror.json index 6a3402bd..da496bae 100644 --- a/provider_base/services/_couchdb_mirror.json +++ b/provider_base/services/_couchdb_mirror.json @@ -1,5 +1,6 @@ // // Applied to all non-master couchdb nodes +// NOT CURRENTLY SUPPORTED // { "stunnel": { diff --git a/provider_base/services/_couchdb_plain.json b/provider_base/services/_couchdb_plain.json new file mode 100644 index 00000000..04380042 --- /dev/null +++ b/provider_base/services/_couchdb_plain.json @@ -0,0 +1,8 @@ +// +// Applied to couchdb node when there is a single plain couchdb +// +{ + "couch": { + "mode": "plain" + } +}
\ No newline at end of file diff --git a/provider_base/services/couchdb.json b/provider_base/services/couchdb.json index 5e65b2ec..30cb53d1 100644 --- a/provider_base/services/couchdb.json +++ b/provider_base/services/couchdb.json @@ -8,8 +8,8 @@ } }, "couch": { - "master": false, "port": 5984, + "mode": "plain", "users": { "admin": { "username": "admin", diff --git a/provider_base/services/couchdb.rb b/provider_base/services/couchdb.rb index 3bee3a67..124c1b6c 100644 --- a/provider_base/services/couchdb.rb +++ b/provider_base/services/couchdb.rb @@ -1,60 +1,16 @@ -####################################################################### -### -### NOTE! -### -### Currently, mirrors do not work! The only thing that works is all -### nodes multimaster or a single master. -### -####################################################################### # # custom logic for couchdb json resolution # ============================================ # -# There are three modes for a node: -# -# Multimaster -# ----------- -# -# Multimaster uses bigcouch (soon to use couchdb in replication mode -# similar to bigcouch). -# -# Use "multimaster" mode when: -# -# * multiple nodes are marked couch.master -# * OR no nodes are marked couch.master -# -# Master -# ------ -# -# Master uses plain couchdb that is readable and writable. -# -# Use "master" mode when: -# -# * Exactly one node, this one, is marked as master. -# -# Mirror -# ------ -# -# Mirror creates a read-only copy of the database. It uses plain coucdhb -# with legacy couchdb replication (http based). -# -# This does not currently work, because http replication can't handle -# the number of user databases. -# -# Use "mirror" mode when: -# -# * some nodes are marked couch.master -# * AND this node is not a master +# bigcouch is no longer maintained, so now the default behavior is +# to always use plain couchdb, unless there are more than one couchdb +# node or if "couch.mode" property is set to "multimaster". # -master_count = nodes_like_me['services' => 'couchdb']['couch.master' => true].size +couchdb_nodes = nodes_like_me['services' => 'couchdb'] -if master_count == 0 - apply_partial 'services/_couchdb_multimaster.json' -elsif couch.master && master_count > 1 +if couchdb_nodes.size > 1 || self['couch']['mode'] == "multimaster" apply_partial 'services/_couchdb_multimaster.json' -elsif couch.master && master_count == 1 - apply_partial 'services/_couchdb_master.json' else - apply_partial 'services/_couchdb_mirror.json' + apply_partial 'services/_couchdb_plain.json' end |