diff --git a/src/app/frontend/daemonsetlist/daemonsetlist_stateconfig.js b/src/app/frontend/daemonsetlist/daemonsetlist_stateconfig.js index ff7e4315dc60d2956dd865e5c704c781bdaad3f9..28fe11d8e7099ab6c9f5d7892b38d1c46475796d 100644 --- a/src/app/frontend/daemonsetlist/daemonsetlist_stateconfig.js +++ b/src/app/frontend/daemonsetlist/daemonsetlist_stateconfig.js @@ -53,12 +53,13 @@ export default function stateConfig($stateProvider) { /** * @param {!angular.$resource} $resource + * @param {!./../chrome/chrome_state.StateParams} $stateParams * @return {!angular.$q.Promise} * @ngInject */ -export function resolveDaemonSetList($resource) { +export function resolveDaemonSetList($resource, $stateParams) { /** @type {!angular.Resource} */ - let resource = $resource('api/v1/daemonset'); + let resource = $resource(`api/v1/daemonset/${$stateParams.namespace || ''}`); return resource.get().$promise; } diff --git a/src/app/frontend/deploy/deployfromsettings_controller.js b/src/app/frontend/deploy/deployfromsettings_controller.js index 0f20c88987d843268765e6171457d824f9957284..6aa8b7b14cc0aea4c851d2089320c7af492563c9 100644 --- a/src/app/frontend/deploy/deployfromsettings_controller.js +++ b/src/app/frontend/deploy/deployfromsettings_controller.js @@ -38,9 +38,10 @@ export default class DeployFromSettingsController { * @param {!angular.$resource} $resource * @param {!angular.$q} $q * @param {!md.$dialog} $mdDialog + * @param {!./../chrome/chrome_state.StateParams} $stateParams * @ngInject */ - constructor(namespaces, protocols, $log, $state, $resource, $q, $mdDialog) { + constructor(namespaces, protocols, $log, $state, $resource, $q, $mdDialog, $stateParams) { /** * Initialized from the template. * @export {!angular.FormController} @@ -140,7 +141,7 @@ export default class DeployFromSettingsController { * Currently chosen namespace. * @export {string} */ - this.namespace = this.namespaces[0]; + this.namespace = $stateParams.namespace || this.namespaces[0]; /** * @export {?number} diff --git a/src/test/frontend/daemonsetlist/daemonsetlist_stateconfig_test.js b/src/test/frontend/daemonsetlist/daemonsetlist_stateconfig_test.js index 08604f3aa8e0a6e779cd59e552e6a3ebd5a46788..00c0f66cdec9d61cd701d115988d91bd18e146e4 100644 --- a/src/test/frontend/daemonsetlist/daemonsetlist_stateconfig_test.js +++ b/src/test/frontend/daemonsetlist/daemonsetlist_stateconfig_test.js @@ -24,9 +24,21 @@ describe('StateConfig for daemon set list', () => { let resource = jasmine.createSpy('$resource'); resource.and.returnValue({get: function() { return {$promise: promise}; }}); - let actual = resolveDaemonSetList(resource); + let actual = resolveDaemonSetList(resource, {namespace: 'foo'}); - expect(resource).toHaveBeenCalledWith('api/v1/daemonset'); + expect(resource).toHaveBeenCalledWith('api/v1/daemonset/foo'); + expect(actual).toBe(promise); + })); + + it('should resolve daemon sets with no namespace', angular.mock.inject(($q) => { + let promise = $q.defer().promise; + + let resource = jasmine.createSpy('$resource'); + resource.and.returnValue({get: function() { return {$promise: promise}; }}); + + let actual = resolveDaemonSetList(resource, {}); + + expect(resource).toHaveBeenCalledWith('api/v1/daemonset/'); expect(actual).toBe(promise); })); }); diff --git a/src/test/frontend/deploy/deployfromsettings_controller_test.js b/src/test/frontend/deploy/deployfromsettings_controller_test.js index d844f543a971c6a493245049cb3b354c29d3b640..6a758ee766c214f505cb0c242f879f4343ce2d3b 100644 --- a/src/test/frontend/deploy/deployfromsettings_controller_test.js +++ b/src/test/frontend/deploy/deployfromsettings_controller_test.js @@ -66,6 +66,22 @@ describe('DeployFromSettings controller', () => { expect(result).toEqual(''); }); + it('should select initial namespace', angular.mock.inject(($controller) => { + ctrl = $controller( + DeployFromSettingController, + {namespaces: {namespaces: ['foo', 'bar']}, protocols: {protocols: []}, $stateParams: {}}); + + expect(ctrl.namespace).toBe('foo'); + + ctrl = $controller(DeployFromSettingController, { + namespaces: {namespaces: ['foo', 'bar']}, + protocols: {protocols: []}, + $stateParams: {namespace: 'bar'}, + }); + + expect(ctrl.namespace).toBe('bar'); + })); + it('should return empty string when containerImage is empty', () => { // given ctrl.containerImage = '';