anmolxlight commented on code in PR #65335:
URL: https://github.com/apache/airflow/pull/65335#discussion_r3235104377


##########
providers/amazon/src/airflow/providers/amazon/aws/hooks/eks.py:
##########
@@ -82,20 +82,25 @@ class NodegroupStates(Enum):
             # Load credentials from secure file using (POSIX-compliant dot 
operator)
             . {credentials_file}
 
+            # Redirect stderr to /dev/null to prevent Python warnings, 
deprecation
+            # notices, or other log output from contaminating stdout. The token
+            # output must be the ONLY thing on stdout for bash token parsing 
to work.
             output=$({python_executable} -m 
airflow.providers.amazon.aws.utils.eks_get_token \
-                --cluster-name {eks_cluster_name} --sts-url '{sts_url}' {args} 
2>&1)
+                --cluster-name {eks_cluster_name} --sts-url '{sts_url}' {args} 
2>/dev/null)
 
             status=$?
 
             # Clear environment variables after use (defense in depth)
             unset AWS_ACCESS_KEY_ID AWS_SECRET_ACCESS_KEY AWS_SESSION_TOKEN
 
             if [ "$status" -ne 0 ]; then
-                printf '%s' "$output" >&2
+                printf 'eks_get_token failed with exit code %s. Output was: 
%s' \
+                    "$status" "$output" >&2

Review Comment:
   Yes — I tested the shell behavior separately. `output=$(cmd 
2>"$stderr_file")` keeps stdout token parsing clean, preserves the command exit 
status, and still leaves stderr available for the failure message. I did not 
run it against a live EKS cluster.



-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to