shellscripts/aws/datapipeline/datapipeline_role_checker.sh

37 lines
1.2 KiB
Bash
Executable File

#!/bin/bash
pipelines=$(aws datapipeline list-pipelines | jq -r '.pipelineIdList[].id')
count=$(echo "$pipelines" | wc -l)
resourceRoleArr=()
serviceRoleArr=()
counter=0
for i in $pipelines; do
echo "Checking pipeline $i"
pipeline_objects=$(aws datapipeline describe-objects --pipeline-id "$i" --object-id "Default" 2>/dev/null)
if [ $? == "0" ]; then
serviceRole=$(echo "$pipeline_objects" | jq -r '.pipelineObjects[0].fields[] | select(.key=="role").stringValue')
echo "adding $serviceRole to Service Roles array"
serviceRoleArr[$counter]=$serviceRole
resourceRole=$(echo "$pipeline_objects" | jq -r '.pipelineObjects[0].fields[] | select(.key=="resourceRole").stringValue')
echo "adding $resourceRole to Resource Roles array"
resourceRoleArr[$counter]=$resourceRole
let counter=counter+1
else
echo "$i did not return objects; skipping"
fi
done
echo Finding unique roles and sorting...
uniqueServiceRoleArr=($(echo "${serviceRoleArr[@]}" | tr ' ' '\n' | sort -u | tr '\n' ' '))
uniqueResourceRoleArr=($(echo "${resourceRoleArr[@]}" | tr ' ' '\n' | sort -u | tr '\n' ' '))
echo
echo
echo "Printing Service Roles:"
echo ${uniqueServiceRoleArr[*]}
echo
echo "Printing Resource Roles:"
echo ${uniqueResourceRoleArr[*]}