def test_update_override_value():
    ts = Terrascript()
    ts2 = Terrascript()

    ts.add(variable('access_key'))
    ts.add(variable('secret_key'))

    var_region = ts.add(variable('region', default='us-east-1'))
    var_region2 = ts2.add(variable('region', default='ca-central-1'))

    assert var_region._kwargs['default'] != var_region2._kwargs['default']

    # ts2 override variable "region" in ts
    ts.update(ts2)
    assert isinstance(ts, Terrascript)
    assert isinstance(ts2, Terrascript)

    ts_variables = ts.config.get('variable', {})
    assert len(ts_variables.items()) == 3  # ensure that only three

    ts_var_region = ts_variables.get('region', {})
    assert ts_var_region.get('default',
                             '') == var_region2._kwargs.get('default')

    assert ts.validate(delete=False) is True
def test_update_raise_error():
    ts = Terrascript()
    var_region = variable('region')
    exception_raised = False
    try:
        ts.update(var_region)
    except TypeError as e:
        exception_raised = True

    assert exception_raised is True
def test_update_add_value():
    ts = Terrascript()
    ts2 = Terrascript()

    var_access_key = ts.add(variable('access_key'))
    var_secret_key = ts.add(variable('secret_key'))
    var_region = ts.add(variable('region', default='us-east-1'))

    ts += provider('aws',
                   access_key=var_access_key,
                   secret_key=var_secret_key,
                   region=var_region)

    resource_aws_instance = ts.add(
        aws_instance('example', ami='ami-2757f631', instance_type='t2.micro'))
    resource_aws_instance_2 = ts2.add(
        aws_instance('example_second',
                     ami='ami-2757f631',
                     instance_type='t2.micro'))
    assert isinstance(resource_aws_instance, aws_instance)
    assert isinstance(resource_aws_instance_2, aws_instance)

    # ts2 add resource "example_second" to ts
    ts.update(ts2)
    assert isinstance(ts, Terrascript)
    assert isinstance(ts2, Terrascript)

    ts_resources = ts.config.get('resource', {})
    assert len(ts_resources.items()) == 1
    ts_aws_instances = ts_resources.get('aws_instance')
    assert len(ts_aws_instances.items()) == 2

    assert resource_aws_instance._name in ts_aws_instances.keys()
    assert resource_aws_instance_2._name in ts_aws_instances.keys()

    assert ts.validate(delete=False) is True
Exemplo n.º 4
0
    )
    default_params.update(kwargs)

    # Providers
    aws_providers_map = {}
    for region in AWS_REGION_LIST:
        _provider = provider('aws',
                             region=region,
                             alias=region,
                             **default_params)
        aws_providers_map[region] = ts_local.add(_provider)

    ts_local.add(provider('aws', region=aws_region, **default_params))

    # VPC
    aws_vpc_map = {}
    for region in AWS_REGION_LIST:
        aws_provider = 'aws.{0}'.format(region)
        vpc_name = 'vpc-{}'.format(region)
        aws_vpc_map[region] = ts_local.add(
            aws_vpc(vpc_name, provider=aws_provider))

    return ts_local


ts.update(ts_digitalocean())
ts.update(ts_cloudflare())
ts_providers = ts

__all__ = ['ts_cloudflare', 'ts_digitalocean', 'ts_providers']