GV

GeezerVison

The World Wide Web, restored to 800 pixels of glory.

Home|About|Gaming cabinet|Archives|How it works|Starter sites

On this site

  • Sign in
  • ActionsCI/CD and automation
  • CodespacesCloud development environments
  • All Features
  • Documentation
  • Training
  • Certifications
  • Build with Copilot
  • Customize Copilot
  • Integrations
  • Trending repos
  • GitHub Sponsors
  • Developer articles
  • Enterprises

This view

  • Original page
  • New address

GeezerVison is showing github.com — Automation tests for Compute to Compute with Storage VM migration and Storage migration by sandeeplocharla · Pull Request #113 · NetApp/cloudstack

Conversation

@sandeeplocharla

@sandeeplocharla sandeeplocharla commented Oct 5, 2026 •
edited
Loading

Uh oh!

There was an error while loading. Please reload this page.

Copy link
Copy Markdown
Collaborator

Description

This PR...

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?

root@cstack53:/tmp/MarvinLogs/test_01_live_vm_with_storage_migration_YNFXRI# cat results.txt
Live-migrate DefaultPrimary root/data volumes to NFS3 C1a. ... === TestName: test_01_nfs3_default_primary_to_cluster | Status : SUCCESS ===
ok
Live-migrate the NFS3 VM from C1a to C1b. ... === TestName: test_02_nfs3_cluster_to_cluster | Status : SUCCESS ===
ok
Live-migrate the NFS3 VM from C1b to Z1. ... === TestName: test_03_nfs3_cluster_to_zone | Status : SUCCESS ===
ok
Live-migrate the NFS3 VM from Z1 to Z2. ... === TestName: test_04_nfs3_zone_to_zone | Status : SUCCESS ===
ok
Live-migrate the NFS3 VM from Z2 back to C1a. ... === TestName: test_05_nfs3_zone_to_cluster | Status : SUCCESS ===
ok
Live-migrate DefaultPrimary root/data volumes to iSCSI C1a. ... === TestName: test_06_iscsi_default_primary_to_cluster | Status : SUCCESS ===
ok
Live-migrate the iSCSI VM from C1a to C1b. ... === TestName: test_07_iscsi_cluster_to_cluster | Status : SUCCESS ===
ok
Live-migrate the iSCSI VM from C1b to Z1. ... === TestName: test_08_iscsi_cluster_to_zone | Status : SUCCESS ===
ok
Live-migrate the iSCSI VM from Z1 to Z2. ... === TestName: test_09_iscsi_zone_to_zone | Status : SUCCESS ===
ok
Live-migrate the iSCSI VM from Z2 back to C1a. ... === TestName: test_10_iscsi_zone_to_cluster | Status : SUCCESS ===
ok
Reject a live NFS3-to-iSCSI volume mapping. ... === TestName: test_11_reject_nfs3_to_iscsi | Status : SUCCESS ===
ok
Reject a live iSCSI-to-NFS3 volume mapping. ... === TestName: test_12_reject_iscsi_to_nfs3 | Status : SUCCESS ===
ok
Reject migrateVolume livemigrate=true on a running attached volume. ... === TestName: test_13_reject_live_volume_only | Status : SUCCESS ===
ok
After host split, live-migrate NFS3 storage from C1a to C2. ... === TestName: test_14_nfs3_cluster_to_cluster | Status : SUCCESS ===
ok
Live-migrate NFS3 storage from C1a to Z1 onto a C2 host. ... === TestName: test_15_nfs3_cluster_to_zone | Status : SUCCESS ===
ok
Live-migrate the NFS3 VM from Z1 to C2. ... === TestName: test_16_nfs3_zone_to_cluster | Status : SUCCESS ===
ok
Live-migrate NFS3 storage from Z1 to Z2 onto a C2 host. ... === TestName: test_17_nfs3_zone_to_zone | Status : SUCCESS ===
ok
Live-migrate iSCSI storage from C1a to C2 onto a C2 host. ... === TestName: test_18_iscsi_cluster_to_cluster | Status : SUCCESS ===
ok
Live-migrate iSCSI storage from C1a to Z1 onto a C2 host. ... === TestName: test_19_iscsi_cluster_to_zone | Status : SUCCESS ===
ok
Live-migrate the iSCSI VM from Z1 to C2. ... === TestName: test_20_iscsi_zone_to_cluster | Status : SUCCESS ===
ok
Live-migrate iSCSI storage from Z1 to Z2 onto a C2 host. ... === TestName: test_21_iscsi_zone_to_zone | Status : SUCCESS ===
ok
Reject mapping a cluster-1 pool to a host that lives in cluster 2. ... === TestName: test_22_reject_pool_not_reachable_from_destination_host | Status : SUCCESS ===
ok


Ran 22 tests in 3989.366s

OK

root@cstack53:/tmp/MarvinLogs/test_02_stopped_vm_storage_migration_FGCD7L# cat results.txt
Move a stopped VM's volumes from DefaultPrimary to NFS3 C1a. ... === TestName: test_01_nfs3_default_primary_to_cluster | Status : SUCCESS ===
ok
Move NFS3 volumes between cluster pools in the same cluster. ... === TestName: test_02_nfs3_cluster_to_cluster_same_cluster | Status : SUCCESS ===
ok
Move NFS3 volumes to a cluster pool in the second cluster. ... === TestName: test_03_nfs3_cluster_to_cluster_across_clusters | Status : SUCCESS ===
ok
Move NFS3 volumes from a cluster pool to a zone-wide pool. ... === TestName: test_04_nfs3_cluster_to_zone | Status : SUCCESS ===
ok
Move NFS3 volumes between two zone-wide pools. ... === TestName: test_05_nfs3_zone_to_zone | Status : SUCCESS ===
ok
Move NFS3 volumes from a zone-wide pool back to cluster C1a. ... === TestName: test_06_nfs3_zone_to_cluster | Status : SUCCESS ===
ok
Move a stopped VM's volumes from DefaultPrimary to iSCSI C1a. ... === TestName: test_07_iscsi_default_primary_to_cluster | Status : SUCCESS ===
ok
Move iSCSI volumes between cluster pools in the same cluster. ... === TestName: test_08_iscsi_cluster_to_cluster_same_cluster | Status : SUCCESS ===
ok
Move iSCSI volumes to a cluster pool in the second cluster. ... === TestName: test_09_iscsi_cluster_to_cluster_across_clusters | Status : SUCCESS ===
ok
Move iSCSI volumes from a cluster pool to a zone-wide pool. ... === TestName: test_10_iscsi_cluster_to_zone | Status : SUCCESS ===
ok
Move iSCSI volumes between two zone-wide pools. ... === TestName: test_11_iscsi_zone_to_zone | Status : SUCCESS ===
ok
Move iSCSI volumes from a zone-wide pool back to cluster C1a. ... === TestName: test_12_iscsi_zone_to_cluster | Status : SUCCESS ===
ok
Reject a stopped-VM migration from NFS3 storage to iSCSI. ... === TestName: test_13_reject_nfs3_to_iscsi | Status : SUCCESS ===
ok
Reject a stopped-VM migration from iSCSI storage to NFS3. ... === TestName: test_14_reject_iscsi_to_nfs3 | Status : SUCCESS ===
ok
Reject the stopped-VM API form once the chain VM is running. ... === TestName: test_15_reject_running_vm | Status : SUCCESS ===
ok


Ran 15 tests in 1328.793s

OK

root@cstack53:/tmp/MarvinLogs/test_03_volume_migration_YAKSKE# cat results.txt
Migrate a detached NFS3 volume from DefaultPrimary to C1a. ... === TestName: test_01_nfs3_detached_default_primary_to_cluster | Status : SUCCESS ===
ok
Migrate the detached NFS3 volume from C1a to C1b. ... === TestName: test_02_nfs3_detached_cluster_to_cluster_same_cluster | Status : SUCCESS ===
ok
Migrate the detached NFS3 volume from C1b to C2. ... === TestName: test_03_nfs3_detached_cluster_to_cluster_across_clusters | Status : SUCCESS ===
ok
Migrate the detached NFS3 volume from C2 to Z1. ... === TestName: test_04_nfs3_detached_cluster_to_zone | Status : SUCCESS ===
ok
Migrate the detached NFS3 volume from Z1 to Z2. ... === TestName: test_05_nfs3_detached_zone_to_zone | Status : SUCCESS ===
ok
Migrate the detached NFS3 volume from Z2 back to C1a. ... === TestName: test_06_nfs3_detached_zone_to_cluster | Status : SUCCESS ===
ok
Migrate a detached iSCSI volume from DefaultPrimary to C1a. ... === TestName: test_07_iscsi_detached_default_primary_to_cluster | Status : SUCCESS ===
ok
Migrate the detached iSCSI volume from C1a to C1b. ... === TestName: test_08_iscsi_detached_cluster_to_cluster_same_cluster | Status : SUCCESS ===
ok
Migrate the detached iSCSI volume from C1b to C2. ... === TestName: test_09_iscsi_detached_cluster_to_cluster_across_clusters | Status : SUCCESS ===
ok
Migrate the detached iSCSI volume from C2 to Z1. ... === TestName: test_10_iscsi_detached_cluster_to_zone | Status : SUCCESS ===
ok
Migrate the detached iSCSI volume from Z1 to Z2. ... === TestName: test_11_iscsi_detached_zone_to_zone | Status : SUCCESS ===
ok
Migrate the detached iSCSI volume from Z2 back to C1a. ... === TestName: test_12_iscsi_detached_zone_to_cluster | Status : SUCCESS ===
ok
Move stopped-attached NFS3 data C1a to Z1, preserving its root. ... === TestName: test_13_nfs3_attached_stopped_vm_cluster_to_zone | Status : SUCCESS ===
ok
Move stopped-attached iSCSI data C1a to Z1, preserving its root. ... === TestName: test_14_iscsi_attached_stopped_vm_cluster_to_zone | Status : SUCCESS ===
ok
Move stopped-attached non-ONTAP data to ONTAP NFS3. ... === TestName: test_15_nfs3_attached_stopped_vm_default_to_ontap | Status : SUCCESS ===
ok
Move stopped-attached non-ONTAP data to ONTAP iSCSI. ... === TestName: test_16_iscsi_attached_stopped_vm_default_to_ontap | Status : SUCCESS ===
ok
Reject detached NFS3-to-iSCSI migration. ... === TestName: test_17_reject_detached_nfs3_to_iscsi | Status : SUCCESS ===
ok
Reject detached iSCSI-to-NFS3 migration. ... === TestName: test_18_reject_detached_iscsi_to_nfs3 | Status : SUCCESS ===
ok
Reject stopped-attached NFS3-to-iSCSI migration. ... === TestName: test_19_reject_stopped_attached_nfs3_to_iscsi | Status : SUCCESS ===
ok
Reject stopped-attached iSCSI-to-NFS3 migration. ... === TestName: test_20_reject_stopped_attached_iscsi_to_nfs3 | Status : SUCCESS ===
ok
Reject running-attached NFS3 migration without livemigrate. ... === TestName: test_21_reject_attached_running_vm_without_livemigrate | Status : SUCCESS ===
ok
Reject live volume-only migration in favor of VM-with-volume. ... === TestName: test_22_reject_attached_running_vm_with_livemigrate | Status : SUCCESS ===
ok
Reject migration to the stopped-attached volume's current pool. ... === TestName: test_23_reject_same_pool | Status : SUCCESS ===
ok


Ran 23 tests in 1420.347s

OK

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

All reactions
@sandeeplocharla
sandeeplocharla requested review from piyush5netapp, rajiv-jain-netapp, sathvikaragi, sp16743 and suryag1201 October 5, 2026 05:59
@github-actions github-actions Bot added the status:has-conflicts label Oct 5, 2026
@github-actions

github-actions Bot commented Oct 5, 2026

Copy link
Copy Markdown

This pull request has merge conflicts. Dear author, please fix the conflicts and sync your branch with the base branch.

All reactions

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

@sandeeplocharla
sandeeplocharla force-pushed the feature/CSTACKEX-264 branch from 1dc3a55 to 424eca6 Compare October 7, 2026 18:32
@github-actions github-actions Bot removed the status:has-conflicts label Oct 7, 2026
@github-actions

github-actions Bot commented Oct 7, 2026

Copy link
Copy Markdown

🔴 Test Coverage Grade: D — Marginal

Metric Value
Line coverage 24.73%
Branch coverage 18.86%

Grade Scale

Grade Line Coverage Meaning
🟢 A ≥ 80% Excellent - this code sleeps well at night 😴
🟡 B 60-79% Good - almost there, don't stop now 😉
🟠 C 40-59% Acceptable - your code is wearing a seatbelt, but no airbags 😬
🔴 D 20-39% Marginal - boldly shipping where no test has gone before 🖖
⛔ F < 20% Failing - tests? what tests? 🔥

Branch coverage is shown as a secondary signal. Grade is determined by line coverage.
View full Actions run

All reactions

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

@sandeeplocharla
sandeeplocharla force-pushed the feature/CSTACKEX-264 branch from 424eca6 to 6261970 Compare October 8, 2026 06:03
@github-actions

github-actions Bot commented Oct 8, 2026

Copy link
Copy Markdown

🔴 Test Coverage Grade: D — Marginal

Metric Value
Line coverage 24.73%
Branch coverage 18.86%

Grade Scale

Grade Line Coverage Meaning
🟢 A ≥ 80% Excellent - this code sleeps well at night 😴
🟡 B 60-79% Good - almost there, don't stop now 😉
🟠 C 40-59% Acceptable - your code is wearing a seatbelt, but no airbags 😬
🔴 D 20-39% Marginal - boldly shipping where no test has gone before 🖖
⛔ F < 20% Failing - tests? what tests? 🔥

Branch coverage is shown as a secondary signal. Grade is determined by line coverage.
View full Actions run

All reactions

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

@sandeeplocharla
sandeeplocharla force-pushed the feature/CSTACKEX-264 branch from 6261970 to d90249e Compare October 12, 2026 05:23
@github-actions

github-actions Bot commented Oct 12, 2026

Copy link
Copy Markdown

🔴 Test Coverage Grade: D — Marginal

Metric Value
Line coverage 24.84%
Branch coverage 19.00%

Grade Scale

Grade Line Coverage Meaning
🟢 A ≥ 80% Excellent - this code sleeps well at night 😴
🟡 B 60-79% Good - almost there, don't stop now 😉
🟠 C 40-59% Acceptable - your code is wearing a seatbelt, but no airbags 😬
🔴 D 20-39% Marginal - boldly shipping where no test has gone before 🖖
⛔ F < 20% Failing - tests? what tests? 🔥

Branch coverage is shown as a secondary signal. Grade is determined by line coverage.
View full Actions run

All reactions

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

@github-actions github-actions Bot added the status:has-conflicts label Oct 16, 2026
@github-actions

github-actions Bot commented Oct 16, 2026

Copy link
Copy Markdown

This pull request has merge conflicts. Dear author, please fix the conflicts and sync your branch with the base branch.

All reactions

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

@sandeeplocharla
sandeeplocharla force-pushed the feature/CSTACKEX-264 branch from d90249e to 157fa7d Compare October 16, 2026 07:05
@github-actions github-actions Bot removed the status:has-conflicts label Oct 16, 2026
@github-actions

github-actions Bot commented Oct 16, 2026 •
edited
Loading

Uh oh!

There was an error while loading. Please reload this page.

Copy link
Copy Markdown

🔴 Test Coverage Grade: D — Marginal

Metric Value
Line coverage 25.82%
Branch coverage 20.11%

Grade Scale

Grade Line Coverage Meaning
🟢 A ≥ 80% Excellent - this code sleeps well at night 😴
🟡 B 60-79% Good - almost there, don't stop now 😉
🟠 C 40-59% Acceptable - your code is wearing a seatbelt, but no airbags 😬
🔴 D 20-39% Marginal - boldly shipping where no test has gone before 🖖
⛔ F < 20% Failing - tests? what tests? 🔥

Branch coverage is shown as a secondary signal. Grade is determined by line coverage.
View full Actions run

All reactions

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

@github-actions github-actions Bot added the status:has-conflicts label Oct 16, 2026
@github-actions

github-actions Bot commented Oct 16, 2026

Copy link
Copy Markdown

This pull request has merge conflicts. Dear author, please fix the conflicts and sync your branch with the base branch.

All reactions

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

sandeeplocharla added 5 commits October 26, 2026 06:23
@sandeeplocharla
Automation tests for Compute to Compute with Storage VM migration and…
44b1d57
… Storage migration
@sandeeplocharla
fixed a codesmell issue
ce3ba0b
@sandeeplocharla
Fixed pre-commit issues seen due to yaml lint failure
a2cc545
@sandeeplocharla
Add QoS cases to the three ONTAP migration suites.
6c52216
Disks created with min and max IOPS should keep those policies after live, stopped, and offline moves.
@sandeeplocharla
Changes to support migration of volumes with QoS
a7da1e7
@sandeeplocharla
sandeeplocharla force-pushed the feature/CSTACKEX-264 branch from 900ea98 to a7da1e7 Compare October 26, 2026 13:30
@github-actions github-actions Bot removed the status:has-conflicts label Oct 26, 2026
piyush5netapp
piyush5netapp approved these changes Nov 3, 2026
View reviewed changes
Comment thread test/integration/plugins/ontap/migration/AGENTS.md
and host URLs come from `test/integration/plugins/ontap/ontap.cfg`. Do not
hard-code them in test code.

Deeper design lives in the Cursor skill

@piyush5netapp piyush5netapp Oct 30, 2026

Copy link
Copy Markdown

There was a problem hiding this comment.

Choose a reason for hiding this comment

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

Skip having cursor specific details here.

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

All reactions

@sandeeplocharla sandeeplocharla Nov 4, 2026

Copy link
Copy Markdown
Collaborator Author

There was a problem hiding this comment.

Choose a reason for hiding this comment

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

No, this has been pushed on purpose to be able to reuse. Also, if you could recall, I've asked regarding this in scrum and Rajiv was ok with it as long as such files are not pushed to upstream.

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

All reactions

@piyush5netapp piyush5netapp Nov 12, 2026

Copy link
Copy Markdown

There was a problem hiding this comment.

Choose a reason for hiding this comment

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

Yes, I understand. My point of this comment is Agents.md is meant to be harness agnostic, let it be cursor, claude , copilot. If we want to have specific harness agents.md, it can sit inside their own folder. (like co-pilot-instructions.md etc)

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

All reactions
Comment thread test/integration/plugins/ontap/migration/AGENTS.md
Always-on operating notes for agents working on KVM live VM migration and
live VM-with-storage migration for NetApp ONTAP primary storage.

Ticket: **CSTACKEX-262**. Branch: `feature/CSTACKEX-262`.

@piyush5netapp piyush5netapp Oct 30, 2026

Copy link
Copy Markdown

There was a problem hiding this comment.

Choose a reason for hiding this comment

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

We can remove it also.

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

All reactions

@sandeeplocharla sandeeplocharla Nov 4, 2026

Copy link
Copy Markdown
Collaborator Author

There was a problem hiding this comment.

Choose a reason for hiding this comment

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

Same as before

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

All reactions
sp16743
sp16743 reviewed Nov 6, 2026
View reviewed changes
Comment thread test/integration/plugins/ontap/migration/test_03_volume_migration.py Resolved

Uh oh!

There was an error while loading. Please reload this page.

sandeeplocharla added 3 commits November 6, 2026 16:08
@sandeeplocharla
CSTACKEX-264: Run live QoS tests before the host split and fix reject…
966c713
… text

- test_01: move the five live QoS cases to test_14-test_18 so they run while both hosts are in the primary cluster; expunge each QoS VM after its check
- test_01/test_02: match the current cross-protocol rejection message
@sandeeplocharla
CSTACKEX-264: Use new ONTAP pools for migration cases instead of reus…
d2a576b
…ed FlexVols

Setup no longer selects existing OntapMigration FlexVols. Stopped-VM QoS cases
create a fresh pool per case, so repeated LUN creates do not fill one 20 GiB
volume and fail with ONTAP error 1245212.
@sandeeplocharla
CSTACKEX-264: Assert the volume path changes for iSCSI migrations too
4085cf8
The path-change assertions in the volume migration suite skipped iSCSI, so
cases 07-12, 14 and 16 could pass without checking that the volume path
changed. Run the assertion for both protocols, as the automation spec says.

Verified on the lab: all 28 volume_migration cases pass with the check on.

Also remove a trailing blank line in test_01 to fix the end-of-file
pre-commit hook.
@sandeeplocharla
sandeeplocharla force-pushed the feature/CSTACKEX-264 branch from 946c893 to 4085cf8 Compare November 9, 2026 12:01
sp16743
sp16743 reviewed Nov 11, 2026
View reviewed changes
Comment thread test/integration/plugins/ontap/migration/migration_test_base.py
"QCOW2" if protocol.upper() == "NFS3" else "RAW"
)
reported_format = getattr(current, "format", None)
if reported_format:

@sp16743 sp16743 Nov 11, 2026

Copy link
Copy Markdown
Collaborator

There was a problem hiding this comment.

Choose a reason for hiding this comment

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

The listVolumes API response does not include a format field. So,this condition is always false and the format validation is skipped.

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

piyush5netapp reacted with thumbs up emoji
All reactions
  • 👍 1 reaction
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Reviewers

@piyush5netapp piyush5netapp piyush5netapp approved these changes
@sp16743 sp16743 sp16743 left review comments
@rajiv-jain-netapp rajiv-jain-netapp Awaiting requested review from rajiv-jain-netapp
@sathvikaragi sathvikaragi Awaiting requested review from sathvikaragi
@suryag1201 suryag1201 Awaiting requested review from suryag1201

Uh oh!

There was an error while loading. Please reload this page.

Assignees

No one assigned

Labels

None yet

Projects

None yet

Milestone

No milestone

Development

Successfully merging this pull request may close these issues.

Uh oh!

There was an error while loading. Please reload this page.

3 participants

@sandeeplocharla @piyush5netapp @sp16743
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
You are visitor 01402520 — GeezerVison does not store the pages you look up.
Best viewed with Netscape Navigator 4.7 or Internet Explorer 6 at 800×600. No cookies required.