Skip to content

Select disk for app volume destination #7757

Closed
Closed

Activity

  1. added this to the NethServer 8.7 milestone on Nov 20, 2025
  2. DavidePrincipi commented on Nov 20, 2025

    @DavidePrincipi
    MemberAuthor

    🐛 It seems the clone/move scenario shows an enabled "Clone" button, where it should be disabled

    Furthermore, we'd replace the words "app(s)" and "instance(s)" in UI labels with a proper "application" wording.

    Image

    Discussion https://mattermost.nethesis.it/nethesis/pl/mic6r5fwq38tjgdj55qtsbe3fo

  3. moved this from ToDo to In Progress in NethServeron Jan 7, 2026
  4. stephdl commented on Jan 14, 2026

    @stephdl
  5. stephdl commented on Jan 14, 2026

    @stephdl

    see UI wizard change NethServer/ns8-ui-lib#50

  6. 4 remaining items

  7. stephdl commented on Feb 5, 2026

    @stephdl

    QA Testing Plan: Select disk for app volume destination

    Testing Package Version: 3.17.0-dev.11

    Prerequisites

    Step 1: Cluster Setup

    Install a NethServer 8 cluster with two nodes running version 3.17.0-dev.11:

    • Node 1 (R1): with additional volume support
    • Node 2 (R2): without additional volume

    Step 2: Configure Additional Disk on Node 1

    On the first node (R1), create and mount an additional disk:

    fdisk -l
    fdisk /dev/sdb
    mkfs.ext4 /dev/sdb1
    mkdir -p /mnt/data
    blkid /dev/sdb1
    vim /etc/fstab

    Add this line to /etc/fstab:

    UUID=109d0947-8cd9-441d-9887-902a3396beea /mnt/data ext4 defaults,nofail 0 2
    

    Verify the mount:

    ls /mnt/data/

    Verify the disk is detected by the system via the action:

    api-cli run node/1/list-mountpoints | jq

    Expected output should include:

    {
      "mountpoints": [
        {
          "path": "/mnt/data",
          "label": "",
          "size": 67317051392,
          "used": 7893012480,
          "available": 59424038912,
          "ui_name": "data"
        }
      ],
      "default_disk": {
        "size": 60747141120,
        "used": 11857985536,
        "available": 48889155584,
        "path": "/",
        "label": "",
        "ui_name": ""
      }
    }

    Test Scenarios

    Scenario 1: Single Node Testing

    Test 1.1: Install application without additional volume support (Mattermost)

    • On Node 1 (R1), install Mattermost
    • Verify that no additional volume selector is shown (app doesn't support additional volumes)
    • Verify the application installs successfully on the default disk

    Test 1.2: Install application with additional volume support (Nextcloud)

    • On Node 1 (R1), install Nextcloud
    • Verify that the additional volume selector is displayed during installation
    • Select the /mnt/data disk as the app volume destination
    • Verify the application installs successfully on the additional volume
    • Verify data is written to the additional volume

    Test 1.3: Backup and Restore with additional volume (Nextcloud)

    • On Node 1 (R1), install and fully configure Nextcloud on the additional volume
    • Generate test data within the configured instance
    • Backup the Nextcloud instance
    • Restore the instance
    • Verify the instance is restored to the same additional volume location
    • Verify all test data and configuration are preserved

    Test 1.3b: Backup and Restore without additional volume (Mattermost)

    • On Node 1 (R1), install and fully configure Mattermost on the default disk
    • Generate test data within the configured instance
    • Backup the Mattermost instance
    • Restore the instance
    • Verify the instance is restored to the default disk location
    • Verify all test data and configuration are preserved
    • Verify no issues occur during backup/restore of configured instance

    Test 1.4: Clone application with additional volume

    • On Node 1 (R1), install and fully configure Nextcloud on the additional volume
    • Generate test data within the configured instance
    • Clone the Nextcloud instance
    • Verify the clone also uses the additional volume
    • Verify the clone is fully configured and functional
    • Verify all test data is cloned correctly

    Test 1.5: Clone application without additional volume

    • On Node 1 (R1), install and fully configure Mattermost on the default disk
    • Generate test data within the configured instance
    • Clone the Mattermost instance
    • Verify the clone also uses the default disk
    • Verify the clone is fully configured and functional
    • Verify all test data is cloned correctly

    Scenario 2: Two Node Testing

    Test 2.1: Node Selection with Online/Offline Status

    • Verify that both nodes (R1 and R2) are shown as available in the UI
    • Verify offline nodes display a dedicated message explaining why they can't be selected
    • Verify node eligibility is properly evaluated

    Test 2.2: Install application on Node 1 (with additional volume)

    • Install Nextcloud on Node 1 (R1)
    • Verify the additional volume selector is available
    • Select /mnt/data as the destination
    • Verify installation succeeds

    Test 2.3: Install application on Node 2 (without additional volume)

    • Install Nextcloud on Node 2 (R2)
    • Verify that no additional volume selector is shown (no additional disk available)
    • Verify installation succeeds on the default disk

    Test 2.4: Move application with additional volume

    • On Node 1 (R1), install and fully configure Nextcloud with additional volume
    • Generate test data within the configured instance
    • Move the instance to Node 2 (R2)
    • Verify the instance is moved successfully
    • Verify the instance is still fully configured and functional on the default disk of Node 2
    • Verify all test data is preserved during the move

    Test 2.4b: Move application without additional volume (Mattermost)

    • On Node 1 (R1), install and fully configure Mattermost on the default disk
    • Generate test data within the configured instance
    • Move the instance to Node 2 (R2)
    • Verify the instance is moved successfully
    • Verify the instance is still fully configured and functional on Node 2's default disk
    • Verify all test data is preserved during the move
    • Verify no issues occur during move of configured instance

    Test 2.5: Move application to node with additional volume

    • On Node 2 (R2), install Mattermost on the default disk
    • Move the instance to Node 1 (R1)
    • Verify the instance can be moved to Node 1
    • Verify the instance functions correctly

    Test 2.6: Clone application across nodes with additional volume

    • On Node 1 (R1), install and fully configure Nextcloud on the additional volume
    • Generate test data within the configured instance
    • Clone to Node 2 (R2)
    • Verify the clone is created on Node 2's default disk (no additional volume available)
    • Verify the clone is fully configured and functional
    • Verify all test data is cloned correctly

    Test 2.6b: Clone application across nodes without additional volume (Mattermost)

    • On Node 1 (R1), install and fully configure Mattermost on the default disk
    • Generate test data within the configured instance
    • Clone to Node 2 (R2)
    • Verify the clone is created on Node 2's default disk
    • Verify the clone is fully configured and functional
    • Verify all test data is cloned correctly
    • Verify no issues occur during clone of configured instance

    Scenario 3: Account Provider Testing (OpenLDAP & Samba)

    Test 3.1: OpenLDAP Installation - No Regression

    Test 3.1.1: Install OpenLDAP on Node 1 (R1)
    • On Node 1 (R1), install OpenLDAP
    • Verify installation succeeds on the default disk only
    • Verify no additional volume selector is shown (OpenLDAP doesn't support additional volumes)
    • Verify OpenLDAP service is running correctly
    Test 3.1.2: Install OpenLDAP on Node 2 (R2)
    • On Node 2 (R2), install OpenLDAP
    • Verify installation succeeds on the default disk
    • Verify no additional volume selector is shown
    • Verify OpenLDAP service is running correctly
    Test 3.1.3: Interrupt OpenLDAP domain creation before triggering installation
    • Start OpenLDAP installation on Node 1 (R1)
    • Proceed to domain configuration step
    • Cancel the installation BEFORE triggering the actual deployment
    • Verify no data is created on the system
    • Verify no cleanup is required
    Test 3.1.4: Interrupt OpenLDAP installation after deployment has started
    • Start OpenLDAP installation on Node 1 (R1)
    • Proceed to domain configuration step
    • Trigger the installation deployment
    • Interrupt the process during deployment
    • Verify the installation is partially deployed
    • Note: Manual removal of leftover data is required

    Test 3.2: OpenLDAP Add Provider - No Regression

    Test 3.2.1: Add OpenLDAP provider on existing instance (Node 1)
    • On Node 1 (R1) with existing OpenLDAP, add a new provider
    • Verify provider creation UI displays correctly
    • Complete provider configuration
    • Verify provider is added successfully
    • Verify data persists on the default disk
    Test 3.2.2: Add OpenLDAP provider on existing instance (Node 2)
    • On Node 2 (R2) with existing OpenLDAP, add a new provider
    • Verify provider creation UI displays correctly
    • Complete provider configuration
    • Verify provider is added successfully
    • Verify data persists on the default disk
    Test 3.2.3: Interrupt OpenLDAP provider creation before triggering deployment
    • Start adding a new provider to existing OpenLDAP
    • Proceed to provider configuration step
    • Cancel the creation BEFORE triggering the actual deployment
    • Verify no provider data is created
    • Verify existing providers remain unaffected
    • Verify no cleanup is required
    Test 3.2.4: Interrupt OpenLDAP provider deployment after it has started
    • Start adding a new provider to existing OpenLDAP
    • Proceed to provider configuration step
    • Trigger the provider deployment
    • Interrupt the process during deployment
    • Verify the provider is partially deployed
    • Note: Manual removal of leftover provider data is required
    • Verify existing providers remain unaffected

    Test 3.3: Samba Installation with Additional Volume Support

    Test 3.3.1: Install Samba on Node 1 (R1) with additional volume
    • On Node 1 (R1), install Samba
    • Verify additional volume selector is available
    • Select /mnt/data as the destination
    • Verify installation succeeds on the additional volume
    • Verify Samba service is running correctly
    • Verify shared folders can be created
    Test 3.3.2: Install Samba on Node 2 (R2) without additional volume
    • On Node 2 (R2), install Samba
    • Verify no additional volume selector is shown
    • Verify installation succeeds on the default disk
    • Verify Samba service is running correctly
    Test 3.3.3: Interrupt Samba domain creation before triggering installation
    • Start Samba installation on Node 1 (R1)
    • Proceed to domain configuration step
    • Cancel the installation BEFORE triggering the actual deployment
    • Verify no data is created on the volume
    • Verify no cleanup is required
    Test 3.3.4: Interrupt Samba installation after deployment has started
    • Start Samba installation on Node 1 (R1)
    • Proceed to domain configuration step
    • Trigger the installation deployment
    • Interrupt the process during deployment
    • Verify the installation is partially deployed on the additional volume
    • Note: Manual removal of leftover data is required

    Test 3.4: Samba Add Provider with Additional Volume Support

    Test 3.4.1: Add Samba provider on existing instance (Node 1 with additional volume)
    • On Node 1 (R1) with existing Samba on additional volume, add a new provider
    • Verify provider creation UI displays correctly
    • Complete provider configuration
    • Verify provider is added successfully
    • Verify data persists on the additional volume
    Test 3.4.2: Add Samba provider on existing instance (Node 2 without additional volume)
    • On Node 2 (R2) with existing Samba on default disk, add a new provider
    • Verify provider creation UI displays correctly
    • Complete provider configuration
    • Verify provider is added successfully
    • Verify data persists on the default disk
    Test 3.4.3: Interrupt Samba provider creation before triggering deployment
    • Start adding a new provider to existing Samba
    • Proceed to provider configuration step
    • Cancel the creation BEFORE triggering the actual deployment
    • Verify no provider data is created on the volume
    • Verify existing providers remain unaffected
    • Verify no cleanup is required
    Test 3.4.4: Interrupt Samba provider deployment after it has started
    • Start adding a new provider to existing Samba
    • Proceed to provider configuration step
    • Trigger the provider deployment
    • Interrupt the process during deployment
    • Verify the provider is partially deployed on the volume
    • Note: Manual removal of leftover provider data is required
    • Verify existing providers remain unaffected

    Test 3.5: Shared Folders Configuration

    Test 3.5.1: Enable shared folders during Samba installation (with additional volume)
    • Install Samba on Node 1 (R1) with additional volume
    • Enable shared folders during installation
    • Select /mnt/data as the destination
    • Verify shared folders are created and accessible
    • Verify folder permissions are correctly set
    Test 3.5.2: Disable shared folders during Samba installation
    • Install Samba on Node 2 (R2) without shared folders option
    • Verify installation succeeds without creating shared folders
    • Verify Samba service runs correctly
    • Verify shared folders can be added later if needed
    Test 3.5.3: Add shared folders after Samba installation
    • On existing Samba instance, add shared folders
    • Verify folders are created on the correct volume (additional or default)
    • Verify folder permissions are correctly set
    • Verify shared folders are accessible

    Verification Checklist

    General Volume & Storage

    • ✓ Node 1 additional disk is properly detected via list-mountpoints
    • ✓ UI displays additional volume selector only when available
    • ✓ Applications can be installed on additional volumes
    • ✓ Applications can be installed on default disks

    Backup & Restore Operations

    • ✓ Backup/restore operations preserve the additional volume configuration
    • ✓ Data integrity is maintained after restore

    Clone & Move Operations

    • ✓ Clone operations work correctly with additional volumes
    • ✓ Move operations work correctly between nodes with/without additional volumes

    UI & User Experience

    • ✓ Offline nodes display appropriate feedback message
    • ✓ Node eligibility logic correctly enables/disables node selection
    • ✓ VolumeSelector and NodeSelector UI layout is consistent
    • ✓ Loading indicators display properly throughout the flows

    Error Handling & Logs

    • ✓ No errors occur during Install, Clone, Move, Backup, or Restore operations
    • ✓ System logs properly document all operations
    • ✓ Interruption scenarios are properly workable in the UI (no ghost values or weird things)

    Account Providers (OpenLDAP & Samba)

    • ✓ OpenLDAP installations don't show volume selector (no additional volume support)
    • ✓ Samba installations display volume selector when available
    • ✓ Provider creation/addition works on both nodes with different configurations
    • ✓ Interruption handling works correctly (before and after deployment)
    • ✓ Shared folders can be created, enabled, and disabled as expected
    • ✓ Provider data persists on correct volumes after operations

    Notes

    General Testing Guidelines

    • All testing should be performed on version 3.17.0-dev.11
    • Test both single-instance and multi-instance scenarios
    • Verify UI consistency and proper feedback for all operations

    Account Provider Testing Notes

    • OpenLDAP does NOT support additional volumes - always uses default disk
    • Samba DOES support additional volumes - test both configurations
    • When interrupting operations BEFORE deployment: automatic rollback occurs, no manual cleanup required
    • When interrupting operations AFTER deployment has started: manual cleanup of leftover data is required
    • Test with multiple providers on the same instance to ensure data consistency
    • Shared folders configuration should be tested independently and in combination with volume selection

    Performance & Stability Notes

    • Monitor system resources during multi-instance operations
    • Verify no race conditions occur when moving/cloning instances simultaneously
    • Check disk space utilization on both default and additional volumes after operations
    • Verify no data corruption occurs during interruptions or failures

    Regression Testing Notes

    • Ensure OpenLDAP maintains backward compatibility (no volume selection)
    • Verify Samba maintains backward compatibility when no additional volumes are available
    • Test provider migrations from earlier versions if applicable
    • Verify all existing functionality continues to work without regression

    UI Library Update Notes (ns8-ui-lib v1.12.0)

    • Wizard Last Step Icon Removal: With ns8-ui-lib v1.12.0, the wizard icon should be removed at the final step
    • Verify icon is properly hidden on the last step of all installation/creation wizards
    • Test with all scenarios: Nextcloud, Mattermost, OpenLDAP, and Samba installations
    • Verify wizard UI appearance is correct and consistent across all provider types
    • Ensure the wizard flow is not affected by the icon removal
  8. assigned and unassigned on Feb 5, 2026
  9. added
    testingPackages are available from testing repositories
    on Feb 5, 2026
  10. moved this from In Progress to Testing in NethServeron Feb 5, 2026
  11. mrmarkuz commented on Feb 6, 2026

    @mrmarkuz
    Member

    Scenario 1 verified
    Scenario 2 verified
    Scenario 3 verified

  12. added
    verifiedAll test cases were verified successfully
    on Feb 6, 2026
  13. removed
    testingPackages are available from testing repositories
    on Feb 6, 2026
  14. moved this from Testing to Verified in NethServeron Feb 6, 2026
  15. removed their assignment
    on Feb 6, 2026
  16. DavidePrincipi commented on Feb 9, 2026

    @DavidePrincipi
    MemberAuthor
  17. moved this from Verified to Done in NethServeron Feb 9, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    milestone goal 👑This describes an announced milestone goalverifiedAll test cases were verified successfully

    Projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions