Exemple #1
0
def test_backup_and_restore_to_s3():
    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(config.get_foldered_service_name(),
                                  'backup-s3', 'restore-s3', plan_parameters,
                                  config.get_foldered_node_address())
Exemple #2
0
def test_backup_and_restore_to_s3():
    print("MDS debugging..")
    traceback.print_stack()
    key_id = os.getenv('MDS_AWS_ACCESS_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('MDS_AWS_ACCOUNT_KEY'),
        'AWS_REGION': 'us-west-2',
        'external_location': 'shaugupt245-backup',
        'backup_name': str(uuid.uuid1()),
        'CASSANDRA_KEYSPACES': '"system"',
    }

    config.run_backup_and_restore(config.get_foldered_service_name(),
                                  'backup-s3', 'restore-s3', plan_parameters,
                                  config.get_foldered_node_address())
def test_backup_and_restore():
    plan_parameters = {
        'S3_BUCKET_NAME': os.getenv('AWS_BUCKET_NAME',
                                    'infinity-framework-test'),
        'AWS_ACCESS_KEY_ID': os.getenv('AWS_ACCESS_KEY_ID'),
        'AWS_SECRET_ACCESS_KEY': os.getenv('AWS_SECRET_ACCESS_KEY'),
        'AWS_REGION': os.getenv('AWS_REGION', 'us-west-2'),
        'SNAPSHOT_NAME': str(uuid.uuid1()),
        'CASSANDRA_KEYSPACES': '"testspace1 testspace2"',
    }

    with sdk_jobs.InstallJobContext([
            config.get_write_data_job(),
            config.get_verify_data_job(),
            config.get_delete_data_job(),
            config.get_verify_deletion_job()
    ]):
        config.run_backup_and_restore(config.SERVICE_NAME, 'backup-s3',
                                      'restore-s3', plan_parameters)
Exemple #4
0
def test_backup_and_restore_to_azure():
    client_id = os.getenv('AZURE_CLIENT_ID')
    if not client_id:
        assert False, 'Azure credentials are required for this test. Disable test with e.g. TEST_TYPES="sanity and not azure"'
    plan_parameters = {
        'AZURE_CLIENT_ID': client_id,
        'AZURE_CLIENT_SECRET': os.getenv('AZURE_CLIENT_SECRET'),
        'AZURE_TENANT_ID': os.getenv('AZURE_TENANT_ID'),
        'AZURE_STORAGE_ACCOUNT': os.getenv('AZURE_STORAGE_ACCOUNT'),
        'AZURE_STORAGE_KEY': os.getenv('AZURE_STORAGE_KEY'),
        'CONTAINER_NAME': os.getenv('CONTAINER_NAME', 'cassandra-test'),
        'SNAPSHOT_NAME': str(uuid.uuid1()),
        'CASSANDRA_KEYSPACES': '"testspace1 testspace2"',
    }

    config.run_backup_and_restore(config.get_foldered_service_name(),
                                  'backup-azure', 'restore-azure',
                                  plan_parameters,
                                  config.get_foldered_node_address())
def test_backup_and_restore_to_s3():
    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(
        config.get_foldered_service_name(),
        'backup-s3',
        'restore-s3',
        plan_parameters,
        config.get_foldered_node_address())
def test_backup_and_restore_to_azure():
    client_id = os.getenv('AZURE_CLIENT_ID')
    if not client_id:
        assert False, 'Azure credentials are required for this test. Disable test with e.g. TEST_TYPES="sanity and not azure"'
    plan_parameters = {
        'CLIENT_ID': client_id,
        'CLIENT_SECRET': os.getenv('AZURE_CLIENT_SECRET'),
        'TENANT_ID': os.getenv('AZURE_TENANT_ID'),
        'AZURE_STORAGE_ACCOUNT': os.getenv('AZURE_STORAGE_ACCOUNT'),
        'AZURE_STORAGE_KEY': os.getenv('AZURE_STORAGE_KEY'),
        'CONTAINER_NAME': os.getenv('CONTAINER_NAME', 'cassandra-test'),
        'SNAPSHOT_NAME': str(uuid.uuid1()),
        'CASSANDRA_KEYSPACES': '"testspace1 testspace2"',
    }

    config.run_backup_and_restore(
        config.get_foldered_service_name(),
        'backup-azure',
        'restore-azure',
        plan_parameters,
        config.get_foldered_node_address())
Exemple #7
0
def test_backup_and_restore_to_s3() -> None:
    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(
        config.get_foldered_service_name(),
        "backup-s3",
        "restore-s3",
        plan_parameters,
        config.get_foldered_node_address(),
    )
def test_backup_and_restore():
    plan_parameters = {
        'S3_BUCKET_NAME': os.getenv(
            'AWS_BUCKET_NAME', 'infinity-framework-test'
        ),
        'AWS_ACCESS_KEY_ID': os.getenv('AWS_ACCESS_KEY_ID'),
        'AWS_SECRET_ACCESS_KEY': os.getenv('AWS_SECRET_ACCESS_KEY'),
        'AWS_REGION': os.getenv('AWS_REGION', 'us-west-2'),
        'SNAPSHOT_NAME': str(uuid.uuid1()),
        'CASSANDRA_KEYSPACES': '"testspace1 testspace2"',
    }

    with sdk_jobs.InstallJobContext([
            config.get_write_data_job(),
            config.get_verify_data_job(),
            config.get_delete_data_job(),
            config.get_verify_deletion_job()]):
        config.run_backup_and_restore(
            config.SERVICE_NAME,
            'backup-s3',
            'restore-s3',
            plan_parameters)
def test_backup_and_restore_to_azure() -> None:
    client_id = os.getenv("AZURE_CLIENT_ID")
    if not client_id:
        assert (
            False
        ), 'Azure credentials are required for this test. Disable test with e.g. TEST_TYPES="sanity and not azure"'
    plan_parameters = {
        "CLIENT_ID": client_id,
        "CLIENT_SECRET": os.getenv("AZURE_CLIENT_SECRET"),
        "TENANT_ID": os.getenv("AZURE_TENANT_ID"),
        "AZURE_STORAGE_ACCOUNT": os.getenv("AZURE_STORAGE_ACCOUNT"),
        "AZURE_STORAGE_KEY": os.getenv("AZURE_STORAGE_KEY"),
        "CONTAINER_NAME": os.getenv("CONTAINER_NAME", "cassandra-test"),
        "SNAPSHOT_NAME": str(uuid.uuid1()),
        "CASSANDRA_KEYSPACES": '"testspace1 testspace2"',
    }

    config.run_backup_and_restore(
        config.get_foldered_service_name(),
        "backup-azure",
        "restore-azure",
        plan_parameters,
        config.get_foldered_node_address(),
    )
Exemple #10
0
def test_backup_and_restore_to_s3_compatible_storage() -> None:
    try:
        sdk_install.install(
            "minio",
            "minio",
            expected_running_tasks=0,
            package_version="0.0.13-RELEASE.2018-10-06T00-15-16Z",
            wait_for_deployment=False,
        )
        temp_key_id = os.getenv("AWS_ACCESS_KEY_ID")

        if not temp_key_id:
            assert (
                False
            ), 'AWS credentials are required for this test. Disable test with e.g. TEST_TYPES="sanity and not aws"'
        temp_secret_access_key = os.getenv("AWS_SECRET_ACCESS_KEY")
        options = ""
        if sdk_utils.is_strict_mode():
            sdk_security.create_service_account(
                service_account_name="marathon-lb-sa",
                service_account_secret="marathon-lb/service-account-secret",
            )
            sdk_cmd.run_cli(
                "security org users grant marathon-lb-sa dcos:service:marathon:marathon:services:/ read"
            )
            sdk_cmd.run_cli(
                'security org users grant marathon-lb-sa dcos:service:marathon:marathon:admin:events read --description "Allows access to Marathon events"'
            )
            options = {
                "marathon-lb": {
                    "secret_name": "marathon-lb/service-account-secret",
                    "marathon-uri": "https://marathon.mesos:8443",
                }
            }

        sdk_install.install(
            "marathon-lb",
            "marathon-lb",
            expected_running_tasks=0,
            additional_options=options,
            package_version="1.14.0",
            wait_for_deployment=False,
        )
        host = sdk_marathon.get_scheduler_host("marathon-lb")
        _, public_node_ip, _ = sdk_cmd.agent_ssh(host, "curl -s ifconfig.co")
        minio_endpoint_url = "http://" + public_node_ip + ":9000"
        os.environ["AWS_ACCESS_KEY_ID"] = config.MINIO_AWS_ACCESS_KEY_ID
        os.environ["AWS_SECRET_ACCESS_KEY"] = config.MINIO_AWS_SECRET_ACCESS_KEY
        subprocess.run(
            [
                "aws",
                "s3",
                "mb",
                "s3://" + config.MINIO_BUCKET_NAME,
                "--endpoint",
                minio_endpoint_url,
            ]
        )

        plan_parameters = {
            "AWS_ACCESS_KEY_ID": os.getenv("AWS_ACCESS_KEY_ID"),
            "AWS_SECRET_ACCESS_KEY": os.getenv("AWS_SECRET_ACCESS_KEY"),
            "AWS_REGION": os.getenv("AWS_REGION", "us-west-2"),
            "S3_BUCKET_NAME": config.MINIO_BUCKET_NAME,
            "SNAPSHOT_NAME": str(uuid.uuid1()),
            "CASSANDRA_KEYSPACES": '"testspace1 testspace2"',
            "S3_ENDPOINT_URL": minio_endpoint_url,
        }

        config.run_backup_and_restore(
            config.get_foldered_service_name(),
            "backup-s3",
            "restore-s3",
            plan_parameters,
            config.get_foldered_node_address(),
        )
    finally:
        sdk_install.uninstall("minio", "minio")
        sdk_install.uninstall("marathon-lb", "marathon-lb")
        os.environ["AWS_ACCESS_KEY_ID"] = temp_key_id
        os.environ["AWS_SECRET_ACCESS_KEY"] = temp_secret_access_key