[
https://issues.apache.org/jira/browse/COUCHDB-2541?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14282693#comment-14282693
]
Alexander Shorin commented on COUCHDB-2541:
-------------------------------------------
I propose for us to have such and ships with our releases. Don't have such, but
may be worth to write a one. This is very creative issue with a lot of possible
solutions and fun.
There are actually a lot of couchdb cli tools over github: in nodejs, ruby,
python...dozens of them. They all shares more or less the same issues:
- Attempt to provide console interface as a mirror of the HTTP API. That's not
a good since our HTTP API is simple enough (or, if not, it should be) to use
curl/httpie etc. console tools to work with it;
- Lack of support or outdated;
- Different target audience. Such tool should focus on CouchDB operators goals
and needs and care in first place about support, maintenance and health
diagnostic;
- Uncontrolled deps. For instance, my formerly loved
[couchup|https://github.com/sreeix/couchup] brings to you full featured ruby
couchdb client and iterative json parser which you have to compile from C;
- No one made in Erlang. I don't see any existed ones as candidates for
contribution since this will eventually cause additional runtime dependency
from some scripting language. Python has all known sad story. Ruby has a
problems if you don't keep it up-to-dated. Node.js has now not an easy times.
Only Perl seems to be a stable one (; However, this point is very arguable.
`couchdb` script is one the made in bash? I don't feel that this will be a
simple in implementation, but indeed it will be simple in realization (sorry
Windows).
> couchdbctl
> ----------
>
> Key: COUCHDB-2541
> URL: https://issues.apache.org/jira/browse/COUCHDB-2541
> Project: CouchDB
> Issue Type: New Feature
> Security Level: public(Regular issues)
> Reporter: Alexander Shorin
>
> couchdbctl is CouchDB control service utility that aims to help users manage
> and inspect their CouchDB instance, keeping it well and health.
> Few ideas what it may do:
> - register users with easy:
> {code}
> $ couchdbctl users add Jan
> Password:
> {code}
> hides routines to create /_users/org.couchdb.users:Jan document with all
> required fields;
> - run service operations:
> {code}
> $ couchdbctl db compact
> {code}
> - connect to node and provide shell:
> {code}
> $ couchdbctl attach
> {code}
> - run security audit as like as
> [audit-couchdb|https://github.com/iriscouch/audit_couchdb] or
> [couchdb-auditor|https://github.com/kxepal/python-couchdb-auditor] does;
> {code}
> $ couchdbctl audit
> {code}
> - see erltop;
> {code}
> $ couchdbctl top
> {code}
> - monitor stats and active tasks in realtime;
> - run replications with single command without worry about JSON and required
> fields:
> {code}
> $ couchdbctl replicate foo http://example.com/bar --continuous --create-target
> {code}
> - check cluster health, add/remove nodes to it;
> - explain errors in logs:
> {code}
> $ couchdbctl errors
> [error] [<0.125.0>] {error_report,<0.30.0>,
> {<0.125.0>,crash_report,
> [[{initial_call,{couch_file,init,['Argument__1']}},
> {pid,<0.125.0>},
> {registered_name,[]},
> {error_info,
> {exit,
> {{badmatch,{error,eacces}},
> [{couch_file,init,1,
> ...
> eacess error - insufficient or invalid permissions, please verify that
> couchdb user has all r permissions to the following paths:
> /var/lib/couchdb - read+write
> /var/log/couchdb - read+write
> /etc/couchdb - read+write
> /usr/lib64/couchdb/erlang/lib/couch-2.0.0/priv/lib - read
> {code}
> And so on and so forth. It's easy to find how this utility may improve users
> experience with CouchDB by simplifying common maintaining routes.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)