from . import xar_ops_dirs _XAR_LIST_COLUMNS = frozenset(( 'label', 'version', 'zipapp', )) _XAR_LIST_DEFAULT_COLUMNS = ( 'label', 'version', 'zipapp', ) _XAR_LIST_STRINGIFIERS = { 'zipapp': lambda active: 'true' if active else 'false', } ASSERT.issuperset(_XAR_LIST_COLUMNS, _XAR_LIST_DEFAULT_COLUMNS) ASSERT.issuperset(_XAR_LIST_COLUMNS, _XAR_LIST_STRINGIFIERS) @argparses.begin_parser('list', **argparses.make_help_kwargs('list xars')) @columns_argparses.columnar_arguments(_XAR_LIST_COLUMNS, _XAR_LIST_DEFAULT_COLUMNS) @argparses.end def cmd_list(args): columnar = columns.Columnar( **columns_argparses.make_columnar_kwargs(args), stringifiers=_XAR_LIST_STRINGIFIERS, ) with xar_ops_dirs.make_ops_dirs().listing_ops_dirs() as active_ops_dirs: for ops_dir in active_ops_dirs: columnar.append({
_DEFINITION_LIST_COLUMNS = frozenset(( 'token-name', 'range', 'values', )) _DEFINITION_LIST_DEFAULT_COLUMNS = ( 'token-name', 'range', 'values', ) _DEFINITION_LIST_STRINGIFIERS = { 'range': lambda args: ' '.join(map(str, args)), 'values': ' '.join, } ASSERT.issuperset(_DEFINITION_LIST_COLUMNS, _DEFINITION_LIST_DEFAULT_COLUMNS) ASSERT.issuperset(_DEFINITION_LIST_COLUMNS, _DEFINITION_LIST_STRINGIFIERS) @argparses.begin_parser('list-definitions', **argparses.make_help_kwargs('list token definitions')) @columns_argparses.columnar_arguments(_DEFINITION_LIST_COLUMNS, _DEFINITION_LIST_DEFAULT_COLUMNS) @argparses.end def cmd_list_definitions(args): columnar = columns.Columnar( **columns_argparses.make_columnar_kwargs(args), stringifiers=_DEFINITION_LIST_STRINGIFIERS, ) for token_name, definition in ( tokens.make_tokens_database().get().definitions.items()):
'ref-count', )) _POD_LIST_DEFAULT_COLUMNS = ( 'id', 'name', 'version', 'active', 'last-updated', 'ref-count', ) POD_LIST_STRINGIFIERS = { 'images': ' '.join, 'active': lambda active: 'true' if active else 'false', 'last-updated': _stringify_last_updated, } ASSERT.issuperset(_POD_LIST_COLUMNS, _POD_LIST_DEFAULT_COLUMNS) ASSERT.issuperset(_POD_LIST_COLUMNS, POD_LIST_STRINGIFIERS) @argparses.begin_parser('list', **argparses.make_help_kwargs('list pods')) @columns_argparses.columnar_arguments( _POD_LIST_COLUMNS, _POD_LIST_DEFAULT_COLUMNS ) @argparses.end def cmd_list(): # Don't need root privilege here. with locks.acquiring_shared(_get_active_path()): for pod_dir_path, config in _iter_configs(): pod_status = _get_pod_status(pod_dir_path, config) yield { 'id': _get_id(pod_dir_path),
from g1.bases.assertions import ASSERT from g1.texts import columns from g1.texts.columns import argparses as columns_argparses from . import envs from . import models _ENV_LIST_COLUMNS = frozenset(( 'name', 'value', )) _ENV_LIST_DEFAULT_COLUMNS = ( 'name', 'value', ) ASSERT.issuperset(_ENV_LIST_COLUMNS, _ENV_LIST_DEFAULT_COLUMNS) @argparses.begin_parser( 'list', **argparses.make_help_kwargs('list environment variables'), ) @columns_argparses.columnar_arguments(_ENV_LIST_COLUMNS, _ENV_LIST_DEFAULT_COLUMNS) @argparses.end def cmd_list(args): columnar = columns.Columnar(**columns_argparses.make_columnar_kwargs(args)) for name, value in envs.load().items(): columnar.append({'name': name, 'value': value}) columnar.output(sys.stdout) return 0
'last-updated', 'rootfs', )) _IMAGE_LIST_DEFAULT_COLUMNS = ( 'id', 'name', 'version', 'tags', 'ref-count', 'last-updated', ) IMAGE_LIST_STRINGIFIERS = { 'tags': ' '.join, 'last-updated': datetime.datetime.isoformat, } ASSERT.issuperset(_IMAGE_LIST_COLUMNS, _IMAGE_LIST_DEFAULT_COLUMNS) ASSERT.issuperset(_IMAGE_LIST_COLUMNS, IMAGE_LIST_STRINGIFIERS) @argparses.begin_parser('list', **argparses.make_help_kwargs('list images')) @columns_argparses.columnar_arguments( _IMAGE_LIST_COLUMNS, _IMAGE_LIST_DEFAULT_COLUMNS ) @argparses.end def cmd_list(): # Don't need root privilege here. with locks.acquiring_shared(_get_tags_path()), \ locks.acquiring_shared(get_trees_path()): for image_dir_path, metadata in _iter_metadatas(): image_id = _get_id(image_dir_path) last_updated = _get_last_updated(image_dir_path)