def test_check_cert_exist_when_config_key_is_missing( self, logging_mock, config_mock): config_mock.get_config.return_value = {'ssl': {}} with self.assertRaises(KeyError) as error: scmb_thread = SCMB('1.1.1.1', 'cred', 'token') scmb_thread._has_valid_certificates() logging_mock.error.assert_called_with( 'Invalid configuration for ssl cert. ' 'Verify the [ssl] section in config file') self.assertEqual("'SSLCertFile'", str(error.exception))
def test_check_cert_exist(self, isfile, config_mock, _is_cert_working_with_scmb): config_mock.get_config.return_value = {'ssl': {'SSLCertFile': ''}} # Files exist isfile.return_value = True _is_cert_working_with_scmb.return_value = True scmb_thread = SCMB('1.1.1.1', 'cred', 'token') self.assertTrue(scmb_thread._has_valid_certificates()) # Certs files don't exist isfile.return_value = False _is_cert_working_with_scmb.return_value = False self.assertFalse(scmb_thread._has_valid_certificates()) self.assertFalse(scmb_thread._has_valid_certificates())
def test_generate_new_cert_for_oneview(self, get_oneview_client, _is_cert_working_with_scmb, config_mock, _get_ov_ca_cert): config_mock.get_config.return_value = { 'ssl': { 'SSLCertFile': 'cert_file.crt' } } cert_key_pair = { 'base64SSLCertData': 'Client CERT', 'base64SSLKeyData': 'Client Key' } # Certs Generated with success oneview_client = mock.MagicMock() e = HPOneViewException({ 'errorCode': 'RESOURCE_NOT_FOUND', 'message': 'Resource not found.', }) oneview_client.certificate_authority.get.return_value = "CA CERT" oneview_client.certificate_rabbitmq.generate.return_value = True oneview_client.certificate_rabbitmq.get_key_pair.side_effect = \ [e, cert_key_pair] get_oneview_client.return_value = oneview_client _is_cert_working_with_scmb.return_value = True _get_ov_ca_cert.return_value = { 'type': 'CAInfo', 'members': [{ 'certificateDetails': { 'base64Data': 'CA CERT' } }] } scmb_thread = SCMB('1.1.1.1', 'cred', 'token') scmb_thread.get_scmb_certs() self.assertTrue(scmb_thread._has_valid_certificates()) # Return None if cert is not a dict _get_ov_ca_cert.return_value = [] cert = scmb_thread._get_ov_ca_cert_base64data(oneview_client) self.assertEqual(cert, None)
def test_init_event_service_with_valid_certificate(self, _get_ov_ca_cert, get_oneview_client, config_mock, conn_param, block_conn, channel): config_mock.get_config.return_value = { 'ssl': { 'SSLCertFile': 'cert_file.crt' }, } os.makedirs(name='scmb', exist_ok=True) self.addCleanup(shutil.rmtree, 'scmb') oneview_client = mock.MagicMock() oneview_client.certificate_authority.get.return_value = "CA CERT" oneview_client.certificate_rabbitmq.generate.return_value = True get_oneview_client.return_value = oneview_client oneview_client.certificate_rabbitmq.get_key_pair.return_value = { 'base64SSLCertData': 'Client CERT', 'base64SSLKeyData': 'Client Key' } oneview_client.connection = 'con' _get_ov_ca_cert.return_value = "CA CERT" pika_mock = mock.MagicMock() pika_mock.channel.Channel = {} block_conn.return_value = pika_mock conn_param.return_value = {} channel.return_value = {} scmb.init_event_service() scmb_thread = SCMB('1.1.1.1', 'cred', 'token') scmb_thread.run() self.assertTrue(scmb_thread._has_valid_certificates()) self.assertTrue(scmb_thread._is_cert_working_with_scmb())
def test_get_cert_already_exists(self, _get_ov_ca_cert_base64data, get_oneview_client, config_mock, _is_cert_working_with_scmb): config_mock.get_config.return_value = { 'ssl': { 'SSLCertFile': 'cert_file.crt' } } os.makedirs(name='scmb', exist_ok=True) self.addCleanup(shutil.rmtree, 'scmb') # Certs Generated with success oneview_client = mock.MagicMock() oneview_client.certificate_authority.get.return_value = "CA CERT" oneview_client.certificate_rabbitmq.generate.return_value = True oneview_client.certificate_rabbitmq.get_key_pair.return_value = { 'base64SSLCertData': 'Client CERT', 'base64SSLKeyData': 'Client Key' } get_oneview_client.return_value = oneview_client _is_cert_working_with_scmb.return_value = True # Certs already exist e = HPOneViewException({ 'errorCode': 'RABBITMQ_CLIENTCERT_CONFLICT', 'message': 'certs already exist', }) oneview_client.certificate_rabbitmq.generate.side_effect = e oneview_client.connection = 'con' _get_ov_ca_cert_base64data.return_value = "CA CERT" scmb_thread = SCMB('1.1.1.1', 'cred', 'token') scmb_thread.get_scmb_certs() self.assertTrue(scmb_thread._has_valid_certificates())
def test_init_event_service_with_certs_already_generated( self, config_mock, get_ov_client, _has_certs_path, conn_param, block_conn, channel): config_mock.get_config.return_value = { 'ssl': { 'SSLCertFile': '/dir/cert_file.crt' }, } pika_mock = mock.MagicMock() pika_mock.channel.Channel = {} block_conn.return_value = pika_mock conn_param.return_value = {} channel.return_value = {} oneview_client = mock.MagicMock() get_ov_client.return_value = oneview_client _has_certs_path.return_value = True scmb.init_event_service() scmb_thread = SCMB('1.1.1.1', 'cred', 'token') scmb_thread.run() self.assertTrue(scmb_thread._has_valid_certificates())