예제 #1
0
def clean_os_installer(
    os_installer_name, os_installer_settings
):
    """Clean os installer."""
    try:
        clean.clean_os_installer(
            os_installer_name, os_installer_settings
        )
    except Exception as error:
        logging.excception(error)
예제 #2
0
def clean_os_installer(
    os_installer_name, os_installer_settings
):
    """Clean os installer."""
    try:
        clean.clean_os_installer(
            os_installer_name, os_installer_settings
        )
    except Exception as error:
        logging.excception(error)
예제 #3
0
def clean_installers():
    os_installers = [
        os_installer for os_installer in flags.OPTIONS.os_installers.split(',')
        if os_installer
    ]
    package_installers = [
        package_installer
        for package_installer in flags.OPTIONS.package_installers.split(',')
        if package_installer
    ]
    user = user_api.get_user_object(setting.COMPASS_ADMIN_EMAIL)
    adapters = adapter_api.list_adapters(user=user)
    filtered_os_installers = {}
    filtered_package_installers = {}
    for adapter in adapters:
        logging.info('got adapter: %s', adapter)
        if 'os_installer' in adapter:
            os_installer = adapter['os_installer']
            os_installer_name = os_installer['alias']
            if not os_installers or os_installer_name in os_installers:
                filtered_os_installers[os_installer_name] = os_installer
            else:
                logging.info('ignore os installer %s', os_installer_name)
        else:
            logging.info('cannot find os installer in adapter %s',
                         adapter['name'])
        if 'package_installer' in adapter:
            package_installer = adapter['package_installer']
            package_installer_name = package_installer['alias']
            if (not package_installers
                    or package_installer_name in package_installers):
                filtered_package_installers[package_installer_name] = (
                    package_installer)
            else:
                logging.info('ignore package installer %s',
                             package_installer_name)
        else:
            logging.info('cannot find package installer in adapter %s',
                         adapter['name'])
    logging.info('clean os installers: %s', filtered_os_installers.keys())
    logging.info('clean package installers: %s',
                 filtered_package_installers.keys())
    if flags.OPTIONS. async:
        for os_installer_name, os_installer in filtered_os_installers.items():
            celery.send_task('compass.tasks.clean_os_installer',
                             (os_installer['name'], os_installer['settings']))
        for package_installer_name, package_installer in (
                filtered_package_installers.items()):
            celery.send_task(
                'compass.tasks.clean_package_installer',
                (package_installer['name'], package_installer['settings']))
    else:
        for os_installer_name, os_installer in (
                filtered_os_installers.items()):
            try:
                clean.clean_os_installer(os_installer['name'],
                                         os_installer['settings'])
            except Exception as error:
                logging.error('failed to clean os installer %s',
                              os_installer_name)
                logging.exception(error)
        for package_installer_name, package_installer in (
                filtered_package_installers.items()):
            try:
                clean.clean_package_installer(package_installer['name'],
                                              package_installer['settings'])
            except Exception as error:
                logging.error('failed to clean package installer %s',
                              package_installer_name)
                logging.exception(error)
예제 #4
0
def clean_installers():
    os_installers = [
        os_installer
        for os_installer in flags.OPTIONS.os_installers.split(',')
        if os_installer
    ]
    package_installers = [
        package_installer
        for package_installer in flags.OPTIONS.package_installers.split(',')
        if package_installer
    ]
    user = user_api.get_user_object(setting.COMPASS_ADMIN_EMAIL)
    adapters = adapter_api.list_adapters(user=user)
    filtered_os_installers = {}
    filtered_package_installers = {}
    for adapter in adapters:
        logging.info(
            'got adapter: %s', adapter
        )
        if 'os_installer' in adapter:
            os_installer = adapter['os_installer']
            os_installer_name = os_installer['alias']
            if not os_installers or os_installer_name in os_installers:
                filtered_os_installers[os_installer_name] = os_installer
            else:
                logging.info(
                    'ignore os isntaller %s', os_installer_name
                )
        else:
            logging.info(
                'cannot find os installer in adapter %s',
                adapter['name']
            )
        if 'package_installer' in adapter:
            package_installer = adapter['package_installer']
            package_installer_name = package_installer['alias']
            if (
                not package_installers or
                package_installer_name in package_installers
            ):
                filtered_package_installers[package_installer_name] = (
                    package_installer
                )
            else:
                logging.info(
                    'ignore package installer %s', package_installer_name
                )
        else:
            logging.info(
                'cannot find package installer in adapter %s',
                adapter['name']
            )
    logging.info(
        'clean os installers: %s', filtered_os_installers.keys()
    )
    logging.info(
        'clean package installers: %s', filtered_package_installers.keys()
    )
    if flags.OPTIONS.async:
        for os_installer_name, os_installer in filtered_os_installers.items():
            celery.send_task(
                'compass.tasks.clean_os_installer',
                (
                    os_installer['name'],
                    os_installer['settings']
                )
            )
        for package_installer_name, package_installer in (
            filtered_package_installers.items()
        ):
            celery.send_task(
                'compass.tasks.clean_package_installer',
                (
                    package_installer['name'],
                    package_installer['settings']
                )
            )
    else:
        for os_installer_name, os_installer in (
            filtered_os_installers.items()
        ):
            try:
                clean.clean_os_installer(
                    os_installer['name'],
                    os_installer['settings']
                )
            except Exception as error:
                logging.error(
                    'failed to clean os installer %s', os_installer_name
                )
                logging.exception(error)
        for package_installer_name, package_installer in (
            filtered_package_installers.items()
        ):
            try:
                clean.clean_package_installer(
                    package_installer['name'],
                    package_installer['settings']
                )
            except Exception as error:
                logging.error(
                    'failed to clean package installer %s',
                    package_installer_name
                )
                logging.exception(error)