def UpdateWorkload()

in static/watool/utilities/Code/duplicateWAFR.py [0:0]


def UpdateWorkload(
    waclient,
    workloadId,
    workloadARN,
    workloadName,
    description,
    reviewOwner,
    environment,
    awsRegions,
    lenses,
    tags
    ):

    logger.info("Updating workload properties")
    # Create your workload
    try:
        waclient.update_workload(
        WorkloadId=workloadId,
        WorkloadName=workloadName,
        Description=description,
        ReviewOwner=reviewOwner,
        Environment=environment,
        AwsRegions=awsRegions,
        )
    except botocore.exceptions.ParamValidationError as e:
        logger.error("ERROR - Parameter validation error: %s" % e)
    except botocore.exceptions.ClientError as e:
        logger.error("ERROR - Unexpected error: %s" % e)
    # Should add updates for the lenses?
    # Should add the tags as well
    if tags:
        logger.info("Updating workload tags")
        try:
            waclient.tag_resource(WorkloadArn=workloadARN,Tags=tags)
        except botocore.exceptions.ParamValidationError as e:
            logger.error("ERROR - Parameter validation error: %s" % e)
        except botocore.exceptions.ClientError as e:
            logger.error("ERROR - Unexpected error: %s" % e)
    else:
        logger.info("Found blank tag set, removing any I find")
        try:
            tagresponse = waclient.list_tags_for_resource(WorkloadArn=workloadARN)
        except botocore.exceptions.ParamValidationError as e:
            logger.error("ERROR - Parameter validation error: %s" % e)
        except botocore.exceptions.ClientError as e:
            logger.error("ERROR - Unexpected error: %s" % e)
        tagkeys = list(tagresponse['Tags'])
        if tagkeys:
            try:
                waclient.untag_resource(WorkloadArn=workloadARN,TagKeys=tagkeys)
            except botocore.exceptions.ParamValidationError as e:
                logger.error("ERROR - Parameter validation error: %s" % e)
            except botocore.exceptions.ClientError as e:
                logger.error("ERROR - Unexpected error: %s" % e)
        else:
            logger.info("TO Workload has blank keys as well, no need to update")