From 07a08aacea51aae04ba8607688ac4b75a8ee3b3f Mon Sep 17 00:00:00 2001 From: =?utf8?q?Alfonso=20Mart=C3=ADnez?= Date: Wed, 11 Dec 2019 17:53:01 +0100 Subject: [PATCH] mgr/dashboard: fix RGW subuser auto-generate key. MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit Fixes: https://tracker.ceph.com/issues/43263 Signed-off-by: Alfonso Martínez --- .../rgw-user-form.component.spec.ts | 23 ++++++++++++++++--- .../rgw-user-form/rgw-user-form.component.ts | 12 +++++++--- 2 files changed, 29 insertions(+), 6 deletions(-) diff --git a/src/pybind/mgr/dashboard/frontend/src/app/ceph/rgw/rgw-user-form/rgw-user-form.component.spec.ts b/src/pybind/mgr/dashboard/frontend/src/app/ceph/rgw/rgw-user-form/rgw-user-form.component.spec.ts index 48b459fac78..3ae9ca145aa 100644 --- a/src/pybind/mgr/dashboard/frontend/src/app/ceph/rgw/rgw-user-form/rgw-user-form.component.spec.ts +++ b/src/pybind/mgr/dashboard/frontend/src/app/ceph/rgw/rgw-user-form/rgw-user-form.component.spec.ts @@ -57,17 +57,34 @@ describe('RgwUserFormComponent', () => { expect(rgwUserService.addS3Key).not.toHaveBeenCalled(); }); - it('should set key', () => { + it('should set user defined key', () => { const key = new RgwUserS3Key(); key.user = 'test1:subuser2'; + key.access_key = 'my-access-key'; + key.secret_key = 'my-secret-key'; component.setS3Key(key); expect(component.s3Keys.length).toBe(1); expect(component.s3Keys[0].user).toBe('test1:subuser2'); expect(rgwUserService.addS3Key).toHaveBeenCalledWith('test1', { subuser: 'subuser2', generate_key: 'false', - access_key: undefined, - secret_key: undefined + access_key: 'my-access-key', + secret_key: 'my-secret-key' + }); + }); + + it('should set params for auto-generating key', () => { + const key = new RgwUserS3Key(); + key.user = 'test1:subuser2'; + key.generate_key = true; + key.access_key = 'my-access-key'; + key.secret_key = 'my-secret-key'; + component.setS3Key(key); + expect(component.s3Keys.length).toBe(1); + expect(component.s3Keys[0].user).toBe('test1:subuser2'); + expect(rgwUserService.addS3Key).toHaveBeenCalledWith('test1', { + subuser: 'subuser2', + generate_key: 'true' }); }); diff --git a/src/pybind/mgr/dashboard/frontend/src/app/ceph/rgw/rgw-user-form/rgw-user-form.component.ts b/src/pybind/mgr/dashboard/frontend/src/app/ceph/rgw/rgw-user-form/rgw-user-form.component.ts index 90fdee5593a..6868efd8d1b 100644 --- a/src/pybind/mgr/dashboard/frontend/src/app/ceph/rgw/rgw-user-form/rgw-user-form.component.ts +++ b/src/pybind/mgr/dashboard/frontend/src/app/ceph/rgw/rgw-user-form/rgw-user-form.component.ts @@ -395,10 +395,16 @@ export class RgwUserFormComponent implements OnInit { const uid = userMatches[1]; const args = { subuser: userMatches[2] ? userMatches[3] : '', - generate_key: key.generate_key ? 'true' : 'false', - access_key: key.access_key, - secret_key: key.secret_key + generate_key: key.generate_key ? 'true' : 'false' }; + if (args['generate_key'] === 'false') { + if (!_.isNil(key.access_key)) { + args['access_key'] = key.access_key; + } + if (!_.isNil(key.secret_key)) { + args['secret_key'] = key.secret_key; + } + } this.submitObservables.push(this.rgwUserService.addS3Key(uid, args)); // If the access and the secret key are auto-generated, then visualize // this to the user by displaying a notification instead of the key. -- 2.39.5