コード例 #1
0
def ts_amazon_aws(version='=< 2.30', AWS_REGION_LIST=['us-east-1'], **kwargs):
    ts_local = Terrascript()

    aws_access_key = ts_local.add(variable('aws_access_key'))
    aws_secret_key = ts_local.add(variable('aws_secret_key'))
    aws_region = ts_local.add(variable('aws_region', default='us-east-1'))

    default_params = dict(
        version=version,
        access_key=aws_access_key,
        secret_key=aws_secret_key,
    )
    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
コード例 #2
0
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
コード例 #3
0
def test_issue33():
    """Issue 33: Suggestion of syntax to terrascript"""

    ts = Terrascript()

    var_access_key = ts.add(variable('access_key'))
    assert isinstance(var_access_key, variable)

    var_secret_key = ts.add(variable('secret_key'))
    assert isinstance(var_secret_key, variable)

    var_region = ts.add(variable('region', default='us-east-1'))
    assert isinstance(var_region, variable)

    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'))
    assert isinstance(resource_aws_instance, aws_instance)

    ts += output('example_public_ip', value=resource_aws_instance.public_ip, 
                 description='Public IP of example')

    assert ts.validate() is True
コード例 #4
0
def create_variables(app_name, app_port, cluster_name):
	var_file = config.tf_dir + "/variables.tf" 
	ts = Terrascript()

	var_access_key = variable('aws_access_key', default='')
	var_secret_key = variable('aws_secret_key', default='')
	var_region = variable('region', default='eu-west-1')
	var_ami = variable('ami', default='ami-066826c6a40879d75')
	var_az_qty = variable('az_qty', default='2')
	var_cluster_name = variable('ecs_cluster_name', default=cluster_name)
	var_instance_type = variable('instance_type', default='t2.micro')
	var_key_name = variable('key_name', default='rep')
	var_app_port = variable('app_port', default=app_port)
	var_app_name = variable('app_name', default=app_name)

	ts += var_access_key
	ts += var_secret_key
	ts += var_region
	ts += var_ami
	ts += var_az_qty
	ts += var_cluster_name
	ts += var_instance_type
	ts += var_key_name
	ts += var_app_port
	ts += var_app_name

	print ("Creating file: " + var_file)
	with open(var_file, 'w') as tfile:
		tfile.write(ts.dump())
コード例 #5
0
def ts_cloudflare(version='< 1.9.0', **kwargs):
    ts_local = Terrascript()

    cloudflare_email = ts_local.add(variable('cloudflare_email'))
    cloudflare_token = ts_local.add(variable('cloudflare_token', default=''))

    default_parms = dict(
        email=cloudflare_email,
        token=cloudflare_token,
    )
    default_parms.update(kwargs)

    ts_local.add(provider('cloudflare', version=version, **default_parms))
    return ts_local
コード例 #6
0
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
コード例 #7
0
def ts_digitalocean(version='>= 1.7, < 1.9', **kwargs):
    ts_local = Terrascript()

    do_token = ts_local.add(variable('do_token'))

    default_parms = dict(token=do_token)
    default_parms.update(kwargs)

    ts_local.add(provider('digitalocean', version=version, **default_parms))

    return ts_local
コード例 #8
0
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