Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

💡 [REQUEST] - Validate jq syntax support in native json-parsing solution #202

Open
l50 opened this issue Jul 24, 2023 · 0 comments
Open
Labels
question Clarification and/or additional information required to move forward

Comments

@l50
Copy link
Contributor

l50 commented Jul 24, 2023

Implementation PR

No response

Reference Issues

No response

Summary

Validate support for jq syntax used in recent TTP development - see new-m ttps.

Basic Example

Example TTP:

steps:
  - name: ensure-aws-creds-present
    inline: |
      set -e
      if [[ -z "${AWS_DEFAULT_REGION}" ]]; then
        echo "AWS_DEFAULT_REGION must be set."
        exit 1
      fi
      if [[ -n "${AWS_ACCESS_KEY_ID}" && -n "${AWS_SECRET_ACCESS_KEY}" ]]; then
        if [[ -z "${AWS_SESSION_TOKEN}" ]]; then
          echo "AWS_SESSION_TOKEN must be set when using AWS_ACCESS_KEY_ID and AWS_SECRET_ACCESS_KEY."
          exit 1
        fi
      elif [[ -z "${AWS_PROFILE}" ]]; then
        echo "Either AWS_ACCESS_KEY_ID, AWS_SECRET_ACCESS_KEY, and AWS_SESSION_TOKEN, or AWS_PROFILE must be set."
        exit 1
      fi

  - name: ensure-aws-cli-present
    inline: |
      set -e
      if ! [ -x "$(command -v aws)" ]; then
        echo 'Error: AWS CLI is not installed.' >&2
      else
        echo -e "AWS CLI is installed: $(aws --version)"
      fi

  - name: populate_buckets_file
    inline: |
      set -e
      if [ "{{args.create-buckets-file}}" == true ]; then
        BUCKETS_FILE={{args.buckets}}

        buckets=$(aws s3api list-buckets --query "Buckets[].Name" --output json | jq -r '.[]')

        # Clear the output file
        echo "" > $BUCKETS_FILE

        for bucket in $buckets; do
            bucket_region=$(aws s3api get-bucket-location --bucket "$bucket" --output json | jq -r '.LocationConstraint')
            if [[ "$bucket_region" == "${AWS_DEFAULT_REGION}" ]]; then
                echo "$bucket" | tee -a "${BUCKETS_FILE}"
            fi
        done
      fi

Desired End State of one of the steps:

  - name: create_buckets_file_content
    inline: |
      aws s3api list-buckets --query "Buckets[].Name" --output json'
    outputs:
      - name: buckets_file
        json: '.[]'

Drawbacks

No response

Unresolved questions

No response

@l50 l50 added the question Clarification and/or additional information required to move forward label Jul 24, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
question Clarification and/or additional information required to move forward
Projects
None yet
Development

No branches or pull requests

1 participant