def configure_package(configure_security):
    test_jobs = []
    try:
        test_jobs = config.get_all_jobs(node_address=config.get_foldered_node_address())
        # destroy/reinstall any prior leftover jobs, so that they don't touch the newly installed service:
        for job in test_jobs:
            sdk_jobs.install_job(job)

        sdk_install.uninstall(config.PACKAGE_NAME, config.get_foldered_service_name())
        # user=root because Azure CLI needs to run in root...
        # We don't run the Azure tests in strict however, so don't set it then.
        if os.environ.get("SECURITY") == "strict":
            additional_options={"service": { "name": config.get_foldered_service_name() } }
        else:
            additional_options={"service": { "name": config.get_foldered_service_name(), "user": "******" } }

        sdk_install.install(
            config.PACKAGE_NAME,
            config.get_foldered_service_name(),
            config.DEFAULT_TASK_COUNT,
            additional_options=additional_options)

        yield # let the test session execute
    finally:
        sdk_install.uninstall(config.PACKAGE_NAME, config.get_foldered_service_name())

        # remove job definitions from metronome
        for job in test_jobs:
            sdk_jobs.remove_job(job)
Example #2
0
def test_udf() -> None:
    test_jobs: List[Dict[str, Any]] = []
    try:
        test_jobs = config.get_udf_jobs(
            node_address=config.get_foldered_node_address())
        # destroy/reinstall any prior leftover jobs, so that they don't touch the newly installed service:
        for job in test_jobs:
            sdk_jobs.install_job(job)

        new_config = {
            "cassandra": {
                "enable_user_defined_functions": True,
                "enable_scripted_user_defined_functions": True,
            }
        }
        sdk_service.update_configuration(
            config.PACKAGE_NAME,
            config.get_foldered_service_name(),
            new_config,
            config.DEFAULT_TASK_COUNT,
        )
        config.verify_client_can_write_read_udf(
            config.get_foldered_node_address())
    finally:
        # remove job definitions from metronome
        for job in test_jobs:
            sdk_jobs.remove_job(job)
Example #3
0
def configure_package(configure_security):
    test_jobs = []
    try:
        test_jobs = config.get_all_jobs(
            node_address=config.get_foldered_node_address())
        sdk_install.uninstall(config.get_foldered_service_name(),
                              package_name=config.PACKAGE_NAME)
        sdk_upgrade.test_upgrade(
            "beta-{}".format(config.PACKAGE_NAME),
            config.PACKAGE_NAME,
            config.DEFAULT_TASK_COUNT,
            service_name=config.get_foldered_service_name(),
            additional_options={
                "service": {
                    "name": config.get_foldered_service_name()
                }
            })

        tmp_dir = tempfile.mkdtemp(prefix='cassandra-test')
        for job in test_jobs:
            sdk_jobs.install_job(job, tmp_dir=tmp_dir)

        yield  # let the test session execute
    finally:
        sdk_install.uninstall(config.get_foldered_service_name(),
                              package_name=config.PACKAGE_NAME)

        for job in test_jobs:
            sdk_jobs.remove_job(job)
Example #4
0
def test_backup_and_restore_to_s3_with_jmx_with_auth():
    key_id = os.getenv("AWS_ACCESS_KEY_ID")
    if not key_id:
        assert (
            False
        ), 'AWS credentials are required for this test. Disable test with e.g. TEST_TYPES="sanity and not aws"'
    plan_parameters = {
        "AWS_ACCESS_KEY_ID": key_id,
        "AWS_SECRET_ACCESS_KEY": os.getenv("AWS_SECRET_ACCESS_KEY"),
        "AWS_REGION": os.getenv("AWS_REGION", "us-west-2"),
        "S3_BUCKET_NAME": os.getenv("AWS_BUCKET_NAME",
                                    "infinity-framework-test"),
        "SNAPSHOT_NAME": str(uuid.uuid1()),
        "CASSANDRA_KEYSPACES": '"testspace1 testspace2"',
    }

    config.run_backup_and_restore_with_auth(
        config.get_foldered_service_name(),
        "backup-s3",
        "restore-s3",
        plan_parameters,
        config.get_foldered_node_address(),
    )
    sdk_install.uninstall(config.PACKAGE_NAME,
                          config.get_foldered_service_name())
    test_jobs: List[Dict[str, Any]] = []
    test_jobs = config.get_all_jobs(
        node_address=config.get_foldered_node_address(), auth=True)
    for job in test_jobs:
        sdk_jobs.remove_job(job)
Example #5
0
def configure_package(configure_security: None) -> Iterator[None]:
    test_jobs: List[Dict[str, Any]] = []
    try:
        test_jobs = config.get_all_jobs(auth=True)
        # destroy/reinstall any prior leftover jobs, so that they don't touch the newly installed service:
        for job in test_jobs:
            sdk_jobs.install_job(job)

        create_secret(
            secret_value=config.SECRET_VALUE, secret_path=config.PACKAGE_NAME + '/' + config.SECRET_VALUE
        )
        service_options = {
            "service": {
                "name": config.SERVICE_NAME,
                "security": {"authentication": {"enabled": True}, "authorization": {"enabled": True}},
            }
        }

        sdk_install.uninstall(config.PACKAGE_NAME, config.SERVICE_NAME)

        sdk_install.install(
            config.PACKAGE_NAME,
            config.SERVICE_NAME,
            config.DEFAULT_TASK_COUNT,
            additional_options=service_options,
        )

        yield  # let the test session execute
    finally:
        sdk_install.uninstall(config.PACKAGE_NAME, config.SERVICE_NAME)
        delete_secret(secret=config.PACKAGE_NAME + '/' + config.SECRET_VALUE)
        # remove job definitions from metronome
        for job in test_jobs:
            sdk_jobs.remove_job(job)
Example #6
0
def configure_package(configure_security):
    test_jobs = []
    try:
        test_jobs = config.get_all_jobs(
            node_address=config.get_foldered_node_address())
        # destroy/reinstall any prior leftover jobs, so that they don't touch the newly installed service:
        for job in test_jobs:
            sdk_jobs.install_job(job)

        sdk_install.uninstall(config.PACKAGE_NAME,
                              config.get_foldered_service_name())
        sdk_upgrade.test_upgrade(config.PACKAGE_NAME,
                                 config.get_foldered_service_name(),
                                 config.DEFAULT_TASK_COUNT,
                                 additional_options={
                                     "service": {
                                         "name":
                                         config.get_foldered_service_name()
                                     }
                                 })

        yield  # let the test session execute
    finally:
        sdk_install.uninstall(config.PACKAGE_NAME,
                              config.get_foldered_service_name())

        for job in test_jobs:
            sdk_jobs.remove_job(job)
Example #7
0
def configure_package(configure_security):
    test_jobs = []
    try:
        test_jobs = config.get_all_jobs()
        # destroy any leftover jobs first, so that they don't touch the newly installed service:
        for job in test_jobs:
            sdk_jobs.remove_job(job)

        sdk_install.uninstall(config.PACKAGE_NAME, config.SERVICE_NAME)
        sdk_install.install(
            config.PACKAGE_NAME,
            config.SERVICE_NAME,
            config.DEFAULT_TASK_COUNT,
            additional_options=sdk_networks.ENABLE_VIRTUAL_NETWORKS_OPTIONS)

        tmp_dir = tempfile.mkdtemp(prefix='cassandra-test')
        for job in test_jobs:
            sdk_jobs.install_job(job, tmp_dir=tmp_dir)

        yield  # let the test session execute
    finally:
        sdk_install.uninstall(config.PACKAGE_NAME, config.SERVICE_NAME)

        for job in test_jobs:
            sdk_jobs.remove_job(job)
Example #8
0
def configure_package(configure_security):
    test_jobs = []
    try:
        test_jobs = config.get_all_jobs(
            node_address=config.get_foldered_node_address())
        # destroy any leftover jobs first, so that they don't touch the newly installed service:
        for job in test_jobs:
            sdk_jobs.remove_job(job)

        sdk_install.uninstall(config.PACKAGE_NAME,
                              config.get_foldered_service_name())
        sdk_upgrade.test_upgrade(config.PACKAGE_NAME,
                                 config.get_foldered_service_name(),
                                 config.DEFAULT_TASK_COUNT,
                                 additional_options={
                                     "service": {
                                         "name":
                                         config.get_foldered_service_name()
                                     }
                                 })

        tmp_dir = tempfile.mkdtemp(prefix='cassandra-test')
        for job in test_jobs:
            sdk_jobs.install_job(job, tmp_dir=tmp_dir)

        yield  # let the test session execute
    finally:
        sdk_install.uninstall(config.PACKAGE_NAME,
                              config.get_foldered_service_name())

        for job in test_jobs:
            sdk_jobs.remove_job(job)
Example #9
0
def configure_package(configure_security):
    try:
        sdk_install.uninstall(FOLDERED_SERVICE_NAME, package_name=PACKAGE_NAME)
        # user=root because Azure CLI needs to run in root...
        sdk_install.install(PACKAGE_NAME,
                            DEFAULT_TASK_COUNT,
                            service_name=FOLDERED_SERVICE_NAME,
                            additional_options={
                                "service": {
                                    "name": FOLDERED_SERVICE_NAME,
                                    "user": "******"
                                }
                            })

        tmp_dir = tempfile.mkdtemp(prefix='cassandra-test')
        for job in TEST_JOBS:
            sdk_jobs.install_job(job, tmp_dir=tmp_dir)

        yield  # let the test session execute
    finally:
        sdk_install.uninstall(FOLDERED_SERVICE_NAME, package_name=PACKAGE_NAME)

        # remove job definitions from metronome
        for job in TEST_JOBS:
            sdk_jobs.remove_job(job)
Example #10
0
def configure_package(configure_security: None) -> Iterator[None]:
    test_jobs: List[Dict[str, Any]] = []
    try:
        test_jobs = config.get_all_jobs(node_address=config.get_foldered_node_address())
        # destroy/reinstall any prior leftover jobs, so that they don't touch the newly installed service:
        for job in test_jobs:
            sdk_jobs.install_job(job)

        sdk_install.uninstall(config.PACKAGE_NAME, config.get_foldered_service_name())
        # user=root because Azure CLI needs to run in root...
        # We don't run the Azure tests in strict however, so don't set it then.
        if os.environ.get("SECURITY") == "strict":
            additional_options = {"service": {"name": config.get_foldered_service_name()}}
        else:
            additional_options = {
                "service": {"name": config.get_foldered_service_name(), "user": "******"}
            }

        sdk_install.install(
            config.PACKAGE_NAME,
            config.get_foldered_service_name(),
            config.DEFAULT_TASK_COUNT,
            additional_options=additional_options,
        )

        yield  # let the test session execute
    finally:
        sdk_install.uninstall(config.PACKAGE_NAME, config.get_foldered_service_name())

        # remove job definitions from metronome
        for job in test_jobs:
            sdk_jobs.remove_job(job)
Example #11
0
def configure_package(configure_security):
    test_jobs = []
    try:
        test_jobs = config.get_all_jobs()
        # destroy any leftover jobs first, so that they don't touch the newly installed service:
        for job in test_jobs:
            sdk_jobs.remove_job(job)

        sdk_install.uninstall(config.PACKAGE_NAME, config.SERVICE_NAME)
        sdk_install.install(
            config.PACKAGE_NAME,
            config.SERVICE_NAME,
            config.DEFAULT_TASK_COUNT,
            additional_options=sdk_networks.ENABLE_VIRTUAL_NETWORKS_OPTIONS)

        tmp_dir = tempfile.mkdtemp(prefix='cassandra-test')
        for job in test_jobs:
            sdk_jobs.install_job(job, tmp_dir=tmp_dir)

        yield # let the test session execute
    finally:
        sdk_install.uninstall(config.PACKAGE_NAME, config.SERVICE_NAME)

        for job in test_jobs:
            sdk_jobs.remove_job(job)
Example #12
0
def configure_package(configure_security):
    test_jobs = []
    try:
        test_jobs = config.get_all_jobs(
            node_address=config.get_foldered_node_address())
        sdk_install.uninstall(config.get_foldered_service_name(),
                              package_name=config.PACKAGE_NAME)
        # user=root because Azure CLI needs to run in root...
        sdk_install.install(config.PACKAGE_NAME,
                            config.DEFAULT_TASK_COUNT,
                            service_name=config.get_foldered_service_name(),
                            additional_options={
                                "service": {
                                    "name": config.get_foldered_service_name(),
                                    "user": "******"
                                }
                            })

        tmp_dir = tempfile.mkdtemp(prefix='cassandra-test')
        for job in test_jobs:
            sdk_jobs.install_job(job, tmp_dir=tmp_dir)

        yield  # let the test session execute
    finally:
        sdk_install.uninstall(config.get_foldered_service_name(),
                              package_name=config.PACKAGE_NAME)

        # remove job definitions from metronome
        for job in test_jobs:
            sdk_jobs.remove_job(job)
Example #13
0
def _delete_hdfs_terasort_files():
    if HDFS_KERBEROS_ENABLED:
        job_dict = TERASORT_DELETE_JOB_KERBEROS
    else:
        job_dict = TERASORT_DELETE_JOB
    LOGGER.info("Deleting hdfs terasort files by running job {}".format(job_dict['id']))
    sdk_jobs.install_job(job_dict)
    sdk_jobs.run_job(job_dict, timeout_seconds=300)
    sdk_jobs.remove_job(job_dict)
Example #14
0
def configure_package(configure_security: None) -> Iterator[None]:
    test_jobs: List[Dict[str, Any]] = []
    try:
        secret_path = config.PACKAGE_NAME + "/" + config.SECRET_VALUE
        test_jobs = config.get_all_jobs(auth=True)
        # destroy/reinstall any prior leftover jobs, so that they don't touch the newly installed service:
        for job in test_jobs:
            sdk_jobs.install_job(job)

        create_secret(secret_value=config.SECRET_VALUE, secret_path=secret_path)
        # user=root because Azure CLI needs to run in root...
        # We don't run the Azure tests in strict however, so don't set it then.
        if os.environ.get("SECURITY") == "strict":
            service_options = {
                "service": {
                    "name": config.SERVICE_NAME,
                    "security": {
                        "authentication": {
                            "enabled": True,
                            "superuser": {"password_secret_path": "cassandra/password"},
                        },
                        "authorization": {"enabled": True},
                    },
                }
            }
        else:
            service_options = {
                "service": {
                    "name": config.SERVICE_NAME,
                    "user": "******",
                    "security": {
                        "authentication": {
                            "enabled": True,
                            "superuser": {"password_secret_path": "cassandra/password"},
                        },
                        "authorization": {"enabled": True},
                    },
                }
            }

        sdk_install.uninstall(config.PACKAGE_NAME, config.SERVICE_NAME)

        sdk_install.install(
            config.PACKAGE_NAME,
            config.SERVICE_NAME,
            config.DEFAULT_TASK_COUNT,
            additional_options=service_options,
        )

        yield  # let the test session execute
    finally:
        sdk_install.uninstall(config.PACKAGE_NAME, config.SERVICE_NAME)
        delete_secret(secret=secret_path)
        # remove job definitions from metronome
        for job in test_jobs:
            sdk_jobs.remove_job(job)
Example #15
0
def configure_package(configure_security):
    try:
        sdk_install.uninstall(PACKAGE_NAME)
        sdk_install.install(
            PACKAGE_NAME,
            DEFAULT_TASK_COUNT,
            additional_options=sdk_networks.ENABLE_VIRTUAL_NETWORKS_OPTIONS)

        tmp_dir = tempfile.mkdtemp(prefix='cassandra-test')
        for job in TEST_JOBS:
            sdk_jobs.install_job(job, tmp_dir=tmp_dir)

        yield  # let the test session execute
    finally:
        sdk_install.uninstall(PACKAGE_NAME)

        for job in TEST_JOBS:
            sdk_jobs.remove_job(job)
Example #16
0
def configure_package(configure_security):
    test_jobs = []
    try:
        test_jobs = config.get_all_jobs(
            node_address=config.get_foldered_node_address())
        # destroy any leftover jobs first, so that they don't touch the newly installed service:
        for job in test_jobs:
            sdk_jobs.remove_job(job)

        sdk_install.uninstall(config.PACKAGE_NAME,
                              config.get_foldered_service_name())
        # user=root because Azure CLI needs to run in root...
        # We don't run the Azure tests in strict however, so don't set it then.
        if os.environ.get("SECURITY") == "strict":
            additional_options = {
                "service": {
                    "name": config.get_foldered_service_name()
                }
            }
        else:
            additional_options = {
                "service": {
                    "name": config.get_foldered_service_name(),
                    "user": "******"
                }
            }

        sdk_install.install(config.PACKAGE_NAME,
                            config.get_foldered_service_name(),
                            config.DEFAULT_TASK_COUNT,
                            additional_options=additional_options)

        tmp_dir = tempfile.mkdtemp(prefix='cassandra-test')
        for job in test_jobs:
            sdk_jobs.install_job(job, tmp_dir=tmp_dir)

        yield  # let the test session execute
    finally:
        sdk_install.uninstall(config.PACKAGE_NAME,
                              config.get_foldered_service_name())

        # remove job definitions from metronome
        for job in test_jobs:
            sdk_jobs.remove_job(job)
Example #17
0
def configure_package(configure_security):
    try:
        sdk_install.uninstall(FOLDERED_SERVICE_NAME, package_name=PACKAGE_NAME)
        sdk_upgrade.test_upgrade(
            "beta-{}".format(PACKAGE_NAME),
            PACKAGE_NAME,
            DEFAULT_TASK_COUNT,
            service_name=FOLDERED_SERVICE_NAME,
            additional_options={"service": {"name": FOLDERED_SERVICE_NAME} })

        tmp_dir = tempfile.mkdtemp(prefix='cassandra-test')
        for job in TEST_JOBS:
            sdk_jobs.install_job(job, tmp_dir=tmp_dir)

        yield # let the test session execute
    finally:
        sdk_install.uninstall(FOLDERED_SERVICE_NAME, package_name=PACKAGE_NAME)

        for job in TEST_JOBS:
            sdk_jobs.remove_job(job)
Example #18
0
def configure_package(configure_security):
    test_jobs = []
    try:
        test_jobs = config.get_all_jobs()
        # destroy/reinstall any prior leftover jobs, so that they don't touch the newly installed service:
        for job in test_jobs:
            sdk_jobs.install_job(job)

        sdk_install.uninstall(config.PACKAGE_NAME, config.SERVICE_NAME)
        sdk_install.install(
            config.PACKAGE_NAME,
            config.SERVICE_NAME,
            config.DEFAULT_TASK_COUNT,
            additional_options=sdk_networks.ENABLE_VIRTUAL_NETWORKS_OPTIONS)

        yield  # let the test session execute
    finally:
        sdk_install.uninstall(config.PACKAGE_NAME, config.SERVICE_NAME)

        for job in test_jobs:
            sdk_jobs.remove_job(job)
Example #19
0
def configure_package(configure_security: None) -> Iterator[None]:
    test_jobs: List[Dict[str, Any]] = []
    try:
        test_jobs = config.get_all_jobs()
        # destroy/reinstall any prior leftover jobs, so that they don't touch the newly installed service:
        for job in test_jobs:
            sdk_jobs.install_job(job)

        sdk_install.uninstall(config.PACKAGE_NAME, config.SERVICE_NAME)
        sdk_install.install(
            config.PACKAGE_NAME,
            config.SERVICE_NAME,
            config.DEFAULT_TASK_COUNT,
            additional_options=sdk_networks.ENABLE_VIRTUAL_NETWORKS_OPTIONS,
        )

        yield  # let the test session execute
    finally:
        sdk_install.uninstall(config.PACKAGE_NAME, config.SERVICE_NAME)

        for job in test_jobs:
            sdk_jobs.remove_job(job)
Example #20
0
def teardown_module(module):
    install.uninstall(FOLDERED_SERVICE_NAME, package_name=PACKAGE_NAME)

    # remove job definitions from metronome
    for job in TEST_JOBS:
        jobs.remove_job(job)
Example #21
0
def teardown_module(module):
    install.uninstall(PACKAGE_NAME)

    for job in TEST_JOBS:
        jobs.remove_job(job)