Summary
PR #936 fixed shard-aware port selection to treat an explicitly supplied ssl_options={} as SSL-enabled. Other connection paths still use truthiness checks, so they may treat ssl_options={} like omitted ssl_options=None.
Places to check
cassandra/connection.py: Connection.__init__ normalizes omitted and empty ssl_options to {} and only builds ssl_context when options are truthy.
cassandra/io/eventletreactor.py: SSL mode and handshake checks use truthiness.
cassandra/io/twistedreactor.py: SSL dependency checks and endpoint selection use truthiness.
cassandra/io/asyncioreactor.py: SSL setup is driven by ssl_context, so legacy empty ssl_options behavior should be verified.
cassandra/datastax/insights/reporter.py: sslConfigured.enabled uses truthiness and can misreport explicit empty SSL options.
Expected outcome
Define and apply one SSL-enabled predicate across connection setup and reporting: ssl_context is not None or ssl_options is not None. Preserve the distinction between omitted ssl_options and explicit ssl_options={} where needed, and add focused reactor/reporting coverage.
Follow-up from PR #936 review: #936 (review)
Summary
PR #936 fixed shard-aware port selection to treat an explicitly supplied
ssl_options={}as SSL-enabled. Other connection paths still use truthiness checks, so they may treatssl_options={}like omittedssl_options=None.Places to check
cassandra/connection.py:Connection.__init__normalizes omitted and emptyssl_optionsto{}and only buildsssl_contextwhen options are truthy.cassandra/io/eventletreactor.py: SSL mode and handshake checks use truthiness.cassandra/io/twistedreactor.py: SSL dependency checks and endpoint selection use truthiness.cassandra/io/asyncioreactor.py: SSL setup is driven byssl_context, so legacy emptyssl_optionsbehavior should be verified.cassandra/datastax/insights/reporter.py:sslConfigured.enableduses truthiness and can misreport explicit empty SSL options.Expected outcome
Define and apply one SSL-enabled predicate across connection setup and reporting:
ssl_context is not None or ssl_options is not None. Preserve the distinction between omittedssl_optionsand explicitssl_options={}where needed, and add focused reactor/reporting coverage.Follow-up from PR #936 review: #936 (review)