SYMBOL INDEX (1202 symbols across 100 files) FILE: setup.py function get_install_requirements (line 8) | def get_install_requirements(path): function read (line 26) | def read(filename): FILE: stacker/actions/base.py function build_walker (line 34) | def build_walker(concurrency): function plan (line 60) | def plan(description, stack_action, context, function stack_template_key_name (line 96) | def stack_template_key_name(blueprint): function stack_template_url (line 112) | def stack_template_url(bucket_name, blueprint, endpoint): class BaseAction (line 129) | class BaseAction(object): method __init__ (line 145) | def __init__(self, context, provider_builder=None, cancel=None): method ensure_cfn_bucket (line 155) | def ensure_cfn_bucket(self): method stack_template_url (line 162) | def stack_template_url(self, blueprint): method s3_stack_push (line 167) | def s3_stack_push(self, blueprint, force=False): method execute (line 199) | def execute(self, *args, **kwargs): method pre_run (line 208) | def pre_run(self, *args, **kwargs): method run (line 211) | def run(self, *args, **kwargs): method post_run (line 214) | def post_run(self, *args, **kwargs): method build_provider (line 217) | def build_provider(self, stack): method provider (line 224) | def provider(self): method _tail_stack (line 229) | def _tail_stack(self, stack, cancel, retries=0, **kwargs): FILE: stacker/actions/build.py function build_stack_tags (line 33) | def build_stack_tags(stack): function should_update (line 38) | def should_update(stack): function should_submit (line 59) | def should_submit(stack): function should_ensure_cfn_bucket (line 76) | def should_ensure_cfn_bucket(outline, dump): function _resolve_parameters (line 90) | def _resolve_parameters(parameters, blueprint): class UsePreviousParameterValue (line 129) | class UsePreviousParameterValue(object): function _handle_missing_parameters (line 136) | def _handle_missing_parameters(parameter_values, all_params, required_pa... function handle_hooks (line 181) | def handle_hooks(stage, hooks, provider, context, dump, outline): class Action (line 204) | class Action(BaseAction): method build_parameters (line 219) | def build_parameters(self, stack, provider_stack=None): method _launch_stack (line 250) | def _launch_stack(self, stack, **kwargs): method _template (line 374) | def _template(self, blueprint): method _stack_policy (line 387) | def _stack_policy(self, stack): method _generate_plan (line 393) | def _generate_plan(self, tail=False): method pre_run (line 400) | def pre_run(self, outline=False, dump=False, *args, **kwargs): method run (line 414) | def run(self, concurrency=0, outline=False, method post_run (line 436) | def post_run(self, outline=False, dump=False, *args, **kwargs): FILE: stacker/actions/destroy.py class Action (line 23) | class Action(BaseAction): method _generate_plan (line 36) | def _generate_plan(self, tail=False): method _destroy_stack (line 44) | def _destroy_stack(self, stack, **kwargs): method pre_run (line 78) | def pre_run(self, outline=False, *args, **kwargs): method run (line 88) | def run(self, force, concurrency=0, tail=False, *args, **kwargs): method post_run (line 102) | def post_run(self, outline=False, *args, **kwargs): FILE: stacker/actions/diff.py class DictValue (line 17) | class DictValue(object): method __init__ (line 25) | def __init__(self, key, old_value, new_value): method __eq__ (line 30) | def __eq__(self, other): method changes (line 33) | def changes(self): method status (line 53) | def status(self): function diff_dictionaries (line 64) | def diff_dictionaries(old_dict, new_dict): function format_params_diff (line 105) | def format_params_diff(parameter_diff): function diff_parameters (line 124) | def diff_parameters(old_params, new_params): class Action (line 142) | class Action(build.Action): method _diff_stack (line 153) | def _diff_stack(self, stack, **kwargs): method _generate_plan (line 183) | def _generate_plan(self): method run (line 189) | def run(self, concurrency=0, *args, **kwargs): method pre_run (line 201) | def pre_run(self, *args, **kwargs): method post_run (line 204) | def post_run(self, *args, **kwargs): FILE: stacker/actions/graph.py function each_step (line 11) | def each_step(graph): function dot_format (line 24) | def dot_format(out, graph, name="digraph"): function json_format (line 35) | def json_format(out, graph): class Action (line 52) | class Action(BaseAction): method _generate_plan (line 54) | def _generate_plan(self): method run (line 60) | def run(self, format=None, reduce=False, *args, **kwargs): FILE: stacker/actions/info.py class Action (line 9) | class Action(BaseAction): method run (line 16) | def run(self, *args, **kwargs): FILE: stacker/awscli_yamlhelper.py function intrinsics_multi_constructor (line 20) | def intrinsics_multi_constructor(loader, tag_prefix, node): function yaml_dump (line 57) | def yaml_dump(dict_to_dump): function yaml_parse (line 66) | def yaml_parse(yamlstr): FILE: stacker/blueprints/base.py class CFNParameter (line 45) | class CFNParameter(object): method __init__ (line 47) | def __init__(self, name, value): method __repr__ (line 81) | def __repr__(self): method to_parameter_value (line 84) | def to_parameter_value(self): method ref (line 89) | def ref(self): function build_parameter (line 93) | def build_parameter(name, properties): function validate_variable_type (line 112) | def validate_variable_type(var_name, var_type, value): function validate_allowed_values (line 148) | def validate_allowed_values(allowed_values, value): function resolve_variable (line 168) | def resolve_variable(var_name, var_def, provided_variable, blueprint_name): function parse_user_data (line 234) | def parse_user_data(variables, raw_user_data, blueprint_name): class Blueprint (line 285) | class Blueprint(object): method __init__ (line 298) | def __init__(self, name, context, mappings=None, description=None): method get_parameter_definitions (line 316) | def get_parameter_definitions(self): method get_output_definitions (line 337) | def get_output_definitions(self): method get_required_parameter_definitions (line 349) | def get_required_parameter_definitions(self): method get_parameter_values (line 364) | def get_parameter_values(self): method setup_parameters (line 383) | def setup_parameters(self): method defined_variables (line 396) | def defined_variables(self): method get_variables (line 408) | def get_variables(self): method get_cfn_parameters (line 425) | def get_cfn_parameters(self): method resolve_variables (line 440) | def resolve_variables(self, provided_variables): method import_mappings (line 463) | def import_mappings(self): method reset_template (line 471) | def reset_template(self): method render_template (line 476) | def render_template(self): method to_json (line 487) | def to_json(self, variables=None): method read_user_data (line 512) | def read_user_data(self, user_data_path): method set_template_description (line 529) | def set_template_description(self, description): method add_output (line 539) | def add_output(self, name, value): method requires_change_set (line 549) | def requires_change_set(self): method rendered (line 554) | def rendered(self): method version (line 560) | def version(self): method create_template (line 565) | def create_template(self): FILE: stacker/blueprints/raw.py function get_template_path (line 15) | def get_template_path(filename): function get_template_params (line 38) | def get_template_params(template): function resolve_variable (line 55) | def resolve_variable(provided_variable, blueprint_name): class RawTemplateBlueprint (line 85) | class RawTemplateBlueprint(Blueprint): method __init__ (line 88) | def __init__(self, name, context, raw_template_path, mappings=None, # ... method to_json (line 99) | def to_json(self, variables=None): # pylint: disable=unused-argument method to_dict (line 113) | def to_dict(self): method render_template (line 122) | def render_template(self): method get_parameter_definitions (line 126) | def get_parameter_definitions(self): method get_output_definitions (line 137) | def get_output_definitions(self): method resolve_variables (line 148) | def resolve_variables(self, provided_variables): method get_parameter_values (line 185) | def get_parameter_values(self): method requires_change_set (line 197) | def requires_change_set(self): method rendered (line 202) | def rendered(self): method version (line 226) | def version(self): FILE: stacker/blueprints/testutil.py function diff (line 13) | def diff(a, b): class BlueprintTestCase (line 25) | class BlueprintTestCase(unittest.TestCase): method assertRenderedBlueprint (line 28) | def assertRenderedBlueprint(self, blueprint): # noqa: N802 class YamlDirTestGenerator (line 45) | class YamlDirTestGenerator(object): method __init__ (line 91) | def __init__(self): method base_class (line 99) | def base_class(self): method yaml_dirs (line 103) | def yaml_dirs(self): method yaml_filename (line 107) | def yaml_filename(self): method test_generator (line 110) | def test_generator(self): FILE: stacker/blueprints/variables/types.py class TroposphereType (line 3) | class TroposphereType(object): method __init__ (line 5) | def __init__(self, defined_type, many=False, optional=False, method _validate_type (line 47) | def _validate_type(self, defined_type): method resource_name (line 52) | def resource_name(self): method create (line 57) | def create(self, value): class CFNType (line 109) | class CFNType(object): method __init__ (line 111) | def __init__(self, parameter_type): FILE: stacker/commands/stacker/__init__.py class Stacker (line 18) | class Stacker(BaseCommand): method configure (line 23) | def configure(self, options, **kwargs): method add_arguments (line 55) | def add_arguments(self, parser): FILE: stacker/commands/stacker/base.py function cancel (line 22) | def cancel(): class KeyValueAction (line 39) | class KeyValueAction(argparse.Action): method __init__ (line 40) | def __init__(self, option_strings, dest, default=None, nargs=None, method __call__ (line 48) | def __call__(self, parser, namespace, values, option_string=None): function key_value_arg (line 56) | def key_value_arg(string): function environment_file (line 65) | def environment_file(input_file): class BaseCommand (line 77) | class BaseCommand(object): method __init__ (line 98) | def __init__(self, setup_logging=None, *args, **kwargs): method add_subcommands (line 103) | def add_subcommands(self, parser): method parse_args (line 117) | def parse_args(self, *vargs): method run (line 125) | def run(self, options, **kwargs): method configure (line 128) | def configure(self, options, **kwargs): method get_context_kwargs (line 132) | def get_context_kwargs(self, options, **kwargs): method add_arguments (line 149) | def add_arguments(self, parser): FILE: stacker/commands/stacker/build.py class Build (line 13) | class Build(BaseCommand): method add_arguments (line 18) | def add_arguments(self, parser): method run (line 47) | def run(self, options, **kwargs): method get_context_kwargs (line 57) | def get_context_kwargs(self, options, **kwargs): FILE: stacker/commands/stacker/destroy.py class Destroy (line 12) | class Destroy(BaseCommand): method add_arguments (line 17) | def add_arguments(self, parser): method run (line 38) | def run(self, options, **kwargs): method get_context_kwargs (line 47) | def get_context_kwargs(self, options, **kwargs): FILE: stacker/commands/stacker/diff.py class Diff (line 11) | class Diff(BaseCommand): method add_arguments (line 15) | def add_arguments(self, parser): method run (line 29) | def run(self, options, **kwargs): method get_context_kwargs (line 35) | def get_context_kwargs(self, options, **kwargs): FILE: stacker/commands/stacker/graph.py class Graph (line 9) | class Graph(BaseCommand): method add_arguments (line 14) | def add_arguments(self, parser): method run (line 26) | def run(self, options, **kwargs): FILE: stacker/commands/stacker/info.py class Info (line 7) | class Info(BaseCommand): method add_arguments (line 12) | def add_arguments(self, parser): method run (line 21) | def run(self, options, **kwargs): method get_context_kwargs (line 28) | def get_context_kwargs(self, options, **kwargs): FILE: stacker/config/__init__.py function render_parse_load (line 39) | def render_parse_load(raw_config, environment=None, validate=True): function render (line 78) | def render(raw_config, environment=None): function substitute_references (line 151) | def substitute_references(root, environment, exp, full_exp): function parse (line 217) | def parse(raw_config): function load (line 254) | def load(config): function dump (line 277) | def dump(config): function process_remote_sources (line 296) | def process_remote_sources(raw_config, environment=None): function not_empty_list (line 330) | def not_empty_list(value): class AnyType (line 336) | class AnyType(BaseType): class LocalPackageSource (line 340) | class LocalPackageSource(Model): class GitPackageSource (line 348) | class GitPackageSource(Model): class S3PackageSource (line 362) | class S3PackageSource(Model): class PackageSources (line 376) | class PackageSources(Model): class Hook (line 384) | class Hook(Model): class Target (line 396) | class Target(Model): class Stack (line 404) | class Stack(Model): method validate_class_path (line 442) | def validate_class_path(self, data, value): method validate_template_path (line 449) | def validate_template_path(self, data, value): method validate_stack_source (line 456) | def validate_stack_source(self, data): method validate_parameters (line 466) | def validate_parameters(self, data, value): class Config (line 479) | class Config(Model): method _remove_excess_keys (line 543) | def _remove_excess_keys(self, data): method _convert (line 557) | def _convert(self, raw_data=None, context=None, **kwargs): method validate (line 568) | def validate(self, *args, **kwargs): method validate_stacks (line 576) | def validate_stacks(self, data, value): FILE: stacker/config/translators/kms.py function kms_simple_constructor (line 5) | def kms_simple_constructor(loader, node): FILE: stacker/context.py function get_fqn (line 15) | def get_fqn(base_fqn, delimiter, name=None): class Context (line 28) | class Context(object): method __init__ (line 46) | def __init__(self, environment=None, method namespace (line 57) | def namespace(self): method namespace_delimiter (line 61) | def namespace_delimiter(self): method template_indent (line 68) | def template_indent(self): method bucket_name (line 75) | def bucket_name(self): method upload_templates_to_s3 (line 83) | def upload_templates_to_s3(self): method tags (line 104) | def tags(self): method _base_fqn (line 113) | def _base_fqn(self): method mappings (line 117) | def mappings(self): method _get_stack_definitions (line 120) | def _get_stack_definitions(self): method get_targets (line 123) | def get_targets(self): method get_stacks (line 138) | def get_stacks(self): method get_stack (line 166) | def get_stack(self, name): method get_stacks_dict (line 171) | def get_stacks_dict(self): method get_fqn (line 174) | def get_fqn(self, name=None): method set_hook_data (line 183) | def set_hook_data(self, key, data): FILE: stacker/dag/__init__.py class DAGValidationError (line 10) | class DAGValidationError(Exception): class DAG (line 14) | class DAG(object): method __init__ (line 17) | def __init__(self): method add_node (line 21) | def add_node(self, node_name): method add_node_if_not_exists (line 36) | def add_node_if_not_exists(self, node_name): method delete_node (line 47) | def delete_node(self, node_name): method delete_node_if_exists (line 65) | def delete_node_if_exists(self, node_name): method add_edge (line 80) | def add_edge(self, ind_node, dep_node): method delete_edge (line 107) | def delete_edge(self, ind_node, dep_node): method transpose (line 125) | def transpose(self): method walk (line 141) | def walk(self, walk_func): method transitive_reduction (line 158) | def transitive_reduction(self): method rename_edges (line 187) | def rename_edges(self, old_node_name, new_node_name): method predecessors (line 205) | def predecessors(self, node): method downstream (line 217) | def downstream(self, node): method all_downstreams (line 232) | def all_downstreams(self, node): method filter (line 257) | def filter(self, nodes): method all_leaves (line 283) | def all_leaves(self): method from_dict (line 292) | def from_dict(self, graph_dict): method reset_graph (line 313) | def reset_graph(self): method ind_nodes (line 317) | def ind_nodes(self): method validate (line 330) | def validate(self): method topological_sort (line 340) | def topological_sort(self): method size (line 378) | def size(self): method __len__ (line 381) | def __len__(self): function walk (line 385) | def walk(dag, walk_func): class UnlimitedSemaphore (line 389) | class UnlimitedSemaphore(object): method acquire (line 394) | def acquire(self, *args): method release (line 397) | def release(self): class ThreadedWalker (line 401) | class ThreadedWalker(object): method __init__ (line 410) | def __init__(self, semaphore): method walk (line 413) | def walk(self, dag, walk_func): FILE: stacker/environment.py class DictWithSourceType (line 5) | class DictWithSourceType(dict): method __init__ (line 14) | def __init__(self, source_type, *args): function parse_environment (line 21) | def parse_environment(raw_environment): function parse_yaml_environment (line 40) | def parse_yaml_environment(raw_environment): FILE: stacker/exceptions.py class InvalidConfig (line 3) | class InvalidConfig(Exception): method __init__ (line 4) | def __init__(self, errors): class InvalidLookupCombination (line 9) | class InvalidLookupCombination(Exception): method __init__ (line 11) | def __init__(self, lookup, lookups, value, *args, **kwargs): class InvalidLookupConcatenation (line 21) | class InvalidLookupConcatenation(Exception): method __init__ (line 26) | def __init__(self, lookup, lookups, *args, **kwargs): class UnknownLookupType (line 32) | class UnknownLookupType(Exception): method __init__ (line 34) | def __init__(self, lookup_type, *args, **kwargs): class FailedVariableLookup (line 39) | class FailedVariableLookup(Exception): method __init__ (line 41) | def __init__(self, variable_name, lookup, error, *args, **kwargs): class FailedLookup (line 50) | class FailedLookup(Exception): method __init__ (line 55) | def __init__(self, lookup, error, *args, **kwargs): class InvalidUserdataPlaceholder (line 61) | class InvalidUserdataPlaceholder(Exception): method __init__ (line 63) | def __init__(self, blueprint_name, exception_message, *args, **kwargs): class UnresolvedVariables (line 72) | class UnresolvedVariables(Exception): method __init__ (line 74) | def __init__(self, blueprint_name, *args, **kwargs): class UnresolvedVariable (line 80) | class UnresolvedVariable(Exception): method __init__ (line 82) | def __init__(self, blueprint_name, variable, *args, **kwargs): class UnresolvedVariableValue (line 91) | class UnresolvedVariableValue(Exception): method __init__ (line 96) | def __init__(self, lookup, *args, **kwargs): class MissingVariable (line 102) | class MissingVariable(Exception): method __init__ (line 104) | def __init__(self, blueprint_name, variable_name, *args, **kwargs): class VariableTypeRequired (line 110) | class VariableTypeRequired(Exception): method __init__ (line 112) | def __init__(self, blueprint_name, variable_name, *args, **kwargs): class StackDoesNotExist (line 120) | class StackDoesNotExist(Exception): method __init__ (line 122) | def __init__(self, stack_name, *args, **kwargs): class MissingParameterException (line 128) | class MissingParameterException(Exception): method __init__ (line 130) | def __init__(self, parameters, *args, **kwargs): class OutputDoesNotExist (line 139) | class OutputDoesNotExist(Exception): method __init__ (line 141) | def __init__(self, stack_name, output, *args, **kwargs): class MissingEnvironment (line 150) | class MissingEnvironment(Exception): method __init__ (line 152) | def __init__(self, key, *args, **kwargs): class WrongEnvironmentType (line 158) | class WrongEnvironmentType(Exception): method __init__ (line 160) | def __init__(self, key, *args, **kwargs): class ImproperlyConfigured (line 166) | class ImproperlyConfigured(Exception): method __init__ (line 168) | def __init__(self, cls, error, *args, **kwargs): class StackDidNotChange (line 176) | class StackDidNotChange(Exception): class CancelExecution (line 183) | class CancelExecution(Exception): class ValidatorError (line 188) | class ValidatorError(Exception): method __init__ (line 193) | def __init__(self, variable, validator, value, exception=None): method __str__ (line 205) | def __str__(self): class ChangesetDidNotStabilize (line 209) | class ChangesetDidNotStabilize(Exception): method __init__ (line 210) | def __init__(self, change_set_id): class UnhandledChangeSetStatus (line 219) | class UnhandledChangeSetStatus(Exception): method __init__ (line 220) | def __init__(self, stack_name, change_set_id, status, status_reason): class UnableToExecuteChangeSet (line 234) | class UnableToExecuteChangeSet(Exception): method __init__ (line 235) | def __init__(self, stack_name, change_set_id, execution_status): class StackUpdateBadStatus (line 246) | class StackUpdateBadStatus(Exception): method __init__ (line 248) | def __init__(self, stack_name, stack_status, reason, *args, **kwargs): class PlanFailed (line 257) | class PlanFailed(Exception): method __init__ (line 259) | def __init__(self, failed_steps, *args, **kwargs): class GraphError (line 268) | class GraphError(Exception): method __init__ (line 272) | def __init__(self, exception, stack, dependency): FILE: stacker/hooks/aws_lambda.py function _zip_files (line 28) | def _zip_files(files, root): function _calculate_hash (line 73) | def _calculate_hash(files, root): function _calculate_prebuilt_hash (line 98) | def _calculate_prebuilt_hash(f): function _find_files (line 110) | def _find_files(root, includes, excludes, follow_symlinks): function _zip_from_file_patterns (line 144) | def _zip_from_file_patterns(root, includes, excludes, follow_symlinks): function _head_object (line 179) | def _head_object(s3_conn, bucket, key): function _upload_code (line 204) | def _upload_code(s3_conn, bucket, prefix, name, contents, content_hash, function _check_pattern_list (line 247) | def _check_pattern_list(patterns, key, default=None): function _upload_prebuilt_zip (line 282) | def _upload_prebuilt_zip(s3_conn, bucket, prefix, name, options, path, function _build_and_upload_zip (line 297) | def _build_and_upload_zip(s3_conn, bucket, prefix, name, options, path, function _upload_function (line 314) | def _upload_function(s3_conn, bucket, prefix, name, options, follow_syml... function select_bucket_region (line 374) | def select_bucket_region(custom_bucket, hook_region, stacker_bucket_region, function upload_lambda_functions (line 400) | def upload_lambda_functions(context, provider, **kwargs): FILE: stacker/hooks/command.py function _devnull (line 11) | def _devnull(): function run_command (line 15) | def run_command(provider, context, command, capture=False, interactive=F... FILE: stacker/hooks/ecs.py function create_clusters (line 12) | def create_clusters(provider, context, **kwargs): FILE: stacker/hooks/iam.py function create_ecs_service_role (line 16) | def create_ecs_service_role(provider, context, **kwargs): function _get_cert_arn_from_response (line 63) | def _get_cert_arn_from_response(response): function get_cert_contents (line 71) | def get_cert_contents(kwargs): function ensure_server_cert_exists (line 124) | def ensure_server_cert_exists(provider, context, **kwargs): FILE: stacker/hooks/keypair.py function get_existing_key_pair (line 18) | def get_existing_key_pair(ec2, keypair_name): function import_key_pair (line 38) | def import_key_pair(ec2, keypair_name, public_key_data): function read_public_key_file (line 50) | def read_public_key_file(path): function create_key_pair_from_public_key_file (line 67) | def create_key_pair_from_public_key_file(ec2, keypair_name, public_key_p... function create_key_pair_in_ssm (line 80) | def create_key_pair_in_ssm(ec2, ssm, keypair_name, parameter_name, function create_key_pair (line 117) | def create_key_pair(ec2, keypair_name): function create_key_pair_local (line 126) | def create_key_pair_local(ec2, keypair_name, dest_dir): function interactive_prompt (line 153) | def interactive_prompt(keypair_name, ): function ensure_keypair_exists (line 181) | def ensure_keypair_exists(provider, context, **kwargs): FILE: stacker/hooks/route53.py function create_domain (line 10) | def create_domain(provider, context, **kwargs): FILE: stacker/hooks/utils.py function full_path (line 11) | def full_path(path): function handle_hooks (line 15) | def handle_hooks(stage, hooks, provider, context): FILE: stacker/logger/__init__.py class ColorFormatter (line 12) | class ColorFormatter(logging.Formatter): method format (line 14) | def format(self, record): function setup_logging (line 21) | def setup_logging(verbosity, formats=None): FILE: stacker/lookups/__init__.py function extract_lookups_from_string (line 26) | def extract_lookups_from_string(value): function extract_lookups (line 46) | def extract_lookups(value): FILE: stacker/lookups/handlers/__init__.py class LookupHandler (line 3) | class LookupHandler(object): method handle (line 5) | def handle(cls, value, context, provider): method dependencies (line 19) | def dependencies(cls, lookup_data): FILE: stacker/lookups/handlers/ami.py class ImageNotFound (line 11) | class ImageNotFound(Exception): method __init__ (line 12) | def __init__(self, search_string): class AmiLookup (line 20) | class AmiLookup(LookupHandler): method handle (line 22) | def handle(cls, value, provider, **kwargs): FILE: stacker/lookups/handlers/default.py class DefaultLookup (line 8) | class DefaultLookup(LookupHandler): method handle (line 10) | def handle(cls, value, **kwargs): FILE: stacker/lookups/handlers/dynamodb.py class DynamodbLookup (line 11) | class DynamodbLookup(LookupHandler): method handle (line 13) | def handle(cls, value, **kwargs): function _lookup_key_parse (line 81) | def _lookup_key_parse(table_keys): function _build_projection_expression (line 125) | def _build_projection_expression(clean_table_keys): function _get_val_from_ddb_data (line 142) | def _get_val_from_ddb_data(data, keylist): function _convert_ddb_list_to_list (line 176) | def _convert_ddb_list_to_list(conversion_list): FILE: stacker/lookups/handlers/envvar.py class EnvvarLookup (line 9) | class EnvvarLookup(LookupHandler): method handle (line 11) | def handle(cls, value, **kwargs): FILE: stacker/lookups/handlers/file.py class FileLookup (line 20) | class FileLookup(LookupHandler): method handle (line 22) | def handle(cls, value, **kwargs): function _parameterize_string (line 112) | def _parameterize_string(raw): function parameterized_codec (line 142) | def parameterized_codec(raw, b64): function _parameterize_obj (line 167) | def _parameterize_obj(obj): class SafeUnicodeLoader (line 197) | class SafeUnicodeLoader(yaml.SafeLoader): method construct_yaml_str (line 198) | def construct_yaml_str(self, node): function yaml_codec (line 202) | def yaml_codec(raw, parameterized=False): function json_codec (line 207) | def json_codec(raw, parameterized=False): FILE: stacker/lookups/handlers/hook_data.py class HookDataLookup (line 8) | class HookDataLookup(LookupHandler): method handle (line 10) | def handle(cls, value, context, **kwargs): FILE: stacker/lookups/handlers/kms.py class KmsLookup (line 11) | class KmsLookup(LookupHandler): method handle (line 13) | def handle(cls, value, **kwargs): FILE: stacker/lookups/handlers/output.py class OutputLookup (line 12) | class OutputLookup(LookupHandler): method handle (line 14) | def handle(cls, value, context=None, **kwargs): method dependencies (line 35) | def dependencies(cls, lookup_data): function deconstruct (line 57) | def deconstruct(value): FILE: stacker/lookups/handlers/rxref.py class RxrefLookup (line 20) | class RxrefLookup(LookupHandler): method handle (line 22) | def handle(cls, value, provider=None, context=None, **kwargs): FILE: stacker/lookups/handlers/split.py class SplitLookup (line 5) | class SplitLookup(LookupHandler): method handle (line 7) | def handle(cls, value, **kwargs): FILE: stacker/lookups/handlers/ssmstore.py class SsmstoreLookup (line 10) | class SsmstoreLookup(LookupHandler): method handle (line 12) | def handle(cls, value, **kwargs): FILE: stacker/lookups/handlers/xref.py class XrefLookup (line 19) | class XrefLookup(LookupHandler): method handle (line 21) | def handle(cls, value, provider=None, **kwargs): FILE: stacker/lookups/registry.py function register_lookup_handler (line 26) | def register_lookup_handler(lookup_type, handler_or_path): function unregister_lookup_handler (line 53) | def unregister_lookup_handler(lookup_type): function resolve_lookups (line 66) | def resolve_lookups(variable, context, provider): FILE: stacker/plan.py function log_step (line 32) | def log_step(step): class Step (line 40) | class Step(object): method __init__ (line 51) | def __init__(self, stack, fn, watch_func=None): method __repr__ (line 58) | def __repr__(self): method __str__ (line 61) | def __str__(self): method run (line 64) | def run(self): method _run_once (line 87) | def _run_once(self): method name (line 97) | def name(self): method requires (line 101) | def requires(self): method required_by (line 105) | def required_by(self): method completed (line 109) | def completed(self): method skipped (line 114) | def skipped(self): method failed (line 119) | def failed(self): method done (line 124) | def done(self): method ok (line 130) | def ok(self): method submitted (line 135) | def submitted(self): method set_status (line 139) | def set_status(self, status): method complete (line 153) | def complete(self): method skip (line 157) | def skip(self): method submit (line 161) | def submit(self): function build_plan (line 166) | def build_plan(description, graph, function build_graph (line 198) | def build_graph(steps): class Graph (line 219) | class Graph(object): method __init__ (line 242) | def __init__(self, steps=None, dag=None): method add_step (line 246) | def add_step(self, step): method connect (line 250) | def connect(self, step, dep): method transitive_reduction (line 258) | def transitive_reduction(self): method walk (line 261) | def walk(self, walker, walk_func): method downstream (line 268) | def downstream(self, step_name): method transposed (line 272) | def transposed(self): method filtered (line 278) | def filtered(self, step_names): method topological_sort (line 282) | def topological_sort(self): method to_dict (line 286) | def to_dict(self): class Plan (line 290) | class Plan(object): method __init__ (line 297) | def __init__(self, description, graph): method outline (line 302) | def outline(self, level=logging.INFO, message=""): method dump (line 327) | def dump(self, directory, context, provider=None): method execute (line 354) | def execute(self, *args, **kwargs): method walk (line 367) | def walk(self, walker): method steps (line 389) | def steps(self): method step_names (line 395) | def step_names(self): method keys (line 398) | def keys(self): FILE: stacker/providers/aws/default.py function get_cloudformation_client (line 57) | def get_cloudformation_client(session): function get_output_dict (line 66) | def get_output_dict(stack): function s3_fallback (line 88) | def s3_fallback(fqn, template, parameters, tags, method, function get_change_set_name (line 115) | def get_change_set_name(): function requires_replacement (line 127) | def requires_replacement(changeset): function output_full_changeset (line 141) | def output_full_changeset(full_changeset=None, params_diff=None, function ask_for_approval (line 182) | def ask_for_approval(full_changeset=None, params_diff=None, function output_summary (line 212) | def output_summary(fqn, action, changeset, params_diff, function format_params_diff (line 256) | def format_params_diff(params_diff): function summarize_params_diff (line 263) | def summarize_params_diff(params_diff): function wait_till_change_set_complete (line 284) | def wait_till_change_set_complete(cfn_client, change_set_id, try_count=25, function create_change_set (line 330) | def create_change_set( function check_tags_contain (line 399) | def check_tags_contain(actual, expected): function generate_cloudformation_args (line 419) | def generate_cloudformation_args( function generate_stack_policy_args (line 493) | def generate_stack_policy_args(stack_policy=None): class ProviderBuilder (line 520) | class ProviderBuilder(object): method __init__ (line 523) | def __init__(self, region=None, **kwargs): method build (line 529) | def build(self, region=None, profile=None): class Provider (line 554) | class Provider(BaseProvider): method __init__ (line 604) | def __init__(self, session, region=None, interactive=False, method get_stack (line 616) | def get_stack(self, stack_name, **kwargs): method get_stack_status (line 625) | def get_stack_status(self, stack, **kwargs): method is_stack_completed (line 628) | def is_stack_completed(self, stack, **kwargs): method is_stack_in_progress (line 631) | def is_stack_in_progress(self, stack, **kwargs): method is_stack_destroyed (line 634) | def is_stack_destroyed(self, stack, **kwargs): method is_stack_recreatable (line 637) | def is_stack_recreatable(self, stack, **kwargs): method is_stack_rolling_back (line 640) | def is_stack_rolling_back(self, stack, **kwargs): method is_stack_failed (line 643) | def is_stack_failed(self, stack, **kwargs): method is_stack_in_review (line 646) | def is_stack_in_review(self, stack, **kwargs): method tail_stack (line 649) | def tail_stack(self, stack, cancel, log_func=None, **kwargs): method _tail_print (line 680) | def _tail_print(e): method get_events (line 685) | def get_events(self, stack_name, chronological=True): method get_rollback_status_reason (line 708) | def get_rollback_status_reason(self, stack_name): method tail (line 723) | def tail(self, stack_name, cancel, log_func=_tail_print, sleep_time=5, method destroy_stack (line 745) | def destroy_stack(self, stack, **kwargs): method create_stack (line 754) | def create_stack( method select_update_method (line 818) | def select_update_method(self, force_interactive, force_change_set): method prepare_stack_for_update (line 836) | def prepare_stack_for_update(self, stack, tags): method update_stack (line 903) | def update_stack(self, fqn, template, old_parameters, parameters, tags, method deal_with_changeset_stack_policy (line 940) | def deal_with_changeset_stack_policy(self, fqn, stack_policy): method interactive_update_stack (line 957) | def interactive_update_stack(self, fqn, template, old_parameters, method noninteractive_changeset_update (line 1017) | def noninteractive_changeset_update(self, fqn, template, old_parameters, method default_update_stack (line 1051) | def default_update_stack(self, fqn, template, old_parameters, parameters, method get_stack_name (line 1097) | def get_stack_name(self, stack, **kwargs): method get_stack_tags (line 1100) | def get_stack_tags(self, stack, **kwargs): method get_outputs (line 1103) | def get_outputs(self, stack_name, *args, **kwargs): method get_output_dict (line 1109) | def get_output_dict(self, stack): method get_stack_info (line 1112) | def get_stack_info(self, stack): method get_stack_changes (line 1134) | def get_stack_changes(self, stack, template, parameters, method params_as_dict (line 1252) | def params_as_dict(parameters_list): FILE: stacker/providers/base.py function not_implemented (line 3) | def not_implemented(method): class BaseProviderBuilder (line 8) | class BaseProviderBuilder(object): method build (line 9) | def build(self, region=None): class BaseProvider (line 13) | class BaseProvider(object): method get_stack (line 14) | def get_stack(self, stack_name, *args, **kwargs): method create_stack (line 18) | def create_stack(self, *args, **kwargs): method update_stack (line 22) | def update_stack(self, *args, **kwargs): method destroy_stack (line 26) | def destroy_stack(self, *args, **kwargs): method get_stack_status (line 30) | def get_stack_status(self, stack_name, *args, **kwargs): method get_outputs (line 34) | def get_outputs(self, stack_name, *args, **kwargs): method get_output (line 38) | def get_output(self, stack_name, output): class Template (line 43) | class Template(object): method __init__ (line 51) | def __init__(self, url=None, body=None): FILE: stacker/session_cache.py function get_session (line 17) | def get_session(region, profile=None): FILE: stacker/stack.py function _gather_variables (line 12) | def _gather_variables(stack_def): class Stack (line 41) | class Stack(object): method __init__ (line 60) | def __init__( method __repr__ (line 87) | def __repr__(self): method required_by (line 91) | def required_by(self): method requires (line 95) | def requires(self): method stack_policy (line 110) | def stack_policy(self): method blueprint (line 120) | def blueprint(self): method tags (line 148) | def tags(self): method parameter_values (line 161) | def parameter_values(self): method all_parameter_definitions (line 174) | def all_parameter_definitions(self): method required_parameter_definitions (line 179) | def required_parameter_definitions(self): method resolve (line 183) | def resolve(self, context, provider): method set_outputs (line 198) | def set_outputs(self, outputs): FILE: stacker/status.py class Status (line 4) | class Status(object): method __init__ (line 5) | def __init__(self, name, code, reason=None): method _comparison (line 10) | def _comparison(self, operator, other): method __eq__ (line 15) | def __eq__(self, other): method __ne__ (line 18) | def __ne__(self, other): method __lt__ (line 21) | def __lt__(self, other): method __gt__ (line 24) | def __gt__(self, other): method __le__ (line 27) | def __le__(self, other): method __ge__ (line 30) | def __ge__(self, other): class PendingStatus (line 34) | class PendingStatus(Status): method __init__ (line 35) | def __init__(self, reason=None): class SubmittedStatus (line 39) | class SubmittedStatus(Status): method __init__ (line 40) | def __init__(self, reason=None): class CompleteStatus (line 44) | class CompleteStatus(Status): method __init__ (line 45) | def __init__(self, reason=None): class SkippedStatus (line 49) | class SkippedStatus(Status): method __init__ (line 50) | def __init__(self, reason=None): class FailedStatus (line 54) | class FailedStatus(Status): method __init__ (line 55) | def __init__(self, reason=None): class NotSubmittedStatus (line 59) | class NotSubmittedStatus(SkippedStatus): class NotUpdatedStatus (line 63) | class NotUpdatedStatus(SkippedStatus): class DidNotChangeStatus (line 67) | class DidNotChangeStatus(SkippedStatus): class StackDoesNotExist (line 71) | class StackDoesNotExist(SkippedStatus): FILE: stacker/target.py class Target (line 3) | class Target(object): method __init__ (line 9) | def __init__(self, definition): FILE: stacker/tests/actions/test_base.py class TestBlueprint (line 24) | class TestBlueprint(Blueprint): method version (line 26) | def version(self): class TestBaseAction (line 34) | class TestBaseAction(unittest.TestCase): method test_ensure_cfn_bucket_exists (line 35) | def test_ensure_cfn_bucket_exists(self): method test_ensure_cfn_bucket_doesnt_exist_us_east (line 53) | def test_ensure_cfn_bucket_doesnt_exist_us_east(self): method test_ensure_cfn_bucket_doesnt_exist_us_west (line 77) | def test_ensure_cfn_bucket_doesnt_exist_us_west(self): method test_ensure_cfn_forbidden (line 104) | def test_ensure_cfn_forbidden(self): method test_stack_template_url (line 122) | def test_stack_template_url(self): FILE: stacker/tests/actions/test_build.py function mock_stack_parameters (line 31) | def mock_stack_parameters(parameters): class TestProvider (line 40) | class TestProvider(BaseProvider): method __init__ (line 41) | def __init__(self, outputs=None, *args, **kwargs): method set_outputs (line 44) | def set_outputs(self, outputs): method get_stack (line 47) | def get_stack(self, stack_name, **kwargs): method get_outputs (line 52) | def get_outputs(self, stack_name, *args, **kwargs): class TestBuildAction (line 57) | class TestBuildAction(unittest.TestCase): method setUp (line 58) | def setUp(self): method _get_context (line 65) | def _get_context(self, **kwargs): method test_handle_missing_params (line 82) | def test_handle_missing_params(self): method test_missing_params_no_existing_stack (line 99) | def test_missing_params_no_existing_stack(self): method test_existing_stack_params_dont_override_given_params (line 108) | def test_existing_stack_params_dont_override_given_params(self): method test_generate_plan (line 126) | def test_generate_plan(self): method test_dont_execute_plan_when_outline_specified (line 139) | def test_dont_execute_plan_when_outline_specified(self): method test_execute_plan_when_outline_not_specified (line 147) | def test_execute_plan_when_outline_not_specified(self): method test_should_update (line 155) | def test_should_update(self): method test_should_ensure_cfn_bucket (line 171) | def test_should_ensure_cfn_bucket(self): method test_should_submit (line 191) | def test_should_submit(self): class TestLaunchStack (line 206) | class TestLaunchStack(TestBuildAction): method setUp (line 207) | def setUp(self): method _advance (line 255) | def _advance(self, new_provider_status, expected_status, expected_reas... method test_launch_stack_disabled (line 261) | def test_launch_stack_disabled(self): method test_launch_stack_create (line 267) | def test_launch_stack_create(self): method test_launch_stack_create_rollback (line 280) | def test_launch_stack_create_rollback(self): method test_launch_stack_recreate (line 303) | def test_launch_stack_recreate(self): method test_launch_stack_update_skipped (line 329) | def test_launch_stack_update_skipped(self): method test_launch_stack_update_rollback (line 338) | def test_launch_stack_update_rollback(self): method test_launch_stack_update_success (line 358) | def test_launch_stack_update_success(self): class TestFunctions (line 375) | class TestFunctions(unittest.TestCase): method setUp (line 378) | def setUp(self): method test_resolve_parameters_unused_parameter (line 383) | def test_resolve_parameters_unused_parameter(self): method test_resolve_parameters_none_conversion (line 397) | def test_resolve_parameters_none_conversion(self): method test_resolve_parameters_booleans (line 410) | def test_resolve_parameters_booleans(self): FILE: stacker/tests/actions/test_destroy.py class MockStack (line 18) | class MockStack(object): method __init__ (line 21) | def __init__(self, name, tags=None, **kwargs): class TestDestroyAction (line 29) | class TestDestroyAction(unittest.TestCase): method setUp (line 31) | def setUp(self): method test_generate_plan (line 46) | def test_generate_plan(self): method test_only_execute_plan_when_forced (line 62) | def test_only_execute_plan_when_forced(self): method test_execute_plan_when_forced (line 68) | def test_execute_plan_when_forced(self): method test_destroy_stack_complete_if_state_submitted (line 74) | def test_destroy_stack_complete_if_state_submitted(self): method test_destroy_stack_step_statuses (line 89) | def test_destroy_stack_step_statuses(self): FILE: stacker/tests/actions/test_diff.py class TestDictValueFormat (line 11) | class TestDictValueFormat(unittest.TestCase): method test_status (line 12) | def test_status(self): method test_format (line 22) | def test_format(self): class TestDiffDictionary (line 41) | class TestDiffDictionary(unittest.TestCase): method test_diff_dictionaries (line 42) | def test_diff_dictionaries(self): class TestDiffParameters (line 73) | class TestDiffParameters(unittest.TestCase): method test_diff_parameters_no_changes (line 74) | def test_diff_parameters_no_changes(self): FILE: stacker/tests/blueprints/test_base.py function mock_lookup_handler (line 44) | def mock_lookup_handler(value, provider=None, context=None, fqn=False, class TestBuildParameter (line 52) | class TestBuildParameter(unittest.TestCase): method test_base_parameter (line 54) | def test_base_parameter(self): class TestBlueprintRendering (line 60) | class TestBlueprintRendering(unittest.TestCase): method test_to_json (line 62) | def test_to_json(self): class TestBaseBlueprint (line 99) | class TestBaseBlueprint(unittest.TestCase): method test_add_output (line 100) | def test_add_output(self): class TestVariables (line 118) | class TestVariables(unittest.TestCase): method test_defined_variables (line 120) | def test_defined_variables(self): method test_defined_variables_subclass (line 132) | def test_defined_variables_subclass(self): method test_get_variables_unresolved_variables (line 153) | def test_get_variables_unresolved_variables(self): method test_set_description (line 161) | def test_set_description(self): method test_validate_variable_type_cfntype (line 177) | def test_validate_variable_type_cfntype(self): method test_validate_variable_type_cfntype_none_value (line 184) | def test_validate_variable_type_cfntype_none_value(self): method test_validate_variable_type_matching_type (line 191) | def test_validate_variable_type_matching_type(self): method test_strict_validate_variable_type (line 201) | def test_strict_validate_variable_type(self): method test_validate_variable_type_invalid_value (line 208) | def test_validate_variable_type_invalid_value(self): method test_resolve_variable_no_type_on_variable_definition (line 215) | def test_resolve_variable_no_type_on_variable_definition(self): method test_resolve_variable_no_provided_with_default (line 225) | def test_resolve_variable_no_provided_with_default(self): method test_resolve_variable_no_provided_without_default (line 237) | def test_resolve_variable_no_provided_without_default(self): method test_resolve_variable_provided_not_resolved (line 247) | def test_resolve_variable_provided_not_resolved(self): method _resolve_troposphere_var (line 257) | def _resolve_troposphere_var(self, tpe, value, **kwargs): method test_resolve_variable_troposphere_type_resource_single (line 266) | def test_resolve_variable_troposphere_type_resource_single(self): method test_resolve_variable_troposphere_type_resource_optional (line 274) | def test_resolve_variable_troposphere_type_resource_optional(self): method test_resolve_variable_troposphere_type_value_blank_required (line 278) | def test_resolve_variable_troposphere_type_value_blank_required(self): method test_resolve_variable_troposphere_type_resource_many (line 282) | def test_resolve_variable_troposphere_type_resource_many(self): method test_resolve_variable_troposphere_type_resource_many_empty (line 294) | def test_resolve_variable_troposphere_type_resource_many_empty(self): method test_resolve_variable_troposphere_type_resource_fail (line 298) | def test_resolve_variable_troposphere_type_resource_fail(self): method test_resolve_variable_troposphere_type_props_single (line 309) | def test_resolve_variable_troposphere_type_props_single(self): method test_resolve_variable_troposphere_type_props_optional (line 318) | def test_resolve_variable_troposphere_type_props_optional(self): method test_resolve_variable_troposphere_type_props_many (line 323) | def test_resolve_variable_troposphere_type_props_many(self): method test_resolve_variable_troposphere_type_props_many_empty (line 335) | def test_resolve_variable_troposphere_type_props_many_empty(self): method test_resolve_variable_troposphere_type_props_fail (line 339) | def test_resolve_variable_troposphere_type_props_fail(self): method test_resolve_variable_troposphere_type_unvalidated (line 343) | def test_resolve_variable_troposphere_type_unvalidated(self): method test_resolve_variable_troposphere_type_optional_many (line 346) | def test_resolve_variable_troposphere_type_optional_many(self): method test_resolve_variable_provided_resolved (line 351) | def test_resolve_variable_provided_resolved(self): method test_resolve_variable_allowed_values (line 362) | def test_resolve_variable_allowed_values(self): method test_resolve_variable_validator_valid_value (line 376) | def test_resolve_variable_validator_valid_value(self): method test_resolve_variable_validator_invalid_value (line 392) | def test_resolve_variable_validator_invalid_value(self): method test_resolve_variables (line 411) | def test_resolve_variables(self): method test_resolve_variables_lookup_returns_non_string (line 432) | def test_resolve_variables_lookup_returns_non_string(self): method test_resolve_variables_lookup_returns_troposphere_obj (line 450) | def test_resolve_variables_lookup_returns_troposphere_obj(self): method test_resolve_variables_lookup_returns_non_string_invalid_combo (line 469) | def test_resolve_variables_lookup_returns_non_string_invalid_combo(self): method test_get_variables (line 487) | def test_get_variables(self): method test_resolve_variables_missing_variable (line 501) | def test_resolve_variables_missing_variable(self): method test_resolve_variables_incorrect_type (line 513) | def test_resolve_variables_incorrect_type(self): method test_get_variables_default_value (line 524) | def test_get_variables_default_value(self): method test_resolve_variables_convert_type (line 538) | def test_resolve_variables_convert_type(self): method test_resolve_variables_cfn_type (line 550) | def test_resolve_variables_cfn_type(self): method test_resolve_variables_cfn_number (line 562) | def test_resolve_variables_cfn_number(self): method test_resolve_variables_cfn_type_list (line 575) | def test_resolve_variables_cfn_type_list(self): method test_resolve_variables_cfn_type_list_invalid_value (line 591) | def test_resolve_variables_cfn_type_list_invalid_value(self): method test_get_parameter_definitions_cfn_type_list (line 603) | def test_get_parameter_definitions_cfn_type_list(self): method test_get_parameter_definitions_cfn_type (line 616) | def test_get_parameter_definitions_cfn_type(self): method test_get_required_parameter_definitions_cfn_type (line 628) | def test_get_required_parameter_definitions_cfn_type(self): method test_get_parameter_values (line 639) | def test_get_parameter_values(self): method test_validate_allowed_values (line 655) | def test_validate_allowed_values(self): method test_blueprint_with_parameters_fails (line 662) | def test_blueprint_with_parameters_fails(self): method test_variable_exists_but_value_is_none (line 679) | def test_variable_exists_but_value_is_none(self): class TestCFNParameter (line 691) | class TestCFNParameter(unittest.TestCase): method test_cfnparameter_convert_boolean (line 692) | def test_cfnparameter_convert_boolean(self): method test_parse_user_data (line 703) | def test_parse_user_data(self): method test_parse_user_data_missing_variable (line 715) | def test_parse_user_data_missing_variable(self): method test_parse_user_data_invaled_placeholder (line 725) | def test_parse_user_data_invaled_placeholder(self): method test_read_user_data (line 734) | def test_read_user_data(self, parse_mock, file_mock): FILE: stacker/tests/blueprints/test_raw.py function test_get_template_path_local_file (line 19) | def test_get_template_path_local_file(tmpdir): function test_get_template_path_invalid_file (line 30) | def test_get_template_path_invalid_file(tmpdir): function test_get_template_path_file_in_syspath (line 37) | def test_get_template_path_file_in_syspath(tmpdir, monkeypatch): function test_get_template_params (line 52) | def test_get_template_params(): class TestBlueprintRendering (line 81) | class TestBlueprintRendering(unittest.TestCase): method test_to_json (line 84) | def test_to_json(self): method test_j2_to_json (line 124) | def test_j2_to_json(self): class TestVariables (line 172) | class TestVariables(unittest.TestCase): method test_get_parameter_definitions_json (line 175) | def test_get_parameter_definitions_json(self): # noqa pylint: disable... method test_get_parameter_definitions_yaml (line 188) | def test_get_parameter_definitions_yaml(self): # noqa pylint: disable... method test_get_required_parameter_definitions_json (line 202) | def test_get_required_parameter_definitions_json(self): # noqa pylint... method test_get_required_parameter_definitions_yaml (line 213) | def test_get_required_parameter_definitions_yaml(self): # noqa pylint... FILE: stacker/tests/blueprints/test_testutil.py class Repositories (line 11) | class Repositories(Blueprint): method create_template (line 20) | def create_template(self): class TestRepositories (line 33) | class TestRepositories(BlueprintTestCase): method test_create_template_passes (line 34) | def test_create_template_passes(self): method test_create_template_fails (line 43) | def test_create_template_fails(self): FILE: stacker/tests/conftest.py function aws_credentials (line 12) | def aws_credentials(): function stacker_fixture_dir (line 40) | def stacker_fixture_dir(): FILE: stacker/tests/factories.py class MockThreadingEvent (line 8) | class MockThreadingEvent(object): method wait (line 9) | def wait(self, timeout=None): class MockProviderBuilder (line 13) | class MockProviderBuilder(object): method __init__ (line 14) | def __init__(self, provider, region=None): method build (line 18) | def build(self, region=None, profile=None): function mock_provider (line 22) | def mock_provider(**kwargs): function mock_context (line 26) | def mock_context(namespace="default", extra_config_args=None, **kwargs): function generate_definition (line 41) | def generate_definition(base_name, stack_id, **overrides): function mock_lookup (line 52) | def mock_lookup(lookup_input, lookup_type, raw=None): class SessionStub (line 58) | class SessionStub(object): method __init__ (line 77) | def __init__(self, client_stub): method client (line 80) | def client(self, region): FILE: stacker/tests/fixtures/mock_blueprints.py class FunctionalTests (line 26) | class FunctionalTests(Blueprint): method create_template (line 43) | def create_template(self): class Dummy (line 186) | class Dummy(Blueprint): method create_template (line 193) | def create_template(self): class Dummy2 (line 199) | class Dummy2(Blueprint): method create_template (line 210) | def create_template(self): class LongRunningDummy (line 216) | class LongRunningDummy(Blueprint): method create_template (line 242) | def create_template(self): class Broken (line 272) | class Broken(Blueprint): method create_template (line 283) | def create_template(self): class VPC (line 295) | class VPC(Blueprint): method create_template (line 340) | def create_template(self): class DiffTester (line 344) | class DiffTester(Blueprint): method create_template (line 356) | def create_template(self): class Bastion (line 361) | class Bastion(Blueprint): method create_template (line 395) | def create_template(self): class PreOneOhBastion (line 399) | class PreOneOhBastion(Blueprint): method create_template (line 434) | def create_template(self): FILE: stacker/tests/fixtures/mock_hooks.py function mock_hook (line 3) | def mock_hook(provider, context, **kwargs): FILE: stacker/tests/fixtures/mock_lookups.py function handler (line 4) | def handler(value, **kwargs): FILE: stacker/tests/hooks/test_aws_lambda.py function all_files (line 27) | def all_files(tmpdir): function f1_files (line 49) | def f1_files(tmpdir, all_files): function f2_files (line 54) | def f2_files(tmpdir, all_files): function prebuilt_zip (line 59) | def prebuilt_zip(stacker_fixture_dir): function s3 (line 67) | def s3(): function assert_s3_zip_file_list (line 72) | def assert_s3_zip_file_list(s3, bucket, key, files, root=None): function assert_s3_zip_contents (line 91) | def assert_s3_zip_contents(s3, bucket, key, contents): function assert_s3_bucket (line 98) | def assert_s3_bucket(s3, bucket, present=True): function context (line 113) | def context(): function provider (line 118) | def provider(): function run_hook (line 123) | def run_hook(context, provider): function test_bucket_default (line 131) | def test_bucket_default(s3, context, run_hook): function test_bucket_custom (line 138) | def test_bucket_custom(s3, context, run_hook): function test_prefix (line 146) | def test_prefix(tmpdir, s3, all_files, f1_files, run_hook): function test_prefix_missing (line 164) | def test_prefix_missing(tmpdir, s3, all_files, f1_files, run_hook): function test_path_missing (line 183) | def test_path_missing(run_hook): function test_path_non_zip_non_dir (line 194) | def test_path_non_zip_non_dir(tmpdir, all_files, run_hook): function test_path_relative (line 207) | def test_path_relative(tmpdir, s3, run_hook): function test_path_home_relative (line 228) | def test_path_home_relative(tmpdir, s3, run_hook): function test_multiple_functions (line 254) | def test_multiple_functions(tmpdir, s3, all_files, f1_files, f2_files, function test_patterns_invalid (line 282) | def test_patterns_invalid(tmpdir, run_hook): function test_patterns_include (line 298) | def test_patterns_include(tmpdir, s3, all_files, run_hook): function test_patterns_exclude (line 322) | def test_patterns_exclude(tmpdir, s3, all_files, run_hook): function test_patterns_include_exclude (line 345) | def test_patterns_include_exclude(tmpdir, s3, all_files, run_hook): function test_patterns_exclude_all (line 365) | def test_patterns_exclude_all(tmpdir, all_files, run_hook): function test_idempotence (line 381) | def test_idempotence(tmpdir, s3, all_files, run_hook): function test_calculate_hash (line 408) | def test_calculate_hash(tmpdir, all_files, f1_files, f2_files): function test_calculate_hash_diff_filename_same_contents (line 422) | def test_calculate_hash_diff_filename_same_contents(tmpdir, all_files): function test_calculate_hash_different_ordering (line 435) | def test_calculate_hash_different_ordering(tmpdir, all_files): function test_select_bucket_region (line 474) | def test_select_bucket_region(case): function test_follow_symlink_nonbool (line 479) | def test_follow_symlink_nonbool(run_hook): function linked_dir (line 492) | def linked_dir(tmpdir): function test_follow_symlink_true (line 498) | def test_follow_symlink_true(tmpdir, s3, all_files, f1_files, run_hook, function test_follow_symlink_false (line 519) | def test_follow_symlink_false(tmpdir, s3, all_files, run_hook, linked_dir): FILE: stacker/tests/hooks/test_command.py class MockProcess (line 15) | class MockProcess(object): method __init__ (line 16) | def __init__(self, returncode=0, stdout='', stderr=''): method communicate (line 22) | def communicate(self, stdin): method wait (line 26) | def wait(self): method kill (line 29) | def kill(self): class TestCommandHook (line 33) | class TestCommandHook(unittest.TestCase): method setUp (line 34) | def setUp(self): method tearDown (line 49) | def tearDown(self): method run_hook (line 53) | def run_hook(self, **kwargs): method test_command_ok (line 62) | def test_command_ok(self): method test_command_fail (line 74) | def test_command_fail(self): method test_command_ignore_status (line 85) | def test_command_ignore_status(self): method test_command_quiet (line 97) | def test_command_quiet(self): method test_command_interactive (line 110) | def test_command_interactive(self): method test_command_input (line 122) | def test_command_input(self): method test_command_capture (line 135) | def test_command_capture(self): method test_command_env (line 147) | def test_command_env(self): FILE: stacker/tests/hooks/test_ecs.py class TestECSHooks (line 16) | class TestECSHooks(unittest.TestCase): method setUp (line 18) | def setUp(self): method test_create_single_cluster (line 22) | def test_create_single_cluster(self): method test_create_multiple_clusters (line 50) | def test_create_multiple_clusters(self): method test_fail_create_cluster (line 79) | def test_fail_create_cluster(self): FILE: stacker/tests/hooks/test_iam.py class TestIAMHooks (line 28) | class TestIAMHooks(unittest.TestCase): method setUp (line 30) | def setUp(self): method test_get_cert_arn_from_response (line 34) | def test_get_cert_arn_from_response(self): method test_create_service_role (line 49) | def test_create_service_role(self): method test_create_service_role_already_exists (line 74) | def test_create_service_role_already_exists(self): FILE: stacker/tests/hooks/test_keypair.py function ssh_key (line 22) | def ssh_key(stacker_fixture_dir): function provider (line 31) | def provider(): function context (line 36) | def context(): function ec2 (line 41) | def ec2(ssh_key): function ssm (line 54) | def ssm(): function mock_input (line 60) | def mock_input(lines=(), isatty=True): function assert_key_present (line 67) | def assert_key_present(hook_result, key_name, fingerprint): function test_param_validation (line 80) | def test_param_validation(provider, context): function test_keypair_exists (line 87) | def test_keypair_exists(provider, context): function test_import_file (line 99) | def test_import_file(tmpdir, provider, context, ssh_key): function test_import_bad_key_data (line 109) | def test_import_bad_key_data(tmpdir, provider, context): function test_create_in_ssm (line 119) | def test_create_in_ssm(provider, context, ssh_key, ssm_key_id): function test_interactive_non_terminal_input (line 142) | def test_interactive_non_terminal_input(capsys, provider, context): function test_interactive_retry_cancel (line 154) | def test_interactive_retry_cancel(provider, context): function test_interactive_import (line 164) | def test_interactive_import(tmpdir, provider, context, ssh_key): function test_interactive_create (line 177) | def test_interactive_create(tmpdir, provider, context, ssh_key): function test_interactive_create_bad_dir (line 193) | def test_interactive_create_bad_dir(tmpdir, provider, context): function test_interactive_create_existing_file (line 204) | def test_interactive_create_existing_file(tmpdir, provider, context): FILE: stacker/tests/lookups/handlers/test_ami.py class TestAMILookup (line 11) | class TestAMILookup(unittest.TestCase): method setUp (line 14) | def setUp(self): method test_basic_lookup_single_image (line 20) | def test_basic_lookup_single_image(self, mock_client): method test_basic_lookup_with_region (line 48) | def test_basic_lookup_with_region(self, mock_client): method test_basic_lookup_multiple_images (line 76) | def test_basic_lookup_multiple_images(self, mock_client): method test_basic_lookup_multiple_images_name_match (line 113) | def test_basic_lookup_multiple_images_name_match(self, mock_client): method test_basic_lookup_no_matching_images (line 150) | def test_basic_lookup_no_matching_images(self, mock_client): method test_basic_lookup_no_matching_images_from_name (line 167) | def test_basic_lookup_no_matching_images_from_name(self, mock_client): FILE: stacker/tests/lookups/handlers/test_default.py class TestDefaultLookup (line 8) | class TestDefaultLookup(unittest.TestCase): method setUp (line 10) | def setUp(self): method test_env_var_present (line 18) | def test_env_var_present(self): method test_env_var_missing (line 25) | def test_env_var_missing(self): method test_invalid_value (line 32) | def test_invalid_value(self): FILE: stacker/tests/lookups/handlers/test_dynamodb.py class TestDynamoDBHandler (line 9) | class TestDynamoDBHandler(unittest.TestCase): method setUp (line 12) | def setUp(self): method test_dynamodb_handler (line 23) | def test_dynamodb_handler(self, mock_client): method test_dynamodb_number_handler (line 42) | def test_dynamodb_number_handler(self, mock_client): method test_dynamodb_list_handler (line 62) | def test_dynamodb_list_handler(self, mock_client): method test_dynamodb_empty_table_handler (line 82) | def test_dynamodb_empty_table_handler(self, mock_client): method test_dynamodb_missing_table_handler (line 104) | def test_dynamodb_missing_table_handler(self, mock_client): method test_dynamodb_invalid_table_handler (line 125) | def test_dynamodb_invalid_table_handler(self, mock_client): method test_dynamodb_invalid_partition_key_handler (line 148) | def test_dynamodb_invalid_partition_key_handler(self, mock_client): method test_dynamodb_invalid_partition_val_handler (line 172) | def test_dynamodb_invalid_partition_val_handler(self, mock_client): FILE: stacker/tests/lookups/handlers/test_envvar.py class TestEnvVarHandler (line 6) | class TestEnvVarHandler(unittest.TestCase): method setUp (line 8) | def setUp(self): method test_valid_envvar (line 14) | def test_valid_envvar(self): method test_invalid_envvar (line 18) | def test_invalid_envvar(self): FILE: stacker/tests/lookups/handlers/test_file.py function to_template_dict (line 15) | def to_template_dict(obj): class TestFileTranslator (line 29) | class TestFileTranslator(unittest.TestCase): method assertTemplateEqual (line 31) | def assertTemplateEqual(left, right): method test_parameterized_codec_b64 (line 40) | def test_parameterized_codec_b64(self): method test_parameterized_codec_plain (line 49) | def test_parameterized_codec_plain(self): method test_parameterized_codec_plain_no_interpolation (line 56) | def test_parameterized_codec_plain_no_interpolation(self): method test_yaml_codec_raw (line 63) | def test_yaml_codec_raw(self): method test_yaml_codec_parameterized (line 75) | def test_yaml_codec_parameterized(self): method test_json_codec_raw (line 88) | def test_json_codec_raw(self): method test_json_codec_parameterized (line 97) | def test_json_codec_parameterized(self): method test_file_loaded (line 112) | def test_file_loaded(self, content_mock): method test_handler_plain (line 118) | def test_handler_plain(self, _): method test_handler_b64 (line 123) | def test_handler_b64(self, content_mock): method test_handler_parameterized (line 133) | def test_handler_parameterized(self, content_mock, codec_mock): method test_handler_parameterized_b64 (line 144) | def test_handler_parameterized_b64(self, content_mock, codec_mock): method test_handler_yaml (line 155) | def test_handler_yaml(self, content_mock, codec_mock): method test_handler_yaml_parameterized (line 167) | def test_handler_yaml_parameterized(self, content_mock, codec_mock): method test_handler_json (line 179) | def test_handler_json(self, content_mock, codec_mock): method test_handler_json_parameterized (line 191) | def test_handler_json_parameterized(self, content_mock, codec_mock): method test_unknown_codec (line 202) | def test_unknown_codec(self, _): FILE: stacker/tests/lookups/handlers/test_hook_data.py class TestHookDataLookup (line 8) | class TestHookDataLookup(unittest.TestCase): method setUp (line 10) | def setUp(self): method test_valid_hook_data (line 14) | def test_valid_hook_data(self): method test_invalid_hook_data (line 18) | def test_invalid_hook_data(self): method test_bad_value_hook_data (line 22) | def test_bad_value_hook_data(self): FILE: stacker/tests/lookups/handlers/test_output.py class TestOutputHandler (line 9) | class TestOutputHandler(unittest.TestCase): method setUp (line 11) | def setUp(self): method test_output_handler (line 14) | def test_output_handler(self): FILE: stacker/tests/lookups/handlers/test_rxref.py class TestRxrefHandler (line 9) | class TestRxrefHandler(unittest.TestCase): method setUp (line 11) | def setUp(self): method test_rxref_handler (line 17) | def test_rxref_handler(self): FILE: stacker/tests/lookups/handlers/test_split.py class TestSplitLookup (line 6) | class TestSplitLookup(unittest.TestCase): method test_single_character_split (line 7) | def test_single_character_split(self): method test_multi_character_split (line 12) | def test_multi_character_split(self): method test_invalid_value_split (line 17) | def test_invalid_value_split(self): FILE: stacker/tests/lookups/handlers/test_ssmstore.py class TestSSMStoreHandler (line 9) | class TestSSMStoreHandler(unittest.TestCase): method setUp (line 12) | def setUp(self): method test_ssmstore_handler (line 40) | def test_ssmstore_handler(self, mock_client): method test_ssmstore_invalid_value_handler (line 51) | def test_ssmstore_invalid_value_handler(self, mock_client): method test_ssmstore_handler_with_region (line 63) | def test_ssmstore_handler_with_region(self, mock_client): FILE: stacker/tests/lookups/handlers/test_xref.py class TestXrefHandler (line 7) | class TestXrefHandler(unittest.TestCase): method setUp (line 9) | def setUp(self): method test_xref_handler (line 13) | def test_xref_handler(self): FILE: stacker/tests/lookups/test_registry.py class TestRegistry (line 20) | class TestRegistry(unittest.TestCase): method setUp (line 21) | def setUp(self): method test_autoloaded_lookup_handlers (line 25) | def test_autoloaded_lookup_handlers(self): method test_resolve_lookups_string_unknown_lookup (line 39) | def test_resolve_lookups_string_unknown_lookup(self): method test_resolve_lookups_list_unknown_lookup (line 43) | def test_resolve_lookups_list_unknown_lookup(self): method resolve_lookups_with_output_handler_raise_valueerror (line 51) | def resolve_lookups_with_output_handler_raise_valueerror(self, variable): method test_resolve_lookups_string_failed_variable_lookup (line 67) | def test_resolve_lookups_string_failed_variable_lookup(self): method test_resolve_lookups_list_failed_variable_lookup (line 71) | def test_resolve_lookups_list_failed_variable_lookup(self): FILE: stacker/tests/providers/aws/test_default.py function random_string (line 39) | def random_string(length=12): function generate_describe_stacks_stack (line 53) | def generate_describe_stacks_stack(stack_name, function generate_get_template (line 67) | def generate_get_template(file_name='cfn_template.json', function generate_stack_object (line 77) | def generate_stack_object(stack_name, outputs=None): function generate_resource_change (line 94) | def generate_resource_change(replacement=True): function generate_change_set_response (line 110) | def generate_change_set_response(status, execution_status="AVAILABLE", function generate_change (line 147) | def generate_change(action="Modify", resource_type="EC2::Instance", class TestMethods (line 175) | class TestMethods(unittest.TestCase): method setUp (line 176) | def setUp(self): method test_requires_replacement (line 180) | def test_requires_replacement(self): method test_summarize_params_diff (line 191) | def test_summarize_params_diff(self): method test_ask_for_approval (line 224) | def test_ask_for_approval(self): method test_ask_for_approval_with_params_diff (line 243) | def test_ask_for_approval_with_params_diff(self): method test_output_full_changeset (line 268) | def test_output_full_changeset(self, mock_safe_dump, patched_format): method test_wait_till_change_set_complete_success (line 301) | def test_wait_till_change_set_complete_success(self): method test_wait_till_change_set_complete_failed (line 316) | def test_wait_till_change_set_complete_failed(self): method test_create_change_set_stack_did_not_change (line 328) | def test_create_change_set_stack_did_not_change(self): method test_create_change_set_unhandled_failed_status (line 355) | def test_create_change_set_unhandled_failed_status(self): method test_create_change_set_bad_execution_status (line 376) | def test_create_change_set_bad_execution_status(self): method test_generate_cloudformation_args (line 397) | def test_generate_cloudformation_args(self): method test_generate_cloudformation_args_with_notification_arns (line 445) | def test_generate_cloudformation_args_with_notification_arns(self): class TestProviderDefaultMode (line 471) | class TestProviderDefaultMode(unittest.TestCase): method setUp (line 472) | def setUp(self): method test_get_stack_stack_does_not_exist (line 479) | def test_get_stack_stack_does_not_exist(self): method test_get_stack_stack_exists (line 492) | def test_get_stack_stack_exists(self): method test_select_update_method (line 508) | def test_select_update_method(self): method test_prepare_stack_for_update_completed (line 526) | def test_prepare_stack_for_update_completed(self): method test_prepare_stack_for_update_in_progress (line 535) | def test_prepare_stack_for_update_in_progress(self): method test_prepare_stack_for_update_non_recreatable (line 546) | def test_prepare_stack_for_update_non_recreatable(self): method test_prepare_stack_for_update_disallowed (line 557) | def test_prepare_stack_for_update_disallowed(self): method test_prepare_stack_for_update_bad_tags (line 570) | def test_prepare_stack_for_update_bad_tags(self): method test_prepare_stack_for_update_recreate (line 585) | def test_prepare_stack_for_update_recreate(self): method test_noninteractive_changeset_update_no_stack_policy (line 602) | def test_noninteractive_changeset_update_no_stack_policy(self): method test_noninteractive_changeset_update_with_stack_policy (line 630) | def test_noninteractive_changeset_update_with_stack_policy(self): method test_get_stack_changes_update (line 661) | def test_get_stack_changes_update(self, mock_output_full_cs): method test_get_stack_changes_create (line 713) | def test_get_stack_changes_create(self, mock_output_full_cs): method test_tail_stack_retry_on_missing_stack (line 764) | def test_tail_stack_retry_on_missing_stack(self): method test_tail_stack_retry_on_missing_stack_eventual_success (line 790) | def test_tail_stack_retry_on_missing_stack_eventual_success(self): class TestProviderInteractiveMode (line 850) | class TestProviderInteractiveMode(unittest.TestCase): method setUp (line 851) | def setUp(self): method test_successful_init (line 858) | def test_successful_init(self): method test_update_stack_execute_success_no_stack_policy (line 865) | def test_update_stack_execute_success_no_stack_policy(self, method test_update_stack_execute_success_with_stack_policy (line 902) | def test_update_stack_execute_success_with_stack_policy(self, method test_select_update_method (line 941) | def test_select_update_method(self): method test_get_stack_changes_interactive (line 961) | def test_get_stack_changes_interactive(self, mock_output_summary, FILE: stacker/tests/test_config.py class TestConfig (line 28) | class TestConfig(unittest.TestCase): method test_render_missing_env (line 29) | def test_render_missing_env(self): method test_render_no_variable_config (line 35) | def test_render_no_variable_config(self): method test_render_valid_env_substitution (line 39) | def test_render_valid_env_substitution(self): method test_render_blank_env_values (line 43) | def test_render_blank_env_values(self): method test_render_yaml (line 52) | def test_render_yaml(self): method test_render_yaml_errors (line 112) | def test_render_yaml_errors(self): method test_config_validate_missing_stack_source (line 130) | def test_config_validate_missing_stack_source(self): method test_config_validate_missing_stack_source_when_locked (line 147) | def test_config_validate_missing_stack_source_when_locked(self): method test_config_validate_stack_class_and_template_paths (line 156) | def test_config_validate_stack_class_and_template_paths(self): method test_config_validate_missing_name (line 175) | def test_config_validate_missing_name(self): method test_config_validate_duplicate_stack_names (line 189) | def test_config_validate_duplicate_stack_names(self): method test_dump_unicode (line 207) | def test_dump_unicode(self): method test_parse_tags (line 223) | def test_parse_tags(self): method test_parse_with_arbitrary_anchors (line 236) | def test_parse_with_arbitrary_anchors(self): method test_parse_with_deprecated_parameters (line 251) | def test_parse_with_deprecated_parameters(self): method test_config_build (line 271) | def test_config_build(self): method test_parse (line 279) | def test_parse(self): method test_dump_complex (line 499) | def test_dump_complex(self): method test_load_register_custom_lookups (line 527) | def test_load_register_custom_lookups(self): method test_load_adds_sys_path (line 534) | def test_load_adds_sys_path(self): method test_process_empty_remote_sources (line 539) | def test_process_empty_remote_sources(self): method test_lookup_with_sys_path (line 548) | def test_lookup_with_sys_path(self): method test_render_parse_load_namespace_fallback (line 556) | def test_render_parse_load_namespace_fallback(self): method test_allow_most_keys_to_be_duplicates_for_overrides (line 567) | def test_allow_most_keys_to_be_duplicates_for_overrides(self): method test_raise_constructor_error_on_keyword_duplicate_key (line 597) | def test_raise_constructor_error_on_keyword_duplicate_key(self): method test_raise_construct_error_on_duplicate_stack_name_dict (line 610) | def test_raise_construct_error_on_duplicate_stack_name_dict(self): method test_parse_invalid_inner_keys (line 624) | def test_parse_invalid_inner_keys(self): FILE: stacker/tests/test_context.py class TestContext (line 8) | class TestContext(unittest.TestCase): method setUp (line 10) | def setUp(self): method test_context_optional_keys_set (line 16) | def test_context_optional_keys_set(self): method test_context_get_stacks (line 24) | def test_context_get_stacks(self): method test_context_get_stacks_dict_use_fqn (line 28) | def test_context_get_stacks_dict_use_fqn(self): method test_context_get_fqn (line 35) | def test_context_get_fqn(self): method test_context_get_fqn_replace_dot (line 40) | def test_context_get_fqn_replace_dot(self): method test_context_get_fqn_empty_namespace (line 45) | def test_context_get_fqn_empty_namespace(self): method test_context_namespace (line 51) | def test_context_namespace(self): method test_context_get_fqn_stack_name (line 55) | def test_context_get_fqn_stack_name(self): method test_context_default_bucket_name (line 60) | def test_context_default_bucket_name(self): method test_context_bucket_name_is_overriden_but_is_none (line 64) | def test_context_bucket_name_is_overriden_but_is_none(self): method test_context_bucket_name_is_overriden (line 73) | def test_context_bucket_name_is_overriden(self): method test_context_default_bucket_no_namespace (line 78) | def test_context_default_bucket_no_namespace(self): method test_context_namespace_delimiter_is_overriden_and_not_none (line 89) | def test_context_namespace_delimiter_is_overriden_and_not_none(self): method test_context_namespace_delimiter_is_overriden_and_is_empty (line 95) | def test_context_namespace_delimiter_is_overriden_and_is_empty(self): method test_context_tags_with_empty_map (line 101) | def test_context_tags_with_empty_map(self): method test_context_no_tags_specified (line 106) | def test_context_no_tags_specified(self): method test_hook_with_sys_path (line 111) | def test_hook_with_sys_path(self): class TestFunctions (line 129) | class TestFunctions(unittest.TestCase): method test_get_fqn_redundant_base (line 131) | def test_get_fqn_redundant_base(self): method test_get_fqn_only_base (line 138) | def test_get_fqn_only_base(self): method test_get_fqn_full (line 144) | def test_get_fqn_full(self): FILE: stacker/tests/test_dag.py function empty_dag (line 15) | def empty_dag(): function basic_dag (line 20) | def basic_dag(): function test_add_node (line 29) | def test_add_node(empty_dag): function test_transpose (line 36) | def test_transpose(basic_dag): function test_add_edge (line 46) | def test_add_edge(empty_dag): function test_from_dict (line 55) | def test_from_dict(empty_dag): function test_reset_graph (line 68) | def test_reset_graph(empty_dag): function test_walk (line 77) | def test_walk(empty_dag): function test_ind_nodes (line 96) | def test_ind_nodes(basic_dag): function test_topological_sort (line 101) | def test_topological_sort(empty_dag): function test_successful_validation (line 109) | def test_successful_validation(basic_dag): function test_failed_validation (line 114) | def test_failed_validation(empty_dag): function test_downstream (line 122) | def test_downstream(basic_dag): function test_all_downstreams (line 127) | def test_all_downstreams(basic_dag): function test_all_downstreams_pass_graph (line 135) | def test_all_downstreams_pass_graph(empty_dag): function test_predecessors (line 146) | def test_predecessors(basic_dag): function test_filter (line 155) | def test_filter(basic_dag): function test_all_leaves (line 164) | def test_all_leaves(basic_dag): function test_size (line 170) | def test_size(basic_dag): function test_transitive_reduction_no_reduction (line 178) | def test_transitive_reduction_no_reduction(empty_dag): function test_transitive_reduction (line 191) | def test_transitive_reduction(empty_dag): function test_transitive_deep_reduction (line 208) | def test_transitive_deep_reduction(empty_dag): function test_threaded_walker (line 225) | def test_threaded_walker(empty_dag): FILE: stacker/tests/test_environment.py class TestEnvironment (line 30) | class TestEnvironment(unittest.TestCase): method test_simple_key_value_parsing (line 32) | def test_simple_key_value_parsing(self): method test_simple_key_value_parsing_exception (line 42) | def test_simple_key_value_parsing_exception(self): method test_blank_value (line 46) | def test_blank_value(self): FILE: stacker/tests/test_lookups.py class TestLookupExtraction (line 6) | class TestLookupExtraction(unittest.TestCase): method test_no_lookups (line 8) | def test_no_lookups(self): method test_single_lookup_string (line 12) | def test_single_lookup_string(self): method test_multiple_lookups_string (line 16) | def test_multiple_lookups_string(self): method test_lookups_list (line 24) | def test_lookups_list(self): method test_lookups_dict (line 31) | def test_lookups_dict(self): method test_lookups_mixed (line 38) | def test_lookups_mixed(self): method test_nested_lookups_string (line 49) | def test_nested_lookups_string(self): method test_comma_delimited (line 55) | def test_comma_delimited(self): method test_kms_lookup (line 59) | def test_kms_lookup(self): method test_kms_lookup_with_equals (line 66) | def test_kms_lookup_with_equals(self): method test_kms_lookup_with_region (line 73) | def test_kms_lookup_with_region(self): method test_kms_file_lookup (line 80) | def test_kms_file_lookup(self): method test_valid_extract_lookups_from_string (line 87) | def test_valid_extract_lookups_from_string(self): FILE: stacker/tests/test_parse_user_data.py class TestCfTokenize (line 8) | class TestCfTokenize(unittest.TestCase): method test_tokenize (line 9) | def test_tokenize(self): FILE: stacker/tests/test_plan.py class TestStep (line 38) | class TestStep(unittest.TestCase): method setUp (line 40) | def setUp(self): method test_status (line 46) | def test_status(self): class TestPlan (line 66) | class TestPlan(unittest.TestCase): method setUp (line 68) | def setUp(self): method tearDown (line 74) | def tearDown(self): method test_plan (line 77) | def test_plan(self): method test_execute_plan (line 93) | def test_execute_plan(self): method test_execute_plan_locked (line 114) | def test_execute_plan_locked(self): method test_execute_plan_filtered (line 138) | def test_execute_plan_filtered(self): method test_execute_plan_exception (line 166) | def test_execute_plan_exception(self): method test_execute_plan_skipped (line 194) | def test_execute_plan_skipped(self): method test_execute_plan_failed (line 219) | def test_execute_plan_failed(self): method test_execute_plan_cancelled (line 252) | def test_execute_plan_cancelled(self): method test_build_graph_missing_dependency (line 277) | def test_build_graph_missing_dependency(self): method test_build_graph_cyclic_dependencies (line 293) | def test_build_graph_cyclic_dependencies(self): method test_dump (line 314) | def test_dump(self, *args): FILE: stacker/tests/test_stack.py class TestStack (line 11) | class TestStack(unittest.TestCase): method setUp (line 13) | def setUp(self): method test_stack_requires (line 23) | def test_stack_requires(self): method test_stack_requires_circular_ref (line 49) | def test_stack_requires_circular_ref(self): method test_stack_cfn_parameters (line 61) | def test_stack_cfn_parameters(self): method test_stack_tags_default (line 78) | def test_stack_tags_default(self): method test_stack_tags_override (line 87) | def test_stack_tags_override(self): method test_stack_tags_extra (line 97) | def test_stack_tags_extra(self): FILE: stacker/tests/test_stacker.py class TestStacker (line 7) | class TestStacker(unittest.TestCase): method test_stacker_build_parse_args (line 9) | def test_stacker_build_parse_args(self): method test_stacker_build_parse_args_region_from_env (line 23) | def test_stacker_build_parse_args_region_from_env(self): method test_stacker_build_context_passed_to_blueprint (line 33) | def test_stacker_build_context_passed_to_blueprint(self): method test_stacker_blueprint_property_access_does_not_reset_blueprint (line 53) | def test_stacker_blueprint_property_access_does_not_reset_blueprint(se... method test_stacker_build_context_stack_names_specified (line 67) | def test_stacker_build_context_stack_names_specified(self): method test_stacker_build_fail_when_parameters_in_stack_def (line 81) | def test_stacker_build_fail_when_parameters_in_stack_def(self): method test_stacker_build_custom_info_log_format (line 92) | def test_stacker_build_custom_info_log_format(self): FILE: stacker/tests/test_util.py function mock_create_cache_directories (line 42) | def mock_create_cache_directories(self, **kwargs): class TestUtil (line 47) | class TestUtil(unittest.TestCase): method test_cf_safe_name (line 49) | def test_cf_safe_name(self): method test_load_object_from_string (line 58) | def test_load_object_from_string(self): method test_camel_to_snake (line 67) | def test_camel_to_snake(self): method test_merge_map (line 77) | def test_merge_map(self): method test_yaml_to_ordered_dict (line 109) | def test_yaml_to_ordered_dict(self): method test_get_client_region (line 121) | def test_get_client_region(self): method test_get_s3_endpoint (line 127) | def test_get_s3_endpoint(self): method test_s3_bucket_location_constraint (line 133) | def test_s3_bucket_location_constraint(self): method test_parse_cloudformation_template (line 144) | def test_parse_cloudformation_template(self): method test_extractors (line 183) | def test_extractors(self): method test_SourceProcessor_helpers (line 192) | def test_SourceProcessor_helpers(self): function mock_hook (line 276) | def mock_hook(*args, **kwargs): function fail_hook (line 281) | def fail_hook(*args, **kwargs): function exception_hook (line 285) | def exception_hook(*args, **kwargs): function context_hook (line 289) | def context_hook(*args, **kwargs): function result_hook (line 293) | def result_hook(*args, **kwargs): class TestHooks (line 297) | class TestHooks(unittest.TestCase): method setUp (line 299) | def setUp(self): method test_empty_hook_stage (line 303) | def test_empty_hook_stage(self): method test_missing_required_hook (line 308) | def test_missing_required_hook(self): method test_missing_required_hook_method (line 313) | def test_missing_required_hook_method(self): method test_missing_non_required_hook_method (line 318) | def test_missing_non_required_hook_method(self): method test_default_required_hook (line 323) | def test_default_required_hook(self): method test_valid_hook (line 328) | def test_valid_hook(self): method test_valid_enabled_hook (line 338) | def test_valid_enabled_hook(self): method test_valid_enabled_false_hook (line 348) | def test_valid_enabled_false_hook(self): method test_context_provided_to_hook (line 355) | def test_context_provided_to_hook(self): method test_hook_failure (line 361) | def test_hook_failure(self): method test_return_data_hook (line 377) | def test_return_data_hook(self): method test_return_data_hook_duplicate_key (line 399) | def test_return_data_hook_duplicate_key(self): class TestException1 (line 415) | class TestException1(Exception): class TestException2 (line 419) | class TestException2(Exception): class TestExceptionRetries (line 423) | class TestExceptionRetries(unittest.TestCase): method setUp (line 424) | def setUp(self): method _works_immediately (line 427) | def _works_immediately(self, a, b, x=None, y=None): method _works_second_attempt (line 431) | def _works_second_attempt(self, a, b, x=None, y=None): method _second_raises_exception2 (line 437) | def _second_raises_exception2(self, a, b, x=None, y=None): method _throws_exception2 (line 443) | def _throws_exception2(self, a, b, x=None, y=None): FILE: stacker/tests/test_variables.py class TestVariables (line 16) | class TestVariables(unittest.TestCase): method setUp (line 18) | def setUp(self): method test_variable_replace_no_lookups (line 22) | def test_variable_replace_no_lookups(self): method test_variable_replace_simple_lookup (line 26) | def test_variable_replace_simple_lookup(self): method test_variable_resolve_simple_lookup (line 31) | def test_variable_resolve_simple_lookup(self): method test_variable_resolve_default_lookup_empty (line 47) | def test_variable_resolve_default_lookup_empty(self): method test_variable_replace_multiple_lookups_string (line 53) | def test_variable_replace_multiple_lookups_string(self): method test_variable_resolve_multiple_lookups_string (line 65) | def test_variable_resolve_multiple_lookups_string(self): method test_variable_replace_no_lookups_list (line 85) | def test_variable_replace_no_lookups_list(self): method test_variable_replace_lookups_list (line 89) | def test_variable_replace_lookups_list(self): method test_variable_replace_lookups_dict (line 100) | def test_variable_replace_lookups_dict(self): method test_variable_replace_lookups_mixed (line 111) | def test_variable_replace_lookups_mixed(self): method test_variable_resolve_nested_lookup (line 140) | def test_variable_resolve_nested_lookup(self): method test_troposphere_type_no_from_dict (line 162) | def test_troposphere_type_no_from_dict(self): method test_troposphere_type_create (line 169) | def test_troposphere_type_create(self): method test_troposphere_type_create_multiple (line 176) | def test_troposphere_type_create_multiple(self): FILE: stacker/tokenize_userdata.py function cf_tokenize (line 19) | def cf_tokenize(s): FILE: stacker/ui.py function get_raw_input (line 9) | def get_raw_input(message): class UI (line 14) | class UI(object): method __init__ (line 21) | def __init__(self): method lock (line 24) | def lock(self, *args, **kwargs): method unlock (line 29) | def unlock(self, *args, **kwargs): method info (line 32) | def info(self, *args, **kwargs): method ask (line 41) | def ask(self, message): method getpass (line 52) | def getpass(self, *args): FILE: stacker/util.py function camel_to_snake (line 29) | def camel_to_snake(name): function convert_class_name (line 42) | def convert_class_name(kls): function parse_zone_id (line 54) | def parse_zone_id(full_zone_id): function get_hosted_zone_by_name (line 59) | def get_hosted_zone_by_name(client, zone_name): function get_or_create_hosted_zone (line 79) | def get_or_create_hosted_zone(client, zone_name): class SOARecordText (line 104) | class SOARecordText(object): method __init__ (line 106) | def __init__(self, record_text): method __str__ (line 110) | def __str__(self): class SOARecord (line 117) | class SOARecord(object): method __init__ (line 119) | def __init__(self, record): function get_soa_record (line 125) | def get_soa_record(client, zone_id, zone_name): function create_route53_zone (line 146) | def create_route53_zone(client, zone_name): function load_object_from_string (line 197) | def load_object_from_string(fqcn): function merge_map (line 215) | def merge_map(a, b): function yaml_to_ordered_dict (line 232) | def yaml_to_ordered_dict(stream, loader=yaml.SafeLoader): function uppercase_first_letter (line 318) | def uppercase_first_letter(s): function cf_safe_name (line 323) | def cf_safe_name(name): function get_config_directory (line 334) | def get_config_directory(): function read_value_from_path (line 347) | def read_value_from_path(value): function get_client_region (line 364) | def get_client_region(client): function get_s3_endpoint (line 378) | def get_s3_endpoint(client): function s3_bucket_location_constraint (line 392) | def s3_bucket_location_constraint(region): function ensure_s3_bucket (line 410) | def ensure_s3_bucket(s3_client, bucket_name, bucket_region): function parse_cloudformation_template (line 445) | def parse_cloudformation_template(template): class Extractor (line 456) | class Extractor(object): method __init__ (line 459) | def __init__(self, archive=None): method set_archive (line 468) | def set_archive(self, dir_name): method extension (line 478) | def extension(): class TarExtractor (line 483) | class TarExtractor(Extractor): method extract (line 486) | def extract(self, destination): method extension (line 492) | def extension(): class TarGzipExtractor (line 497) | class TarGzipExtractor(Extractor): method extract (line 500) | def extract(self, destination): method extension (line 506) | def extension(): class ZipExtractor (line 511) | class ZipExtractor(Extractor): method extract (line 514) | def extract(self, destination): method extension (line 520) | def extension(): class SourceProcessor (line 525) | class SourceProcessor(object): method __init__ (line 530) | def __init__(self, sources, stacker_cache_dir=None): method create_cache_directories (line 548) | def create_cache_directories(self): method get_package_sources (line 555) | def get_package_sources(self): method fetch_local_package (line 567) | def fetch_local_package(self, config): method fetch_s3_package (line 579) | def fetch_s3_package(self, config): method fetch_git_package (line 677) | def fetch_git_package(self, config): method update_paths_and_config (line 717) | def update_paths_and_config(self, config, pkg_dir_name, method git_ls_remote (line 750) | def git_ls_remote(self, uri, ref): method determine_git_ls_remote_ref (line 773) | def determine_git_ls_remote_ref(self, config): method determine_git_ref (line 791) | def determine_git_ref(self, config): method sanitize_uri_path (line 829) | def sanitize_uri_path(self, uri): method sanitize_git_path (line 843) | def sanitize_git_path(self, uri, ref=None): function stack_template_key_name (line 865) | def stack_template_key_name(blueprint): FILE: stacker/variables.py class LookupTemplate (line 13) | class LookupTemplate(Template): function resolve_variables (line 19) | def resolve_variables(variables, context, provider): class Variable (line 34) | class Variable(object): method __init__ (line 43) | def __init__(self, name, value): method value (line 49) | def value(self): method resolved (line 60) | def resolved(self): method resolve (line 67) | def resolve(self, context, provider): method dependencies (line 82) | def dependencies(self): class VariableValue (line 90) | class VariableValue(object): method value (line 94) | def value(self): method __iter__ (line 97) | def __iter__(self): method resolved (line 100) | def resolved(self): method resolve (line 107) | def resolve(self, context, provider): method dependencies (line 110) | def dependencies(self): method simplified (line 113) | def simplified(self): method parse (line 125) | def parse(cls, input_object): class VariableValueLiteral (line 174) | class VariableValueLiteral(VariableValue): method __init__ (line 175) | def __init__(self, value): method value (line 178) | def value(self): method __iter__ (line 181) | def __iter__(self): method resolved (line 184) | def resolved(self): method __repr__ (line 187) | def __repr__(self): class VariableValueList (line 191) | class VariableValueList(VariableValue, list): method parse (line 193) | def parse(cls, input_object): method value (line 200) | def value(self): method resolved (line 206) | def resolved(self): method __repr__ (line 212) | def __repr__(self): method __iter__ (line 215) | def __iter__(self): method resolve (line 218) | def resolve(self, context, provider): method dependencies (line 222) | def dependencies(self): method simplified (line 228) | def simplified(self): class VariableValueDict (line 235) | class VariableValueDict(VariableValue, dict): method parse (line 237) | def parse(cls, input_object): method value (line 244) | def value(self): method resolved (line 250) | def resolved(self): method __repr__ (line 256) | def __repr__(self): method __iter__ (line 261) | def __iter__(self): method resolve (line 264) | def resolve(self, context, provider): method dependencies (line 268) | def dependencies(self): method simplified (line 274) | def simplified(self): class VariableValueConcatenation (line 281) | class VariableValueConcatenation(VariableValue, list): method value (line 282) | def value(self): method __iter__ (line 294) | def __iter__(self): method resolved (line 297) | def resolved(self): method __repr__ (line 303) | def __repr__(self): method resolve (line 306) | def resolve(self, context, provider): method dependencies (line 310) | def dependencies(self): method simplified (line 316) | def simplified(self): class VariableValueLookup (line 346) | class VariableValueLookup(VariableValue): method __init__ (line 347) | def __init__(self, lookup_name, lookup_data, handler=None): method resolve (line 370) | def resolve(self, context, provider): method _resolve (line 390) | def _resolve(self, value): method dependencies (line 394) | def dependencies(self): method value (line 400) | def value(self): method __iter__ (line 406) | def __iter__(self): method resolved (line 409) | def resolved(self): method __repr__ (line 412) | def __repr__(self): method __str__ (line 425) | def __str__(self): method simplified (line 431) | def simplified(self):