-
Notifications
You must be signed in to change notification settings - Fork 391
bug: Unsupported type: cloudformation #202
Description
Hello,
Today, I wanted to reproduce this example on my AWS account following the repository guide. After fighting me a little with the installation of the dependencies, I have executed:
make all
In several parts of the execution output, the following error was shown:
Unsupported type: cloudformation
Usage: {PATH}/aws-serverless-ecommerce-platform/tools/lint TYPE SERVICE
This happens with all the Tools folder scripts.
Checking the scripts I see that the next code shows that output:
type tests_$TYPE | grep -q "function" &>/dev/null || {
echo "Unsupported type: $TYPE"
echo
display_usage
exit 1
}
The problem of this verification, to know if there is function, is the dependence of the language(locale) of the shell. In my case when having it in Spanish I have to change the "function" value for "función". Because in my case that command returns the following:
$ type check-deps_cloudformation
check-deps_cloudformation: es una función
check-deps_cloudformation ()
{
dependencies=$(yq -r ' .dependencies[]? ' $service_dir/metadata.yaml);
echo "$dependencies" | grep --color=auto -q \* && {
dependencies="$($ROOT/tools/services --exclude ${SERVICE})"
};
echo dependencies=$dependencies;
for dependency in $dependencies;
do
stack_name=${DOMAIN:-ecommerce}-${ENVIRONMENT:-dev}-${dependency};
aws cloudformation describe-stacks --stack-name $stack_name | jq -r ' .Stacks |
map(
.StackStatus
| test("(CREATE_FAILED|ROLLBACK_IN_PROGRESS|ROLLBACK_COMPLETE|ROLLBACK_FAILED|DELETE_IN_PROGRESS|DELETE_COMPLETE|DELETE_FAILED)")
| not
) ' | grep --color=auto -q "true" && {
FOUND=true
};
if [ -z $FOUND ]; then
echo "Stack $stack_name not found";
stack_name=${DOMAIN:-ecommerce}-${dependency};
aws cloudformation describe-stacks --stack-name $stack_name | jq -r ' .Stacks |
map(
.StackStatus
| test("(CREATE_FAILED|ROLLBACK_IN_PROGRESS|ROLLBACK_COMPLETE|ROLLBACK_FAILED|DELETE_IN_PROGRESS|DELETE_COMPLETE|DELETE_FAILED)")
| not
) ' | grep --color=auto -q "true" && {
FOUND=true
};
fi;
if [ -z $FOUND ]; then
echo "Stack $stack_name not found";
exit 1;
fi;
done
}
By making this change I have managed to advance in the deployment although I still have to solve some more mistake. I do not know if there is any alternative solution to make that check but at least there is a record of this error.