Skip to content

FACT-2610 Counter service#303

Open
Ibrahimelsanosi-moj wants to merge 9 commits into
masterfrom
FACT-2610-counter-service
Open

FACT-2610 Counter service#303
Ibrahimelsanosi-moj wants to merge 9 commits into
masterfrom
FACT-2610-counter-service

Conversation

@Ibrahimelsanosi-moj

Copy link
Copy Markdown
Contributor

JIRA link

https://tools.hmcts.net/jira/browse/FACT-2610

Change description

Implement Counter service - admin for new FaCT

Does this PR require manual testing? (check one with "x")

[ x] Yes
[ ] No

Does this PR introduce a breaking change? (check one with "x")

[ ] Yes
[x ] No

@hmcts-jenkins-d-to-i

Copy link
Copy Markdown
Contributor

Plan Result (aat)

⚠️ Resource Deletion will happen

This plan contains resource delete operation. Please check the plan result very carefully!

Plan: 8 to add, 7 to change, 8 to destroy.
  • Update
    • azurerm_key_vault_secret.flexible_secret["DATABASE"]
    • azurerm_key_vault_secret.flexible_secret["HOST"]
    • azurerm_key_vault_secret.flexible_secret["PASS"]
    • azurerm_key_vault_secret.flexible_secret["PORT"]
    • azurerm_key_vault_secret.flexible_secret["USER"]
    • azurerm_key_vault_secret.storage_account_connection_string_secret
    • module.storage_account.azurerm_storage_account.storage_account
  • Replace
    • module.postgresql.azurerm_postgresql_flexible_server.pgsql_server
    • module.postgresql.azurerm_postgresql_flexible_server_active_directory_administrator.pgsql_adadmin
    • module.postgresql.azurerm_postgresql_flexible_server_active_directory_administrator.pgsql_principal_admin[0]
    • module.postgresql.azurerm_postgresql_flexible_server_configuration.pgsql_server_config["azure.extensions"]
    • module.postgresql.azurerm_postgresql_flexible_server_configuration.pgsql_server_config["backslash_quote"]
    • module.postgresql.azurerm_postgresql_flexible_server_database.pg_databases["fact"]
    • module.postgresql.azurerm_resource_group.rg[0]
    • module.postgresql.null_resource.set-user-permissions-additionaldbs["fact"]
Change Result (Click me)
  # azurerm_key_vault_secret.flexible_secret["DATABASE"] will be updated in-place
  ~ resource "azurerm_key_vault_secret" "flexible_secret" {
      ~ expiration_date         = "2028-07-02T11:34:28Z" -> (known after apply)
        id                      = "https://fact-kv-aat.vault.azure.net/secrets/data-api-POSTGRES-DATABASE/5fe9e2f3706c40d297eb73056f798184"
        name                    = "data-api-POSTGRES-DATABASE"
        tags                    = {
            "application"         = "find-a-court-or-tribunal"
            "autoShutdown"        = "true"
            "builtFrom"           = "https://github.com/HMCTS/fact-data-api.git"
            "businessArea"        = "CFT"
            "contactSlackChannel" = "#fact-tech"
            "environment"         = "staging"
            "managedBy"           = "Find a Court or Tribunal"
            "source"              = "data-api PostgreSQL"
        }
        # (10 unchanged attributes hidden)
    }

  # azurerm_key_vault_secret.flexible_secret["HOST"] will be updated in-place
  ~ resource "azurerm_key_vault_secret" "flexible_secret" {
      ~ expiration_date         = "2028-07-02T11:34:28Z" -> (known after apply)
        id                      = "https://fact-kv-aat.vault.azure.net/secrets/data-api-POSTGRES-HOST/c5c6dacb4d9b4429a72caa0aed542da6"
        name                    = "data-api-POSTGRES-HOST"
        tags                    = {
            "application"         = "find-a-court-or-tribunal"
            "autoShutdown"        = "true"
            "builtFrom"           = "https://github.com/HMCTS/fact-data-api.git"
            "businessArea"        = "CFT"
            "contactSlackChannel" = "#fact-tech"
            "environment"         = "staging"
            "managedBy"           = "Find a Court or Tribunal"
            "source"              = "data-api PostgreSQL"
        }
      ~ value                   = (sensitive value)
        # (9 unchanged attributes hidden)
    }

  # azurerm_key_vault_secret.flexible_secret["PASS"] will be updated in-place
  ~ resource "azurerm_key_vault_secret" "flexible_secret" {
      ~ expiration_date         = "2028-07-02T11:34:28Z" -> (known after apply)
        id                      = "https://fact-kv-aat.vault.azure.net/secrets/data-api-POSTGRES-PASS/aed26a9687194780be5cf3f08196d86c"
        name                    = "data-api-POSTGRES-PASS"
        tags                    = {
            "application"         = "find-a-court-or-tribunal"
            "autoShutdown"        = "true"
            "builtFrom"           = "https://github.com/HMCTS/fact-data-api.git"
            "businessArea"        = "CFT"
            "contactSlackChannel" = "#fact-tech"
            "environment"         = "staging"
            "managedBy"           = "Find a Court or Tribunal"
            "source"              = "data-api PostgreSQL"
        }
        # (10 unchanged attributes hidden)
    }

  # azurerm_key_vault_secret.flexible_secret["PORT"] will be updated in-place
  ~ resource "azurerm_key_vault_secret" "flexible_secret" {
      ~ expiration_date         = "2028-07-02T11:34:28Z" -> (known after apply)
        id                      = "https://fact-kv-aat.vault.azure.net/secrets/data-api-POSTGRES-PORT/b8d1610eb73e42dc86d2a0ed02f00e3c"
        name                    = "data-api-POSTGRES-PORT"
        tags                    = {
            "application"         = "find-a-court-or-tribunal"
            "autoShutdown"        = "true"
            "builtFrom"           = "https://github.com/HMCTS/fact-data-api.git"
            "businessArea"        = "CFT"
            "contactSlackChannel" = "#fact-tech"
            "environment"         = "staging"
            "managedBy"           = "Find a Court or Tribunal"
            "source"              = "data-api PostgreSQL"
        }
        # (10 unchanged attributes hidden)
    }

  # azurerm_key_vault_secret.flexible_secret["USER"] will be updated in-place
  ~ resource "azurerm_key_vault_secret" "flexible_secret" {
      ~ expiration_date         = "2028-07-02T11:34:28Z" -> (known after apply)
        id                      = "https://fact-kv-aat.vault.azure.net/secrets/data-api-POSTGRES-USER/3e468586372249df91306e52cd96a673"
        name                    = "data-api-POSTGRES-USER"
        tags                    = {
            "application"         = "find-a-court-or-tribunal"
            "autoShutdown"        = "true"
            "builtFrom"           = "https://github.com/HMCTS/fact-data-api.git"
            "businessArea"        = "CFT"
            "contactSlackChannel" = "#fact-tech"
            "environment"         = "staging"
            "managedBy"           = "Find a Court or Tribunal"
            "source"              = "data-api PostgreSQL"
        }
        # (10 unchanged attributes hidden)
    }

  # azurerm_key_vault_secret.storage_account_connection_string_secret will be updated in-place
  ~ resource "azurerm_key_vault_secret" "storage_account_connection_string_secret" {
      ~ expiration_date         = "2028-07-02T11:34:39Z" -> (known after apply)
        id                      = "https://fact-kv-aat.vault.azure.net/secrets/storage-account-connection-string/7d71c9e3ea714f98839ec081591976e0"
        name                    = "storage-account-connection-string"
        tags                    = {
            "application"         = "find-a-court-or-tribunal"
            "autoShutdown"        = "true"
            "builtFrom"           = "https://github.com/HMCTS/fact-data-api.git"
            "businessArea"        = "CFT"
            "contactSlackChannel" = "#fact-tech"
            "environment"         = "staging"
            "managedBy"           = "Find a Court or Tribunal"
            "source"              = "data-api Storage account"
        }
        # (10 unchanged attributes hidden)
    }

  # module.postgresql.azurerm_postgresql_flexible_server.pgsql_server must be replaced
+/- resource "azurerm_postgresql_flexible_server" "pgsql_server" {
      - administrator_password_wo_version = 0 -> null
      ~ fqdn                              = "fact-data-api-pg17-aat.postgres.database.azure.com" -> (known after apply)
      ~ id                                = "/subscriptions/1c4f0704-a29e-403d-b719-b90c34ef14c9/resourceGroups/fact-data-api-pg17-data-aat/providers/Microsoft.DBforPostgreSQL/flexibleServers/fact-data-api-pg17-aat" -> (known after apply)
      ~ name                              = "fact-data-api-pg17-aat" -> "fact-data-api-aat" # forces replacement
      ~ resource_group_name               = "fact-data-api-pg17-data-aat" -> "fact-data-api-data-aat" # forces replacement
      ~ storage_tier                      = "P6" -> (known after apply)
        tags                              = {
            "application"         = "find-a-court-or-tribunal"
            "autoShutdown"        = "true"
            "builtFrom"           = "https://github.com/HMCTS/fact-data-api.git"
            "businessArea"        = "CFT"
            "contactSlackChannel" = "#fact-tech"
            "environment"         = "staging"
            "managedBy"           = "Find a Court or Tribunal"
        }
      ~ version                           = "17" -> "16" # forces replacement
      - zone                              = "1" -> null
        # (16 unchanged attributes hidden)

      ~ high_availability {
          - standby_availability_zone = "2" -> null
            # (1 unchanged attribute hidden)
        }

        # (2 unchanged blocks hidden)
    }

  # module.postgresql.azurerm_postgresql_flexible_server_active_directory_administrator.pgsql_adadmin must be replaced
-/+ resource "azurerm_postgresql_flexible_server_active_directory_administrator" "pgsql_adadmin" {
      ~ id                  = "/subscriptions/1c4f0704-a29e-403d-b719-b90c34ef14c9/resourceGroups/fact-data-api-pg17-data-aat/providers/Microsoft.DBforPostgreSQL/flexibleServers/fact-data-api-pg17-aat/administrators/3c52c98b-07a3-4a97-92b9-298e86bb1ca9" -> (known after apply)
      ~ resource_group_name = "fact-data-api-pg17-data-aat" -> "fact-data-api-data-aat" # forces replacement
      ~ server_name         = "fact-data-api-pg17-aat" -> "fact-data-api-aat" # forces replacement
        # (4 unchanged attributes hidden)
    }

  # module.postgresql.azurerm_postgresql_flexible_server_active_directory_administrator.pgsql_principal_admin[0] must be replaced
-/+ resource "azurerm_postgresql_flexible_server_active_directory_administrator" "pgsql_principal_admin" {
      ~ id                  = "/subscriptions/1c4f0704-a29e-403d-b719-b90c34ef14c9/resourceGroups/fact-data-api-pg17-data-aat/providers/Microsoft.DBforPostgreSQL/flexibleServers/fact-data-api-pg17-aat/administrators/ca6d5085-485a-417d-8480-c3cefa29df31" -> (known after apply)
      ~ resource_group_name = "fact-data-api-pg17-data-aat" -> "fact-data-api-data-aat" # forces replacement
      ~ server_name         = "fact-data-api-pg17-aat" -> "fact-data-api-aat" # forces replacement
        # (4 unchanged attributes hidden)
    }

  # module.postgresql.azurerm_postgresql_flexible_server_configuration.pgsql_server_config["azure.extensions"] must be replaced
-/+ resource "azurerm_postgresql_flexible_server_configuration" "pgsql_server_config" {
      ~ id        = "/subscriptions/1c4f0704-a29e-403d-b719-b90c34ef14c9/resourceGroups/fact-data-api-pg17-data-aat/providers/Microsoft.DBforPostgreSQL/flexibleServers/fact-data-api-pg17-aat/configurations/azure.extensions" -> (known after apply)
        name      = "azure.extensions"
      ~ server_id = "/subscriptions/1c4f0704-a29e-403d-b719-b90c34ef14c9/resourceGroups/fact-data-api-pg17-data-aat/providers/Microsoft.DBforPostgreSQL/flexibleServers/fact-data-api-pg17-aat" -> (known after apply) # forces replacement
        # (1 unchanged attribute hidden)
    }

  # module.postgresql.azurerm_postgresql_flexible_server_configuration.pgsql_server_config["backslash_quote"] must be replaced
-/+ resource "azurerm_postgresql_flexible_server_configuration" "pgsql_server_config" {
      ~ id        = "/subscriptions/1c4f0704-a29e-403d-b719-b90c34ef14c9/resourceGroups/fact-data-api-pg17-data-aat/providers/Microsoft.DBforPostgreSQL/flexibleServers/fact-data-api-pg17-aat/configurations/backslash_quote" -> (known after apply)
        name      = "backslash_quote"
      ~ server_id = "/subscriptions/1c4f0704-a29e-403d-b719-b90c34ef14c9/resourceGroups/fact-data-api-pg17-data-aat/providers/Microsoft.DBforPostgreSQL/flexibleServers/fact-data-api-pg17-aat" -> (known after apply) # forces replacement
        # (1 unchanged attribute hidden)
    }

  # module.postgresql.azurerm_postgresql_flexible_server_database.pg_databases["fact"] must be replaced
-/+ resource "azurerm_postgresql_flexible_server_database" "pg_databases" {
      ~ charset   = "UTF8" -> "utf8"
      ~ id        = "/subscriptions/1c4f0704-a29e-403d-b719-b90c34ef14c9/resourceGroups/fact-data-api-pg17-data-aat/providers/Microsoft.DBforPostgreSQL/flexibleServers/fact-data-api-pg17-aat/databases/fact" -> (known after apply)
        name      = "fact"
      ~ server_id = "/subscriptions/1c4f0704-a29e-403d-b719-b90c34ef14c9/resourceGroups/fact-data-api-pg17-data-aat/providers/Microsoft.DBforPostgreSQL/flexibleServers/fact-data-api-pg17-aat" -> (known after apply) # forces replacement
        # (1 unchanged attribute hidden)
    }

  # module.postgresql.azurerm_resource_group.rg[0] must be replaced
+/- resource "azurerm_resource_group" "rg" {
      ~ id         = "/subscriptions/1c4f0704-a29e-403d-b719-b90c34ef14c9/resourceGroups/fact-data-api-pg17-data-aat" -> (known after apply)
      ~ name       = "fact-data-api-pg17-data-aat" -> "fact-data-api-data-aat" # forces replacement
        tags       = {
            "application"         = "find-a-court-or-tribunal"
            "autoShutdown"        = "true"
            "builtFrom"           = "https://github.com/HMCTS/fact-data-api.git"
            "businessArea"        = "CFT"
            "contactSlackChannel" = "#fact-tech"
            "environment"         = "staging"
            "managedBy"           = "Find a Court or Tribunal"
        }
        # (2 unchanged attributes hidden)
    }

  # module.postgresql.null_resource.set-user-permissions-additionaldbs["fact"] must be replaced
-/+ resource "null_resource" "set-user-permissions-additionaldbs" {
      ~ id       = "7924597161941004772" -> (known after apply)
      ~ triggers = { # forces replacement
          ~ "force_trigger"     = "1" -> null
          ~ "name"              = "fact-data-api-pg17" -> "fact-data-api"
            # (3 unchanged elements hidden)
        }
    }

  # module.storage_account.azurerm_storage_account.storage_account will be updated in-place
  ~ resource "azurerm_storage_account" "storage_account" {
        id                                 = "/subscriptions/1c4f0704-a29e-403d-b719-b90c34ef14c9/resourceGroups/fact-aat/providers/Microsoft.Storage/storageAccounts/factsaaat"
        name                               = "factsaaat"
        tags                               = {
            "application"         = "find-a-court-or-tribunal"
            "autoShutdown"        = "true"
            "builtFrom"           = "https://github.com/HMCTS/fact-data-api.git"
            "businessArea"        = "CFT"
            "contactSlackChannel" = "#fact-tech"
            "environment"         = "staging"
            "managedBy"           = "Find a Court or Tribunal"
        }
        # (97 unchanged attributes hidden)

      + network_rules {
          + bypass         = [
              + "AzureServices",
            ]
          + default_action = "Allow"
        }

        # (3 unchanged blocks hidden)
    }

Plan: 8 to add, 7 to change, 8 to destroy.

@hmcts-jenkins-d-to-i

Copy link
Copy Markdown
Contributor

Plan Result (prod)

⚠️ Resource Deletion will happen

This plan contains resource delete operation. Please check the plan result very carefully!

Plan: 8 to add, 7 to change, 8 to destroy.
  • Update
    • azurerm_key_vault_secret.flexible_secret["DATABASE"]
    • azurerm_key_vault_secret.flexible_secret["HOST"]
    • azurerm_key_vault_secret.flexible_secret["PASS"]
    • azurerm_key_vault_secret.flexible_secret["PORT"]
    • azurerm_key_vault_secret.flexible_secret["USER"]
    • azurerm_key_vault_secret.storage_account_connection_string_secret
    • module.storage_account.azurerm_storage_account.storage_account
  • Replace
    • module.postgresql.azurerm_postgresql_flexible_server.pgsql_server
    • module.postgresql.azurerm_postgresql_flexible_server_active_directory_administrator.pgsql_adadmin
    • module.postgresql.azurerm_postgresql_flexible_server_active_directory_administrator.pgsql_principal_admin[0]
    • module.postgresql.azurerm_postgresql_flexible_server_configuration.pgsql_server_config["azure.extensions"]
    • module.postgresql.azurerm_postgresql_flexible_server_configuration.pgsql_server_config["backslash_quote"]
    • module.postgresql.azurerm_postgresql_flexible_server_database.pg_databases["fact"]
    • module.postgresql.azurerm_resource_group.rg[0]
    • module.postgresql.null_resource.set-user-permissions-additionaldbs["fact"]
Change Result (Click me)
  # azurerm_key_vault_secret.flexible_secret["DATABASE"] will be updated in-place
  ~ resource "azurerm_key_vault_secret" "flexible_secret" {
      ~ expiration_date         = "2028-07-02T11:39:19Z" -> (known after apply)
        id                      = "https://fact-kv-prod.vault.azure.net/secrets/data-api-POSTGRES-DATABASE/ec9975470c1e40ebabb2f307dd746100"
        name                    = "data-api-POSTGRES-DATABASE"
        tags                    = {
            "application"         = "find-a-court-or-tribunal"
            "builtFrom"           = "https://github.com/HMCTS/fact-data-api.git"
            "businessArea"        = "CFT"
            "contactSlackChannel" = "#fact-tech"
            "environment"         = "production"
            "managedBy"           = "Find a Court or Tribunal"
            "source"              = "data-api PostgreSQL"
        }
        # (10 unchanged attributes hidden)
    }

  # azurerm_key_vault_secret.flexible_secret["HOST"] will be updated in-place
  ~ resource "azurerm_key_vault_secret" "flexible_secret" {
      ~ expiration_date         = "2028-07-02T11:39:19Z" -> (known after apply)
        id                      = "https://fact-kv-prod.vault.azure.net/secrets/data-api-POSTGRES-HOST/8a9989b8d8034113ad9b7fd8847ea79a"
        name                    = "data-api-POSTGRES-HOST"
        tags                    = {
            "application"         = "find-a-court-or-tribunal"
            "builtFrom"           = "https://github.com/HMCTS/fact-data-api.git"
            "businessArea"        = "CFT"
            "contactSlackChannel" = "#fact-tech"
            "environment"         = "production"
            "managedBy"           = "Find a Court or Tribunal"
            "source"              = "data-api PostgreSQL"
        }
      ~ value                   = (sensitive value)
        # (9 unchanged attributes hidden)
    }

  # azurerm_key_vault_secret.flexible_secret["PASS"] will be updated in-place
  ~ resource "azurerm_key_vault_secret" "flexible_secret" {
      ~ expiration_date         = "2028-07-02T11:39:19Z" -> (known after apply)
        id                      = "https://fact-kv-prod.vault.azure.net/secrets/data-api-POSTGRES-PASS/89227e22920440298440aff3f66fa154"
        name                    = "data-api-POSTGRES-PASS"
        tags                    = {
            "application"         = "find-a-court-or-tribunal"
            "builtFrom"           = "https://github.com/HMCTS/fact-data-api.git"
            "businessArea"        = "CFT"
            "contactSlackChannel" = "#fact-tech"
            "environment"         = "production"
            "managedBy"           = "Find a Court or Tribunal"
            "source"              = "data-api PostgreSQL"
        }
        # (10 unchanged attributes hidden)
    }

  # azurerm_key_vault_secret.flexible_secret["PORT"] will be updated in-place
  ~ resource "azurerm_key_vault_secret" "flexible_secret" {
      ~ expiration_date         = "2028-07-02T11:39:19Z" -> (known after apply)
        id                      = "https://fact-kv-prod.vault.azure.net/secrets/data-api-POSTGRES-PORT/0e66f4133fdf403b8c6dc817c22170ad"
        name                    = "data-api-POSTGRES-PORT"
        tags                    = {
            "application"         = "find-a-court-or-tribunal"
            "builtFrom"           = "https://github.com/HMCTS/fact-data-api.git"
            "businessArea"        = "CFT"
            "contactSlackChannel" = "#fact-tech"
            "environment"         = "production"
            "managedBy"           = "Find a Court or Tribunal"
            "source"              = "data-api PostgreSQL"
        }
        # (10 unchanged attributes hidden)
    }

  # azurerm_key_vault_secret.flexible_secret["USER"] will be updated in-place
  ~ resource "azurerm_key_vault_secret" "flexible_secret" {
      ~ expiration_date         = "2028-07-02T11:39:19Z" -> (known after apply)
        id                      = "https://fact-kv-prod.vault.azure.net/secrets/data-api-POSTGRES-USER/e780bebe95cf48f48548de704b7a7c88"
        name                    = "data-api-POSTGRES-USER"
        tags                    = {
            "application"         = "find-a-court-or-tribunal"
            "builtFrom"           = "https://github.com/HMCTS/fact-data-api.git"
            "businessArea"        = "CFT"
            "contactSlackChannel" = "#fact-tech"
            "environment"         = "production"
            "managedBy"           = "Find a Court or Tribunal"
            "source"              = "data-api PostgreSQL"
        }
        # (10 unchanged attributes hidden)
    }

  # azurerm_key_vault_secret.storage_account_connection_string_secret will be updated in-place
  ~ resource "azurerm_key_vault_secret" "storage_account_connection_string_secret" {
      ~ expiration_date         = "2028-07-02T11:39:29Z" -> (known after apply)
        id                      = "https://fact-kv-prod.vault.azure.net/secrets/storage-account-connection-string/37e75af7af4543edb662288800101f2b"
        name                    = "storage-account-connection-string"
        tags                    = {
            "application"         = "find-a-court-or-tribunal"
            "builtFrom"           = "https://github.com/HMCTS/fact-data-api.git"
            "businessArea"        = "CFT"
            "contactSlackChannel" = "#fact-tech"
            "environment"         = "production"
            "managedBy"           = "Find a Court or Tribunal"
            "source"              = "data-api Storage account"
        }
        # (10 unchanged attributes hidden)
    }

  # module.postgresql.azurerm_postgresql_flexible_server.pgsql_server must be replaced
+/- resource "azurerm_postgresql_flexible_server" "pgsql_server" {
      - administrator_password_wo_version = 0 -> null
      ~ fqdn                              = "fact-data-api-pg17-prod.postgres.database.azure.com" -> (known after apply)
      ~ id                                = "/subscriptions/8999dec3-0104-4a27-94ee-6588559729d1/resourceGroups/fact-data-api-pg17-data-prod/providers/Microsoft.DBforPostgreSQL/flexibleServers/fact-data-api-pg17-prod" -> (known after apply)
      ~ name                              = "fact-data-api-pg17-prod" -> "fact-data-api-prod" # forces replacement
      ~ resource_group_name               = "fact-data-api-pg17-data-prod" -> "fact-data-api-data-prod" # forces replacement
      ~ storage_tier                      = "P6" -> (known after apply)
        tags                              = {
            "application"         = "find-a-court-or-tribunal"
            "builtFrom"           = "https://github.com/HMCTS/fact-data-api.git"
            "businessArea"        = "CFT"
            "contactSlackChannel" = "#fact-tech"
            "environment"         = "production"
            "managedBy"           = "Find a Court or Tribunal"
        }
      ~ version                           = "17" -> "16" # forces replacement
      - zone                              = "1" -> null
        # (16 unchanged attributes hidden)

      ~ high_availability {
          - standby_availability_zone = "2" -> null
            # (1 unchanged attribute hidden)
        }

        # (2 unchanged blocks hidden)
    }

  # module.postgresql.azurerm_postgresql_flexible_server_active_directory_administrator.pgsql_adadmin must be replaced
-/+ resource "azurerm_postgresql_flexible_server_active_directory_administrator" "pgsql_adadmin" {
      ~ id                  = "/subscriptions/8999dec3-0104-4a27-94ee-6588559729d1/resourceGroups/fact-data-api-pg17-data-prod/providers/Microsoft.DBforPostgreSQL/flexibleServers/fact-data-api-pg17-prod/administrators/ef17f368-0aa5-43d5-9264-28080f83755e" -> (known after apply)
      ~ resource_group_name = "fact-data-api-pg17-data-prod" -> "fact-data-api-data-prod" # forces replacement
      ~ server_name         = "fact-data-api-pg17-prod" -> "fact-data-api-prod" # forces replacement
        # (4 unchanged attributes hidden)
    }

  # module.postgresql.azurerm_postgresql_flexible_server_active_directory_administrator.pgsql_principal_admin[0] must be replaced
-/+ resource "azurerm_postgresql_flexible_server_active_directory_administrator" "pgsql_principal_admin" {
      ~ id                  = "/subscriptions/8999dec3-0104-4a27-94ee-6588559729d1/resourceGroups/fact-data-api-pg17-data-prod/providers/Microsoft.DBforPostgreSQL/flexibleServers/fact-data-api-pg17-prod/administrators/ca6d5085-485a-417d-8480-c3cefa29df31" -> (known after apply)
      ~ resource_group_name = "fact-data-api-pg17-data-prod" -> "fact-data-api-data-prod" # forces replacement
      ~ server_name         = "fact-data-api-pg17-prod" -> "fact-data-api-prod" # forces replacement
        # (4 unchanged attributes hidden)
    }

  # module.postgresql.azurerm_postgresql_flexible_server_configuration.pgsql_server_config["azure.extensions"] must be replaced
-/+ resource "azurerm_postgresql_flexible_server_configuration" "pgsql_server_config" {
      ~ id        = "/subscriptions/8999dec3-0104-4a27-94ee-6588559729d1/resourceGroups/fact-data-api-pg17-data-prod/providers/Microsoft.DBforPostgreSQL/flexibleServers/fact-data-api-pg17-prod/configurations/azure.extensions" -> (known after apply)
        name      = "azure.extensions"
      ~ server_id = "/subscriptions/8999dec3-0104-4a27-94ee-6588559729d1/resourceGroups/fact-data-api-pg17-data-prod/providers/Microsoft.DBforPostgreSQL/flexibleServers/fact-data-api-pg17-prod" -> (known after apply) # forces replacement
        # (1 unchanged attribute hidden)
    }

  # module.postgresql.azurerm_postgresql_flexible_server_configuration.pgsql_server_config["backslash_quote"] must be replaced
-/+ resource "azurerm_postgresql_flexible_server_configuration" "pgsql_server_config" {
      ~ id        = "/subscriptions/8999dec3-0104-4a27-94ee-6588559729d1/resourceGroups/fact-data-api-pg17-data-prod/providers/Microsoft.DBforPostgreSQL/flexibleServers/fact-data-api-pg17-prod/configurations/backslash_quote" -> (known after apply)
        name      = "backslash_quote"
      ~ server_id = "/subscriptions/8999dec3-0104-4a27-94ee-6588559729d1/resourceGroups/fact-data-api-pg17-data-prod/providers/Microsoft.DBforPostgreSQL/flexibleServers/fact-data-api-pg17-prod" -> (known after apply) # forces replacement
        # (1 unchanged attribute hidden)
    }

  # module.postgresql.azurerm_postgresql_flexible_server_database.pg_databases["fact"] must be replaced
-/+ resource "azurerm_postgresql_flexible_server_database" "pg_databases" {
      ~ charset   = "UTF8" -> "utf8"
      ~ id        = "/subscriptions/8999dec3-0104-4a27-94ee-6588559729d1/resourceGroups/fact-data-api-pg17-data-prod/providers/Microsoft.DBforPostgreSQL/flexibleServers/fact-data-api-pg17-prod/databases/fact" -> (known after apply)
        name      = "fact"
      ~ server_id = "/subscriptions/8999dec3-0104-4a27-94ee-6588559729d1/resourceGroups/fact-data-api-pg17-data-prod/providers/Microsoft.DBforPostgreSQL/flexibleServers/fact-data-api-pg17-prod" -> (known after apply) # forces replacement
        # (1 unchanged attribute hidden)
    }

  # module.postgresql.azurerm_resource_group.rg[0] must be replaced
+/- resource "azurerm_resource_group" "rg" {
      ~ id         = "/subscriptions/8999dec3-0104-4a27-94ee-6588559729d1/resourceGroups/fact-data-api-pg17-data-prod" -> (known after apply)
      ~ name       = "fact-data-api-pg17-data-prod" -> "fact-data-api-data-prod" # forces replacement
        tags       = {
            "application"         = "find-a-court-or-tribunal"
            "builtFrom"           = "https://github.com/HMCTS/fact-data-api.git"
            "businessArea"        = "CFT"
            "contactSlackChannel" = "#fact-tech"
            "environment"         = "production"
            "managedBy"           = "Find a Court or Tribunal"
        }
        # (2 unchanged attributes hidden)
    }

  # module.postgresql.null_resource.set-user-permissions-additionaldbs["fact"] must be replaced
-/+ resource "null_resource" "set-user-permissions-additionaldbs" {
      ~ id       = "9106484060669477926" -> (known after apply)
      ~ triggers = { # forces replacement
          ~ "force_trigger"     = "1" -> null
          ~ "name"              = "fact-data-api-pg17" -> "fact-data-api"
            # (3 unchanged elements hidden)
        }
    }

  # module.storage_account.azurerm_storage_account.storage_account will be updated in-place
  ~ resource "azurerm_storage_account" "storage_account" {
        id                                 = "/subscriptions/8999dec3-0104-4a27-94ee-6588559729d1/resourceGroups/fact-prod/providers/Microsoft.Storage/storageAccounts/factsaprod"
        name                               = "factsaprod"
        tags                               = {
            "application"         = "find-a-court-or-tribunal"
            "builtFrom"           = "https://github.com/HMCTS/fact-data-api.git"
            "businessArea"        = "CFT"
            "contactSlackChannel" = "#fact-tech"
            "environment"         = "production"
            "managedBy"           = "Find a Court or Tribunal"
        }
        # (97 unchanged attributes hidden)

      + network_rules {
          + bypass         = [
              + "AzureServices",
            ]
          + default_action = "Allow"
        }

        # (3 unchanged blocks hidden)
    }

Plan: 8 to add, 7 to change, 8 to destroy.

extends JpaRepository<CourtCounterServiceOpeningHours, UUID> {

Optional<CourtCounterServiceOpeningHours> findByCourtId(UUID courtId);
Optional<List<CourtCounterServiceOpeningHours>> findByCourtId(UUID courtId);

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

The standard contract for Spring Data is that list queries typically return List rather than Optional<List> as it can complicate semantics. In any case where there are no results JPA/Spring Data will alway return an empty list.

In our other repositories we either return a List<T> or a Page<T> when returning multiple results, so we should change this to conform.

when(courtCounterServiceOpeningHoursRepository.findByCourtIdAndId(courtId, counterServiceOpeningHours.getId()))
.thenReturn(Optional.empty());

assertThrows(

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

We have a few of these in the code, but if you want to get shot of the sonar warning, I think you just need to move the counterServiceOpeningHours.getId() call outside of the lambda. I think the complaint is that from a purist perspective, that could potentially throw an NPE.

}

@Test
void getCounterServiceOpeningHoursThrowsExceptionWhenNotFound() {

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Complete nitpick here, and might be wrong, but I think the naming convention in the file suggests that this method should be called getCounterServiceOpeningHoursByIdThrowsExceptionWhenNotFound

@sonarqubecloud

Copy link
Copy Markdown

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants