Skip to content

CloudStack Volume support with ONTAP storage#13053

Open
rajiv-jain-netapp wants to merge 102 commits into
apache:mainfrom
NetApp:sync/apache-main-apr-2026
Open

CloudStack Volume support with ONTAP storage#13053
rajiv-jain-netapp wants to merge 102 commits into
apache:mainfrom
NetApp:sync/apache-main-apr-2026

Conversation

@rajiv-jain-netapp
Copy link
Copy Markdown

@rajiv-jain-netapp rajiv-jain-netapp commented Apr 22, 2026

Description

Co-authored-by: Sandeep Locharla sandeep.locharla@netapp.com
Co-authored-by: Piyush Srivastava piyush5@netapp.com
Co-authored-by: Surya Gupta suryag@netapp.com

This PR...

  1. Supports cloudstack-volume usecases support for NFS3 and iSCSI protocols.
  2. Support for cloudStack-volume create/delete/attach/detach/snapshot-create.
  3. Instance create/delete/snapshot-create support
  4. Snapshot-create would not support
    1. memory snapshot
    2. user input for quicing option during snapshot creation

Types of changes

  • Breaking change (fix or feature that would cause existing functionality to change)
  • New feature (non-breaking change which adds functionality)
  • Bug fix (non-breaking change which fixes an issue)
  • Enhancement (improves an existing feature and functionality)
  • Cleanup (Code refactoring and cleanup, that may add test cases)
  • Build/CI
  • Test (unit or integration test code)

Feature/Enhancement Scale or Bug Severity

Feature/Enhancement Scale

  • Major
  • Minor

Bug Severity

  • BLOCKER
  • Critical
  • Major
  • Minor
  • Trivial

Screenshots (if appropriate):

How Has This Been Tested?

Testing Done:

  1. VM create
Screenshot 2026-04-21 at 8 23 41 PM
  1. Validate the respective CloudStack volume
Screenshot 2026-04-21 at 8 24 08 PM
  1. Storage view for the cloudStack volumes
Screenshot 2026-04-21 at 8 32 03 PM
  1. VM snapshot support
Screenshot 2026-04-21 at 8 34 48 PM
  1. Storage view, post snapshot create
Screenshot 2026-04-21 at 8 35 16 PM
  1. CloudStack UI list view for snapshot
Screenshot 2026-04-21 at 8 35 47 PM
  1. CloudStack volume snapshot support
Screenshot 2026-04-21 at 8 36 34 PM
  1. Storage view, post snapshot create
Screenshot 2026-04-21 at 8 37 09 PM
  1. CloudStack UI list view for snapshot
Screenshot 2026-04-21 at 8 43 32 PM

How did you try to break this feature and the system with this change?

Jain, Rajiv and others added 30 commits October 3, 2025 14:02
… added EOF fixes + correcting license header
Initial primary storage pool plugin skeleton
Feignconfiguration and volume feignClient along with desired POJOs with cstack 28
* CSTACKEX-29 Cluster, SVM and Aggr Feign Client

* CSTACKEX-29 Change the endpoint method name in feign client

* CSTACKEX-29 Make the alignment proper

* CSTACKEX-29 Added License Info

* CSTACKEX-29 Resolve Review Comments

* CSTACKEX-29 Remove Component Annotation from datastoredriverclass

* CSTACKEX-29 Resolve Style check issues

* CSTACKEX-29 Resolve ALL Style issues

* CSTACKEX-29 Resolve Precommits Issues

* CSTACKEX-29 Added Method comments and change the ontap response class name

---------

Co-authored-by: Gupta, Surya <Surya.Gupta@netapp.com>
* CSTACKEX-31 NAS and Job Feign Client and POJOs

* CSTACKEX-31 Fixed Checks Issues

* CSTACKEX-31 Resolve Review Comments

* CSTACKEX-31 Resolve Review Comments

* CSTACKEX-31 Resolve Review Comments

* CSTACKEX-31 Added Aggr and size to volume model

* CSTACKEX-31 Change the export policy endpoint path

* CSTACKEX-31 Fixed check styles

---------

Co-authored-by: Gupta, Surya <Surya.Gupta@netapp.com>
* CSTACKEX-30 SAN Feign Client

* CSTACKEX-30 Fixed check style issues

* CSTACKEX-30 Fixed review comments

---------

Co-authored-by: Gupta, Surya <Surya.Gupta@netapp.com>
* CSTACKEX-7: ONTAP Primary storage pool

---------

Co-authored-by: Locharla, Sandeep <Sandeep.Locharla@netapp.com>
CSTACKEX-34: Upgrade to framework classes design
* CSTACKEX-35 Create Async

* CSTACKEX-35 Added Null and empty check

* CSTACKEX-35 Resolved review comments

* CSTACKEX-35 Removed Type Casting for logger

---------

Co-authored-by: Gupta, Surya <Surya.Gupta@netapp.com>
* CSTACKEX-1: Feign changes and fixes for getting storage pool creation to work

* CSTACKEX-01: Create Primary Storage pool changes with working code

* CSTACKEX-01: Addressed all review comments and updated some code

* CSTACKEX-01: Made some changes to fix some errors seen during testing

* CSTACKEX-01: Addressed additional comments

---------

Co-authored-by: Locharla, Sandeep <Sandeep.Locharla@netapp.com>
@piyush5netapp
Copy link
Copy Markdown

@winterhazel I have pushed changes addressing most of the changes you suggested except for the comments "This if can be inverted to throw early and reduce the indentation" where we can discuss more. Please re-review.
Also, let me know if you want me to resolve conversation 1 by 1, I can do that .

@winterhazel
Copy link
Copy Markdown
Member

@piyush5netapp thanks. I intend to have a look at the feedback and the new changes later today. I will resolve the open conversations that were already addressed as I read them.

@winterhazel winterhazel mentioned this pull request May 11, 2026
14 tasks
@winterhazel
Copy link
Copy Markdown
Member

@piyush5netapp @rajiv-jain-netapp I went through the reviews and resolved the ones that already seem addressed. Could you go through the comments that are still open and address them, or close with a comment if you judge it unnecessary (the indentation ones)?

 - extracted the ONTAP plugin name to interface nane to use it from one place.
 - Corrected indentation gaps.
@rajiv-jain-netapp
Copy link
Copy Markdown
Author

Thank you for your comments, @winterhazel.
I have updated the PR—please take a look at your convenience. I’ve addressed several of the pending items with additional commits today and have also provided responses to clarify some of the points raised.

@rajiv-jain-netapp
Copy link
Copy Markdown
Author

@winterhazel @DaanHoogland @weizhouapache

Gentle reminder to review the PR. We are looking to incorporate feedback and progress further—your inputs would be highly valuable. Appreciate your support!

@sureshanaparti
Copy link
Copy Markdown
Contributor

@blueorangutan package

@blueorangutan
Copy link
Copy Markdown

@sureshanaparti a [SL] Jenkins job has been kicked to build packages. It will be bundled with no SystemVM templates. I'll keep you posted as I make progress.

@blueorangutan
Copy link
Copy Markdown

Packaging result [SF]: ✖️ el8 ✖️ el9 ✖️ debian ✖️ suse15. SL-JID 17898

piyush5netapp and others added 3 commits May 19, 2026 18:25
 - extracted the ONTAP plugin name to interface nane to use it from one place.
 - Corrected indentation gaps.
@DaanHoogland
Copy link
Copy Markdown
Contributor

@blueorangutan package

@blueorangutan
Copy link
Copy Markdown

@DaanHoogland a [SL] Jenkins job has been kicked to build packages. It will be bundled with no SystemVM templates. I'll keep you posted as I make progress.

@blueorangutan
Copy link
Copy Markdown

Packaging result [SF]: ✔️ el8 ✔️ el9 ✔️ el10 ✔️ debian ✔️ suse15. SL-JID 17938

@weizhouapache
Copy link
Copy Markdown
Member

@blueorangutan test

@blueorangutan
Copy link
Copy Markdown

@weizhouapache a [SL] Trillian-Jenkins test job (ol8 mgmt + kvm-ol8) has been kicked to run smoke tests

@winterhazel
Copy link
Copy Markdown
Member

Thank you for your comments, @winterhazel. I have updated the PR—please take a look at your convenience. I’ve addressed several of the pending items with additional commits today and have also provided responses to clarify some of the points raised.

@rajiv-jain-netapp there are still some comments that were not addressed. Could you have a look?

Also, I did not receive any responses on this day you commented, maybe you added them to a review and forgot to submit it?

Comment on lines +32 to +34
@JsonProperty("name")

private String name;
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
@JsonProperty("name")
private String name;
@JsonProperty("name")
private String name;

Addressing some formatting issues from the latest commits

Comment on lines +48 to +49
public void setName(String name) {
this.name = name; }
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
public void setName(String name) {
this.name = name; }
public void setName(String name) {
this.name = name;
}

Formatting

}
if (StringUtils.isBlank(providerName)) {

if (StringUtils.isBlank(providerName )) {
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
if (StringUtils.isBlank(providerName )) {
if (StringUtils.isBlank(providerName)) {

@blueorangutan
Copy link
Copy Markdown

[SF] Trillian test result (tid-16133)
Environment: kvm-ol8 (x2), zone: Advanced Networking with Mgmt server ol8
Total time taken: 82743 seconds
Marvin logs: https://github.com/blueorangutan/acs-prs/releases/download/trillian/pr13053-t16133-kvm-ol8.zip
Smoke tests completed. 145 look OK, 6 have errors, 0 did not run
Only failed and skipped tests results shown below:

Test Result Time (s) Test File
test_vm_backup_create_vm_from_backup Failure 607.91 test_backup_recovery_nas.py
test_vm_backup_lifecycle Error 0.09 test_backup_recovery_nas.py
test_router_dhcphosts Failure 25.69 test_router_dhcphosts.py
ContextSuite context=TestSharedFSLifecycle>:setup Error 0.00 test_sharedfs_lifecycle.py
test_10_attachAndDetach_iso Failure 634.31 test_vm_life_cycle.py
test_01_create_vm_snapshots Failure 606.75 test_vm_snapshots.py
test_02_revert_vm_snapshots Failure 600.63 test_vm_snapshots.py
test_03_delete_vm_snapshots Failure 0.03 test_vm_snapshots.py
test_01_create_volume Failure 612.48 test_volumes.py
test_01_root_volume_encryption Failure 709.50 test_volumes.py
test_02_data_volume_encryption Failure 658.42 test_volumes.py
test_03_root_and_data_volume_encryption Failure 665.48 test_volumes.py
test_02_attach_volume Failure 1272.66 test_volumes.py
test_02_attach_volume Failure 1272.68 test_volumes.py
test_03_download_attached_volume Failure 664.79 test_volumes.py
test_04_delete_attached_volume Failure 668.99 test_volumes.py
test_05_detach_volume Failure 753.92 test_volumes.py
test_06_download_detached_volume Failure 877.76 test_volumes.py
test_07_resize_fail Failure 660.57 test_volumes.py
test_08_resize_volume Failure 673.37 test_volumes.py
test_09_delete_detached_volume Failure 670.10 test_volumes.py
test_10_list_volumes Failure 660.47 test_volumes.py
test_11_attach_volume_with_unstarted_vm Failure 769.75 test_volumes.py
test_12_resize_volume_with_only_size_parameter Failure 667.00 test_volumes.py
test_13_migrate_volume_and_change_offering Failure 803.51 test_volumes.py
test_14_delete_volume_delete_protection Failure 664.25 test_volumes.py

@matthiasdeblock
Copy link
Copy Markdown

Hi

This is mainly about NFS and iSCSI, what about Fibre Channel SAN with MultiPath?

@weizhouapache
Copy link
Copy Markdown
Member

Hi

This is mainly about NFS and iSCSI, what about Fibre Channel SAN with MultiPath?

good point

@rajiv-jain-netapp
is this also in your plan?

@rajiv-jain-netapp
Copy link
Copy Markdown
Author

Hi
This is mainly about NFS and iSCSI, what about Fibre Channel SAN with MultiPath?

good point

@rajiv-jain-netapp is this also in your plan?

We planned to add support in incremental order for the protocols. Currently, we picked NFS3 and iSCSI and remaining protocols support would be added in subsequent releases.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.