func (plugin *gcePersistentDiskPlugin) newMounterInternal(spec *volume.Spec, podUID types.UID, manager pdManager, mounter mount.Interface) (volume.Mounter, error) { // GCEPDs used directly in a pod have a ReadOnly flag set by the pod author. // GCEPDs used as a PersistentVolume gets the ReadOnly flag indirectly through the persistent-claim volume used to mount the PV volumeSource, readOnly, err := getVolumeSource(spec) if err != nil { return nil, err } pdName := volumeSource.PDName partition := "" if volumeSource.Partition != 0 { partition = strconv.Itoa(int(volumeSource.Partition)) } return &gcePersistentDiskMounter{ gcePersistentDisk: &gcePersistentDisk{ podUID: podUID, volName: spec.Name(), pdName: pdName, partition: partition, mounter: mounter, manager: manager, plugin: plugin, MetricsProvider: volume.NewMetricsStatFS(getPath(podUID, spec.Name(), plugin.host)), }, readOnly: readOnly}, nil }
func (plugin *gcePersistentDiskPlugin) newUnmounterInternal(volName string, podUID types.UID, manager pdManager, mounter mount.Interface) (volume.Unmounter, error) { return &gcePersistentDiskUnmounter{&gcePersistentDisk{ podUID: podUID, volName: volName, manager: manager, mounter: mounter, plugin: plugin, MetricsProvider: volume.NewMetricsStatFS(getPath(podUID, volName, plugin.host)), }}, nil }