kubernetes-sigs / vsphere-csi-driver

vSphere storage Container Storage Interface (CSI) plugin
https://docs.vmware.com/en/VMware-vSphere-Container-Storage-Plug-in/index.html
Apache License 2.0
288 stars 173 forks source link

Unit test changes related to StoragePolicy in vSphere CSI plugin #2896

Closed vdkotkar closed 1 month ago

vdkotkar commented 1 month ago

What this PR does / why we need it: We have some unit tests in CSI where we are using default StoragePolicy created in PBM ("vSAN Default Storage Policy") and using it for CreateVolume request. But actual code where we are checking if datastore is compatible with storage policy was not getting traversed, as we were passing following parameter for CreateVolume request: params["checkCompatibleDatastores"] = "false"

After doing some analysis found that we suppressed the code path mentioned above for unit testing, as we were getting following error from pbm simulator: failed to find datastore compatibility with storage policy ID <storage-policy-ID>. Error: ServerFaultCode: PbmPlacementSolver:placementSolver does not implement: PbmCheckCompatibility

Made changes in govmomi pbm simulator through PR https://github.com/vmware/govmomi/pull/3431 to fix this issue. So, after this fix there is no need to suppress the code path where we are checking if datastore is compatible with the storage policy.

Also, added a new unit test to create new StoragePolicy and sending this policy for CreateVolume request.

Which issue this PR fixes (optional, in fixes #<issue number>(, fixes #<issue_number>, ...) format, will close that issue when PR gets merged): fixes #

Testing done: All unit tests are passing with these changes.

Special notes for your reviewer:

Release note:

Unit test changes related to StoragePolicy in vSphere CSI plugin
k8s-ci-robot commented 1 month ago

Hi @vdkotkar. Thanks for your PR.

I'm waiting for a kubernetes-sigs member to verify that this patch is reasonable to test. If it is, they should reply with /ok-to-test on its own line. Until that is done, I will not automatically test new commits in this PR, but the usual testing commands by org members will still work. Regular contributors should join the org to skip this step.

Once the patch is verified, the new status will be reflected by the ok-to-test label.

I understand the commands that are listed here.

Instructions for interacting with me using PR comments are available [here](https://git.k8s.io/community/contributors/guide/pull-requests.md). If you have questions or suggestions related to my behavior, please file an issue against the [kubernetes-sigs/prow](https://github.com/kubernetes-sigs/prow/issues/new?title=Prow%20issue:) repository.
vdkotkar commented 1 month ago

/ok-to-test

k8s-ci-robot commented 1 month ago

@vdkotkar: Cannot trigger testing until a trusted user reviews the PR and leaves an /ok-to-test message.

In response to [this](https://github.com/kubernetes-sigs/vsphere-csi-driver/pull/2896#issuecomment-2114926010): >/ok-to-test Instructions for interacting with me using PR comments are available [here](https://git.k8s.io/community/contributors/guide/pull-requests.md). If you have questions or suggestions related to my behavior, please file an issue against the [kubernetes-sigs/prow](https://github.com/kubernetes-sigs/prow/issues/new?title=Prow%20issue:) repository.
divyenpatel commented 1 month ago

/ok-to-test

k8s-ci-robot commented 1 month ago

[APPROVALNOTIFIER] This PR is APPROVED

This pull-request has been approved by: divyenpatel, vdkotkar

The full list of commands accepted by this bot can be found here.

The pull request process is described here

Needs approval from an approver in each of these files: - ~~[OWNERS](https://github.com/kubernetes-sigs/vsphere-csi-driver/blob/master/OWNERS)~~ [divyenpatel] Approvers can indicate their approval by writing `/approve` in a comment Approvers can cancel approval by writing `/approve cancel` in a comment