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

2024-05-14 | MAIN --> PROD | DEV (3b115e1) --> STAGING #3832

Merged
merged 7 commits into from
May 14, 2024
Merged

2024-05-14 | MAIN --> PROD | DEV (3b115e1) --> STAGING #3832

merged 7 commits into from
May 14, 2024

Conversation

jadudm
Copy link
Contributor

@jadudm jadudm commented May 14, 2024

This is an auto-generated pull request to merge main into prod for a staging release on 2024-05-14 with the last commit being merged as 3b115e1

gsa-suk and others added 7 commits May 13, 2024 15:45
…ion (#3823)

* Code improvement

* Added is_sp_framework_required and is_low_risk_auditee to validate gsa_migration

* Implemented validation for GSA_MIGRATION in audit_information

* Fixed linting

* Validation for gsa_migration in is_sp_framework_required and is_low_risk_auditee

* Updates related to validate_audit_information_json

* Updates related to validate_audit_information_json

* Fixed linting
…identification (#3828)

* #3708 Add Logic to sanitize the additional award identification data

* Code improvement

* Update backend/census_historical_migration/workbooklib/federal_awards.py

Co-authored-by: Phil Dominguez <[email protected]>

* Update backend/census_historical_migration/workbooklib/federal_awards.py

Co-authored-by: Phil Dominguez <[email protected]>

* Update backend/census_historical_migration/workbooklib/federal_awards.py

* Update backend/census_historical_migration/workbooklib/federal_awards.py

* Updated comment

---------

Co-authored-by: Phil Dominguez <[email protected]>
* Replacing missing auditee_zip with GSA_MIGRATION

* Adding unit test

* Replacing missing auditor_zip with GSA_MIGRATION

* Lint

* Adding address_zip to check_gsa_migration_keyword.py

* Trying to fix schemas

* Fixing schema tests

* Lint

* Hard coding test symbols

* Fixing tests

* Tracking for all zips

* Lint

* Moving general gsa zip check to correct method

* Comment

* Fix for xform_remove_hyphen_and_pad_zip

* Comment cleanup
* Tracking for all cpa states

* Lint

* Comment

* Comment
* Tracking for all is_passthrough_award

* Comment

* Comment

* Comment
* Tracking for all is_major

* Comment

* Comment

* Whitespace
* Tracking for all federal_program_names

* Comment

* Comment
@jadudm jadudm added autogenerated Automated pull request creation automerge Used for automated deployments labels May 14, 2024
Copy link
Contributor

Terraform plan for production

Plan: 8 to add, 1 to change, 0 to destroy.
Terraform used the selected providers to generate the following execution
plan. Resource actions are indicated with the following symbols:
+   create
!~  update in-place
 <= read (data resources)

Terraform will perform the following actions:

  # module.production.cloudfoundry_app.postgrest will be updated in-place
!~  resource "cloudfoundry_app" "postgrest" {
!~      docker_image                    = "ghcr.io/gsa-tts/fac/postgrest@sha256:58a897e8349f3b6a13810ae87751295841f7da1ce68e5f12a18948538fa49837" -> "ghcr.io/gsa-tts/fac/postgrest@sha256:4b903ac223ea5f583bd870a328a3cf54d19267e5b5abfff896863b37f7cb68b6"
        id                              = "70ac44be-3507-4867-a75f-c2d1ab12ee89"
        name                            = "postgrest"
#        (17 unchanged attributes hidden)

#        (1 unchanged block hidden)
    }

  # module.production.cloudfoundry_network_policy.scanner-network-policy will be created
+   resource "cloudfoundry_network_policy" "scanner-network-policy" {
+       id = (known after apply)

+       policy {
+           destination_app = "5e81ca8b-99cf-41f8-ae42-76652d51a44c"
+           port            = "61443"
+           protocol        = "tcp"
+           source_app      = (known after apply)
        }
    }

  # module.production.module.fac-file-scanner.cloudfoundry_app.scanner_app will be created
+   resource "cloudfoundry_app" "scanner_app" {
+       buildpack                       = "https://github.com/cloudfoundry/python-buildpack"
+       disk_quota                      = 512
+       enable_ssh                      = (known after apply)
+       environment                     = (sensitive value)
+       health_check_http_endpoint      = (known after apply)
+       health_check_invocation_timeout = (known after apply)
+       health_check_timeout            = (known after apply)
+       health_check_type               = "port"
+       id                              = (known after apply)
+       id_bg                           = (known after apply)
+       instances                       = 1
+       memory                          = 512
+       name                            = "fac-file-scanner"
+       path                            = "../shared/modules/scanner/scanner.zip"
+       ports                           = (known after apply)
+       space                           = "5593dba8-7023-49a5-bdbe-e809fe23edf9"
+       stack                           = (known after apply)
+       stopped                         = false
+       strategy                        = "rolling"
+       timeout                         = 180

+       routes {
+           port  = (known after apply)
+           route = (known after apply)
        }

+       service_binding {
+           service_instance = (known after apply)
        }
+       service_binding {
+           service_instance = "ac8bf271-4c6d-4ee0-bd36-1415b839a93c"
        }
+       service_binding {
+           service_instance = (known after apply)
        }
+       service_binding {
+           service_instance = "0eca29d3-e963-49e6-8c9e-c53b7aa8482e"
        }
    }

  # module.production.module.fac-file-scanner.cloudfoundry_route.scanner_route will be created
+   resource "cloudfoundry_route" "scanner_route" {
+       domain   = "26df58ef-0c0d-4997-b68b-8defb7b3998b"
+       endpoint = (known after apply)
+       hostname = "fac-file-scanner-production"
+       id       = (known after apply)
+       port     = (known after apply)
+       space    = "5593dba8-7023-49a5-bdbe-e809fe23edf9"
    }

  # module.production.module.fac-file-scanner.cloudfoundry_user_provided_service.clam will be created
+   resource "cloudfoundry_user_provided_service" "clam" {
+       credentials = (sensitive value)
+       id          = (known after apply)
+       name        = "clamav_ups"
+       space       = "5593dba8-7023-49a5-bdbe-e809fe23edf9"
    }

  # module.production.module.file_scanner_clamav.data.cloudfoundry_app.app will be read during apply
  # (config refers to values not yet known)
 <= data "cloudfoundry_app" "app" {
+       buildpack                  = (known after apply)
+       command                    = (known after apply)
+       disk_quota                 = (known after apply)
+       enable_ssh                 = (known after apply)
+       environment                = (sensitive value)
+       health_check_http_endpoint = (known after apply)
+       health_check_timeout       = (known after apply)
+       health_check_type          = (known after apply)
+       id                         = (known after apply)
+       instances                  = (known after apply)
+       memory                     = (known after apply)
+       name                       = (known after apply)
+       name_or_id                 = "****************"
+       space                      = (known after apply)
+       stack                      = (known after apply)
+       state                      = (known after apply)
    }

  # module.production.module.file_scanner_clamav.data.cloudfoundry_domain.internal will be read during apply
  # (depends on a resource or a module with changes pending)
 <= data "cloudfoundry_domain" "internal" {
+       domain   = (known after apply)
+       id       = (known after apply)
+       internal = (known after apply)
+       name     = "apps.internal"
+       org      = (known after apply)
    }

  # module.production.module.file_scanner_clamav.data.cloudfoundry_space.space will be read during apply
  # (depends on a resource or a module with changes pending)
 <= data "cloudfoundry_space" "space" {
+       id       = (known after apply)
+       name     = "production"
+       org      = (known after apply)
+       org_name = "gsa-tts-oros-fac"
+       quota    = (known after apply)
    }

  # module.production.module.file_scanner_clamav.cloudfoundry_app.clamav_api will be created
+   resource "cloudfoundry_app" "clamav_api" {
+       buildpack                       = (known after apply)
+       disk_quota                      = 2048
+       docker_image                    = "ghcr.io/gsa-tts/fac/clamav@sha256:a6b645538b565528a5dba563be597d5d7c8fe162a4924b14048d50d117450cf8"
+       enable_ssh                      = (known after apply)
+       environment                     = (sensitive value)
+       health_check_http_endpoint      = (known after apply)
+       health_check_invocation_timeout = (known after apply)
+       health_check_timeout            = (known after apply)
+       health_check_type               = "port"
+       id                              = (known after apply)
+       id_bg                           = (known after apply)
+       instances                       = 8
+       memory                          = 3072
+       name                            = "fac-av-production-fs"
+       ports                           = (known after apply)
+       space                           = (known after apply)
+       stack                           = (known after apply)
+       stopped                         = false
+       strategy                        = "rolling"
+       timeout                         = 600

+       routes {
+           port  = (known after apply)
+           route = (known after apply)
        }
    }

  # module.production.module.file_scanner_clamav.cloudfoundry_network_policy.clamav_routing will be created
+   resource "cloudfoundry_network_policy" "clamav_routing" {
+       id = (known after apply)

+       policy {
+           destination_app = (known after apply)
+           port            = "61443"
+           protocol        = "tcp"
+           source_app      = (known after apply)
        }
    }

  # module.production.module.file_scanner_clamav.cloudfoundry_route.clamav_route will be created
+   resource "cloudfoundry_route" "clamav_route" {
+       domain   = (known after apply)
+       endpoint = (known after apply)
+       hostname = "fac-av-production-fs"
+       id       = (known after apply)
+       port     = (known after apply)
+       space    = (known after apply)
    }

  # module.production.module.fac-file-scanner.module.quarantine.cloudfoundry_service_instance.bucket will be created
+   resource "cloudfoundry_service_instance" "bucket" {
+       id                             = (known after apply)
+       name                           = "fac-file-scanner-quarantine"
+       replace_on_params_change       = false
+       replace_on_service_plan_change = false
+       service_plan                   = "021bb2a3-7e11-4fc2-b06b-d9f5938cd806"
+       space                          = "5593dba8-7023-49a5-bdbe-e809fe23edf9"
+       tags                           = [
+           "s3",
        ]
    }

Plan: 8 to add, 1 to change, 0 to destroy.

Warning: Argument is deprecated

  with module.domain.cloudfoundry_service_instance.external_domain_instance,
  on /tmp/terraform-data-dir/modules/domain/domain/main.tf line 45, in resource "cloudfoundry_service_instance" "external_domain_instance":
  45:   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 5 more similar warnings elsewhere)

📝 Plan generated in Pull Request Checks #3003

Copy link
Contributor

github-actions bot commented May 14, 2024

Terraform plan for staging

Plan: 0 to add, 1 to change, 0 to destroy.
Terraform used the selected providers to generate the following execution
plan. Resource actions are indicated with the following symbols:
!~  update in-place

Terraform will perform the following actions:

  # module.staging.cloudfoundry_app.postgrest will be updated in-place
!~  resource "cloudfoundry_app" "postgrest" {
!~      docker_image                    = "ghcr.io/gsa-tts/fac/postgrest@sha256:58a897e8349f3b6a13810ae87751295841f7da1ce68e5f12a18948538fa49837" -> "ghcr.io/gsa-tts/fac/postgrest@sha256:4b903ac223ea5f583bd870a328a3cf54d19267e5b5abfff896863b37f7cb68b6"
        id                              = "db50e549-24c7-4dcf-b30e-e9dee3512be8"
        name                            = "postgrest"
#        (17 unchanged attributes hidden)

#        (1 unchanged block hidden)
    }

Plan: 0 to add, 1 to change, 0 to destroy.

Warning: Argument is deprecated

  with module.staging.module.cg-logshipper.module.s3-logshipper-storage.cloudfoundry_service_instance.bucket,
  on /tmp/terraform-data-dir/modules/staging.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 4 more similar warnings elsewhere)

✅ Plan applied in Deploy to Staging Environment #214

Copy link
Contributor

File Coverage Missing
All files 88%
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 109-116
audit/intake_to_dissemination.py 88% 57-62 264 308-316
audit/mixins.py 96% 27
audit/test_commands.py 91%
audit/test_intakelib.py 88% 154-158
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 95% 439 443 611-612 851 858 865 872 1117-1118 1149-1150 1175-1180
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 86% 9 19 60-62 65
audit/validators.py 93% 138 190 272 412-413 428-429 512-513 615-619 624-628 644-653
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 77
audit/cross_validation/naming.py 93% 229
audit/cross_validation/submission_progress_check.py 91% 83 126 174 182-183
audit/cross_validation/tribal_data_sharing_consent.py 81% 33 36 40
audit/cross_validation/validate_general_information.py 65% 77 81-84 96 99
audit/fixtures/single_audit_checklist.py 55% 147-184 230-239
audit/intakelib/exceptions.py 71% 7-9 12
audit/intakelib/intermediate_representation.py 91% 27-28 73 91 129 200-203 212-213 283-284
audit/intakelib/mapping_audit_findings.py 97% 55
audit/intakelib/mapping_audit_findings_text.py 97% 54
audit/intakelib/mapping_federal_awards.py 93% 92
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_finding_reference_pattern.py 73% 31 41-42
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 88% 21
audit/intakelib/checks/check_other_cluster_names.py 81% 23 33
audit/intakelib/checks/check_passthrough_name_when_no_direct.py 83% 11 49 58
audit/intakelib/checks/check_sequential_award_numbers.py 82% 25 35
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% 30 40-41
audit/intakelib/checks/runners.py 97% 157
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 96% 182-183
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 257 268-269 280-281 283-287 329-342 345-359 364-377 394-400 405-425 452-456 461-490 533-537 542-562 589-593 598-627 670-674 679-691 694-704 709-721 754-768
census_historical_migration/change_record.py 98% 30
census_historical_migration/test_federal_awards_xforms.py 99% 214-215
census_historical_migration/sac_general_lib/audit_information.py 92% 24 78
census_historical_migration/sac_general_lib/cognizant_oversight.py 68% 11
census_historical_migration/sac_general_lib/general_information.py 91% 166-167 177-178 186-187 195-200 250 319
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_remove_hyphen_and_pad_zip.py 92% 18
census_historical_migration/transforms/xform_retrieve_uei.py 67% 10
census_historical_migration/transforms/xform_string_to_bool.py 87% 17
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 83% 47-49 91-108
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 76% 129-132 364 405-413 423-448 676-777
census_historical_migration/workbooklib/findings.py 46% 64-69 137-157 162-182 199-201 208-230
census_historical_migration/workbooklib/findings_text.py 83% 47-48 90-108
census_historical_migration/workbooklib/notes_to_sefa.py 61% 34-38 101-102 104-105 107-108 135-141 149-157 165-167 231-273
census_historical_migration/workbooklib/secondary_auditors.py 90% 128-130 162-180
config/error_handlers.py 94% 22
config/test_settings.py 92% 33-34 49-50
config/urls.py 72% 88
dissemination/file_downloads.py 81% 43-61 91-93
dissemination/forms.py 87% 135 144 255
dissemination/search.py 61% 101 108 110 113-121
dissemination/summary_reports.py 78% 274 300-302 306-310 421 438 459 511-575 603 638-640 664-672
dissemination/test_search.py 93% 51-66 473-474 579-596 608-632 644-669 677-693
dissemination/test_summary_reports.py 98%
dissemination/views.py 76% 134 140-142 159-223 266 296 298 332 383 385 387 465-470
dissemination/migrations/0002_general_fac_accepted_date.py 47% 10-12
dissemination/searchlib/search_alns.py 37% 44-58 78-110 115-177 184-187
dissemination/searchlib/search_direct_funding.py 86% 21-22
dissemination/searchlib/search_findings.py 76% 18-24 34 36 38
dissemination/searchlib/search_general.py 96% 138
dissemination/searchlib/search_passthrough_name.py 35% 21-31
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/test_views.py 98% 796
report_submission/views.py 77% 90 235 259-260 265-266 306-476 479-489 548 584-586 594-595 598-600
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 81% 23 147-148 237-238 317-318
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 3b115e1

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
autogenerated Automated pull request creation automerge Used for automated deployments
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants