diff --git a/openstack_dashboard/static/app/core/openstack-service-api/glance.service.js b/openstack_dashboard/static/app/core/openstack-service-api/glance.service.js index 7c0da41a5d..7179aa418b 100644 --- a/openstack_dashboard/static/app/core/openstack-service-api/glance.service.js +++ b/openstack_dashboard/static/app/core/openstack-service-api/glance.service.js @@ -170,8 +170,11 @@ } function onError(error) { - toastService.add('error', gettext('Unable to create the image.')); - throw error; + if (error && error.data) { + throw error; + } else { + throw gettext('Unable to create the image.'); + } } return apiService[method]('/api/glance/images/', image) diff --git a/openstack_dashboard/static/app/core/openstack-service-api/glance.service.spec.js b/openstack_dashboard/static/app/core/openstack-service-api/glance.service.spec.js index a1eed66122..5bb5fb7266 100644 --- a/openstack_dashboard/static/app/core/openstack-service-api/glance.service.spec.js +++ b/openstack_dashboard/static/app/core/openstack-service-api/glance.service.spec.js @@ -185,20 +185,31 @@ })); it('shows error message when arguments are insufficient', function() { - spyOn(toastService, 'add'); - service.createImage.apply(null, [{name: 1}]); try { imageQueuedPromise.reject({'data': 'invalid'}); $rootScope.$apply(); - }catch (exp) { - expect(exp).toBeDefined(); - expect(exp.data).toEqual('invalid'); + } catch (error) { + expect(error).toBeDefined(); + expect(error.data).toEqual('invalid'); + } + + expect(apiService.put).toHaveBeenCalledWith('/api/glance/images/', {name: 1}); + }); + + it('shows a generic message when it gets a unexpected error', function() { + service.createImage.apply(null, [{name: 1}]); + + try { + imageQueuedPromise.reject(); + $rootScope.$apply(); + } catch (error) { + expect(error).toBeDefined(); + expect(error).toEqual('Unable to create the image.'); } expect(apiService.put).toHaveBeenCalledWith('/api/glance/images/', {name: 1}); - expect(toastService.add).toHaveBeenCalledWith('error', "Unable to create the image."); }); describe('external upload of a local file', function() { @@ -237,9 +248,9 @@ try { imageQueuedPromise.reject({'data': 'invalid'}); $rootScope.$apply(); - }catch (exp) { - expect(exp).toBeDefined(); - expect(exp.data).toEqual('invalid'); + } catch (error) { + expect(error).toBeDefined(); + expect(error.data).toEqual('invalid'); } expect(apiService.put.calls.count()).toBe(1);