def test_CertRequest_add_entry(self): cr = cert_utils.CertRequest() cr.add_entry('admin', 'admin.openstack.local', ['10.10.10.10']) self.assertEqual( cr.get_request(), {'cert_requests': '{"admin.openstack.local": {"sans": ["10.10.10.10"]}}'})
def test_CertRequest_add_hostname_cn(self, unit_get, get_hostname, get_vip_in_network, resolve_network_cidr): resolve_network_cidr.side_effect = lambda x: x get_vip_in_network.return_value = '10.1.2.100' unit_get.return_value = '10.1.2.3' get_hostname.return_value = 'juju-unit-2' cr = cert_utils.CertRequest() cr.add_hostname_cn() self.assertEqual( cr.get_request(), {'cert_requests': '{"juju-unit-2": {"sans": ["10.1.2.100", "10.1.2.3"]}}'})
def test_CertRequest_add_hostname_cn_ip(self, local_address, get_hostname, get_vip_in_network, resolve_network_cidr, local_unit): resolve_network_cidr.side_effect = lambda x: x get_vip_in_network.return_value = '10.1.2.100' local_address.return_value = '10.1.2.3' get_hostname.return_value = 'juju-unit-2' cr = cert_utils.CertRequest() cr.add_hostname_cn() cr.add_hostname_cn_ip(['10.1.2.4']) self.assertEqual( cr.get_request(), {'cert_requests': ('{"juju-unit-2": {"sans": ["10.1.2.100", "10.1.2.3", ' '"10.1.2.4"]}}'), 'unit_name': 'unit_2'})
def request_certificates(): """When the certificates interface is available, request TLS certificates. """ tls = reactive.endpoint_from_flag('certificates.available') with charm.provide_charm_instance() as instance: req = cert_utils.CertRequest(json_encode=False) req.add_hostname_cn() # Deploys will be using 127.0.0.1 with mysql-router, but still # validate the certificate. # Add localhost for mysql-router connections req.add_hostname_cn_ip([ instance.cluster_address, instance.db_router_address, instance.shared_db_address, "127.0.0.1" ]) for cn, req in req.get_request().get('cert_requests', {}).items(): tls.add_request_server_cert(cn, req['sans']) tls.request_server_certs() instance.assess_status()
def certs_joined(relation_id=None): req = ch_cert_utils.CertRequest() ip, target_cn = ssl_utils.get_unit_amqp_endpoint_data() req.add_entry(None, target_cn, [ip]) relation_set(relation_id=relation_id, relation_settings=req.get_request())
def test_CertRequest(self): cr = cert_utils.CertRequest() self.assertEqual(cr.entries, []) self.assertIsNone(cr.hostname_entry)