From: Afreen Misbah Date: Tue, 20 Aug 2024 09:17:47 +0000 (+0530) Subject: mgr/dashboard: Add group field in nvmeof service form X-Git-Tag: testing/wip-rishabh-testing-20240908.191426-squid-debug~15^2~1 X-Git-Url: http://git.apps.os.sepia.ceph.com/?a=commitdiff_plain;h=e896722aeb277214c7d72820d411c717acd10d09;p=ceph-ci.git mgr/dashboard: Add group field in nvmeof service form Fixes https://tracker.ceph.com/issues/67223 Signed-off-by: Afreen Misbah (cherry picked from commit c90cf8460e02000197b52ca1e7ffaa206c5fd997) --- diff --git a/src/pybind/mgr/dashboard/frontend/src/app/ceph/cluster/services/service-form/service-form.component.html b/src/pybind/mgr/dashboard/frontend/src/app/ceph/cluster/services/service-form/service-form.component.html index 7a439e23dfe..bd8b12564eb 100644 --- a/src/pybind/mgr/dashboard/frontend/src/app/ceph/cluster/services/service-form/service-form.component.html +++ b/src/pybind/mgr/dashboard/frontend/src/app/ceph/cluster/services/service-form/service-form.component.html @@ -105,6 +105,30 @@ + +
+ +
+
+ +
+ + The name of the gateway group. + + This field is required. +
+
+
diff --git a/src/pybind/mgr/dashboard/frontend/src/app/ceph/cluster/services/service-form/service-form.component.spec.ts b/src/pybind/mgr/dashboard/frontend/src/app/ceph/cluster/services/service-form/service-form.component.spec.ts index db1e7851c2e..7d3a57fad23 100644 --- a/src/pybind/mgr/dashboard/frontend/src/app/ceph/cluster/services/service-form/service-form.component.spec.ts +++ b/src/pybind/mgr/dashboard/frontend/src/app/ceph/cluster/services/service-form/service-form.component.spec.ts @@ -392,6 +392,7 @@ x4Ea7kGVgx9kWh5XjWz9wjZvY49UKIT5ppIAWPMbLl3UpfckiuNhTA== formHelper.setValue('service_type', 'nvmeof'); formHelper.setValue('service_id', 'svc'); formHelper.setValue('pool', 'xyz'); + formHelper.setValue('group', 'abc'); }); it('should submit nvmeof', () => { @@ -401,7 +402,8 @@ x4Ea7kGVgx9kWh5XjWz9wjZvY49UKIT5ppIAWPMbLl3UpfckiuNhTA== service_id: 'svc', placement: {}, unmanaged: false, - pool: 'xyz' + pool: 'xyz', + group: 'abc' }); }); @@ -412,6 +414,10 @@ x4Ea7kGVgx9kWh5XjWz9wjZvY49UKIT5ppIAWPMbLl3UpfckiuNhTA== it('should throw error when there is no pool', () => { formHelper.expectErrorChange('pool', '', 'required'); }); + + it('should throw error when there is no group', () => { + formHelper.expectErrorChange('group', '', 'required'); + }); }); describe('should test service smb', () => { diff --git a/src/pybind/mgr/dashboard/frontend/src/app/ceph/cluster/services/service-form/service-form.component.ts b/src/pybind/mgr/dashboard/frontend/src/app/ceph/cluster/services/service-form/service-form.component.ts index da7fca61bc2..a37cca34014 100644 --- a/src/pybind/mgr/dashboard/frontend/src/app/ceph/cluster/services/service-form/service-form.component.ts +++ b/src/pybind/mgr/dashboard/frontend/src/app/ceph/cluster/services/service-form/service-form.component.ts @@ -195,6 +195,7 @@ export class ServiceFormComponent extends CdForm implements OnInit { }) ] ], + group: [null, Validators.required], // RGW rgw_frontend_port: [null, [CdValidators.number(false)]], realm_name: [null], @@ -522,6 +523,7 @@ export class ServiceFormComponent extends CdForm implements OnInit { break; case 'nvmeof': this.serviceForm.get('pool').setValue(response[0].spec.pool); + this.serviceForm.get('group').setValue(response[0].spec.group); break; case 'rgw': this.serviceForm @@ -778,10 +780,13 @@ export class ServiceFormComponent extends CdForm implements OnInit { ?.pool_name; if (defaultRbdPool) { this.serviceForm.get('pool').setValue(defaultRbdPool); - this.serviceForm.get('service_id').setValue(defaultRbdPool); } } + onNvmeofGroupChange(groupName: string) { + this.serviceForm.get('service_id').setValue(groupName); + } + requiresServiceId(serviceType: string) { return ['mds', 'rgw', 'nfs', 'iscsi', 'nvmeof', 'smb', 'ingress'].includes(serviceType); } @@ -837,6 +842,7 @@ export class ServiceFormComponent extends CdForm implements OnInit { break; case 'nvmeof': this.serviceForm.get('pool').disable(); + this.serviceForm.get('group').disable(); break; } } @@ -920,6 +926,9 @@ export class ServiceFormComponent extends CdForm implements OnInit { break; case 'nvmeof': + serviceSpec['pool'] = values['pool']; + serviceSpec['group'] = values['group']; + break; case 'iscsi': serviceSpec['pool'] = values['pool']; break; diff --git a/src/pybind/mgr/dashboard/frontend/src/app/shared/models/service.interface.ts b/src/pybind/mgr/dashboard/frontend/src/app/shared/models/service.interface.ts index 77b2dfde591..8f2d3faca71 100644 --- a/src/pybind/mgr/dashboard/frontend/src/app/shared/models/service.interface.ts +++ b/src/pybind/mgr/dashboard/frontend/src/app/shared/models/service.interface.ts @@ -31,6 +31,7 @@ export interface CephServiceAdditionalSpec { monitor_port: number; virtual_interface_networks: string[]; pool: string; + group: string; rgw_frontend_ssl_certificate: string; ssl: boolean; ssl_cert: string;