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

Add table azure_postgresql_server. Closes #63 #64

Merged
merged 8 commits into from
Apr 7, 2021
Merged

Add table azure_postgresql_server. Closes #63 #64

merged 8 commits into from
Apr 7, 2021

Conversation

Subhajit97
Copy link
Contributor

@Subhajit97 Subhajit97 commented Mar 26, 2021

Integration test logs

Logs
No env file present for the current environment:  staging 
 Falling back to .env config
No env file present for the current environment:  staging
customEnv TURBOT_TEST_EXPECTED_TIMEOUT 300

SETUP: tests/azure_postgresql_server []

PRETEST: tests/azure_postgresql_server

TEST: tests/azure_postgresql_server
Running terraform
data.azurerm_client_config.current: Refreshing state...
data.null_data_source.resource: Refreshing state...
azurerm_resource_group.named_test_resource: Creating...
azurerm_resource_group.named_test_resource: Creation complete after 2s [id=/subscriptions/********-****-****-****-************/resourceGroups/turbottest21885]
azurerm_postgresql_server.named_test_resource: Creating...
azurerm_postgresql_server.named_test_resource: Still creating... [10s elapsed]
azurerm_postgresql_server.named_test_resource: Still creating... [20s elapsed]
azurerm_postgresql_server.named_test_resource: Still creating... [30s elapsed]
azurerm_postgresql_server.named_test_resource: Still creating... [40s elapsed]
azurerm_postgresql_server.named_test_resource: Still creating... [50s elapsed]
azurerm_postgresql_server.named_test_resource: Still creating... [1m0s elapsed]
azurerm_postgresql_server.named_test_resource: Still creating... [1m10s elapsed]
azurerm_postgresql_server.named_test_resource: Still creating... [1m20s elapsed]
azurerm_postgresql_server.named_test_resource: Still creating... [1m30s elapsed]
azurerm_postgresql_server.named_test_resource: Still creating... [1m40s elapsed]
azurerm_postgresql_server.named_test_resource: Still creating... [1m50s elapsed]
azurerm_postgresql_server.named_test_resource: Still creating... [2m0s elapsed]
azurerm_postgresql_server.named_test_resource: Still creating... [2m10s elapsed]
azurerm_postgresql_server.named_test_resource: Still creating... [2m20s elapsed]
azurerm_postgresql_server.named_test_resource: Still creating... [2m30s elapsed]
azurerm_postgresql_server.named_test_resource: Still creating... [2m40s elapsed]
azurerm_postgresql_server.named_test_resource: Still creating... [2m50s elapsed]
azurerm_postgresql_server.named_test_resource: Still creating... [3m0s elapsed]
azurerm_postgresql_server.named_test_resource: Still creating... [3m10s elapsed]
azurerm_postgresql_server.named_test_resource: Creation complete after 3m12s [id=/subscriptions/********-****-****-****-************/resourceGroups/turbottest21885/providers/Microsoft.DBforPostgreSQL/servers/turbottest21885]
azurerm_postgresql_active_directory_administrator.named_test_resource: Creating...
azurerm_postgresql_configuration.named_test_resource: Creating...
azurerm_postgresql_firewall_rule.named_test_resource: Creating...
azurerm_postgresql_configuration.named_test_resource: Still creating... [10s elapsed]
azurerm_postgresql_active_directory_administrator.named_test_resource: Still creating... [10s elapsed]
azurerm_postgresql_firewall_rule.named_test_resource: Still creating... [10s elapsed]
azurerm_postgresql_configuration.named_test_resource: Creation complete after 19s [id=/subscriptions/********-****-****-****-************/resourceGroups/turbottest21885/providers/Microsoft.DBforPostgreSQL/servers/turbottest21885/configurations/log_checkpoints]
azurerm_postgresql_firewall_rule.named_test_resource: Still creating... [20s elapsed]
azurerm_postgresql_active_directory_administrator.named_test_resource: Still creating... [20s elapsed]
azurerm_postgresql_firewall_rule.named_test_resource: Creation complete after 20s [id=/subscriptions/********-****-****-****-************/resourceGroups/turbottest21885/providers/Microsoft.DBforPostgreSQL/servers/turbottest21885/firewallRules/turbottest21885]
azurerm_postgresql_active_directory_administrator.named_test_resource: Still creating... [30s elapsed]
azurerm_postgresql_active_directory_administrator.named_test_resource: Still creating... [40s elapsed]
azurerm_postgresql_active_directory_administrator.named_test_resource: Still creating... [50s elapsed]
azurerm_postgresql_active_directory_administrator.named_test_resource: Still creating... [1m0s elapsed]
azurerm_postgresql_active_directory_administrator.named_test_resource: Still creating... [1m10s elapsed]
azurerm_postgresql_active_directory_administrator.named_test_resource: Still creating... [1m20s elapsed]
azurerm_postgresql_active_directory_administrator.named_test_resource: Still creating... [1m30s elapsed]
azurerm_postgresql_active_directory_administrator.named_test_resource: Still creating... [1m40s elapsed]
azurerm_postgresql_active_directory_administrator.named_test_resource: Still creating... [1m50s elapsed]
azurerm_postgresql_active_directory_administrator.named_test_resource: Still creating... [2m0s elapsed]
azurerm_postgresql_active_directory_administrator.named_test_resource: Still creating... [2m10s elapsed]
azurerm_postgresql_active_directory_administrator.named_test_resource: Still creating... [2m20s elapsed]
azurerm_postgresql_active_directory_administrator.named_test_resource: Still creating... [2m30s elapsed]
azurerm_postgresql_active_directory_administrator.named_test_resource: Still creating... [2m40s elapsed]
azurerm_postgresql_active_directory_administrator.named_test_resource: Still creating... [2m50s elapsed]
azurerm_postgresql_active_directory_administrator.named_test_resource: Still creating... [3m0s elapsed]
azurerm_postgresql_active_directory_administrator.named_test_resource: Still creating... [3m10s elapsed]
azurerm_postgresql_active_directory_administrator.named_test_resource: Still creating... [3m20s elapsed]
azurerm_postgresql_active_directory_administrator.named_test_resource: Still creating... [3m30s elapsed]
azurerm_postgresql_active_directory_administrator.named_test_resource: Still creating... [3m40s elapsed]
azurerm_postgresql_active_directory_administrator.named_test_resource: Still creating... [3m50s elapsed]
azurerm_postgresql_active_directory_administrator.named_test_resource: Still creating... [4m0s elapsed]
azurerm_postgresql_active_directory_administrator.named_test_resource: Still creating... [4m10s elapsed]
azurerm_postgresql_active_directory_administrator.named_test_resource: Still creating... [4m20s elapsed]
azurerm_postgresql_active_directory_administrator.named_test_resource: Still creating... [4m30s elapsed]
azurerm_postgresql_active_directory_administrator.named_test_resource: Still creating... [4m40s elapsed]
azurerm_postgresql_active_directory_administrator.named_test_resource: Still creating... [4m50s elapsed]
azurerm_postgresql_active_directory_administrator.named_test_resource: Still creating... [5m0s elapsed]
azurerm_postgresql_active_directory_administrator.named_test_resource: Still creating... [5m10s elapsed]
azurerm_postgresql_active_directory_administrator.named_test_resource: Still creating... [5m20s elapsed]
azurerm_postgresql_active_directory_administrator.named_test_resource: Still creating... [5m30s elapsed]
azurerm_postgresql_active_directory_administrator.named_test_resource: Still creating... [5m40s elapsed]
azurerm_postgresql_active_directory_administrator.named_test_resource: Still creating... [5m50s elapsed]
azurerm_postgresql_active_directory_administrator.named_test_resource: Still creating... [6m0s elapsed]
azurerm_postgresql_active_directory_administrator.named_test_resource: Still creating... [6m10s elapsed]
azurerm_postgresql_active_directory_administrator.named_test_resource: Still creating... [6m20s elapsed]
azurerm_postgresql_active_directory_administrator.named_test_resource: Still creating... [6m30s elapsed]
azurerm_postgresql_active_directory_administrator.named_test_resource: Still creating... [6m40s elapsed]
azurerm_postgresql_active_directory_administrator.named_test_resource: Still creating... [6m50s elapsed]
azurerm_postgresql_active_directory_administrator.named_test_resource: Still creating... [7m0s elapsed]
azurerm_postgresql_active_directory_administrator.named_test_resource: Still creating... [7m10s elapsed]
azurerm_postgresql_active_directory_administrator.named_test_resource: Still creating... [7m20s elapsed]
azurerm_postgresql_active_directory_administrator.named_test_resource: Still creating... [7m30s elapsed]
azurerm_postgresql_active_directory_administrator.named_test_resource: Still creating... [7m40s elapsed]
azurerm_postgresql_active_directory_administrator.named_test_resource: Still creating... [7m50s elapsed]
azurerm_postgresql_active_directory_administrator.named_test_resource: Still creating... [8m0s elapsed]
azurerm_postgresql_active_directory_administrator.named_test_resource: Still creating... [8m10s elapsed]
azurerm_postgresql_active_directory_administrator.named_test_resource: Still creating... [8m20s elapsed]
azurerm_postgresql_active_directory_administrator.named_test_resource: Still creating... [8m30s elapsed]
azurerm_postgresql_active_directory_administrator.named_test_resource: Still creating... [8m40s elapsed]
azurerm_postgresql_active_directory_administrator.named_test_resource: Still creating... [8m50s elapsed]
azurerm_postgresql_active_directory_administrator.named_test_resource: Still creating... [9m0s elapsed]
azurerm_postgresql_active_directory_administrator.named_test_resource: Still creating... [9m10s elapsed]
azurerm_postgresql_active_directory_administrator.named_test_resource: Still creating... [9m20s elapsed]
azurerm_postgresql_active_directory_administrator.named_test_resource: Still creating... [9m30s elapsed]
azurerm_postgresql_active_directory_administrator.named_test_resource: Still creating... [9m40s elapsed]
azurerm_postgresql_active_directory_administrator.named_test_resource: Still creating... [9m50s elapsed]
azurerm_postgresql_active_directory_administrator.named_test_resource: Still creating... [10m0s elapsed]
azurerm_postgresql_active_directory_administrator.named_test_resource: Creation complete after 10m4s [id=/subscriptions/********-****-****-****-************/resourceGroups/turbottest21885/providers/Microsoft.DBforPostgreSQL/servers/turbottest21885/administrators/activeDirectory]

Warning: Deprecated Resource

The null_data_source was historically used to construct intermediate values to
re-use elsewhere in configuration, the same can now be achieved using locals


Apply complete! Resources: 5 added, 0 changed, 0 destroyed.

Outputs:

location = eastus
resource_aka = azure:///subscriptions/********-****-****-****-************/resourceGroups/turbottest21885/providers/Microsoft.DBforPostgreSQL/servers/turbottest21885
resource_aka_lower = azure:///subscriptions/********-****-****-****-************/resourcegroups/turbottest21885/providers/microsoft.dbforpostgresql/servers/turbottest21885
resource_id = /subscriptions/********-****-****-****-************/resourceGroups/turbottest21885/providers/Microsoft.DBforPostgreSQL/servers/turbottest21885
resource_name = turbottest21885
server_fqdn = turbottest21885.postgres.database.azure.com
subscription_id = ********-****-****-****-************

Running SQL query: test-get-query.sql
[
  {
    "administrator_login": "psqladminun",
    "backup_retention_days": 7,
    "fully_qualified_domain_name": "turbottest21885.postgres.database.azure.com",
    "geo_redundant_backup": "Disabled",
    "id": "/subscriptions/********-****-****-****-************/resourceGroups/turbottest21885/providers/Microsoft.DBforPostgreSQL/servers/turbottest21885",
    "location": "eastus",
    "minimal_tls_version": "TLS1_2",
    "name": "turbottest21885",
    "public_network_access": "Enabled",
    "region": "eastus",
    "resource_group": "turbottest21885",
    "sku_family": "Gen5",
    "sku_name": "B_Gen5_1",
    "sku_size": "<null>",
    "sku_tier": "Basic",
    "ssl_enforcement": "Enabled",
    "subscription_id": "********-****-****-****-************",
    "type": "Microsoft.DBforPostgreSQL/servers",
    "version": "9.5"
  }
]
✔ PASSED

Running SQL query: test-hydrate-query.sql
[
  {
    "configuration_name": "log_checkpoints",
    "configuration_value": "on",
    "end_ip_address": "40.112.8.12",
    "name": "turbottest21885",
    "rule_name": "turbottest21885",
    "rule_type": "Microsoft.DBforPostgreSQL/servers/firewallRules",
    "server_admin_login_name": "ActiveDirectory",
    "start_ip_address": "40.112.8.12"
  }
]
✔ PASSED

Running SQL query: test-list-query.sql
[
  {
    "id": "/subscriptions/********-****-****-****-************/resourceGroups/turbottest21885/providers/Microsoft.DBforPostgreSQL/servers/turbottest21885",
    "location": "eastus",
    "name": "turbottest21885"
  }
]
✔ PASSED

Running SQL query: test-not-found-query.sql
null
✔ PASSED

Running SQL query: test-turbot-query.sql
[
  {
    "akas": [
      "azure:///subscriptions/********-****-****-****-************/resourceGroups/turbottest21885/providers/Microsoft.DBforPostgreSQL/servers/turbottest21885",
      "azure:///subscriptions/********-****-****-****-************/resourcegroups/turbottest21885/providers/microsoft.dbforpostgresql/servers/turbottest21885"
    ],
    "name": "turbottest21885",
    "tags": {
      "name": "turbottest21885"
    },
    "title": "turbottest21885"
  }
]
✔ PASSED

TEARDOWN: tests/azure_postgresql_server

SUMMARY:

1/1 passed.

Example query results

Results

List servers for which In-Transit Encryption is disabled

select
  name,
  id,
  location,
  ssl_enforcement
from
  azure_postgresql_server
where
  ssl_enforcement = 'Enabled';
+--------------------+---------------------------------------------------------------------------------------------------------------------------------------------+----------+-----------------+
| name               | id                                                                                                                                          | location | ssl_enforcement |
+--------------------+---------------------------------------------------------------------------------------------------------------------------------------------+----------+-----------------+
| testserver26032021 | /subscriptions/********-****-****-****-************/resourceGroups/turbot_rg/providers/Microsoft.DBforPostgreSQL/servers/testserver26032021 | eastus   | Enabled         |
+--------------------+---------------------------------------------------------------------------------------------------------------------------------------------+----------+-----------------+

List servers for which 'Allow access to Azure services' feature is disabled

select
  name,
  id,
  rule ->> 'Name' as rule_name,
  rule ->> 'Type' as rule_type,
  rule -> 'FirewallRuleProperties' ->> 'endIpAddress' as end_ip_address,
  rule -> 'FirewallRuleProperties' ->> 'startIpAddress' as start_ip_address
from
  azure_postgresql_server,
  jsonb_array_elements(firewall_rules) as rule
where
  rule ->> 'Name' = 'AllowAllWindowsAzureIps'
  and rule -> 'FirewallRuleProperties' ->> 'startIpAddress' = '0.0.0.0'
  and rule -> 'FirewallRuleProperties' ->> 'endIpAddress' = '0.0.0.0';
+--------------------+---------------------------------------------------------------------------------------------------------------------------------------------+-------------------------+-------------------------------------------------+----------------+------------------+
| name               | id                                                                                                                                          | rule_name               | rule_type                                       | end_ip_address | start_ip_address |
+--------------------+---------------------------------------------------------------------------------------------------------------------------------------------+-------------------------+-------------------------------------------------+----------------+------------------+
| testserver26032021 | /subscriptions/********-****-****-****-************/resourceGroups/turbot_rg/providers/Microsoft.DBforPostgreSQL/servers/testserver26032021 | AllowAllWindowsAzureIps | Microsoft.DBforPostgreSQL/servers/firewallRules | 0.0.0.0        | 0.0.0.0          |
+--------------------+---------------------------------------------------------------------------------------------------------------------------------------------+-------------------------+-------------------------------------------------+----------------+------------------+

List servers for which Active Directory Admin is not configured

select
  name,
  id,
  location
from
  azure_postgresql_server
where
  server_administrators is null;
+--------------------+---------------------------------------------------------------------------------------------------------------------------------------------+----------+
| name               | id                                                                                                                                          | location |
+--------------------+---------------------------------------------------------------------------------------------------------------------------------------------+----------+
| testserver26032021 | /subscriptions/********-****-****-****-************/resourceGroups/turbot_rg/providers/Microsoft.DBforPostgreSQL/servers/testserver26032021 | eastus   |
+--------------------+---------------------------------------------------------------------------------------------------------------------------------------------+----------+

List servers for which 'log_checkpoints' is set to 'OFF'

select
  name,
  configurations ->> 'Name' as configuration_name,
  configurations -> 'ConfigurationProperties' ->> 'value' as configuration_value
from
  azure_postgresql_server,
  jsonb_array_elements(server_configurations) as configurations
where
  configurations ->> 'Name' = 'log_checkpoints'
  and configurations -> 'ConfigurationProperties' ->> 'value' = 'OFF';
+--------------------+--------------------+---------------------+
| name               | configuration_name | configuration_value |
+--------------------+--------------------+---------------------+
| testserver26032021 | log_checkpoints    | OFF                 |
+--------------------+--------------------+---------------------+

List servers for which 'log_retention_days' is greater than 3 days

select
  name,
  configurations ->> 'Name' as configuration_name,
  configurations -> 'ConfigurationProperties' ->> 'value' as configuration_value
from
  azure_postgresql_server,
  jsonb_array_elements(server_configurations) as configurations
where
  configurations ->> 'Name' = 'log_retention_days'
  and (configurations -> 'ConfigurationProperties' ->> 'value')::INTEGER > 3;
+--------------------+--------------------+---------------------+
| name               | configuration_name | configuration_value |
+--------------------+--------------------+---------------------+
| testserver26032021 | log_retention_days | 4                   |
+--------------------+--------------------+---------------------+

List servers for which Geo-Redundant backup feature is disabled

select
  name,
  id,
  location,
  geo_redundant_backup
from
  azure_postgresql_server
where
  geo_redundant_backup = 'Disabled';
+----------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------+----------+----------------------+
| name                       | id                                                                                                                                                  | location | geo_redundant_backup |
+----------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------+----------+----------------------+
| testpostgresserver07042021 | /subscriptions/********-****-****-****-************/resourceGroups/turbot_rg/providers/Microsoft.DBforPostgreSQL/servers/testpostgresserver07042021 | eastus   | Disabled             |
+----------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------+----------+----------------------+

@Subhajit97 Subhajit97 self-assigned this Mar 26, 2021
@Subhajit97 Subhajit97 marked this pull request as ready for review March 27, 2021 05:55
@Subhajit97 Subhajit97 linked an issue Mar 27, 2021 that may be closed by this pull request
@Subhajit97 Subhajit97 linked an issue Mar 30, 2021 that may be closed by this pull request
Copy link
Contributor

@khushboo9024 khushboo9024 left a comment

Choose a reason for hiding this comment

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

LGTM

docs/tables/azure_postgresql_server.md Outdated Show resolved Hide resolved
azure/table_azure_postgresql_server.go Show resolved Hide resolved
Copy link
Contributor

@rajlearner17 rajlearner17 left a comment

Choose a reason for hiding this comment

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

Added 2 more examples

Copy link
Contributor

@rajlearner17 rajlearner17 left a comment

Choose a reason for hiding this comment

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

LGTM

Copy link
Contributor

@rajlearner17 rajlearner17 left a comment

Choose a reason for hiding this comment

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

LGTM

@cbruno10 cbruno10 merged commit 5ccbbd9 into main Apr 7, 2021
@cbruno10 cbruno10 deleted the issue-63 branch April 7, 2021 16:46
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.

Add table azure_postgresql_server Add PostgreSql server table
5 participants