Skip to content

NetApp ONTAP ASUP Support - #14193

Open
suryag1201 wants to merge 2 commits into
apache:mainfrom
NetApp:netapp-ontap-asup-infra-support
Open

suryag1201 wants to merge 2 commits into
apache:mainfrom
NetApp:netapp-ontap-asup-infra-support

Conversation

@suryag1201

@suryag1201 suryag1201 commented Sep 17, 2026

Copy link
Copy Markdown
Contributor

Description

Adds AutoSupport (ASUP) telemetry for the ONTAP primary-storage plugin. On a configurable interval, It send below 2 details per cycle:
As a part of Event-0 (once per cluster): CloudStack connected to Unified ONTAP cluster — CloudStack version, OS, ONTAP version, cluster model, platform type, cluster UUID, management-server count.
As a part of Event-1 (once per pool): CloudStack storage pool backed by Unified ONTAP flexvolume — pool name/status, protocol, SVM, ONTAP volume UUID, root/data disk counts, logical size, VM/volume snapshot counts, multi-pool VM flag.

Scope: AutoSupport telemetry is supported only for ONTAP storage systems using cluster-based credentials.

Configuration

Global setting (UI: Configuration → Global Settings):
Key: ontap.autosupport.interval
Default : 24 hours (once a day)
Allowed values: 0 = disabled; otherwise 4–168 hours (1 week)
Validation: Out-of-range or non-integer values are rejected in the UI.

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):

image

How Has This Been Tested?

Set ontap.autosupport.interval to 0 — no data sent.
Set it to 24 (or any value 4–168) — event-0 once per cluster, event-1 once per pool, on that interval.
Set it below 4 or above 168 — UI validation error.
Create VMs/snapshots (including a VM across pools) and confirm the next event -1 payload updates.
Set back to 0 — events stop. Management server restart is not required.

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

This PR...
ASUP Implementation

- [ ] 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)
- [x] 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)

- [x] Major
- [ ] Minor

- [ ] BLOCKER
- [ ] Critical
- [ ] Major
- [ ] Minor
- [ ] Trivial

This is a testing screen shot, the min frequency is 4 hours, not 1 hour
<img width="1723" height="790" alt="image"
src="https://github.com/user-attachments/assets/f2351e08-6ce3-4925-a1e7-391dfd17cfc3"
/>

<img width="1584" height="523" alt="image"
src="https://github.com/user-attachments/assets/a4313ac9-de68-400a-81dc-1298e9b0a13b"
/>

Smart Solve Data

SmartSolve_EMS-LOG-FILEGZ_Asupid_2026091501340005.html

[?] Tue Sep 15 00:47:27 -0400 [sti245-vsim-ocvs032b: kernel:
ems.engine.suppressed:debug]: Event 'netinet6.rtr.high.mtu' suppressed
205 times in last 3634 seconds.
[ [?] ](javascript:void(0)) Tue Sep 15 00:47:27 -0400
[sti245-vsim-ocvs032b: kernel: netinet6.rtr.high.mtu:info]:
nd6_ra_input: MTU option mtu=9214 sent from fe80:3::21c:73ff:fe00:99;
exceeds the maxmtu 1500 on 'e0c'; ignoring.
[ [?] ](javascript:void(0)) Tue Sep 15 00:50:34 -0400
[sti245-vsim-ocvs032b: dense_ads_monitor:
sis.auto.session.change:notice]: ADS: Number of auto sessions changed
from 4 to 1
[?] Tue Sep 15 00:53:09 -0400 [sti245-vsim-ocvs032b: mgwd:
app.log.notice:notice]: **cstack08.rtp.openenglab.netapp.com: CloudStack
ONTAP plugin 4.23.0.0-SNAPSHOT: (0) provisioning: {"message":"CloudStack
connected to Unified ONTAP
cluster","cloudstackVersion":"4.23.0.0-SNAPSHOT","platform":"Linux
6.8.0-136-generic
(amd64)","ontapVersion":"9.17.1","ontapClusterModel":"SIMBOX","ontapPlatformType":"performance","clusterUuid":"7cd7613a-a571-11f1-b6f8-005056bdad8c","managementServerCount":1}
[ [?] ](javascript:void(0)) Tue Sep 15 00:53:09 -0400
[sti245-vsim-ocvs032b: mgwd: app.log.notice:notice]:
cstack08.rtp.openenglab.netapp.com: CloudStack ONTAP plugin
4.23.0.0-SNAPSHOT: (1) provisioning: {"message":"CloudStack storage pool
backed by Unified ONTAP
volume","poolName":"PoolNFS_43","poolStatus":"Up","protocol":"NFS3","clusterUuid":"7cd7613a-a571-11f1-b6f8-005056bdad8c","svm":"vs0","ontapVolumeUuid":"fb8fece4-a576-11f1-b46d-005056bd1333","rootDiskCount":1,"dataDiskCount":1,"totalLogicalSizeBytes":8589934592,"vmSnapshotCount":1,"volumeSnapshotCount":1,"multiPrimaryStoragePoolVm":false}**
[ [?] ](javascript:void(0)) Tue Sep 15 00:53:42 -0400
[sti245-vsim-ocvs032b: dense_ads_monitor:
sis.auto.session.change:notice]: ADS: Number of auto sessions changed
from 1 to 2
[?] Tue Sep 15 00:54:44 -0400 [sti245-vsim-ocvs032b: dense_ads_monitor:
sis.auto.session.change:notice]: ADS: Number of auto sessions changed
from 2 to 3
[?] Tue Sep 15 00:55:47 -0400 [sti245-vsim-ocvs032b: dense_ads_monitor:
sis.auto.session.change:notice]: ADS: Number of auto sessions changed
from 3 to 1
[?] Tue Sep 15 00:56:50 -0400 [sti245-vsim-ocvs032b: dense_ads_monitor:
sis.auto.session.change:notice]: ADS: Number of auto sessions changed
from 1 to 2
[ [?] ](javascript:void(0)) Tue Sep 15 00:57:52 -0400
[sti245-vsim-ocvs032b: dense_ads_monitor:
sis.auto.session.change:notice]: ADS: Number of auto sessions changed
from 2 to 3
[?] Tue Sep 15 00:58:55 -0400 [sti245-vsim-ocvs032b: dense_ads_monitor:
sis.auto.session.change:notice]: ADS: Number of auto sessions changed
from 3 to 1

1- Keep the ASUP disabled by keep value as 0 and check the events on
ONTAP - No events are getting generated
2- Enable the ASUP and check the events and it was getting triggered on
the given frequency on ontap
3- Verified the data on ontap for event 0 and event 1
4- Created the new VM and Snapshots, and VM across pools then required
field on new run took the new values.
5- Keep the ASUP frequency value less than or greater than required,
throw the error on UI
6- Disable the ASUP again by keep value as 0, the data stop getting
pushed to ontap

change?

<!-- see how your change affects other areas of the code, etc. -->

<!-- Please read the
[CONTRIBUTING](https://github.com/apache/cloudstack/blob/main/CONTRIBUTING.md)
document -->

---------

Co-authored-by: Gupta, Surya <[email protected]>
Co-authored-by: Cursor <[email protected]>
@suryag1201 suryag1201 changed the title [CSTACKEX-204] ASUP Implementation (#69) NetApp ONTAP ASUP Support Sep 17, 2026
@rajiv-jain-netapp

Copy link
Copy Markdown
Contributor

@surya, I suggest we explicitly call out that the supportability scope is limited to storage systems managed using cluster-based credentials. This will help set clear expectations and avoid ambiguity around other authentication or management models.

@codecov

codecov Bot commented Sep 17, 2026

Copy link
Copy Markdown

Codecov Report

❌ Patch coverage is 70.55449% with 154 lines in your changes missing coverage. Please review.
✅ Project coverage is 19.96%. Comparing base (27722a5) to head (1d487a0).
⚠️ Report is 10 commits behind head on main.

Files with missing lines Patch % Lines
...ache/cloudstack/storage/asup/OntapAsupManager.java 70.33% 70 Missing and 19 partials ⚠️
...he/cloudstack/storage/service/StorageStrategy.java 53.84% 30 Missing and 6 partials ⚠️
...main/java/com/cloud/storage/dao/VolumeDaoImpl.java 0.00% 10 Missing ⚠️
...stack/storage/utils/OntapConfigurationManager.java 76.31% 6 Missing and 3 partials ⚠️
...udstack/storage/feign/model/EmsApplicationLog.java 92.59% 3 Missing and 1 partial ⚠️
...he/cloudstack/storage/feign/model/ClusterNode.java 88.00% 3 Missing ⚠️
...he/cloudstack/storage/utils/OntapStorageUtils.java 50.00% 3 Missing ⚠️
Additional details and impacted files
@@             Coverage Diff              @@
##               main   #14193      +/-   ##
============================================
+ Coverage     19.91%   19.96%   +0.04%     
- Complexity    20175    20259      +84     
============================================
  Files          6372     6376       +4     
  Lines        577139   577700     +561     
  Branches      70682    70742      +60     
============================================
+ Hits         114913   115313     +400     
- Misses       449664   449790     +126     
- Partials      12562    12597      +35     
Flag Coverage Δ
uitests 3.71% <ø> (ø)
unittests 21.23% <70.55%> (+0.05%) ⬆️

Flags with carried forward coverage won't be shown. Click here to find out more.

☔ View full report in Codecov by Harness.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

@suryag1201
suryag1201 marked this pull request as ready for review September 17, 2026 15:48
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.

2 participants