Fix gce_pd to only use safe_format_and_mount when mounting block devices.

pull/6/head
Brendan Burns 2015-02-06 12:41:21 -08:00
parent 35fa143b29
commit 3d6c9fc9e8
1 changed files with 25 additions and 21 deletions

View File

@ -72,7 +72,7 @@ func (plugin *gcePersistentDiskPlugin) CanSupport(spec *api.Volume) bool {
func (plugin *gcePersistentDiskPlugin) NewBuilder(spec *api.Volume, podUID types.UID) (volume.Builder, error) {
// Inject real implementations here, test through the internal function.
return plugin.newBuilderInternal(spec, podUID, &GCEDiskUtil{}, &gceSafeFormatAndMount{mount.New(), exec.New()})
return plugin.newBuilderInternal(spec, podUID, &GCEDiskUtil{}, mount.New())
}
func (plugin *gcePersistentDiskPlugin) newBuilderInternal(spec *api.Volume, podUID types.UID, manager pdManager, mounter mount.Interface) (volume.Builder, error) {
@ -90,16 +90,17 @@ func (plugin *gcePersistentDiskPlugin) newBuilderInternal(spec *api.Volume, podU
readOnly := spec.Source.GCEPersistentDisk.ReadOnly
return &gcePersistentDisk{
podUID: podUID,
volName: spec.Name,
pdName: pdName,
fsType: fsType,
partition: partition,
readOnly: readOnly,
manager: manager,
mounter: mounter,
plugin: plugin,
legacyMode: false,
podUID: podUID,
volName: spec.Name,
pdName: pdName,
fsType: fsType,
partition: partition,
readOnly: readOnly,
manager: manager,
mounter: mounter,
diskMounter: &gceSafeFormatAndMount{mounter, exec.New()},
plugin: plugin,
legacyMode: false,
}, nil
}
@ -114,12 +115,13 @@ func (plugin *gcePersistentDiskPlugin) newCleanerInternal(volName string, podUID
legacy = true
}
return &gcePersistentDisk{
podUID: podUID,
volName: volName,
manager: manager,
mounter: mounter,
plugin: plugin,
legacyMode: legacy,
podUID: podUID,
volName: volName,
manager: manager,
mounter: mounter,
diskMounter: &gceSafeFormatAndMount{mounter, exec.New()},
plugin: plugin,
legacyMode: legacy,
}, nil
}
@ -146,10 +148,12 @@ type gcePersistentDisk struct {
readOnly bool
// Utility interface that provides API calls to the provider to attach/detach disks.
manager pdManager
// Mounter interface that provides system calls to mount the disks.
mounter mount.Interface
plugin *gcePersistentDiskPlugin
legacyMode bool
// Mounter interface that provides system calls to mount the global path to the pod local path.
mounter mount.Interface
// diskMounter provides the interface that is used to mount the actual block device.
diskMounter mount.Interface
plugin *gcePersistentDiskPlugin
legacyMode bool
}
func detachDiskLogError(pd *gcePersistentDisk) {