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: Integration test improvements with ApiKey skips and retry time #2487

Merged
merged 5 commits into from
Sep 1, 2022

Conversation

qingchm
Copy link
Contributor

@qingchm qingchm commented Sep 1, 2022

Issue #, if available:
N.A.

Description of changes:
Change the integration tests to add skip for ApiKey, also modifying retry time to be longer wait according to ApiGateway recommendation

Description of how you validated changes:
Ran local testing

Checklist:

  • Add/update unit tests using:
  • Add/update integration tests
  • make pr passes
  • Update documentation
  • Verify transformed template deploys and application functions as expected
  • Do these changes include any template validations?
    • Did the newly validated properties support intrinsics prior to adding the validations? (If unsure, please review Intrinsic Functions before proceeding).
      • Does the pull request ensure that intrinsics remain functional with the new validations?

Examples?

Please reach out in the comments, if you want to add an example. Examples will be
added to sam init through https://github.com/awslabs/aws-sam-cli-app-templates/

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

@codecov-commenter
Copy link

codecov-commenter commented Sep 1, 2022

Codecov Report

Merging #2487 (68087a5) into develop (e7a1496) will increase coverage by 0.90%.
The diff coverage is n/a.

@@             Coverage Diff             @@
##           develop    #2487      +/-   ##
===========================================
+ Coverage    93.58%   94.49%   +0.90%     
===========================================
  Files           90       98       +8     
  Lines         6124     7299    +1175     
  Branches      1260     1523     +263     
===========================================
+ Hits          5731     6897    +1166     
- Misses         183      194      +11     
+ Partials       210      208       -2     
Impacted Files Coverage Δ
samtranslator/region_configuration.py 77.77% <0.00%> (-22.23%) ⬇️
samtranslator/model/codedeploy.py 90.90% <0.00%> (-9.10%) ⬇️
samtranslator/validator/validator.py 91.80% <0.00%> (-3.85%) ⬇️
samtranslator/model/exceptions.py 97.67% <0.00%> (-2.33%) ⬇️
samtranslator/open_api/open_api.py 90.16% <0.00%> (-1.81%) ⬇️
samtranslator/model/s3_utils/uri_parser.py 68.42% <0.00%> (-0.81%) ⬇️
samtranslator/yaml_helper.py 89.47% <0.00%> (-0.53%) ⬇️
samtranslator/translator/logical_id_generator.py 90.62% <0.00%> (-0.29%) ⬇️
samtranslator/model/apigateway.py 96.98% <0.00%> (-0.18%) ⬇️
samtranslator/intrinsics/resource_refs.py 95.83% <0.00%> (-0.17%) ⬇️
... and 46 more

Help us with your feedback. Take ten seconds to tell us how you rate us. Have a feature suggestion? Share it here.

@@ -452,7 +452,7 @@ def verify_stack(self, end_state="CREATE_COMPLETE"):

@retry(
stop=stop_after_attempt(3),
Copy link
Contributor

Choose a reason for hiding this comment

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

should we increase the number of attempts as well?

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Sure we can do that as well to increase to 5

@@ -452,7 +452,7 @@ def verify_stack(self, end_state="CREATE_COMPLETE"):

@retry(
stop=stop_after_attempt(3),
wait=wait_exponential(multiplier=1, min=4, max=10) + wait_random(0, 1),
wait=wait_exponential(multiplier=1, min=20, max=30) + wait_random(0, 1),
Copy link
Contributor

Choose a reason for hiding this comment

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

I'm wondering if this config makes sense at all.
Considering we have max 3 attempts -> the sequence of wait times we will get is 1, 2, 4. With min set as 20, that means we will always wait for 20s + some random time between 0s and 1s. Then why do we exponential backoff at all?

And in total we have 3 attempts in 60s, which is still less than the 2min suggested time from API GW?

Copy link
Contributor Author

Choose a reason for hiding this comment

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

So the wait time is going to increase exponentially starting from 20s, but not exceeding 30, so the total wait time is around 90s, we can either increase the max wait time or the total retry attempts to meet the 2 minute mark

Copy link
Contributor

Choose a reason for hiding this comment

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

I was looking at https://github.com/jd/tenacity/blob/main/tenacity/wait.py#L136 so that's why the sequence is "1, 2, 4", and then bounded by 20 and 30.

But I think adding more attempts should do the work.

@qingchm qingchm requested a review from hawflau September 1, 2022 20:16
@qingchm qingchm merged commit f63fc62 into aws:develop Sep 1, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants