Merge "Add `ccp images list` command"
This commit is contained in:
commit
1edd9bfebe
|
@ -162,15 +162,19 @@ def connect_children(dockerfiles):
|
|||
dockerfile['parent'] = dockerfiles[parent]
|
||||
|
||||
|
||||
def get_dockerfiles_tree(match=False, config=None):
|
||||
if config is None:
|
||||
config = _get_config()
|
||||
|
||||
def get_dockerfiles(match=False):
|
||||
dockerfiles = {}
|
||||
for repository_def in CONF.repositories.repos:
|
||||
dockerfiles.update(
|
||||
find_dockerfiles(repository_def['name'], match=match))
|
||||
return dockerfiles
|
||||
|
||||
|
||||
def get_dockerfiles_tree(match=False, config=None):
|
||||
if config is None:
|
||||
config = _get_config()
|
||||
|
||||
dockerfiles = get_dockerfiles(match)
|
||||
render_dockerfiles(dockerfiles, config)
|
||||
connect_children(dockerfiles)
|
||||
|
||||
|
@ -300,7 +304,7 @@ def get_ready_image_names():
|
|||
return ready_images
|
||||
|
||||
|
||||
def match_dockerfiles_by_component(dockerfiles, component, ready_images):
|
||||
def match_dockerfiles_by_component(dockerfiles, component, ready_images=()):
|
||||
pattern = re.compile(re.escape(component))
|
||||
matched_dockerfiles = list(filter(pattern.match, dockerfiles.keys()))
|
||||
if matched_dockerfiles:
|
||||
|
|
|
@ -205,6 +205,26 @@ class ShowStatus(lister.Lister):
|
|||
return status.show_long_status(parsed_args.components)
|
||||
|
||||
|
||||
class ImagesList(BaseCommand, lister.Lister):
|
||||
"""Get images mathcing list of components"""
|
||||
|
||||
def get_parser(self, *args, **kwargs):
|
||||
parser = super(ImagesList, self).get_parser(*args, **kwargs)
|
||||
parser.add_argument('components',
|
||||
nargs='*',
|
||||
help='CCP components to get images for')
|
||||
return parser
|
||||
|
||||
def take_action(self, parsed_args):
|
||||
dockerfiles = build.get_dockerfiles(match=not parsed_args.components)
|
||||
for component in parsed_args.components:
|
||||
build.match_dockerfiles_by_component(dockerfiles, component)
|
||||
return (
|
||||
('Name',),
|
||||
((d['name'],) for d in dockerfiles.values() if d['match']),
|
||||
)
|
||||
|
||||
|
||||
def signal_handler(signo, frame):
|
||||
sys.exit(-signo)
|
||||
|
||||
|
|
Loading…
Reference in New Issue