def test_upgrade():

    test_version = upgrade.get_pkg_version(PACKAGE_NAME)
    utils.out('Found test version: {}'.format(test_version))

    repositories = json.loads(
        cmd.run_cli('package repo list --json'))['repositories']
    utils.out("Repositories: " + str(repositories))

    if len(repositories) < 2:
        utils.out(
            "There is only one version in the repository. Skipping upgrade test!"
        )
        assert repo[0]['name'] == 'Universe'
        return

    test_repo_name, test_repo_url = upgrade.get_test_repo_info()

    for repo in repositories:
        if repo['name'] != 'Universe':
            shakedown.remove_package_repo(repo['name'])

    universe_version = upgrade.get_pkg_version(PACKAGE_NAME)
    utils.out('Found Universe version: {}'.format(universe_version))

    utils.out('Installing Universe version: {}'.format(universe_version))
    install.install(PACKAGE_NAME, DEFAULT_BROKER_COUNT)
    utils.out('Installation complete for Universe version: {}'.format(
        universe_version))

    tasks.check_running(SERVICE_NAME, DEFAULT_BROKER_COUNT)
    broker_ids = tasks.get_task_ids(SERVICE_NAME, 'broker-')

    utils.out(
        'Adding test version to repository with name: {} and url: {}'.format(
            test_repo_name, test_repo_url))
    upgrade.add_repo(test_repo_name, test_repo_url, universe_version, 0,
                     PACKAGE_NAME)

    utils.out('Upgrading to test version: {}'.format(test_version))
    marathon.destroy_app(SERVICE_NAME)

    utils.out('Installing test version: {}'.format(test_version))

    # installation will return with old tasks because they are still running
    install.install(PACKAGE_NAME, DEFAULT_BROKER_COUNT)
    utils.out(
        'Installation complete for test version: {}'.format(test_version))

    # wait till tasks are restarted
    tasks.check_tasks_updated(SERVICE_NAME, '{}-'.format(DEFAULT_POD_TYPE),
                              broker_ids)
    utils.out('All task are restarted')
    # all tasks are running
    tasks.check_running(SERVICE_NAME, DEFAULT_BROKER_COUNT)

    address = service_cli('endpoints {}'.format(DEFAULT_TASK_NAME))
    assert len(address) == 3
    assert len(address['dns']) == DEFAULT_BROKER_COUNT
    assert len(address['address']) == DEFAULT_BROKER_COUNT
示例#2
0
def test_upgrade(universe_package_name,
                 test_package_name,
                 running_task_count,
                 service_name=None,
                 additional_options={},
                 test_version_options=None,
                 timeout_seconds=25 * 60,
                 wait_for_deployment=True):
    # allow a service name which is different from the package name (common with e.g. folders):
    if service_name is None:
        service_name = test_package_name
    # allow providing different options dicts to the universe version vs the test version:
    if test_version_options is None:
        test_version_options = additional_options

    # make sure BOTH are uninstalled...
    install.uninstall(service_name, package_name=universe_package_name)
    if universe_package_name is not test_package_name:
        install.uninstall(service_name, package_name=test_package_name)

    test_version = _get_pkg_version(test_package_name)
    log.info('Found test version: {}'.format(test_version))

    universe_url = _get_universe_url()

    universe_version = ""
    try:
        # Move the Universe repo to the top of the repo list
        shakedown.remove_package_repo('Universe')
        _add_repo('Universe', universe_url, test_version, 0,
                  universe_package_name)

        universe_version = _get_pkg_version(universe_package_name)

        log.info('Installing Universe version: {}={}'.format(
            universe_package_name, universe_version))
        # Keep the service name the same throughout the test
        install.install(universe_package_name,
                        running_task_count,
                        service_name=service_name,
                        additional_options=additional_options,
                        timeout_seconds=timeout_seconds,
                        wait_for_deployment=wait_for_deployment)
    finally:
        if universe_version:
            # Return the Universe repo back to the bottom of the repo list
            shakedown.remove_package_repo('Universe')
            _add_last_repo('Universe', universe_url, universe_version,
                           test_package_name)

    log.info('Upgrading {} to {}={}'.format(universe_package_name,
                                            test_package_name, test_version))
    _upgrade_or_downgrade(universe_package_name, test_package_name,
                          test_version, service_name, running_task_count,
                          test_version_options, timeout_seconds)
示例#3
0
def test_downgrade(universe_package_name,
                   test_package_name,
                   running_task_count,
                   service_name=None,
                   additional_options={},
                   test_version_options=None,
                   reinstall_test_version=True,
                   timeout_seconds=25 * 60):
    # allow a service name which is different from the package name (common with e.g. folders):
    if service_name is None:
        service_name = test_package_name
    # allow providing different options dicts to the universe version vs the test version:
    if test_version_options is None:
        test_version_options = additional_options

    test_version = _get_pkg_version(test_package_name)
    log.info('Found test version: {}'.format(test_version))

    universe_url = _get_universe_url()

    universe_version = ""
    try:
        # Move the Universe repo to the top of the repo list
        shakedown.remove_package_repo('Universe')
        _add_repo('Universe', universe_url, test_version, 0,
                  universe_package_name)

        universe_version = _get_pkg_version(universe_package_name)

        log.info('Downgrading to Universe version: {}={}'.format(
            universe_package_name, universe_version))
        _upgrade_or_downgrade(test_package_name, universe_package_name,
                              universe_version, service_name,
                              running_task_count, additional_options,
                              timeout_seconds)

    finally:
        if universe_version:
            # Return the Universe repo back to the bottom of the repo list
            shakedown.remove_package_repo('Universe')
            _add_last_repo('Universe', universe_url, universe_version,
                           test_package_name)

    if reinstall_test_version:
        log.info('Re-upgrading to test version before exiting: {}={}'.format(
            test_package_name, test_version))
        _upgrade_or_downgrade(universe_package_name, test_package_name,
                              test_version, service_name, running_task_count,
                              test_version_options, timeout_seconds)
    else:
        log.info(
            'Skipping reinstall of test version {}={}, uninstalling universe version {}={}'
            .format(test_package_name, test_version, universe_package_name,
                    universe_version))
        install.uninstall(service_name, package_name=universe_package_name)
示例#4
0
def test_upgrade(
        package_name,
        service_name,
        running_task_count,
        additional_options={},
        test_version_additional_options=None,
        timeout_seconds=25*60,
        wait_for_deployment=True):
    # allow providing different options dicts to the universe version vs the test version:
    if test_version_additional_options is None:
        test_version_additional_options = additional_options

    sdk_install.uninstall(package_name, service_name)

    test_version = _get_pkg_version(package_name)
    log.info('Found test version: {}'.format(test_version))

    universe_url = _get_universe_url()

    universe_version = None
    try:
        # Move the Universe repo to the top of the repo list so that we can first install the release version.
        shakedown.remove_package_repo('Universe')
        assert shakedown.add_package_repo('Universe', universe_url, 0)
        log.info('Waiting for Universe release version of {} to appear: version != {}'.format(
            package_name, test_version))
        universe_version = _wait_for_new_package_version(package_name, test_version)

        log.info('Installing Universe version: {}={}'.format(package_name, universe_version))
        sdk_install.install(
            package_name,
            service_name,
            running_task_count,
            additional_options=additional_options,
            timeout_seconds=timeout_seconds,
            wait_for_deployment=wait_for_deployment)
    finally:
        if universe_version:
            # Return the Universe repo back to the bottom of the repo list so that we can upgrade to the build version.
            shakedown.remove_package_repo('Universe')
            assert shakedown.add_package_repo('Universe', universe_url)
            log.info('Waiting for test build version of {} to appear: version != {}'.format(
                package_name, universe_version))
            _wait_for_new_package_version(package_name, universe_version)

    log.info('Upgrading {}: {} => {}'.format(package_name, universe_version, test_version))
    _upgrade_or_downgrade(
        package_name,
        test_version,
        service_name,
        running_task_count,
        test_version_additional_options,
        timeout_seconds,
        wait_for_deployment)
示例#5
0
def test_upgrade(
        package_name,
        service_name,
        running_task_count,
        additional_options={},
        test_version_additional_options=None,
        timeout_seconds=25*60,
        wait_for_deployment=True):
    # allow providing different options dicts to the universe version vs the test version:
    if test_version_additional_options is None:
        test_version_additional_options = additional_options

    sdk_install.uninstall(package_name, service_name)

    test_version = _get_pkg_version(package_name)
    log.info('Found test version: {}'.format(test_version))

    universe_url = _get_universe_url()

    universe_version = ""
    try:
        # Move the Universe repo to the top of the repo list
        shakedown.remove_package_repo('Universe')
        _add_repo('Universe', universe_url, test_version, 0, package_name)

        universe_version = _get_pkg_version(package_name)

        log.info('Installing Universe version: {}={}'.format(package_name, universe_version))
        sdk_install.install(
            package_name,
            service_name,
            running_task_count,
            additional_options=additional_options,
            timeout_seconds=timeout_seconds,
            wait_for_deployment=wait_for_deployment)
    finally:
        if universe_version:
            # Return the Universe repo back to the bottom of the repo list
            shakedown.remove_package_repo('Universe')
            _add_last_repo('Universe', universe_url, universe_version, package_name)

    log.info('Upgrading {}: {} => {}'.format(package_name, universe_version, test_version))
    _upgrade_or_downgrade(
        package_name,
        test_version,
        service_name,
        running_task_count,
        test_version_additional_options,
        timeout_seconds,
        wait_for_deployment)
示例#6
0
def test_upgrade(
        package_name,
        service_name,
        running_task_count,
        additional_options={},
        test_version_additional_options=None,
        timeout_seconds=25*60,
        wait_for_deployment=True):
    # allow providing different options dicts to the universe version vs the test version:
    if test_version_additional_options is None:
        test_version_additional_options = additional_options

    sdk_install.uninstall(package_name, service_name)

    test_version = _get_pkg_version(package_name)
    log.info('Found test version: {}'.format(test_version))

    universe_url = _get_universe_url()

    universe_version = ""
    try:
        # Move the Universe repo to the top of the repo list
        shakedown.remove_package_repo('Universe')
        _add_repo('Universe', universe_url, test_version, 0, package_name)

        universe_version = _get_pkg_version(package_name)

        log.info('Installing Universe version: {}={}'.format(package_name, universe_version))
        sdk_install.install(
            package_name,
            service_name,
            running_task_count,
            additional_options=additional_options,
            timeout_seconds=timeout_seconds,
            wait_for_deployment=wait_for_deployment)
    finally:
        if universe_version:
            # Return the Universe repo back to the bottom of the repo list
            shakedown.remove_package_repo('Universe')
            _add_last_repo('Universe', universe_url, universe_version, package_name)

    log.info('Upgrading {}: {} => {}'.format(package_name, universe_version, test_version))
    _upgrade_or_downgrade(
        package_name,
        test_version,
        service_name,
        running_task_count,
        test_version_additional_options,
        timeout_seconds,
        wait_for_deployment)
def test_upgrade():

    test_version = upgrade.get_pkg_version(PACKAGE_NAME)
    print('Found test version: {}'.format(test_version))

    repositories = json.loads(cmd.run_cli('package repo list --json'))['repositories']
    print("Repositories: " + str(repositories))

    if len(repositories) < 2:
        print("There is only one version in the repository. Skipping upgrade test!")
        assert repo[0]['name'] == 'Universe'
        return

    test_repo_name, test_repo_url = upgrade.get_test_repo_info();

    for repo in repositories:
        if repo['name'] != 'Universe':
            shakedown.remove_package_repo(repo['name'])

    universe_version = upgrade.get_pkg_version(PACKAGE_NAME)
    print('Found Universe version: {}'.format(universe_version))

    print('Installing Universe version: {}'.format(universe_version))
    install.install(PACKAGE_NAME, DEFAULT_BROKER_COUNT)
    print('Installation complete for Universe version: {}'.format(universe_version))

    tasks.check_running(SERVICE_NAME, DEFAULT_BROKER_COUNT)
    broker_ids = tasks.get_task_ids(SERVICE_NAME, 'broker-')

    print('Adding test version to repository with name: {} and url: {}'.format(test_repo_name, test_repo_url))
    upgrade.add_repo(test_repo_name, test_repo_url, universe_version, 0, PACKAGE_NAME)

    print('Upgrading to test version: {}'.format(test_version))
    marathon.destroy_app(SERVICE_NAME)

    print('Installing test version: {}'.format(test_version))

    # installation will return with old tasks because they are still running
    install.install(PACKAGE_NAME, DEFAULT_BROKER_COUNT)
    print('Installation complete for test version: {}'.format(test_version))

    # wait till tasks are restarted
    tasks.check_tasks_updated(SERVICE_NAME, '{}-'.format(DEFAULT_POD_TYPE), broker_ids)
    print('All task are restarted')
    # all tasks are running
    tasks.check_running(SERVICE_NAME, DEFAULT_BROKER_COUNT)
def upgrade_downgrade(package_name, running_task_count, additional_options={}):
    install.uninstall(package_name)

    test_version = get_pkg_version(package_name)
    sdk_utils.out('Found test version: {}'.format(test_version))

    repositories = json.loads(
        cmd.run_cli('package repo list --json'))['repositories']
    sdk_utils.out("Repositories: " + str(repositories))
    universe_url = "fail"
    for repo in repositories:
        if repo['name'] == 'Universe':
            universe_url = repo['uri']
            break

    assert "fail" != universe_url
    sdk_utils.out("Universe URL: " + universe_url)

    # Move the Universe repo to the top of the repo list
    shakedown.remove_package_repo('Universe')
    add_repo('Universe', universe_url, test_version, 0, package_name)

    universe_version = get_pkg_version(package_name)
    sdk_utils.out('Found Universe version: {}'.format(universe_version))

    sdk_utils.out('Installing Universe version')
    install.install(package_name,
                    running_task_count,
                    check_suppression=False,
                    additional_options=additional_options)

    # Move the Universe repo to the bottom of the repo list
    shakedown.remove_package_repo('Universe')
    add_last_repo('Universe', universe_url, universe_version, package_name)

    sdk_utils.out('Upgrading to test version')
    upgrade_or_downgrade(package_name, running_task_count, additional_options)

    # Move the Universe repo to the top of the repo list
    shakedown.remove_package_repo('Universe')
    add_repo('Universe', universe_url, test_version, 0, package_name)

    sdk_utils.out('Downgrading to master version')
    upgrade_or_downgrade(package_name, running_task_count, additional_options)

    # Move the Universe repo to the bottom of the repo list
    shakedown.remove_package_repo('Universe')
    add_last_repo('Universe', universe_url, universe_version, package_name)

    sdk_utils.out('Upgrading to test version')
    upgrade_or_downgrade(package_name, running_task_count, additional_options)
def upgrade_downgrade(package_name, running_task_count):
    install.uninstall(package_name)

    test_version = get_pkg_version(package_name)
    print('Found test version: {}'.format(test_version))

    repositories = json.loads(cmd.run_cli('package repo list --json'))['repositories']
    print("Repositories: " + str(repositories))
    universe_url = "fail"
    for repo in repositories:
        if repo['name'] == 'Universe':
            universe_url = repo['uri']
            break

    assert "fail" != universe_url
    print("Universe URL: " + universe_url)

    # Move the Universe repo to the top of the repo list
    shakedown.remove_package_repo('Universe')
    add_repo('Universe', universe_url, test_version, 0, package_name)

    universe_version = get_pkg_version(package_name)
    print('Found Universe version: {}'.format(universe_version))

    print('Installing Universe version')
    install.install(package_name, running_task_count)

    # Move the Universe repo to the bottom of the repo list
    shakedown.remove_package_repo('Universe')
    add_last_repo('Universe', universe_url, universe_version, package_name)

    print('Upgrading to test version')
    upgrade_or_downgrade(package_name, running_task_count)

    # Move the Universe repo to the top of the repo list
    shakedown.remove_package_repo('Universe')
    add_repo('Universe', universe_url, test_version, 0, package_name)

    print('Downgrading to master version')
    upgrade_or_downgrade(package_name, running_task_count)

    # Move the Universe repo to the bottom of the repo list
    shakedown.remove_package_repo('Universe')
    add_last_repo('Universe', universe_url, universe_version, package_name)

    print('Upgrading to test version')
    upgrade_or_downgrade(package_name, running_task_count)
示例#10
0
def test_upgrade_downgrade():
    test_repo_name, test_repo_url = get_test_repo_info()
    test_version = get_pkg_version()
    print('Found test version: {}'.format(test_version))

    repositories = json.loads(
        cmd.run_cli('package repo list --json'))['repositories']
    print("Repositories: " + str(repositories))
    universe_url = "fail"
    for repo in repositories:
        if repo['name'] == 'Universe':
            universe_url = repo['uri']
            break

    assert "fail" != universe_url
    print("Universe URL: " + universe_url)

    shakedown.remove_package_repo('Universe')
    add_repo('Universe', universe_url, test_version, 0)

    universe_version = get_pkg_version()
    print('Found Universe version: {}'.format(universe_version))

    print('Installing Universe version')
    install.install(PACKAGE_NAME, DEFAULT_TASK_COUNT)

    shakedown.remove_package_repo('Universe')
    add_last_repo('Universe', universe_url, universe_version)

    print('Upgrading to test version')
    marathon.destroy_app(PACKAGE_NAME)
    install.install(PACKAGE_NAME, DEFAULT_TASK_COUNT)

    shakedown.remove_package_repo('Universe')
    add_repo('Universe', universe_url, test_version, 0)

    print('Downgrading to master version')
    marathon.destroy_app(PACKAGE_NAME)
    install.install(PACKAGE_NAME, DEFAULT_TASK_COUNT)

    shakedown.remove_package_repo('Universe')
    add_last_repo('Universe', universe_url, universe_version)
示例#11
0
def remove_repo(repo_name, prev_version):
    assert shakedown.remove_package_repo(repo_name)
    new_default_version_available(prev_version)
示例#12
0
def remove_repo(prev_version):
    assert shakedown.remove_package_repo(MASTER_CUSTOM_NAME)
    new_default_version_available(prev_version)
示例#13
0
def upgrade_downgrade(universe_package_name,
                      test_package_name,
                      running_task_count,
                      additional_options={},
                      reinstall_test_version=True):
    install.uninstall(test_package_name)

    test_version = get_pkg_version(test_package_name)
    sdk_utils.out('Found test version: {}'.format(test_version))

    repositories = json.loads(
        cmd.run_cli('package repo list --json'))['repositories']
    sdk_utils.out("Repositories: " + str(repositories))
    universe_url = "fail"
    for repo in repositories:
        if repo['name'] == 'Universe':
            universe_url = repo['uri']
            break

    assert "fail" != universe_url
    sdk_utils.out("Universe URL: " + universe_url)

    # Move the Universe repo to the top of the repo list
    shakedown.remove_package_repo('Universe')
    add_repo('Universe', universe_url, test_version, 0, universe_package_name)

    universe_version = get_pkg_version(universe_package_name)
    sdk_utils.out('Found Universe version: {}'.format(universe_version))

    sdk_utils.out('Installing Universe version')
    # Keep the service name the same throughout the test
    install.install(universe_package_name,
                    running_task_count,
                    service_name=test_package_name,
                    check_suppression=False,
                    additional_options=additional_options)

    # Move the Universe repo to the bottom of the repo list
    shakedown.remove_package_repo('Universe')
    add_last_repo('Universe', universe_url, universe_version,
                  test_package_name)

    sdk_utils.out('Upgrading to test version')
    upgrade_or_downgrade(test_package_name, test_package_name,
                         running_task_count, additional_options)

    # Move the Universe repo to the top of the repo list
    shakedown.remove_package_repo('Universe')
    add_repo('Universe', universe_url, test_version, 0, universe_package_name)

    sdk_utils.out('Downgrading to Universe version')
    upgrade_or_downgrade(universe_package_name, test_package_name,
                         running_task_count, additional_options)

    # Move the Universe repo to the bottom of the repo list
    shakedown.remove_package_repo('Universe')
    add_last_repo('Universe', universe_url, universe_version,
                  test_package_name)

    if reinstall_test_version:
        sdk_utils.out('Re-upgrading to test version before exiting')
        upgrade_or_downgrade(test_package_name, test_package_name,
                             running_task_count, additional_options)
    else:
        sdk_utils.out(
            'Skipping reinstall of test version, uninstalling universe version'
        )
        install.uninstall(test_package_name,
                          package_name=universe_package_name)
示例#14
0
def remove_repo(repo_name, prev_version):
    assert shakedown.remove_package_repo(repo_name)
    new_default_version_available(prev_version)