cleanout_view.py 文件源码

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

项目:ballista 作者: RedHatSatellite 项目源码 文件源码
def main(connection, logger, content_view=None, all_views=False, keep=0, **kwargs):
    """
    :type keep: int or bool
    :type all_views: bool
    :type connection: KatelloConnection
    :type content_view: list
    :param logger: Logger object
    :type logger: logging.RootLogger
    """

    if not keep:
        keep = None

    if all_views:
        logger.debug('Going to clean all content views as instructed, keeping {} versions'.format(keep))
        logger.debug('Getting all content views')
        view_names = [view['name'] for view in connection.content_views]
        logger.debug('Found: {} to clean'.format(all_views))
    else:
        try:
            logger.debug('Checking if {} is defined in config file')
            view_names = [c.strip() for c in kwargs['config_obj'].get(content_view[0], 'views').split(',')]
            logger.debug('Yes, we are going to clean {}'.format(view_names))
        except NoSectionError:
            logger.debug('No, we are cleaning {}'.format(content_view))
            view_names = content_view

    for view_name in view_names:
        try:
            logger.debug('Getting info for {}'.format(view_name))
            view_dict = get_components(connection.content_views, ('name', view_name))
        except TypeError:
            logger.error('View %s not found!' % view_name)
            raise NotFoundError('View {} not found'.format(view_name))

        ids_to_remove = [version['id'] for version in view_dict['versions'] if not version['environment_ids']]

        try:
            ids_to_remove = sorted(ids_to_remove)[:-keep]
        except TypeError:
            pass

        logger.debug("We are going to remove the following versions id's: {}".format(ids_to_remove))

        for version_id in ids_to_remove:
            logging.info('Removing version_id %s' % version_id)
            connection.remove_view_version(version_id)
评论列表
文章目录


问题


面经


文章

微信
公众号

扫码关注公众号