Esempio n. 1
0
def generate_certificates_to_cluster(cluster, context=None):
    """Generate ca_cert and magnum client cert and set to cluster

    :param cluster: The cluster to set CA cert and magnum client cert
    :returns: CA cert uuid and magnum client cert uuid
    """
    try:
        issuer_name = _get_issuer_name(cluster)

        LOG.debug('Start to generate certificates: %s', issuer_name)

        ca_cert_ref, ca_cert, ca_password = _generate_ca_cert(issuer_name,
                                                              context=context)
        etcd_ca_cert_ref, _, _ = _generate_ca_cert(issuer_name,
                                                   context=context)
        fp_ca_cert_ref, _, _ = _generate_ca_cert(issuer_name, context=context)
        magnum_cert_ref = _generate_client_cert(issuer_name,
                                                ca_cert,
                                                ca_password,
                                                context=context)

        cluster.ca_cert_ref = ca_cert_ref
        cluster.magnum_cert_ref = magnum_cert_ref
        cluster.etcd_ca_cert_ref = etcd_ca_cert_ref
        cluster.front_proxy_ca_cert_ref = fp_ca_cert_ref
    except Exception:
        LOG.exception('Failed to generate certificates for Cluster: %s',
                      cluster.uuid)
        raise exception.CertificatesToClusterFailed(cluster_uuid=cluster.uuid)
Esempio n. 2
0
    def test_create_with_cert_failed(self, mock_openstack_client_class,
                                     mock_cert_manager, mock_trust_manager):
        e = exception.CertificatesToClusterFailed(cluster_uuid='uuid')
        mock_cert_manager.generate_certificates_to_cluster.side_effect = e

        self._test_create_failed(mock_openstack_client_class,
                                 mock_cert_manager, mock_trust_manager,
                                 exception.CertificatesToClusterFailed)

        notifications = fake_notifier.NOTIFICATIONS
        self.assertEqual(1, len(notifications))
        self.assertEqual('magnum.bay.create', notifications[0].event_type)
        self.assertEqual(taxonomy.OUTCOME_FAILURE,
                         notifications[0].payload['outcome'])