def get_or_create_target()

in traffic_mirroring/app_helper.py [0:0]


def get_or_create_target(ec2, instance, config):
    if using_predefined_target(config):
        targetId = config['targetId']
        log.info('Using provided target: %s', targetId)
        return targetId

    log.info('No target provided in config, determining if one needs to be created')
    target_subnet_id = get_target_subnet_id(instance, config)
    target_tag_filter = create_response_filter(
        "tag:" + SUBNET_TAG_KEY, target_subnet_id)
    response = describe_targets(ec2, target_tag_filter)

    if response["TrafficMirrorTargets"]:
        return response["TrafficMirrorTargets"][0]["TrafficMirrorTargetId"]
    else:
        log.info('No available target found. Creating one')
        return create_target(ec2, target_subnet_id, config)