sam/app-decompose-for-parallelism/ctl.py [12:100]:
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
default_sam_config_filename = 'samconfig.toml'

def handler_datetime(field):
    if isinstance(field, datetime.datetime):
        return field.isoformat()
    raise TypeError("Type not recognized")

def load_sam_config(file_name = default_sam_config_filename):
    cfg = {}
    try:
        with open(file_name) as f:
            content = f.read()
            cfg = toml.loads(content)
        
        return cfg
    except:
        print("Error: Couldn't load sam config file: {}".format(sys.exc_info()[0]))
        exit()

def get_stack_name(file_name = default_sam_config_filename):
    sam_config = load_sam_config(file_name)
    stack_name = ''
    try:
        stack_name = sam_config['default']['dedploy']['parameters']['stack_name']
    except(KeyError):
        print("Error: stack name not found in sam config: {}".format(sam_config))
    
    return stack_name
        
def get_parameter(parameter,file_name = default_sam_config_filename):
    sam_config = load_sam_config(file_name)

    parameters = {}
    try:
        parameters = sam_config['default']['deploy']['parameters']
    except(KeyError):
        print("Error: parameters list not found in sam config: {}".format(sam_config))
        exit()

    r_val = ''
    try:
        r_val = parameters[parameter]
    except(KeyError):
        print("Error: parameter {} not found in parameters: {}".format(parameter,parameters))
        exit()
    
    return r_val

def describe_stack(file_name = default_sam_config_filename):
    profile = get_parameter('profile',file_name)
    stack_name = get_parameter('stack_name',file_name)
    region = get_parameter('region',file_name)
    stack = {}

    try:
        boto3.setup_default_session(profile_name=profile,region_name=region)
        client = boto3.client('cloudformation')
        stack = client.describe_stacks(StackName=stack_name)
    except:
        print("Error: Failed to describe stack {}: {}".format(stack_name,sys.exc_info()[0]))
        exit()
    return stack

def get_stack_output(file_name = default_sam_config_filename):
    stack = describe_stack(file_name=file_name)
    output = {}
    try:
        output = stack['Stacks'][0]['Outputs']
    except:
        print("Error: Failed to get stack output for stack: {}".format(sys.exc_info()[0]))
        exit()

    return output

def get_output_value(key_name):

    r_val = ''
    output = get_stack_output()
    for o in output:
        if 'OutputKey' in o:
            if o['OutputKey'] == key_name:
                r_val = o['OutputValue']
    
    return r_val

def process_execution_description(execution_description):
    if 'output' in execution_description:
        output_string = execution_description['output']
        output_obj = json.loads(output_string)
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -



sam/app-s3-athena-dataprocessing/ctl.py [12:100]:
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
default_sam_config_filename = 'samconfig.toml'

def handler_datetime(field):
    if isinstance(field, datetime.datetime):
        return field.isoformat()
    raise TypeError("Type not recognized")

def load_sam_config(file_name = default_sam_config_filename):
    cfg = {}
    try:
        with open(file_name) as f:
            content = f.read()
            cfg = toml.loads(content)
        
        return cfg
    except:
        print("Error: Couldn't load sam config file: {}".format(sys.exc_info()[0]))
        exit()

def get_stack_name(file_name = default_sam_config_filename):
    sam_config = load_sam_config(file_name)
    stack_name = ''
    try:
        stack_name = sam_config['default']['dedploy']['parameters']['stack_name']
    except(KeyError):
        print("Error: stack name not found in sam config: {}".format(sam_config))
    
    return stack_name
        
def get_parameter(parameter,file_name = default_sam_config_filename):
    sam_config = load_sam_config(file_name)

    parameters = {}
    try:
        parameters = sam_config['default']['deploy']['parameters']
    except(KeyError):
        print("Error: parameters list not found in sam config: {}".format(sam_config))
        exit()

    r_val = ''
    try:
        r_val = parameters[parameter]
    except(KeyError):
        print("Error: parameter {} not found in parameters: {}".format(parameter,parameters))
        exit()
    
    return r_val

def describe_stack(file_name = default_sam_config_filename):
    profile = get_parameter('profile',file_name)
    stack_name = get_parameter('stack_name',file_name)
    region = get_parameter('region',file_name)
    stack = {}

    try:
        boto3.setup_default_session(profile_name=profile,region_name=region)
        client = boto3.client('cloudformation')
        stack = client.describe_stacks(StackName=stack_name)
    except:
        print("Error: Failed to describe stack {}: {}".format(stack_name,sys.exc_info()[0]))
        exit()
    return stack

def get_stack_output(file_name = default_sam_config_filename):
    stack = describe_stack(file_name=file_name)
    output = {}
    try:
        output = stack['Stacks'][0]['Outputs']
    except:
        print("Error: Failed to get stack output for stack: {}".format(sys.exc_info()[0]))
        exit()

    return output

def get_output_value(key_name):

    r_val = ''
    output = get_stack_output()
    for o in output:
        if 'OutputKey' in o:
            if o['OutputKey'] == key_name:
                r_val = o['OutputValue']
    
    return r_val

def process_execution_description(execution_description):
    if 'output' in execution_description:
        output_string = execution_description['output']
        output_obj = json.loads(output_string)
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -



