'Filter which images to build.'

def filter_images(self):

    filter_ = list()
    if self.regex:
        filter_ += self.regex
    elif self.conf.profile:
        for profile in self.conf.profile:
            if (profile not in self.conf.profiles):
                self.conf.register_opt(cfg.ListOpt(profile, default=[]), 'profiles')
            if (len(self.conf.profiles[profile]) == 0):
                msg = 'Profile:    {}    does    not    exist'.format(profile)
                raise ValueError(msg)
            else:
                filter_ += self.conf.profiles[profile]
    if filter_:
        patterns = re.compile('|'.join(filter_).join('()'))
        for image in self.images:
            if (image.status in (STATUS_MATCHED, STATUS_SKIPPED)):
                continue
            if re.search(patterns, image.name):
                image.status = STATUS_MATCHED
                while ((image.parent is not None) and (image.parent.status not in (STATUS_MATCHED, STATUS_SKIPPED))):
                    image = image.parent
                    if self.conf.skip_parents:
                        image.status = STATUS_SKIPPED
                    elif (self.conf.skip_existing and image.in_docker_cache()):
                        image.status = STATUS_SKIPPED
                    else:
                        image.status = STATUS_MATCHED
                    LOG.debug('Image    %s    matched    regex', image.name)
            else:
                image.status = STATUS_UNMATCHED
    else:
        for image in self.images:
            image.status = STATUS_MATCHED
