Create, Delete, Enable, Disable, Enter, Cancel maintenance of Primary StoragePool with ONTAP storage#12563
Conversation
Codecov Report❌ Patch coverage is Additional details and impacted files@@ Coverage Diff @@
## main #12563 +/- ##
============================================
- Coverage 18.01% 17.96% -0.06%
- Complexity 16459 16484 +25
============================================
Files 5968 6011 +43
Lines 537218 539998 +2780
Branches 65977 66182 +205
============================================
+ Hits 96801 96994 +193
- Misses 429498 432067 +2569
- Partials 10919 10937 +18
Flags with carried forward coverage won't be shown. Click here to find out more. ☔ View full report in Codecov by Sentry. 🚀 New features to boost your workflow:
|
c495c7c to
20d4e97
Compare
20d4e97 to
c98cf8c
Compare
|
@blueorangutan package |
|
@kiranchavala 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. |
|
Packaging result [SF]: ✔️ el8 ✔️ el9 ✔️ el10 ✖️ debian ✔️ suse15. SL-JID 16683 |
|
@blueorangutan test |
|
@kiranchavala a [SL] Trillian-Jenkins test job (ol8 mgmt + kvm-ol8) has been kicked to run smoke tests |
|
Hey @sandeeplocharla et al, Great work, some issues came up in the github actions. Can you first look at the license check and the pre-commit actions? |
|
Hi @DaanHoogland |
Thank you, @DaanHoogland. We look forward to receiving your review comments and will address them as soon as possible. |
08b53f0 to
b1792b4
Compare
|
Hi, the project level Code coverage seems to be failing, due to mutliple files that this code is indirectly touching, doesn't have coverage. What could be done in such a case? |
@sandeeplocharla , we have ambitions on coverage that we don’t meet historically. Please trty to meet them on your part of the code, more we cannot ask. As for the failing tests, these seem te be the same that are failing on main as well. If you can give us any hints on them that will be very much appreciated ;) |
There was a problem hiding this comment.
did you do license checks on the extra dependencies added in this file?
see https://apache.org/legal/resolved.html for explanation.
There was a problem hiding this comment.
Will check the licenses and get back to you.
There was a problem hiding this comment.
Hi @DaanHoogland , I've cross-checked the licenses of the dependencies added in our pom.xml. I had to remove one which wasn't conforming with ACF guidelines that you've shared.
Currently, all licenses in the ONTAP plugin are compliant with Apache CloudStack norms. All runtime dependencies use Apache License 2.0 (Category A). Test dependencies use MIT and EPL 2.0 licenses, which are also Category A compatible. No Category X licenses are present.
This PR does not have the benchmark coverage that we usually aim for within our team. But, we plan on having maximum code coverage possible with the upcoming PRs. As for this PR, there are around 5400 indirect files because of which the coverage dropped. I'm not sure, how we would able to handle them all. |
|
[SF] Trillian test result (tid-15359)
|
this is good enough until we encounter tangible issues. Please continue with the comment outstanding now. review effort will have to be made and I (or we) will hopefully get to this soon. Please be prepared for some rebasing and conflict resolving over the coming weeks 🥺 … unfortunately I cannot promise when further review will happen, but this PR is on my list. |
…ary StoragePool with ONTAP storage Co-authored-by: Rajiv Jain <Rajiv.Jain@netapp.com> Create & Delete, Enable & Disable, Enter & Cancel maintenance of Primary StoragePool with ONTAP storage Co-authored-by: Rajiv Jain<rajiv1@netapp.com> Edited readme file Fixed license check issue Removed dependency that's not conforming with ACF guidelines
b1792b4 to
b8e5cd6
Compare
|
@blueorangutan package |
|
@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. |
|
Packaging result [SF]: ✔️ el8 ✔️ el9 ✔️ el10 ✖️ debian ✔️ suse15. SL-JID 17065 |
|
Packaging result [SF]: ✔️ el8 ✔️ el9 ✔️ el10 ✖️ debian ✔️ suse15. SL-JID 17077 |
|
Packaging result [SF]: ✔️ el8 ✔️ el9 ✔️ el10 ✖️ debian ✔️ suse15. SL-JID 17158 |
plugins/storage/volume/ontap/src/main/java/org/apache/cloudstack/storage/utils/Utility.java
Outdated
Show resolved
Hide resolved
plugins/storage/volume/ontap/src/main/java/org/apache/cloudstack/storage/utils/Constants.java
Outdated
Show resolved
Hide resolved
...torage/volume/ontap/src/main/java/org/apache/cloudstack/storage/service/StorageStrategy.java
Show resolved
Hide resolved
...torage/volume/ontap/src/main/java/org/apache/cloudstack/storage/service/StorageStrategy.java
Outdated
Show resolved
Hide resolved
...age/volume/ontap/src/main/java/org/apache/cloudstack/storage/service/UnifiedNASStrategy.java
Show resolved
Hide resolved
...olume/ontap/src/main/java/org/apache/cloudstack/storage/provider/StorageProviderFactory.java
Show resolved
Hide resolved
...ap/src/main/java/org/apache/cloudstack/storage/lifecycle/OntapPrimaryDatastoreLifecycle.java
Outdated
Show resolved
Hide resolved
|
Packaging result [SF]: ✔️ el8 ✔️ el9 ✔️ el10 ✔️ debian ✔️ suse15. SL-JID 17170 |
|
@sandeeplocharla , I don’t know why but the packaging failed over the PR name and it turns out it is the ‘&’, so I removed that from the PR title. Hope that doesn’t hurt anyones feeling or creates an administrative mess somewhere... |
|
Hi @DaanHoogland, we are fine with the text correction for the PR. Can we please run the checks again and confirm that it resolves the issues? We are ready with the next set of changes to CloudStack volume workflows. We will prioritize another PR once this is merged. |
…m/NetApp/cloudstack into netapp-ontap-primary-storage-pool
|
Hi @DaanHoogland We have more features that we plan on raising PRs for. Unfortunately, they can't be clubbed as it would become a huge PR, making it difficult to review. So, We hope other reviewers could also review and help us in expediting this process. |
DaanHoogland
left a comment
There was a problem hiding this comment.
clgtm, some suggestions but nothing blocking. I think with regression testing done this can be merged.
| @Override | ||
| public String toString() { | ||
| return "Cluster{" + | ||
| "name='" + name + '\'' + | ||
| ", uuid='" + uuid + '\'' + | ||
| ", version=" + version + | ||
| ", sanOptimized=" + sanOptimized + | ||
| ", disaggregated=" + disaggregated + | ||
| '}'; | ||
| } |
There was a problem hiding this comment.
we tend to use ReflectionToStringBuilderUtils for toString methods ( no -1 on this)
| @Override | ||
| public String toString() { | ||
| return "Cluster{" + | ||
| "name='" + name + '\'' + | ||
| ", uuid='" + uuid + '\'' + | ||
| ", version=" + version + | ||
| ", sanOptimized=" + sanOptimized + | ||
| ", disaggregated=" + disaggregated + | ||
| '}'; | ||
| } |
There was a problem hiding this comment.
ReflectionToStringBuilderUtils
...orage/volume/ontap/src/main/java/org/apache/cloudstack/storage/feign/model/ExportPolicy.java
Outdated
Show resolved
Hide resolved
...storage/volume/ontap/src/main/java/org/apache/cloudstack/storage/feign/model/ExportRule.java
Outdated
Show resolved
Hide resolved
...s/storage/volume/ontap/src/main/java/org/apache/cloudstack/storage/feign/model/FileInfo.java
Outdated
Show resolved
Hide resolved
| @Override | ||
| public String toString() { | ||
| StringBuilder sb = new StringBuilder(); | ||
| sb.append("class Lun {\n"); | ||
| sb.append(" autoDelete: ").append(toIndentedString(autoDelete)).append("\n"); | ||
| sb.append(" propertyClass: ").append(toIndentedString(propertyClass)).append("\n"); | ||
| sb.append(" enabled: ").append(toIndentedString(enabled)).append("\n"); | ||
| sb.append(" lunMaps: ").append(toIndentedString(lunMaps)).append("\n"); | ||
| sb.append(" name: ").append(toIndentedString(name)).append("\n"); | ||
| sb.append(" osType: ").append(toIndentedString(osType)).append("\n"); | ||
| sb.append(" serialNumber: ").append(toIndentedString(serialNumber)).append("\n"); | ||
| sb.append(" space: ").append(toIndentedString(space)).append("\n"); | ||
| sb.append(" svm: ").append(toIndentedString(svm)).append("\n"); | ||
| sb.append(" uuid: ").append(toIndentedString(uuid)).append("\n"); | ||
| sb.append("}"); | ||
| return sb.toString(); | ||
| } |
There was a problem hiding this comment.
ReflectionToStringBuilderUtils
...ins/storage/volume/ontap/src/main/java/org/apache/cloudstack/storage/feign/model/LunMap.java
Outdated
Show resolved
Hide resolved
...s/storage/volume/ontap/src/main/java/org/apache/cloudstack/storage/feign/model/LunSpace.java
Outdated
Show resolved
Hide resolved
There was a problem hiding this comment.
this class need not be printed?
...ns/storage/volume/ontap/src/main/java/org/apache/cloudstack/storage/feign/model/Version.java
Outdated
Show resolved
Hide resolved
|
@blueorangutan package |
|
@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. |
Agreed @DaanHoogland. I see all of the code changes are in a separate plugin and there is a good test report in the description. |
|
Packaging result [SF]: ✔️ el8 ✔️ el9 ✔️ el10 ✔️ debian ✔️ suse15. SL-JID 17283 |
|
@blueorangutan test matrix |
|
@DaanHoogland a [SL] Trillian-Jenkins matrix job (EL8 mgmt + EL8 KVM, Ubuntu22 mgmt + Ubuntu22 KVM, EL8 mgmt + VMware 7.0u3, EL9 mgmt + XCP-ng 8.2 ) has been kicked to run smoke tests |
|
[SF] Trillian Build Failed (tid-15772) |
|
[SF] Trillian Build Failed (tid-15770) |
|
Thank you! For reviewing and approving the PR @DaanHoogland and @harikrishna-patnala |
|
[SF] Trillian test result (tid-15769)
|
|
[SF] Trillian test result (tid-15771)
|
…methods for models
|
Hi @DaanHoogland @harikrishna-patnala @sureshanaparti @weizhouapache |
|
@weizhouapache @winterhazel , it would be good if we have ontap support in 23. Can you guys have look, please? |
Create & Delete, Enable & Disable, Enter & Cancel maintenance of Primary StoragePool with ONTAP storage
Co-authored-by: Rajiv Jain rajiv1@netapp.com
Co-authored-by: Piyush Srivastava piyush5@netapp.com
Co-authored-by: Surya Gupta suryag@netapp.com
Description
NetApp ONTAP Storage Plugin
Introduction
This document describes in brief the design and implementation of the NetApp ONTAP storage plugin for Apache CloudStack. The plugin enables CloudStack to use NetApp ONTAP as a primary storage provider.
ONTAP Terminology
Scope
Current Implementation
The following operations are currently implemented:
Supported Configurations
Storage Pool Lifecycle
Create Storage Pool
Attach to Cluster/Zone
Delete Storage Pool
Configuration Parameters
Parameters are passed via URL in semicolon-separated key=value format:
usernamepasswordmanagementLIFsvmNameprotocolNFS3orISCSIThere are few files under feign folder which aren't currently being consumed by the workflows being proposed for review. But, they are definitely required for upcoming workflows.Types of changes
Feature/Enhancement Scale or Bug Severity
Feature/Enhancement Scale
Bug Severity
How Has This Been Tested?
Management Server Operations:
Primary Storage Pool Operations:
Testing Environment:
NFS3 Primary Storage Pool - CreateNFS3 type ONTAP Volume createdExport Policy created on ONTAPDisabled Primary Storage Pool - NFS3Re-Enabled Primary Storage Pool - NFS3Enter maintenance mode - NFS3Cancel maintenance mode - NFS3Delete Primary StoragePool - NFS3ONTAP Volume deletedONTAP ExportPolicy deletediSCSI Primary Storage Pool - DeleteiSCSI type ONTAP Volume creatediGroup createdDisabled Primary Storage Pool - iSCSIRe-Enabled Primary Storage Pool - iSCSIEnter maintenance mode - iSCSICancel maintenance mode - iSCSIDelete Primary StoragePool - iSCSIONTAP iGroup deletedONTAP Volume deleted