Esempio n. 1
0
 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"]}}'})
Esempio n. 2
0
 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"]}}'})
Esempio n. 3
0
 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())
Esempio n. 6
0
 def test_CertRequest(self):
     cr = cert_utils.CertRequest()
     self.assertEqual(cr.entries, [])
     self.assertIsNone(cr.hostname_entry)