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

Fixes paginator call #3448

Closed
wants to merge 9 commits into from
Closed

Fixes paginator call #3448

wants to merge 9 commits into from

Conversation

jadudm
Copy link
Contributor

@jadudm jadudm commented Feb 26, 2024

The paginator call was

pages = paginator.paginate(Bucket="bucket", Prefix="prefix")

which was therefore attempting to access the bucket named "bucket" at the path "prefix." It is unclear how this worked.

Changed to

pages = paginator.paginate(Bucket=bucket, Prefix=path)

which provides the correct behavior in local testing. Testing in preview.

PR checklist: submitters

  • Link to an issue if possible. If there’s no issue, describe what your branch does. Even if there is an issue, a brief description in the PR is still useful.
  • List any special steps reviewers have to follow to test the PR. For example, adding a local environment variable, creating a local test file, etc.
  • For extra credit, submit a screen recording like this one.
  • Make sure you’ve merged main into your branch shortly before creating the PR. (You should also be merging main into your branch regularly during development.)
  • Make sure you’ve accounted for any migrations. When you’re about to create the PR, bring up the application locally and then run git status | grep migrations. If there are any results, you probably need to add them to the branch for the PR. Your PR should have only one new migration file for each of the component apps, except in rare circumstances; you may need to delete some and re-run python manage.py makemigrations to reduce the number to one. (Also, unless in exceptional circumstances, your PR should not delete any migration files.)
  • Make sure that whatever feature you’re adding has tests that cover the feature. This includes test coverage to make sure that the previous workflow still works, if applicable.
  • Make sure the full-submission.cy.js Cypress test passes, if applicable.
  • Do manual testing locally. Our tests are not good enough yet to allow us to skip this step. If that’s not applicable for some reason, check this box.
  • Verify that no Git surgery was necessary, or, if it was necessary at any point, repeat the testing after it’s finished.
  • Once a PR is merged, keep an eye on it until it’s deployed to dev, and do enough testing on dev to verify that it deployed successfully, the feature works as expected, and the happy path for the broad feature area (such as submission) still works.

PR checklist: reviewers

  • Pull the branch to your local environment and run make docker-clean; make docker-first-run && docker compose up; then run docker compose exec web /bin/bash -c "python manage.py test"
  • Manually test out the changes locally, or check this box to verify that it wasn’t applicable in this case.
  • Check that the PR has appropriate tests. Look out for changes in HTML/JS/JSON Schema logic that may need to be captured in Python tests even though the logic isn’t in Python.
  • Verify that no Git surgery is necessary at any point (such as during a merge party), or, if it was, repeat the testing after it’s finished.

The larger the PR, the stricter we should be about these points.

Copy link
Contributor

github-actions bot commented Feb 26, 2024

Terraform plan for meta

No changes. Your infrastructure matches the configuration.
No changes. Your infrastructure matches the configuration.

Terraform has compared your real infrastructure against your configuration
and found no differences, so no changes are needed.

Warning: Argument is deprecated

  with module.s3-backups.cloudfoundry_service_instance.bucket,
  on /tmp/terraform-data-dir/modules/s3-backups/s3/main.tf line 14, in resource "cloudfoundry_service_instance" "bucket":
  14:   recursive_delete = var.recursive_delete

Since CF API v3, recursive delete is always done on the cloudcontroller side.
This will be removed in future releases

📝 Plan generated in Pull Request Checks #2460

Copy link
Contributor

github-actions bot commented Feb 26, 2024

Terraform plan for dev

No changes. Your infrastructure matches the configuration.
No changes. Your infrastructure matches the configuration.

Terraform has compared your real infrastructure against your configuration
and found no differences, so no changes are needed.

Warning: Argument is deprecated

  with module.dev.module.cg-logshipper.module.s3-logshipper-storage.cloudfoundry_service_instance.bucket,
  on /tmp/terraform-data-dir/modules/dev.cg-logshipper.s3-logshipper-storage/s3/main.tf line 14, in resource "cloudfoundry_service_instance" "bucket":
  14:   recursive_delete = var.recursive_delete

Since CF API v3, recursive delete is always done on the cloudcontroller side.
This will be removed in future releases

(and 3 more similar warnings elsewhere)

📝 Plan generated in Pull Request Checks #2460

Copy link
Contributor

github-actions bot commented Feb 26, 2024

File Coverage Missing
All files 87%
api/serializers.py 88% 177-178 183 188
api/test_views.py 95% 103
api/uei.py 88% 87 118-119 163 167-168
api/views.py 98% 198-199 337-338
audit/forms.py 60% 31-38 108-115
audit/intake_to_dissemination.py 88% 57-62 264 308-316
audit/mixins.py 96% 27
audit/test_commands.py 91%
audit/test_manage_submission_access_view.py 98% 15 19
audit/test_mixins.py 90% 159-160 164-166 254-255 259-261
audit/test_validators.py 96% 437 441 609-610 849 856 863 870
audit/test_views.py 98% 132
audit/test_workbooks_should_fail.py 88% 58 87-88 92
audit/test_workbooks_should_pass.py 87% 59 74-76
audit/utils.py 91% 33-35 38
audit/validators.py 94% 138 190 296-297 312-313 495-499 504-508 524-533
audit/cross_validation/additional_ueis.py 93% 33
audit/cross_validation/check_award_ref_declaration.py 90%
audit/cross_validation/check_award_reference_uniqueness.py 93%
audit/cross_validation/check_certifying_contacts.py 87%
audit/cross_validation/check_findings_count_consistency.py 91%
audit/cross_validation/check_ref_number_in_cap.py 90%
audit/cross_validation/check_ref_number_in_findings_text.py 90%
audit/cross_validation/errors.py 78% 30 69
audit/cross_validation/naming.py 93% 197
audit/cross_validation/submission_progress_check.py 95% 80
audit/cross_validation/tribal_data_sharing_consent.py 81% 33 36 40
audit/cross_validation/validate_general_information.py 93% 28-29
audit/fixtures/single_audit_checklist.py 55% 146-183 229-238
audit/intakelib/exceptions.py 71% 7-9 12
audit/intakelib/intermediate_representation.py 91% 27-28 73 91 129 200-203 212-213
audit/intakelib/mapping_audit_findings.py 97% 55
audit/intakelib/mapping_audit_findings_text.py 97% 52
audit/intakelib/mapping_federal_awards.py 93% 90
audit/intakelib/mapping_util.py 79% 21 25 29 63 99 104-105 114-120 130 145 150
audit/intakelib/checks/check_all_unique_award_numbers.py 79% 24
audit/intakelib/checks/check_cluster_names.py 75% 20-25
audit/intakelib/checks/check_cluster_total.py 95% 99
audit/intakelib/checks/check_has_all_the_named_ranges.py 95% 66
audit/intakelib/checks/check_is_a_workbook.py 69% 20
audit/intakelib/checks/check_loan_balance_entries.py 83% 28
audit/intakelib/checks/check_look_for_empty_rows.py 91% 18
audit/intakelib/checks/check_no_major_program_no_type.py 76% 18 27
audit/intakelib/checks/check_no_repeat_findings.py 76% 21 30
audit/intakelib/checks/check_other_cluster_names.py 81% 23 33
audit/intakelib/checks/check_passthrough_name_when_no_direct.py 88% 9 47
audit/intakelib/checks/check_sequential_award_numbers.py 76% 14 22
audit/intakelib/checks/check_start_and_end_rows_of_all_columns_are_same.py 89% 14
audit/intakelib/checks/check_state_cluster_names.py 81% 23 33
audit/intakelib/checks/check_version_number.py 73% 21 31-32
audit/intakelib/checks/runners.py 96% 147
audit/intakelib/common/util.py 90% 22 39
audit/intakelib/transforms/xform_rename_additional_notes_sheet.py 81% 14
audit/management/commands/load_fixtures.py 46% 39-45
audit/models/models.py 85% 58 60 65 67 209 215 227 239-242 260 437 455-456 464 486 584-585 589 597 606 612
audit/views/audit_info_form_view.py 27% 25-74 77-117 120-137
audit/views/manage_submission.py 86% 73-80
audit/views/manage_submission_access.py 98% 113-114
audit/views/pre_dissemination_download_view.py 78% 15-16 21-22 29-39
audit/views/submission_progress_view.py 89% 111 176-177
audit/views/tribal_data_consent.py 34% 23-41 44-79
audit/views/unlock_after_certification.py 57% 28-51 73-87
audit/views/upload_report_view.py 26% 32-35 44 91-117 120-170 178-209
audit/views/views.py 53% 74 81-100 123-124 198-199 220-230 259-260 271-272 274-278 320-333 336-350 355-368 385-391 396-416 443-447 452-481 524-528 533-553 580-584 589-618 661-665 670-682 685-695 700-712 745-759
census_historical_migration/change_record.py 96% 30 34
census_historical_migration/test_federal_awards_xforms.py 99% 208-209
census_historical_migration/sac_general_lib/audit_information.py 91% 24 78
census_historical_migration/sac_general_lib/cognizant_oversight.py 68% 11
census_historical_migration/sac_general_lib/general_information.py 91% 150-151 159-160 204 275
census_historical_migration/sac_general_lib/sac_creator.py 90% 34
census_historical_migration/sac_general_lib/utils.py 83% 33 60-69
census_historical_migration/transforms/xform_retrieve_uei.py 67% 10
census_historical_migration/workbooklib/additional_eins.py 84% 58-60 67-77
census_historical_migration/workbooklib/additional_ueis.py 77% 27-29 36-46
census_historical_migration/workbooklib/corrective_action_plan.py 81% 40-42 73-89
census_historical_migration/workbooklib/excel_creation_utils.py 65% 99 108-113 118-125 129-147 160-164 178-181
census_historical_migration/workbooklib/federal_awards.py 70% 94-97 268 309-317 327-352 485-576
census_historical_migration/workbooklib/findings.py 27% 40-45 91-111 116-136 149-151 158-179
census_historical_migration/workbooklib/findings_text.py 81% 38-39 70-87
census_historical_migration/workbooklib/notes_to_sefa.py 55% 34-38 101-102 104-105 107-108 135-141 149-157 165-167 172-189 196-232
config/error_handlers.py 83% 8
config/test_settings.py 92% 33-34 49-50
config/urls.py 71% 85
dissemination/file_downloads.py 81% 43-61 91-93
dissemination/forms.py 90% 114 123
dissemination/search.py 59% 72 79 81 84-92
dissemination/summary_reports.py 55% 276-278 282-286 306-330 334 397-450 475 511-513 528-535
dissemination/test_search.py 93% 365-382 394-418 430-455 463-479
dissemination/views.py 86% 150 176 178 210 258 260 262 340-344
dissemination/migrations/0002_general_fac_accepted_date.py 47% 10-12
dissemination/searchlib/search_alns.py 37% 44-58 80-112 117-179 186-189
dissemination/searchlib/search_direct_funding.py 86% 21-22
dissemination/searchlib/search_findings.py 76% 20-26 36 38 40
dissemination/searchlib/search_general.py 97%
djangooidc/backends.py 78% 32 57-63
djangooidc/exceptions.py 66% 19 21 23 28
djangooidc/oidc.py 16% 32-35 45-51 64-70 92-149 153-199 203-226 230-275 280-281 286
djangooidc/views.py 81% 22 43 109-110 117
djangooidc/tests/common.py 97%
report_submission/forms.py 92% 35
report_submission/views.py 78% 86 221 243-244 263-264 290-436 439-449
report_submission/templatetags/get_attr.py 76% 8 11-14 18
support/admin.py 88% 76 79 84 91-97 100-102
support/cog_over.py 91% 30-33 93 145
support/test_admin_api.py 80% 22 146-147 236-237 316-317
support/test_cog_over.py 98% 134-135 224
support/management/commands/seed_cog_baseline.py 98% 20-21
support/models/cog_over.py 89% 103-104
tools/update_program_data.py 89% 96
users/admin.py 99% 27
users/auth.py 96% 58-59
users/models.py 96% 18 74-75
users/fixtures/user_fixtures.py 91%

Minimum allowed coverage is 85%

Generated by 🐒 cobertura-action against 7cd3826

@asteel-gsa
Copy link
Contributor

Spoke with Jadud, this looks at the cg-################ bucket name, not the friendly fac-private-s3 name. Jadud is going to add that to consume the friendly name and get the VCAP_SERVICES bucket name. It is also currently set to run 2 jobs for the different paths, something that will change soon to run 1 command with multiple paths.

@asteel-gsa asteel-gsa self-requested a review March 5, 2024 18:18
jadudm and others added 4 commits March 5, 2024 13:23
The paginator call was

pages = paginator.paginate(Bucket="bucket", Prefix="prefix")

which was therefore attempting to access the bucket named "bucket" at
the path "prefix." It is unclear how this worked.

Changed to

pages = paginator.paginate(Bucket=bucket, Prefix=path)

which provides the correct behavior in local testing. Testing in
preview.
We need the non-friendly/brokered name for the bucket in production
environments, not the friendly name.

This looks up the brokered name, and sets the bucket name accordingly.

Committing for testing.
jadudm and others added 2 commits March 5, 2024 13:23
Also fixes totaling of errors in all paths.
From 15s -> 30s
@asteel-gsa asteel-gsa removed their request for review March 5, 2024 18:24
@asteel-gsa asteel-gsa changed the title Fxies paginator call Fixes paginator call Mar 5, 2024
@timoballard
Copy link
Contributor

@jadudm @asteel-gsa - what's the status on this one? Should it be marked as draft?

@jadudm
Copy link
Contributor Author

jadudm commented Apr 24, 2024

Moved to draft.

@jadudm jadudm marked this pull request as draft April 24, 2024 17:00
@jadudm
Copy link
Contributor Author

jadudm commented May 20, 2024

This whole PR is out of date, and no longer applies. Closing.

@jadudm jadudm closed this May 20, 2024
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.

None yet

3 participants