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

20240516 main -> staging (fac-file-scanner rebuild) #3850

Merged
merged 1 commit into from
May 16, 2024
Merged

20240516 main -> staging (fac-file-scanner rebuild) #3850

merged 1 commit into from
May 16, 2024

Conversation

asteel-gsa
Copy link
Contributor

@asteel-gsa asteel-gsa commented May 16, 2024

This PR is the PR that modifies the fac-av-${environement}-fs to limit its instances and is the rebuild of fac-file-scanner.

This PR should be a "merge" commit, not a "squash"

Copy link
Contributor

github-actions bot commented May 16, 2024

Terraform plan for production

Plan: 4 to add, 3 to change, 2 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
-/+ destroy and then create replacement
 <= read (data resources)

Terraform will perform the following actions:

  # module.production.cloudfoundry_network_policy.scanner-network-policy will be updated in-place
!~  resource "cloudfoundry_network_policy" "scanner-network-policy" {
        id = "65fbd285-0a4b-cfbe-3445-d40cc279c621"

+       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 = "593e554d-fab4-4dc0-bf84-f4f9c39b5620"
        }
+       service_binding {
+           service_instance = "ac8bf271-4c6d-4ee0-bd36-1415b839a93c"
        }
+       service_binding {
+           service_instance = "ca564d14-b89a-4944-a43f-033dca62ab30"
        }
+       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.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 must be replaced
-/+ resource "cloudfoundry_app" "clamav_api" {
+       buildpack                       = (known after apply)
!~      enable_ssh                      = true -> (known after apply)
+       health_check_http_endpoint      = (known after apply)
!~      health_check_invocation_timeout = 0 -> (known after apply)
!~      health_check_timeout            = 0 -> (known after apply)
!~      id                              = "************************************" -> (known after apply)
!~      id_bg                           = "************************************" -> (known after apply)
!~      instances                       = 2 -> 4
-       labels                          = {} -> null
        name                            = "fac-av-production-fs"
!~      ports                           = [] -> (known after apply)
!~      space                           = "5593dba8-7023-49a5-bdbe-e809fe23edf9" # forces replacement -> (known after apply) # forces replacement
+       stack                           = (known after apply)
#        (8 unchanged attributes hidden)

-       routes {
-           port  = 0 -> null
-           route = "3d584a52-c592-4879-8de9-11198d2f625d" -> null
        }
+       routes {
+           port  = (known after apply)
+           route = (known after apply)
        }
    }

  # module.production.module.file_scanner_clamav.cloudfoundry_network_policy.clamav_routing will be updated in-place
!~  resource "cloudfoundry_network_policy" "clamav_routing" {
        id = "22404581-6620-4dc7-9fbb-207db75b10be"

+       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 must be replaced
-/+ resource "cloudfoundry_route" "clamav_route" {
!~      domain   = "26df58ef-0c0d-4997-b68b-8defb7b3998b" # forces replacement -> (known after apply) # forces replacement
!~      endpoint = "fac-av-production-fs.apps.internal" -> (known after apply)
!~      id       = "************************************" -> (known after apply)
+       port     = (known after apply)
!~      space    = "5593dba8-7023-49a5-bdbe-e809fe23edf9" # forces replacement -> (known after apply) # forces replacement
#        (2 unchanged attributes hidden)
    }

  # module.production.module.https-proxy.cloudfoundry_app.egress_app will be updated in-place
!~  resource "cloudfoundry_app" "egress_app" {
        id                              = "5e81ca8b-99cf-41f8-ae42-76652d51a44c"
        name                            = "https-proxy"
!~      source_code_hash                = "48b2f5eba8d1f35c0fbc2f90c2ec87cab180f5f19e7e34b16b9190fe5c5ca09a" -> "e246274fca627d48afccde010de949371f24b6c9974c48aa91044acd36654fa8"
#        (21 unchanged attributes hidden)

#        (1 unchanged block hidden)
    }

Plan: 4 to add, 3 to change, 2 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 applied in Deploy to Production Environment #89

Copy link
Contributor

github-actions bot commented May 16, 2024

Terraform plan for staging

Plan: 4 to add, 2 to change, 2 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
-/+ destroy and then create replacement
 <= read (data resources)

Terraform will perform the following actions:

  # module.staging.cloudfoundry_network_policy.scanner-network-policy will be updated in-place
!~  resource "cloudfoundry_network_policy" "scanner-network-policy" {
        id = "8be715dc-7035-f013-29a4-8233469c292a"

+       policy {
+           destination_app = "1c9e7877-3c69-4fe5-8541-7bca3f845eb1"
+           port            = "61443"
+           protocol        = "tcp"
+           source_app      = (known after apply)
        }
    }

  # module.staging.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                           = "7bbe587a-e8ee-4e8c-b32f-86d0b0f1b807"
+       stack                           = (known after apply)
+       stopped                         = false
+       strategy                        = "rolling"
+       timeout                         = 180

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

+       service_binding {
+           service_instance = "ca75ab8e-2d85-438f-b657-84a1ef4216e5"
        }
+       service_binding {
+           service_instance = "f43724f8-a94f-4ee9-9234-72aac309afad"
        }
+       service_binding {
+           service_instance = "b4cf43f9-7ada-4c21-9d16-b340672e50ae"
        }
+       service_binding {
+           service_instance = "0f3f00c6-509d-4851-bfa0-df869c2b8321"
        }
    }

  # module.staging.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-staging"
+       id       = (known after apply)
+       port     = (known after apply)
+       space    = "7bbe587a-e8ee-4e8c-b32f-86d0b0f1b807"
    }

  # module.staging.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.staging.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.staging.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     = "staging"
+       org      = (known after apply)
+       org_name = "gsa-tts-oros-fac"
+       quota    = (known after apply)
    }

  # module.staging.module.file_scanner_clamav.cloudfoundry_app.clamav_api must be replaced
-/+ resource "cloudfoundry_app" "clamav_api" {
+       buildpack                       = (known after apply)
!~      enable_ssh                      = true -> (known after apply)
+       health_check_http_endpoint      = (known after apply)
!~      health_check_invocation_timeout = 0 -> (known after apply)
!~      health_check_timeout            = 0 -> (known after apply)
!~      id                              = "************************************" -> (known after apply)
!~      id_bg                           = "************************************" -> (known after apply)
-       labels                          = {} -> null
        name                            = "fac-av-staging-fs"
!~      ports                           = [] -> (known after apply)
!~      space                           = "7bbe587a-e8ee-4e8c-b32f-86d0b0f1b807" # forces replacement -> (known after apply) # forces replacement
+       stack                           = (known after apply)
#        (9 unchanged attributes hidden)

-       routes {
-           port  = 0 -> null
-           route = "d76ca78e-b31c-49ac-bac8-d0151c44ed82" -> null
        }
+       routes {
+           port  = (known after apply)
+           route = (known after apply)
        }
    }

  # module.staging.module.file_scanner_clamav.cloudfoundry_network_policy.clamav_routing will be updated in-place
!~  resource "cloudfoundry_network_policy" "clamav_routing" {
        id = "a79420b0-0919-281d-cee8-8818ccf9dede"

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

  # module.staging.module.file_scanner_clamav.cloudfoundry_route.clamav_route must be replaced
-/+ resource "cloudfoundry_route" "clamav_route" {
!~      domain   = "26df58ef-0c0d-4997-b68b-8defb7b3998b" # forces replacement -> (known after apply) # forces replacement
!~      endpoint = "fac-av-staging-fs.apps.internal" -> (known after apply)
!~      id       = "************************************" -> (known after apply)
+       port     = (known after apply)
!~      space    = "7bbe587a-e8ee-4e8c-b32f-86d0b0f1b807" # forces replacement -> (known after apply) # forces replacement
#        (2 unchanged attributes hidden)
    }

Plan: 4 to add, 2 to change, 2 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 #217

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 89% 117 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 47% 75-80 148-168 173-193 210-212 219-241
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 b4b111f

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

2 participants