@@ -49,36 +49,47 @@ class TLS(Object):
49
49
50
50
refresh_tls_certificates_event = EventSource (RefreshTLSCertificatesEvent )
51
51
52
+ def _get_client_addrs (self ):
53
+ client_addrs = {
54
+ self .charm .unit_peer_data .get ("database-address" ),
55
+ }
56
+ client_addrs -= {None }
57
+ return client_addrs
58
+
59
+ def _get_peer_addrs (self ):
60
+ peer_addrs = {
61
+ self .charm .unit_peer_data .get ("database-peers-address" ),
62
+ self .charm .unit_peer_data .get ("replication-address" ),
63
+ self .charm .unit_peer_data .get ("replication-offer-address" ),
64
+ self .charm .unit_peer_data .get ("private-address" ),
65
+ }
66
+ peer_addrs -= {None }
67
+ return peer_addrs
68
+
69
+ def _get_common_name (self ):
70
+ return self .charm .unit_peer_data .get ("database-address" ) or self .host
71
+
52
72
def __init__ (self , charm : "PostgresqlOperatorCharm" , peer_relation : str ):
53
73
super ().__init__ (charm , "client-relations" )
54
74
self .charm = charm
55
75
self .peer_relation = peer_relation
56
76
unit_id = self .charm .unit .name .split ("/" )[1 ]
57
77
self .host = f"{ self .charm .app .name } -{ unit_id } "
58
78
if self .charm .unit_peer_data :
59
- self .common_name = self .charm .unit_peer_data .get ("database-address" ) or self .host
60
- client_addresses = {
61
- self .charm .unit_peer_data .get ("database-address" ),
62
- }
63
- self .peer_addresses = {
64
- self .charm .unit_peer_data .get ("database-peers-address" ),
65
- self .charm .unit_peer_data .get ("replication-address" ),
66
- self .charm .unit_peer_data .get ("replication-offer-address" ),
67
- self .charm .unit_peer_data .get ("private-address" ),
68
- }
69
- client_addresses -= {None }
70
- self .peer_addresses -= {None }
79
+ common_name = self ._get_common_name ()
80
+ client_addresses = self ._get_client_addrs ()
81
+ peer_addresses = self ._get_peer_addrs ()
71
82
else :
72
- self . common_name = self .host
83
+ common_name = self .host
73
84
client_addresses = set ()
74
- self . peer_addresses = set ()
85
+ peer_addresses = set ()
75
86
76
87
self .client_certificate = TLSCertificatesRequiresV4 (
77
88
self .charm ,
78
89
TLS_CLIENT_RELATION ,
79
90
certificate_requests = [
80
91
CertificateRequestAttributes (
81
- common_name = self . common_name ,
92
+ common_name = common_name ,
82
93
sans_ip = frozenset (client_addresses ),
83
94
sans_dns = frozenset ({
84
95
self .host ,
@@ -96,14 +107,14 @@ def __init__(self, charm: "PostgresqlOperatorCharm", peer_relation: str):
96
107
TLS_PEER_RELATION ,
97
108
certificate_requests = [
98
109
CertificateRequestAttributes (
99
- common_name = self . common_name ,
100
- sans_ip = frozenset (self .peer_addresses ),
110
+ common_name = common_name ,
111
+ sans_ip = frozenset (self ._get_peer_addrs () ),
101
112
sans_dns = frozenset ({
102
113
self .host ,
103
114
socket .getfqdn (),
104
115
# IP address need to be part of the DNS SANs list due to
105
116
# https://github.com/pgbackrest/pgbackrest/issues/1977.
106
- * self . peer_addresses ,
117
+ * peer_addresses ,
107
118
}),
108
119
),
109
120
],
@@ -219,14 +230,14 @@ def generate_internal_peer_cert(self) -> None:
219
230
private_key = generate_private_key ()
220
231
csr = generate_csr (
221
232
private_key ,
222
- common_name = self .common_name ,
223
- sans_ip = frozenset (self .peer_addresses ),
233
+ common_name = self ._get_common_name () ,
234
+ sans_ip = frozenset (self ._get_peer_addrs () ),
224
235
sans_dns = frozenset ({
225
236
self .host ,
226
237
socket .getfqdn (),
227
238
# IP address need to be part of the DNS SANs list due to
228
239
# https://github.com/pgbackrest/pgbackrest/issues/1977.
229
- * self .peer_addresses ,
240
+ * self ._get_peer_addrs () ,
230
241
}),
231
242
)
232
243
cert = generate_certificate (csr , ca , ca_key , validity = timedelta (days = 7300 ))
0 commit comments