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
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)
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)
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)
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)
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)
def remove_repo(repo_name, prev_version): assert shakedown.remove_package_repo(repo_name) new_default_version_available(prev_version)
def remove_repo(prev_version): assert shakedown.remove_package_repo(MASTER_CUSTOM_NAME) new_default_version_available(prev_version)
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)