]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
mgr/dashboard: Increase maximum namespace count to 1024 59569/head
authorAfreen Misbah <afreen23.git@gmail.com>
Tue, 3 Sep 2024 07:26:42 +0000 (12:56 +0530)
committerAfreen Misbah <afreen23.git@gmail.com>
Thu, 5 Sep 2024 10:46:08 +0000 (16:16 +0530)
Fixes https://tracker.ceph.com/issues/67871

The maximum namespace count will be 1024 for subsystems now.

Signed-off-by: Afreen Misbah <afreen23.git@gmail.com>
src/pybind/mgr/dashboard/controllers/nvmeof.py
src/pybind/mgr/dashboard/frontend/src/app/ceph/block/nvmeof-subsystems-form/nvmeof-subsystems-form.component.html
src/pybind/mgr/dashboard/frontend/src/app/ceph/block/nvmeof-subsystems-form/nvmeof-subsystems-form.component.spec.ts
src/pybind/mgr/dashboard/frontend/src/app/ceph/block/nvmeof-subsystems-form/nvmeof-subsystems-form.component.ts
src/pybind/mgr/dashboard/frontend/src/app/shared/api/nvmeof.service.ts
src/pybind/mgr/dashboard/openapi.yaml

index e050ecdf6a6c08a5856e371d766ecaf67da5a276..b40690d8380c7a1b49920a53738f25441ccaf15d 100644 (file)
@@ -61,13 +61,13 @@ else:
             "Create a new NVMeoF subsystem",
             parameters={
                 "nqn": Param(str, "NVMeoF subsystem NQN"),
-                "max_namespaces": Param(int, "Maximum number of namespaces", True, 256),
+                "max_namespaces": Param(int, "Maximum number of namespaces", True, 1024),
                 "enable_ha": Param(bool, "Enable high availability"),
             },
         )
         @empty_response
         @handle_nvmeof_error
-        def create(self, nqn: str, enable_ha: bool, max_namespaces: int = 256):
+        def create(self, nqn: str, enable_ha: bool, max_namespaces: int = 1024):
             return NVMeoFClient().stub.create_subsystem(
                 NVMeoFClient.pb2.create_subsystem_req(
                     subsystem_nqn=nqn, max_namespaces=max_namespaces, enable_ha=enable_ha
index 1032a0d1e26f2a09df65537220828513ed6eef00..5ccc48eeeaef44ea99eb929b92bdc082f19acf7e 100644 (file)
                    type="text"
                    name="max_namespaces"
                    formControlName="max_namespaces">
-            <cd-help-text i18n>The maximum namespaces per subsystem. Default is 256.</cd-help-text>
+            <cd-help-text i18n>The maximum namespaces per subsystem. Default is {{defaultMaxNamespace}}</cd-help-text>
             <span class="invalid-feedback"
                   *ngIf="subsystemForm.showError('max_namespaces', formDir, 'min')"
                   i18n>The value must be at least 1.</span>
             <span class="invalid-feedback"
                   *ngIf="subsystemForm.showError('max_namespaces', formDir, 'max')"
-                  i18n>The value cannot be greated than 256.</span>
+                  i18n>The value cannot be greater than {{defaultMaxNamespace}}.</span>
             <span class="invalid-feedback"
                   *ngIf="subsystemForm.showError('max_namespaces', formDir, 'pattern')"
-                  i18n>The value must be  a positive integer.</span>
+                  i18n>The value must be a positive integer.</span>
           </div>
         </div>
       </div>
index 4e9c420c9f0e4097325e7e3caece9c27c050156d..08e56debf0a741b77efce45be0809e5ad6e68a75 100644 (file)
@@ -11,7 +11,7 @@ import { CdFormGroup } from '~/app/shared/forms/cd-form-group';
 import { SharedModule } from '~/app/shared/shared.module';
 import { NvmeofSubsystemsFormComponent } from './nvmeof-subsystems-form.component';
 import { FormHelper } from '~/testing/unit-test-helper';
-import { NvmeofService } from '~/app/shared/api/nvmeof.service';
+import { MAX_NAMESPACE, NvmeofService } from '~/app/shared/api/nvmeof.service';
 
 describe('NvmeofSubsystemsFormComponent', () => {
   let component: NvmeofSubsystemsFormComponent;
@@ -59,7 +59,7 @@ describe('NvmeofSubsystemsFormComponent', () => {
       component.onSubmit();
       expect(nvmeofService.createSubsystem).toHaveBeenCalledWith({
         nqn: expectedNqn,
-        max_namespaces: 256,
+        max_namespaces: MAX_NAMESPACE,
         enable_ha: true
       });
     });
@@ -76,8 +76,8 @@ describe('NvmeofSubsystemsFormComponent', () => {
       formHelper.expectError('max_namespaces', 'pattern');
     });
 
-    it('should give error on max_namespaces greater than 256', () => {
-      formHelper.setValue('max_namespaces', 300);
+    it(`should give error on max_namespaces greater than ${MAX_NAMESPACE}`, () => {
+      formHelper.setValue('max_namespaces', 2000);
       component.onSubmit();
       formHelper.expectError('max_namespaces', 'max');
     });
index 5debb52c4d3abb565c94f99d24c9a06ca6e80b0f..5c2e1ce5250eedbec9c7a40687d8ca30a54cea66 100644 (file)
@@ -10,7 +10,7 @@ import { AuthStorageService } from '~/app/shared/services/auth-storage.service';
 import { TaskWrapperService } from '~/app/shared/services/task-wrapper.service';
 import { FinishedTask } from '~/app/shared/models/finished-task';
 import { Router } from '@angular/router';
-import { NvmeofService } from '~/app/shared/api/nvmeof.service';
+import { MAX_NAMESPACE, NvmeofService } from '~/app/shared/api/nvmeof.service';
 
 @Component({
   selector: 'cd-nvmeof-subsystems-form',
@@ -23,6 +23,7 @@ export class NvmeofSubsystemsFormComponent implements OnInit {
   action: string;
   resource: string;
   pageURL: string;
+  defaultMaxNamespace: number = MAX_NAMESPACE;
 
   constructor(
     private authStorageService: AuthStorageService,
@@ -68,8 +69,12 @@ export class NvmeofSubsystemsFormComponent implements OnInit {
           CdValidators.unique(this.nvmeofService.isSubsystemPresent, this.nvmeofService)
         ]
       }),
-      max_namespaces: new UntypedFormControl(256, {
-        validators: [CdValidators.number(false), Validators.max(256), Validators.min(1)]
+      max_namespaces: new UntypedFormControl(this.defaultMaxNamespace, {
+        validators: [
+          CdValidators.number(false),
+          Validators.max(this.defaultMaxNamespace),
+          Validators.min(1)
+        ]
       })
     });
   }
index 4b4c4e86693ca77d8476d6772e959d581659ee12..7c72530e84a288ff7c3cbabd2445d7b031512c63 100644 (file)
@@ -5,6 +5,8 @@ import _ from 'lodash';
 import { Observable, of as observableOf } from 'rxjs';
 import { catchError, mapTo } from 'rxjs/operators';
 
+export const MAX_NAMESPACE = 1024;
+
 export interface ListenerRequest {
   host_name: string;
   traddr: string;
index b5a34304ada12a19b8fc67953aeebd384eb362f6..1b95c1d22035499988d16a55096c351be6d4456c 100644 (file)
@@ -8237,7 +8237,7 @@ paths:
                   description: Enable high availability
                   type: boolean
                 max_namespaces:
-                  default: 256
+                  default: 1024
                   description: Maximum number of namespaces
                   type: integer
                 nqn: