def test_make_api_request_volume_id(self): volume_id = 'v1' volume_name = 'volume_name' cinder_host = 'node_cinder_host' def mock_urlopen(req, data=None): expected = 'http://localhost:8080/v1.0/admin/volumes/v1' self.assertEquals(req.get_full_url(), expected) mock_urlopen.called = True mock_urlopen.called = False def mock_lookup_id(id, api_server, cinder_host): self.assertEquals(id, volume_name) mock_lookup_id.called = True return volume_id mock_lookup_id.called = False data = {'cinder_host': cinder_host, 'foo': 'bar'} with patch(utils, 'urlopen', mock_urlopen): with patch(utils, 'lookup_id', mock_lookup_id): utils.make_api_request('volumes', volume_name, data=data) self.assertTrue(mock_urlopen.called) self.assertTrue(mock_lookup_id.called)
def test_make_api_request_defaults(self): def mock_urlopen(req, data=None): expected = 'http://localhost:8080/v1.0/admin/nodes' self.assertEquals(req.get_full_url(), expected) mock_urlopen.called = True with patch(utils, 'urlopen', mock_urlopen): utils.make_api_request('nodes') self.assert_(mock_urlopen.called)
def make_api_request(self, *args, **kwargs): kwargs['api_server'] = kwargs.pop('api_server', self.api_server) attempt = 0 while True: attempt += 1 try: return make_api_request(*args, **kwargs) except APIError, e: # don't retry client errors if e.code // 100 == 4: raise if attempt > self.api_retry: raise # logger.debug('retrying api request', exc_info=True) sleep(2 ** attempt)
def make_api_request(self, *args, **kwargs): kwargs['api_server'] = kwargs.pop('api_server', self.api_server) attempt = 0 while True: attempt += 1 try: return make_api_request(*args, **kwargs) except APIError, e: # don't retry client errors if e.code // 100 == 4: raise if attempt > self.api_retry: raise # logger.debug('retrying api request', exc_info=True) sleep(2**attempt)