Author: justi9
Date: 2010-08-12 17:21:44 -0400 (Thu, 12 Aug 2010)
New Revision: 4206
Modified:
mgmt/newdata/cumin/bin/cumin-admin
Log:
* Address bz 621288; add import for IntegrityError exception
* Add subcommand help text to cumin-admin --help
Modified: mgmt/newdata/cumin/bin/cumin-admin
===================================================================
--- mgmt/newdata/cumin/bin/cumin-admin 2010-08-12 19:58:56 UTC (rev 4205)
+++ mgmt/newdata/cumin/bin/cumin-admin 2010-08-12 21:21:44 UTC (rev 4206)
@@ -3,6 +3,8 @@
import os
import sys
+from psycopg2 import IntegrityError
+
home = os.environ.get("CUMIN_HOME",
os.path.normpath("/usr/share/cumin"))
sys.path.append(os.path.join(home, "python"))
@@ -26,6 +28,7 @@
values = config.parse()
parser = CuminOptionParser(values.data)
+ parser.set_usage(generate_usage())
opts, args = parser.parse_args()
@@ -66,6 +69,30 @@
print "Error: %s" % msg
sys.exit(1)
+def generate_usage():
+ lines = list()
+
+ lines.append("cumin-admin [OPTIONS] COMMAND")
+ lines.append("")
+ lines.append("User commands:")
+ lines.append("")
+ lines.append(" add-user USER [PASSWORD] Add USER")
+ lines.append(" remove-user USER Remove USER")
+ lines.append(" add-assignment USER ROLE Add USER to ROLE")
+ lines.append(" remove-assignment USER ROLE Remove USER from ROLE")
+ lines.append(" change-password USER Change USER's password")
+ lines.append(" list-users List users")
+ lines.append(" list-roles List roles")
+ lines.append("")
+ lines.append("Schema commands:")
+ lines.append("")
+ lines.append(" check-schema Check schema")
+ lines.append(" create-schema Create schema objects")
+ lines.append(" drop-schema Drop schema and all data")
+ lines.append(" print-schema Print the schema
definition")
+
+ return "\n".join(lines)
+
def handle_print_schema(app, cursor, opts, args):
print app.admin.get_schema(),
@@ -131,7 +158,7 @@
try:
name = args[0]
except IndexError:
- error("NAME is required")
+ error("USER is required")
try:
password = args[1]
@@ -145,7 +172,7 @@
try:
user = app.admin.add_user(cursor, name, crypted)
except IntegrityError:
- error("Error: a user called '%s' already exists" % name)
+ error("A user called '%s' already exists" % name)
app.admin.add_assignment(cursor, user, role)
@@ -155,7 +182,7 @@
try:
name = args[0]
except IndexError:
- error("NAME is required")
+ error("USER is required")
user = app.admin.get_user(cursor, name)
user.delete(cursor)