Another update to component descriptions + colored text output bolding.

This commit is contained in:
Joshua Harlow
2012-01-26 00:09:46 -08:00
parent 15f9e5501c
commit 31e2e5b112
14 changed files with 91 additions and 144 deletions

View File

@@ -197,19 +197,16 @@ def create_db(cfg, dbname):
def describe(opts=None):
description = """ Module: {module_name}
description = """
Module: {module_name}
Description:
Handles actions for the database component.
{description}
Component options:
{component_opts}
Provides:
{provides_what}
"""
params = dict()
params['component_opts'] = "N/A"
params['component_opts'] = "TBD"
params['module_name'] = __name__
provides = [DBRuntime.__name__,
DBInstaller.__name__,
DBUninstaller.__name__]
params['provides_what'] = ", ".join(sorted(provides))
return description.format(**params)
params['description'] = __doc__ or "Handles actions for the db component."
out = description.format(**params)
return out.strip("\n")

View File

@@ -174,19 +174,16 @@ class GlanceInstaller(comp.PythonInstallComponent):
def describe(opts=None):
description = """ Module: {module_name}
description = """
Module: {module_name}
Description:
Handles actions for the glance component.
{description}
Component options:
{component_opts}
Provides:
{provides_what}
"""
params = dict()
params['component_opts'] = "TBD"
params['module_name'] = __name__
provides = [GlanceRuntime.__name__,
GlanceInstaller.__name__,
GlanceUninstaller.__name__]
params['provides_what'] = ", ".join(sorted(provides))
return description.format(**params)
params['description'] = __doc__ or "Handles actions for the glance component."
out = description.format(**params)
return out.strip("\n")

View File

@@ -209,19 +209,16 @@ class HorizonRuntime(comp.EmptyRuntime):
def describe(opts=None):
description = """ Module: {module_name}
description = """
Module: {module_name}
Description:
Handles actions for the horizon component.
{description}
Component options:
{component_opts}
Provides:
{provides_what}
"""
params = dict()
params['component_opts'] = "N/A"
params['component_opts'] = "TBD"
params['module_name'] = __name__
provides = [HorizonRuntime.__name__,
HorizonInstaller.__name__,
HorizonUninstaller.__name__]
params['provides_what'] = ", ".join(sorted(provides))
return description.format(**params)
params['description'] = __doc__ or "Handles actions for the horizon component."
out = description.format(**params)
return out.strip("\n")

View File

@@ -190,19 +190,16 @@ def get_shared_params(cfg):
def describe(opts=None):
description = """ Module: {module_name}
description = """
Module: {module_name}
Description:
Handles actions for the keystone component.
{description}
Component options:
{component_opts}
Provides:
{provides_what}
"""
params = dict()
params['component_opts'] = "TBD"
params['module_name'] = __name__
provides = [KeystoneRuntime.__name__,
KeystoneInstaller.__name__,
KeystoneUninstaller.__name__]
params['provides_what'] = ", ".join(sorted(provides))
return description.format(**params)
params['description'] = __doc__ or "Handles actions for the keystone component."
out = description.format(**params)
return out.strip("\n")

View File

@@ -50,19 +50,16 @@ class KeyStoneClientRuntime(comp.EmptyRuntime):
def describe(opts=None):
description = """ Module: {module_name}
description = """
Module: {module_name}
Description:
Handles actions for the keystone client component.
{description}
Component options:
{component_opts}
Provides:
{provides_what}
"""
params = dict()
params['component_opts'] = "TBD"
params['module_name'] = __name__
provides = [KeyStoneClientRuntime.__name__,
KeyStoneClientInstaller.__name__,
KeyStoneClientUninstaller.__name__]
params['provides_what'] = ", ".join(sorted(provides))
return description.format(**params)
params['description'] = __doc__ or "Handles actions for the keystone client component."
out = description.format(**params)
return out.strip("\n")

View File

@@ -444,19 +444,16 @@ class NovaConf(object):
def describe(opts=None):
description = """ Module: {module_name}
description = """
Module: {module_name}
Description:
Handles actions for the nova component.
{description}
Component options:
{component_opts}
Provides:
{provides_what}
"""
params = dict()
params['component_opts'] = "TBD"
params['module_name'] = __name__
provides = [NovaRuntime.__name__,
NovaInstaller.__name__,
NovaUninstaller.__name__]
params['provides_what'] = ", ".join(sorted(provides))
return description.format(**params)
params['description'] = __doc__ or "Handles actions for the nova component."
out = description.format(**params)
return out.strip("\n")

View File

@@ -57,19 +57,16 @@ class NovaClientRuntime(comp.EmptyRuntime):
def describe(opts=None):
description = """ Module: {module_name}
description = """
Module: {module_name}
Description:
Handles actions for the nova client component.
{description}
Component options:
{component_opts}
Provides:
{provides_what}
"""
params = dict()
params['component_opts'] = "TBD"
params['module_name'] = __name__
provides = [NovaClientRuntime.__name__,
NovaClientUninstaller.__name__,
NovaClientInstaller.__name__]
params['provides_what'] = ", ".join(sorted(provides))
return description.format(**params)
params['description'] = __doc__ or "Handles actions for the nova client component."
out = description.format(**params)
return out.strip("\n")

View File

@@ -80,19 +80,16 @@ class NoVNCRuntime(comp.ProgramRuntime):
def describe(opts=None):
description = """ Module: {module_name}
description = """
Module: {module_name}
Description:
Handles actions for the nova no-vnc component.
{description}
Component options:
{component_opts}
Provides:
{provides_what}
"""
params = dict()
params['component_opts'] = "TBD"
params['module_name'] = __name__
provides = [NoVNCRuntime.__name__,
NoVNCUninstaller.__name__,
NoVNCInstaller.__name__]
params['provides_what'] = ", ".join(sorted(provides))
return description.format(**params)
params['description'] = __doc__ or "Handles actions for the no-vnc component."
out = description.format(**params)
return out.strip("\n")

View File

@@ -49,19 +49,16 @@ class OpenstackXRuntime(comp.EmptyRuntime):
def describe(opts=None):
description = """ Module: {module_name}
description = """
Module: {module_name}
Description:
Handles actions for the openstack x component.
{description}
Component options:
{component_opts}
Provides:
{provides_what}
"""
params = dict()
params['component_opts'] = "TBD"
params['module_name'] = __name__
provides = [OpenstackXRuntime.__name__,
OpenstackXInstaller.__name__,
OpenstackXUninstaller.__name__]
params['provides_what'] = ", ".join(sorted(provides))
return description.format(**params)
params['description'] = __doc__ or "Handles actions for the no-vnc component."
out = description.format(**params)
return out.strip("\n")

View File

@@ -201,19 +201,16 @@ class QuantumRuntime(comp.EmptyRuntime):
def describe(opts=None):
description = """ Module: {module_name}
description = """
Module: {module_name}
Description:
Handles actions for the quantum component.
{description}
Component options:
{component_opts}
Provides:
{provides_what}
"""
params = dict()
params['component_opts'] = "TBD"
params['module_name'] = __name__
provides = [QuantumRuntime.__name__,
QuantumInstaller.__name__,
QuantumUninstaller.__name__]
params['provides_what'] = ", ".join(sorted(provides))
return description.format(**params)
params['description'] = __doc__ or "Handles actions for the quantum component."
out = description.format(**params)
return out.strip("\n")

View File

@@ -112,19 +112,16 @@ class RabbitRuntime(comp.EmptyRuntime):
def describe(opts=None):
description = """ Module: {module_name}
description = """
Module: {module_name}
Description:
Handles actions for the rabbit-mq component.
{description}
Component options:
{component_opts}
Provides:
{provides_what}
"""
params = dict()
params['component_opts'] = "TBD"
params['module_name'] = __name__
provides = [RabbitRuntime.__name__,
RabbitUninstaller.__name__,
RabbitInstaller.__name__]
params['provides_what'] = ", ".join(sorted(provides))
return description.format(**params)
params['description'] = __doc__ or "Handles actions for the rabbit-mq component."
out = description.format(**params)
return out.strip("\n")

View File

@@ -63,19 +63,16 @@ class SwiftRuntime(comp.EmptyRuntime):
def describe(opts=None):
description = """ Module: {module_name}
description = """
Module: {module_name}
Description:
Handles actions for the swift component.
{description}
Component options:
{component_opts}
Provides:
{provides_what}
"""
params = dict()
params['component_opts'] = "TBD"
params['module_name'] = __name__
provides = [SwiftRuntime.__name__,
SwiftInstaller.__name__,
SwiftUninstaller.__name__]
params['provides_what'] = ", ".join(sorted(provides))
return description.format(**params)
params['description'] = __doc__ or "Handles actions for the swift component."
out = description.format(**params)
return out.strip("\n")

View File

@@ -15,6 +15,10 @@
import re
#requires http://pypi.python.org/pypi/termcolor
#but the colors make it worth it :-)
from termcolor import colored, cprint
from devstack import log as logging
from devstack import settings
from devstack import utils
@@ -57,18 +61,10 @@ def log_deps(components):
while left_show:
c = left_show.pop()
deps = settings.get_dependencies(c)
dep_str = ""
dep_len = len(deps)
if dep_len >= 1:
dep_str = "component"
if dep_len > 1:
dep_str += "s"
dep_str += ":"
elif dep_len == 0:
dep_str = "no components."
LOG.info("%s depends on %s" % (c, dep_str))
dep_str = "depends on:"
print(colored(c, "green", attrs=['bold']) + " depends on " + dep_str)
for d in deps:
LOG.info("\t%s" % (d))
print(" " + colored(d, "blue", attrs=['bold']))
shown.add(c)
for d in deps:
if d not in shown and d not in left_show:
@@ -86,33 +82,17 @@ def _run_describe_comps(args):
components = settings.parse_components(args.get("components"), True)
c_keys = sorted(components.keys())
for c in c_keys:
LOG.info("Component %s {", c)
print(colored(c, "green", attrs=['bold']) + " description:")
describer = _DESCR_MAP.get(c)
info = describer(components.get(c))
if info:
lines = info.splitlines()
for line in lines:
if len(line) == 0:
continue
#do some basic formatting
mtch = re.match(r"^(\s*)(.*)$", line)
new_line = line
if mtch:
space_am = len(mtch.group(1)) * 2
new_line = " " * space_am + mtch.group(2)
LOG.info(new_line)
LOG.info("}")
print(describer(components.get(c)))
def run(args):
prog_name = PROG_NAME
if args.get('list_deps'):
prog_name += " [DEPS]"
if args.get('describe_comp'):
prog_name += " [DESCRIBE]"
utils.welcome(prog_name)
sep = utils.welcome(PROG_NAME)
if args.get('list_deps'):
_run_list_deps(args)
print(sep)
if args.get('describe_comp'):
_run_describe_comps(args)
print(sep)
return True

View File

@@ -291,8 +291,8 @@ def welcome(ident):
lower += "|"
welcome_header = _get_welcome_stack().strip("\n\r")
max_line_len = len(max(welcome_header.splitlines(), key=len))
footer = colored(settings.PROG_NICE_NAME, 'green') + \
": " + colored(lower, 'blue')
footer = colored(settings.PROG_NICE_NAME, 'green', attrs=['bold']) + \
": " + colored(lower, 'blue', attrs=['bold'])
uncolored_footer = (settings.PROG_NICE_NAME + ": " + lower)
if max_line_len - len(uncolored_footer) > 0:
#this format string wil center the uncolored text which
@@ -301,3 +301,6 @@ def welcome(ident):
centered_str = center_text(uncolored_footer, " ", max_line_len)
footer = centered_str.replace(uncolored_footer, footer)
print((welcome_header + os.linesep + footer))
tail_end = "-" * max_line_len
print(tail_end)
return tail_end