virtualization
virtualization copied to clipboard
test(vmop): add restore vmop e2e test
Description
Add e2e test for VM restore VMOP.
Checklist
- [ ] The code is covered by unit tests.
- [x] e2e tests passed.
- [ ] Documentation updated according to the changes.
- [x] Changes were tested in the Kubernetes cluster manually.
Changelog entries
section: vmop
type: chore
summary: Add restore vmop e2e test.
impact_level: low
Reviewer's Guide
This PR implements a full end-to-end test for VM restore operations via VMOP by extending the test framework with new util and builder helpers, adding a dedicated restore test suite, and updating object constructors to support restore-specific options.
Class diagram for new VM snapshot builder and options
classDiagram
class VirtualMachineSnapshot {
+TypeMeta
+ObjectMeta
+Spec: VirtualMachineSnapshotSpec
}
class VirtualMachineSnapshotSpec {
+RequiredConsistency: bool
+KeepIPAddress: KeepIPAddress
+VirtualMachineName: string
}
class Option {
<<interface>>
+apply(vmsnapshot: VirtualMachineSnapshot)
}
VirtualMachineSnapshotSpec <|-- VirtualMachineSnapshot
Option <|.. VirtualMachineSnapshot
VirtualMachineSnapshot "1" *-- "1" VirtualMachineSnapshotSpec
Class diagram for new VMOP restore options
classDiagram
class VirtualMachineOperation {
+Spec: VirtualMachineOperationSpec
}
class VirtualMachineOperationSpec {
+Force: bool
+Restore: VirtualMachineOperationRestoreSpec
}
class VirtualMachineOperationRestoreSpec {
+Mode: VMOPRestoreMode
+VirtualMachineSnapshotName: string
}
VirtualMachineOperationSpec <|-- VirtualMachineOperation
VirtualMachineOperationRestoreSpec <|-- VirtualMachineOperationSpec
VirtualMachineOperation "1" *-- "1" VirtualMachineOperationSpec
VirtualMachineOperationSpec "1" *-- "0..1" VirtualMachineOperationRestoreSpec
File-Level Changes
| Change | Details | Files |
|---|---|---|
| Add end-to-end VMOP restore test suite |
|
test/e2e/vmop/restore.gotest/e2e/e2e_test.go |
| Extend test utilities for VM, VMOP, VMBDA, VMSnapshot and VD waiting and control |
|
test/e2e/internal/util/vm.gotest/e2e/internal/util/vmsnapshot.gotest/e2e/internal/util/vmop.gotest/e2e/internal/util/vd.gotest/e2e/internal/util/vmbda.go |
| Add resource state synchronization method to framework |
|
test/e2e/internal/framework/framework.go |
| Enhance VirtualDisk builders to accept variadic options |
|
test/e2e/internal/object/vd.go |
| Provide restore-specific builder options for VMOP and new VMSnapshot builder |
|
images/virtualization-artifact/pkg/builder/vmop/option.goimages/virtualization-artifact/pkg/builder/vmsnapshot/vmsnapshot.goimages/virtualization-artifact/pkg/builder/vmsnapshot/option.go |
Tips and commands
Interacting with Sourcery
-
Trigger a new review: Comment
@sourcery-ai reviewon the pull request. - Continue discussions: Reply directly to Sourcery's review comments.
-
Generate a GitHub issue from a review comment: Ask Sourcery to create an
issue from a review comment by replying to it. You can also reply to a
review comment with
@sourcery-ai issueto create an issue from it. -
Generate a pull request title: Write
@sourcery-aianywhere in the pull request title to generate a title at any time. You can also comment@sourcery-ai titleon the pull request to (re-)generate the title at any time. -
Generate a pull request summary: Write
@sourcery-ai summaryanywhere in the pull request body to generate a PR summary at any time exactly where you want it. You can also comment@sourcery-ai summaryon the pull request to (re-)generate the summary at any time. -
Generate reviewer's guide: Comment
@sourcery-ai guideon the pull request to (re-)generate the reviewer's guide at any time. -
Resolve all Sourcery comments: Comment
@sourcery-ai resolveon the pull request to resolve all Sourcery comments. Useful if you've already addressed all the comments and don't want to see them anymore. -
Dismiss all Sourcery reviews: Comment
@sourcery-ai dismisson the pull request to dismiss all existing Sourcery reviews. Especially useful if you want to start fresh with a new review - don't forget to comment@sourcery-ai reviewto trigger a new review!
Customizing Your Experience
Access your dashboard to:
- Enable or disable review features such as the Sourcery-generated pull request summary, the reviewer's guide, and others.
- Change the review language.
- Add, remove or edit custom review instructions.
- Adjust other review settings.
Getting Help
- Contact our support team for questions or feedback.
- Visit our documentation for detailed guides and information.
- Keep in touch with the Sourcery team by following us on X/Twitter, LinkedIn or GitHub.
Workflow has started. Follow the progress here: Workflow Run
The target step completed with status: failure.