def _check_max_wal_senders()

in src/dma/collector/workflows/readiness_check/_postgres/main.py [0:0]


    def _check_max_wal_senders(self) -> None:
        rule_code = "MAX_WAL_SENDERS"
        url_link = "Refer to https://cloud.google.com/database-migration/docs/postgres/create-migration-job#specify-source-connection-profile-info for more info."
        db_count_result = self.local_db.sql(
            "select count(*) from extended_collection_postgres_all_databases"
        ).fetchone()
        db_count = int(db_count_result[0]) if db_count_result is not None else 0
        wal_senders_result = self.local_db.sql(
            "select c.setting_value as max_wal_senders from collection_postgres_settings c where c.setting_name='max_wal_senders';"
        ).fetchone()
        wal_senders = int(wal_senders_result[0]) if wal_senders_result is not None else 0
        for c in self.rule_config:
            max_required_subscriptions = db_count + c.extra_replication_subscriptions_required
            if wal_senders < db_count:
                self.save_rule_result(
                    c.db_variant,
                    rule_code,
                    ACTION_REQUIRED,
                    f"Insufficient `max_wal_senders`: {wal_senders}, should be set to at least {db_count}. Up to {c.extra_replication_subscriptions_required} additional `wal_senders` might be required depending on the parallelism level set for migration. {url_link}",
                )
            elif wal_senders < max_required_subscriptions:
                self.save_rule_result(
                    c.db_variant,
                    rule_code,
                    WARNING,
                    f"`max_wal_senders` current value: {wal_senders}, this might need to be increased to {max_required_subscriptions} depending on the parallelism level set for migration. {url_link}",
                )
            else:
                self.save_rule_result(
                    c.db_variant,
                    rule_code,
                    PASS,
                    f"`max_wal_senders` current value: {wal_senders}, this meets or exceeds the maximum required value of {max_required_subscriptions}",
                )