Skip to content

Commit 0bbb000

Browse files
authored
Merge pull request #1083 from judemars/fix_sanity_tests
Fix resize-related sanity test failures
2 parents 3fdf68f + 7435b75 commit 0bbb000

File tree

12 files changed

+41
-22
lines changed

12 files changed

+41
-22
lines changed

cmd/gce-pd-csi-driver/main.go

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@ import (
2626
"k8s.io/klog/v2"
2727

2828
"sigs.k8s.io/gcp-compute-persistent-disk-csi-driver/pkg/common"
29+
"sigs.k8s.io/gcp-compute-persistent-disk-csi-driver/pkg/deviceutils"
2930
gce "sigs.k8s.io/gcp-compute-persistent-disk-csi-driver/pkg/gce-cloud-provider/compute"
3031
metadataservice "sigs.k8s.io/gcp-compute-persistent-disk-csi-driver/pkg/gce-cloud-provider/metadata"
3132
driver "sigs.k8s.io/gcp-compute-persistent-disk-csi-driver/pkg/gce-pd-csi-driver"
@@ -138,7 +139,7 @@ func handle() {
138139
if err != nil {
139140
klog.Fatalf("Failed to get safe mounter: %w", err)
140141
}
141-
deviceUtils := mountmanager.NewDeviceUtils()
142+
deviceUtils := deviceutils.NewDeviceUtils()
142143
statter := mountmanager.NewStatter(mounter)
143144
meta, err := metadataservice.NewMetadataService()
144145
if err != nil {

creds/cloud-sa.json

Whitespace-only changes.

pkg/mount-manager/device-utils.go renamed to pkg/deviceutils/device-utils.go

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ See the License for the specific language governing permissions and
1212
limitations under the License.
1313
*/
1414

15-
package mountmanager
15+
package deviceutils
1616

1717
import (
1818
"fmt"
@@ -27,6 +27,7 @@ import (
2727
"k8s.io/apimachinery/pkg/util/wait"
2828
"k8s.io/klog/v2"
2929
pathutils "k8s.io/utils/path"
30+
"sigs.k8s.io/gcp-compute-persistent-disk-csi-driver/pkg/resizefs"
3031
)
3132

3233
const (
@@ -84,6 +85,9 @@ type DeviceUtils interface {
8485
// DisableDevice performs necessary disabling prior to a device being
8586
// detached from a node. The path is that from GetDiskByIdPaths.
8687
DisableDevice(devicePath string) error
88+
89+
// Resize returns whether or not a device needs resizing.
90+
Resize(resizer resizefs.Resizefs, devicePath string, deviceMountPath string) (bool, error)
8791
}
8892

8993
type deviceUtils struct {
@@ -274,6 +278,10 @@ func (m *deviceUtils) VerifyDevicePath(devicePaths []string, deviceName string)
274278
return devicePath, nil
275279
}
276280

281+
func (m *deviceUtils) Resize(resizer resizefs.Resizefs, devicePath string, deviceMountPath string) (bool, error) {
282+
return resizer.Resize(devicePath, deviceMountPath)
283+
}
284+
277285
// getDevFsSerial returns the serial number of the /dev/* path at devFsPath.
278286
// If devFsPath does not start with a known prefix, returns the empty string.
279287
func getDevFsSerial(devFsPath string) (string, error) {

pkg/mount-manager/device-utils_linux.go renamed to pkg/deviceutils/device-utils_linux.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ See the License for the specific language governing permissions and
1414
limitations under the License.
1515
*/
1616

17-
package mountmanager
17+
package deviceutils
1818

1919
import (
2020
"fmt"

pkg/mount-manager/device-utils_test.go renamed to pkg/deviceutils/device-utils_test.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package mountmanager
1+
package deviceutils
22

33
import (
44
"testing"

pkg/mount-manager/device-utils_windows.go renamed to pkg/deviceutils/device-utils_windows.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ See the License for the specific language governing permissions and
1414
limitations under the License.
1515
*/
1616

17-
package mountmanager
17+
package deviceutils
1818

1919
func (_ *deviceUtils) DisableDevice(devicePath string) error {
2020
// No disabling is necessary on windows.

pkg/mount-manager/fake-device-utils.go renamed to pkg/deviceutils/fake-device-utils.go

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,9 @@ See the License for the specific language governing permissions and
1212
limitations under the License.
1313
*/
1414

15-
package mountmanager
15+
package deviceutils
16+
17+
import "sigs.k8s.io/gcp-compute-persistent-disk-csi-driver/pkg/resizefs"
1618

1719
type fakeDeviceUtils struct {
1820
}
@@ -38,3 +40,7 @@ func (_ *fakeDeviceUtils) DisableDevice(devicePath string) error {
3840
// No-op for testing.
3941
return nil
4042
}
43+
44+
func (_ *fakeDeviceUtils) Resize(resizer resizefs.Resizefs, devicePath string, deviceMountPath string) (bool, error) {
45+
return false, nil
46+
}

pkg/gce-pd-csi-driver/gce-pd-driver.go

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@ import (
2424
"k8s.io/klog/v2"
2525
"k8s.io/mount-utils"
2626
common "sigs.k8s.io/gcp-compute-persistent-disk-csi-driver/pkg/common"
27+
"sigs.k8s.io/gcp-compute-persistent-disk-csi-driver/pkg/deviceutils"
2728
gce "sigs.k8s.io/gcp-compute-persistent-disk-csi-driver/pkg/gce-cloud-provider/compute"
2829
metadataservice "sigs.k8s.io/gcp-compute-persistent-disk-csi-driver/pkg/gce-cloud-provider/metadata"
2930
mountmanager "sigs.k8s.io/gcp-compute-persistent-disk-csi-driver/pkg/mount-manager"
@@ -138,7 +139,7 @@ func NewIdentityServer(gceDriver *GCEDriver) *GCEIdentityServer {
138139
}
139140
}
140141

141-
func NewNodeServer(gceDriver *GCEDriver, mounter *mount.SafeFormatAndMount, deviceUtils mountmanager.DeviceUtils, meta metadataservice.MetadataService, statter mountmanager.Statter) *GCENodeServer {
142+
func NewNodeServer(gceDriver *GCEDriver, mounter *mount.SafeFormatAndMount, deviceUtils deviceutils.DeviceUtils, meta metadataservice.MetadataService, statter mountmanager.Statter) *GCENodeServer {
142143
return &GCENodeServer{
143144
Driver: gceDriver,
144145
Mounter: mounter,

pkg/gce-pd-csi-driver/node.go

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,7 @@ import (
3030
"k8s.io/mount-utils"
3131

3232
"sigs.k8s.io/gcp-compute-persistent-disk-csi-driver/pkg/common"
33+
"sigs.k8s.io/gcp-compute-persistent-disk-csi-driver/pkg/deviceutils"
3334
metadataservice "sigs.k8s.io/gcp-compute-persistent-disk-csi-driver/pkg/gce-cloud-provider/metadata"
3435
mountmanager "sigs.k8s.io/gcp-compute-persistent-disk-csi-driver/pkg/mount-manager"
3536
"sigs.k8s.io/gcp-compute-persistent-disk-csi-driver/pkg/resizefs"
@@ -38,7 +39,7 @@ import (
3839
type GCENodeServer struct {
3940
Driver *GCEDriver
4041
Mounter *mount.SafeFormatAndMount
41-
DeviceUtils mountmanager.DeviceUtils
42+
DeviceUtils deviceutils.DeviceUtils
4243
VolumeStatter mountmanager.Statter
4344
MetadataService metadataservice.MetadataService
4445

@@ -343,10 +344,9 @@ func (ns *GCENodeServer) NodeStageVolume(ctx context.Context, req *csi.NodeStage
343344
// Part 4: Resize filesystem.
344345
// https://github.com/kubernetes/kubernetes/issues/94929
345346
resizer := resizefs.NewResizeFs(ns.Mounter)
346-
_, err = resizer.Resize(devicePath, stagingTargetPath)
347+
_, err = ns.DeviceUtils.Resize(resizer, devicePath, stagingTargetPath)
347348
if err != nil {
348-
return nil, status.Error(codes.Internal, fmt.Sprintf("error when resizing volume %s: %v", volumeID, err))
349-
349+
return nil, status.Error(codes.Internal, fmt.Sprintf("error when resizing volume %s from device '%s' at path '%s': %v", volumeID, devicePath, stagingTargetPath, err))
350350
}
351351

352352
klog.V(4).Infof("NodeStageVolume succeeded on %v to %s", volumeID, stagingTargetPath)
@@ -508,7 +508,7 @@ func (ns *GCENodeServer) NodeExpandVolume(ctx context.Context, req *csi.NodeExpa
508508
resizer := resizefs.NewResizeFs(ns.Mounter)
509509
_, err = resizer.Resize(devicePath, volumePath)
510510
if err != nil {
511-
return nil, status.Error(codes.Internal, fmt.Sprintf("error when resizing volume %s: %v", volKey.String(), err))
511+
return nil, status.Error(codes.Internal, fmt.Sprintf("error when resizing volume %s from device '%s' at path '%s': %v", volKey.String(), devicePath, volumePath, err))
512512

513513
}
514514

pkg/gce-pd-csi-driver/node_test.go

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -19,16 +19,18 @@ import (
1919
"context"
2020
"fmt"
2121
"io/ioutil"
22-
"k8s.io/utils/exec"
23-
testingexec "k8s.io/utils/exec/testing"
2422
"os"
2523
"path/filepath"
2624
"testing"
2725

26+
"k8s.io/utils/exec"
27+
testingexec "k8s.io/utils/exec/testing"
28+
2829
csi "github.com/container-storage-interface/spec/lib/go/csi"
2930
"google.golang.org/grpc/codes"
3031
"google.golang.org/grpc/status"
3132
"k8s.io/mount-utils"
33+
"sigs.k8s.io/gcp-compute-persistent-disk-csi-driver/pkg/deviceutils"
3234
metadataservice "sigs.k8s.io/gcp-compute-persistent-disk-csi-driver/pkg/gce-cloud-provider/metadata"
3335
mountmanager "sigs.k8s.io/gcp-compute-persistent-disk-csi-driver/pkg/mount-manager"
3436
)
@@ -38,14 +40,14 @@ const defaultTargetPath = "/mnt/test"
3840
const defaultStagingPath = "/staging"
3941

4042
func getTestGCEDriver(t *testing.T) *GCEDriver {
41-
return getCustomTestGCEDriver(t, mountmanager.NewFakeSafeMounter(), mountmanager.NewFakeDeviceUtils(), metadataservice.NewFakeService())
43+
return getCustomTestGCEDriver(t, mountmanager.NewFakeSafeMounter(), deviceutils.NewFakeDeviceUtils(), metadataservice.NewFakeService())
4244
}
4345

4446
func getTestGCEDriverWithCustomMounter(t *testing.T, mounter *mount.SafeFormatAndMount) *GCEDriver {
45-
return getCustomTestGCEDriver(t, mounter, mountmanager.NewFakeDeviceUtils(), metadataservice.NewFakeService())
47+
return getCustomTestGCEDriver(t, mounter, deviceutils.NewFakeDeviceUtils(), metadataservice.NewFakeService())
4648
}
4749

48-
func getCustomTestGCEDriver(t *testing.T, mounter *mount.SafeFormatAndMount, deviceUtils mountmanager.DeviceUtils, metaService metadataservice.MetadataService) *GCEDriver {
50+
func getCustomTestGCEDriver(t *testing.T, mounter *mount.SafeFormatAndMount, deviceUtils deviceutils.DeviceUtils, metaService metadataservice.MetadataService) *GCEDriver {
4951
gceDriver := GetGCEDriver()
5052
nodeServer := NewNodeServer(gceDriver, mounter, deviceUtils, metaService, mountmanager.NewFakeStatter(mounter))
5153
err := gceDriver.SetupGCEDriver(driver, "test-vendor", nil, nil, nil, nodeServer)
@@ -58,7 +60,7 @@ func getCustomTestGCEDriver(t *testing.T, mounter *mount.SafeFormatAndMount, dev
5860
func getTestBlockingGCEDriver(t *testing.T, readyToExecute chan chan struct{}) *GCEDriver {
5961
gceDriver := GetGCEDriver()
6062
mounter := mountmanager.NewFakeSafeBlockingMounter(readyToExecute)
61-
nodeServer := NewNodeServer(gceDriver, mounter, mountmanager.NewFakeDeviceUtils(), metadataservice.NewFakeService(), mountmanager.NewFakeStatter(mounter))
63+
nodeServer := NewNodeServer(gceDriver, mounter, deviceutils.NewFakeDeviceUtils(), metadataservice.NewFakeService(), mountmanager.NewFakeStatter(mounter))
6264
err := gceDriver.SetupGCEDriver(driver, "test-vendor", nil, nil, nil, nodeServer)
6365
if err != nil {
6466
t.Fatalf("Failed to setup GCE Driver: %v", err)

0 commit comments

Comments
 (0)