Skip to content

file lookup returning <type 'unicode'> where it previously returned <class 'troposphere.AWSHelperFn'> #645

Description

@ITProKyle

As of 1.4.0, the use of the ${file parameterized } lookup no longer works with blueprints using variable type of troposphere.AWSHelperFn. This was working in previous versions - most recently 1.3.0.

Error

File "/usr/local/lib/python2.7/site-packages/stacker/plan.py", line 93, in _run_once
  status = self.fn(self.stack, status=self.status)
File "/usr/local/lib/python2.7/site-packages/stacker/actions/build.py", line 321, in _launch_stack
  stack.resolve(self.context, self.provider)
File "/usr/local/lib/python2.7/site-packages/stacker/stack.py", line 196, in resolve
  self.blueprint.resolve_variables(self.variables)
File "/usr/local/lib/python2.7/site-packages/stacker/blueprints/base.py", line 452, in resolve_variables
  self.name
File "/usr/local/lib/python2.7/site-packages/stacker/blueprints/base.py", line 226, in resolve_variable
  value = validate_variable_type(var_name, var_type, value)
File "/usr/local/lib/python2.7/site-packages/stacker/blueprints/base.py", line 147, in validate_variable_type
  "type: %s." % (var_name, var_type, type(value))
ValueError: Value for variable ExampleParameter must be of type <class 'troposphere.AWSHelperFn'>. Actual type: <type 'unicode'>.

System Information

Operating System: Mac OS X 10.13.6 build 17G65
Python Version: 2.7.14
Stacker Version: 1.4.0

Files

├── top-level-folder
│   ├── blueprints
│   │   ├── __init__.py
│   │   └── example_blueprint.py
│   ├── file-to-reference.json
│   ├── example.env
│   └── stacker-config.yaml

stacker-config.yaml

namespace: example
stacker_bucket: ""

sys_path: ./

stacks:
  example-stack:
    class_path: blueprints.example_blueprint.BlueprintClass
    enabled: true
    variables:
      ExampleParameter: ${file parameterized:file://file-to-reference.json}

blueprints/example_blueprint.py

from troposphere import AWSHelperFn
from stacker.blueprints.base import Blueprint

class BlueprintClass(Blueprint):

    VARIABLES = {
        'ExampleParameter': {
            'type': AWSHelperFn
        }
    }

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Fields

    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions