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 *awsElasticBlockStorePlugin) newMounterInternal(spec *volume.Spec, podUID types.UID, manager ebsManager, mounter mount.Interface) (volume.Mounter, error) { // EBSs used directly in a pod have a ReadOnly flag set by the pod author. // EBSs used as a PersistentVolume gets the ReadOnly flag indirectly through the persistent-claim volume used to mount the PV ebs, readOnly, err := getVolumeSource(spec) if err != nil { return nil, err } volumeID := aws.KubernetesVolumeID(ebs.VolumeID) fsType := ebs.FSType partition := "" if ebs.Partition != 0 { partition = strconv.Itoa(int(ebs.Partition)) } return &awsElasticBlockStoreMounter{ awsElasticBlockStore: &awsElasticBlockStore{ podUID: podUID, volName: spec.Name(), volumeID: volumeID, partition: partition, manager: manager, mounter: mounter, plugin: plugin, MetricsProvider: volume.NewMetricsStatFS(getPath(podUID, spec.Name(), plugin.host)), }, fsType: fsType, readOnly: readOnly, diskMounter: &mount.SafeFormatAndMount{Interface: plugin.host.GetMounter(), Runner: exec.New()}}, nil }
func (plugin *azureFilePlugin) newUnmounterInternal(volName string, podUID types.UID, mounter mount.Interface) (volume.Unmounter, error) { return &azureFileUnmounter{&azureFile{ volName: volName, mounter: mounter, pod: &api.Pod{ObjectMeta: api.ObjectMeta{UID: podUID}}, plugin: plugin, MetricsProvider: volume.NewMetricsStatFS(getPath(podUID, volName, plugin.host)), }}, nil }
func (plugin *awsElasticBlockStorePlugin) newUnmounterInternal(volName string, podUID types.UID, manager ebsManager, mounter mount.Interface) (volume.Unmounter, error) { return &awsElasticBlockStoreUnmounter{&awsElasticBlockStore{ podUID: podUID, volName: volName, manager: manager, mounter: mounter, plugin: plugin, MetricsProvider: volume.NewMetricsStatFS(getPath(podUID, volName, plugin.host)), }}, nil }
func (p *flockerPlugin) newUnmounterInternal(volName string, podUID types.UID, manager volumeManager, mounter mount.Interface) (volume.Unmounter, error) { return &flockerVolumeUnmounter{&flockerVolume{ podUID: podUID, volName: volName, manager: manager, mounter: mounter, plugin: p, MetricsProvider: volume.NewMetricsStatFS(getPath(podUID, volName, p.host)), }}, 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 }
func (plugin *azureFilePlugin) newMounterInternal(spec *volume.Spec, pod *api.Pod, util azureUtil, mounter mount.Interface) (volume.Mounter, error) { source, readOnly, err := getVolumeSource(spec) if err != nil { return nil, err } return &azureFileMounter{ azureFile: &azureFile{ volName: spec.Name(), mounter: mounter, pod: pod, plugin: plugin, MetricsProvider: volume.NewMetricsStatFS(getPath(pod.UID, spec.Name(), plugin.host)), }, util: util, secretName: source.SecretName, shareName: source.ShareName, readOnly: readOnly, }, nil }
func (plugin *flockerPlugin) newMounterInternal(spec *volume.Spec, podUID types.UID, manager volumeManager, mounter mount.Interface) (volume.Mounter, error) { volumeSource, readOnly, err := getVolumeSource(spec) if err != nil { return nil, err } datasetName := volumeSource.DatasetName datasetUUID := volumeSource.DatasetUUID return &flockerVolumeMounter{ flockerVolume: &flockerVolume{ podUID: podUID, volName: spec.Name(), datasetName: datasetName, datasetUUID: datasetUUID, mounter: mounter, manager: manager, plugin: plugin, MetricsProvider: volume.NewMetricsStatFS(getPath(podUID, spec.Name(), plugin.host)), }, readOnly: readOnly}, nil }
func (plugin *azureFilePlugin) newMounterInternal(spec *volume.Spec, pod *api.Pod, util azureUtil, mounter mount.Interface) (volume.Mounter, error) { var source *api.AzureFileVolumeSource var readOnly bool if spec.Volume != nil && spec.Volume.AzureFile != nil { source = spec.Volume.AzureFile readOnly = spec.Volume.AzureFile.ReadOnly } else { source = spec.PersistentVolume.Spec.AzureFile readOnly = spec.ReadOnly } return &azureFileMounter{ azureFile: &azureFile{ volName: spec.Name(), mounter: mounter, pod: pod, plugin: plugin, MetricsProvider: volume.NewMetricsStatFS(getPath(pod.UID, spec.Name(), plugin.host)), }, util: util, secretName: source.SecretName, shareName: source.ShareName, readOnly: readOnly, }, nil }