Example #1
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 #2
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 #3
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 #4
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 #5
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 #6
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)
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 #8
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 #9
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 #10
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 #11
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 #12
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 #13
0
def configure_package(configure_security):
    test_jobs = []
    try:
        test_jobs = config.get_all_jobs()
        sdk_install.uninstall(config.PACKAGE_NAME)
        sdk_install.install(
            config.PACKAGE_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)

        for job in test_jobs:
            sdk_jobs.remove_job(job)
Example #14
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 #15
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 #16
0
def install_jmx_configured_cassandra(self_signed_trust_store: bool = True,
                                     authentication: bool = True):
    foldered_name = config.get_foldered_service_name()
    test_jobs: List[Dict[str, Any]] = []

    if authentication:
        test_jobs = config.get_all_jobs(
            node_address=config.get_foldered_node_address(), auth=True)
    else:
        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, foldered_name)
    install_jmx_secrets()
    service_options = {
        "service": {
            "name": foldered_name,
            "jmx": {
                "enabled": True,
                "rmi_port": 31198,
                "password_file": PASSWORD_FILE,
                "access_file": ACCESS_FILE,
                "key_store": KEY_STORE,
                "key_store_password_file": KEY_STORE_PASS,
            },
        }
    }

    if self_signed_trust_store:
        service_options = sdk_utils.merge_dictionaries(
            {
                "service": {
                    "jmx": {
                        "add_trust_store": True,
                        "trust_store": TRUST_STORE,
                        "trust_store_password_file": TRUST_STORE_PASS,
                    }
                }
            },
            service_options,
        )

    if authentication:
        secret_path = foldered_name + "/" + config.SECRET_VALUE
        create_secret(secret_value=config.SECRET_VALUE,
                      secret_path=secret_path)
        service_options = sdk_utils.merge_dictionaries(
            {
                "service": {
                    "security": {
                        "authentication": {
                            "enabled": True,
                            "superuser": {
                                "password_secret_path": secret_path
                            },
                        },
                        "authorization": {
                            "enabled": True
                        },
                    }
                }
            },
            service_options,
        )

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