mirror of
				https://github.com/optim-enterprises-bv/kubernetes.git
				synced 2025-10-31 02:08:13 +00:00 
			
		
		
		
	various corrections in pkg/volume
Signed-off-by: Humble Chirammal <hchiramm@redhat.com>
This commit is contained in:
		| @@ -357,7 +357,7 @@ func TestPlugin(t *testing.T) { | ||||
| 		t.Errorf("Failed to GetVolumeName: %v", err) | ||||
| 	} | ||||
| 	if vName != "test_volume_name/test_configmap_name" { | ||||
| 		t.Errorf("Got unexpect VolumeName %v", vName) | ||||
| 		t.Errorf("Got unexpected VolumeName %v", vName) | ||||
| 	} | ||||
|  | ||||
| 	volumePath := mounter.GetPath() | ||||
| @@ -481,7 +481,7 @@ func TestPluginOptional(t *testing.T) { | ||||
| 		t.Errorf("Failed to GetVolumeName: %v", err) | ||||
| 	} | ||||
| 	if vName != "test_volume_name/test_configmap_name" { | ||||
| 		t.Errorf("Got unexpect VolumeName %v", vName) | ||||
| 		t.Errorf("Got unexpected VolumeName %v", vName) | ||||
| 	} | ||||
|  | ||||
| 	volumePath := mounter.GetPath() | ||||
| @@ -580,7 +580,7 @@ func TestPluginKeysOptional(t *testing.T) { | ||||
| 		t.Errorf("Failed to GetVolumeName: %v", err) | ||||
| 	} | ||||
| 	if vName != "test_volume_name/test_configmap_name" { | ||||
| 		t.Errorf("Got unexpect VolumeName %v", vName) | ||||
| 		t.Errorf("Got unexpected VolumeName %v", vName) | ||||
| 	} | ||||
|  | ||||
| 	volumePath := mounter.GetPath() | ||||
| @@ -660,7 +660,7 @@ func TestInvalidConfigMapSetup(t *testing.T) { | ||||
| 		t.Errorf("Failed to GetVolumeName: %v", err) | ||||
| 	} | ||||
| 	if vName != "test_volume_name/test_configmap_name" { | ||||
| 		t.Errorf("Got unexpect VolumeName %v", vName) | ||||
| 		t.Errorf("Got unexpected VolumeName %v", vName) | ||||
| 	} | ||||
|  | ||||
| 	volumePath := mounter.GetPath() | ||||
|   | ||||
| @@ -219,7 +219,7 @@ func TestBlockMapperSetupDevice(t *testing.T) { | ||||
| 	if err != nil { | ||||
| 		t.Fatalf("failed to setup VolumeAttachment: %v", err) | ||||
| 	} | ||||
| 	t.Log("created attachement ", attachID) | ||||
| 	t.Log("created attachment ", attachID) | ||||
|  | ||||
| 	stagingPath, err := csiMapper.SetUpDevice() | ||||
| 	if err != nil { | ||||
| @@ -260,7 +260,7 @@ func TestBlockMapperSetupDeviceError(t *testing.T) { | ||||
| 	if err != nil { | ||||
| 		t.Fatalf("failed to setup VolumeAttachment: %v", err) | ||||
| 	} | ||||
| 	t.Log("created attachement ", attachID) | ||||
| 	t.Log("created attachment ", attachID) | ||||
|  | ||||
| 	stagingPath, err := csiMapper.SetUpDevice() | ||||
| 	if err == nil { | ||||
| @@ -304,7 +304,7 @@ func TestBlockMapperMapPodDevice(t *testing.T) { | ||||
| 	if err != nil { | ||||
| 		t.Fatalf("failed to setup VolumeAttachment: %v", err) | ||||
| 	} | ||||
| 	t.Log("created attachement ", attachID) | ||||
| 	t.Log("created attachment ", attachID) | ||||
|  | ||||
| 	// Map device to global and pod device map path | ||||
| 	path, err := csiMapper.MapPodDevice() | ||||
| @@ -495,7 +495,7 @@ func TestVolumeSetupTeardown(t *testing.T) { | ||||
| 	if err != nil { | ||||
| 		t.Fatalf("failed to setup VolumeAttachment: %v", err) | ||||
| 	} | ||||
| 	t.Log("created attachement ", attachID) | ||||
| 	t.Log("created attachment ", attachID) | ||||
|  | ||||
| 	stagingPath, err := csiMapper.SetUpDevice() | ||||
| 	if err != nil { | ||||
|   | ||||
| @@ -22,7 +22,7 @@ import ( | ||||
| 	utilversion "k8s.io/apimachinery/pkg/util/version" | ||||
| ) | ||||
|  | ||||
| // Driver is a description of a CSI Driver, defined by an enpoint and the | ||||
| // Driver is a description of a CSI Driver, defined by an endpoint and the | ||||
| // highest CSI version supported | ||||
| type Driver struct { | ||||
| 	endpoint                string | ||||
|   | ||||
| @@ -86,7 +86,7 @@ func (mc *metricsCsi) GetMetrics() (*volume.Metrics, error) { | ||||
| 	return metrics, nil | ||||
| } | ||||
|  | ||||
| // MetricsManager defines the metrics mananger for CSI operation | ||||
| // MetricsManager defines the metrics manager for CSI operation | ||||
| type MetricsManager struct { | ||||
| 	driverName string | ||||
| } | ||||
|   | ||||
| @@ -987,7 +987,7 @@ func TestPluginCanAttach(t *testing.T) { | ||||
|  | ||||
| 			pluginCanAttach, err := plug.CanAttach(test.spec) | ||||
| 			if err != nil && !test.shouldFail { | ||||
| 				t.Fatalf("unexected plugin.CanAttach error: %s", err) | ||||
| 				t.Fatalf("unexpected plugin.CanAttach error: %s", err) | ||||
| 			} | ||||
| 			if pluginCanAttach != test.canAttach { | ||||
| 				t.Fatalf("expecting plugin.CanAttach %t got %t", test.canAttach, pluginCanAttach) | ||||
| @@ -1062,7 +1062,7 @@ func TestPluginFindAttachablePlugin(t *testing.T) { | ||||
|  | ||||
| 			plugin, err := plugMgr.FindAttachablePluginBySpec(test.spec) | ||||
| 			if err != nil && !test.shouldFail { | ||||
| 				t.Fatalf("unexected error calling pluginMgr.FindAttachablePluginBySpec: %s", err) | ||||
| 				t.Fatalf("unexpected error calling pluginMgr.FindAttachablePluginBySpec: %s", err) | ||||
| 			} | ||||
| 			if (plugin != nil) != test.canAttach { | ||||
| 				t.Fatal("expecting attachable plugin, but got nil") | ||||
|   | ||||
| @@ -203,7 +203,7 @@ func TestCSI_VolumeAll(t *testing.T) { | ||||
| 			shouldFail: true, | ||||
| 		}, | ||||
| 		{ | ||||
| 			name:     "incompete spec", | ||||
| 			name:     "incomplete spec", | ||||
| 			specName: "pv2", | ||||
| 			driver:   "simple-driver", | ||||
| 			volName:  "vol2", | ||||
| @@ -434,7 +434,7 @@ func TestCSI_VolumeAll(t *testing.T) { | ||||
|  | ||||
| 			dataFile := filepath.Join(filepath.Dir(mounter.GetPath()), volDataFileName) | ||||
| 			if _, err := os.Stat(dataFile); err != nil { | ||||
| 				t.Fatalf("csiTest.VolumeAll meatadata JSON file not found: %s", dataFile) | ||||
| 				t.Fatalf("csiTest.VolumeAll metadata JSON file not found: %s", dataFile) | ||||
| 			} | ||||
| 			t.Log("csiTest.VolumeAll JSON datafile generated OK:", dataFile) | ||||
|  | ||||
|   | ||||
| @@ -163,7 +163,7 @@ func TestNodeExpand(t *testing.T) { | ||||
| 				} | ||||
| 			} | ||||
|  | ||||
| 			// verify device staging targer path | ||||
| 			// verify device staging target path | ||||
| 			stagingTargetPath := fakeNodeClient.FakeNodeExpansionRequest.GetStagingTargetPath() | ||||
| 			if tc.deviceStagePath != "" && tc.deviceStagePath != stagingTargetPath { | ||||
| 				t.Errorf("For %s: expected staging path %s got %s", tc.name, tc.deviceStagePath, stagingTargetPath) | ||||
|   | ||||
| @@ -288,7 +288,7 @@ func (plugin *fcPlugin) ConstructVolumeSpec(volumeName, mountPath string) (*volu | ||||
|  | ||||
| // ConstructBlockVolumeSpec creates a new volume.Spec with following steps. | ||||
| //   - Searches a file whose name is {pod uuid} under volume plugin directory. | ||||
| //   - If a file is found, then retreives volumePluginDependentPath from globalMapPathUUID. | ||||
| //   - If a file is found, then retrieves volumePluginDependentPath from globalMapPathUUID. | ||||
| //   - Once volumePluginDependentPath is obtained, store volume information to VolumeSource | ||||
| // | ||||
| // examples: | ||||
|   | ||||
| @@ -211,7 +211,7 @@ func searchDisk(b fcDiskMounter) (string, error) { | ||||
| 		diskIDs = wwids | ||||
| 	} | ||||
|  | ||||
| 	rescaned := false | ||||
| 	rescanned := false | ||||
| 	// two-phase search: | ||||
| 	// first phase, search existing device path, if a multipath dm is found, exit loop | ||||
| 	// otherwise, in second phase, rescan scsi bus and search again, return with any findings | ||||
| @@ -228,13 +228,13 @@ func searchDisk(b fcDiskMounter) (string, error) { | ||||
| 			} | ||||
| 		} | ||||
| 		// if a dm is found, exit loop | ||||
| 		if rescaned || dm != "" { | ||||
| 		if rescanned || dm != "" { | ||||
| 			break | ||||
| 		} | ||||
| 		// rescan and search again | ||||
| 		// rescan scsi bus | ||||
| 		scsiHostRescan(io) | ||||
| 		rescaned = true | ||||
| 		rescanned = true | ||||
| 	} | ||||
| 	// if no disk matches input wwn and lun, exit | ||||
| 	if disk == "" && dm == "" { | ||||
|   | ||||
| @@ -38,7 +38,7 @@ func NewCachedMetrics(provider MetricsProvider) MetricsProvider { | ||||
| 	return &cachedMetrics{wrapped: provider} | ||||
| } | ||||
|  | ||||
| // GetMetrics runs the wrapped metrics provider's GetMetrics methd once and | ||||
| // GetMetrics runs the wrapped metrics provider's GetMetrics method once and | ||||
| // caches the result. Will not cache result if there is an error. | ||||
| // See MetricsProvider.GetMetrics | ||||
| func (md *cachedMetrics) GetMetrics() (*Metrics, error) { | ||||
|   | ||||
| @@ -284,7 +284,7 @@ func createDriverClient(hostname string, port int32) (*osdclient.Client, error) | ||||
| // getPortworxDriver returns a Portworx volume driver which can be used for cluster wide operations. | ||||
| // | ||||
| //	Operations like create and delete volume don't need to be restricted to local volume host since | ||||
| //	any node in the Portworx cluster can co-ordinate the create/delete request and forward the operations to | ||||
| //	any node in the Portworx cluster can coordinate the create/delete request and forward the operations to | ||||
| //	the Portworx node that will own/owns the data. | ||||
| func (util *portworxVolumeUtil) getPortworxDriver(volumeHost volume.VolumeHost) (volumeapi.VolumeDriver, error) { | ||||
| 	// check if existing saved client is valid | ||||
|   | ||||
| @@ -770,7 +770,7 @@ func (r *rbdVolumeDeleter) Delete() error { | ||||
| 	return r.manager.DeleteImage(r) | ||||
| } | ||||
|  | ||||
| // rbd implmenets volume.Volume interface. | ||||
| // rbd implements volume.Volume interface. | ||||
| // It's embedded in Mounter/Unmounter/Deleter. | ||||
| type rbd struct { | ||||
| 	volName  string | ||||
|   | ||||
| @@ -52,7 +52,7 @@ func (handler *deviceHandler) FindMultipathDeviceForDevice(device string) string | ||||
| 	return "" | ||||
| } | ||||
|  | ||||
| // findDeviceForPath Find the underlaying disk for a linked path such as /dev/disk/by-path/XXXX or /dev/mapper/XXXX | ||||
| // findDeviceForPath Find the underlying disk for a linked path such as /dev/disk/by-path/XXXX or /dev/mapper/XXXX | ||||
| // will return sdX or hdX etc, if /dev/sdX is passed in then sdX will be returned | ||||
| func findDeviceForPath(path string, io IoUtil) (string, error) { | ||||
| 	devicePath, err := io.EvalSymlinks(path) | ||||
|   | ||||
| @@ -737,7 +737,7 @@ func (og *operationGenerator) GenerateMountVolumeFunc( | ||||
| 			// At this point, MountVolume.Setup already succeeded, we should add volume into actual state | ||||
| 			// so that reconciler can clean up volume when needed. However, volume resize failed, | ||||
| 			// we should not mark the volume as mounted to avoid pod starts using it. | ||||
| 			// Considering the above situations, we mark volume as uncertain here so that reconciler will tigger | ||||
| 			// Considering the above situations, we mark volume as uncertain here so that reconciler will trigger | ||||
| 			// volume tear down when pod is deleted, and also makes sure pod will not start using it. | ||||
| 			if err := actualStateOfWorld.MarkVolumeMountAsUncertain(markOpts); err != nil { | ||||
| 				klog.Errorf(volumeToMount.GenerateErrorDetailed("MountVolume.MarkVolumeMountAsUncertain failed", err).Error()) | ||||
| @@ -1237,7 +1237,7 @@ func (og *operationGenerator) GenerateMapVolumeFunc( | ||||
| 			// At this point, MountVolume.Setup already succeeded, we should add volume into actual state | ||||
| 			// so that reconciler can clean up volume when needed. However, if nodeExpandVolume failed, | ||||
| 			// we should not mark the volume as mounted to avoid pod starts using it. | ||||
| 			// Considering the above situations, we mark volume as uncertain here so that reconciler will tigger | ||||
| 			// Considering the above situations, we mark volume as uncertain here so that reconciler will trigger | ||||
| 			// volume tear down when pod is deleted, and also makes sure pod will not start using it. | ||||
| 			if err := actualStateOfWorld.MarkVolumeMountAsUncertain(markVolumeOpts); err != nil { | ||||
| 				klog.Errorf(volumeToMount.GenerateErrorDetailed("MountVolume.MarkVolumeMountAsUncertain failed", err).Error()) | ||||
|   | ||||
| @@ -125,7 +125,7 @@ func evalSymlink(path string) (string, error) { | ||||
| 		klog.V(4).Infof("Path '%s' has a target %s. Return its original form.", path, linkedPath) | ||||
| 		return path, nil | ||||
| 	} | ||||
| 	// If the target is not an absoluate path, join iit with the current upperpath | ||||
| 	// If the target is not an absolute path, join iit with the current upperpath | ||||
| 	if !filepath.IsAbs(linkedPath) { | ||||
| 		linkedPath = filepath.Join(getUpperPath(upperpath), linkedPath) | ||||
| 	} | ||||
|   | ||||
| @@ -42,9 +42,9 @@ type BlockVolumePathHandler interface { | ||||
| 	UnmapDevice(mapPath string, linkName string, bindMount bool) error | ||||
| 	// RemovePath removes a file or directory on specified map path | ||||
| 	RemoveMapPath(mapPath string) error | ||||
| 	// IsSymlinkExist retruns true if specified symbolic link exists | ||||
| 	// IsSymlinkExist returns true if specified symbolic link exists | ||||
| 	IsSymlinkExist(mapPath string) (bool, error) | ||||
| 	// IsDeviceBindMountExist retruns true if specified bind mount exists | ||||
| 	// IsDeviceBindMountExist returns true if specified bind mount exists | ||||
| 	IsDeviceBindMountExist(mapPath string) (bool, error) | ||||
| 	// GetDeviceBindMountRefs searches bind mounts under global map path | ||||
| 	GetDeviceBindMountRefs(devPath string, mapPath string) ([]string, error) | ||||
|   | ||||
| @@ -103,7 +103,7 @@ func TestValidatePathNoBacksteps(t *testing.T) { | ||||
| 		err := ValidatePathNoBacksteps(tc.path) | ||||
|  | ||||
| 		if err == nil && tc.expectedErr { | ||||
| 			t.Fatalf("expected test `%s` to return an error but it didnt", name) | ||||
| 			t.Fatalf("expected test `%s` to return an error but it didn't", name) | ||||
| 		} | ||||
|  | ||||
| 		if err != nil && !tc.expectedErr { | ||||
|   | ||||
| @@ -189,7 +189,7 @@ type CustomBlockVolumeMapper interface { | ||||
| 	// MapPodDevice maps the block device to a path and return the path. | ||||
| 	// Unique device path across kubelet node reboot is required to avoid | ||||
| 	// unexpected block volume destruction. | ||||
| 	// If empty string is returned, the path retuned by attacher.Attach() and | ||||
| 	// If empty string is returned, the path returned by attacher.Attach() and | ||||
| 	// attacher.WaitForAttach() will be used. | ||||
| 	MapPodDevice() (publishPath string, err error) | ||||
|  | ||||
|   | ||||
		Reference in New Issue
	
	Block a user
	 Humble Chirammal
					Humble Chirammal