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

chore(cli): log SDK calls when using -vvv #32308

Merged
merged 8 commits into from
Nov 28, 2024
Merged

chore(cli): log SDK calls when using -vvv #32308

merged 8 commits into from
Nov 28, 2024

Conversation

rix0rrr
Copy link
Contributor

@rix0rrr rix0rrr commented Nov 27, 2024

(This work came out of the proxy issue research)

The logging of what SDK calls were being performed was lost during the migration of SDKv2 -> SDKv3. Add it back.

Also in this PR:

  • Set a timeout on npm view; if for network isolation reasons NPM can't connect to the server, it will make the CLI hang for a minute.
  • Work around an issue where the CLI entirely fails if it is run as a user that doesn't have a home directory.

Closes #32306.


By submitting this pull request, I confirm that my contribution is made under the terms of the Apache-2.0 license

(This work came out of the proxy issue research)

The logging of what SDK calls were being performed was lost during the
migration of SDKv2 -> SDKv3.  Add it back.

Also in this PR:

- Set a timeout on `npm view`; if for network isolation reasons NPM
  can't connect to the server, it will make the CLI hang for a minute.
- Work around an issue where the CLI entirely fails if it is run as
  a user that doesn't have a home directory.
@github-actions github-actions bot added bug This issue is a bug. p2 labels Nov 27, 2024
@aws-cdk-automation aws-cdk-automation requested a review from a team November 27, 2024 12:04
@mergify mergify bot added the contribution/core This is a PR that came from AWS. label Nov 27, 2024
@rix0rrr
Copy link
Contributor Author

rix0rrr commented Nov 27, 2024

Still a Draft because I'm not happy with how the messages are being formatted; there is too much detail in them as they include the entire API call payloads and responses (including somewhat-sensitive information).

But creating a PR already anyway because I want to store this code somewhere safe.

@rix0rrr rix0rrr changed the title chore(cli): improve SDK logging chore(cli): log SDK calls when using -vvv Nov 27, 2024
Copy link
Collaborator

@aws-cdk-automation aws-cdk-automation left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The pull request linter has failed. See the aws-cdk-automation comment below for failure reasons. If you believe this pull request should receive an exemption, please comment and provide a justification.

A comment requesting an exemption should contain the text Exemption Request. Additionally, if clarification is needed add Clarification Request to a comment.

@aws-cdk-automation aws-cdk-automation added the pr/needs-cli-test-run This PR needs CLI tests run against it. label Nov 27, 2024
Copy link

codecov bot commented Nov 27, 2024

Codecov Report

Attention: Patch coverage is 95.55556% with 2 lines in your changes missing coverage. Please review.

Project coverage is 78.45%. Comparing base (559d676) to head (d94db0a).
Report is 1 commits behind head on main.

Additional details and impacted files
@@            Coverage Diff             @@
##             main   #32308      +/-   ##
==========================================
+ Coverage   78.36%   78.45%   +0.08%     
==========================================
  Files         105      106       +1     
  Lines        7170     7208      +38     
  Branches     1315     1323       +8     
==========================================
+ Hits         5619     5655      +36     
- Misses       1364     1365       +1     
- Partials      187      188       +1     
Flag Coverage Δ
suite.unit 78.45% <95.55%> (+0.08%) ⬆️

Flags with carried forward coverage won't be shown. Click here to find out more.

Components Coverage Δ
packages/aws-cdk 78.45% <95.55%> (+0.08%) ⬆️

@rix0rrr rix0rrr marked this pull request as ready for review November 27, 2024 13:17
@rix0rrr rix0rrr requested a review from a team as a code owner November 27, 2024 13:18
public trace(...content: any[]) {
// This is too much detail for our logs
// trace('[SDK trace] %s', this.fmtContent(content));
Array.isArray(content);
Copy link
Contributor

@otaviomacedo otaviomacedo Nov 28, 2024

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I don't understand what this line is doing.

const api = content.commandName.replace(/Command$/, '');

const parts = [];
if (content.metadata.attempts > 1) {
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Is metadata guaranteed to exist?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think so but who knows.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'll code more defensively

* Stringify and join without separator.
*/
private fmtContent(content: any[]) {
if (content.length === 1) {
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Can content not be an array with more than one error, for example?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

If so we won't do the wrong thing, we just won't be doing a nice thing.

We'll see that in the logs at some point and fix it then.

@rix0rrr rix0rrr added the pr-linter/cli-integ-tested Assert that any CLI changes have been integ tested label Nov 28, 2024
@aws-cdk-automation aws-cdk-automation dismissed their stale review November 28, 2024 14:31

✅ Updated pull request passes all PRLinter validations. Dismissing previous PRLinter review.

@aws-cdk-automation aws-cdk-automation added pr/needs-maintainer-review This PR needs a review from a Core Team Member and removed pr/needs-cli-test-run This PR needs CLI tests run against it. labels Nov 28, 2024
Copy link
Contributor

mergify bot commented Nov 28, 2024

Thank you for contributing! Your pull request will be updated from main and then merged automatically (do not update manually, and be sure to allow changes to be pushed to your fork).

@aws-cdk-automation aws-cdk-automation removed the pr/needs-maintainer-review This PR needs a review from a Core Team Member label Nov 28, 2024
Copy link
Contributor

mergify bot commented Nov 28, 2024

Thank you for contributing! Your pull request will be updated from main and then merged automatically (do not update manually, and be sure to allow changes to be pushed to your fork).

@aws-cdk-automation
Copy link
Collaborator

AWS CodeBuild CI Report

  • CodeBuild project: AutoBuildv2Project1C6BFA3F-wQm2hXv2jqQv
  • Commit ID: d94db0a
  • Result: SUCCEEDED
  • Build Logs (available for 30 days)

Powered by github-codebuild-logs, available on the AWS Serverless Application Repository

@mergify mergify bot merged commit d2e0b29 into main Nov 28, 2024
16 of 17 checks passed
Copy link
Contributor

mergify bot commented Nov 28, 2024

Thank you for contributing! Your pull request will be updated from main and then merged automatically (do not update manually, and be sure to allow changes to be pushed to your fork).

@mergify mergify bot deleted the huijbers/cli-logging branch November 28, 2024 17:58
Copy link

Comments on closed issues and PRs are hard for our team to see.
If you need help, please open a new issue that references this one.

@github-actions github-actions bot locked as resolved and limited conversation to collaborators Nov 28, 2024
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
bug This issue is a bug. contribution/core This is a PR that came from AWS. p2 pr-linter/cli-integ-tested Assert that any CLI changes have been integ tested
Projects
None yet
Development

Successfully merging this pull request may close these issues.

CLI: SDK call logging doesn't work anymore since SDKv3
3 participants