Ejemplo n.º 1
0
    def test_server_exception_msg_and_traceback(self):
        error_msg = 'another test error'
        error_trace = ("\"Traceback (most recent call last):\\n\\n  "
                       "File \\\"/usr/local/lib/python2.7/...")
        error_body = _get_error_body(error_msg, error_trace)

        fake_session = utils.FakeSession({'Content-Type': 'application/json'},
                                         error_body, 500)

        client = http.SessionClient(session=fake_session,
                                    auth=None,
                                    interface=None,
                                    service_type='publicURL',
                                    region_name='',
                                    service_name=None)

        error = self.assertRaises(exc.InternalServerError, client.json_request,
                                  'GET', '/v1/resources')

        self.assertEqual(
            '%(error)s (HTTP 500)\n%(trace)s' % {
                'error': error_msg,
                'trace': error_trace
            }, "%(error)s\n%(details)s" % {
                'error': str(error),
                'details': str(error.details)
            })
Ejemplo n.º 2
0
def _session_client(**kwargs):
    return http.SessionClient(os_ironic_api_version='1.6',
                              api_version_select_state='default',
                              max_retries=5,
                              retry_interval=2,
                              auth=None,
                              interface='publicURL',
                              service_type='baremetal',
                              region_name='',
                              endpoint='http://%s:%s' % (DEFAULT_HOST,
                                                         DEFAULT_PORT),
                              **kwargs)
Ejemplo n.º 3
0
    def test_server_exception_empty_body(self):
        error_body = _get_error_body()

        fake_session = utils.FakeSession({'Content-Type': 'application/json'},
                                         error_body, 500)

        client = http.SessionClient(session=fake_session,
                                    auth=None,
                                    interface=None,
                                    service_type='publicURL',
                                    region_name='',
                                    service_name=None)

        error = self.assertRaises(exc.InternalServerError, client.json_request,
                                  'GET', '/v1/resources')

        self.assertEqual('Internal Server Error (HTTP 500)', str(error))
Ejemplo n.º 4
0
 def test__parse_version_headers(self):
     # Test parsing of version headers from SessionClient
     fake_session = utils.FakeSession(
         {'X-OpenStack-Ironic-API-Minimum-Version': '1.1',
          'X-OpenStack-Ironic-API-Maximum-Version': '1.6',
          'content-type': 'text/plain',
          },
         None,
         506)
     expected_result = ('1.1', '1.6')
     client = http.SessionClient(session=fake_session,
                                 auth=None,
                                 interface=None,
                                 service_type='publicURL',
                                 region_name='',
                                 service_name=None)
     result = client._parse_version_headers(fake_session)
     self.assertEqual(expected_result, result)
Ejemplo n.º 5
0
    def test_session_retry_fail(self):
        error_body = _get_error_body()

        fake_resp = utils.FakeSessionResponse(
            {'Content-Type': 'application/json'},
            error_body,
            409)
        fake_session = mock.Mock(spec=utils.FakeSession)
        fake_session.request.return_value = fake_resp

        client = http.SessionClient(session=fake_session,
                                    auth=None,
                                    interface=None,
                                    service_type='publicURL',
                                    region_name='',
                                    service_name=None)

        self.assertRaises(exc.Conflict, client.json_request,
                          'GET', '/v1/resources')
        self.assertEqual(http.DEFAULT_MAX_RETRIES + 1,
                         fake_session.request.call_count)
Ejemplo n.º 6
0
    def test_session_retry(self):
        error_body = _get_error_body()

        fake_resp = utils.FakeSessionResponse(
            {'Content-Type': 'application/json'},
            error_body,
            409)
        ok_resp = utils.FakeSessionResponse(
            {'Content-Type': 'application/json'},
            b"OK",
            200)
        fake_session = mock.Mock(spec=utils.FakeSession)
        fake_session.request.side_effect = iter((fake_resp, ok_resp))

        client = http.SessionClient(session=fake_session,
                                    auth=None,
                                    interface=None,
                                    service_type='publicURL',
                                    region_name='',
                                    service_name=None)

        client.json_request('GET', '/v1/resources')
        self.assertEqual(2, fake_session.request.call_count)
Ejemplo n.º 7
0
 def test_session_client_endpoint_deprecation(self, log_mock):
     http.SessionClient(os_ironic_api_version=1, session=mock.Mock(),
                        api_version_select_state='user', max_retries=5,
                        retry_interval=5, endpoint='abc')
     self.assertIn('deprecated', log_mock.call_args[0][0])