Skip to content

Commit 1619dfd

Browse files
Support for additional Bus Types
- Adds support for busType: nvme, sata, scsi_paravirtual, scsi_lsi_logic_parallel, scsi_lsi_logic_sas
1 parent a20d510 commit 1619dfd

File tree

213 files changed

+21557
-255
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

213 files changed

+21557
-255
lines changed

README.md

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -61,10 +61,20 @@ kubectl set env -n kube-system DaemonSet/csi-vcd-nodeplugin -c vcd-csi-plugin GO
6161
| Storage Type | Independent Shareable Named Disks of VCD |
6262
|Provisioning|<ul><li>Static Provisioning</li><li>Dynamic Provisioning</li></ul>|
6363
|Access Modes|<ul><li>ReadOnlyMany</li><li>ReadWriteOnce</li></ul>|
64-
|Volume|Block|
64+
|Volume|<ul><li>Block</ul></li>|
6565
|VolumeMode|<ul><li>FileSystem</li></ul>|
6666
|Topology|<ul><li>Static Provisioning: reuses VCD topology capabilities</li><li>Dynamic Provisioning: places disk in the OVDC of the `ClusterAdminUser` based on the StorageProfile specified.</li></ul>|
6767

68+
## Supported Bus Types
69+
| Bus Type | `bustype` Parameter in `StorageClass` |
70+
| :--------- | :----------------------- |
71+
| Paravirtual (SCSI) | `scsi_paravirtual` (default) |
72+
| LSI Logic Parallel (SCSI) | `scsi_lsi_logic_parallel` |
73+
| LSI Logic SAS (SCSI) | `scsi_lsi_logic_sas` |
74+
| SATA | `sata` |
75+
| NVME | `nvme` |
76+
77+
6878
## Contributing
6979
Please see [CONTRIBUTING.md](CONTRIBUTING.md) for instructions on how to contribute.
7080

go.mod

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,19 +23,23 @@ require (
2323
)
2424

2525
require (
26+
github.com/jaypipes/ghw v0.10.0
2627
github.com/onsi/ginkgo v1.16.5
2728
github.com/onsi/gomega v1.19.0
2829
k8s.io/api v0.22.1
2930
k8s.io/apimachinery v0.22.1
3031
)
3132

3233
require (
34+
github.com/StackExchange/wmi v1.2.1 // indirect
3335
github.com/antihax/optional v1.0.0 // indirect
3436
github.com/apparentlymart/go-cidr v1.1.0 // indirect
3537
github.com/araddon/dateparse v0.0.0-20190622164848-0fb0a474d195 // indirect
3638
github.com/davecgh/go-spew v1.1.1 // indirect
3739
github.com/fsnotify/fsnotify v1.6.0 // indirect
40+
github.com/ghodss/yaml v1.0.0 // indirect
3841
github.com/go-logr/logr v0.4.0 // indirect
42+
github.com/go-ole/go-ole v1.2.6 // indirect
3943
github.com/go-openapi/errors v0.20.2 // indirect
4044
github.com/gogo/protobuf v1.3.2 // indirect
4145
github.com/golang/protobuf v1.5.2 // indirect
@@ -45,13 +49,16 @@ require (
4549
github.com/hashicorp/go-version v1.2.0 // indirect
4650
github.com/imdario/mergo v0.3.5 // indirect
4751
github.com/inconshreveable/mousetrap v1.0.0 // indirect
52+
github.com/jaypipes/pcidb v1.0.0 // indirect
4853
github.com/json-iterator/go v1.1.11 // indirect
4954
github.com/kr/pretty v0.2.1 // indirect
5055
github.com/kr/text v0.2.0 // indirect
56+
github.com/mitchellh/go-homedir v1.1.0 // indirect
5157
github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd // indirect
5258
github.com/modern-go/reflect2 v1.0.1 // indirect
5359
github.com/nxadm/tail v1.4.8 // indirect
5460
github.com/peterhellberg/link v1.1.0 // indirect
61+
github.com/pkg/errors v0.9.1 // indirect
5562
github.com/pmezard/go-difflib v1.0.0 // indirect
5663
github.com/sirupsen/logrus v1.8.1 // indirect
5764
golang.org/x/net v0.7.0 // indirect
@@ -63,6 +70,7 @@ require (
6370
google.golang.org/protobuf v1.26.0 // indirect
6471
gopkg.in/inf.v0 v0.9.1 // indirect
6572
gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7 // indirect
73+
howett.net/plist v1.0.0 // indirect
6674
k8s.io/client-go v0.22.1 // indirect
6775
k8s.io/utils v0.0.0-20210707171843-4b05e18ac7d9 // indirect
6876
sigs.k8s.io/structured-merge-diff/v4 v4.1.2 // indirect

go.sum

Lines changed: 20 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -48,6 +48,8 @@ github.com/NYTimes/gziphandler v1.1.1/go.mod h1:n/CVRwUEOgIxrgPvAQhUUr9oeUtvrhMo
4848
github.com/OneOfOne/xxhash v1.2.2/go.mod h1:HSdplMjZKSmBqAxg5vPj2TmRDmfkzw+cTzAElWljhcU=
4949
github.com/PuerkitoBio/purell v1.1.1/go.mod h1:c11w/QuzBsJSee3cPx9rAFu61PvFxuPbtSwDGJws/X0=
5050
github.com/PuerkitoBio/urlesc v0.0.0-20170810143723-de5bf2ad4578/go.mod h1:uGdkoq3SwY9Y+13GIhn11/XLaGBb4BfwItxLd5jeuXE=
51+
github.com/StackExchange/wmi v1.2.1 h1:VIkavFPXSjcnS+O8yTq7NI32k0R5Aj+v39y29VYDOSA=
52+
github.com/StackExchange/wmi v1.2.1/go.mod h1:rcmrprowKIVzvc+NUiLncP2uuArMWLCbu9SBzvHz7e8=
5153
github.com/akutz/gofsutil v0.1.2 h1:aCdWrZdxajx8kllNQSKaMDpRJWSE2wcyKNy7eDMXkrI=
5254
github.com/akutz/gofsutil v0.1.2/go.mod h1:09JEF8dR0bTTZMQ1m3/+O1rqQyH2lG1ET34POnpzyxw=
5355
github.com/alecthomas/template v0.0.0-20160405071501-a0175ee3bccc/go.mod h1:LOuyumcjzFXgccqObfd/Ljyb9UuFJ6TxHnclSeseNhc=
@@ -125,6 +127,7 @@ github.com/fsnotify/fsnotify v1.4.9/go.mod h1:znqG4EE+3YCdAaPaxE2ZRY/06pZUdp0tY4
125127
github.com/fsnotify/fsnotify v1.6.0 h1:n+5WquG0fcWoWp6xPWfHdbskMCQaFnG6PfBrh1Ky4HY=
126128
github.com/fsnotify/fsnotify v1.6.0/go.mod h1:sl3t1tCWJFWoRz9R8WJCbQihKKwmorjAbSClcnxKAGw=
127129
github.com/getsentry/raven-go v0.2.0/go.mod h1:KungGk8q33+aIAZUIVWZDr2OfAEBsO49PX4NzFV5kcQ=
130+
github.com/ghodss/yaml v1.0.0 h1:wQHKEahhL6wmXdzwWG11gIVCkOv05bNOh+Rxn0yngAk=
128131
github.com/ghodss/yaml v1.0.0/go.mod h1:4dBDuWmgqj2HViK6kFavaiC9ZROes6MMH2rRYeMEF04=
129132
github.com/go-gl/glfw v0.0.0-20190409004039-e6da0acd62b1/go.mod h1:vR7hzQXu2zJy9AVAgeJqvqgH9Q5CA+iKCZ2gyEVpxRU=
130133
github.com/go-gl/glfw/v3.3/glfw v0.0.0-20191125211704-12ad95a8df72/go.mod h1:tQ2UAYgL5IevRw8kRxooKSPJfGvJ9fJQFa0TUsXzTg8=
@@ -138,6 +141,9 @@ github.com/go-logfmt/logfmt v0.5.0/go.mod h1:wCYkCAKZfumFQihp8CzCvQ3paCTfi41vtzG
138141
github.com/go-logr/logr v0.1.0/go.mod h1:ixOQHD9gLJUVQQ2ZOR7zLEifBX6tGkNJF4QyIY7sIas=
139142
github.com/go-logr/logr v0.4.0 h1:K7/B1jt6fIBQVd4Owv2MqGQClcgf0R266+7C/QjRcLc=
140143
github.com/go-logr/logr v0.4.0/go.mod h1:z6/tIYblkpsD+a4lm/fGIIU9mZ+XfAiaFtq7xTgseGU=
144+
github.com/go-ole/go-ole v1.2.5/go.mod h1:pprOEPIfldk/42T2oK7lQ4v4JSDwmV0As9GaiUsvbm0=
145+
github.com/go-ole/go-ole v1.2.6 h1:/Fpf6oFPoeFik9ty7siob0G6Ke8QvQEuVcuChpwXzpY=
146+
github.com/go-ole/go-ole v1.2.6/go.mod h1:pprOEPIfldk/42T2oK7lQ4v4JSDwmV0As9GaiUsvbm0=
141147
github.com/go-openapi/errors v0.20.2 h1:dxy7PGTqEh94zj2E3h1cUmQQWiM1+aeCROfAr02EmK8=
142148
github.com/go-openapi/errors v0.20.2/go.mod h1:cM//ZKUKyO06HSwqAelJ5NsEMMcpa6VpXe8DOa1Mi1M=
143149
github.com/go-openapi/jsonpointer v0.19.3/go.mod h1:Pl9vOtqEWErmShwVjC8pYs9cog34VGT37dQOVbmoatg=
@@ -258,6 +264,11 @@ github.com/imdario/mergo v0.3.5 h1:JboBksRwiiAJWvIYJVo46AfV+IAIKZpfrSzVKj42R4Q=
258264
github.com/imdario/mergo v0.3.5/go.mod h1:2EnlNZ0deacrJVfApfmtdGgDfMuh/nq6Ok1EcJh5FfA=
259265
github.com/inconshreveable/mousetrap v1.0.0 h1:Z8tu5sraLXCXIcARxBp/8cbvlwVa7Z1NHg9XEKhtSvM=
260266
github.com/inconshreveable/mousetrap v1.0.0/go.mod h1:PxqpIevigyE2G7u3NXJIT2ANytuPF1OarO4DADm73n8=
267+
github.com/jaypipes/ghw v0.10.0 h1:UHu9UX08Py315iPojADFPOkmjTsNzHj4g4adsNKKteY=
268+
github.com/jaypipes/ghw v0.10.0/go.mod h1:jeJGbkRB2lL3/gxYzNYzEDETV1ZJ56OKr+CSeSEym+g=
269+
github.com/jaypipes/pcidb v1.0.0 h1:vtZIfkiCUE42oYbJS0TAq9XSfSmcsgo9IdxSm9qzYU8=
270+
github.com/jaypipes/pcidb v1.0.0/go.mod h1:TnYUvqhPBzCKnH34KrIX22kAeEbDCSRJ9cqLRCuNDfk=
271+
github.com/jessevdk/go-flags v1.4.0/go.mod h1:4FA24M0QyGHXBuZZK/XkWh8h0e1EYbRYJSGM75WSRxI=
261272
github.com/jonboulle/clockwork v0.1.0/go.mod h1:Ii8DK3G1RaLaWxj9trq07+26W01tbo22gdxWY5EU2bo=
262273
github.com/jonboulle/clockwork v0.2.2/go.mod h1:Pkfl5aHPm1nk2H9h0bjmnJD/BcgbGXUBGnn1kMkgxc8=
263274
github.com/josharian/intern v1.0.0/go.mod h1:5DoeVV0s6jJacbCEi61lwdGj/aVlrQvzHFFd8Hwg//Y=
@@ -297,6 +308,7 @@ github.com/matttproud/golang_protobuf_extensions v1.0.2-0.20181231171920-c182aff
297308
github.com/miekg/dns v1.0.14/go.mod h1:W1PPwlIAgtquWBMBEV9nkV9Cazfe8ScdGz/Lj7v3Nrg=
298309
github.com/mitchellh/cli v1.0.0/go.mod h1:hNIlj7HEI86fIcpObd7a0FcrxTWetlwJDGcceTlRvqc=
299310
github.com/mitchellh/go-homedir v1.0.0/go.mod h1:SfyaCUpYCn1Vlf4IUYiD9fPX4A5wJrkLzIz1N1q0pr0=
311+
github.com/mitchellh/go-homedir v1.1.0 h1:lukF9ziXFxDFPkA1vsr5zpc1XuPDn/wFntq5mG+4E0Y=
300312
github.com/mitchellh/go-homedir v1.1.0/go.mod h1:SfyaCUpYCn1Vlf4IUYiD9fPX4A5wJrkLzIz1N1q0pr0=
301313
github.com/mitchellh/go-testing-interface v1.0.0/go.mod h1:kRemZodwjscx+RGhAo8eIhFbs2+BFgRtFPeD/KE+zxI=
302314
github.com/mitchellh/gox v0.4.0/go.mod h1:Sd9lOJ0+aimLBi73mGofS1ycjY8lL3uZM3JPS42BGNg=
@@ -345,6 +357,7 @@ github.com/peterhellberg/link v1.1.0 h1:s2+RH8EGuI/mI4QwrWGSYQCRz7uNgip9BaM04HKu
345357
github.com/peterhellberg/link v1.1.0/go.mod h1:gtSlOT4jmkY8P47hbTc8PTgiDDWpdPbFYl75keYyBB8=
346358
github.com/pkg/errors v0.8.0/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0=
347359
github.com/pkg/errors v0.8.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0=
360+
github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4=
348361
github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0=
349362
github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM=
350363
github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=
@@ -392,10 +405,12 @@ github.com/spaolacci/murmur3 v0.0.0-20180118202830-f09979ecbc72/go.mod h1:JwIasO
392405
github.com/spf13/afero v1.1.2/go.mod h1:j4pytiNVoe2o6bmDsKpLACNPDBIoEAkihy7loJ1B0CQ=
393406
github.com/spf13/afero v1.2.2/go.mod h1:9ZxEEn6pIJ8Rxe320qSDBk6AsU0r9pR7Q4OcevTdifk=
394407
github.com/spf13/cast v1.3.0/go.mod h1:Qx5cxh0v+4UWYiBimWS+eyWzqEqokIECu5etghLkUJE=
408+
github.com/spf13/cobra v0.0.3/go.mod h1:1l0Ry5zgKvJasoi3XT1TypsSe7PqH0Sj9dhYf7v3XqQ=
395409
github.com/spf13/cobra v1.1.3 h1:xghbfqPkxzxP3C/f3n5DdpAbdKLj4ZE4BWQI362l53M=
396410
github.com/spf13/cobra v1.1.3/go.mod h1:pGADOWyqRD/YMrPZigI/zbliZ2wVD/23d+is3pSWzOo=
397411
github.com/spf13/jwalterweatherman v1.0.0/go.mod h1:cQK4TGJAtQXfYWX+Ddv3mKDzgVb68N+wFjFa4jdeBTo=
398412
github.com/spf13/pflag v0.0.0-20170130214245-9ff6c6923cff/go.mod h1:DYY7MBk1bdzusC3SYhjObp+wFpr4gzcvqqNjLnInEg4=
413+
github.com/spf13/pflag v1.0.2/go.mod h1:DYY7MBk1bdzusC3SYhjObp+wFpr4gzcvqqNjLnInEg4=
399414
github.com/spf13/pflag v1.0.3/go.mod h1:DYY7MBk1bdzusC3SYhjObp+wFpr4gzcvqqNjLnInEg4=
400415
github.com/spf13/pflag v1.0.5 h1:iy+VFUOCP1a+8yFto/drg2CJ5u0yRoB7fZw3DKv/JXA=
401416
github.com/spf13/pflag v1.0.5/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg=
@@ -415,8 +430,6 @@ github.com/thecodeteam/gofsutil v0.1.2 h1:FL87mBzZeeuDMZm8hpYLFcYylQdq6bbm8UQ1oc
415430
github.com/thecodeteam/gofsutil v0.1.2/go.mod h1:7bDOpr2aMnmdm9RTdxBEeqdOr+8RpnQhsB/VUEI3DgM=
416431
github.com/tmc/grpc-websocket-proxy v0.0.0-20190109142713-0ad062ec5ee5/go.mod h1:ncp9v5uamzpCO7NfCPTXjqaC+bZgJeR0sMTm6dMHP7U=
417432
github.com/tmc/grpc-websocket-proxy v0.0.0-20201229170055-e5319fda7802/go.mod h1:ncp9v5uamzpCO7NfCPTXjqaC+bZgJeR0sMTm6dMHP7U=
418-
github.com/vmware/cloud-provider-for-cloud-director v0.0.0-20230222230722-7c5369c203b4 h1:UV1HVN0D7GUnnrRfwlZ+7b8UQ2KZvTmpCIzsc4PdChE=
419-
github.com/vmware/cloud-provider-for-cloud-director v0.0.0-20230222230722-7c5369c203b4/go.mod h1:B7LWK1eIP4gYf5grYWNCwMuMkaGqXJ3BJj+ZNe1Gbpw=
420433
github.com/vmware/cloud-provider-for-cloud-director v0.0.0-20230223225414-a1a149d80f32 h1:ElHFuTF37Ed7umYuJwQIrNPz+DVbWtMU1I9DhRjl8Kw=
421434
github.com/vmware/cloud-provider-for-cloud-director v0.0.0-20230223225414-a1a149d80f32/go.mod h1:B7LWK1eIP4gYf5grYWNCwMuMkaGqXJ3BJj+ZNe1Gbpw=
422435
github.com/vmware/go-vcloud-director/v2 v2.14.0-rc.3 h1:VJolXzgomaRPrgzSr0EduuUtJIJEf5RdoLbktZFQqIc=
@@ -586,6 +599,7 @@ golang.org/x/sys v0.0.0-20190606165138-5da285871e9c/go.mod h1:h1NjWce9XRLGQEsW7w
586599
golang.org/x/sys v0.0.0-20190624142023-c5567b49c5d0/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
587600
golang.org/x/sys v0.0.0-20190726091711-fc99dfbffb4e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
588601
golang.org/x/sys v0.0.0-20190904154756-749cb33beabd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
602+
golang.org/x/sys v0.0.0-20190916202348-b4ddaad3f8a3/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
589603
golang.org/x/sys v0.0.0-20191001151750-bb3f8db39f24/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
590604
golang.org/x/sys v0.0.0-20191005200804-aed5e4c7ecf9/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
591605
golang.org/x/sys v0.0.0-20191026070338-33540a1f6037/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
@@ -623,6 +637,7 @@ golang.org/x/sys v0.0.0-20210603081109-ebe580a85c40/go.mod h1:oPkhp1MJrh7nUepCBc
623637
golang.org/x/sys v0.0.0-20210615035016-665e8c7367d1/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
624638
golang.org/x/sys v0.0.0-20210616094352-59db8d763f22/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
625639
golang.org/x/sys v0.0.0-20211216021012-1d35b9e2eb4e/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
640+
golang.org/x/sys v0.0.0-20220319134239-a9b59b0215f8/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
626641
golang.org/x/sys v0.0.0-20220520151302-bc2c85ada10a/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
627642
golang.org/x/sys v0.0.0-20220722155257-8c9f86f7a55f/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
628643
golang.org/x/sys v0.0.0-20220908164124-27713097b956/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
@@ -809,6 +824,7 @@ gopkg.in/resty.v1 v1.12.0/go.mod h1:mDo4pnntr5jdWRML875a/NmxYqAlA73dVijT2AXvQQo=
809824
gopkg.in/square/go-jose.v2 v2.2.2/go.mod h1:M9dMgbHiYLoDGQrXy7OpJDJWiKiU//h+vD76mk0e1AI=
810825
gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7 h1:uRGJdciOHaEIrze2W8Q3AKkepLTh2hOroT7a+7czfdQ=
811826
gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7/go.mod h1:dt/ZhP58zS4L8KSrWDmTeBkI65Dw0HsyUHuEVlX15mw=
827+
gopkg.in/yaml.v1 v1.0.0-20140924161607-9f9df34309c0/go.mod h1:WDnlLJ4WF5VGsH/HVa3CI79GS0ol3YnhVnKP89i0kNg=
812828
gopkg.in/yaml.v2 v2.0.0-20170812160011-eb3733d160e7/go.mod h1:JAlM8MvJe8wmxCU4Bli9HhUf9+ttbYbLASfIpnQbh74=
813829
gopkg.in/yaml.v2 v2.2.1/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
814830
gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
@@ -833,6 +849,8 @@ honnef.co/go/tools v0.0.0-20190523083050-ea95bdfd59fc/go.mod h1:rf3lG4BRIbNafJWh
833849
honnef.co/go/tools v0.0.1-2019.2.3/go.mod h1:a3bituU0lyd329TUQxRnasdCoJDkEUEAqEt0JzvZhAg=
834850
honnef.co/go/tools v0.0.1-2020.1.3/go.mod h1:X/FiERA/W4tHapMX5mGpAtMSVEeEUOyHaw9vFzvIQ3k=
835851
honnef.co/go/tools v0.0.1-2020.1.4/go.mod h1:X/FiERA/W4tHapMX5mGpAtMSVEeEUOyHaw9vFzvIQ3k=
852+
howett.net/plist v1.0.0 h1:7CrbWYbPPO/PyNy38b2EB/+gYbjCe2DXBxgtOOZbSQM=
853+
howett.net/plist v1.0.0/go.mod h1:lqaXoTrLY4hg8tnEzNru53gicrbv7rrk+2xJA/7hw9g=
836854
k8s.io/api v0.22.1 h1:ISu3tD/jRhYfSW8jI/Q1e+lRxkR7w9UwQEZ7FgslrwY=
837855
k8s.io/api v0.22.1/go.mod h1:bh13rkTp3F1XEaLGykbyRD2QaTTzPm0e/BMd8ptFONY=
838856
k8s.io/apimachinery v0.22.1 h1:DTARnyzmdHMz7bFWFDDm22AM4pLWTQECMpRTFu2d2OM=

pkg/csi/controller.go

Lines changed: 33 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,8 @@ package csi
88
import (
99
"context"
1010
"fmt"
11+
"math"
12+
1113
"github.com/container-storage-interface/spec/lib/go/csi"
1214
"github.com/vmware/cloud-director-named-disk-csi-driver/pkg/util"
1315
"github.com/vmware/cloud-director-named-disk-csi-driver/pkg/vcdcsiclient"
@@ -16,7 +18,6 @@ import (
1618
"google.golang.org/grpc/codes"
1719
"google.golang.org/grpc/status"
1820
"k8s.io/klog"
19-
"math"
2021
)
2122

2223
const (
@@ -27,7 +28,6 @@ const (
2728

2829
const (
2930
BusTypeParameter = "busType"
30-
BusSubTypeParameter = "busSubType"
3131
StorageProfileParameter = "storageProfile"
3232
FileSystemParameter = "filesystem"
3333
EphemeralVolumeContext = "csi.storage.k8s.io/ephemeral"
@@ -36,15 +36,8 @@ const (
3636
VMFullNameAttribute = "vmID"
3737
DiskUUIDAttribute = "diskUUID"
3838
FileSystemAttribute = "filesystem"
39-
)
40-
41-
var (
42-
// BusTypesFromValues is a map of different possible BusTypes from id to string
43-
BusTypesFromValues = map[string]string{
44-
"5": "IDE",
45-
"6": "SCSI",
46-
"20": "SATA",
47-
}
39+
DefaultFS = "ext4"
40+
DefaultBusType = "scsi_paravirtual"
4841
)
4942

5043
type controllerServer struct {
@@ -97,7 +90,7 @@ func (cs *controllerServer) CreateVolume(ctx context.Context,
9790
}
9891

9992
volumeCapabilities := req.GetVolumeCapabilities()
100-
if volumeCapabilities == nil || len(volumeCapabilities) == 0 {
93+
if len(volumeCapabilities) == 0 { // should omit nil check; len() for []*github.com/container-storage-interface/spec/lib/go/csi.VolumeCapability is defined as zero (S1009)
10194
return nil, status.Error(codes.InvalidArgument, "CreateVolume: VolumeCapabilities should be provided")
10295
}
10396
for _, volumeCapability := range volumeCapabilities {
@@ -117,38 +110,47 @@ func (cs *controllerServer) CreateVolume(ctx context.Context,
117110
klog.Infof("CreateVolume: requesting volume [%s] with size [%d] MiB, shareable [%v]",
118111
diskName, sizeMB, shareable)
119112

120-
busType := vcdcsiclient.VCDBusTypeSCSI
121-
busSubType := vcdcsiclient.VCDBusSubTypeVirtualSCSI
113+
var (
114+
storageProfile string
115+
fsType string
116+
busType string
117+
tuple vcdcsiclient.BusTuple
118+
ok bool
119+
)
120+
121+
if busType, ok = req.Parameters[BusTypeParameter]; !ok {
122+
busType = DefaultBusType
123+
klog.Infof("No parameter [%s] specified for raw disk [%s]. Hence defaulting to [%s].", BusTypeParameter, diskName, DefaultBusType)
124+
}
125+
tuple = vcdcsiclient.BusTypesSet[busType]
122126

123-
storageProfile, _ := req.Parameters[StorageProfileParameter]
127+
if storageProfile, ok = req.Parameters[StorageProfileParameter]; !ok {
128+
klog.Infof("No parameter [%s] specified for raw disk [%s]. ", StorageProfileParameter, diskName)
129+
}
124130

125-
disk, err := cs.DiskManager.CreateDisk(diskName, sizeMB, busType,
126-
busSubType, "", storageProfile, shareable)
131+
if fsType, ok = req.Parameters[FileSystemParameter]; !ok {
132+
fsType = DefaultFS
133+
klog.Infof("No parameter [%s] specified for raw disk [%s]. Hence defaulting to [%s].", FileSystemParameter, diskName, DefaultFS)
134+
}
135+
136+
disk, err := cs.DiskManager.CreateDisk(diskName, sizeMB, tuple.BusType, tuple.BusSubType, "", storageProfile, shareable)
127137
if err != nil {
128138
if rdeErr := cs.DiskManager.AddToErrorSet(util.DiskCreateError, "", diskName, map[string]interface{}{"Detailed Error": err.Error()}); rdeErr != nil {
129139
klog.Errorf("unable to add error [%s] into [CSI.Errors] in RDE [%s], %v", util.DiskCreateError, cs.DiskManager.ClusterID, rdeErr)
130140
}
131-
return nil, fmt.Errorf("unable to create disk [%s] with sise [%d]MB: [%v]",
132-
diskName, sizeMB, err)
141+
return nil, fmt.Errorf("unable to create disk [%s] with size [%d]MB: [%v]", diskName, sizeMB, err)
133142
}
134143
if removeErrorRdeErr := cs.DiskManager.RemoveFromErrorSet(util.DiskCreateError, "", diskName); removeErrorRdeErr != nil {
135144
klog.Errorf("unable to remove error [%s] from [CSI.Errors] in RDE [%s]", util.DiskCreateError, cs.DiskManager.ClusterID)
136145
}
137146
klog.Infof("Successfully created disk [%s] of size [%d]MB", diskName, sizeMB)
138147

139-
attributes := make(map[string]string)
140-
attributes[BusTypeParameter] = BusTypesFromValues[disk.BusType]
141-
attributes[BusSubTypeParameter] = disk.BusSubType
142-
attributes[StorageProfileParameter] = disk.StorageProfile.Name
143-
attributes[DiskIDAttribute] = disk.Id
144-
145-
fsType := ""
146-
ok := false
147-
if fsType, ok = req.Parameters[FileSystemParameter]; !ok {
148-
fsType = "ext4"
149-
klog.Infof("No FS specified for raw disk [%s]. Hence defaulting to [%s].", diskName, fsType)
148+
attributes := map[string]string{
149+
BusTypeParameter: vcdcsiclient.BusSubTypesFromValues[disk.BusSubType], // BusSubType defines better the busType since SATA and NVME share the same ID=20
150+
StorageProfileParameter: disk.StorageProfile.Name,
151+
DiskIDAttribute: disk.Id,
152+
FileSystemParameter: fsType,
150153
}
151-
attributes[FileSystemParameter] = fsType
152154

153155
resp := &csi.CreateVolumeResponse{
154156
Volume: &csi.Volume{

0 commit comments

Comments
 (0)