build.py 文件源码

python
阅读 25 收藏 0 点赞 0 评论 0

项目:kolla 作者: sieve-microservices 项目源码 文件源码
def filter_images(self):
        """Filter which images to build."""
        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(r"|".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
评论列表
文章目录


问题


面经


文章

微信
公众号

扫码关注公众号