mirror of
https://salsa.debian.org/freeipa-team/freeipa.git
synced 2025-01-26 16:16:31 -06:00
338: Removed depreciated code from ipa (CLI) script
This commit is contained in:
parent
744406958d
commit
ac7bdf8790
150
ipa
150
ipa
@ -20,160 +20,14 @@
|
||||
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
|
||||
"""
|
||||
Command Line Interface to IPA.
|
||||
Command Line Interface for IPA Administration.
|
||||
|
||||
Just proof of concept stuff in here right now.
|
||||
The CLI functionality is implemented in ipalib/cli.py
|
||||
"""
|
||||
|
||||
import sys
|
||||
from ipalib import api
|
||||
from ipalib.cli import CLI
|
||||
import ipalib.load_plugins
|
||||
|
||||
cli = CLI(api)
|
||||
cli.run()
|
||||
|
||||
sys.exit()
|
||||
|
||||
TAB_WIDTH = 2
|
||||
|
||||
def _(msg):
|
||||
"""
|
||||
Dummy gettext function for testing.
|
||||
"""
|
||||
return msg
|
||||
|
||||
class row(object):
|
||||
def __init__(self, tab, c1, c2=None):
|
||||
assert type(tab) is int
|
||||
assert type(c1) in (str, int)
|
||||
assert type(c2) is str or c2 is None
|
||||
self.tab = tab
|
||||
self.c1 = c1
|
||||
self.c2 = c2
|
||||
|
||||
def __len__(self):
|
||||
return len(str(self.c1))
|
||||
|
||||
def pretty_print(self, just):
|
||||
tab = ' ' * (self.tab * TAB_WIDTH)
|
||||
if self.c2 is None:
|
||||
print '%s%s' % (tab, self.c1)
|
||||
else:
|
||||
if type(self.c1) is int:
|
||||
c1 = str(self.c1).rjust(just)
|
||||
else:
|
||||
c1 = self.c1.ljust(just)
|
||||
print '%s%s %s' % (tab, c1, self.c2)
|
||||
|
||||
def pretty_print(rows):
|
||||
rows = tuple(rows)
|
||||
def get_lengths():
|
||||
yield 0
|
||||
for r in rows:
|
||||
if r.c2 is not None:
|
||||
yield len(r)
|
||||
max_len = max(get_lengths())
|
||||
for r in rows:
|
||||
r.pretty_print(max_len)
|
||||
|
||||
|
||||
def print_commands():
|
||||
print 'Commands:'
|
||||
m = api.max_cmd_len
|
||||
for cmd in api.cmd:
|
||||
print ' %s %s' % (str(cmd).ljust(m), cmd.get_doc(_))
|
||||
|
||||
def print_help(cmd):
|
||||
print 'Help on %s' % cmd
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
def print_api():
|
||||
def iter_api(tab):
|
||||
for name in api:
|
||||
ns = getattr(api, name)
|
||||
yield row(
|
||||
tab,
|
||||
name,
|
||||
repr(ns),
|
||||
)
|
||||
for i in ns:
|
||||
yield row(
|
||||
tab + 1,
|
||||
i.name,
|
||||
repr(i)
|
||||
)
|
||||
|
||||
def iter_obj(tab):
|
||||
for obj in api.obj:
|
||||
yield row(
|
||||
tab,
|
||||
obj.name,
|
||||
repr(obj),
|
||||
)
|
||||
for (n, f) in [('mthd', '.%s()'), ('prop', '.%s')]:
|
||||
ns = getattr(obj, n)
|
||||
yield row(
|
||||
tab + 1,
|
||||
n,
|
||||
repr(ns),
|
||||
)
|
||||
for attr in ns:
|
||||
yield row(
|
||||
tab + 2,
|
||||
f % attr.name,
|
||||
repr(attr),
|
||||
)
|
||||
|
||||
def iter_summary(tab):
|
||||
for name in api:
|
||||
ns = getattr(api, name)
|
||||
yield row(
|
||||
tab,
|
||||
len(ns),
|
||||
name
|
||||
)
|
||||
|
||||
def print_heading(h):
|
||||
print '\n%s:' % h
|
||||
print '-' * (len(h) + 1)
|
||||
|
||||
tab = 1
|
||||
print_heading('API Overview')
|
||||
pretty_print(iter_api(tab))
|
||||
|
||||
print_heading('Object Details')
|
||||
pretty_print(iter_obj(tab))
|
||||
|
||||
print_heading('Summary')
|
||||
pretty_print(iter_summary(tab))
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
if len(sys.argv) < 2:
|
||||
print_commands()
|
||||
print 'Usage: ipa COMMAND [OPTIONS]'
|
||||
sys.exit(2)
|
||||
name= sys.argv[1]
|
||||
if name == '_api_':
|
||||
print_api()
|
||||
sys.exit()
|
||||
elif name not in api.cmd:
|
||||
print_commands()
|
||||
print 'ipa: ERROR: unknown command %r' % name
|
||||
sys.exit(2)
|
||||
api.cmd[name]()
|
||||
|
Loading…
Reference in New Issue
Block a user