3276 lines
213 KiB
Diff
3276 lines
213 KiB
Diff
From eee2876a2a80da1b3fc8911e3cea6448f26dcf06 Mon Sep 17 00:00:00 2001
|
|
From: Simon Pichugin <spichugi@redhat.com>
|
|
Date: Wed, 14 Feb 2024 10:37:21 -0800
|
|
Subject: [PATCH] Issue 6067 - Add hidden -v and -j options to each CLI
|
|
subcommand (#6088)
|
|
|
|
Description: There is no [-v] option before instance_name mentioned,
|
|
so user will not know he can use it unless he runs "dsctl -h".
|
|
Add a custom HelpFormatter to each subcommand. The formatter_class adds
|
|
[-v] [-j] to the usage line and adds the options' description to the full help output.
|
|
|
|
Related: https://github.com/389ds/389-ds-base/issues/6067
|
|
|
|
Reviewed by: @vashirov (Thanks!)
|
|
---
|
|
src/lib389/cli/dsconf | 11 +-
|
|
src/lib389/cli/dsctl | 14 +--
|
|
src/lib389/cli/dsidm | 11 +-
|
|
src/lib389/lib389/cli_base/__init__.py | 37 +++++++
|
|
src/lib389/lib389/cli_conf/__init__.py | 9 +-
|
|
src/lib389/lib389/cli_conf/backend.py | 67 ++++++------
|
|
src/lib389/lib389/cli_conf/backup.py | 7 +-
|
|
src/lib389/lib389/cli_conf/chaining.py | 19 ++--
|
|
src/lib389/lib389/cli_conf/config.py | 11 +-
|
|
src/lib389/lib389/cli_conf/conflicts.py | 17 +--
|
|
.../lib389/cli_conf/directory_manager.py | 6 +-
|
|
src/lib389/lib389/cli_conf/monitor.py | 18 ++--
|
|
src/lib389/lib389/cli_conf/plugin.py | 9 +-
|
|
.../lib389/cli_conf/plugins/accountpolicy.py | 15 +--
|
|
.../lib389/cli_conf/plugins/attruniq.py | 19 ++--
|
|
.../lib389/cli_conf/plugins/automember.py | 35 +++---
|
|
src/lib389/lib389/cli_conf/plugins/dna.py | 27 ++---
|
|
.../lib389/cli_conf/plugins/entryuuid.py | 7 +-
|
|
.../cli_conf/plugins/ldappassthrough.py | 12 +--
|
|
.../lib389/cli_conf/plugins/linkedattr.py | 19 ++--
|
|
.../lib389/cli_conf/plugins/managedentries.py | 27 ++---
|
|
.../lib389/cli_conf/plugins/memberof.py | 19 ++--
|
|
.../lib389/cli_conf/plugins/pampassthrough.py | 14 +--
|
|
.../lib389/cli_conf/plugins/posix_winsync.py | 7 +-
|
|
.../lib389/cli_conf/plugins/referint.py | 13 +--
|
|
.../lib389/cli_conf/plugins/retrochangelog.py | 9 +-
|
|
.../lib389/cli_conf/plugins/rootdn_ac.py | 5 +-
|
|
src/lib389/lib389/cli_conf/plugins/usn.py | 11 +-
|
|
src/lib389/lib389/cli_conf/pwpolicy.py | 21 ++--
|
|
src/lib389/lib389/cli_conf/replication.py | 100 +++++++++---------
|
|
src/lib389/lib389/cli_conf/saslmappings.py | 15 +--
|
|
src/lib389/lib389/cli_conf/schema.py | 40 +++----
|
|
src/lib389/lib389/cli_conf/security.py | 26 ++---
|
|
src/lib389/lib389/cli_ctl/cockpit.py | 11 +-
|
|
src/lib389/lib389/cli_ctl/dbgen.py | 17 +--
|
|
src/lib389/lib389/cli_ctl/dbtasks.py | 17 +--
|
|
src/lib389/lib389/cli_ctl/dsrc.py | 11 +-
|
|
src/lib389/lib389/cli_ctl/health.py | 2 +-
|
|
src/lib389/lib389/cli_ctl/instance.py | 13 +--
|
|
src/lib389/lib389/cli_ctl/nsstate.py | 1 +
|
|
src/lib389/lib389/cli_ctl/tls.py | 33 +++---
|
|
src/lib389/lib389/cli_idm/account.py | 25 ++---
|
|
src/lib389/lib389/cli_idm/client_config.py | 1 +
|
|
src/lib389/lib389/cli_idm/group.py | 22 ++--
|
|
src/lib389/lib389/cli_idm/initialise.py | 3 +-
|
|
.../lib389/cli_idm/organizationalunit.py | 18 ++--
|
|
src/lib389/lib389/cli_idm/posixgroup.py | 16 +--
|
|
src/lib389/lib389/cli_idm/role.py | 29 ++---
|
|
src/lib389/lib389/cli_idm/service.py | 18 ++--
|
|
src/lib389/lib389/cli_idm/uniquegroup.py | 22 ++--
|
|
src/lib389/lib389/cli_idm/user.py | 16 +--
|
|
51 files changed, 504 insertions(+), 448 deletions(-)
|
|
|
|
diff --git a/src/lib389/cli/dsconf b/src/lib389/cli/dsconf
|
|
index 23068efdd..b8a980877 100755
|
|
--- a/src/lib389/cli/dsconf
|
|
+++ b/src/lib389/cli/dsconf
|
|
@@ -33,16 +33,13 @@ from lib389.cli_base import disconnect_instance, connect_instance
|
|
from lib389.cli_base.dsrc import dsrc_to_ldap, dsrc_arg_concat
|
|
from lib389.cli_base import setup_script_logger
|
|
from lib389.cli_base import format_error_to_dict
|
|
+from lib389.cli_base import parent_argparser
|
|
from lib389.utils import instance_choices
|
|
|
|
-parser = argparse.ArgumentParser(allow_abbrev=True)
|
|
+parser = argparse.ArgumentParser(allow_abbrev=True, parents=[parent_argparser])
|
|
parser.add_argument('instance',
|
|
help="The name of the instance or its LDAP URL, such as ldap://server.example.com:389",
|
|
).completer = instance_choices
|
|
-parser.add_argument('-v', '--verbose',
|
|
- help="Display verbose operation tracing during command execution",
|
|
- action='store_true', default=False
|
|
- )
|
|
parser.add_argument('-D', '--binddn',
|
|
help="The account to bind as for executing operations",
|
|
default=None
|
|
@@ -67,10 +64,6 @@ parser.add_argument('-Z', '--starttls',
|
|
help="Connect with StartTLS",
|
|
default=False, action='store_true'
|
|
)
|
|
-parser.add_argument('-j', '--json',
|
|
- help="Return result in JSON object",
|
|
- default=False, action='store_true'
|
|
- )
|
|
|
|
subparsers = parser.add_subparsers(help="resources to act upon")
|
|
|
|
diff --git a/src/lib389/cli/dsctl b/src/lib389/cli/dsctl
|
|
index 2881d7ac2..1ae8bb5f4 100755
|
|
--- a/src/lib389/cli/dsctl
|
|
+++ b/src/lib389/cli/dsctl
|
|
@@ -29,21 +29,15 @@ from lib389.cli_ctl.instance import instance_remove_all
|
|
from lib389.cli_base import (
|
|
disconnect_instance,
|
|
setup_script_logger,
|
|
- format_error_to_dict)
|
|
+ format_error_to_dict,
|
|
+ parent_argparser
|
|
+ )
|
|
from lib389._constants import DSRC_CONTAINER
|
|
|
|
-parser = argparse.ArgumentParser()
|
|
-parser.add_argument('-v', '--verbose',
|
|
- help="Display verbose operation tracing during command execution",
|
|
- action='store_true', default=False
|
|
- )
|
|
+parser = argparse.ArgumentParser(parents=[parent_argparser])
|
|
parser.add_argument('instance', nargs='?', default=False,
|
|
help="The name of the instance to act upon",
|
|
).completer = instance_choices
|
|
-parser.add_argument('-j', '--json',
|
|
- help="Return result in JSON object",
|
|
- default=False, action='store_true'
|
|
- )
|
|
parser.add_argument('-l', '--list',
|
|
help="List available Directory Server instances",
|
|
default=False, action='store_true'
|
|
diff --git a/src/lib389/cli/dsidm b/src/lib389/cli/dsidm
|
|
index 1b6762646..1b739b103 100755
|
|
--- a/src/lib389/cli/dsidm
|
|
+++ b/src/lib389/cli/dsidm
|
|
@@ -32,8 +32,9 @@ from lib389.cli_idm import service as cli_service
|
|
from lib389.cli_base import connect_instance, disconnect_instance, setup_script_logger
|
|
from lib389.cli_base.dsrc import dsrc_to_ldap, dsrc_arg_concat
|
|
from lib389.cli_base import format_error_to_dict
|
|
+from lib389.cli_base import parent_argparser
|
|
|
|
-parser = argparse.ArgumentParser(allow_abbrev=True)
|
|
+parser = argparse.ArgumentParser(allow_abbrev=True, parents=[parent_argparser])
|
|
# First, add the LDAP options
|
|
parser.add_argument('instance',
|
|
help="The name of the instance or its LDAP URL, such as ldap://server.example.com:389",
|
|
@@ -42,10 +43,6 @@ parser.add_argument('-b', '--basedn',
|
|
help="Base DN (root naming context) of the instance to manage",
|
|
default=None
|
|
)
|
|
-parser.add_argument('-v', '--verbose',
|
|
- help="Display verbose operation tracing during command execution",
|
|
- action='store_true', default=False
|
|
- )
|
|
parser.add_argument('-D', '--binddn',
|
|
help="The account to bind as for executing operations",
|
|
default=None
|
|
@@ -66,10 +63,6 @@ parser.add_argument('-Z', '--starttls',
|
|
help="Connect with StartTLS",
|
|
default=False, action='store_true'
|
|
)
|
|
-parser.add_argument('-j', '--json',
|
|
- help="Return result in JSON object",
|
|
- default=False, action='store_true'
|
|
- )
|
|
subparsers = parser.add_subparsers(help="resources to act upon")
|
|
# Call all the other cli modules to register their bits
|
|
cli_account.create_parser(subparsers)
|
|
diff --git a/src/lib389/lib389/cli_base/__init__.py b/src/lib389/lib389/cli_base/__init__.py
|
|
index 60dd6cd70..c431f066d 100644
|
|
--- a/src/lib389/lib389/cli_base/__init__.py
|
|
+++ b/src/lib389/lib389/cli_base/__init__.py
|
|
@@ -7,6 +7,7 @@
|
|
# See LICENSE for details.
|
|
# --- END COPYRIGHT BLOCK ---
|
|
|
|
+import argparse
|
|
import ast
|
|
import logging
|
|
import sys
|
|
@@ -365,6 +366,42 @@ def _generic_modify_dn(inst, basedn, log, manager_class, dn, args=None):
|
|
_generic_modify_inner(log, o, args.changes)
|
|
|
|
|
|
+# We need parent parser to be able to add -v and -j to all subparsers
|
|
+# because we use parent_arguments in CustomHelpFormatter
|
|
+parent_arguments = []
|
|
+parent_argparser = argparse.ArgumentParser(add_help=False)
|
|
+parent_arguments.append(parent_argparser.add_argument('-v', '--verbose',
|
|
+ help="Display verbose operation tracing during command execution",
|
|
+ action='store_true', default=False
|
|
+ ))
|
|
+parent_arguments.append(parent_argparser.add_argument('-j', '--json',
|
|
+ help="Return result in JSON object",
|
|
+ default=False, action='store_true'
|
|
+ ))
|
|
+
|
|
+
|
|
+class CustomHelpFormatter(argparse.HelpFormatter):
|
|
+ """Custom help formatter to add [-v] [-j] to the usage line and add these options'
|
|
+ description to the full help output
|
|
+ """
|
|
+ def add_arguments(self, actions):
|
|
+ if len(actions) > 0 and actions[0].option_strings:
|
|
+ actions = parent_arguments + actions
|
|
+ super(CustomHelpFormatter, self).add_arguments(actions)
|
|
+
|
|
+ def _format_usage(self, usage, actions, groups, prefix):
|
|
+ usage = super(CustomHelpFormatter, self)._format_usage(usage, actions, groups, prefix)
|
|
+ formatted_options = self._format_actions_usage(parent_arguments, [])
|
|
+ # If formatted_options already in usage - remove them
|
|
+ if formatted_options in usage:
|
|
+ usage = usage.replace(f' {formatted_options}', '')
|
|
+ usage = usage.split(' ')
|
|
+ usage.insert(2, formatted_options)
|
|
+ usage = ' '.join(usage)
|
|
+
|
|
+ return usage
|
|
+
|
|
+
|
|
class LogCapture(logging.Handler):
|
|
"""
|
|
This useful class is for intercepting logs, and then making assertions about
|
|
diff --git a/src/lib389/lib389/cli_conf/__init__.py b/src/lib389/lib389/cli_conf/__init__.py
|
|
index ef9db9166..44f39ed2f 100644
|
|
--- a/src/lib389/lib389/cli_conf/__init__.py
|
|
+++ b/src/lib389/lib389/cli_conf/__init__.py
|
|
@@ -7,6 +7,7 @@
|
|
# --- END COPYRIGHT BLOCK ---
|
|
import ldap
|
|
from lib389 import ensure_list_str
|
|
+from lib389.cli_base import CustomHelpFormatter
|
|
|
|
|
|
def _args_to_attrs(args, arg_to_attr):
|
|
@@ -155,16 +156,16 @@ def generic_status(inst, basedn, log, args):
|
|
|
|
|
|
def add_generic_plugin_parsers(subparser, plugin_cls):
|
|
- show_parser = subparser.add_parser('show', help='Displays the plugin configuration')
|
|
+ show_parser = subparser.add_parser('show', help='Displays the plugin configuration', formatter_class=CustomHelpFormatter)
|
|
show_parser.set_defaults(func=generic_show, plugin_cls=plugin_cls)
|
|
|
|
- enable_parser = subparser.add_parser('enable', help='Enables the plugin')
|
|
+ enable_parser = subparser.add_parser('enable', help='Enables the plugin', formatter_class=CustomHelpFormatter)
|
|
enable_parser.set_defaults(func=generic_enable, plugin_cls=plugin_cls)
|
|
|
|
- disable_parser = subparser.add_parser('disable', help='Disables the plugin')
|
|
+ disable_parser = subparser.add_parser('disable', help='Disables the plugin', formatter_class=CustomHelpFormatter)
|
|
disable_parser.set_defaults(func=generic_disable, plugin_cls=plugin_cls)
|
|
|
|
- status_parser = subparser.add_parser('status', help='Displays the plugin status')
|
|
+ status_parser = subparser.add_parser('status', help='Displays the plugin status', formatter_class=CustomHelpFormatter)
|
|
status_parser.set_defaults(func=generic_status, plugin_cls=plugin_cls)
|
|
|
|
|
|
diff --git a/src/lib389/lib389/cli_conf/backend.py b/src/lib389/lib389/cli_conf/backend.py
|
|
index 5bcc098c7..4dc67d563 100644
|
|
--- a/src/lib389/lib389/cli_conf/backend.py
|
|
+++ b/src/lib389/lib389/cli_conf/backend.py
|
|
@@ -28,6 +28,7 @@ from lib389.cli_base import (
|
|
_generic_get_dn,
|
|
_get_arg,
|
|
_warn,
|
|
+ CustomHelpFormatter
|
|
)
|
|
import json
|
|
import ldap
|
|
@@ -834,39 +835,39 @@ def backend_compact(inst, basedn, log, args):
|
|
|
|
|
|
def create_parser(subparsers):
|
|
- backend_parser = subparsers.add_parser('backend', help="Manage database suffixes and backends")
|
|
+ backend_parser = subparsers.add_parser('backend', help="Manage database suffixes and backends", formatter_class=CustomHelpFormatter)
|
|
subcommands = backend_parser.add_subparsers(help="action")
|
|
|
|
#####################################################
|
|
# Suffix parser
|
|
#####################################################
|
|
- suffix_parser = subcommands.add_parser('suffix', help="Manage backend suffixes")
|
|
+ suffix_parser = subcommands.add_parser('suffix', help="Manage backend suffixes", formatter_class=CustomHelpFormatter)
|
|
suffix_subcommands = suffix_parser.add_subparsers(help="action")
|
|
|
|
# List backends/suffixes
|
|
- list_parser = suffix_subcommands.add_parser('list', help="List active backends and suffixes")
|
|
+ list_parser = suffix_subcommands.add_parser('list', help="List active backends and suffixes", formatter_class=CustomHelpFormatter)
|
|
list_parser.set_defaults(func=backend_list)
|
|
list_parser.add_argument('--suffix', action='store_true', help='Displays the suffixes without backend name')
|
|
list_parser.add_argument('--skip-subsuffixes', action='store_true', help='Displays the list of suffixes without sub-suffixes')
|
|
|
|
# Get backend
|
|
- get_parser = suffix_subcommands.add_parser('get', help='Display the suffix entry')
|
|
+ get_parser = suffix_subcommands.add_parser('get', help='Display the suffix entry', formatter_class=CustomHelpFormatter)
|
|
get_parser.set_defaults(func=backend_get)
|
|
get_parser.add_argument('selector', nargs='?', help='The backend database name to search for')
|
|
|
|
# Get the DN of a backend
|
|
- get_dn_parser = suffix_subcommands.add_parser('get-dn', help='Display the DN of a backend')
|
|
+ get_dn_parser = suffix_subcommands.add_parser('get-dn', help='Display the DN of a backend', formatter_class=CustomHelpFormatter)
|
|
get_dn_parser.set_defaults(func=backend_get_dn)
|
|
get_dn_parser.add_argument('dn', nargs='?', help='The DN to the database entry in cn=ldbm database,cn=plugins,cn=config')
|
|
|
|
# Get subsuffixes
|
|
- get_subsuffix_parser = suffix_subcommands.add_parser('get-sub-suffixes', help='Display sub-suffixes')
|
|
+ get_subsuffix_parser = suffix_subcommands.add_parser('get-sub-suffixes', help='Display sub-suffixes', formatter_class=CustomHelpFormatter)
|
|
get_subsuffix_parser.set_defaults(func=backend_get_subsuffixes)
|
|
get_subsuffix_parser.add_argument('--suffix', action='store_true', help='Displays the list of suffixes without backend name')
|
|
get_subsuffix_parser.add_argument('be_name', help='The backend name or suffix')
|
|
|
|
# Set the backend/suffix configuration
|
|
- set_backend_parser = suffix_subcommands.add_parser('set', help='Set configuration settings for a specific backend')
|
|
+ set_backend_parser = suffix_subcommands.add_parser('set', help='Set configuration settings for a specific backend', formatter_class=CustomHelpFormatter)
|
|
set_backend_parser.set_defaults(func=backend_set)
|
|
set_backend_parser.add_argument('--enable-readonly', action='store_true', help='Enables read-only mode for the backend database')
|
|
set_backend_parser.add_argument('--disable-readonly', action='store_true', help='Disables read-only mode for the backend database')
|
|
@@ -887,11 +888,11 @@ def create_parser(subparsers):
|
|
#########################################
|
|
# Index parser
|
|
#########################################
|
|
- index_parser = subcommands.add_parser('index', help="Manage backend indexes")
|
|
+ index_parser = subcommands.add_parser('index', help="Manage backend indexes", formatter_class=CustomHelpFormatter)
|
|
index_subcommands = index_parser.add_subparsers(help="action")
|
|
|
|
# Create index
|
|
- add_index_parser = index_subcommands.add_parser('add', help='Add an index')
|
|
+ add_index_parser = index_subcommands.add_parser('add', help='Add an index', formatter_class=CustomHelpFormatter)
|
|
add_index_parser.set_defaults(func=backend_add_index)
|
|
add_index_parser.add_argument('--index-type', required=True, action='append', help='Sets the indexing type (eq, sub, pres, or approx)')
|
|
add_index_parser.add_argument('--matching-rule', action='append', help='Sets the matching rule for the index')
|
|
@@ -900,7 +901,7 @@ def create_parser(subparsers):
|
|
add_index_parser.add_argument('be_name', help='The backend name or suffix')
|
|
|
|
# Edit index
|
|
- edit_index_parser = index_subcommands.add_parser('set', help='Update an index')
|
|
+ edit_index_parser = index_subcommands.add_parser('set', help='Update an index', formatter_class=CustomHelpFormatter)
|
|
edit_index_parser.set_defaults(func=backend_set_index)
|
|
edit_index_parser.add_argument('--attr', required=True, help='Sets the indexed attribute to update')
|
|
edit_index_parser.add_argument('--add-type', action='append', help='Adds an index type to the index (eq, sub, pres, or approx)')
|
|
@@ -911,25 +912,25 @@ def create_parser(subparsers):
|
|
edit_index_parser.add_argument('be_name', help='The backend name or suffix')
|
|
|
|
# Get index
|
|
- get_index_parser = index_subcommands.add_parser('get', help='Display an index entry')
|
|
+ get_index_parser = index_subcommands.add_parser('get', help='Display an index entry', formatter_class=CustomHelpFormatter)
|
|
get_index_parser.set_defaults(func=backend_get_index)
|
|
get_index_parser.add_argument('--attr', required=True, action='append', help='Sets the index name to display')
|
|
get_index_parser.add_argument('be_name', help='The backend name or suffix')
|
|
|
|
# list indexes
|
|
- list_index_parser = index_subcommands.add_parser('list', help='Display the index')
|
|
+ list_index_parser = index_subcommands.add_parser('list', help='Display the index', formatter_class=CustomHelpFormatter)
|
|
list_index_parser.set_defaults(func=backend_list_index)
|
|
list_index_parser.add_argument('--just-names', action='store_true', help='Displays only the names of indexed attributes')
|
|
list_index_parser.add_argument('be_name', help='The backend name or suffix')
|
|
|
|
# Delete index
|
|
- del_index_parser = index_subcommands.add_parser('delete', help='Delete an index')
|
|
+ del_index_parser = index_subcommands.add_parser('delete', help='Delete an index', formatter_class=CustomHelpFormatter)
|
|
del_index_parser.set_defaults(func=backend_del_index)
|
|
del_index_parser.add_argument('--attr', action='append', help='Sets the name of the attribute to delete from the index')
|
|
del_index_parser.add_argument('be_name', help='The backend name or suffix')
|
|
|
|
# reindex index
|
|
- reindex_parser = index_subcommands.add_parser('reindex', help='Re-index the database for a single index or all indexes')
|
|
+ reindex_parser = index_subcommands.add_parser('reindex', help='Re-index the database for a single index or all indexes', formatter_class=CustomHelpFormatter)
|
|
reindex_parser.set_defaults(func=backend_reindex)
|
|
reindex_parser.add_argument('--attr', action='append', help='Sets the name of the attribute to re-index. Omit this argument to re-index all attributes')
|
|
reindex_parser.add_argument('--wait', action='store_true', help='Waits for the index task to complete and reports the status')
|
|
@@ -938,17 +939,17 @@ def create_parser(subparsers):
|
|
#############################################
|
|
# VLV parser
|
|
#############################################
|
|
- vlv_parser = subcommands.add_parser('vlv-index', help="Manage VLV searches and indexes")
|
|
+ vlv_parser = subcommands.add_parser('vlv-index', help="Manage VLV searches and indexes", formatter_class=CustomHelpFormatter)
|
|
vlv_subcommands = vlv_parser.add_subparsers(help="action")
|
|
|
|
# List VLV Searches
|
|
- list_vlv_search_parser = vlv_subcommands.add_parser('list', help='List VLV search and index entries')
|
|
+ list_vlv_search_parser = vlv_subcommands.add_parser('list', help='List VLV search and index entries', formatter_class=CustomHelpFormatter)
|
|
list_vlv_search_parser.set_defaults(func=backend_list_vlv)
|
|
list_vlv_search_parser.add_argument('--just-names', action='store_true', help='Displays only the names of VLV search entries')
|
|
list_vlv_search_parser.add_argument('be_name', help='The backend name of the VLV index')
|
|
|
|
# Get VLV search entry and indexes
|
|
- get_vlv_search_parser = vlv_subcommands.add_parser('get', help='Display a VLV search and indexes')
|
|
+ get_vlv_search_parser = vlv_subcommands.add_parser('get', help='Display a VLV search and indexes', formatter_class=CustomHelpFormatter)
|
|
get_vlv_search_parser.set_defaults(func=backend_get_vlv)
|
|
get_vlv_search_parser.add_argument('--name', help='Displays the VLV search entry and its index entries')
|
|
get_vlv_search_parser.add_argument('be_name', help='The backend name of the VLV index')
|
|
@@ -965,7 +966,7 @@ def create_parser(subparsers):
|
|
add_vlv_search_parser.add_argument('be_name', help='The backend name of the VLV index')
|
|
|
|
# Edit vlv search
|
|
- edit_vlv_search_parser = vlv_subcommands.add_parser('edit-search', help='Update a VLV search and index')
|
|
+ edit_vlv_search_parser = vlv_subcommands.add_parser('edit-search', help='Update a VLV search and index', formatter_class=CustomHelpFormatter)
|
|
edit_vlv_search_parser.set_defaults(func=backend_edit_vlv)
|
|
edit_vlv_search_parser.add_argument('--name', required=True, help='Sets the name of the VLV index')
|
|
edit_vlv_search_parser.add_argument('--search-base', help='Sets the VLV search base')
|
|
@@ -975,13 +976,13 @@ def create_parser(subparsers):
|
|
edit_vlv_search_parser.add_argument('be_name', help='The backend name of the VLV index to update')
|
|
|
|
# Delete vlv search(and index)
|
|
- del_vlv_search_parser = vlv_subcommands.add_parser('del-search', help='Delete VLV search & index')
|
|
+ del_vlv_search_parser = vlv_subcommands.add_parser('del-search', help='Delete VLV search & index', formatter_class=CustomHelpFormatter)
|
|
del_vlv_search_parser.set_defaults(func=backend_del_vlv)
|
|
del_vlv_search_parser.add_argument('--name', required=True, help='Sets the name of the VLV search index')
|
|
del_vlv_search_parser.add_argument('be_name', help='The backend name of the VLV index')
|
|
|
|
# Create VLV Index
|
|
- add_vlv_index_parser = vlv_subcommands.add_parser('add-index', help='Create a VLV index under a VLV search entry (parent entry). '
|
|
+ add_vlv_index_parser = vlv_subcommands.add_parser('add-index', help='Create a VLV index under a VLV search entry (parent entry, formatter_class=CustomHelpFormatter). '
|
|
'The VLV index specifies the attributes to sort')
|
|
add_vlv_index_parser.set_defaults(func=backend_create_vlv_index)
|
|
add_vlv_index_parser.add_argument('--parent-name', required=True, help='Sets the name or "cn" attribute of the parent VLV search entry')
|
|
@@ -991,7 +992,7 @@ def create_parser(subparsers):
|
|
add_vlv_index_parser.add_argument('be_name', help='The backend name of the VLV index')
|
|
|
|
# Delete VLV Index
|
|
- del_vlv_index_parser = vlv_subcommands.add_parser('del-index', help='Delete a VLV index under a VLV search entry (parent entry)')
|
|
+ del_vlv_index_parser = vlv_subcommands.add_parser('del-index', help='Delete a VLV index under a VLV search entry (parent entry)', formatter_class=CustomHelpFormatter)
|
|
del_vlv_index_parser.set_defaults(func=backend_delete_vlv_index)
|
|
del_vlv_index_parser.add_argument('--parent-name', required=True, help='Sets the name or "cn" attribute value of the parent VLV search entry')
|
|
del_vlv_index_parser.add_argument('--index-name', help='Sets the name of the VLV index to delete')
|
|
@@ -999,7 +1000,7 @@ def create_parser(subparsers):
|
|
del_vlv_index_parser.add_argument('be_name', help='The backend name of the VLV index')
|
|
|
|
# Reindex VLV
|
|
- reindex_vlv_parser = vlv_subcommands.add_parser('reindex', help='Index/re-index the VLV database index')
|
|
+ reindex_vlv_parser = vlv_subcommands.add_parser('reindex', help='Index/re-index the VLV database index', formatter_class=CustomHelpFormatter)
|
|
reindex_vlv_parser.set_defaults(func=backend_reindex_vlv)
|
|
reindex_vlv_parser.add_argument('--index-name', help='Sets the name of the VLV index entry to re-index. If not set, all indexes are re-indexed')
|
|
reindex_vlv_parser.add_argument('--parent-name', required=True, help='Sets the name or "cn" attribute value of the parent VLV search entry')
|
|
@@ -1008,7 +1009,7 @@ def create_parser(subparsers):
|
|
############################################
|
|
# Encrypted Attributes
|
|
############################################
|
|
- attr_encrypt_parser = subcommands.add_parser('attr-encrypt', help='Manage encrypted attribute settings')
|
|
+ attr_encrypt_parser = subcommands.add_parser('attr-encrypt', help='Manage encrypted attribute settings', formatter_class=CustomHelpFormatter)
|
|
attr_encrypt_parser.set_defaults(func=backend_attr_encrypt)
|
|
attr_encrypt_parser.add_argument('--list', action='store_true', help='Lists all encrypted attributes in the backend')
|
|
attr_encrypt_parser.add_argument('--just-names', action='store_true', help='List only the names of the encrypted attributes when used with --list')
|
|
@@ -1019,15 +1020,15 @@ def create_parser(subparsers):
|
|
############################################
|
|
# Global DB Config
|
|
############################################
|
|
- db_parser = subcommands.add_parser('config', help="Manage the global database configuration settings")
|
|
+ db_parser = subcommands.add_parser('config', help="Manage the global database configuration settings", formatter_class=CustomHelpFormatter)
|
|
db_subcommands = db_parser.add_subparsers(help="action")
|
|
|
|
# Get the global database configuration
|
|
- get_db_config_parser = db_subcommands.add_parser('get', help='Display the global database configuration')
|
|
+ get_db_config_parser = db_subcommands.add_parser('get', help='Display the global database configuration', formatter_class=CustomHelpFormatter)
|
|
get_db_config_parser.set_defaults(func=db_config_get)
|
|
|
|
# Update the global database configuration
|
|
- set_db_config_parser = db_subcommands.add_parser('set', help='Set the global database configuration')
|
|
+ set_db_config_parser = db_subcommands.add_parser('set', help='Set the global database configuration', formatter_class=CustomHelpFormatter)
|
|
set_db_config_parser.set_defaults(func=db_config_set)
|
|
set_db_config_parser.add_argument('--lookthroughlimit', help='Specifies the maximum number of entries that the server '
|
|
'will check when examining candidate entries in response to a search request')
|
|
@@ -1084,14 +1085,14 @@ def create_parser(subparsers):
|
|
#######################################################
|
|
# Database & Suffix Monitor
|
|
#######################################################
|
|
- get_monitor_parser = subcommands.add_parser('monitor', help="Displays global database or suffix monitoring information")
|
|
+ get_monitor_parser = subcommands.add_parser('monitor', help="Displays global database or suffix monitoring information", formatter_class=CustomHelpFormatter)
|
|
get_monitor_parser.set_defaults(func=get_monitor)
|
|
get_monitor_parser.add_argument('--suffix', help='Displays monitoring information only for the specified suffix')
|
|
|
|
#######################################################
|
|
# Import LDIF
|
|
#######################################################
|
|
- import_parser = subcommands.add_parser('import', help="Online import of a suffix")
|
|
+ import_parser = subcommands.add_parser('import', help="Online import of a suffix", formatter_class=CustomHelpFormatter)
|
|
import_parser.set_defaults(func=backend_import)
|
|
import_parser.add_argument('be_name', nargs='?',
|
|
help='The backend name or the root suffix')
|
|
@@ -1122,7 +1123,7 @@ def create_parser(subparsers):
|
|
#######################################################
|
|
# Export LDIF
|
|
#######################################################
|
|
- export_parser = subcommands.add_parser('export', help='Online export of a suffix')
|
|
+ export_parser = subcommands.add_parser('export', help='Online export of a suffix', formatter_class=CustomHelpFormatter)
|
|
export_parser.set_defaults(func=backend_export)
|
|
export_parser.add_argument('be_names', nargs='+',
|
|
help="The backend names or the root suffixes")
|
|
@@ -1153,7 +1154,7 @@ def create_parser(subparsers):
|
|
#######################################################
|
|
# Create a new backend database
|
|
#######################################################
|
|
- create_parser = subcommands.add_parser('create', help='Create a backend database')
|
|
+ create_parser = subcommands.add_parser('create', help='Create a backend database', formatter_class=CustomHelpFormatter)
|
|
create_parser.set_defaults(func=backend_create)
|
|
create_parser.add_argument('--parent-suffix', default=False,
|
|
help="Sets the parent suffix only if this backend is a sub-suffix")
|
|
@@ -1166,20 +1167,20 @@ def create_parser(subparsers):
|
|
#######################################################
|
|
# Delete backend
|
|
#######################################################
|
|
- delete_parser = subcommands.add_parser('delete', help='Delete a backend database')
|
|
+ delete_parser = subcommands.add_parser('delete', help='Delete a backend database', formatter_class=CustomHelpFormatter)
|
|
delete_parser.set_defaults(func=backend_delete)
|
|
delete_parser.add_argument('be_name', help='The backend name or suffix')
|
|
|
|
#######################################################
|
|
# Get Suffix Tree (for use in web console)
|
|
#######################################################
|
|
- get_tree_parser = subcommands.add_parser('get-tree', help='Display the suffix tree')
|
|
+ get_tree_parser = subcommands.add_parser('get-tree', help='Display the suffix tree', formatter_class=CustomHelpFormatter)
|
|
get_tree_parser.set_defaults(func=backend_get_tree)
|
|
|
|
#######################################################
|
|
# Run the db compaction task
|
|
#######################################################
|
|
- compact_parser = subcommands.add_parser('compact-db', help='Compact the database and the replication changelog')
|
|
+ compact_parser = subcommands.add_parser('compact-db', help='Compact the database and the replication changelog', formatter_class=CustomHelpFormatter)
|
|
compact_parser.set_defaults(func=backend_compact)
|
|
compact_parser.add_argument('--only-changelog', action='store_true', help='Compacts only the replication change log')
|
|
compact_parser.add_argument('--timeout', default=0, type=int,
|
|
diff --git a/src/lib389/lib389/cli_conf/backup.py b/src/lib389/lib389/cli_conf/backup.py
|
|
index 32f5db2f1..2996c0bd2 100644
|
|
--- a/src/lib389/lib389/cli_conf/backup.py
|
|
+++ b/src/lib389/lib389/cli_conf/backup.py
|
|
@@ -6,6 +6,7 @@
|
|
# See LICENSE for details.
|
|
# --- END COPYRIGHT BLOCK ---
|
|
|
|
+from lib389.cli_base import CustomHelpFormatter
|
|
|
|
def backup_create(inst, basedn, log, args):
|
|
log = log.getChild('backup_create')
|
|
@@ -41,11 +42,11 @@ def backup_restore(inst, basedn, log, args):
|
|
|
|
|
|
def create_parser(subparsers):
|
|
- backup_parser = subparsers.add_parser('backup', help="Manage online backups")
|
|
+ backup_parser = subparsers.add_parser('backup', help="Manage online backups", formatter_class=CustomHelpFormatter)
|
|
|
|
subcommands = backup_parser.add_subparsers(help="action")
|
|
|
|
- create_backup_parser = subcommands.add_parser('create', help="Creates a backup of the database")
|
|
+ create_backup_parser = subcommands.add_parser('create', help="Creates a backup of the database", formatter_class=CustomHelpFormatter)
|
|
create_backup_parser.set_defaults(func=backup_create)
|
|
create_backup_parser.add_argument('archive', nargs='?', default=None,
|
|
help="Sets the directory where to store the backup files. "
|
|
@@ -56,7 +57,7 @@ def create_parser(subparsers):
|
|
create_backup_parser.add_argument('--timeout', type=int, default=120,
|
|
help="Sets the task timeout. Default is 120 seconds,")
|
|
|
|
- restore_parser = subcommands.add_parser('restore', help="Restores a database from a backup")
|
|
+ restore_parser = subcommands.add_parser('restore', help="Restores a database from a backup", formatter_class=CustomHelpFormatter)
|
|
restore_parser.set_defaults(func=backup_restore)
|
|
restore_parser.add_argument('archive', help="Set the directory that contains the backup files")
|
|
restore_parser.add_argument('-t', '--db-type', default="ldbm database",
|
|
diff --git a/src/lib389/lib389/cli_conf/chaining.py b/src/lib389/lib389/cli_conf/chaining.py
|
|
index f76e7f991..d0f691a50 100644
|
|
--- a/src/lib389/lib389/cli_conf/chaining.py
|
|
+++ b/src/lib389/lib389/cli_conf/chaining.py
|
|
@@ -13,6 +13,7 @@ from lib389.cli_base import (
|
|
_generic_list,
|
|
_generic_get,
|
|
_get_arg,
|
|
+ CustomHelpFormatter
|
|
)
|
|
from lib389.cli_conf.monitor import _format_status
|
|
from lib389.utils import get_passwd_from_file
|
|
@@ -220,25 +221,25 @@ def list_links(inst, basedn, log, args):
|
|
|
|
|
|
def create_parser(subparsers):
|
|
- chaining_parser = subparsers.add_parser('chaining', help="Manage database chaining and database links")
|
|
+ chaining_parser = subparsers.add_parser('chaining', help="Manage database chaining and database links", formatter_class=CustomHelpFormatter)
|
|
subcommands = chaining_parser.add_subparsers(help="action")
|
|
|
|
- config_get_parser = subcommands.add_parser('config-get', help='Display the chaining controls and server component lists')
|
|
+ config_get_parser = subcommands.add_parser('config-get', help='Display the chaining controls and server component lists', formatter_class=CustomHelpFormatter)
|
|
config_get_parser.set_defaults(func=config_get)
|
|
config_get_parser.add_argument('--avail-controls', action='store_true', help="Lists available chaining controls")
|
|
config_get_parser.add_argument('--avail-comps', action='store_true', help="Lists available chaining plugin components")
|
|
|
|
- config_set_parser = subcommands.add_parser('config-set', help='Set the chaining controls and server component lists')
|
|
+ config_set_parser = subcommands.add_parser('config-set', help='Set the chaining controls and server component lists', formatter_class=CustomHelpFormatter)
|
|
config_set_parser.set_defaults(func=config_set)
|
|
config_set_parser.add_argument('--add-control', action='append', help="Adds a transmitted control OID")
|
|
config_set_parser.add_argument('--del-control', action='append', help="Deletes a transmitted control OID")
|
|
config_set_parser.add_argument('--add-comp', action='append', help="Adds a chaining component")
|
|
config_set_parser.add_argument('--del-comp', action='append', help="Deletes a chaining component")
|
|
|
|
- def_config_get_parser = subcommands.add_parser('config-get-def', help='Display the default creation parameters for new database links')
|
|
+ def_config_get_parser = subcommands.add_parser('config-get-def', help='Display the default creation parameters for new database links', formatter_class=CustomHelpFormatter)
|
|
def_config_get_parser.set_defaults(func=def_config_get)
|
|
|
|
- def_config_set_parser = subcommands.add_parser('config-set-def', help='Set the default creation parameters for new database links')
|
|
+ def_config_set_parser = subcommands.add_parser('config-set-def', help='Set the default creation parameters for new database links', formatter_class=CustomHelpFormatter)
|
|
def_config_set_parser.set_defaults(func=def_config_set)
|
|
def_config_set_parser.add_argument('--conn-bind-limit',
|
|
help="Sets the maximum number of BIND connections the database link establishes "
|
|
@@ -293,7 +294,7 @@ def create_parser(subparsers):
|
|
create_link_parser.add_argument('--bind-pw-file', help="File containing the password")
|
|
create_link_parser.add_argument('--bind-pw-prompt', action='store_true', help="Prompt for password")
|
|
|
|
- get_link_parser = subcommands.add_parser('link-get', help='Displays chaining database links')
|
|
+ get_link_parser = subcommands.add_parser('link-get', help='Displays chaining database links', formatter_class=CustomHelpFormatter)
|
|
get_link_parser.set_defaults(func=get_link)
|
|
get_link_parser.add_argument('CHAIN_NAME', nargs=1, help='The chaining link name or suffix to retrieve')
|
|
|
|
@@ -312,13 +313,13 @@ def create_parser(subparsers):
|
|
edit_link_parser.add_argument('--bind-pw-file', help="File containing the password")
|
|
edit_link_parser.add_argument('--bind-pw-prompt', action='store_true', help="Prompt for password")
|
|
|
|
- delete_link_parser = subcommands.add_parser('link-delete', help='Delete a database link')
|
|
+ delete_link_parser = subcommands.add_parser('link-delete', help='Delete a database link', formatter_class=CustomHelpFormatter)
|
|
delete_link_parser.set_defaults(func=delete_link)
|
|
delete_link_parser.add_argument('CHAIN_NAME', nargs=1, help='The name of the database link')
|
|
|
|
- monitor_link_parser = subcommands.add_parser('monitor', help='Display monitor information for a database chaining link')
|
|
+ monitor_link_parser = subcommands.add_parser('monitor', help='Display monitor information for a database chaining link', formatter_class=CustomHelpFormatter)
|
|
monitor_link_parser.set_defaults(func=monitor_link)
|
|
monitor_link_parser.add_argument('CHAIN_NAME', nargs=1, help='The name of the database link')
|
|
|
|
- list_link_parser = subcommands.add_parser('link-list', help='List database links')
|
|
+ list_link_parser = subcommands.add_parser('link-list', help='List database links', formatter_class=CustomHelpFormatter)
|
|
list_link_parser.set_defaults(func=list_links)
|
|
diff --git a/src/lib389/lib389/cli_conf/config.py b/src/lib389/lib389/cli_conf/config.py
|
|
index 6fbf54ed3..0af479ae3 100644
|
|
--- a/src/lib389/lib389/cli_conf/config.py
|
|
+++ b/src/lib389/lib389/cli_conf/config.py
|
|
@@ -13,6 +13,7 @@ from lib389.cli_base import (
|
|
_generic_get_entry,
|
|
_generic_get_attr,
|
|
_generic_replace_attr,
|
|
+ CustomHelpFormatter
|
|
)
|
|
|
|
OpType = Enum("OpType", "add delete")
|
|
@@ -118,22 +119,22 @@ def config_del_attr(inst, basedn, log, args):
|
|
|
|
|
|
def create_parser(subparsers):
|
|
- config_parser = subparsers.add_parser('config', help="Manage the server configuration")
|
|
+ config_parser = subparsers.add_parser('config', help="Manage the server configuration", formatter_class=CustomHelpFormatter)
|
|
|
|
subcommands = config_parser.add_subparsers(help="action")
|
|
|
|
- get_parser = subcommands.add_parser('get', help='get')
|
|
+ get_parser = subcommands.add_parser('get', help='get', formatter_class=CustomHelpFormatter)
|
|
get_parser.set_defaults(func=config_get)
|
|
get_parser.add_argument('attrs', nargs='*', help='Configuration attribute(s) to get')
|
|
|
|
- add_attr_parser = subcommands.add_parser('add', help='Add attribute value to configuration')
|
|
+ add_attr_parser = subcommands.add_parser('add', help='Add attribute value to configuration', formatter_class=CustomHelpFormatter)
|
|
add_attr_parser.set_defaults(func=config_add_attr)
|
|
add_attr_parser.add_argument('attr', nargs='*', help='Configuration attribute to add')
|
|
|
|
- replace_attr_parser = subcommands.add_parser('replace', help='Replace attribute value in configuration')
|
|
+ replace_attr_parser = subcommands.add_parser('replace', help='Replace attribute value in configuration', formatter_class=CustomHelpFormatter)
|
|
replace_attr_parser.set_defaults(func=config_replace_attr)
|
|
replace_attr_parser.add_argument('attr', nargs='*', help='Configuration attribute to replace')
|
|
|
|
- del_attr_parser = subcommands.add_parser('delete', help='Delete attribute value in configuration')
|
|
+ del_attr_parser = subcommands.add_parser('delete', help='Delete attribute value in configuration', formatter_class=CustomHelpFormatter)
|
|
del_attr_parser.set_defaults(func=config_del_attr)
|
|
del_attr_parser.add_argument('attr', nargs='*', help='Configuration attribute to delete')
|
|
diff --git a/src/lib389/lib389/cli_conf/conflicts.py b/src/lib389/lib389/cli_conf/conflicts.py
|
|
index c6758fb70..5d2ef7227 100644
|
|
--- a/src/lib389/lib389/cli_conf/conflicts.py
|
|
+++ b/src/lib389/lib389/cli_conf/conflicts.py
|
|
@@ -8,6 +8,7 @@
|
|
|
|
import json
|
|
from lib389.conflicts import (ConflictEntries, ConflictEntry, GlueEntries, GlueEntry)
|
|
+from lib389.cli_base import CustomHelpFormatter
|
|
|
|
conflict_attrs = ['nsds5replconflict', '*']
|
|
|
|
@@ -84,23 +85,23 @@ def convert_glue(inst, basedn, log, args):
|
|
|
|
|
|
def create_parser(subparsers):
|
|
- conflict_parser = subparsers.add_parser('repl-conflict', help="Manage replication conflicts")
|
|
+ conflict_parser = subparsers.add_parser('repl-conflict', help="Manage replication conflicts", formatter_class=CustomHelpFormatter)
|
|
subcommands = conflict_parser.add_subparsers(help='action')
|
|
|
|
# coinflict entry arguments
|
|
- list_parser = subcommands.add_parser('list', help="List conflict entries")
|
|
+ list_parser = subcommands.add_parser('list', help="List conflict entries", formatter_class=CustomHelpFormatter)
|
|
list_parser.add_argument('suffix', help='Sets the backend name, or suffix, to look for conflict entries')
|
|
list_parser.set_defaults(func=list_conflicts)
|
|
|
|
- cmp_parser = subcommands.add_parser('compare', help="Compare the conflict entry with its valid counterpart")
|
|
+ cmp_parser = subcommands.add_parser('compare', help="Compare the conflict entry with its valid counterpart", formatter_class=CustomHelpFormatter)
|
|
cmp_parser.add_argument('DN', help='The DN of the conflict entry')
|
|
cmp_parser.set_defaults(func=cmp_conflict)
|
|
|
|
- del_parser = subcommands.add_parser('delete', help="Delete a conflict entry")
|
|
+ del_parser = subcommands.add_parser('delete', help="Delete a conflict entry", formatter_class=CustomHelpFormatter)
|
|
del_parser.add_argument('DN', help='The DN of the conflict entry')
|
|
del_parser.set_defaults(func=del_conflict)
|
|
|
|
- replace_parser = subcommands.add_parser('swap', help="Replace the valid entry with the conflict entry")
|
|
+ replace_parser = subcommands.add_parser('swap', help="Replace the valid entry with the conflict entry", formatter_class=CustomHelpFormatter)
|
|
replace_parser.add_argument('DN', help='The DN of the conflict entry')
|
|
replace_parser.set_defaults(func=swap_conflict)
|
|
|
|
@@ -114,14 +115,14 @@ def create_parser(subparsers):
|
|
replace_parser.set_defaults(func=convert_conflict)
|
|
|
|
# Glue entry arguments
|
|
- list_glue_parser = subcommands.add_parser('list-glue', help="List replication glue entries")
|
|
+ list_glue_parser = subcommands.add_parser('list-glue', help="List replication glue entries", formatter_class=CustomHelpFormatter)
|
|
list_glue_parser.add_argument('suffix', help='The backend name, or suffix, to look for glue entries')
|
|
list_glue_parser.set_defaults(func=list_glue)
|
|
|
|
- del_glue_parser = subcommands.add_parser('delete-glue', help="Delete the glue entry and its child entries")
|
|
+ del_glue_parser = subcommands.add_parser('delete-glue', help="Delete the glue entry and its child entries", formatter_class=CustomHelpFormatter)
|
|
del_glue_parser.add_argument('DN', help='The DN of the glue entry')
|
|
del_glue_parser.set_defaults(func=del_glue)
|
|
|
|
- convert_glue_parser = subcommands.add_parser('convert-glue', help="Convert the glue entry into a regular entry")
|
|
+ convert_glue_parser = subcommands.add_parser('convert-glue', help="Convert the glue entry into a regular entry", formatter_class=CustomHelpFormatter)
|
|
convert_glue_parser.add_argument('DN', help='The DN of the glue entry')
|
|
convert_glue_parser.set_defaults(func=convert_glue)
|
|
diff --git a/src/lib389/lib389/cli_conf/directory_manager.py b/src/lib389/lib389/cli_conf/directory_manager.py
|
|
index 0886d506d..b7d4ada03 100644
|
|
--- a/src/lib389/lib389/cli_conf/directory_manager.py
|
|
+++ b/src/lib389/lib389/cli_conf/directory_manager.py
|
|
@@ -7,7 +7,7 @@
|
|
# --- END COPYRIGHT BLOCK ---
|
|
|
|
from lib389.idm.directorymanager import DirectoryManager
|
|
-from lib389.cli_base import _get_arg
|
|
+from lib389.cli_base import _get_arg, CustomHelpFormatter
|
|
|
|
|
|
def password_change(inst, basedn, log, args):
|
|
@@ -19,11 +19,11 @@ def password_change(inst, basedn, log, args):
|
|
|
|
|
|
def create_parsers(subparsers):
|
|
- directory_manager_parser = subparsers.add_parser('directory_manager', help="Manage the Directory Manager account")
|
|
+ directory_manager_parser = subparsers.add_parser('directory_manager', help="Manage the Directory Manager account", formatter_class=CustomHelpFormatter)
|
|
|
|
subcommands = directory_manager_parser.add_subparsers(help='action')
|
|
|
|
- password_change_parser = subcommands.add_parser('password_change', help="Changes the password of the Directory Manager account")
|
|
+ password_change_parser = subcommands.add_parser('password_change', help="Changes the password of the Directory Manager account", formatter_class=CustomHelpFormatter)
|
|
password_change_parser.set_defaults(func=password_change)
|
|
# This is to put in a dummy attr that args can work with. We do this
|
|
# because the actual test case will over-ride it, but it prevents
|
|
diff --git a/src/lib389/lib389/cli_conf/monitor.py b/src/lib389/lib389/cli_conf/monitor.py
|
|
index a56ad2fee..d69e2f06b 100644
|
|
--- a/src/lib389/lib389/cli_conf/monitor.py
|
|
+++ b/src/lib389/lib389/cli_conf/monitor.py
|
|
@@ -14,7 +14,7 @@ from lib389.monitor import (Monitor, MonitorLDBM, MonitorSNMP, MonitorDiskSpace)
|
|
from lib389.chaining import (ChainingLinks)
|
|
from lib389.backend import Backends
|
|
from lib389.utils import convert_bytes
|
|
-from lib389.cli_base import _format_status
|
|
+from lib389.cli_base import _format_status, CustomHelpFormatter
|
|
|
|
|
|
def monitor(inst, basedn, log, args):
|
|
@@ -297,30 +297,30 @@ def db_monitor(inst, basedn, log, args):
|
|
|
|
|
|
def create_parser(subparsers):
|
|
- monitor_parser = subparsers.add_parser('monitor', help="Monitor the state of the instance")
|
|
+ monitor_parser = subparsers.add_parser('monitor', help="Monitor the state of the instance", formatter_class=CustomHelpFormatter)
|
|
subcommands = monitor_parser.add_subparsers(help='action')
|
|
|
|
- server_parser = subcommands.add_parser('server', help="Displays the server statistics, connections, and operations")
|
|
+ server_parser = subcommands.add_parser('server', help="Displays the server statistics, connections, and operations", formatter_class=CustomHelpFormatter)
|
|
server_parser.set_defaults(func=monitor)
|
|
|
|
- dbmon_parser = subcommands.add_parser('dbmon', help="Monitor all database statistics in a single report")
|
|
+ dbmon_parser = subcommands.add_parser('dbmon', help="Monitor all database statistics in a single report", formatter_class=CustomHelpFormatter)
|
|
dbmon_parser.set_defaults(func=db_monitor)
|
|
dbmon_parser.add_argument('-b', '--backends', help="Specifies a list of space-separated backends to monitor. Default is all backends.")
|
|
dbmon_parser.add_argument('-x', '--indexes', action='store_true', default=False, help="Shows index stats for each backend")
|
|
|
|
- ldbm_parser = subcommands.add_parser('ldbm', help="Monitor the LDBM statistics, such as dbcache")
|
|
+ ldbm_parser = subcommands.add_parser('ldbm', help="Monitor the LDBM statistics, such as dbcache", formatter_class=CustomHelpFormatter)
|
|
ldbm_parser.set_defaults(func=ldbm_monitor)
|
|
|
|
- backend_parser = subcommands.add_parser('backend', help="Monitor the behavior of a backend database")
|
|
+ backend_parser = subcommands.add_parser('backend', help="Monitor the behavior of a backend database", formatter_class=CustomHelpFormatter)
|
|
backend_parser.add_argument('backend', nargs='?', help="The optional name of the backend to monitor")
|
|
backend_parser.set_defaults(func=backend_monitor)
|
|
|
|
- snmp_parser = subcommands.add_parser('snmp', help="Displays the SNMP statistics")
|
|
+ snmp_parser = subcommands.add_parser('snmp', help="Displays the SNMP statistics", formatter_class=CustomHelpFormatter)
|
|
snmp_parser.set_defaults(func=snmp_monitor)
|
|
|
|
- chaining_parser = subcommands.add_parser('chaining', help="Monitor database chaining statistics")
|
|
+ chaining_parser = subcommands.add_parser('chaining', help="Monitor database chaining statistics", formatter_class=CustomHelpFormatter)
|
|
chaining_parser.add_argument('backend', nargs='?', help="The optional name of the chaining backend to monitor")
|
|
chaining_parser.set_defaults(func=chaining_monitor)
|
|
|
|
- disk_parser = subcommands.add_parser('disk', help="Displays the disk space statistics. All values are in bytes.")
|
|
+ disk_parser = subcommands.add_parser('disk', help="Displays the disk space statistics. All values are in bytes.", formatter_class=CustomHelpFormatter)
|
|
disk_parser.set_defaults(func=disk_monitor)
|
|
diff --git a/src/lib389/lib389/cli_conf/plugin.py b/src/lib389/lib389/cli_conf/plugin.py
|
|
index 465a35f2d..c49d85255 100644
|
|
--- a/src/lib389/lib389/cli_conf/plugin.py
|
|
+++ b/src/lib389/lib389/cli_conf/plugin.py
|
|
@@ -12,6 +12,7 @@ from lib389.utils import ensure_dict_str
|
|
from lib389.cli_base import (
|
|
_generic_get,
|
|
_get_arg,
|
|
+ CustomHelpFormatter
|
|
)
|
|
from lib389.cli_conf import generic_object_edit
|
|
from lib389.cli_conf.plugins import memberof as cli_memberof
|
|
@@ -98,7 +99,7 @@ def plugin_edit(inst, basedn, log, args):
|
|
|
|
|
|
def create_parser(subparsers):
|
|
- plugin_parser = subparsers.add_parser('plugin', help="Manage plug-ins available on the server")
|
|
+ plugin_parser = subparsers.add_parser('plugin', help="Manage plug-ins available on the server", formatter_class=CustomHelpFormatter)
|
|
|
|
subcommands = plugin_parser.add_subparsers(help="Plugins")
|
|
|
|
@@ -118,14 +119,14 @@ def create_parser(subparsers):
|
|
cli_posix_winsync.create_parser(subcommands)
|
|
cli_entryuuid.create_parser(subcommands)
|
|
|
|
- list_parser = subcommands.add_parser('list', help="List current configured (enabled and disabled) plugins")
|
|
+ list_parser = subcommands.add_parser('list', help="List current configured (enabled and disabled) plugins", formatter_class=CustomHelpFormatter)
|
|
list_parser.set_defaults(func=plugin_list)
|
|
|
|
- get_parser = subcommands.add_parser('show', help='Show the plugin data')
|
|
+ get_parser = subcommands.add_parser('show', help='Show the plugin data', formatter_class=CustomHelpFormatter)
|
|
get_parser.set_defaults(func=plugin_get)
|
|
get_parser.add_argument('selector', nargs='?', help='The plugin to search for')
|
|
|
|
- edit_parser = subcommands.add_parser('set', help='Edit the plugin settings')
|
|
+ edit_parser = subcommands.add_parser('set', help='Edit the plugin settings', formatter_class=CustomHelpFormatter)
|
|
edit_parser.set_defaults(func=plugin_edit)
|
|
edit_parser.add_argument('selector', nargs='?', help='The plugin to edit')
|
|
edit_parser.add_argument('--type', help='The type of plugin.')
|
|
diff --git a/src/lib389/lib389/cli_conf/plugins/accountpolicy.py b/src/lib389/lib389/cli_conf/plugins/accountpolicy.py
|
|
index 531173c18..b6a878ef5 100644
|
|
--- a/src/lib389/lib389/cli_conf/plugins/accountpolicy.py
|
|
+++ b/src/lib389/lib389/cli_conf/plugins/accountpolicy.py
|
|
@@ -9,6 +9,7 @@
|
|
import ldap
|
|
from lib389.plugins import AccountPolicyPlugin, AccountPolicyConfig
|
|
from lib389.cli_conf import add_generic_plugin_parsers, generic_object_edit, generic_object_add
|
|
+from lib389.cli_base import CustomHelpFormatter
|
|
|
|
arg_to_attr = {
|
|
'config_entry': 'nsslapd_pluginconfigarea'
|
|
@@ -101,31 +102,31 @@ def _add_parser_args(parser):
|
|
|
|
|
|
def create_parser(subparsers):
|
|
- accountpolicy = subparsers.add_parser('account-policy', help='Manage and configure Account Policy plugin')
|
|
+ accountpolicy = subparsers.add_parser('account-policy', help='Manage and configure Account Policy plugin', formatter_class=CustomHelpFormatter)
|
|
subcommands = accountpolicy.add_subparsers(help='action')
|
|
add_generic_plugin_parsers(subcommands, AccountPolicyPlugin)
|
|
|
|
- edit = subcommands.add_parser('set', help='Edit the plugin settings')
|
|
+ edit = subcommands.add_parser('set', help='Edit the plugin settings', formatter_class=CustomHelpFormatter)
|
|
edit.set_defaults(func=accountpolicy_edit)
|
|
edit.add_argument('--config-entry', help='Sets the nsslapd-pluginConfigArea attribute')
|
|
|
|
- config = subcommands.add_parser('config-entry', help='Manage the config entry')
|
|
+ config = subcommands.add_parser('config-entry', help='Manage the config entry', formatter_class=CustomHelpFormatter)
|
|
config_subcommands = config.add_subparsers(help='action')
|
|
|
|
- add_config = config_subcommands.add_parser('add', help='Add the config entry')
|
|
+ add_config = config_subcommands.add_parser('add', help='Add the config entry', formatter_class=CustomHelpFormatter)
|
|
add_config.set_defaults(func=accountpolicy_add_config)
|
|
add_config.add_argument('DN', help='The full DN of the config entry')
|
|
_add_parser_args(add_config)
|
|
|
|
- edit_config = config_subcommands.add_parser('set', help='Edit the config entry')
|
|
+ edit_config = config_subcommands.add_parser('set', help='Edit the config entry', formatter_class=CustomHelpFormatter)
|
|
edit_config.set_defaults(func=accountpolicy_edit_config)
|
|
edit_config.add_argument('DN', help='The full DN of the config entry')
|
|
_add_parser_args(edit_config)
|
|
|
|
- show_config_parser = config_subcommands.add_parser('show', help='Display the config entry')
|
|
+ show_config_parser = config_subcommands.add_parser('show', help='Display the config entry', formatter_class=CustomHelpFormatter)
|
|
show_config_parser.set_defaults(func=accountpolicy_show_config)
|
|
show_config_parser.add_argument('DN', help='The full DN of the config entry')
|
|
|
|
- del_config_parser = config_subcommands.add_parser('delete', help='Delete the config entry')
|
|
+ del_config_parser = config_subcommands.add_parser('delete', help='Delete the config entry', formatter_class=CustomHelpFormatter)
|
|
del_config_parser.set_defaults(func=accountpolicy_del_config)
|
|
del_config_parser.add_argument('DN', help='The full DN of the config entry')
|
|
diff --git a/src/lib389/lib389/cli_conf/plugins/attruniq.py b/src/lib389/lib389/cli_conf/plugins/attruniq.py
|
|
index f9bacab78..0c398b944 100644
|
|
--- a/src/lib389/lib389/cli_conf/plugins/attruniq.py
|
|
+++ b/src/lib389/lib389/cli_conf/plugins/attruniq.py
|
|
@@ -10,6 +10,7 @@ import json
|
|
import ldap
|
|
from lib389.plugins import AttributeUniquenessPlugin, AttributeUniquenessPlugins
|
|
from lib389.cli_conf import (generic_object_edit, generic_object_add)
|
|
+from lib389.cli_base import CustomHelpFormatter
|
|
|
|
arg_to_attr = {
|
|
'enabled': 'nsslapd-pluginenabled',
|
|
@@ -136,37 +137,37 @@ def _add_parser_args(parser):
|
|
|
|
|
|
def create_parser(subparsers):
|
|
- attruniq = subparsers.add_parser('attr-uniq', help='Manage and configure Attribute Uniqueness plugin')
|
|
+ attruniq = subparsers.add_parser('attr-uniq', help='Manage and configure Attribute Uniqueness plugin', formatter_class=CustomHelpFormatter)
|
|
subcommands = attruniq.add_subparsers(help='action')
|
|
# We can't use the add_generic_plugin_parsers as we need named sub instances.
|
|
|
|
- list = subcommands.add_parser('list', help='Lists available plugin configs')
|
|
+ list = subcommands.add_parser('list', help='Lists available plugin configs', formatter_class=CustomHelpFormatter)
|
|
list.set_defaults(func=attruniq_list)
|
|
|
|
- add = subcommands.add_parser('add', help='Add the config entry')
|
|
+ add = subcommands.add_parser('add', help='Add the config entry', formatter_class=CustomHelpFormatter)
|
|
add.set_defaults(func=attruniq_add)
|
|
_add_parser_args(add)
|
|
|
|
- edit = subcommands.add_parser('set', help='Edit the config entry')
|
|
+ edit = subcommands.add_parser('set', help='Edit the config entry', formatter_class=CustomHelpFormatter)
|
|
edit.set_defaults(func=attruniq_edit)
|
|
_add_parser_args(edit)
|
|
|
|
- show = subcommands.add_parser('show', help='Display the config entry')
|
|
+ show = subcommands.add_parser('show', help='Display the config entry', formatter_class=CustomHelpFormatter)
|
|
show.add_argument('NAME', help='The name of the plug-in configuration record')
|
|
show.set_defaults(func=attruniq_show)
|
|
|
|
- delete = subcommands.add_parser('delete', help='Delete the config entry')
|
|
+ delete = subcommands.add_parser('delete', help='Delete the config entry', formatter_class=CustomHelpFormatter)
|
|
delete.add_argument('NAME', help='The name of the plug-in configuration record')
|
|
delete.set_defaults(func=attruniq_del)
|
|
|
|
- enable = subcommands.add_parser('enable', help='enable plugin')
|
|
+ enable = subcommands.add_parser('enable', help='enable plugin', formatter_class=CustomHelpFormatter)
|
|
enable.add_argument('NAME', help='The name of the plug-in configuration record')
|
|
enable.set_defaults(func=attruniq_enable)
|
|
|
|
- disable = subcommands.add_parser('disable', help='disable plugin')
|
|
+ disable = subcommands.add_parser('disable', help='disable plugin', formatter_class=CustomHelpFormatter)
|
|
disable.add_argument('NAME', help='The name of the plug-in configuration record')
|
|
disable.set_defaults(func=attruniq_disable)
|
|
|
|
- status = subcommands.add_parser('status', help='display plugin status')
|
|
+ status = subcommands.add_parser('status', help='display plugin status', formatter_class=CustomHelpFormatter)
|
|
status.add_argument('NAME', help='The name of the plug-in configuration record')
|
|
status.set_defaults(func=attruniq_status)
|
|
diff --git a/src/lib389/lib389/cli_conf/plugins/automember.py b/src/lib389/lib389/cli_conf/plugins/automember.py
|
|
index 568586ad8..febabad3d 100644
|
|
--- a/src/lib389/lib389/cli_conf/plugins/automember.py
|
|
+++ b/src/lib389/lib389/cli_conf/plugins/automember.py
|
|
@@ -11,6 +11,7 @@ import json
|
|
from lib389.plugins import (AutoMembershipPlugin, AutoMembershipDefinition, AutoMembershipDefinitions,
|
|
AutoMembershipRegexRule, AutoMembershipRegexRules, AutoMembershipFixupTasks)
|
|
from lib389.cli_conf import add_generic_plugin_parsers, generic_object_edit, generic_object_add
|
|
+from lib389.cli_base import CustomHelpFormatter
|
|
from lib389.utils import get_task_status
|
|
|
|
arg_to_attr_definition = {
|
|
@@ -221,49 +222,49 @@ def _add_parser_args_regex(parser):
|
|
|
|
|
|
def create_parser(subparsers):
|
|
- automember = subparsers.add_parser('automember', help="Manage and configure Automembership plugin")
|
|
+ automember = subparsers.add_parser('automember', help="Manage and configure Automembership plugin", formatter_class=CustomHelpFormatter)
|
|
subcommands = automember.add_subparsers(help='action')
|
|
add_generic_plugin_parsers(subcommands, AutoMembershipPlugin)
|
|
|
|
- automember_list = subcommands.add_parser('list', help='List Automembership definitions or regex rules.')
|
|
+ automember_list = subcommands.add_parser('list', help='List Automembership definitions or regex rules.', formatter_class=CustomHelpFormatter)
|
|
subcommands_list = automember_list.add_subparsers(help='action')
|
|
- list_definitions = subcommands_list.add_parser('definitions', help='Lists Automembership definitions.')
|
|
+ list_definitions = subcommands_list.add_parser('definitions', help='Lists Automembership definitions.', formatter_class=CustomHelpFormatter)
|
|
list_definitions.set_defaults(func=definition_list)
|
|
- list_regexes = subcommands_list.add_parser('regexes', help='List Automembership regex rules.')
|
|
+ list_regexes = subcommands_list.add_parser('regexes', help='List Automembership regex rules.', formatter_class=CustomHelpFormatter)
|
|
list_regexes.add_argument('DEFNAME', help='The definition entry CN')
|
|
list_regexes.set_defaults(func=regex_list)
|
|
|
|
- definition = subcommands.add_parser('definition', help='Manage Automembership definition.')
|
|
+ definition = subcommands.add_parser('definition', help='Manage Automembership definition.', formatter_class=CustomHelpFormatter)
|
|
definition.add_argument('DEFNAME', help='The definition entry CN.')
|
|
subcommands_definition = definition.add_subparsers(help='action')
|
|
|
|
- add_def = subcommands_definition.add_parser('add', help='Creates Automembership definition.')
|
|
+ add_def = subcommands_definition.add_parser('add', help='Creates Automembership definition.', formatter_class=CustomHelpFormatter)
|
|
add_def.set_defaults(func=definition_add)
|
|
_add_parser_args_definition(add_def)
|
|
- edit_def = subcommands_definition.add_parser('set', help='Edits Automembership definition.')
|
|
+ edit_def = subcommands_definition.add_parser('set', help='Edits Automembership definition.', formatter_class=CustomHelpFormatter)
|
|
edit_def.set_defaults(func=definition_edit)
|
|
_add_parser_args_definition(edit_def)
|
|
- delete_def = subcommands_definition.add_parser('delete', help='Removes Automembership definition.')
|
|
+ delete_def = subcommands_definition.add_parser('delete', help='Removes Automembership definition.', formatter_class=CustomHelpFormatter)
|
|
delete_def.set_defaults(func=definition_del)
|
|
- show_def = subcommands_definition.add_parser('show', help='Displays Automembership definition.')
|
|
+ show_def = subcommands_definition.add_parser('show', help='Displays Automembership definition.', formatter_class=CustomHelpFormatter)
|
|
show_def.set_defaults(func=definition_show)
|
|
|
|
- regex = subcommands_definition.add_parser('regex', help='Manage Automembership regex rules.')
|
|
+ regex = subcommands_definition.add_parser('regex', help='Manage Automembership regex rules.', formatter_class=CustomHelpFormatter)
|
|
regex.add_argument('REGEXNAME', help='The regex entry CN')
|
|
subcommands_regex = regex.add_subparsers(help='action')
|
|
|
|
- add_regex = subcommands_regex.add_parser('add', help='Creates Automembership regex.')
|
|
+ add_regex = subcommands_regex.add_parser('add', help='Creates Automembership regex.', formatter_class=CustomHelpFormatter)
|
|
add_regex.set_defaults(func=regex_add)
|
|
_add_parser_args_regex(add_regex)
|
|
- edit_regex = subcommands_regex.add_parser('set', help='Edits Automembership regex.')
|
|
+ edit_regex = subcommands_regex.add_parser('set', help='Edits Automembership regex.', formatter_class=CustomHelpFormatter)
|
|
edit_regex.set_defaults(func=regex_edit)
|
|
_add_parser_args_regex(edit_regex)
|
|
- delete_regex = subcommands_regex.add_parser('delete', help='Removes Automembership regex.')
|
|
+ delete_regex = subcommands_regex.add_parser('delete', help='Removes Automembership regex.', formatter_class=CustomHelpFormatter)
|
|
delete_regex.set_defaults(func=regex_del)
|
|
- show_regex = subcommands_regex.add_parser('show', help='Displays Automembership regex.')
|
|
+ show_regex = subcommands_regex.add_parser('show', help='Displays Automembership regex.', formatter_class=CustomHelpFormatter)
|
|
show_regex.set_defaults(func=regex_show)
|
|
|
|
- fixup_task = subcommands.add_parser('fixup', help='Run a rebuild membership task.')
|
|
+ fixup_task = subcommands.add_parser('fixup', help='Run a rebuild membership task.', formatter_class=CustomHelpFormatter)
|
|
fixup_task.set_defaults(func=fixup)
|
|
fixup_task.add_argument('DN', help="Base DN that contains entries to fix up")
|
|
fixup_task.add_argument('-f', '--filter', required=True, help='Sets the LDAP filter for entries to fix up')
|
|
@@ -276,14 +277,14 @@ def create_parser(subparsers):
|
|
fixup_task.add_argument('--timeout', default=0, type=int,
|
|
help="Set a timeout to wait for the fixup task. Default is 0 (no timeout)")
|
|
|
|
- fixup_status = subcommands.add_parser('fixup-status', help='Check the status of a fix-up task')
|
|
+ fixup_status = subcommands.add_parser('fixup-status', help='Check the status of a fix-up task', formatter_class=CustomHelpFormatter)
|
|
fixup_status.set_defaults(func=do_fixup_status)
|
|
fixup_status.add_argument('--dn', help="The task entry's DN")
|
|
fixup_status.add_argument('--show-log', action='store_true', help="Display the task log")
|
|
fixup_status.add_argument('--watch', action='store_true',
|
|
help="Watch the task's status and wait for it to finish")
|
|
|
|
- abort_fixup = subcommands.add_parser('abort-fixup', help='Abort the rebuild membership task.')
|
|
+ abort_fixup = subcommands.add_parser('abort-fixup', help='Abort the rebuild membership task.', formatter_class=CustomHelpFormatter)
|
|
abort_fixup.set_defaults(func=abort)
|
|
abort_fixup.add_argument('--timeout', default=0, type=int,
|
|
help="Set a timeout to wait for the abort task. Default is 0 (no timeout)")
|
|
diff --git a/src/lib389/lib389/cli_conf/plugins/dna.py b/src/lib389/lib389/cli_conf/plugins/dna.py
|
|
index 20d5aa584..bc766ecac 100644
|
|
--- a/src/lib389/lib389/cli_conf/plugins/dna.py
|
|
+++ b/src/lib389/lib389/cli_conf/plugins/dna.py
|
|
@@ -10,6 +10,7 @@ import json
|
|
import ldap
|
|
from lib389.plugins import DNAPlugin, DNAPluginConfig, DNAPluginConfigs, DNAPluginSharedConfig, DNAPluginSharedConfigs
|
|
from lib389.cli_conf import add_generic_plugin_parsers, generic_object_edit, generic_object_add, _args_to_attrs
|
|
+from lib389.cli_base import CustomHelpFormatter
|
|
|
|
arg_to_attr = {
|
|
'type': 'dnaType',
|
|
@@ -201,43 +202,43 @@ def _add_parser_args(parser):
|
|
'can request a range from a new server (dnaRangeRequestTimeout)')
|
|
|
|
def create_parser(subparsers):
|
|
- dna = subparsers.add_parser('dna', help='Manage and configure DNA plugin')
|
|
+ dna = subparsers.add_parser('dna', help='Manage and configure DNA plugin', formatter_class=CustomHelpFormatter)
|
|
subcommands = dna.add_subparsers(help='action')
|
|
add_generic_plugin_parsers(subcommands, DNAPlugin)
|
|
|
|
- list = subcommands.add_parser('list', help='List available plugin configs')
|
|
+ list = subcommands.add_parser('list', help='List available plugin configs', formatter_class=CustomHelpFormatter)
|
|
subcommands_list = list.add_subparsers(help='action')
|
|
- list_configs = subcommands_list.add_parser('configs', help='List main DNA plugin config entries')
|
|
+ list_configs = subcommands_list.add_parser('configs', help='List main DNA plugin config entries', formatter_class=CustomHelpFormatter)
|
|
list_configs.set_defaults(func=dna_list)
|
|
- list_shared_configs = subcommands_list.add_parser('shared-configs', help='List DNA plugin shared config entries')
|
|
+ list_shared_configs = subcommands_list.add_parser('shared-configs', help='List DNA plugin shared config entries', formatter_class=CustomHelpFormatter)
|
|
list_shared_configs.add_argument('BASEDN', help='The search DN')
|
|
list_shared_configs.set_defaults(func=dna_config_list)
|
|
|
|
- config = subcommands.add_parser('config', help='Manage plugin configs')
|
|
+ config = subcommands.add_parser('config', help='Manage plugin configs', formatter_class=CustomHelpFormatter)
|
|
config.add_argument('NAME', help='The DNA configuration name')
|
|
config_subcommands = config.add_subparsers(help='action')
|
|
- add = config_subcommands.add_parser('add', help='Add the config entry')
|
|
+ add = config_subcommands.add_parser('add', help='Add the config entry', formatter_class=CustomHelpFormatter)
|
|
add.set_defaults(func=dna_add)
|
|
_add_parser_args(add)
|
|
- edit = config_subcommands.add_parser('set', help='Edit the config entry')
|
|
+ edit = config_subcommands.add_parser('set', help='Edit the config entry', formatter_class=CustomHelpFormatter)
|
|
edit.set_defaults(func=dna_edit)
|
|
_add_parser_args(edit)
|
|
- show = config_subcommands.add_parser('show', help='Display the config entry')
|
|
+ show = config_subcommands.add_parser('show', help='Display the config entry', formatter_class=CustomHelpFormatter)
|
|
show.set_defaults(func=dna_show)
|
|
- delete = config_subcommands.add_parser('delete', help='Delete the config entry')
|
|
+ delete = config_subcommands.add_parser('delete', help='Delete the config entry', formatter_class=CustomHelpFormatter)
|
|
delete.set_defaults(func=dna_del)
|
|
|
|
- shared_config = config_subcommands.add_parser('shared-config-entry', help='Manage the shared config entry')
|
|
+ shared_config = config_subcommands.add_parser('shared-config-entry', help='Manage the shared config entry', formatter_class=CustomHelpFormatter)
|
|
shared_config.add_argument('SHARED_CFG',
|
|
help='Use HOSTNAME:PORT for this argument to identify the host name and port of a server in a shared range, as part of the DNA range '
|
|
'configuration for that specific host in multi-supplier replication. (dnaHostname+dnaPortNum)')
|
|
shared_config_subcommands = shared_config.add_subparsers(help='action')
|
|
- edit_config = shared_config_subcommands.add_parser('set', help='Edit the shared config entry')
|
|
+ edit_config = shared_config_subcommands.add_parser('set', help='Edit the shared config entry', formatter_class=CustomHelpFormatter)
|
|
edit_config.set_defaults(func=dna_config_edit)
|
|
edit_config.add_argument('--remote-bind-method', help='Specifies the remote bind method "SIMPLE", "SSL" (for SSL client auth), "SASL/GSSAPI", or "SASL/DIGEST-MD5" (dnaRemoteBindMethod)')
|
|
edit_config.add_argument('--remote-conn-protocol', help='Specifies the remote connection protocol "LDAP", or "TLS" (dnaRemoteConnProtocol)')
|
|
|
|
- show_config_parser = shared_config_subcommands.add_parser('show', help='Display the shared config entry')
|
|
+ show_config_parser = shared_config_subcommands.add_parser('show', help='Display the shared config entry', formatter_class=CustomHelpFormatter)
|
|
show_config_parser.set_defaults(func=dna_config_show)
|
|
- del_config_parser = shared_config_subcommands.add_parser('delete', help='Delete the shared config entry')
|
|
+ del_config_parser = shared_config_subcommands.add_parser('delete', help='Delete the shared config entry', formatter_class=CustomHelpFormatter)
|
|
del_config_parser.set_defaults(func=dna_config_del)
|
|
diff --git a/src/lib389/lib389/cli_conf/plugins/entryuuid.py b/src/lib389/lib389/cli_conf/plugins/entryuuid.py
|
|
index af5ffd4e3..98506b6fc 100644
|
|
--- a/src/lib389/lib389/cli_conf/plugins/entryuuid.py
|
|
+++ b/src/lib389/lib389/cli_conf/plugins/entryuuid.py
|
|
@@ -11,6 +11,7 @@
|
|
from lib389.plugins import EntryUUIDPlugin, EntryUUIDFixupTasks
|
|
from lib389.cli_conf import add_generic_plugin_parsers
|
|
from lib389.utils import get_task_status
|
|
+from lib389.cli_base import CustomHelpFormatter
|
|
|
|
|
|
def do_fixup(inst, basedn, log, args):
|
|
@@ -41,12 +42,12 @@ def do_fixup_status(inst, basedn, log, args):
|
|
|
|
|
|
def create_parser(subparsers):
|
|
- referint = subparsers.add_parser('entryuuid', help='Manage and configure EntryUUID plugin')
|
|
+ referint = subparsers.add_parser('entryuuid', help='Manage and configure EntryUUID plugin', formatter_class=CustomHelpFormatter)
|
|
subcommands = referint.add_subparsers(help='action')
|
|
|
|
add_generic_plugin_parsers(subcommands, EntryUUIDPlugin)
|
|
|
|
- fixup = subcommands.add_parser('fixup', help='Run the fix-up task for EntryUUID plugin')
|
|
+ fixup = subcommands.add_parser('fixup', help='Run the fix-up task for EntryUUID plugin', formatter_class=CustomHelpFormatter)
|
|
fixup.set_defaults(func=do_fixup)
|
|
fixup.add_argument('DN', help="Base DN that contains entries to fix up")
|
|
fixup.add_argument('-f', '--filter',
|
|
@@ -57,7 +58,7 @@ def create_parser(subparsers):
|
|
fixup.add_argument('--timeout', type=int, default=0,
|
|
help="Sets the task timeout. Default is 0 (no timeout)")
|
|
|
|
- fixup_status = subcommands.add_parser('fixup-status', help='Check the status of a fix-up task')
|
|
+ fixup_status = subcommands.add_parser('fixup-status', help='Check the status of a fix-up task', formatter_class=CustomHelpFormatter)
|
|
fixup_status.set_defaults(func=do_fixup_status)
|
|
fixup_status.add_argument('--dn', help="The task entry's DN")
|
|
fixup_status.add_argument('--show-log', action='store_true', help="Display the task log")
|
|
diff --git a/src/lib389/lib389/cli_conf/plugins/ldappassthrough.py b/src/lib389/lib389/cli_conf/plugins/ldappassthrough.py
|
|
index 584297ed4..b540b3462 100644
|
|
--- a/src/lib389/lib389/cli_conf/plugins/ldappassthrough.py
|
|
+++ b/src/lib389/lib389/cli_conf/plugins/ldappassthrough.py
|
|
@@ -10,7 +10,7 @@
|
|
import json
|
|
import ldap
|
|
from lib389.plugins import (PassThroughAuthenticationPlugin)
|
|
-
|
|
+from lib389.cli_base import CustomHelpFormatter
|
|
from lib389.cli_conf import add_generic_plugin_parsers, generic_object_edit, generic_object_add, generic_show, generic_enable, generic_disable, generic_status
|
|
|
|
|
|
@@ -129,20 +129,20 @@ def create_parser(subparsers):
|
|
|
|
add_generic_plugin_parsers(subcommands, PassThroughAuthenticationPlugin)
|
|
|
|
- list_urls = subcommands.add_parser('list', help='Lists LDAP URLs')
|
|
+ list_urls = subcommands.add_parser('list', help='Lists LDAP URLs', formatter_class=CustomHelpFormatter)
|
|
list_urls.set_defaults(func=pta_list)
|
|
|
|
- # url = subcommands.add_parser('url', help='Manage PTA LDAP URL configurations')
|
|
+ # url = subcommands.add_parser('url', help='Manage PTA LDAP URL configurations', formatter_class=CustomHelpFormatter)
|
|
# subcommands_url = url.add_subparsers(help='action')
|
|
|
|
- add_url = subcommands.add_parser('add', help='Add an LDAP url to the config entry')
|
|
+ add_url = subcommands.add_parser('add', help='Add an LDAP url to the config entry', formatter_class=CustomHelpFormatter)
|
|
add_url.add_argument('URL',
|
|
help='The full LDAP URL in format '
|
|
'"ldap|ldaps://authDS/subtree maxconns,maxops,timeout,ldver,connlifetime,startTLS". '
|
|
'If one optional parameter is specified the rest should be specified too')
|
|
add_url.set_defaults(func=pta_add)
|
|
|
|
- edit_url = subcommands.add_parser('modify', help='Edit the LDAP pass through config entry')
|
|
+ edit_url = subcommands.add_parser('modify', help='Edit the LDAP pass through config entry', formatter_class=CustomHelpFormatter)
|
|
edit_url.add_argument('OLD_URL', help='The full LDAP URL you get from the "list" command')
|
|
edit_url.add_argument('NEW_URL',
|
|
help='Sets the full LDAP URL in format '
|
|
@@ -150,7 +150,7 @@ def create_parser(subparsers):
|
|
'If one optional parameter is specified the rest should be specified too.')
|
|
edit_url.set_defaults(func=pta_edit)
|
|
|
|
- delete_url = subcommands.add_parser('delete', help='Delete a URL from the config entry')
|
|
+ delete_url = subcommands.add_parser('delete', help='Delete a URL from the config entry', formatter_class=CustomHelpFormatter)
|
|
delete_url.add_argument('URL', help='The full LDAP URL you get from the "list" command')
|
|
delete_url.set_defaults(func=pta_del)
|
|
|
|
diff --git a/src/lib389/lib389/cli_conf/plugins/linkedattr.py b/src/lib389/lib389/cli_conf/plugins/linkedattr.py
|
|
index 3af8c3a64..3c400a582 100644
|
|
--- a/src/lib389/lib389/cli_conf/plugins/linkedattr.py
|
|
+++ b/src/lib389/lib389/cli_conf/plugins/linkedattr.py
|
|
@@ -11,6 +11,7 @@ import json
|
|
import ldap
|
|
from lib389.plugins import LinkedAttributesPlugin, LinkedAttributesConfig, LinkedAttributesConfigs, LinkedAttributesFixupTasks
|
|
from lib389.cli_conf import add_generic_plugin_parsers, generic_object_edit, generic_object_add
|
|
+from lib389.cli_base import CustomHelpFormatter
|
|
from lib389.utils import get_task_status
|
|
|
|
arg_to_attr = {
|
|
@@ -110,36 +111,36 @@ def _add_parser_args(parser):
|
|
|
|
|
|
def create_parser(subparsers):
|
|
- linkedattr_parser = subparsers.add_parser('linked-attr', help='Manage and configure Linked Attributes plugin')
|
|
+ linkedattr_parser = subparsers.add_parser('linked-attr', help='Manage and configure Linked Attributes plugin', formatter_class=CustomHelpFormatter)
|
|
subcommands = linkedattr_parser.add_subparsers(help='action')
|
|
add_generic_plugin_parsers(subcommands, LinkedAttributesPlugin)
|
|
|
|
- fixup_parser = subcommands.add_parser('fixup', help='Run the fix-up task for linked attributes plugin')
|
|
+ fixup_parser = subcommands.add_parser('fixup', help='Run the fix-up task for linked attributes plugin', formatter_class=CustomHelpFormatter)
|
|
fixup_parser.add_argument('-l', '--linkdn', help="Sets the base DN that contains entries to fix up")
|
|
fixup_parser.add_argument('--wait', action='store_true',
|
|
help="Wait for the task to finish, this could take a long time")
|
|
fixup_parser.set_defaults(func=fixup)
|
|
|
|
- fixup_status = subcommands.add_parser('fixup-status', help='Check the status of a fix-up task')
|
|
+ fixup_status = subcommands.add_parser('fixup-status', help='Check the status of a fix-up task', formatter_class=CustomHelpFormatter)
|
|
fixup_status.set_defaults(func=do_fixup_status)
|
|
fixup_status.add_argument('--dn', help="The task entry's DN")
|
|
fixup_status.add_argument('--show-log', action='store_true', help="Display the task log")
|
|
fixup_status.add_argument('--watch', action='store_true',
|
|
help="Watch the task's status and wait for it to finish")
|
|
|
|
- list = subcommands.add_parser('list', help='List available plugin configs')
|
|
+ list = subcommands.add_parser('list', help='List available plugin configs', formatter_class=CustomHelpFormatter)
|
|
list.set_defaults(func=linkedattr_list)
|
|
|
|
- config = subcommands.add_parser('config', help='Manage plugin configs')
|
|
+ config = subcommands.add_parser('config', help='Manage plugin configs', formatter_class=CustomHelpFormatter)
|
|
config.add_argument('NAME', help='The Linked Attributes configuration name')
|
|
config_subcommands = config.add_subparsers(help='action')
|
|
- add = config_subcommands.add_parser('add', help='Add the config entry')
|
|
+ add = config_subcommands.add_parser('add', help='Add the config entry', formatter_class=CustomHelpFormatter)
|
|
add.set_defaults(func=linkedattr_add)
|
|
_add_parser_args(add)
|
|
- edit = config_subcommands.add_parser('set', help='Edit the config entry')
|
|
+ edit = config_subcommands.add_parser('set', help='Edit the config entry', formatter_class=CustomHelpFormatter)
|
|
edit.set_defaults(func=linkedattr_edit)
|
|
_add_parser_args(edit)
|
|
- show = config_subcommands.add_parser('show', help='Display the config entry')
|
|
+ show = config_subcommands.add_parser('show', help='Display the config entry', formatter_class=CustomHelpFormatter)
|
|
show.set_defaults(func=linkedattr_show)
|
|
- delete = config_subcommands.add_parser('delete', help='Delete the config entry')
|
|
+ delete = config_subcommands.add_parser('delete', help='Delete the config entry', formatter_class=CustomHelpFormatter)
|
|
delete.set_defaults(func=linkedattr_del)
|
|
diff --git a/src/lib389/lib389/cli_conf/plugins/managedentries.py b/src/lib389/lib389/cli_conf/plugins/managedentries.py
|
|
index 4dd9cce53..f8d133c13 100644
|
|
--- a/src/lib389/lib389/cli_conf/plugins/managedentries.py
|
|
+++ b/src/lib389/lib389/cli_conf/plugins/managedentries.py
|
|
@@ -11,6 +11,7 @@ import json
|
|
from lib389.backend import Backends
|
|
from lib389.plugins import ManagedEntriesPlugin, MEPConfig, MEPConfigs, MEPTemplate, MEPTemplates
|
|
from lib389.cli_conf import add_generic_plugin_parsers, generic_object_edit, generic_object_add
|
|
+from lib389.cli_base import CustomHelpFormatter
|
|
|
|
arg_to_attr = {
|
|
'config_area': 'nsslapd-pluginconfigarea'
|
|
@@ -201,15 +202,15 @@ def _add_parser_args_template(parser):
|
|
|
|
|
|
def create_parser(subparsers):
|
|
- mep = subparsers.add_parser('managed-entries', help='Manage and configure Managed Entries Plugin')
|
|
+ mep = subparsers.add_parser('managed-entries', help='Manage and configure Managed Entries Plugin', formatter_class=CustomHelpFormatter)
|
|
subcommands = mep.add_subparsers(help='action')
|
|
add_generic_plugin_parsers(subcommands, ManagedEntriesPlugin)
|
|
|
|
- edit = subcommands.add_parser('set', help='Edit the plugin settings')
|
|
+ edit = subcommands.add_parser('set', help='Edit the plugin settings', formatter_class=CustomHelpFormatter)
|
|
edit.set_defaults(func=mep_edit)
|
|
edit.add_argument('--config-area', help='Sets the value of the nsslapd-pluginConfigArea attribute')
|
|
|
|
- list = subcommands.add_parser('list', help='List Managed Entries Plugin configs and templates')
|
|
+ list = subcommands.add_parser('list', help='List Managed Entries Plugin configs and templates', formatter_class=CustomHelpFormatter)
|
|
subcommands_list = list.add_subparsers(help='action')
|
|
list_configs = subcommands_list.add_parser('configs', help='List Managed Entries Plugin configs (list config-area '
|
|
'if specified in the main plugin entry)')
|
|
@@ -219,30 +220,30 @@ def create_parser(subparsers):
|
|
list_templates.add_argument('BASEDN', nargs='?', help='The base DN where to search the templates')
|
|
list_templates.set_defaults(func=mep_template_list)
|
|
|
|
- config = subcommands.add_parser('config', help='Handle Managed Entries Plugin configs')
|
|
+ config = subcommands.add_parser('config', help='Handle Managed Entries Plugin configs', formatter_class=CustomHelpFormatter)
|
|
config.add_argument('NAME', help='The config entry CN')
|
|
config_subcommands = config.add_subparsers(help='action')
|
|
- add = config_subcommands.add_parser('add', help='Add the config entry')
|
|
+ add = config_subcommands.add_parser('add', help='Add the config entry', formatter_class=CustomHelpFormatter)
|
|
add.set_defaults(func=mep_config_add)
|
|
_add_parser_args_config(add)
|
|
- edit = config_subcommands.add_parser('set', help='Edit the config entry')
|
|
+ edit = config_subcommands.add_parser('set', help='Edit the config entry', formatter_class=CustomHelpFormatter)
|
|
edit.set_defaults(func=mep_config_edit)
|
|
_add_parser_args_config(edit)
|
|
- show = config_subcommands.add_parser('show', help='Display the config entry')
|
|
+ show = config_subcommands.add_parser('show', help='Display the config entry', formatter_class=CustomHelpFormatter)
|
|
show.set_defaults(func=mep_config_show)
|
|
- delete = config_subcommands.add_parser('delete', help='Delete the config entry')
|
|
+ delete = config_subcommands.add_parser('delete', help='Delete the config entry', formatter_class=CustomHelpFormatter)
|
|
delete.set_defaults(func=mep_config_del)
|
|
|
|
- template = subcommands.add_parser('template', help='Handle Managed Entries Plugin templates')
|
|
+ template = subcommands.add_parser('template', help='Handle Managed Entries Plugin templates', formatter_class=CustomHelpFormatter)
|
|
template.add_argument('DN', help='The template entry DN.')
|
|
template_subcommands = template.add_subparsers(help='action')
|
|
- add = template_subcommands.add_parser('add', help='Add the template entry')
|
|
+ add = template_subcommands.add_parser('add', help='Add the template entry', formatter_class=CustomHelpFormatter)
|
|
add.set_defaults(func=mep_template_add)
|
|
_add_parser_args_template(add)
|
|
- edit = template_subcommands.add_parser('set', help='Edit the template entry')
|
|
+ edit = template_subcommands.add_parser('set', help='Edit the template entry', formatter_class=CustomHelpFormatter)
|
|
edit.set_defaults(func=mep_template_edit)
|
|
_add_parser_args_template(edit)
|
|
- show = template_subcommands.add_parser('show', help='Display the template entry')
|
|
+ show = template_subcommands.add_parser('show', help='Display the template entry', formatter_class=CustomHelpFormatter)
|
|
show.set_defaults(func=mep_template_show)
|
|
- delete = template_subcommands.add_parser('delete', help='Delete the template entry')
|
|
+ delete = template_subcommands.add_parser('delete', help='Delete the template entry', formatter_class=CustomHelpFormatter)
|
|
delete.set_defaults(func=mep_template_del)
|
|
diff --git a/src/lib389/lib389/cli_conf/plugins/memberof.py b/src/lib389/lib389/cli_conf/plugins/memberof.py
|
|
index 2d0f80c57..90c1af2c3 100644
|
|
--- a/src/lib389/lib389/cli_conf/plugins/memberof.py
|
|
+++ b/src/lib389/lib389/cli_conf/plugins/memberof.py
|
|
@@ -12,6 +12,7 @@ import ldap
|
|
from lib389.plugins import MemberOfPlugin, MemberOfSharedConfig, MemberOfFixupTasks
|
|
from lib389.utils import get_task_status
|
|
from lib389.cli_conf import add_generic_plugin_parsers, generic_object_edit, generic_object_add
|
|
+from lib389.cli_base import CustomHelpFormatter
|
|
|
|
arg_to_attr = {
|
|
'initfunc': 'nsslapd-pluginInitfunc',
|
|
@@ -121,35 +122,35 @@ def _add_parser_args(parser):
|
|
|
|
|
|
def create_parser(subparsers):
|
|
- memberof = subparsers.add_parser('memberof', help='Manage and configure MemberOf plugin')
|
|
+ memberof = subparsers.add_parser('memberof', help='Manage and configure MemberOf plugin', formatter_class=CustomHelpFormatter)
|
|
|
|
subcommands = memberof.add_subparsers(help='action')
|
|
|
|
add_generic_plugin_parsers(subcommands, MemberOfPlugin)
|
|
|
|
- edit = subcommands.add_parser('set', help='Edit the plugin settings')
|
|
+ edit = subcommands.add_parser('set', help='Edit the plugin settings', formatter_class=CustomHelpFormatter)
|
|
edit.set_defaults(func=memberof_edit)
|
|
_add_parser_args(edit)
|
|
edit.add_argument('--config-entry', help='The value to set as nsslapd-pluginConfigArea')
|
|
|
|
- config = subcommands.add_parser('config-entry', help='Manage the config entry')
|
|
+ config = subcommands.add_parser('config-entry', help='Manage the config entry', formatter_class=CustomHelpFormatter)
|
|
config_subcommands = config.add_subparsers(help='action')
|
|
- add_config = config_subcommands.add_parser('add', help='Add the config entry')
|
|
+ add_config = config_subcommands.add_parser('add', help='Add the config entry', formatter_class=CustomHelpFormatter)
|
|
add_config.set_defaults(func=memberof_add_config)
|
|
add_config.add_argument('DN', help='The config entry full DN')
|
|
_add_parser_args(add_config)
|
|
- edit_config = config_subcommands.add_parser('set', help='Edit the config entry')
|
|
+ edit_config = config_subcommands.add_parser('set', help='Edit the config entry', formatter_class=CustomHelpFormatter)
|
|
edit_config.set_defaults(func=memberof_edit_config)
|
|
edit_config.add_argument('DN', help='The config entry full DN')
|
|
_add_parser_args(edit_config)
|
|
- show_config = config_subcommands.add_parser('show', help='Display the config entry')
|
|
+ show_config = config_subcommands.add_parser('show', help='Display the config entry', formatter_class=CustomHelpFormatter)
|
|
show_config.set_defaults(func=memberof_show_config)
|
|
show_config.add_argument('DN', help='The config entry full DN')
|
|
- del_config_ = config_subcommands.add_parser('delete', help='Delete the config entry')
|
|
+ del_config_ = config_subcommands.add_parser('delete', help='Delete the config entry', formatter_class=CustomHelpFormatter)
|
|
del_config_.set_defaults(func=memberof_del_config)
|
|
del_config_.add_argument('DN', help='The config entry full DN')
|
|
|
|
- fixup = subcommands.add_parser('fixup', help='Run the fix-up task for memberOf plugin')
|
|
+ fixup = subcommands.add_parser('fixup', help='Run the fix-up task for memberOf plugin', formatter_class=CustomHelpFormatter)
|
|
fixup.set_defaults(func=do_fixup)
|
|
fixup.add_argument('DN', help="Base DN that contains entries to fix up")
|
|
fixup.add_argument('-f', '--filter',
|
|
@@ -161,7 +162,7 @@ def create_parser(subparsers):
|
|
fixup.add_argument('--timeout', type=int, default=0,
|
|
help="Sets the task timeout. ,Default is 0 (no timeout)")
|
|
|
|
- fixup_status = subcommands.add_parser('fixup-status', help='Check the status of a fix-up task')
|
|
+ fixup_status = subcommands.add_parser('fixup-status', help='Check the status of a fix-up task', formatter_class=CustomHelpFormatter)
|
|
fixup_status.set_defaults(func=do_fixup_status)
|
|
fixup_status.add_argument('--dn', help="The task entry's DN")
|
|
fixup_status.add_argument('--show-log', action='store_true', help="Display the task log")
|
|
diff --git a/src/lib389/lib389/cli_conf/plugins/pampassthrough.py b/src/lib389/lib389/cli_conf/plugins/pampassthrough.py
|
|
index 810f24422..5dbfacec5 100644
|
|
--- a/src/lib389/lib389/cli_conf/plugins/pampassthrough.py
|
|
+++ b/src/lib389/lib389/cli_conf/plugins/pampassthrough.py
|
|
@@ -10,7 +10,7 @@ import json
|
|
import ldap
|
|
from lib389.plugins import (PAMPassThroughAuthPlugin,
|
|
PAMPassThroughAuthConfigs, PAMPassThroughAuthConfig)
|
|
-
|
|
+from lib389.cli_base import CustomHelpFormatter
|
|
from lib389.cli_conf import add_generic_plugin_parsers, generic_object_edit, generic_object_add
|
|
|
|
|
|
@@ -114,20 +114,20 @@ def create_parser(subparsers):
|
|
|
|
add_generic_plugin_parsers(subcommands, PAMPassThroughAuthPlugin)
|
|
|
|
- list_pam = subcommands.add_parser('list', help='Lists PAM configurations')
|
|
+ list_pam = subcommands.add_parser('list', help='Lists PAM configurations', formatter_class=CustomHelpFormatter)
|
|
list_pam.set_defaults(func=pam_pta_list)
|
|
|
|
- pam = subcommands.add_parser('config', help='Manage PAM PTA configurations.')
|
|
+ pam = subcommands.add_parser('config', help='Manage PAM PTA configurations.', formatter_class=CustomHelpFormatter)
|
|
pam.add_argument('NAME', help='The PAM PTA configuration name')
|
|
subcommands_pam = pam.add_subparsers(help='action')
|
|
|
|
- add = subcommands_pam.add_parser('add', help='Add the config entry')
|
|
+ add = subcommands_pam.add_parser('add', help='Add the config entry', formatter_class=CustomHelpFormatter)
|
|
add.set_defaults(func=pam_pta_add)
|
|
_add_parser_args_pam(add)
|
|
- edit = subcommands_pam.add_parser('set', help='Edit the config entry')
|
|
+ edit = subcommands_pam.add_parser('set', help='Edit the config entry', formatter_class=CustomHelpFormatter)
|
|
edit.set_defaults(func=pam_pta_edit)
|
|
_add_parser_args_pam(edit)
|
|
- show = subcommands_pam.add_parser('show', help='Display the config entry')
|
|
+ show = subcommands_pam.add_parser('show', help='Display the config entry', formatter_class=CustomHelpFormatter)
|
|
show.set_defaults(func=pam_pta_show)
|
|
- delete = subcommands_pam.add_parser('delete', help='Delete the config entry')
|
|
+ delete = subcommands_pam.add_parser('delete', help='Delete the config entry', formatter_class=CustomHelpFormatter)
|
|
delete.set_defaults(func=pam_pta_del)
|
|
diff --git a/src/lib389/lib389/cli_conf/plugins/posix_winsync.py b/src/lib389/lib389/cli_conf/plugins/posix_winsync.py
|
|
index 8a97ef422..4c7377330 100644
|
|
--- a/src/lib389/lib389/cli_conf/plugins/posix_winsync.py
|
|
+++ b/src/lib389/lib389/cli_conf/plugins/posix_winsync.py
|
|
@@ -8,6 +8,7 @@
|
|
|
|
from lib389.plugins import POSIXWinsyncPlugin
|
|
from lib389.cli_conf import add_generic_plugin_parsers, generic_object_edit
|
|
+from lib389.cli_base import CustomHelpFormatter
|
|
|
|
arg_to_attr = {
|
|
'create_memberof_task': 'posixWinsyncCreateMemberOfTask',
|
|
@@ -61,15 +62,15 @@ def _add_parser_args(parser):
|
|
|
|
|
|
def create_parser(subparsers):
|
|
- winsync = subparsers.add_parser('posix-winsync', help='Manage and configure the Posix Winsync API plugin')
|
|
+ winsync = subparsers.add_parser('posix-winsync', help='Manage and configure the Posix Winsync API plugin', formatter_class=CustomHelpFormatter)
|
|
subcommands = winsync.add_subparsers(help='action')
|
|
add_generic_plugin_parsers(subcommands, POSIXWinsyncPlugin)
|
|
|
|
- edit = subcommands.add_parser('set', help='Edit the plugin settings')
|
|
+ edit = subcommands.add_parser('set', help='Edit the plugin settings', formatter_class=CustomHelpFormatter)
|
|
edit.set_defaults(func=winsync_edit)
|
|
_add_parser_args(edit)
|
|
|
|
- fixup = subcommands.add_parser('fixup', help='Run the memberOf fix-up task to correct mismatched member and uniquemember values for synced users')
|
|
+ fixup = subcommands.add_parser('fixup', help='Run the memberOf fix-up task to correct mismatched member and uniquemember values for synced users', formatter_class=CustomHelpFormatter)
|
|
fixup.set_defaults(func=do_fixup)
|
|
fixup.add_argument('DN', help="Set the base DN that contains entries to fix up")
|
|
fixup.add_argument('-f', '--filter',
|
|
diff --git a/src/lib389/lib389/cli_conf/plugins/referint.py b/src/lib389/lib389/cli_conf/plugins/referint.py
|
|
index c46da6d75..b3982f3a2 100644
|
|
--- a/src/lib389/lib389/cli_conf/plugins/referint.py
|
|
+++ b/src/lib389/lib389/cli_conf/plugins/referint.py
|
|
@@ -9,6 +9,7 @@
|
|
import ldap
|
|
from lib389.plugins import ReferentialIntegrityPlugin, ReferentialIntegrityConfig
|
|
from lib389.cli_conf import add_generic_plugin_parsers, generic_object_edit, generic_object_add
|
|
+from lib389.cli_base import CustomHelpFormatter
|
|
|
|
arg_to_attr = {
|
|
'update_delay': 'referint-update-delay',
|
|
@@ -95,24 +96,24 @@ def create_parser(subparsers):
|
|
|
|
add_generic_plugin_parsers(subcommands, ReferentialIntegrityPlugin)
|
|
|
|
- edit = subcommands.add_parser('set', help='Edit the plugin settings')
|
|
+ edit = subcommands.add_parser('set', help='Edit the plugin settings', formatter_class=CustomHelpFormatter)
|
|
edit.set_defaults(func=referint_edit)
|
|
_add_parser_args(edit)
|
|
edit.add_argument('--config-entry', help='The value to set as nsslapd-pluginConfigArea')
|
|
|
|
- config = subcommands.add_parser('config-entry', help='Manage the config entry')
|
|
+ config = subcommands.add_parser('config-entry', help='Manage the config entry', formatter_class=CustomHelpFormatter)
|
|
config_subcommands = config.add_subparsers(help='action')
|
|
- add_config = config_subcommands.add_parser('add', help='Add the config entry')
|
|
+ add_config = config_subcommands.add_parser('add', help='Add the config entry', formatter_class=CustomHelpFormatter)
|
|
add_config.set_defaults(func=referint_add_config)
|
|
add_config.add_argument('DN', help='The config entry full DN')
|
|
_add_parser_args(add_config)
|
|
- edit_config = config_subcommands.add_parser('set', help='Edit the config entry')
|
|
+ edit_config = config_subcommands.add_parser('set', help='Edit the config entry', formatter_class=CustomHelpFormatter)
|
|
edit_config.set_defaults(func=referint_edit_config)
|
|
edit_config.add_argument('DN', help='The config entry full DN')
|
|
_add_parser_args(edit_config)
|
|
- show_config = config_subcommands.add_parser('show', help='Display the config entry')
|
|
+ show_config = config_subcommands.add_parser('show', help='Display the config entry', formatter_class=CustomHelpFormatter)
|
|
show_config.set_defaults(func=referint_show_config)
|
|
show_config.add_argument('DN', help='The config entry full DN')
|
|
- del_config_ = config_subcommands.add_parser('delete', help='Delete the config entry')
|
|
+ del_config_ = config_subcommands.add_parser('delete', help='Delete the config entry', formatter_class=CustomHelpFormatter)
|
|
del_config_.set_defaults(func=referint_del_config)
|
|
del_config_.add_argument('DN', help='The config entry full DN')
|
|
diff --git a/src/lib389/lib389/cli_conf/plugins/retrochangelog.py b/src/lib389/lib389/cli_conf/plugins/retrochangelog.py
|
|
index a33c77c39..336f7e83f 100644
|
|
--- a/src/lib389/lib389/cli_conf/plugins/retrochangelog.py
|
|
+++ b/src/lib389/lib389/cli_conf/plugins/retrochangelog.py
|
|
@@ -7,6 +7,7 @@
|
|
# --- END COPYRIGHT BLOCK ---
|
|
from lib389.plugins import RetroChangelogPlugin
|
|
from lib389.cli_conf import add_generic_plugin_parsers, generic_object_edit, generic_object_add_attr, generic_object_del_attr
|
|
+from lib389.cli_base import CustomHelpFormatter
|
|
|
|
arg_to_attr = {
|
|
'is_replicated': 'isReplicated',
|
|
@@ -58,18 +59,18 @@ def _add_parser_args(parser):
|
|
|
|
|
|
def create_parser(subparsers):
|
|
- retrochangelog = subparsers.add_parser('retro-changelog', help='Manage and configure Retro Changelog plugin')
|
|
+ retrochangelog = subparsers.add_parser('retro-changelog', help='Manage and configure Retro Changelog plugin', formatter_class=CustomHelpFormatter)
|
|
subcommands = retrochangelog.add_subparsers(help='action')
|
|
add_generic_plugin_parsers(subcommands, RetroChangelogPlugin)
|
|
|
|
- edit = subcommands.add_parser('set', help='Edit the plugin')
|
|
+ edit = subcommands.add_parser('set', help='Edit the plugin', formatter_class=CustomHelpFormatter)
|
|
edit.set_defaults(func=retrochangelog_edit)
|
|
_add_parser_args(edit)
|
|
|
|
- addp = subcommands.add_parser('add', help='Add attributes to the plugin')
|
|
+ addp = subcommands.add_parser('add', help='Add attributes to the plugin', formatter_class=CustomHelpFormatter)
|
|
addp.set_defaults(func=retrochangelog_add)
|
|
_add_parser_args(addp)
|
|
|
|
- delp = subcommands.add_parser('del', help='Delete an attribute from plugin scope')
|
|
+ delp = subcommands.add_parser('del', help='Delete an attribute from plugin scope', formatter_class=CustomHelpFormatter)
|
|
delp.set_defaults(func=retrochangelog_del)
|
|
_add_parser_args(delp)
|
|
diff --git a/src/lib389/lib389/cli_conf/plugins/rootdn_ac.py b/src/lib389/lib389/cli_conf/plugins/rootdn_ac.py
|
|
index 8c36f3186..65486fff8 100644
|
|
--- a/src/lib389/lib389/cli_conf/plugins/rootdn_ac.py
|
|
+++ b/src/lib389/lib389/cli_conf/plugins/rootdn_ac.py
|
|
@@ -10,6 +10,7 @@ import socket
|
|
from lib389.plugins import RootDNAccessControlPlugin
|
|
from lib389.utils import is_valid_hostname
|
|
from lib389.cli_conf import add_generic_plugin_parsers, generic_object_edit
|
|
+from lib389.cli_base import CustomHelpFormatter
|
|
|
|
arg_to_attr = {
|
|
'allow_host': 'rootdn-allow-host',
|
|
@@ -124,11 +125,11 @@ def _add_parser_args(parser):
|
|
|
|
|
|
def create_parser(subparsers):
|
|
- rootdnac_parser = subparsers.add_parser('root-dn', help='Manage and configure RootDN Access Control plugin')
|
|
+ rootdnac_parser = subparsers.add_parser('root-dn', help='Manage and configure RootDN Access Control plugin', formatter_class=CustomHelpFormatter)
|
|
subcommands = rootdnac_parser.add_subparsers(help='action')
|
|
add_generic_plugin_parsers(subcommands, RootDNAccessControlPlugin)
|
|
|
|
- edit = subcommands.add_parser('set', help='Edit the plugin settings')
|
|
+ edit = subcommands.add_parser('set', help='Edit the plugin settings', formatter_class=CustomHelpFormatter)
|
|
edit.set_defaults(func=rootdn_edit)
|
|
_add_parser_args(edit)
|
|
|
|
diff --git a/src/lib389/lib389/cli_conf/plugins/usn.py b/src/lib389/lib389/cli_conf/plugins/usn.py
|
|
index bbc55da75..ed62856fe 100644
|
|
--- a/src/lib389/lib389/cli_conf/plugins/usn.py
|
|
+++ b/src/lib389/lib389/cli_conf/plugins/usn.py
|
|
@@ -8,6 +8,7 @@
|
|
|
|
from lib389.plugins import USNPlugin
|
|
from lib389.cli_conf import add_generic_plugin_parsers
|
|
+from lib389.cli_base import CustomHelpFormatter
|
|
|
|
|
|
def display_usn_mode(inst, basedn, log, args):
|
|
@@ -48,19 +49,19 @@ def tombstone_cleanup(inst, basedn, log, args):
|
|
|
|
|
|
def create_parser(subparsers):
|
|
- usn_parser = subparsers.add_parser('usn', help='Manage and configure USN plugin')
|
|
+ usn_parser = subparsers.add_parser('usn', help='Manage and configure USN plugin', formatter_class=CustomHelpFormatter)
|
|
subcommands = usn_parser.add_subparsers(help='action')
|
|
add_generic_plugin_parsers(subcommands, USNPlugin)
|
|
|
|
- global_mode_parser = subcommands.add_parser('global', help='Get or manage global USN mode (nsslapd-entryusn-global)')
|
|
+ global_mode_parser = subcommands.add_parser('global', help='Get or manage global USN mode (nsslapd-entryusn-global)', formatter_class=CustomHelpFormatter)
|
|
global_mode_parser.set_defaults(func=display_usn_mode)
|
|
global_mode_subcommands = global_mode_parser.add_subparsers(help='action')
|
|
- on_global_mode_parser = global_mode_subcommands.add_parser('on', help='Enables USN global mode')
|
|
+ on_global_mode_parser = global_mode_subcommands.add_parser('on', help='Enables USN global mode', formatter_class=CustomHelpFormatter)
|
|
on_global_mode_parser.set_defaults(func=enable_global_mode)
|
|
- off_global_mode_parser = global_mode_subcommands.add_parser('off', help='Disables USN global mode')
|
|
+ off_global_mode_parser = global_mode_subcommands.add_parser('off', help='Disables USN global mode', formatter_class=CustomHelpFormatter)
|
|
off_global_mode_parser.set_defaults(func=disable_global_mode)
|
|
|
|
- cleanup_parser = subcommands.add_parser('cleanup', help='Runs the USN tombstone cleanup task')
|
|
+ cleanup_parser = subcommands.add_parser('cleanup', help='Runs the USN tombstone cleanup task', formatter_class=CustomHelpFormatter)
|
|
cleanup_parser.set_defaults(func=tombstone_cleanup)
|
|
cleanup_group = cleanup_parser.add_mutually_exclusive_group(required=True)
|
|
cleanup_group.add_argument('-s', '--suffix',
|
|
diff --git a/src/lib389/lib389/cli_conf/pwpolicy.py b/src/lib389/lib389/cli_conf/pwpolicy.py
|
|
index bce40604a..2d4ba9b21 100644
|
|
--- a/src/lib389/lib389/cli_conf/pwpolicy.py
|
|
+++ b/src/lib389/lib389/cli_conf/pwpolicy.py
|
|
@@ -13,6 +13,7 @@ from lib389.utils import ensure_str
|
|
from lib389.pwpolicy import PwPolicyEntries, PwPolicyManager
|
|
from lib389.password_plugins import PasswordPlugins
|
|
from lib389.idm.account import Account
|
|
+from lib389.cli_base import CustomHelpFormatter
|
|
|
|
|
|
def _args_to_attrs(args, arg_to_attr):
|
|
@@ -212,23 +213,23 @@ def list_schemes(inst, basedn, log, args):
|
|
|
|
def create_parser(subparsers):
|
|
# Create our two parsers for local and global policies
|
|
- globalpwp_parser = subparsers.add_parser('pwpolicy', help='Manage the global password policy settings')
|
|
- localpwp_parser = subparsers.add_parser('localpwp', help='Manage the local user and subtree password policies')
|
|
+ globalpwp_parser = subparsers.add_parser('pwpolicy', help='Manage the global password policy settings', formatter_class=CustomHelpFormatter)
|
|
+ localpwp_parser = subparsers.add_parser('localpwp', help='Manage the local user and subtree password policies', formatter_class=CustomHelpFormatter)
|
|
|
|
############################################
|
|
# Local password policies
|
|
############################################
|
|
local_subcommands = localpwp_parser.add_subparsers(help='Local password policy')
|
|
# List all the local policies
|
|
- list_parser = local_subcommands.add_parser('list', help='List all the local password policies')
|
|
+ list_parser = local_subcommands.add_parser('list', help='List all the local password policies', formatter_class=CustomHelpFormatter)
|
|
list_parser.set_defaults(func=list_policies)
|
|
list_parser.add_argument('DN', nargs='?', help='Suffix to search for local password policies')
|
|
# Get a local policy
|
|
- get_parser = local_subcommands.add_parser('get', help='Get local password policy entry')
|
|
+ get_parser = local_subcommands.add_parser('get', help='Get local password policy entry', formatter_class=CustomHelpFormatter)
|
|
get_parser.set_defaults(func=get_local_policy)
|
|
get_parser.add_argument('DN', nargs=1, help='Get the local policy for this entry DN')
|
|
# The "set" arguments...
|
|
- set_parser = local_subcommands.add_parser('set', help='Set an attribute in a local password policy')
|
|
+ set_parser = local_subcommands.add_parser('set', help='Set an attribute in a local password policy', formatter_class=CustomHelpFormatter)
|
|
set_parser.set_defaults(func=set_local_policy)
|
|
# General settings
|
|
set_parser.add_argument('--pwdscheme', help="The password storage scheme")
|
|
@@ -278,18 +279,18 @@ def create_parser(subparsers):
|
|
set_parser.add_argument('--pwptprdelayexpireat', help="Number of seconds after which a reset password expires")
|
|
set_parser.add_argument('--pwptprdelayvalidfrom', help="Number of seconds to wait before using a reset password to authenticated")
|
|
# delete local password policy
|
|
- del_parser = local_subcommands.add_parser('remove', help='Remove a local password policy')
|
|
+ del_parser = local_subcommands.add_parser('remove', help='Remove a local password policy', formatter_class=CustomHelpFormatter)
|
|
del_parser.set_defaults(func=del_local_policy)
|
|
del_parser.add_argument('DN', nargs=1, help='Remove local policy for this entry DN')
|
|
#
|
|
# create USER local password policy
|
|
#
|
|
- add_user_parser = local_subcommands.add_parser('adduser', add_help=False, parents=[set_parser], help='Add new user password policy')
|
|
+ add_user_parser = local_subcommands.add_parser('adduser', add_help=False, parents=[set_parser], help='Add new user password policy', formatter_class=CustomHelpFormatter)
|
|
add_user_parser.set_defaults(func=create_user_policy)
|
|
#
|
|
# create SUBTREE local password policy
|
|
#
|
|
- add_subtree_parser = local_subcommands.add_parser('addsubtree', add_help=False, parents=[set_parser], help='Add new subtree password policy')
|
|
+ add_subtree_parser = local_subcommands.add_parser('addsubtree', add_help=False, parents=[set_parser], help='Add new subtree password policy', formatter_class=CustomHelpFormatter)
|
|
add_subtree_parser.set_defaults(func=create_subtree_policy)
|
|
|
|
###########################################
|
|
@@ -297,7 +298,7 @@ def create_parser(subparsers):
|
|
###########################################
|
|
global_subcommands = globalpwp_parser.add_subparsers(help='Global password policy')
|
|
# Get policy
|
|
- get_global_parser = global_subcommands.add_parser('get', help='Get the global password policy entry')
|
|
+ get_global_parser = global_subcommands.add_parser('get', help='Get the global password policy entry', formatter_class=CustomHelpFormatter)
|
|
get_global_parser.set_defaults(func=get_global_policy)
|
|
# Set policy
|
|
set_global_parser = global_subcommands.add_parser('set', add_help=False, parents=[set_parser],
|
|
@@ -308,7 +309,7 @@ def create_parser(subparsers):
|
|
set_global_parser.add_argument('--pwdallowhash', help="Set to \"on\" to allow adding prehashed passwords")
|
|
set_global_parser.add_argument('--pwpinheritglobal', help="Set to \"on\" to allow local policies to inherit the global policy")
|
|
# list password storage schemes
|
|
- list_scehmes_parser = global_subcommands.add_parser('list-schemes', help='Get a list of the current password storage schemes')
|
|
+ list_scehmes_parser = global_subcommands.add_parser('list-schemes', help='Get a list of the current password storage schemes', formatter_class=CustomHelpFormatter)
|
|
list_scehmes_parser.set_defaults(func=list_schemes)
|
|
|
|
#############################################
|
|
diff --git a/src/lib389/lib389/cli_conf/replication.py b/src/lib389/lib389/cli_conf/replication.py
|
|
index ccc394255..399d0d2f8 100644
|
|
--- a/src/lib389/lib389/cli_conf/replication.py
|
|
+++ b/src/lib389/lib389/cli_conf/replication.py
|
|
@@ -16,7 +16,7 @@ from shutil import copyfile
|
|
from getpass import getpass
|
|
from lib389._constants import ReplicaRole, DSRC_HOME
|
|
from lib389.cli_base.dsrc import dsrc_to_repl_monitor
|
|
-from lib389.cli_base import _get_arg
|
|
+from lib389.cli_base import _get_arg, CustomHelpFormatter
|
|
from lib389.utils import is_a_dn, copy_with_permissions, get_passwd_from_file
|
|
from lib389.replica import Replicas, ReplicationMonitor, BootstrapReplicationManager, Changelog5, ChangelogLDIF
|
|
from lib389.tasks import CleanAllRUVTask, AbortCleanAllRUVTask
|
|
@@ -1210,10 +1210,10 @@ def create_parser(subparsers):
|
|
# Replication Configuration
|
|
############################################
|
|
|
|
- repl_parser = subparsers.add_parser('replication', help='Manage replication for a suffix')
|
|
+ repl_parser = subparsers.add_parser('replication', help='Manage replication for a suffix', formatter_class=CustomHelpFormatter)
|
|
repl_subcommands = repl_parser.add_subparsers(help='Replication Configuration')
|
|
|
|
- repl_enable_parser = repl_subcommands.add_parser('enable', help='Enable replication for a suffix')
|
|
+ repl_enable_parser = repl_subcommands.add_parser('enable', help='Enable replication for a suffix', formatter_class=CustomHelpFormatter)
|
|
repl_enable_parser.set_defaults(func=enable_replication)
|
|
repl_enable_parser.add_argument('--suffix', required=True, help='Sets the DN of the suffix to be enabled for replication')
|
|
repl_enable_parser.add_argument('--role', required=True, help="Sets the replication role: \"supplier\", \"hub\", or \"consumer\"")
|
|
@@ -1226,18 +1226,18 @@ def create_parser(subparsers):
|
|
repl_enable_parser.add_argument('--bind-passwd-file', help="File containing the password")
|
|
repl_enable_parser.add_argument('--bind-passwd-prompt', action='store_true', help="Prompt for password")
|
|
|
|
- repl_disable_parser = repl_subcommands.add_parser('disable', help='Disable replication for a suffix')
|
|
+ repl_disable_parser = repl_subcommands.add_parser('disable', help='Disable replication for a suffix', formatter_class=CustomHelpFormatter)
|
|
repl_disable_parser.set_defaults(func=disable_replication)
|
|
repl_disable_parser.add_argument('--suffix', required=True, help='Sets the DN of the suffix to have replication disabled')
|
|
|
|
- repl_ruv_parser = repl_subcommands.add_parser('get-ruv', help='Display the database RUV entry for a suffix')
|
|
+ repl_ruv_parser = repl_subcommands.add_parser('get-ruv', help='Display the database RUV entry for a suffix', formatter_class=CustomHelpFormatter)
|
|
repl_ruv_parser.set_defaults(func=get_ruv)
|
|
repl_ruv_parser.add_argument('--suffix', required=True, help='Sets the DN of the replicated suffix')
|
|
|
|
- repl_list_parser = repl_subcommands.add_parser('list', help='Lists all the replicated suffixes')
|
|
+ repl_list_parser = repl_subcommands.add_parser('list', help='Lists all the replicated suffixes', formatter_class=CustomHelpFormatter)
|
|
repl_list_parser.set_defaults(func=list_suffixes)
|
|
|
|
- repl_status_parser = repl_subcommands.add_parser('status', help='Display the current status of all the replication agreements')
|
|
+ repl_status_parser = repl_subcommands.add_parser('status', help='Display the current status of all the replication agreements', formatter_class=CustomHelpFormatter)
|
|
repl_status_parser.set_defaults(func=get_repl_status)
|
|
repl_status_parser.add_argument('--suffix', required=True, help="Sets the DN of the replication suffix")
|
|
repl_status_parser.add_argument('--bind-dn', help="Sets the DN to use to authenticate to the consumer. If not set, current instance's root DN will be used. It will be used for all agreements")
|
|
@@ -1254,7 +1254,7 @@ def create_parser(subparsers):
|
|
repl_winsync_status_parser.add_argument('--bind-passwd-file', help="File containing the password. Currectly not used")
|
|
repl_winsync_status_parser.add_argument('--bind-passwd-prompt', action='store_true', help="Prompt for password. Currectly not used")
|
|
|
|
- repl_promote_parser = repl_subcommands.add_parser('promote', help='Promote a replica to a hub or supplier')
|
|
+ repl_promote_parser = repl_subcommands.add_parser('promote', help='Promote a replica to a hub or supplier', formatter_class=CustomHelpFormatter)
|
|
repl_promote_parser.set_defaults(func=promote_replica)
|
|
repl_promote_parser.add_argument('--suffix', required=True, help="Sets the DN of the replication suffix to promote")
|
|
repl_promote_parser.add_argument('--newrole', required=True, help='Sets the new replica role to \"hub\" or \"supplier\"')
|
|
@@ -1262,7 +1262,7 @@ def create_parser(subparsers):
|
|
repl_promote_parser.add_argument('--bind-group-dn', help="Sets a group entry DN containing members that are \"bind/supplier\" DNs")
|
|
repl_promote_parser.add_argument('--bind-dn', help="Sets the bind or supplier DN that can make replication updates")
|
|
|
|
- repl_add_manager_parser = repl_subcommands.add_parser('create-manager', help='Create a replication manager entry')
|
|
+ repl_add_manager_parser = repl_subcommands.add_parser('create-manager', help='Create a replication manager entry', formatter_class=CustomHelpFormatter)
|
|
repl_add_manager_parser.set_defaults(func=create_repl_manager)
|
|
repl_add_manager_parser.add_argument('--name', help="Sets the name of the new replication manager entry.For example, " +
|
|
"if the name is \"replication manager\" then the new manager " +
|
|
@@ -1273,28 +1273,28 @@ def create_parser(subparsers):
|
|
repl_add_manager_parser.add_argument('--suffix', help='The DN of the replication suffix whose replication ' +
|
|
'configuration you want to add this new manager to (OPTIONAL)')
|
|
|
|
- repl_del_manager_parser = repl_subcommands.add_parser('delete-manager', help='Delete a replication manager entry')
|
|
+ repl_del_manager_parser = repl_subcommands.add_parser('delete-manager', help='Delete a replication manager entry', formatter_class=CustomHelpFormatter)
|
|
repl_del_manager_parser.set_defaults(func=del_repl_manager)
|
|
repl_del_manager_parser.add_argument('--name', help="Sets the name of the replication manager entry under cn=config: \"cn=NAME,cn=config\"")
|
|
repl_del_manager_parser.add_argument('--suffix', help='Sets the DN of the replication suffix whose replication ' +
|
|
'configuration you want to remove this manager from (OPTIONAL)')
|
|
|
|
- repl_demote_parser = repl_subcommands.add_parser('demote', help='Demote replica to a hub or consumer')
|
|
+ repl_demote_parser = repl_subcommands.add_parser('demote', help='Demote replica to a hub or consumer', formatter_class=CustomHelpFormatter)
|
|
repl_demote_parser.set_defaults(func=demote_replica)
|
|
repl_demote_parser.add_argument('--suffix', required=True, help="Sets the DN of the replication suffix")
|
|
repl_demote_parser.add_argument('--newrole', required=True, help="Sets the new replication role to \"hub\", or \"consumer\"")
|
|
|
|
- repl_get_parser = repl_subcommands.add_parser('get', help='Display the replication configuration')
|
|
+ repl_get_parser = repl_subcommands.add_parser('get', help='Display the replication configuration', formatter_class=CustomHelpFormatter)
|
|
repl_get_parser.set_defaults(func=get_repl_config)
|
|
repl_get_parser.add_argument('--suffix', required=True, help='Sets the suffix DN for the replication configuration to display')
|
|
|
|
- repl_create_cl = repl_subcommands.add_parser('create-changelog', help='Create the replication changelog')
|
|
+ repl_create_cl = repl_subcommands.add_parser('create-changelog', help='Create the replication changelog', formatter_class=CustomHelpFormatter)
|
|
repl_create_cl.set_defaults(func=create_cl)
|
|
|
|
- repl_delete_cl = repl_subcommands.add_parser('delete-changelog', help='Delete the replication changelog. This will invalidate any existing replication agreements')
|
|
+ repl_delete_cl = repl_subcommands.add_parser('delete-changelog', help='Delete the replication changelog. This will invalidate any existing replication agreements', formatter_class=CustomHelpFormatter)
|
|
repl_delete_cl.set_defaults(func=delete_cl)
|
|
|
|
- repl_set_cl = repl_subcommands.add_parser('set-changelog', help='Set replication changelog attributes.')
|
|
+ repl_set_cl = repl_subcommands.add_parser('set-changelog', help='Set replication changelog attributes.', formatter_class=CustomHelpFormatter)
|
|
repl_set_cl.set_defaults(func=set_cl)
|
|
repl_set_cl.add_argument('--cl-dir', help="The replication changelog location on the filesystem")
|
|
repl_set_cl.add_argument('--max-entries', help="The maximum number of entries to get in the replication changelog")
|
|
@@ -1304,10 +1304,10 @@ def create_parser(subparsers):
|
|
'has been reached: Use this format to set the hour and minute: HH:MM')
|
|
repl_set_cl.add_argument('--trim-interval', help="The interval to check if the replication changelog can be trimmed")
|
|
|
|
- repl_get_cl = repl_subcommands.add_parser('get-changelog', help='Display replication changelog attributes.')
|
|
+ repl_get_cl = repl_subcommands.add_parser('get-changelog', help='Display replication changelog attributes.', formatter_class=CustomHelpFormatter)
|
|
repl_get_cl.set_defaults(func=get_cl)
|
|
|
|
- repl_dump_cl = repl_subcommands.add_parser('dump-changelog', help='Decode Directory Server replication change log and dump it to an LDIF')
|
|
+ repl_dump_cl = repl_subcommands.add_parser('dump-changelog', help='Decode Directory Server replication change log and dump it to an LDIF', formatter_class=CustomHelpFormatter)
|
|
repl_dump_cl.set_defaults(func=dump_cl)
|
|
repl_dump_cl.add_argument('-c', '--csn-only', action='store_true',
|
|
help="Dump and interpret CSN only. This option can be used with or without -i option.")
|
|
@@ -1322,9 +1322,9 @@ def create_parser(subparsers):
|
|
"roots may be seperated by comma. All the replica roots would be dumped if the option is omitted.")
|
|
|
|
repl_restore_cl = repl_subcommands.add_parser('restore-changelog',
|
|
- help='Restore Directory Server replication change log from LDIF file or change log directory')
|
|
+ help='Restore Directory Server replication change log from LDIF file or change log directory', formatter_class=CustomHelpFormatter)
|
|
restore_subcommands = repl_restore_cl.add_subparsers(help='Restore Replication Changelog')
|
|
- restore_ldif = restore_subcommands.add_parser('from-ldif', help='Restore a single LDIF file.')
|
|
+ restore_ldif = restore_subcommands.add_parser('from-ldif', help='Restore a single LDIF file.', formatter_class=CustomHelpFormatter)
|
|
restore_ldif.set_defaults(func=restore_cl_ldif)
|
|
restore_ldif.add_argument('LDIF_PATH', nargs=1, help='The path of changelog LDIF file.')
|
|
restore_ldif.add_argument('-r', '--replica-root', nargs=1, required=True,
|
|
@@ -1342,7 +1342,7 @@ def create_parser(subparsers):
|
|
help="Specify replica roots whose changelog you want to restore. The replica "
|
|
"roots may be separated by comma. All the replica roots would be dumped if the option is omitted.")
|
|
|
|
- repl_set_parser = repl_subcommands.add_parser('set', help='Set an attribute in the replication configuration')
|
|
+ repl_set_parser = repl_subcommands.add_parser('set', help='Set an attribute in the replication configuration', formatter_class=CustomHelpFormatter)
|
|
repl_set_parser.set_defaults(func=set_repl_config)
|
|
repl_set_parser.add_argument('--suffix', required=True, help='Sets the DN of the replication suffix')
|
|
repl_set_parser.add_argument('--repl-add-bind-dn', help="Adds a bind (supplier) DN")
|
|
@@ -1366,7 +1366,7 @@ def create_parser(subparsers):
|
|
"an internal update to keep the RUV from getting stale. "
|
|
"The default is 1 hour (3600 seconds)")
|
|
|
|
- repl_monitor_parser = repl_subcommands.add_parser('monitor', help='Display the full replication topology report')
|
|
+ repl_monitor_parser = repl_subcommands.add_parser('monitor', help='Display the full replication topology report', formatter_class=CustomHelpFormatter)
|
|
repl_monitor_parser.set_defaults(func=get_repl_monitor_info)
|
|
repl_monitor_parser.add_argument('-c', '--connections', nargs="*",
|
|
help="Sets the connection values for monitoring other not connected topologies. "
|
|
@@ -1381,47 +1381,47 @@ def create_parser(subparsers):
|
|
# Replication Agmts
|
|
############################################
|
|
|
|
- agmt_parser = subparsers.add_parser('repl-agmt', help='Manage replication agreements')
|
|
+ agmt_parser = subparsers.add_parser('repl-agmt', help='Manage replication agreements', formatter_class=CustomHelpFormatter)
|
|
agmt_subcommands = agmt_parser.add_subparsers(help='Replication Agreement Configuration')
|
|
|
|
# List
|
|
- agmt_list_parser = agmt_subcommands.add_parser('list', help='List all replication agreements')
|
|
+ agmt_list_parser = agmt_subcommands.add_parser('list', help='List all replication agreements', formatter_class=CustomHelpFormatter)
|
|
agmt_list_parser.set_defaults(func=list_agmts)
|
|
agmt_list_parser.add_argument('--suffix', required=True, help='Sets the DN of the suffix to look up replication agreements for')
|
|
agmt_list_parser.add_argument('--entry', help='Returns the entire entry for each agreement')
|
|
|
|
# Enable
|
|
- agmt_enable_parser = agmt_subcommands.add_parser('enable', help='Enable replication agreement')
|
|
+ agmt_enable_parser = agmt_subcommands.add_parser('enable', help='Enable replication agreement', formatter_class=CustomHelpFormatter)
|
|
agmt_enable_parser.set_defaults(func=enable_agmt)
|
|
agmt_enable_parser.add_argument('AGMT_NAME', nargs=1, help='The name of the replication agreement')
|
|
agmt_enable_parser.add_argument('--suffix', required=True, help="Sets the DN of the replication suffix")
|
|
|
|
# Disable
|
|
- agmt_disable_parser = agmt_subcommands.add_parser('disable', help='Disable replication agreement')
|
|
+ agmt_disable_parser = agmt_subcommands.add_parser('disable', help='Disable replication agreement', formatter_class=CustomHelpFormatter)
|
|
agmt_disable_parser.set_defaults(func=disable_agmt)
|
|
agmt_disable_parser.add_argument('AGMT_NAME', nargs=1, help='The name of the replication agreement')
|
|
agmt_disable_parser.add_argument('--suffix', required=True, help="Sets the DN of the replication suffix")
|
|
|
|
# Initialize
|
|
- agmt_init_parser = agmt_subcommands.add_parser('init', help='Initialize replication agreement')
|
|
+ agmt_init_parser = agmt_subcommands.add_parser('init', help='Initialize replication agreement', formatter_class=CustomHelpFormatter)
|
|
agmt_init_parser.set_defaults(func=init_agmt)
|
|
agmt_init_parser.add_argument('AGMT_NAME', nargs=1, help='The name of the replication agreement')
|
|
agmt_init_parser.add_argument('--suffix', required=True, help="Sets the DN of the replication suffix")
|
|
|
|
# Check Initialization progress
|
|
- agmt_check_init_parser = agmt_subcommands.add_parser('init-status', help='Check the agreement initialization status')
|
|
+ agmt_check_init_parser = agmt_subcommands.add_parser('init-status', help='Check the agreement initialization status', formatter_class=CustomHelpFormatter)
|
|
agmt_check_init_parser.set_defaults(func=check_init_agmt)
|
|
agmt_check_init_parser.add_argument('AGMT_NAME', nargs=1, help='The name of the replication agreement')
|
|
agmt_check_init_parser.add_argument('--suffix', required=True, help="Sets the DN of the replication suffix")
|
|
|
|
# Send Updates Now
|
|
- agmt_poke_parser = agmt_subcommands.add_parser('poke', help='Trigger replication to send updates now')
|
|
+ agmt_poke_parser = agmt_subcommands.add_parser('poke', help='Trigger replication to send updates now', formatter_class=CustomHelpFormatter)
|
|
agmt_poke_parser.set_defaults(func=poke_agmt)
|
|
agmt_poke_parser.add_argument('AGMT_NAME', nargs=1, help='The name of the replication agreement')
|
|
agmt_poke_parser.add_argument('--suffix', required=True, help="Sets the DN of the replication suffix")
|
|
|
|
# Status
|
|
- agmt_status_parser = agmt_subcommands.add_parser('status', help='Displays the current status of the replication agreement')
|
|
+ agmt_status_parser = agmt_subcommands.add_parser('status', help='Displays the current status of the replication agreement', formatter_class=CustomHelpFormatter)
|
|
agmt_status_parser.set_defaults(func=get_agmt_status)
|
|
agmt_status_parser.add_argument('AGMT_NAME', nargs=1, help='The name of the replication agreement')
|
|
agmt_status_parser.add_argument('--suffix', required=True, help="Sets the DN of the replication suffix")
|
|
@@ -1431,13 +1431,13 @@ def create_parser(subparsers):
|
|
agmt_status_parser.add_argument('--bind-passwd-prompt', action='store_true', help="Prompt for passwords for each agreement's instance separately")
|
|
|
|
# Delete
|
|
- agmt_del_parser = agmt_subcommands.add_parser('delete', help='Delete replication agreement')
|
|
+ agmt_del_parser = agmt_subcommands.add_parser('delete', help='Delete replication agreement', formatter_class=CustomHelpFormatter)
|
|
agmt_del_parser.set_defaults(func=delete_agmt)
|
|
agmt_del_parser.add_argument('AGMT_NAME', nargs=1, help='The name of the replication agreement')
|
|
agmt_del_parser.add_argument('--suffix', required=True, help="Sets the DN of the replication suffix")
|
|
|
|
# Create
|
|
- agmt_add_parser = agmt_subcommands.add_parser('create', help='Initialize replication agreement')
|
|
+ agmt_add_parser = agmt_subcommands.add_parser('create', help='Initialize replication agreement', formatter_class=CustomHelpFormatter)
|
|
agmt_add_parser.set_defaults(func=add_agmt)
|
|
agmt_add_parser.add_argument('AGMT_NAME', nargs=1, help='The name of the replication agreement')
|
|
agmt_add_parser.add_argument('--suffix', required=True, help="Sets the DN of the replication suffix")
|
|
@@ -1482,7 +1482,7 @@ def create_parser(subparsers):
|
|
agmt_add_parser.add_argument('--init', action='store_true', default=False, help="Initializes the agreement after creating it")
|
|
|
|
# Set - Note can not use add's parent args because for "set" there are no "required=True" args
|
|
- agmt_set_parser = agmt_subcommands.add_parser('set', help='Set an attribute in the replication agreement')
|
|
+ agmt_set_parser = agmt_subcommands.add_parser('set', help='Set an attribute in the replication agreement', formatter_class=CustomHelpFormatter)
|
|
agmt_set_parser.set_defaults(func=set_agmt)
|
|
agmt_set_parser.add_argument('AGMT_NAME', nargs=1, help='The name of the replication agreement')
|
|
agmt_set_parser.add_argument('--suffix', required=True, help="Sets the DN of the replication suffix")
|
|
@@ -1525,7 +1525,7 @@ def create_parser(subparsers):
|
|
agmt_set_parser.add_argument('--bootstrap-bind-method', help="Sets the bind method: \"SIMPLE\", or \"SSLCLIENTAUTH\"")
|
|
|
|
# Get
|
|
- agmt_get_parser = agmt_subcommands.add_parser('get', help='Get replication configuration')
|
|
+ agmt_get_parser = agmt_subcommands.add_parser('get', help='Get replication configuration', formatter_class=CustomHelpFormatter)
|
|
agmt_get_parser.set_defaults(func=get_repl_agmt)
|
|
agmt_get_parser.add_argument('AGMT_NAME', nargs=1, help='The suffix DN for which to display the replication configuration')
|
|
agmt_get_parser.add_argument('--suffix', required=True, help="Sets the DN of the replication suffix")
|
|
@@ -1534,58 +1534,58 @@ def create_parser(subparsers):
|
|
# Replication Winsync Agmts
|
|
############################################
|
|
|
|
- winsync_parser = subparsers.add_parser('repl-winsync-agmt', help='Manage Winsync agreements')
|
|
+ winsync_parser = subparsers.add_parser('repl-winsync-agmt', help='Manage Winsync agreements', formatter_class=CustomHelpFormatter)
|
|
winsync_agmt_subcommands = winsync_parser.add_subparsers(help='Replication Winsync Agreement configuration')
|
|
|
|
# List
|
|
- winsync_agmt_list_parser = winsync_agmt_subcommands.add_parser('list', help='List all the replication winsync agreements')
|
|
+ winsync_agmt_list_parser = winsync_agmt_subcommands.add_parser('list', help='List all the replication winsync agreements', formatter_class=CustomHelpFormatter)
|
|
winsync_agmt_list_parser.set_defaults(func=list_winsync_agmts)
|
|
winsync_agmt_list_parser.add_argument('--suffix', required=True, help='Sets the DN of the suffix to look up replication winsync agreements')
|
|
|
|
# Enable
|
|
- winsync_agmt_enable_parser = winsync_agmt_subcommands.add_parser('enable', help='Enable replication winsync agreement')
|
|
+ winsync_agmt_enable_parser = winsync_agmt_subcommands.add_parser('enable', help='Enable replication winsync agreement', formatter_class=CustomHelpFormatter)
|
|
winsync_agmt_enable_parser.set_defaults(func=enable_winsync_agmt)
|
|
winsync_agmt_enable_parser.add_argument('AGMT_NAME', nargs=1, help='The name of the replication winsync agreement')
|
|
winsync_agmt_enable_parser.add_argument('--suffix', required=True, help="Sets the DN of the replication winsync suffix")
|
|
|
|
# Disable
|
|
- winsync_agmt_disable_parser = winsync_agmt_subcommands.add_parser('disable', help='Disable replication winsync agreement')
|
|
+ winsync_agmt_disable_parser = winsync_agmt_subcommands.add_parser('disable', help='Disable replication winsync agreement', formatter_class=CustomHelpFormatter)
|
|
winsync_agmt_disable_parser.set_defaults(func=disable_winsync_agmt)
|
|
winsync_agmt_disable_parser.add_argument('AGMT_NAME', nargs=1, help='The name of the replication winsync agreement')
|
|
winsync_agmt_disable_parser.add_argument('--suffix', required=True, help="Sets the DN of the replication winsync suffix")
|
|
|
|
# Initialize
|
|
- winsync_agmt_init_parser = winsync_agmt_subcommands.add_parser('init', help='Initialize replication winsync agreement')
|
|
+ winsync_agmt_init_parser = winsync_agmt_subcommands.add_parser('init', help='Initialize replication winsync agreement', formatter_class=CustomHelpFormatter)
|
|
winsync_agmt_init_parser.set_defaults(func=init_winsync_agmt)
|
|
winsync_agmt_init_parser.add_argument('AGMT_NAME', nargs=1, help='The name of the replication winsync agreement')
|
|
winsync_agmt_init_parser.add_argument('--suffix', required=True, help="Sets the DN of the replication winsync suffix")
|
|
|
|
# Check Initialization progress
|
|
- winsync_agmt_check_init_parser = winsync_agmt_subcommands.add_parser('init-status', help='Check the agreement initialization status')
|
|
+ winsync_agmt_check_init_parser = winsync_agmt_subcommands.add_parser('init-status', help='Check the agreement initialization status', formatter_class=CustomHelpFormatter)
|
|
winsync_agmt_check_init_parser.set_defaults(func=check_winsync_init_agmt)
|
|
winsync_agmt_check_init_parser.add_argument('AGMT_NAME', nargs=1, help='The name of the replication agreement')
|
|
winsync_agmt_check_init_parser.add_argument('--suffix', required=True, help="Sets the DN of the replication suffix")
|
|
|
|
# Send Updates Now
|
|
- winsync_agmt_poke_parser = winsync_agmt_subcommands.add_parser('poke', help='Trigger replication to send updates now')
|
|
+ winsync_agmt_poke_parser = winsync_agmt_subcommands.add_parser('poke', help='Trigger replication to send updates now', formatter_class=CustomHelpFormatter)
|
|
winsync_agmt_poke_parser.set_defaults(func=poke_winsync_agmt)
|
|
winsync_agmt_poke_parser.add_argument('AGMT_NAME', nargs=1, help='The name of the replication winsync agreement')
|
|
winsync_agmt_poke_parser.add_argument('--suffix', required=True, help="Sets the DN of the replication winsync suffix")
|
|
|
|
# Status
|
|
- winsync_agmt_status_parser = winsync_agmt_subcommands.add_parser('status', help='Display the current status of the replication agreement')
|
|
+ winsync_agmt_status_parser = winsync_agmt_subcommands.add_parser('status', help='Display the current status of the replication agreement', formatter_class=CustomHelpFormatter)
|
|
winsync_agmt_status_parser.set_defaults(func=get_winsync_agmt_status)
|
|
winsync_agmt_status_parser.add_argument('AGMT_NAME', nargs=1, help='The name of the replication agreement')
|
|
winsync_agmt_status_parser.add_argument('--suffix', required=True, help="Sets the DN of the replication suffix")
|
|
|
|
# Delete
|
|
- winsync_agmt_del_parser = winsync_agmt_subcommands.add_parser('delete', help='Delete replication winsync agreement')
|
|
+ winsync_agmt_del_parser = winsync_agmt_subcommands.add_parser('delete', help='Delete replication winsync agreement', formatter_class=CustomHelpFormatter)
|
|
winsync_agmt_del_parser.set_defaults(func=delete_winsync_agmt)
|
|
winsync_agmt_del_parser.add_argument('AGMT_NAME', nargs=1, help='The name of the replication winsync agreement')
|
|
winsync_agmt_del_parser.add_argument('--suffix', required=True, help="Sets the DN of the replication winsync suffix")
|
|
|
|
# Create
|
|
- winsync_agmt_add_parser = winsync_agmt_subcommands.add_parser('create', help='Initialize replication winsync agreement')
|
|
+ winsync_agmt_add_parser = winsync_agmt_subcommands.add_parser('create', help='Initialize replication winsync agreement', formatter_class=CustomHelpFormatter)
|
|
winsync_agmt_add_parser.set_defaults(func=add_winsync_agmt)
|
|
winsync_agmt_add_parser.add_argument('AGMT_NAME', nargs=1, help='The name of the replication winsync agreement')
|
|
winsync_agmt_add_parser.add_argument('--suffix', required=True, help="Sets the DN of the replication winsync suffix")
|
|
@@ -1623,7 +1623,7 @@ def create_parser(subparsers):
|
|
winsync_agmt_add_parser.add_argument('--init', action='store_true', default=False, help="Initializes the agreement after creating it")
|
|
|
|
# Set - Note can not use add's parent args because for "set" there are no "required=True" args
|
|
- winsync_agmt_set_parser = winsync_agmt_subcommands.add_parser('set', help='Set an attribute in the replication winsync agreement')
|
|
+ winsync_agmt_set_parser = winsync_agmt_subcommands.add_parser('set', help='Set an attribute in the replication winsync agreement', formatter_class=CustomHelpFormatter)
|
|
winsync_agmt_set_parser.set_defaults(func=set_winsync_agmt)
|
|
winsync_agmt_set_parser.add_argument('AGMT_NAME', nargs=1, help='The name of the replication winsync agreement')
|
|
winsync_agmt_set_parser.add_argument('--suffix', help="Sets the DN of the replication winsync suffix")
|
|
@@ -1658,7 +1658,7 @@ def create_parser(subparsers):
|
|
help="Sets the amount of time in seconds a supplier should wait between update sessions")
|
|
|
|
# Get
|
|
- winsync_agmt_get_parser = winsync_agmt_subcommands.add_parser('get', help='Display replication configuration')
|
|
+ winsync_agmt_get_parser = winsync_agmt_subcommands.add_parser('get', help='Display replication configuration', formatter_class=CustomHelpFormatter)
|
|
winsync_agmt_get_parser.set_defaults(func=get_winsync_agmt)
|
|
winsync_agmt_get_parser.add_argument('AGMT_NAME', nargs=1, help='The suffix DN for the replication configuration to display')
|
|
winsync_agmt_get_parser.add_argument('--suffix', required=True, help="Sets the DN of the replication suffix")
|
|
@@ -1667,29 +1667,29 @@ def create_parser(subparsers):
|
|
# Replication Tasks (cleanalruv)
|
|
############################################
|
|
|
|
- tasks_parser = subparsers.add_parser('repl-tasks', help='Manage replication tasks')
|
|
+ tasks_parser = subparsers.add_parser('repl-tasks', help='Manage replication tasks', formatter_class=CustomHelpFormatter)
|
|
task_subcommands = tasks_parser.add_subparsers(help='Replication tasks')
|
|
|
|
# Cleanallruv
|
|
- task_cleanallruv = task_subcommands.add_parser('cleanallruv', help='Cleanup old/removed replica IDs')
|
|
+ task_cleanallruv = task_subcommands.add_parser('cleanallruv', help='Cleanup old/removed replica IDs', formatter_class=CustomHelpFormatter)
|
|
task_cleanallruv.set_defaults(func=run_cleanallruv)
|
|
task_cleanallruv.add_argument('--suffix', required=True, help="Sets the Directory Server suffix")
|
|
task_cleanallruv.add_argument('--replica-id', required=True, help="Sets the replica ID to remove/clean")
|
|
task_cleanallruv.add_argument('--force-cleaning', action='store_true', default=False,
|
|
help="Ignores errors and make a best attempt to clean all replicas")
|
|
|
|
- task_cleanallruv_list = task_subcommands.add_parser('list-cleanruv-tasks', help='List all the running CleanAllRUV tasks')
|
|
+ task_cleanallruv_list = task_subcommands.add_parser('list-cleanruv-tasks', help='List all the running CleanAllRUV tasks', formatter_class=CustomHelpFormatter)
|
|
task_cleanallruv_list.set_defaults(func=list_cleanallruv)
|
|
task_cleanallruv_list.add_argument('--suffix', help="Lists only tasks for the specified suffix")
|
|
|
|
# Abort cleanallruv
|
|
- task_abort_cleanallruv = task_subcommands.add_parser('abort-cleanallruv', help='Abort cleanallruv tasks')
|
|
+ task_abort_cleanallruv = task_subcommands.add_parser('abort-cleanallruv', help='Abort cleanallruv tasks', formatter_class=CustomHelpFormatter)
|
|
task_abort_cleanallruv.set_defaults(func=abort_cleanallruv)
|
|
task_abort_cleanallruv.add_argument('--suffix', required=True, help="Sets the Directory Server suffix")
|
|
task_abort_cleanallruv.add_argument('--replica-id', required=True, help="Sets the replica ID of the cleaning task to abort")
|
|
task_abort_cleanallruv.add_argument('--certify', action='store_true', default=False,
|
|
help="Enforces that the abort task completed on all replicas")
|
|
|
|
- task_abort_cleanallruv_list = task_subcommands.add_parser('list-abortruv-tasks', help='List all the running CleanAllRUV abort tasks')
|
|
+ task_abort_cleanallruv_list = task_subcommands.add_parser('list-abortruv-tasks', help='List all the running CleanAllRUV abort tasks', formatter_class=CustomHelpFormatter)
|
|
task_abort_cleanallruv_list.set_defaults(func=list_abort_cleanallruv)
|
|
task_abort_cleanallruv_list.add_argument('--suffix', help="Lists only tasks for the specified suffix")
|
|
diff --git a/src/lib389/lib389/cli_conf/saslmappings.py b/src/lib389/lib389/cli_conf/saslmappings.py
|
|
index 6c11da35e..ebef86650 100644
|
|
--- a/src/lib389/lib389/cli_conf/saslmappings.py
|
|
+++ b/src/lib389/lib389/cli_conf/saslmappings.py
|
|
@@ -18,6 +18,7 @@ from lib389.cli_base import (
|
|
_get_arg,
|
|
_get_attributes,
|
|
_warn,
|
|
+ CustomHelpFormatter
|
|
)
|
|
|
|
SINGULAR = SaslMapping
|
|
@@ -96,30 +97,30 @@ def sasl_get_available(inst, basedn, log, args):
|
|
|
|
|
|
def create_parser(subparsers):
|
|
- sasl_parser = subparsers.add_parser('sasl', help='Manage SASL mappings')
|
|
+ sasl_parser = subparsers.add_parser('sasl', help='Manage SASL mappings', formatter_class=CustomHelpFormatter)
|
|
|
|
subcommands = sasl_parser.add_subparsers(help='sasl')
|
|
|
|
- list_mappings_parser = subcommands.add_parser('list', help='Display available SASL mappings')
|
|
+ list_mappings_parser = subcommands.add_parser('list', help='Display available SASL mappings', formatter_class=CustomHelpFormatter)
|
|
list_mappings_parser.set_defaults(func=sasl_map_list)
|
|
list_mappings_parser.add_argument('--details', action='store_true', default=False,
|
|
help="Displays each SASL mapping in detail")
|
|
|
|
- get_mech_parser= subcommands.add_parser('get-mechs', help='Display the SASL mechanisms that the server will accept')
|
|
+ get_mech_parser= subcommands.add_parser('get-mechs', help='Display the SASL mechanisms that the server will accept', formatter_class=CustomHelpFormatter)
|
|
get_mech_parser.set_defaults(func=sasl_get_supported)
|
|
|
|
- get_mech_parser= subcommands.add_parser('get-available-mechs', help='Display the SASL mechanisms that are available to the server')
|
|
+ get_mech_parser= subcommands.add_parser('get-available-mechs', help='Display the SASL mechanisms that are available to the server', formatter_class=CustomHelpFormatter)
|
|
get_mech_parser.set_defaults(func=sasl_get_available)
|
|
|
|
- get_parser = subcommands.add_parser('get', help='Displays SASL mappings')
|
|
+ get_parser = subcommands.add_parser('get', help='Displays SASL mappings', formatter_class=CustomHelpFormatter)
|
|
get_parser.set_defaults(func=sasl_map_get)
|
|
get_parser.add_argument('selector', nargs='?', help='The SASL mapping name to display')
|
|
|
|
- create_parser = subcommands.add_parser('create', help='Create a SASL mapping ')
|
|
+ create_parser = subcommands.add_parser('create', help='Create a SASL mapping ', formatter_class=CustomHelpFormatter)
|
|
create_parser.set_defaults(func=sasl_map_create)
|
|
populate_attr_arguments(create_parser, SaslMapping._must_attributes)
|
|
|
|
- delete_parser = subcommands.add_parser('delete', help='Deletes the SASL object')
|
|
+ delete_parser = subcommands.add_parser('delete', help='Deletes the SASL object', formatter_class=CustomHelpFormatter)
|
|
delete_parser.set_defaults(func=sasl_map_delete)
|
|
delete_parser.add_argument('map_name', help='The SASL mapping name ("cn" value)')
|
|
|
|
diff --git a/src/lib389/lib389/cli_conf/schema.py b/src/lib389/lib389/cli_conf/schema.py
|
|
index 60bfa02d8..577b4cea0 100644
|
|
--- a/src/lib389/lib389/cli_conf/schema.py
|
|
+++ b/src/lib389/lib389/cli_conf/schema.py
|
|
@@ -8,7 +8,7 @@
|
|
# --- END COPYRIGHT BLOCK ---
|
|
|
|
from json import dumps as dump_json
|
|
-from lib389.cli_base import _get_arg
|
|
+from lib389.cli_base import _get_arg, CustomHelpFormatter
|
|
from lib389.schema import Schema, AttributeUsage, ObjectclassKind
|
|
from lib389.migrate.openldap.config import olSchema
|
|
from lib389.migrate.plan import Migration
|
|
@@ -334,59 +334,59 @@ def _add_parser_args(parser, type):
|
|
|
|
|
|
def create_parser(subparsers):
|
|
- schema_parser = subparsers.add_parser('schema', help='Manage the directory schema')
|
|
+ schema_parser = subparsers.add_parser('schema', help='Manage the directory schema', formatter_class=CustomHelpFormatter)
|
|
|
|
schema_subcommands = schema_parser.add_subparsers(help='schema')
|
|
- schema_list_parser = schema_subcommands.add_parser('list', help='List all schema objects on this system')
|
|
+ schema_list_parser = schema_subcommands.add_parser('list', help='List all schema objects on this system', formatter_class=CustomHelpFormatter)
|
|
schema_list_parser.set_defaults(func=list_all)
|
|
|
|
- attributetypes_parser = schema_subcommands.add_parser('attributetypes', help='Work with attribute types on this system')
|
|
+ attributetypes_parser = schema_subcommands.add_parser('attributetypes', help='Work with attribute types on this system', formatter_class=CustomHelpFormatter)
|
|
attributetypes_subcommands = attributetypes_parser.add_subparsers(help='schema')
|
|
- at_get_syntaxes_parser = attributetypes_subcommands.add_parser('get_syntaxes', help='List all available attribute type syntaxes')
|
|
+ at_get_syntaxes_parser = attributetypes_subcommands.add_parser('get_syntaxes', help='List all available attribute type syntaxes', formatter_class=CustomHelpFormatter)
|
|
at_get_syntaxes_parser.set_defaults(func=get_syntaxes)
|
|
- at_list_parser = attributetypes_subcommands.add_parser('list', help='List available attribute types on this system')
|
|
+ at_list_parser = attributetypes_subcommands.add_parser('list', help='List available attribute types on this system', formatter_class=CustomHelpFormatter)
|
|
at_list_parser.set_defaults(func=list_attributetypes)
|
|
- at_query_parser = attributetypes_subcommands.add_parser('query', help='Query an attribute to determine object classes that may or must take it')
|
|
+ at_query_parser = attributetypes_subcommands.add_parser('query', help='Query an attribute to determine object classes that may or must take it', formatter_class=CustomHelpFormatter)
|
|
at_query_parser.set_defaults(func=query_attributetype)
|
|
at_query_parser.add_argument('name', nargs='?', help='Attribute type to query')
|
|
- at_add_parser = attributetypes_subcommands.add_parser('add', help='Add an attribute type to this system')
|
|
+ at_add_parser = attributetypes_subcommands.add_parser('add', help='Add an attribute type to this system', formatter_class=CustomHelpFormatter)
|
|
at_add_parser.set_defaults(func=add_attributetype)
|
|
_add_parser_args(at_add_parser, 'attributetypes')
|
|
at_add_parser.add_argument('--syntax', required=True, help='OID of the LDAP syntax assigned to the attribute')
|
|
- at_edit_parser = attributetypes_subcommands.add_parser('replace', help='Replace an attribute type on this system')
|
|
+ at_edit_parser = attributetypes_subcommands.add_parser('replace', help='Replace an attribute type on this system', formatter_class=CustomHelpFormatter)
|
|
at_edit_parser.set_defaults(func=edit_attributetype)
|
|
_add_parser_args(at_edit_parser, 'attributetypes')
|
|
at_edit_parser.add_argument('--syntax', help='OID of the LDAP syntax assigned to the attribute')
|
|
- at_remove_parser = attributetypes_subcommands.add_parser('remove', help='Remove an attribute type on this system')
|
|
+ at_remove_parser = attributetypes_subcommands.add_parser('remove', help='Remove an attribute type on this system', formatter_class=CustomHelpFormatter)
|
|
at_remove_parser.set_defaults(func=remove_attributetype)
|
|
at_remove_parser.add_argument('name', help='NAME of the object')
|
|
|
|
- objectclasses_parser = schema_subcommands.add_parser('objectclasses', help='Work with objectClasses on this system')
|
|
+ objectclasses_parser = schema_subcommands.add_parser('objectclasses', help='Work with objectClasses on this system', formatter_class=CustomHelpFormatter)
|
|
objectclasses_subcommands = objectclasses_parser.add_subparsers(help='schema')
|
|
- oc_list_parser = objectclasses_subcommands.add_parser('list', help='List available objectClasses on this system')
|
|
+ oc_list_parser = objectclasses_subcommands.add_parser('list', help='List available objectClasses on this system', formatter_class=CustomHelpFormatter)
|
|
oc_list_parser.set_defaults(func=list_objectclasses)
|
|
- oc_query_parser = objectclasses_subcommands.add_parser('query', help='Query an objectClass')
|
|
+ oc_query_parser = objectclasses_subcommands.add_parser('query', help='Query an objectClass', formatter_class=CustomHelpFormatter)
|
|
oc_query_parser.set_defaults(func=query_objectclass)
|
|
oc_query_parser.add_argument('name', nargs='?', help='ObjectClass to query')
|
|
- oc_add_parser = objectclasses_subcommands.add_parser('add', help='Add an objectClass to this system')
|
|
+ oc_add_parser = objectclasses_subcommands.add_parser('add', help='Add an objectClass to this system', formatter_class=CustomHelpFormatter)
|
|
oc_add_parser.set_defaults(func=add_objectclass)
|
|
_add_parser_args(oc_add_parser, 'objectclasses')
|
|
- oc_edit_parser = objectclasses_subcommands.add_parser('replace', help='Replace an objectClass on this system')
|
|
+ oc_edit_parser = objectclasses_subcommands.add_parser('replace', help='Replace an objectClass on this system', formatter_class=CustomHelpFormatter)
|
|
oc_edit_parser.set_defaults(func=edit_objectclass)
|
|
_add_parser_args(oc_edit_parser, 'objectclasses')
|
|
- oc_remove_parser = objectclasses_subcommands.add_parser('remove', help='Remove an objectClass on this system')
|
|
+ oc_remove_parser = objectclasses_subcommands.add_parser('remove', help='Remove an objectClass on this system', formatter_class=CustomHelpFormatter)
|
|
oc_remove_parser.set_defaults(func=remove_objectclass)
|
|
oc_remove_parser.add_argument('name', help='NAME of the object')
|
|
|
|
- matchingrules_parser = schema_subcommands.add_parser('matchingrules', help='Work with matching rules on this system')
|
|
+ matchingrules_parser = schema_subcommands.add_parser('matchingrules', help='Work with matching rules on this system', formatter_class=CustomHelpFormatter)
|
|
matchingrules_subcommands = matchingrules_parser.add_subparsers(help='schema')
|
|
- mr_list_parser = matchingrules_subcommands.add_parser('list', help='List available matching rules on this system')
|
|
+ mr_list_parser = matchingrules_subcommands.add_parser('list', help='List available matching rules on this system', formatter_class=CustomHelpFormatter)
|
|
mr_list_parser.set_defaults(func=list_matchingrules)
|
|
- mr_query_parser = matchingrules_subcommands.add_parser('query', help='Query a matching rule')
|
|
+ mr_query_parser = matchingrules_subcommands.add_parser('query', help='Query a matching rule', formatter_class=CustomHelpFormatter)
|
|
mr_query_parser.set_defaults(func=query_matchingrule)
|
|
mr_query_parser.add_argument('name', nargs='?', help='Matching rule to query')
|
|
|
|
- reload_parser = schema_subcommands.add_parser('reload', help='Dynamically reload schema while server is running')
|
|
+ reload_parser = schema_subcommands.add_parser('reload', help='Dynamically reload schema while server is running', formatter_class=CustomHelpFormatter)
|
|
reload_parser.set_defaults(func=reload_schema)
|
|
reload_parser.add_argument('-d', '--schemadir', help="directory where schema files are located")
|
|
reload_parser.add_argument('--wait', action='store_true', default=False, help="Wait for the reload task to complete")
|
|
diff --git a/src/lib389/lib389/cli_conf/security.py b/src/lib389/lib389/cli_conf/security.py
|
|
index db0e9cf20..eba138feb 100644
|
|
--- a/src/lib389/lib389/cli_conf/security.py
|
|
+++ b/src/lib389/lib389/cli_conf/security.py
|
|
@@ -11,7 +11,7 @@ import json
|
|
import os
|
|
from lib389.config import Config, Encryption, RSA
|
|
from lib389.nss_ssl import NssSsl, CERT_NAME, CA_NAME
|
|
-from lib389.cli_base import _warn
|
|
+from lib389.cli_base import _warn, CustomHelpFormatter
|
|
|
|
|
|
Props = namedtuple('Props', ['cls', 'attr', 'help', 'values'])
|
|
@@ -103,13 +103,13 @@ def _security_generic_set(inst, basedn, log, args, attrs_map):
|
|
|
|
|
|
def _security_generic_get_parser(parent, attrs_map, help):
|
|
- p = parent.add_parser('get', help=help)
|
|
+ p = parent.add_parser('get', help=help, formatter_class=CustomHelpFormatter)
|
|
p.set_defaults(func=lambda *args: _security_generic_get(*args, attrs_map))
|
|
return p
|
|
|
|
|
|
def _security_generic_set_parser(parent, attrs_map, help, description):
|
|
- p = parent.add_parser('set', help=help, description=description)
|
|
+ p = parent.add_parser('set', help=help, description=description, formatter_class=CustomHelpFormatter)
|
|
p.set_defaults(func=lambda *args: _security_generic_set(*args, attrs_map))
|
|
for opt, params in attrs_map.items():
|
|
p.add_argument(f'--{opt}', help=f'{params[2]} ({params[1]})')
|
|
@@ -133,7 +133,7 @@ def _security_generic_toggle(inst, basedn, log, args, cls, attr, value, thing):
|
|
|
|
def _security_generic_toggle_parsers(parent, cls, attr, help_pattern):
|
|
def add_parser(action, value):
|
|
- p = parent.add_parser(action.lower(), help=help_pattern.format(action))
|
|
+ p = parent.add_parser(action.lower(), help=help_pattern.format(action), formatter_class=CustomHelpFormatter)
|
|
p.set_defaults(func=lambda *args: _security_generic_toggle(*args, cls, attr, value, action))
|
|
return p
|
|
|
|
@@ -476,7 +476,7 @@ def export_cert(inst, basedn, log, args):
|
|
|
|
|
|
def create_parser(subparsers):
|
|
- security = subparsers.add_parser('security', help='Manage security settings')
|
|
+ security = subparsers.add_parser('security', help='Manage security settings', formatter_class=CustomHelpFormatter)
|
|
security_sub = security.add_subparsers(help='security')
|
|
|
|
# Core security management
|
|
@@ -499,7 +499,7 @@ def create_parser(subparsers):
|
|
security_disable_plain_parser.set_defaults(func=security_disable_plaintext_port)
|
|
|
|
# Server certificate management
|
|
- certs = security_sub.add_parser('certificate', help='Manage TLS certificates')
|
|
+ certs = security_sub.add_parser('certificate', help='Manage TLS certificates', formatter_class=CustomHelpFormatter)
|
|
certs_sub = certs.add_subparsers(help='certificate')
|
|
cert_add_parser = certs_sub.add_parser('add', help='Add a server certificate', description=(
|
|
'Add a server certificate to the NSS database'))
|
|
@@ -533,7 +533,7 @@ def create_parser(subparsers):
|
|
cert_list_parser.set_defaults(func=cert_list)
|
|
|
|
# CA certificate management
|
|
- cacerts = security_sub.add_parser('ca-certificate', help='Manage TLS certificate authorities')
|
|
+ cacerts = security_sub.add_parser('ca-certificate', help='Manage TLS certificate authorities', formatter_class=CustomHelpFormatter)
|
|
cacerts_sub = cacerts.add_subparsers(help='ca-certificate')
|
|
cacert_add_parser = cacerts_sub.add_parser('add', help='Add a Certificate Authority', description=(
|
|
'Add a Certificate Authority to the NSS database'))
|
|
@@ -566,7 +566,7 @@ def create_parser(subparsers):
|
|
cacert_list_parser.set_defaults(func=cacert_list)
|
|
|
|
# RSA management
|
|
- rsa = security_sub.add_parser('rsa', help='Query and update RSA security options')
|
|
+ rsa = security_sub.add_parser('rsa', help='Query and update RSA security options', formatter_class=CustomHelpFormatter)
|
|
rsa_sub = rsa.add_subparsers(help='rsa')
|
|
_security_generic_set_parser(rsa_sub, RSA_ATTRS_MAP, 'Set RSA security options',
|
|
('Use this command for setting RSA (private key) related options located in cn=RSA,cn=encryption,cn=config.'
|
|
@@ -575,7 +575,7 @@ def create_parser(subparsers):
|
|
_security_generic_toggle_parsers(rsa_sub, RSA, 'nsSSLActivation', '{} RSA')
|
|
|
|
# Cipher management
|
|
- ciphers = security_sub.add_parser('ciphers', help='Manage secure ciphers')
|
|
+ ciphers = security_sub.add_parser('ciphers', help='Manage secure ciphers', formatter_class=CustomHelpFormatter)
|
|
ciphers_sub = ciphers.add_subparsers(help='ciphers')
|
|
|
|
ciphers_enable = ciphers_sub.add_parser('enable', help='Enable ciphers', description=(
|
|
@@ -612,7 +612,7 @@ def create_parser(subparsers):
|
|
help='Lists only supported ciphers but without enabled ciphers')
|
|
|
|
# Certificate Signing Request Management
|
|
- csr = security_sub.add_parser('csr', help='Manage certificate signing requests')
|
|
+ csr = security_sub.add_parser('csr', help='Manage certificate signing requests', formatter_class=CustomHelpFormatter)
|
|
csr_sub = csr.add_subparsers(help='csr')
|
|
|
|
csr_list_parser = csr_sub.add_parser('list', help='List CSRs', description=('List all CSR files in instance'
|
|
@@ -633,15 +633,15 @@ def create_parser(subparsers):
|
|
help="CSR alternative names. These are auto-detected if not provided")
|
|
csr_req_parser.set_defaults(func=csr_gen)
|
|
|
|
- csr_delete_parser = csr_sub.add_parser('del', help='Delete a CSR file', description=('Delete a CSR file'))
|
|
+ csr_delete_parser = csr_sub.add_parser('del', help='Delete a CSR file', description=('Delete a CSR file'), formatter_class=CustomHelpFormatter)
|
|
csr_delete_parser.add_argument('name', help="Name of the CSR file to delete")
|
|
csr_delete_parser.set_defaults(func=csr_del)
|
|
|
|
# Key Management
|
|
- key = security_sub.add_parser('key', help='Manage keys in NSS DB')
|
|
+ key = security_sub.add_parser('key', help='Manage keys in NSS DB', formatter_class=CustomHelpFormatter)
|
|
key_sub = key.add_subparsers(help='key')
|
|
|
|
- key_list_parser = key_sub.add_parser('list', help='List all keys in NSS DB')
|
|
+ key_list_parser = key_sub.add_parser('list', help='List all keys in NSS DB', formatter_class=CustomHelpFormatter)
|
|
key_list_parser.add_argument('--orphan', action='store_true', help='List orphan keys (An orphan key is'
|
|
' a private key in the NSS DB for which there is NO cert with the corresponding '
|
|
' public key). An orphan key is created during CSR generation, when the associated certificate is imported'
|
|
diff --git a/src/lib389/lib389/cli_ctl/cockpit.py b/src/lib389/lib389/cli_ctl/cockpit.py
|
|
index 22d79725e..afc724733 100644
|
|
--- a/src/lib389/lib389/cli_ctl/cockpit.py
|
|
+++ b/src/lib389/lib389/cli_ctl/cockpit.py
|
|
@@ -8,6 +8,7 @@
|
|
|
|
import os
|
|
import subprocess
|
|
+from lib389.cli_base import CustomHelpFormatter
|
|
|
|
|
|
def enable_cockpit(inst, log, args):
|
|
@@ -67,22 +68,22 @@ def close_firewall(inst, log, args):
|
|
|
|
|
|
def create_parser(subparsers):
|
|
- cockpit_parser = subparsers.add_parser('cockpit', help="Enable the Cockpit interface/UI")
|
|
+ cockpit_parser = subparsers.add_parser('cockpit', help="Enable the Cockpit interface/UI", formatter_class=CustomHelpFormatter)
|
|
subcommands = cockpit_parser.add_subparsers(help="action")
|
|
|
|
# Enable socket
|
|
- enable_parser = subcommands.add_parser('enable', help='Enable the Cockpit socket')
|
|
+ enable_parser = subcommands.add_parser('enable', help='Enable the Cockpit socket', formatter_class=CustomHelpFormatter)
|
|
enable_parser.set_defaults(func=enable_cockpit)
|
|
|
|
# Open firewall
|
|
- open_parser = subcommands.add_parser('open-firewall', help='Open the firewall for the "cockpit" service')
|
|
+ open_parser = subcommands.add_parser('open-firewall', help='Open the firewall for the "cockpit" service', formatter_class=CustomHelpFormatter)
|
|
open_parser.add_argument('--zone', help="The firewall zone")
|
|
open_parser.set_defaults(func=open_firewall)
|
|
|
|
# Disable socket
|
|
- disable_parser = subcommands.add_parser('disable', help='Disable the Cockpit socket')
|
|
+ disable_parser = subcommands.add_parser('disable', help='Disable the Cockpit socket', formatter_class=CustomHelpFormatter)
|
|
disable_parser.set_defaults(func=disable_cockpit)
|
|
|
|
# Close firewall
|
|
- close_parser = subcommands.add_parser('close-firewall', help='Remove the "cockpit" service from the firewall settings')
|
|
+ close_parser = subcommands.add_parser('close-firewall', help='Remove the "cockpit" service from the firewall settings', formatter_class=CustomHelpFormatter)
|
|
close_parser.set_defaults(func=close_firewall)
|
|
diff --git a/src/lib389/lib389/cli_ctl/dbgen.py b/src/lib389/lib389/cli_ctl/dbgen.py
|
|
index 56db2fdcd..5efbc404a 100644
|
|
--- a/src/lib389/lib389/cli_ctl/dbgen.py
|
|
+++ b/src/lib389/lib389/cli_ctl/dbgen.py
|
|
@@ -16,6 +16,7 @@ from lib389.dbgen import (
|
|
dbgen_nested_ldif,
|
|
)
|
|
from lib389.utils import is_a_dn
|
|
+from lib389.cli_base import CustomHelpFormatter
|
|
|
|
DEFAULT_LDIF = "/ldifgen.ldif"
|
|
|
|
@@ -499,11 +500,11 @@ def dbgen_create_nested(inst, log, args):
|
|
|
|
|
|
def create_parser(subparsers):
|
|
- db_gen_parser = subparsers.add_parser('ldifgen', help="LDIF generator to make sample LDIF files for testing")
|
|
+ db_gen_parser = subparsers.add_parser('ldifgen', help="LDIF generator to make sample LDIF files for testing", formatter_class=CustomHelpFormatter)
|
|
subcommands = db_gen_parser.add_subparsers(help="action")
|
|
|
|
# Create just users
|
|
- dbgen_users_parser = subcommands.add_parser('users', help='Generate a LDIF containing user entries')
|
|
+ dbgen_users_parser = subcommands.add_parser('users', help='Generate a LDIF containing user entries', formatter_class=CustomHelpFormatter)
|
|
dbgen_users_parser.set_defaults(func=dbgen_create_users)
|
|
dbgen_users_parser.add_argument('--number', help="The number of users to create.")
|
|
dbgen_users_parser.add_argument('--suffix', help="The database suffix where the entries will be created.")
|
|
@@ -515,7 +516,7 @@ def create_parser(subparsers):
|
|
dbgen_users_parser.add_argument('--ldif-file', default="ldifgen.ldif", help=f"The LDIF file name. Default location is the server's LDIF directory using the name 'ldifgen.ldif'")
|
|
|
|
# Create static groups
|
|
- dbgen_groups_parser = subcommands.add_parser('groups', help='Generate a LDIF containing groups and members')
|
|
+ dbgen_groups_parser = subcommands.add_parser('groups', help='Generate a LDIF containing groups and members', formatter_class=CustomHelpFormatter)
|
|
dbgen_groups_parser.set_defaults(func=dbgen_create_groups)
|
|
dbgen_groups_parser.add_argument('NAME', help="The group name.")
|
|
dbgen_groups_parser.add_argument('--number', default=1, help="The number of groups to create.")
|
|
@@ -528,7 +529,7 @@ def create_parser(subparsers):
|
|
dbgen_groups_parser.add_argument('--ldif-file', default="ldifgen.ldif", help=f"The LDIF file name. Default location is the server's LDIF directory using the name 'ldifgen.ldif'")
|
|
|
|
# Create a COS definition
|
|
- dbgen_cos_def_parser = subcommands.add_parser('cos-def', help='Generate a LDIF containing a COS definition (classic, pointer, or indirect)')
|
|
+ dbgen_cos_def_parser = subcommands.add_parser('cos-def', help='Generate a LDIF containing a COS definition (classic, pointer, or indirect)', formatter_class=CustomHelpFormatter)
|
|
dbgen_cos_def_parser.set_defaults(func=dbgen_create_cos_def)
|
|
dbgen_cos_def_parser.add_argument('NAME', help="The COS definition name.")
|
|
dbgen_cos_def_parser.add_argument('--type', help="The COS definition type: \"classic\", \"pointer\", or \"indirect\".")
|
|
@@ -540,7 +541,7 @@ def create_parser(subparsers):
|
|
dbgen_cos_def_parser.add_argument('--ldif-file', default="ldifgen.ldif", help=f"The LDIF file name. Default location is the server's LDIF directory using the name 'ldifgen.ldif'")
|
|
|
|
# Create a COS Template
|
|
- dbgen_cos_tmp_parser = subcommands.add_parser('cos-template', help='Generate a LDIF containing a COS template')
|
|
+ dbgen_cos_tmp_parser = subcommands.add_parser('cos-template', help='Generate a LDIF containing a COS template', formatter_class=CustomHelpFormatter)
|
|
dbgen_cos_tmp_parser.set_defaults(func=dbgen_create_cos_tmp)
|
|
dbgen_cos_tmp_parser.add_argument('NAME', help="The COS template name.")
|
|
dbgen_cos_tmp_parser.add_argument('--parent', help="The DN of the entry to store the COS template entry under.")
|
|
@@ -550,7 +551,7 @@ def create_parser(subparsers):
|
|
dbgen_cos_tmp_parser.add_argument('--ldif-file', default="ldifgen.ldif", help=f"The LDIF file name. Default location is the server's LDIF directory using the name 'ldifgen.ldif'")
|
|
|
|
# Create Role entries
|
|
- dbgen_roles_parser = subcommands.add_parser('roles', help='Generate a LDIF containing a role entry (managed, filtered, or indirect)')
|
|
+ dbgen_roles_parser = subcommands.add_parser('roles', help='Generate a LDIF containing a role entry (managed, filtered, or indirect)', formatter_class=CustomHelpFormatter)
|
|
dbgen_roles_parser.set_defaults(func=dbgen_create_role)
|
|
dbgen_roles_parser.add_argument('NAME', help="The Role name.")
|
|
dbgen_roles_parser.add_argument('--type', help="The Role type: \"managed\", \"filtered\", or \"nested\".")
|
|
@@ -561,7 +562,7 @@ def create_parser(subparsers):
|
|
dbgen_roles_parser.add_argument('--ldif-file', default="ldifgen.ldif", help=f"The LDIF file name. Default location is the server's LDIF directory using the name 'ldifgen.ldif'")
|
|
|
|
# Create a modification LDIF
|
|
- dbgen_mod_load_parser = subcommands.add_parser('mod-load', help='Generate a LDIF containing modify operations. This is intended to be consumed by ldapmodify.')
|
|
+ dbgen_mod_load_parser = subcommands.add_parser('mod-load', help='Generate a LDIF containing modify operations. This is intended to be consumed by ldapmodify.', formatter_class=CustomHelpFormatter)
|
|
dbgen_mod_load_parser.set_defaults(func=dbgen_create_mods)
|
|
dbgen_mod_load_parser.add_argument('--create-users', action='store_true', help="Create the entries that will be modified or deleted. By default the script assumes the user entries already exist.")
|
|
dbgen_mod_load_parser.add_argument('--delete-users', action='store_true', help="Delete all the user entries at the end of the LDIF.")
|
|
@@ -577,7 +578,7 @@ def create_parser(subparsers):
|
|
dbgen_mod_load_parser.add_argument('--ldif-file', default="ldifgen.ldif", help=f"The LDIF file name. Default location is the server's LDIF directory using the name 'ldifgen.ldif'")
|
|
|
|
# Create a heavily nested LDIF
|
|
- dbgen_nested_parser = subcommands.add_parser('nested', help='Generate a heavily nested database LDIF in a cascading/fractal tree design')
|
|
+ dbgen_nested_parser = subcommands.add_parser('nested', help='Generate a heavily nested database LDIF in a cascading/fractal tree design', formatter_class=CustomHelpFormatter)
|
|
dbgen_nested_parser.set_defaults(func=dbgen_create_nested)
|
|
dbgen_nested_parser.add_argument('--num-users', help="The total number of user entries to create in the entire LDIF (does not include the container entries).")
|
|
dbgen_nested_parser.add_argument('--node-limit', help="The total number of user entries to create under each node/subtree")
|
|
diff --git a/src/lib389/lib389/cli_ctl/dbtasks.py b/src/lib389/lib389/cli_ctl/dbtasks.py
|
|
index 4bcd1f2f5..856639672 100644
|
|
--- a/src/lib389/lib389/cli_ctl/dbtasks.py
|
|
+++ b/src/lib389/lib389/cli_ctl/dbtasks.py
|
|
@@ -9,6 +9,7 @@
|
|
|
|
import os
|
|
from lib389._constants import TaskWarning
|
|
+from lib389.cli_base import CustomHelpFormatter
|
|
from pathlib import Path
|
|
|
|
|
|
@@ -126,18 +127,18 @@ def dbtasks_verify(inst, log, args):
|
|
|
|
|
|
def create_parser(subcommands):
|
|
- db2index_parser = subcommands.add_parser('db2index', help="Initialise a reindex of the server database. The server must be stopped for this to proceed.")
|
|
+ db2index_parser = subcommands.add_parser('db2index', help="Initialise a reindex of the server database. The server must be stopped for this to proceed.", formatter_class=CustomHelpFormatter)
|
|
# db2index_parser.add_argument('suffix', help="The suffix to reindex. IE dc=example,dc=com.")
|
|
db2index_parser.add_argument('backend', nargs="?", help="The backend to reindex. IE userRoot", default=False)
|
|
db2index_parser.add_argument('--attr', nargs="*", help="The attribute's to reindex. IE --attr aci cn givenname", default=False)
|
|
db2index_parser.set_defaults(func=dbtasks_db2index)
|
|
|
|
- db2bak_parser = subcommands.add_parser('db2bak', help="Initialise a BDB backup of the database. The server must be stopped for this to proceed.")
|
|
+ db2bak_parser = subcommands.add_parser('db2bak', help="Initialise a BDB backup of the database. The server must be stopped for this to proceed.", formatter_class=CustomHelpFormatter)
|
|
db2bak_parser.add_argument('archive', help="The destination for the archive. This will be created during the db2bak process.",
|
|
nargs='?', default=None)
|
|
db2bak_parser.set_defaults(func=dbtasks_db2bak)
|
|
|
|
- db2ldif_parser = subcommands.add_parser('db2ldif', help="Initialise an LDIF dump of the database. The server must be stopped for this to proceed.")
|
|
+ db2ldif_parser = subcommands.add_parser('db2ldif', help="Initialise an LDIF dump of the database. The server must be stopped for this to proceed.", formatter_class=CustomHelpFormatter)
|
|
db2ldif_parser.add_argument('backend', help="The backend to output as an LDIF. IE userRoot")
|
|
db2ldif_parser.add_argument('ldif', help="The path to the ldif output location.", nargs='?', default=None)
|
|
db2ldif_parser.add_argument('--replication', help="Export replication information, suitable for importing on a new consumer or backups.",
|
|
@@ -148,15 +149,15 @@ def create_parser(subcommands):
|
|
db2ldif_parser.add_argument('--encrypted', help="Export encrypted attributes", default=False, action='store_true')
|
|
db2ldif_parser.set_defaults(func=dbtasks_db2ldif)
|
|
|
|
- dbverify_parser = subcommands.add_parser('dbverify', help="Perform a db verification. You should only do this at direction of support")
|
|
+ dbverify_parser = subcommands.add_parser('dbverify', help="Perform a db verification. You should only do this at direction of support", formatter_class=CustomHelpFormatter)
|
|
dbverify_parser.add_argument('backend', help="The backend to verify. IE userRoot")
|
|
dbverify_parser.set_defaults(func=dbtasks_verify)
|
|
|
|
- bak2db_parser = subcommands.add_parser('bak2db', help="Restore a BDB backup of the database. The server must be stopped for this to proceed.")
|
|
+ bak2db_parser = subcommands.add_parser('bak2db', help="Restore a BDB backup of the database. The server must be stopped for this to proceed.", formatter_class=CustomHelpFormatter)
|
|
bak2db_parser.add_argument('archive', help="The archive to restore. This will erase all current server databases.")
|
|
bak2db_parser.set_defaults(func=dbtasks_bak2db)
|
|
|
|
- ldif2db_parser = subcommands.add_parser('ldif2db', help="Restore an LDIF dump of the database. The server must be stopped for this to proceed.")
|
|
+ ldif2db_parser = subcommands.add_parser('ldif2db', help="Restore an LDIF dump of the database. The server must be stopped for this to proceed.", formatter_class=CustomHelpFormatter)
|
|
ldif2db_parser.add_argument('backend', help="The backend to restore from an LDIF. IE userRoot")
|
|
ldif2db_parser.add_argument('ldif', help="The path to the ldif to import")
|
|
ldif2db_parser.add_argument('--encrypted', help="Import encrypted attributes", default=False, action='store_true')
|
|
@@ -164,10 +165,10 @@ def create_parser(subcommands):
|
|
# default=False, action='store_true')
|
|
ldif2db_parser.set_defaults(func=dbtasks_ldif2db)
|
|
|
|
- backups_parser = subcommands.add_parser('backups', help="List backup's found in the server's default backup directory")
|
|
+ backups_parser = subcommands.add_parser('backups', help="List backup's found in the server's default backup directory", formatter_class=CustomHelpFormatter)
|
|
backups_parser.add_argument('--delete', nargs=1, help="Delete backup directory")
|
|
backups_parser.set_defaults(func=dbtasks_backups)
|
|
|
|
- ldifs_parser = subcommands.add_parser('ldifs', help="List all the LDIF files located in the server's LDIF directory")
|
|
+ ldifs_parser = subcommands.add_parser('ldifs', help="List all the LDIF files located in the server's LDIF directory", formatter_class=CustomHelpFormatter)
|
|
ldifs_parser.add_argument('--delete', nargs=1, help="Delete LDIF file")
|
|
ldifs_parser.set_defaults(func=dbtasks_ldifs)
|
|
diff --git a/src/lib389/lib389/cli_ctl/dsrc.py b/src/lib389/lib389/cli_ctl/dsrc.py
|
|
index b54f68885..54a8b233e 100644
|
|
--- a/src/lib389/lib389/cli_ctl/dsrc.py
|
|
+++ b/src/lib389/lib389/cli_ctl/dsrc.py
|
|
@@ -12,6 +12,7 @@ from os import path, remove
|
|
from ldapurl import isLDAPUrl
|
|
from ldap.dn import is_dn
|
|
import configparser
|
|
+from lib389.cli_base import CustomHelpFormatter
|
|
|
|
|
|
def create_dsrc(inst, log, args):
|
|
@@ -293,11 +294,11 @@ def display_dsrc(inst, log, args):
|
|
|
|
|
|
def create_parser(subparsers):
|
|
- dsrc_parser = subparsers.add_parser('dsrc', help="Manage the .dsrc file")
|
|
+ dsrc_parser = subparsers.add_parser('dsrc', help="Manage the .dsrc file", formatter_class=CustomHelpFormatter)
|
|
subcommands = dsrc_parser.add_subparsers(help="action")
|
|
|
|
# Create .dsrc file
|
|
- dsrc_create_parser = subcommands.add_parser('create', help='Generate the .dsrc file')
|
|
+ dsrc_create_parser = subcommands.add_parser('create', help='Generate the .dsrc file', formatter_class=CustomHelpFormatter)
|
|
dsrc_create_parser.set_defaults(func=create_dsrc)
|
|
dsrc_create_parser.add_argument('--uri', help="The URI (LDAP URL) for the Directory Server instance.")
|
|
dsrc_create_parser.add_argument('--basedn', help="The default database suffix.")
|
|
@@ -315,7 +316,7 @@ def create_parser(subparsers):
|
|
dsrc_create_parser.add_argument('--pwdfile', help="The absolute path to a file containing the Bind DN's password.")
|
|
dsrc_create_parser.add_argument('--do-it', action='store_true', help="Create the file without any confirmation.")
|
|
|
|
- dsrc_modify_parser = subcommands.add_parser('modify', help='Modify the .dsrc file')
|
|
+ dsrc_modify_parser = subcommands.add_parser('modify', help='Modify the .dsrc file', formatter_class=CustomHelpFormatter)
|
|
dsrc_modify_parser.set_defaults(func=modify_dsrc)
|
|
dsrc_modify_parser.add_argument('--uri', nargs='?', const='', help="The URI (LDAP URL) for the Directory Server instance.")
|
|
dsrc_modify_parser.add_argument('--basedn', nargs='?', const='', help="The default database suffix.")
|
|
@@ -333,11 +334,11 @@ def create_parser(subparsers):
|
|
dsrc_modify_parser.add_argument('--do-it', action='store_true', help="Update the file without any confirmation.")
|
|
|
|
# Delete the instance from the .dsrc file
|
|
- dsrc_delete_parser = subcommands.add_parser('delete', help='Delete instance configuration from the .dsrc file.')
|
|
+ dsrc_delete_parser = subcommands.add_parser('delete', help='Delete instance configuration from the .dsrc file.', formatter_class=CustomHelpFormatter)
|
|
dsrc_delete_parser.set_defaults(func=delete_dsrc)
|
|
dsrc_delete_parser.add_argument('--do-it', action='store_true',
|
|
help="Delete this instance's configuration from the .dsrc file.")
|
|
|
|
# Display .dsrc file
|
|
- dsrc_display_parser = subcommands.add_parser('display', help='Display the contents of the .dsrc file.')
|
|
+ dsrc_display_parser = subcommands.add_parser('display', help='Display the contents of the .dsrc file.', formatter_class=CustomHelpFormatter)
|
|
dsrc_display_parser.set_defaults(func=display_dsrc)
|
|
diff --git a/src/lib389/lib389/cli_ctl/health.py b/src/lib389/lib389/cli_ctl/health.py
|
|
index e242a4042..d85e3906a 100644
|
|
--- a/src/lib389/lib389/cli_ctl/health.py
|
|
+++ b/src/lib389/lib389/cli_ctl/health.py
|
|
@@ -10,7 +10,7 @@ import json
|
|
import re
|
|
from lib389._mapped_object import DSLdapObjects
|
|
from lib389._mapped_object_lint import DSLint
|
|
-from lib389.cli_base import connect_instance, disconnect_instance
|
|
+from lib389.cli_base import connect_instance, disconnect_instance, CustomHelpFormatter
|
|
from lib389.cli_base.dsrc import dsrc_to_ldap, dsrc_arg_concat
|
|
from lib389.backend import Backends
|
|
from lib389.config import Encryption, Config
|
|
diff --git a/src/lib389/lib389/cli_ctl/instance.py b/src/lib389/lib389/cli_ctl/instance.py
|
|
index ae2bb1a88..23dec7810 100644
|
|
--- a/src/lib389/lib389/cli_ctl/instance.py
|
|
+++ b/src/lib389/lib389/cli_ctl/instance.py
|
|
@@ -10,6 +10,7 @@ import os
|
|
import json
|
|
import time
|
|
from lib389 import DirSrv
|
|
+from lib389.cli_base import CustomHelpFormatter
|
|
from lib389.instance.setup import SetupDs
|
|
from lib389.utils import get_instance_list
|
|
from lib389.instance.remove import remove_ds_instance
|
|
@@ -171,23 +172,23 @@ def instance_remove(inst, log, args):
|
|
|
|
|
|
def create_parser(subcommands):
|
|
- # list_parser = subcommands.add_parser('list', help="List installed instances of Directory Server")
|
|
+ # list_parser = subcommands.add_parser('list', help="List installed instances of Directory Server", formatter_class=CustomHelpFormatter)
|
|
# list_parser.set_defaults(func=instance_list)
|
|
# list_parser.set_defaults(noinst=True)
|
|
|
|
- restart_parser = subcommands.add_parser('restart', help="Restart an instance of Directory Server, if it is running: else start it.")
|
|
+ restart_parser = subcommands.add_parser('restart', help="Restart an instance of Directory Server, if it is running: else start it.", formatter_class=CustomHelpFormatter)
|
|
restart_parser.set_defaults(func=instance_restart)
|
|
|
|
- start_parser = subcommands.add_parser('start', help="Start an instance of Directory Server, if it is not currently running")
|
|
+ start_parser = subcommands.add_parser('start', help="Start an instance of Directory Server, if it is not currently running", formatter_class=CustomHelpFormatter)
|
|
start_parser.set_defaults(func=instance_start)
|
|
|
|
- stop_parser = subcommands.add_parser('stop', help="Stop an instance of Directory Server, if it is currently running")
|
|
+ stop_parser = subcommands.add_parser('stop', help="Stop an instance of Directory Server, if it is currently running", formatter_class=CustomHelpFormatter)
|
|
stop_parser.set_defaults(func=instance_stop)
|
|
|
|
- status_parser = subcommands.add_parser('status', help="Check running status of an instance of Directory Server")
|
|
+ status_parser = subcommands.add_parser('status', help="Check running status of an instance of Directory Server", formatter_class=CustomHelpFormatter)
|
|
status_parser.set_defaults(func=instance_status)
|
|
|
|
- remove_parser = subcommands.add_parser('remove', help="Destroy an instance of Directory Server, and remove all data.")
|
|
+ remove_parser = subcommands.add_parser('remove', help="Destroy an instance of Directory Server, and remove all data.", formatter_class=CustomHelpFormatter)
|
|
remove_parser.set_defaults(func=instance_remove)
|
|
remove_parser.add_argument('--do-it', dest="ack", help="By default we do a dry run. This actually initiates the removal of the instance.",
|
|
action='store_true', default=False)
|
|
diff --git a/src/lib389/lib389/cli_ctl/nsstate.py b/src/lib389/lib389/cli_ctl/nsstate.py
|
|
index 28acd99bf..00e3d407e 100644
|
|
--- a/src/lib389/lib389/cli_ctl/nsstate.py
|
|
+++ b/src/lib389/lib389/cli_ctl/nsstate.py
|
|
@@ -8,6 +8,7 @@
|
|
|
|
import json
|
|
from lib389.dseldif import DSEldif
|
|
+from lib389.cli_base import CustomHelpFormatter
|
|
|
|
|
|
def get_nsstate(inst, log, args):
|
|
diff --git a/src/lib389/lib389/cli_ctl/tls.py b/src/lib389/lib389/cli_ctl/tls.py
|
|
index 9bfabd132..8834f5758 100644
|
|
--- a/src/lib389/lib389/cli_ctl/tls.py
|
|
+++ b/src/lib389/lib389/cli_ctl/tls.py
|
|
@@ -8,7 +8,7 @@
|
|
#
|
|
import os
|
|
from lib389.nss_ssl import NssSsl, CERT_NAME, CA_NAME
|
|
-from lib389.cli_base import _warn
|
|
+from lib389.cli_base import _warn, CustomHelpFormatter
|
|
|
|
|
|
def show_servercert(inst, log, args):
|
|
@@ -97,26 +97,27 @@ def export_cert(inst, log, args):
|
|
|
|
|
|
def create_parser(subparsers):
|
|
- tls_parser = subparsers.add_parser('tls', help="Manage TLS certificates")
|
|
+ tls_parser = subparsers.add_parser('tls', help="Manage TLS certificates", formatter_class=CustomHelpFormatter)
|
|
|
|
subcommands = tls_parser.add_subparsers(help='action')
|
|
|
|
- list_ca_parser = subcommands.add_parser('list-ca', help='list server certificate authorities including intermediates')
|
|
+ list_ca_parser = subcommands.add_parser('list-ca', help='list server certificate authorities including intermediates', formatter_class=CustomHelpFormatter)
|
|
list_ca_parser.set_defaults(func=list_cas)
|
|
|
|
- list_client_ca_parser = subcommands.add_parser('list-client-ca', help='list client certificate authorities including intermediates')
|
|
+ list_client_ca_parser = subcommands.add_parser('list-client-ca', help='list client certificate authorities including intermediates', formatter_class=CustomHelpFormatter)
|
|
list_client_ca_parser.set_defaults(func=list_client_cas)
|
|
|
|
- show_servercert_parser = subcommands.add_parser('show-server-cert', help='Show the active server certificate that clients will see and verify')
|
|
+ show_servercert_parser = subcommands.add_parser('show-server-cert', help='Show the active server certificate that clients will see and verify', formatter_class=CustomHelpFormatter)
|
|
show_servercert_parser.set_defaults(func=show_servercert)
|
|
|
|
- show_cert_parser = subcommands.add_parser('show-cert', help='Show a certificate\'s details referenced by it\'s nickname. This is analogous to certutil -L -d <path> -n <nickname>')
|
|
+ show_cert_parser = subcommands.add_parser('show-cert', help='Show a certificate\'s details referenced by it\'s nickname. This is analogous to certutil -L -d <path> -n <nickname>', formatter_class=CustomHelpFormatter)
|
|
show_cert_parser.add_argument('nickname', help="The nickname (friendly name) of the certificate to display")
|
|
show_cert_parser.set_defaults(func=show_cert)
|
|
|
|
generate_server_cert_csr_parser = subcommands.add_parser(
|
|
'generate-server-cert-csr',
|
|
- help="Generate a Server-Cert certificate signing request - the csr is then submitted to a CA for verification, and when signed you import with import-ca and import-server-cert"
|
|
+ help="Generate a Server-Cert certificate signing request - the csr is then submitted to a CA for verification, and when signed you import with import-ca and import-server-cert",
|
|
+ formatter_class=CustomHelpFormatter
|
|
)
|
|
generate_server_cert_csr_parser.add_argument('--subject', '-s',
|
|
default=None,
|
|
@@ -127,7 +128,8 @@ def create_parser(subparsers):
|
|
|
|
import_client_ca_parser = subcommands.add_parser(
|
|
'import-client-ca',
|
|
- help="Import a CA trusted to issue user (client) certificates. This is part of how client certificate authentication functions."
|
|
+ help="Import a CA trusted to issue user (client) certificates. This is part of how client certificate authentication functions.",
|
|
+ formatter_class=CustomHelpFormatter
|
|
)
|
|
import_client_ca_parser.add_argument('cert_path',
|
|
help="The path to the x509 cert to import as a client trust root")
|
|
@@ -137,7 +139,8 @@ def create_parser(subparsers):
|
|
import_ca_parser = subcommands.add_parser(
|
|
'import-ca',
|
|
help="Import a CA or intermediate CA for signing this servers certificates (aka Server-Cert). "
|
|
- "You should import all the CA's in the chain as required. PEM bundles are accepted"
|
|
+ "You should import all the CA's in the chain as required. PEM bundles are accepted",
|
|
+ formatter_class=CustomHelpFormatter
|
|
)
|
|
import_ca_parser.add_argument('cert_path',
|
|
help="The path to the x509 cert to import as a server CA")
|
|
@@ -146,7 +149,8 @@ def create_parser(subparsers):
|
|
|
|
import_server_cert_parser = subcommands.add_parser(
|
|
'import-server-cert',
|
|
- help="Import a new Server-Cert after the csr has been signed from a CA."
|
|
+ help="Import a new Server-Cert after the csr has been signed from a CA.",
|
|
+ formatter_class=CustomHelpFormatter
|
|
)
|
|
import_server_cert_parser.add_argument('cert_path',
|
|
help="The path to the x509 cert to import as Server-Cert")
|
|
@@ -154,7 +158,8 @@ def create_parser(subparsers):
|
|
|
|
import_server_key_cert_parser = subcommands.add_parser(
|
|
'import-server-key-cert',
|
|
- help="Import a new key and Server-Cert after having been signed from a CA. This is used if you have an external csr tool or a service like lets encrypt that generates PEM keys externally."
|
|
+ help="Import a new key and Server-Cert after having been signed from a CA. This is used if you have an external csr tool or a service like lets encrypt that generates PEM keys externally.",
|
|
+ formatter_class=CustomHelpFormatter
|
|
)
|
|
import_server_key_cert_parser.add_argument('cert_path',
|
|
help="The path to the x509 cert to import as Server-Cert")
|
|
@@ -164,14 +169,16 @@ def create_parser(subparsers):
|
|
|
|
remove_cert_parser = subcommands.add_parser(
|
|
'remove-cert',
|
|
- help="Delete a certificate from this database. This will remove it from acting as a CA, a client CA or the Server-Cert role."
|
|
+ help="Delete a certificate from this database. This will remove it from acting as a CA, a client CA or the Server-Cert role.",
|
|
+ formatter_class=CustomHelpFormatter
|
|
)
|
|
remove_cert_parser.add_argument('nickname', help="The name of the certificate to delete")
|
|
remove_cert_parser.set_defaults(func=remove_cert)
|
|
|
|
export_cert_parser = subcommands.add_parser(
|
|
'export-cert',
|
|
- help="Export a certificate to PEM or DER/Binary format. PEM format is the default"
|
|
+ help="Export a certificate to PEM or DER/Binary format. PEM format is the default",
|
|
+ formatter_class=CustomHelpFormatter
|
|
)
|
|
export_cert_parser.add_argument('nickname', help="The name of the certificate to export")
|
|
export_cert_parser.add_argument('--binary-format', action='store_true',
|
|
diff --git a/src/lib389/lib389/cli_idm/account.py b/src/lib389/lib389/cli_idm/account.py
|
|
index 6c7aebce1..5d7b9cc77 100644
|
|
--- a/src/lib389/lib389/cli_idm/account.py
|
|
+++ b/src/lib389/lib389/cli_idm/account.py
|
|
@@ -20,6 +20,7 @@ from lib389.cli_base import (
|
|
_get_arg,
|
|
_get_dn_arg,
|
|
_warn,
|
|
+ CustomHelpFormatter
|
|
)
|
|
from lib389.cli_idm import _generic_rename_dn
|
|
|
|
@@ -213,42 +214,42 @@ like modify, locking and unlocking. To create an account, see "user" subcommand
|
|
|
|
subcommands = account_parser.add_subparsers(help='action')
|
|
|
|
- list_parser = subcommands.add_parser('list', help='list accounts that could login to the directory')
|
|
+ list_parser = subcommands.add_parser('list', help='list accounts that could login to the directory', formatter_class=CustomHelpFormatter)
|
|
list_parser.set_defaults(func=list)
|
|
|
|
- get_dn_parser = subcommands.add_parser('get-by-dn', help='get-by-dn <dn>')
|
|
+ get_dn_parser = subcommands.add_parser('get-by-dn', help='get-by-dn <dn>', formatter_class=CustomHelpFormatter)
|
|
get_dn_parser.set_defaults(func=get_dn)
|
|
get_dn_parser.add_argument('dn', nargs='?', help='The dn to get and display')
|
|
|
|
- modify_dn_parser = subcommands.add_parser('modify-by-dn', help='modify-by-dn <dn> <add|delete|replace>:<attribute>:<value> ...')
|
|
+ modify_dn_parser = subcommands.add_parser('modify-by-dn', help='modify-by-dn <dn> <add|delete|replace>:<attribute>:<value> ...', formatter_class=CustomHelpFormatter)
|
|
modify_dn_parser.set_defaults(func=modify)
|
|
modify_dn_parser.add_argument('dn', nargs=1, help='The dn to get and display')
|
|
modify_dn_parser.add_argument('changes', nargs='+', help="A list of changes to apply in format: <add|delete|replace>:<attribute>:<value>")
|
|
|
|
- rename_dn_parser = subcommands.add_parser('rename-by-dn', help='rename the object')
|
|
+ rename_dn_parser = subcommands.add_parser('rename-by-dn', help='rename the object', formatter_class=CustomHelpFormatter)
|
|
rename_dn_parser.set_defaults(func=rename)
|
|
rename_dn_parser.add_argument('dn', help='The dn to rename')
|
|
rename_dn_parser.add_argument('new_dn', help='A new role dn')
|
|
rename_dn_parser.add_argument('--keep-old-rdn', action='store_true', help="Specify whether the old RDN (i.e. 'cn: old_role') should be kept as an attribute of the entry or not")
|
|
|
|
- delete_parser = subcommands.add_parser('delete', help='deletes the account')
|
|
+ delete_parser = subcommands.add_parser('delete', help='deletes the account', formatter_class=CustomHelpFormatter)
|
|
delete_parser.set_defaults(func=delete)
|
|
delete_parser.add_argument('dn', nargs='?', help='The dn of the account to delete')
|
|
|
|
- lock_parser = subcommands.add_parser('lock', help='lock')
|
|
+ lock_parser = subcommands.add_parser('lock', help='lock', formatter_class=CustomHelpFormatter)
|
|
lock_parser.set_defaults(func=lock)
|
|
lock_parser.add_argument('dn', nargs='?', help='The dn to lock')
|
|
|
|
- unlock_parser = subcommands.add_parser('unlock', help='unlock')
|
|
+ unlock_parser = subcommands.add_parser('unlock', help='unlock', formatter_class=CustomHelpFormatter)
|
|
unlock_parser.set_defaults(func=unlock)
|
|
unlock_parser.add_argument('dn', nargs='?', help='The dn to unlock')
|
|
|
|
- status_parser = subcommands.add_parser('entry-status', help='status of a single entry')
|
|
+ status_parser = subcommands.add_parser('entry-status', help='status of a single entry', formatter_class=CustomHelpFormatter)
|
|
status_parser.set_defaults(func=entry_status)
|
|
status_parser.add_argument('dn', nargs='?', help='The single entry dn to check')
|
|
status_parser.add_argument('-V', '--details', action='store_true', help="Print more account policy details about the entry")
|
|
|
|
- status_parser = subcommands.add_parser('subtree-status', help='status of a subtree')
|
|
+ status_parser = subcommands.add_parser('subtree-status', help='status of a subtree', formatter_class=CustomHelpFormatter)
|
|
status_parser.set_defaults(func=subtree_status)
|
|
status_parser.add_argument('basedn', help="Search base for finding entries")
|
|
status_parser.add_argument('-V', '--details', action='store_true', help="Print more account policy details about the entries")
|
|
@@ -258,18 +259,18 @@ like modify, locking and unlocking. To create an account, see "user" subcommand
|
|
status_parser.add_argument('-o', '--become-inactive-on',
|
|
help="Only display entries that will become inactive before specified date (in a format 2007-04-25T14:30)")
|
|
|
|
- reset_pw_parser = subcommands.add_parser('reset_password', help='Reset the password of an account. This should be performed by a directory admin.')
|
|
+ reset_pw_parser = subcommands.add_parser('reset_password', help='Reset the password of an account. This should be performed by a directory admin.', formatter_class=CustomHelpFormatter)
|
|
reset_pw_parser.set_defaults(func=reset_password)
|
|
reset_pw_parser.add_argument('dn', nargs='?', help='The dn to reset the password for')
|
|
reset_pw_parser.add_argument('new_password', nargs='?', help='The new password to set')
|
|
|
|
- change_pw_parser = subcommands.add_parser('change_password', help='Change the password of an account. This can be performed by any user (with correct rights)')
|
|
+ change_pw_parser = subcommands.add_parser('change_password', help='Change the password of an account. This can be performed by any user (with correct rights)', formatter_class=CustomHelpFormatter)
|
|
change_pw_parser.set_defaults(func=change_password)
|
|
change_pw_parser.add_argument('dn', nargs='?', help='The dn to change the password for')
|
|
change_pw_parser.add_argument('new_password', nargs='?', help='The new password to set')
|
|
change_pw_parser.add_argument('current_password', nargs='?', help='The accounts current password')
|
|
|
|
- bulk_update_parser = subcommands.add_parser('bulk_update', help='Perform a common operation to a set of entries')
|
|
+ bulk_update_parser = subcommands.add_parser('bulk_update', help='Perform a common operation to a set of entries', formatter_class=CustomHelpFormatter)
|
|
bulk_update_parser.set_defaults(func=bulk_update)
|
|
bulk_update_parser.add_argument('basedn', help="Search base for finding entries, only the children of this DN are processed")
|
|
bulk_update_parser.add_argument('-f', '--filter', help="Search filter for finding entries, default is '(objectclass=*)'")
|
|
diff --git a/src/lib389/lib389/cli_idm/client_config.py b/src/lib389/lib389/cli_idm/client_config.py
|
|
index 027723c64..dd932f132 100644
|
|
--- a/src/lib389/lib389/cli_idm/client_config.py
|
|
+++ b/src/lib389/lib389/cli_idm/client_config.py
|
|
@@ -10,6 +10,7 @@ from lib389.idm.user import nsUserAccounts
|
|
from lib389.idm.group import Groups
|
|
from lib389.plugins import MemberOfPlugin
|
|
from lib389.utils import basedn_to_ldap_dns_uri
|
|
+from lib389.cli_base import CustomHelpFormatter
|
|
|
|
SSSD_CONF_TEMPLATE = """
|
|
#
|
|
diff --git a/src/lib389/lib389/cli_idm/group.py b/src/lib389/lib389/cli_idm/group.py
|
|
index 3aafdf72d..08bdb36e8 100644
|
|
--- a/src/lib389/lib389/cli_idm/group.py
|
|
+++ b/src/lib389/lib389/cli_idm/group.py
|
|
@@ -8,7 +8,7 @@
|
|
# --- END COPYRIGHT BLOCK ---
|
|
|
|
from lib389.idm.group import Group, Groups, MUST_ATTRIBUTES
|
|
-from lib389.cli_base import populate_attr_arguments, _generic_modify
|
|
+from lib389.cli_base import populate_attr_arguments, _generic_modify, CustomHelpFormatter
|
|
from lib389.cli_idm import (
|
|
_generic_list,
|
|
_generic_get,
|
|
@@ -103,46 +103,46 @@ def create_parser(subparsers):
|
|
'"member"')
|
|
subcommands = group_parser.add_subparsers(help='action')
|
|
|
|
- list_parser = subcommands.add_parser('list', help='list')
|
|
+ list_parser = subcommands.add_parser('list', help='list', formatter_class=CustomHelpFormatter)
|
|
list_parser.set_defaults(func=list)
|
|
|
|
- get_parser = subcommands.add_parser('get', help='get')
|
|
+ get_parser = subcommands.add_parser('get', help='get', formatter_class=CustomHelpFormatter)
|
|
get_parser.set_defaults(func=get)
|
|
get_parser.add_argument('selector', nargs='?', help='The term to search for')
|
|
|
|
- get_dn_parser = subcommands.add_parser('get_dn', help='get_dn')
|
|
+ get_dn_parser = subcommands.add_parser('get_dn', help='get_dn', formatter_class=CustomHelpFormatter)
|
|
get_dn_parser.set_defaults(func=get_dn)
|
|
get_dn_parser.add_argument('dn', nargs='?', help='The dn to get')
|
|
|
|
- create_parser = subcommands.add_parser('create', help='create')
|
|
+ create_parser = subcommands.add_parser('create', help='create', formatter_class=CustomHelpFormatter)
|
|
create_parser.set_defaults(func=create)
|
|
populate_attr_arguments(create_parser, MUST_ATTRIBUTES)
|
|
|
|
- delete_parser = subcommands.add_parser('delete', help='deletes the object')
|
|
+ delete_parser = subcommands.add_parser('delete', help='deletes the object', formatter_class=CustomHelpFormatter)
|
|
delete_parser.set_defaults(func=delete)
|
|
delete_parser.add_argument('dn', nargs='?', help='The dn to delete')
|
|
|
|
- modify_parser = subcommands.add_parser('modify', help='modify <add|delete|replace>:<attribute>:<value> ...')
|
|
+ modify_parser = subcommands.add_parser('modify', help='modify <add|delete|replace>:<attribute>:<value> ...', formatter_class=CustomHelpFormatter)
|
|
modify_parser.set_defaults(func=modify)
|
|
modify_parser.add_argument('selector', nargs=1, help='The %s to modify' % RDN)
|
|
modify_parser.add_argument('changes', nargs='+', help="A list of changes to apply in format: <add|delete|replace>:<attribute>:<value>")
|
|
|
|
- rename_parser = subcommands.add_parser('rename', help='rename the object')
|
|
+ rename_parser = subcommands.add_parser('rename', help='rename the object', formatter_class=CustomHelpFormatter)
|
|
rename_parser.set_defaults(func=rename)
|
|
rename_parser.add_argument('selector', help='The %s to rename' % RDN)
|
|
rename_parser.add_argument('new_name', help='A new group name')
|
|
rename_parser.add_argument('--keep-old-rdn', action='store_true', help="Specify whether the old RDN (i.e. 'cn: old_group') should be kept as an attribute of the entry or not")
|
|
|
|
- members_parser = subcommands.add_parser('members', help="List member dns of a group")
|
|
+ members_parser = subcommands.add_parser('members', help="List member dns of a group", formatter_class=CustomHelpFormatter)
|
|
members_parser.set_defaults(func=members)
|
|
members_parser.add_argument('cn', nargs='?', help="cn of group to list members of")
|
|
|
|
- add_member_parser = subcommands.add_parser('add_member', help="Add a member to a group")
|
|
+ add_member_parser = subcommands.add_parser('add_member', help="Add a member to a group", formatter_class=CustomHelpFormatter)
|
|
add_member_parser.set_defaults(func=add_member)
|
|
add_member_parser.add_argument('cn', nargs='?', help="cn of group to add member to")
|
|
add_member_parser.add_argument('dn', nargs='?', help="dn of object to add to group as member")
|
|
|
|
- remove_member_parser = subcommands.add_parser('remove_member', help="Remove a member from a group")
|
|
+ remove_member_parser = subcommands.add_parser('remove_member', help="Remove a member from a group", formatter_class=CustomHelpFormatter)
|
|
remove_member_parser.set_defaults(func=remove_member)
|
|
remove_member_parser.add_argument('cn', nargs='?', help="cn of group to remove member from")
|
|
remove_member_parser.add_argument('dn', nargs='?', help="dn of object to remove from group as member")
|
|
diff --git a/src/lib389/lib389/cli_idm/initialise.py b/src/lib389/lib389/cli_idm/initialise.py
|
|
index 26ae02d46..172fed7e6 100644
|
|
--- a/src/lib389/lib389/cli_idm/initialise.py
|
|
+++ b/src/lib389/lib389/cli_idm/initialise.py
|
|
@@ -8,6 +8,7 @@
|
|
|
|
from lib389._constants import INSTALL_LATEST_CONFIG
|
|
from lib389.configurations import get_sample_entries
|
|
+from lib389.cli_base import CustomHelpFormatter
|
|
|
|
def initialise(inst, basedn, log, args):
|
|
sample_entries = get_sample_entries(args.version)
|
|
@@ -16,7 +17,7 @@ def initialise(inst, basedn, log, args):
|
|
s_ent.apply()
|
|
|
|
def create_parser(subparsers):
|
|
- initialise_parser = subparsers.add_parser('initialise', help="Initialise a backend with domain information and sample entries")
|
|
+ initialise_parser = subparsers.add_parser('initialise', help="Initialise a backend with domain information and sample entries", formatter_class=CustomHelpFormatter)
|
|
initialise_parser.set_defaults(func=initialise)
|
|
initialise_parser.add_argument('--version', help="The version of entries to create.", default=INSTALL_LATEST_CONFIG)
|
|
|
|
diff --git a/src/lib389/lib389/cli_idm/organizationalunit.py b/src/lib389/lib389/cli_idm/organizationalunit.py
|
|
index 3e430dd09..1ec8a1a63 100644
|
|
--- a/src/lib389/lib389/cli_idm/organizationalunit.py
|
|
+++ b/src/lib389/lib389/cli_idm/organizationalunit.py
|
|
@@ -7,7 +7,7 @@
|
|
# --- END COPYRIGHT BLOCK ---
|
|
|
|
from lib389.idm.organizationalunit import OrganizationalUnit, OrganizationalUnits, MUST_ATTRIBUTES
|
|
-from lib389.cli_base import populate_attr_arguments, _generic_modify
|
|
+from lib389.cli_base import populate_attr_arguments, _generic_modify, CustomHelpFormatter
|
|
from lib389.cli_idm import (
|
|
_generic_list,
|
|
_generic_get,
|
|
@@ -56,35 +56,35 @@ def rename(inst, basedn, log, args, warn=True):
|
|
_generic_rename(inst, basedn, log.getChild('_generic_rename'), MANY, rdn, args)
|
|
|
|
def create_parser(subparsers):
|
|
- ou_parser = subparsers.add_parser('organizationalunit', help='Manage organizational units')
|
|
+ ou_parser = subparsers.add_parser('organizationalunit', help='Manage organizational units', formatter_class=CustomHelpFormatter)
|
|
|
|
subcommands = ou_parser.add_subparsers(help='action')
|
|
|
|
- list_parser = subcommands.add_parser('list', help='list')
|
|
+ list_parser = subcommands.add_parser('list', help='list', formatter_class=CustomHelpFormatter)
|
|
list_parser.set_defaults(func=list)
|
|
|
|
- get_parser = subcommands.add_parser('get', help='get')
|
|
+ get_parser = subcommands.add_parser('get', help='get', formatter_class=CustomHelpFormatter)
|
|
get_parser.set_defaults(func=get)
|
|
get_parser.add_argument('selector', nargs='?', help='The term to search for')
|
|
|
|
- get_dn_parser = subcommands.add_parser('get_dn', help='get_dn')
|
|
+ get_dn_parser = subcommands.add_parser('get_dn', help='get_dn', formatter_class=CustomHelpFormatter)
|
|
get_dn_parser.set_defaults(func=get_dn)
|
|
get_dn_parser.add_argument('dn', nargs='?', help='The dn to get')
|
|
|
|
- create_parser = subcommands.add_parser('create', help='create')
|
|
+ create_parser = subcommands.add_parser('create', help='create', formatter_class=CustomHelpFormatter)
|
|
create_parser.set_defaults(func=create)
|
|
populate_attr_arguments(create_parser, MUST_ATTRIBUTES)
|
|
|
|
- delete_parser = subcommands.add_parser('delete', help='deletes the object')
|
|
+ delete_parser = subcommands.add_parser('delete', help='deletes the object', formatter_class=CustomHelpFormatter)
|
|
delete_parser.set_defaults(func=delete)
|
|
delete_parser.add_argument('dn', nargs='?', help='The dn to delete')
|
|
|
|
- modify_parser = subcommands.add_parser('modify', help='modify <add|delete|replace>:<attribute>:<value> ...')
|
|
+ modify_parser = subcommands.add_parser('modify', help='modify <add|delete|replace>:<attribute>:<value> ...', formatter_class=CustomHelpFormatter)
|
|
modify_parser.set_defaults(func=modify)
|
|
modify_parser.add_argument('selector', nargs=1, help='The %s to modify' % RDN)
|
|
modify_parser.add_argument('changes', nargs='+', help="A list of changes to apply in format: <add|delete|replace>:<attribute>:<value>")
|
|
|
|
- rename_parser = subcommands.add_parser('rename', help='rename the object')
|
|
+ rename_parser = subcommands.add_parser('rename', help='rename the object', formatter_class=CustomHelpFormatter)
|
|
rename_parser.set_defaults(func=rename)
|
|
rename_parser.add_argument('selector', help='The %s to rename' % RDN)
|
|
rename_parser.add_argument('new_name', help='A new organizational unit name')
|
|
diff --git a/src/lib389/lib389/cli_idm/posixgroup.py b/src/lib389/lib389/cli_idm/posixgroup.py
|
|
index 2f5381a56..0b71d97c0 100644
|
|
--- a/src/lib389/lib389/cli_idm/posixgroup.py
|
|
+++ b/src/lib389/lib389/cli_idm/posixgroup.py
|
|
@@ -8,7 +8,7 @@
|
|
# --- END COPYRIGHT BLOCK ---
|
|
|
|
from lib389.idm.posixgroup import PosixGroup, PosixGroups, MUST_ATTRIBUTES
|
|
-from lib389.cli_base import populate_attr_arguments, _generic_modify
|
|
+from lib389.cli_base import populate_attr_arguments, _generic_modify, CustomHelpFormatter
|
|
from lib389.cli_idm import (
|
|
_generic_list,
|
|
_generic_get,
|
|
@@ -69,31 +69,31 @@ def create_parser(subparsers):
|
|
'ou=groups") needs to exist prior to managing posix groups.')
|
|
subcommands = posixgroup_parser.add_subparsers(help='action')
|
|
|
|
- list_parser = subcommands.add_parser('list', help='list')
|
|
+ list_parser = subcommands.add_parser('list', help='list', formatter_class=CustomHelpFormatter)
|
|
list_parser.set_defaults(func=list)
|
|
|
|
- get_parser = subcommands.add_parser('get', help='get')
|
|
+ get_parser = subcommands.add_parser('get', help='get', formatter_class=CustomHelpFormatter)
|
|
get_parser.set_defaults(func=get)
|
|
get_parser.add_argument('selector', nargs='?', help='The term to search for')
|
|
|
|
- get_dn_parser = subcommands.add_parser('get_dn', help='get_dn')
|
|
+ get_dn_parser = subcommands.add_parser('get_dn', help='get_dn', formatter_class=CustomHelpFormatter)
|
|
get_dn_parser.set_defaults(func=get_dn)
|
|
get_dn_parser.add_argument('dn', nargs='?', help='The dn to get')
|
|
|
|
- create_group_parser = subcommands.add_parser('create', help='create')
|
|
+ create_group_parser = subcommands.add_parser('create', help='create', formatter_class=CustomHelpFormatter)
|
|
create_group_parser.set_defaults(func=create)
|
|
populate_attr_arguments(create_group_parser, MUST_ATTRIBUTES)
|
|
|
|
- delete_parser = subcommands.add_parser('delete', help='deletes the object')
|
|
+ delete_parser = subcommands.add_parser('delete', help='deletes the object', formatter_class=CustomHelpFormatter)
|
|
delete_parser.set_defaults(func=delete)
|
|
delete_parser.add_argument('dn', nargs='?', help='The dn to delete')
|
|
|
|
- modify_parser = subcommands.add_parser('modify', help='modify <add|delete|replace>:<attribute>:<value> ...')
|
|
+ modify_parser = subcommands.add_parser('modify', help='modify <add|delete|replace>:<attribute>:<value> ...', formatter_class=CustomHelpFormatter)
|
|
modify_parser.set_defaults(func=modify)
|
|
modify_parser.add_argument('selector', nargs=1, help='The %s to modify' % RDN)
|
|
modify_parser.add_argument('changes', nargs='+', help="A list of changes to apply in format: <add|delete|replace>:<attribute>:<value>")
|
|
|
|
- rename_parser = subcommands.add_parser('rename', help='rename the object')
|
|
+ rename_parser = subcommands.add_parser('rename', help='rename the object', formatter_class=CustomHelpFormatter)
|
|
rename_parser.set_defaults(func=rename)
|
|
rename_parser.add_argument('selector', help='The %s to rename' % RDN)
|
|
rename_parser.add_argument('new_name', help='A new posix group name')
|
|
diff --git a/src/lib389/lib389/cli_idm/role.py b/src/lib389/lib389/cli_idm/role.py
|
|
index 5bbec9ce1..4b09e1af4 100644
|
|
--- a/src/lib389/lib389/cli_idm/role.py
|
|
+++ b/src/lib389/lib389/cli_idm/role.py
|
|
@@ -30,6 +30,7 @@ from lib389.cli_base import (
|
|
_generic_create,
|
|
_get_dn_arg,
|
|
_warn,
|
|
+ CustomHelpFormatter
|
|
)
|
|
from lib389.cli_idm import _generic_rename_dn
|
|
|
|
@@ -132,61 +133,61 @@ def unlock(inst, basedn, log, args):
|
|
|
|
|
|
def create_parser(subparsers):
|
|
- role_parser = subparsers.add_parser('role', help='''Manage roles.''')
|
|
+ role_parser = subparsers.add_parser('role', help='''Manage roles.''', formatter_class=CustomHelpFormatter)
|
|
|
|
subcommands = role_parser.add_subparsers(help='action')
|
|
|
|
- list_parser = subcommands.add_parser('list', help='list roles that could login to the directory')
|
|
+ list_parser = subcommands.add_parser('list', help='list roles that could login to the directory', formatter_class=CustomHelpFormatter)
|
|
list_parser.set_defaults(func=list)
|
|
|
|
- get_parser = subcommands.add_parser('get', help='get')
|
|
+ get_parser = subcommands.add_parser('get', help='get', formatter_class=CustomHelpFormatter)
|
|
get_parser.set_defaults(func=get)
|
|
get_parser.add_argument('selector', nargs='?', help='The term to search for')
|
|
|
|
- get_dn_parser = subcommands.add_parser('get-by-dn', help='get-by-dn <dn>')
|
|
+ get_dn_parser = subcommands.add_parser('get-by-dn', help='get-by-dn <dn>', formatter_class=CustomHelpFormatter)
|
|
get_dn_parser.set_defaults(func=get_dn)
|
|
get_dn_parser.add_argument('dn', nargs='?', help='The dn to get and display')
|
|
|
|
- create_managed_parser = subcommands.add_parser('create-managed', help='create')
|
|
+ create_managed_parser = subcommands.add_parser('create-managed', help='create', formatter_class=CustomHelpFormatter)
|
|
create_managed_parser.set_defaults(func=create_managed)
|
|
populate_attr_arguments(create_managed_parser, MUST_ATTRIBUTES)
|
|
|
|
- create_filtered_parser = subcommands.add_parser('create-filtered', help='create')
|
|
+ create_filtered_parser = subcommands.add_parser('create-filtered', help='create', formatter_class=CustomHelpFormatter)
|
|
create_filtered_parser.set_defaults(func=create_filtered)
|
|
populate_attr_arguments(create_filtered_parser, MUST_ATTRIBUTES)
|
|
|
|
- create_nested_parser = subcommands.add_parser('create-nested', help='create')
|
|
+ create_nested_parser = subcommands.add_parser('create-nested', help='create', formatter_class=CustomHelpFormatter)
|
|
create_nested_parser.set_defaults(func=create_nested)
|
|
populate_attr_arguments(create_nested_parser, MUST_ATTRIBUTES_NESTED)
|
|
|
|
- modify_dn_parser = subcommands.add_parser('modify-by-dn', help='modify-by-dn <dn> <add|delete|replace>:<attribute>:<value> ...')
|
|
+ modify_dn_parser = subcommands.add_parser('modify-by-dn', help='modify-by-dn <dn> <add|delete|replace>:<attribute>:<value> ...', formatter_class=CustomHelpFormatter)
|
|
modify_dn_parser.set_defaults(func=modify)
|
|
modify_dn_parser.add_argument('dn', nargs=1, help='The dn to modify')
|
|
modify_dn_parser.add_argument('changes', nargs='+', help="A list of changes to apply in format: <add|delete|replace>:<attribute>:<value>")
|
|
|
|
- rename_dn_parser = subcommands.add_parser('rename-by-dn', help='rename the object')
|
|
+ rename_dn_parser = subcommands.add_parser('rename-by-dn', help='rename the object', formatter_class=CustomHelpFormatter)
|
|
rename_dn_parser.set_defaults(func=rename)
|
|
rename_dn_parser.add_argument('dn', help='The dn to rename')
|
|
rename_dn_parser.add_argument('new_dn', help='A new account dn')
|
|
rename_dn_parser.add_argument('--keep-old-rdn', action='store_true', help="Specify whether the old RDN (i.e. 'cn: old_account') should be kept as an attribute of the entry or not")
|
|
|
|
- delete_parser = subcommands.add_parser('delete', help='deletes the role')
|
|
+ delete_parser = subcommands.add_parser('delete', help='deletes the role', formatter_class=CustomHelpFormatter)
|
|
delete_parser.set_defaults(func=delete)
|
|
delete_parser.add_argument('dn', nargs='?', help='The dn of the role to delete')
|
|
|
|
- lock_parser = subcommands.add_parser('lock', help='lock')
|
|
+ lock_parser = subcommands.add_parser('lock', help='lock', formatter_class=CustomHelpFormatter)
|
|
lock_parser.set_defaults(func=lock)
|
|
lock_parser.add_argument('dn', nargs='?', help='The dn to lock')
|
|
|
|
- unlock_parser = subcommands.add_parser('unlock', help='unlock')
|
|
+ unlock_parser = subcommands.add_parser('unlock', help='unlock', formatter_class=CustomHelpFormatter)
|
|
unlock_parser.set_defaults(func=unlock)
|
|
unlock_parser.add_argument('dn', nargs='?', help='The dn to unlock')
|
|
|
|
- status_parser = subcommands.add_parser('entry-status', help='status of a single entry')
|
|
+ status_parser = subcommands.add_parser('entry-status', help='status of a single entry', formatter_class=CustomHelpFormatter)
|
|
status_parser.set_defaults(func=entry_status)
|
|
status_parser.add_argument('dn', nargs='?', help='The single entry dn to check')
|
|
|
|
- status_parser = subcommands.add_parser('subtree-status', help='status of a subtree')
|
|
+ status_parser = subcommands.add_parser('subtree-status', help='status of a subtree', formatter_class=CustomHelpFormatter)
|
|
status_parser.set_defaults(func=subtree_status)
|
|
status_parser.add_argument('basedn', help="Search base for finding entries")
|
|
status_parser.add_argument('-f', '--filter', help="Search filter for finding entries")
|
|
diff --git a/src/lib389/lib389/cli_idm/service.py b/src/lib389/lib389/cli_idm/service.py
|
|
index da2342d12..c62fc12d1 100644
|
|
--- a/src/lib389/lib389/cli_idm/service.py
|
|
+++ b/src/lib389/lib389/cli_idm/service.py
|
|
@@ -8,7 +8,7 @@
|
|
# --- END COPYRIGHT BLOCK ---
|
|
|
|
from lib389.idm.services import ServiceAccount, ServiceAccounts
|
|
-from lib389.cli_base import populate_attr_arguments, _generic_modify
|
|
+from lib389.cli_base import populate_attr_arguments, _generic_modify, CustomHelpFormatter
|
|
from lib389.cli_idm import (
|
|
_generic_list,
|
|
_generic_get,
|
|
@@ -57,37 +57,37 @@ def rename(inst, basedn, log, args, warn=True):
|
|
_generic_rename(inst, basedn, log.getChild('_generic_rename'), MANY, rdn, args)
|
|
|
|
def create_parser(subparsers):
|
|
- service_parser = subparsers.add_parser('service', help='Manage service accounts')
|
|
+ service_parser = subparsers.add_parser('service', help='Manage service accounts', formatter_class=CustomHelpFormatter)
|
|
|
|
subcommands = service_parser.add_subparsers(help='action')
|
|
|
|
- list_parser = subcommands.add_parser('list', help='list')
|
|
+ list_parser = subcommands.add_parser('list', help='list', formatter_class=CustomHelpFormatter)
|
|
list_parser.set_defaults(func=list)
|
|
|
|
- get_parser = subcommands.add_parser('get', help='get')
|
|
+ get_parser = subcommands.add_parser('get', help='get', formatter_class=CustomHelpFormatter)
|
|
get_parser.set_defaults(func=get)
|
|
get_parser.add_argument('selector', nargs='?', help='The term to search for')
|
|
|
|
- get_dn_parser = subcommands.add_parser('get_dn', help='get_dn')
|
|
+ get_dn_parser = subcommands.add_parser('get_dn', help='get_dn', formatter_class=CustomHelpFormatter)
|
|
get_dn_parser.set_defaults(func=get_dn)
|
|
get_dn_parser.add_argument('dn', nargs='?', help='The dn to get')
|
|
|
|
- create_parser = subcommands.add_parser('create', help='create')
|
|
+ create_parser = subcommands.add_parser('create', help='create', formatter_class=CustomHelpFormatter)
|
|
create_parser.set_defaults(func=create)
|
|
populate_attr_arguments(create_parser, SINGULAR._must_attributes)
|
|
|
|
- modify_parser = subcommands.add_parser('modify', help='modify <add|delete|replace>:<attribute>:<value> ...')
|
|
+ modify_parser = subcommands.add_parser('modify', help='modify <add|delete|replace>:<attribute>:<value> ...', formatter_class=CustomHelpFormatter)
|
|
modify_parser.set_defaults(func=modify)
|
|
modify_parser.add_argument('selector', nargs=1, help='The %s to modify' % RDN)
|
|
modify_parser.add_argument('changes', nargs='+', help="A list of changes to apply in format: <add|delete|replace>:<attribute>:<value>")
|
|
|
|
- rename_parser = subcommands.add_parser('rename', help='rename the object')
|
|
+ rename_parser = subcommands.add_parser('rename', help='rename the object', formatter_class=CustomHelpFormatter)
|
|
rename_parser.set_defaults(func=rename)
|
|
rename_parser.add_argument('selector', help='The %s to modify' % RDN)
|
|
rename_parser.add_argument('new_name', help='A new service name')
|
|
rename_parser.add_argument('--keep-old-rdn', action='store_true', help="Specify whether the old RDN (i.e. 'cn: old_service') should be kept as an attribute of the entry or not")
|
|
|
|
- delete_parser = subcommands.add_parser('delete', help='deletes the object')
|
|
+ delete_parser = subcommands.add_parser('delete', help='deletes the object', formatter_class=CustomHelpFormatter)
|
|
delete_parser.set_defaults(func=delete)
|
|
delete_parser.add_argument('dn', nargs='?', help='The dn to delete')
|
|
|
|
diff --git a/src/lib389/lib389/cli_idm/uniquegroup.py b/src/lib389/lib389/cli_idm/uniquegroup.py
|
|
index 19cabd570..fc3d6ae36 100644
|
|
--- a/src/lib389/lib389/cli_idm/uniquegroup.py
|
|
+++ b/src/lib389/lib389/cli_idm/uniquegroup.py
|
|
@@ -7,7 +7,7 @@
|
|
# --- END COPYRIGHT BLOCK ---
|
|
|
|
from lib389.idm.group import UniqueGroup, UniqueGroups, MUST_ATTRIBUTES
|
|
-from lib389.cli_base import populate_attr_arguments, _generic_modify
|
|
+from lib389.cli_base import populate_attr_arguments, _generic_modify, CustomHelpFormatter
|
|
from lib389.cli_idm import (
|
|
_generic_list,
|
|
_generic_get,
|
|
@@ -102,46 +102,46 @@ def create_parser(subparsers):
|
|
'"uniquemember"')
|
|
subcommands = group_parser.add_subparsers(help='action')
|
|
|
|
- list_parser = subcommands.add_parser('list', help='list')
|
|
+ list_parser = subcommands.add_parser('list', help='list', formatter_class=CustomHelpFormatter)
|
|
list_parser.set_defaults(func=list)
|
|
|
|
- get_parser = subcommands.add_parser('get', help='get')
|
|
+ get_parser = subcommands.add_parser('get', help='get', formatter_class=CustomHelpFormatter)
|
|
get_parser.set_defaults(func=get)
|
|
get_parser.add_argument('selector', nargs='?', help='The term to search for')
|
|
|
|
- get_dn_parser = subcommands.add_parser('get_dn', help='get_dn')
|
|
+ get_dn_parser = subcommands.add_parser('get_dn', help='get_dn', formatter_class=CustomHelpFormatter)
|
|
get_dn_parser.set_defaults(func=get_dn)
|
|
get_dn_parser.add_argument('dn', nargs='?', help='The dn to get')
|
|
|
|
- create_parser = subcommands.add_parser('create', help='create')
|
|
+ create_parser = subcommands.add_parser('create', help='create', formatter_class=CustomHelpFormatter)
|
|
create_parser.set_defaults(func=create)
|
|
populate_attr_arguments(create_parser, MUST_ATTRIBUTES)
|
|
|
|
- delete_parser = subcommands.add_parser('delete', help='deletes the object')
|
|
+ delete_parser = subcommands.add_parser('delete', help='deletes the object', formatter_class=CustomHelpFormatter)
|
|
delete_parser.set_defaults(func=delete)
|
|
delete_parser.add_argument('dn', nargs='?', help='The dn to delete')
|
|
|
|
- modify_parser = subcommands.add_parser('modify', help='modify <add|delete|replace>:<attribute>:<value> ...')
|
|
+ modify_parser = subcommands.add_parser('modify', help='modify <add|delete|replace>:<attribute>:<value> ...', formatter_class=CustomHelpFormatter)
|
|
modify_parser.set_defaults(func=modify)
|
|
modify_parser.add_argument('selector', nargs=1, help='The %s to modify' % RDN)
|
|
modify_parser.add_argument('changes', nargs='+', help="A list of changes to apply in format: <add|delete|replace>:<attribute>:<value>")
|
|
|
|
- rename_parser = subcommands.add_parser('rename', help='rename the object')
|
|
+ rename_parser = subcommands.add_parser('rename', help='rename the object', formatter_class=CustomHelpFormatter)
|
|
rename_parser.set_defaults(func=rename)
|
|
rename_parser.add_argument('selector', help='The %s to rename' % RDN)
|
|
rename_parser.add_argument('new_name', help='A new group name')
|
|
rename_parser.add_argument('--keep-old-rdn', action='store_true', help="Specify whether the old RDN (i.e. 'cn: old_group') should be kept as an attribute of the entry or not")
|
|
|
|
- members_parser = subcommands.add_parser('members', help="List member dns of a group")
|
|
+ members_parser = subcommands.add_parser('members', help="List member dns of a group", formatter_class=CustomHelpFormatter)
|
|
members_parser.set_defaults(func=members)
|
|
members_parser.add_argument('cn', nargs='?', help="cn of group to list members of")
|
|
|
|
- add_member_parser = subcommands.add_parser('add_member', help="Add a member to a group")
|
|
+ add_member_parser = subcommands.add_parser('add_member', help="Add a member to a group", formatter_class=CustomHelpFormatter)
|
|
add_member_parser.set_defaults(func=add_member)
|
|
add_member_parser.add_argument('cn', nargs='?', help="cn of group to add member to")
|
|
add_member_parser.add_argument('dn', nargs='?', help="dn of object to add to group as member")
|
|
|
|
- remove_member_parser = subcommands.add_parser('remove_member', help="Remove a member from a group")
|
|
+ remove_member_parser = subcommands.add_parser('remove_member', help="Remove a member from a group", formatter_class=CustomHelpFormatter)
|
|
remove_member_parser.set_defaults(func=remove_member)
|
|
remove_member_parser.add_argument('cn', nargs='?', help="cn of group to remove member from")
|
|
remove_member_parser.add_argument('dn', nargs='?', help="dn of object to remove from group as member")
|
|
diff --git a/src/lib389/lib389/cli_idm/user.py b/src/lib389/lib389/cli_idm/user.py
|
|
index e25dec347..a29d8a479 100644
|
|
--- a/src/lib389/lib389/cli_idm/user.py
|
|
+++ b/src/lib389/lib389/cli_idm/user.py
|
|
@@ -8,7 +8,7 @@
|
|
# --- END COPYRIGHT BLOCK ---
|
|
|
|
from lib389.idm.user import nsUserAccount, nsUserAccounts
|
|
-from lib389.cli_base import populate_attr_arguments, _generic_modify
|
|
+from lib389.cli_base import populate_attr_arguments, _generic_modify, CustomHelpFormatter
|
|
from lib389.cli_idm import (
|
|
_generic_list,
|
|
_generic_get,
|
|
@@ -71,33 +71,33 @@ def create_parser(subparsers):
|
|
|
|
subcommands = user_parser.add_subparsers(help='action')
|
|
|
|
- list_parser = subcommands.add_parser('list', help='list')
|
|
+ list_parser = subcommands.add_parser('list', help='list', formatter_class=CustomHelpFormatter)
|
|
list_parser.set_defaults(func=list)
|
|
|
|
- get_parser = subcommands.add_parser('get', help='get')
|
|
+ get_parser = subcommands.add_parser('get', help='get', formatter_class=CustomHelpFormatter)
|
|
get_parser.set_defaults(func=get)
|
|
get_parser.add_argument('selector', nargs='?', help='The term to search for')
|
|
|
|
- get_dn_parser = subcommands.add_parser('get_dn', help='get_dn')
|
|
+ get_dn_parser = subcommands.add_parser('get_dn', help='get_dn', formatter_class=CustomHelpFormatter)
|
|
get_dn_parser.set_defaults(func=get_dn)
|
|
get_dn_parser.add_argument('dn', nargs='?', help='The dn to get')
|
|
|
|
- create_user_parser = subcommands.add_parser('create', help='create')
|
|
+ create_user_parser = subcommands.add_parser('create', help='create', formatter_class=CustomHelpFormatter)
|
|
create_user_parser.set_defaults(func=create)
|
|
populate_attr_arguments(create_user_parser, SINGULAR._must_attributes)
|
|
|
|
- modify_parser = subcommands.add_parser('modify', help='modify <add|delete|replace>:<attribute>:<value> ...')
|
|
+ modify_parser = subcommands.add_parser('modify', help='modify <add|delete|replace>:<attribute>:<value> ...', formatter_class=CustomHelpFormatter)
|
|
modify_parser.set_defaults(func=modify)
|
|
modify_parser.add_argument('selector', nargs=1, help='The %s to modify' % RDN)
|
|
modify_parser.add_argument('changes', nargs='+', help="A list of changes to apply in format: <add|delete|replace>:<attribute>:<value>")
|
|
|
|
- rename_parser = subcommands.add_parser('rename', help='rename the object')
|
|
+ rename_parser = subcommands.add_parser('rename', help='rename the object', formatter_class=CustomHelpFormatter)
|
|
rename_parser.set_defaults(func=rename)
|
|
rename_parser.add_argument('selector', help='The %s to modify' % RDN)
|
|
rename_parser.add_argument('new_name', help='A new user name')
|
|
rename_parser.add_argument('--keep-old-rdn', action='store_true', help="Specify whether the old RDN (i.e. 'cn: old_user') should be kept as an attribute of the entry or not")
|
|
|
|
- delete_parser = subcommands.add_parser('delete', help='deletes the object')
|
|
+ delete_parser = subcommands.add_parser('delete', help='deletes the object', formatter_class=CustomHelpFormatter)
|
|
delete_parser.set_defaults(func=delete)
|
|
delete_parser.add_argument('dn', nargs='?', help='The dn to delete')
|
|
|
|
--
|
|
2.48.1
|
|
|