]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
mgr/dashboard: rename expand-cluster to add-storage 67647/head
authorAashish Sharma <aashish@li-e9bf2ecc-2ad7-11b2-a85c-baf05c5182ab.ibm.com>
Thu, 5 Mar 2026 06:33:00 +0000 (12:03 +0530)
committerAashish Sharma <aashish@li-e9bf2ecc-2ad7-11b2-a85c-baf05c5182ab.ibm.com>
Fri, 13 Mar 2026 04:46:00 +0000 (10:16 +0530)
Signed-off-by: Aashish Sharma <aasharma@redhat.com>
16 files changed:
src/pybind/mgr/dashboard/frontend/cypress/e2e/cluster/create-cluster.po.ts
src/pybind/mgr/dashboard/frontend/cypress/e2e/common/urls.po.ts
src/pybind/mgr/dashboard/frontend/cypress/e2e/orchestrator/workflow/01-create-cluster-welcome.feature
src/pybind/mgr/dashboard/frontend/cypress/e2e/orchestrator/workflow/02-create-cluster-add-host.feature
src/pybind/mgr/dashboard/frontend/src/app/app-routing.module.ts
src/pybind/mgr/dashboard/frontend/src/app/ceph/cluster/create-cluster/create-cluster.component.html
src/pybind/mgr/dashboard/frontend/src/app/ceph/cluster/create-cluster/create-cluster.component.scss
src/pybind/mgr/dashboard/frontend/src/app/ceph/cluster/create-cluster/create-cluster.component.spec.ts
src/pybind/mgr/dashboard/frontend/src/app/ceph/cluster/create-cluster/create-cluster.component.ts
src/pybind/mgr/dashboard/frontend/src/app/ceph/cluster/hosts/hosts.component.ts
src/pybind/mgr/dashboard/frontend/src/app/core/auth/login/login.component.spec.ts
src/pybind/mgr/dashboard/frontend/src/app/core/auth/login/login.component.ts
src/pybind/mgr/dashboard/frontend/src/app/core/navigation/notification-panel/notifications-page/notifications-page.component.scss
src/pybind/mgr/dashboard/frontend/src/app/shared/constants/app.constants.ts
src/pybind/mgr/dashboard/frontend/src/styles.scss
src/pybind/mgr/dashboard/frontend/src/styles/ceph-custom/_spacings.scss

index 97554ce1d7ed66873fd8c5717bb599c1435c9ec4..85a983f945f5e3f1e6b994aeea77840ec7f2a1bb 100644 (file)
@@ -4,14 +4,14 @@ import { HostsPageHelper } from './hosts.po';
 import { ServicesPageHelper } from './services.po';
 
 const pages = {
-  index: { url: '#/expand-cluster?welcome=true', id: 'cd-create-cluster' }
+  index: { url: '#/add-storage?welcome=true', id: 'cd-create-cluster' }
 };
 export class CreateClusterWizardHelper extends PageHelper {
   pages = pages;
 
   createCluster() {
     cy.get('cd-create-cluster').should('contain.text', 'Please expand your cluster first');
-    cy.get('[name=expand-cluster]').click();
+    cy.get('[name=add-storage]').click();
     cy.get('cd-wizard').should('exist');
   }
 
@@ -22,13 +22,13 @@ export class CreateClusterWizardHelper extends PageHelper {
     cy.get('cd-dashboard').should('exist');
     const notification = new NotificationSidebarPageHelper();
     notification.open();
-    notification.getNotifications().should('contain', 'Cluster expansion skipped by user');
+    notification.getNotifications().should('contain', 'Storage setup skipped by user');
   }
 }
 
 export class CreateClusterHostPageHelper extends HostsPageHelper {
   pages = {
-    index: { url: '#/expand-cluster?welcome=true', id: 'cd-wizard' },
+    index: { url: '#/add-storage?welcome=true', id: 'cd-wizard' },
     add: { url: '', id: 'cd-host-form' }
   };
 
@@ -42,7 +42,7 @@ export class CreateClusterHostPageHelper extends HostsPageHelper {
 
 export class CreateClusterServicePageHelper extends ServicesPageHelper {
   pages = {
-    index: { url: '#/expand-cluster?welcome=true', id: 'cd-wizard' },
+    index: { url: '#/add-storage?welcome=true', id: 'cd-wizard' },
     create: { url: '', id: 'cd-service-form' }
   };
 
index fc56fe7a9a1e21ada186b1d0e8a38b2f70a2591b..853b120745244fbd3e1fddc8aa3997546a50045e 100644 (file)
@@ -3,7 +3,7 @@ import { PageHelper } from '../page-helper.po';
 export class UrlsCollection extends PageHelper {
   pages = {
     // Cluster expansion
-    welcome: { url: '#/expand-cluster?welcome=true', id: 'cd-create-cluster' },
+    welcome: { url: '#/add-storage?welcome=true', id: 'cd-create-cluster' },
 
     // Landing page
     overview: { url: '#/overview', id: 'cd-dashboard' },
index a5809537fc6c399bf0f3b6e1606febdec1abf67c..21cb81698c56f26d64220aa38d3d52aabc1e750f 100644 (file)
@@ -8,14 +8,14 @@ Feature: Cluster expansion welcome screen
 
     Scenario: Cluster expansion welcome screen
         Given I am on the "welcome" page
-        And I should see a button to "Expand Cluster"
+        And I should see a button to "Add Storage"
         And I should see a button to "Skip"
         And I should see a message "Please expand your cluster first"
 
     Scenario: Go to the Cluster expansion wizard
         Given I am on the "welcome" page
-        And I should see a button to "Expand Cluster"
-        When I click on "Expand Cluster" button
+        And I should see a button to "Add Storage"
+        When I click on "Add Storage" button
         Then I am on the "Add Hosts" section
 
     Scenario: Skips the process and go to the landing page
index ba9acdc40b074a57b5c9a01206e29f20b1106d79..4709f36e9c49dbc879450e3b51082717a8acebf4 100644 (file)
@@ -7,7 +7,7 @@ Feature: Cluster expansion host addition
     Background: Cluster expansion wizard
         Given I am logged in
         And I am on the "welcome" page
-        And I click on "Expand Cluster" button
+        And I click on "Add Storage" button
 
     Scenario Outline: Add hosts
         Given I am on the "Add Hosts" section
index 9360cbdb302fbadca17c5771f396b5ea528a71a5..aabfbe29200ef4ca23d3c775551067f561241bea 100644 (file)
@@ -130,7 +130,7 @@ const routes: Routes = [
         component: NotificationsPageComponent
       },
       {
-        path: 'expand-cluster',
+        path: 'add-storage',
         component: CreateClusterComponent,
         canActivate: [ModuleStatusGuardService],
         data: {
@@ -138,8 +138,7 @@ const routes: Routes = [
             uiApiPath: 'orchestrator',
             redirectTo: 'overview',
             backend: 'cephadm'
-          },
-          breadcrumbs: 'Cluster/Expand Cluster'
+          }
         }
       },
       {
index f9ae6adb4a57335d0610c8b881c8ffa29d665e10..cc2b15ad27158c7850b46aa80fc923ff9d536562 100644 (file)
@@ -1,17 +1,17 @@
+@if (startClusterCreation) {
 <div class="container-fluid">
-  @if (startClusterCreation) {
   <div cdsRow
-       class="cds-ml-5 cds-mt-5">
+       class="cds-ml-5 cds-mt-6">
     <div cdsCol
          [columnNumbers]="{'lg': 13, 'md': 8, 'sm': 8}">
-      <div class="mb-5">
+      <div class="mb-4">
         <!-- htmllint img-req-src="false" -->
         <img [src]="projectConstants.cephLogo"
              alt="Ceph"
-             class="img-fluid">
+             class="ceph-logo">
       </div>
 
-      <div class="mb-5">
+      <div class="mb-4">
         <span class="cds--type-fluid-heading-05"
               i18n>Welcome to {{ projectConstants.projectName }}
         </span>
@@ -48,7 +48,7 @@
               i18n>Set up storage for your cluster to run workloads and store data. You can configure storage and data services now, or skip and configure them later.</span>
       </div>
 
-      <cds-tile class="storage-requirements-header"
+      <cds-tile class="border-subtle no-border-bottom"
                 [cdsLayer]="1">
         <div cdsStack="horizontal"
              gap="3">
@@ -62,7 +62,7 @@
         </div>
       </cds-tile>
 
-      <cds-tile class="storage-requirements-body mb-3"
+      <cds-tile class="border-subtle mb-3"
                 [cdsLayer]="2">
         <div cdsStack="horizontal"
              gap="4">
 
         <hr/>
 
-        <div cdsStack="horizontal" gap="4">
+        <div cdsStack="horizontal"
+             gap="4">
           <cd-icon type="vmdkDisk"
                    [size]="icons.size20">
           </cd-icon>
 
-          <div cdsStack="vertical" gap="1">
+          <div cdsStack="vertical"
+               gap="1">
             <span class="cds--type-heading-compact-01"
                   i18n>
               Disks
         <div cdsStack="horizontal"
              gap="4">
           <cd-icon type="clusterIcon"
-                  [size]="icons.size20">
+                   [size]="icons.size20">
           </cd-icon>
 
-          <div cdsStack="vertical" gap="1">
+          <div cdsStack="vertical"
+               gap="1">
             <span class="cds--type-heading-compact-01"
                   i18n>
               Data services (optional)
         </cd-alert-panel>
       </div>
 
-      <div class="mb-4">
+      <div class="mb-5">
         <button cdsButton="primary"
                 class="me-3"
                 (click)="createCluster()"
       </div>
     </div>
   </div>
- }
 </div>
+}
 
+@else {
 <div cdsRow
-     class="form"
-     *ngIf="!startClusterCreation">
+     class="form cds-mt-6">
   <div cdsCol
        [columnNumbers]="{'lg': 2, 'md': 2, 'sm': 2}"
        class="indicator-wrapper">
 
     <div class="form-header"
-         i18n>Expand Cluster</div>
+         i18n>Add Storage</div>
     <cd-wizard [stepsTitle]="stepTitles"></cd-wizard>
   </div>
 
     </ng-container>
     <div cdsRow
          class="m-5">
+      @if (stepTitles[currentStep?.stepIndex]?.label === 'Create OSDs') {
       <button cdsButton="secondary"
               class="me-3"
               id="skipStepBtn"
               (click)="onSkip()"
               aria-label="Skip this step"
-              *ngIf="stepTitles[currentStep?.stepIndex]?.label === 'Create OSDs'"
               i18n>Skip</button>
+      }
       <cd-back-button buttonType="secondary"
                       aria-label="Close"
                       (backAction)="onPreviousStep()"
     </div>
   </div>
 </div>
+}
 
 <ng-template #skipConfirmTpl>
-  <span i18n>You are about to skip the cluster expansion process.
-             Youll need to <strong>navigate through the menu to add hosts and services.</strong></span>
+  <span i18n>You are about to skip the storage setup process.
+             You'll need to <strong>navigate through the menu to add hosts and services.</strong></span>
 
-  <div class="mt-4"
+  <div class="cds-mt-4"
        i18n>Are you sure you want to continue?</div>
 </ng-template>
index 45e0c3bda734c6ab0f504dbcaef4ad34a02ca37f..3fb39ceef7885e57aff7eca77b4df4a2cd218e37 100644 (file)
@@ -1,3 +1,5 @@
+@use '@carbon/layout';
+
 .container-fluid {
   align-items: flex-start;
   display: flex;
@@ -21,11 +23,10 @@ cd-osd-form {
   }
 }
 
-.storage-requirements-body {
-  border: 1px solid var(--cds-border-subtle);
-}
-
 .storage-requirements-header {
-  border: 1px solid var(--cds-border-subtle);
   border-bottom: 0;
 }
+
+.ceph-logo {
+  width: 7%;
+}
index 08711c4ff5a024d2768d29641d45e1f7642137f7..e5797c827d9f89bd786908825ae6862d6d07bf61 100644 (file)
@@ -126,7 +126,7 @@ describe('CreateClusterComponent', () => {
     component.onNextStep();
     fixture.detectChanges();
     submitBtnLabel = component.showSubmitButtonLabel();
-    expect(submitBtnLabel).toEqual('Expand Cluster');
+    expect(submitBtnLabel).toEqual('Add Storage');
     cancelBtnLabel = component.showCancelButtonLabel();
     expect(cancelBtnLabel).toEqual('Back');
   });
index 19c6143fabc52a91eaefd9f46d90cfc865894732..c865161a3cf1d43cd66d20ed11fdaaf2c362b795 100644 (file)
@@ -113,7 +113,7 @@ export class CreateClusterComponent implements OnInit, OnDestroy, AfterViewInit
       steps.onClick = () => (this.currentStep.stepIndex = index);
     });
     this.route.queryParams.subscribe((params) => {
-      // reading 'welcome' value true/false to toggle expand-cluster wizand view and welcome view
+      // reading 'welcome' value true/false to toggle add-storage wizand view and welcome view
       const showWelcomeScreen = params['welcome'];
       if (showWelcomeScreen) {
         this.startClusterCreation = showWelcomeScreen;
@@ -151,7 +151,7 @@ export class CreateClusterComponent implements OnInit, OnDestroy, AfterViewInit
           complete: () => {
             this.notificationService.show(
               NotificationType.info,
-              $localize`Cluster expansion skipped by user`
+              $localize`Storage setup skipped by user`
             );
             this.router.navigate(['/overview']);
             this.modalService.dismissAll();
@@ -275,9 +275,7 @@ export class CreateClusterComponent implements OnInit, OnDestroy, AfterViewInit
   }
 
   showSubmitButtonLabel() {
-    return !this.wizardStepsService.isLastStep()
-      ? this.actionLabels.NEXT
-      : $localize`Expand Cluster`;
+    return !this.wizardStepsService.isLastStep() ? this.actionLabels.NEXT : $localize`Add Storage`;
   }
 
   showCancelButtonLabel() {
index 9e76f51ffd522a3e28e3768ca96f24774875fb15..d6f21651e0a3c89e9a7a64b2e5592c6af9941234 100644 (file)
@@ -139,11 +139,11 @@ export class HostsComponent extends ListWithDetails implements OnDestroy, OnInit
   ngOnInit() {
     this.expandClusterActions = [
       {
-        name: this.actionLabels.EXPAND_CLUSTER,
+        name: this.actionLabels.ADD_STORAGE,
         permission: 'create',
         buttonKind: 'secondary',
         icon: Icons.expand,
-        routerLink: '/expand-cluster',
+        routerLink: '/add-storage',
         disable: (selection: CdTableSelection) => this.getDisable('add', selection),
         visible: () => this.showExpandClusterBtn
       }
index 3b9e62c48299846ea49d546eadcc0a50bdd1df4d..a1c3b4ca5142ec825c777bc7c1f0d17d09b2a2d2 100644 (file)
@@ -53,7 +53,7 @@ describe('LoginComponent', () => {
     component.login();
 
     expect(routerNavigateSpy).toHaveBeenCalledTimes(1);
-    expect(routerNavigateSpy).toHaveBeenCalledWith(['/expand-cluster'], {
+    expect(routerNavigateSpy).toHaveBeenCalledWith(['/add-storage'], {
       queryParams: { welcome: true }
     });
   });
index 9b665f00f893cc95c4e1302b96649e02e1ffe725..4100e57a2331550edc8c90a62e492bc62b57c0b0 100644 (file)
@@ -67,12 +67,12 @@ export class LoginComponent implements OnInit {
   login() {
     localStorage.setItem('cluster_api_url', window.location.origin);
     this.authService.login(this.model).subscribe(() => {
-      const urlPath = this.postInstalled ? '/' : '/expand-cluster';
+      const urlPath = this.postInstalled ? '/' : '/add-storage';
       let url = _.get(this.route.snapshot.queryParams, 'returnUrl', urlPath);
       if (!this.postInstalled && this.route.snapshot.queryParams['returnUrl'] === '/overview') {
-        url = '/expand-cluster';
+        url = '/add-storage';
       }
-      if (url == '/expand-cluster') {
+      if (url === '/add-storage') {
         this.router.navigate([url], { queryParams: { welcome: true } });
       } else {
         this.router.navigate([url]);
index 2cd8e7112773d6434fb0af02b07f8a610d1fc993..33a8a08e1c2d8770aff08974f09fcd7793ad2517 100644 (file)
@@ -78,7 +78,6 @@
 // Notification details
 .notification-details {
   padding: var(--cds-spacing-05);
-  border: 1px solid var(--cds-border-subtle);
   border-radius: var(--cds-border-radius);
   background-color: var(--cds-layer-01);
 }
index e7b16fb3b1fd2b1ad36739f43c2188dc6b1f8eb9..6d63dd9e9dcd6de3b229457ffcafcae70a1800ce 100644 (file)
@@ -161,7 +161,7 @@ export class ActionLabelsI18n {
   DISCONNECT: string;
   RECONNECT: string;
   AUTHORIZE: string;
-  EXPAND_CLUSTER: string;
+  ADD_STORAGE: string;
   SETUP_MULTISITE_REPLICATION: string;
   NFS_EXPORT: string;
   VIEW: string;
@@ -253,7 +253,7 @@ export class ActionLabelsI18n {
     this.CONNECT = $localize`Connect`;
     this.DISCONNECT = $localize`Disconnect`;
     this.RECONNECT = $localize`Reconnect`;
-    this.EXPAND_CLUSTER = $localize`Expand Cluster`;
+    this.ADD_STORAGE = $localize`Add Storage`;
 
     this.NFS_EXPORT = $localize`Create NFS Export`;
     this.VIEW = $localize`View`;
index 902be1b14810d8e6b7ab792eae4d6222e46d7d1c..fd177f841845b33405fd3b7dde49a1beffa97054 100644 (file)
@@ -219,3 +219,7 @@ input:-webkit-autofill:active {
 .cds--progress-bar__bar {
   background-color: var(--cds-primary);
 }
+
+.border-subtle {
+  border: 1px solid var(--cds-border-subtle);
+}
index 10d29cb10016e53dd8f394fc89810080da624277..cb29ca8e494cea24b6d2cf4f1625a064d1076a5a 100644 (file)
   margin-top: layout.$spacing-01;
 }
 
+.cds-mt-4 {
+  margin-top: layout.$spacing-04;
+}
+
 .cds-mt-5 {
   margin-top: layout.$spacing-05;
 }