func getVolumeIDFromGlobalMount(host volume.VolumeHost, globalPath string) (string, error) { basePath := path.Join(host.GetPluginDir(awsElasticBlockStorePluginName), "mounts") rel, err := filepath.Rel(basePath, globalPath) if err != nil { return "", err } if strings.Contains(rel, "../") { return "", fmt.Errorf("Unexpected mount path: " + globalPath) } // Reverse the :// replacement done in makeGlobalPDPath volumeID := rel if strings.HasPrefix(volumeID, "aws/") { volumeID = strings.Replace(volumeID, "aws/", "aws://", 1) } glog.V(2).Info("Mapping mount dir ", globalPath, " to volumeID ", volumeID) return volumeID, nil }
func (s *azureSvc) GetAzureCredentials(host volume.VolumeHost, nameSpace, secretName, shareName string) (string, string, error) { var accountKey, accountName string kubeClient := host.GetKubeClient() if kubeClient == nil { return "", "", fmt.Errorf("Cannot get kube client") } keys, err := kubeClient.Core().Secrets(nameSpace).Get(secretName) if err != nil { return "", "", fmt.Errorf("Couldn't get secret %v/%v", nameSpace, secretName) } for name, data := range keys.Data { if name == "azurestorageaccountname" { accountName = string(data) } if name == "azurestorageaccountkey" { accountKey = string(data) } } if accountName == "" || accountKey == "" { return "", "", fmt.Errorf("Invalid %v/%v, couldn't extract azurestorageaccountname or azurestorageaccountkey", nameSpace, secretName) } return accountName, accountKey, nil }
func makeGlobalPDPath(host volume.VolumeHost, volumeID string) string { // Clean up the URI to be more fs-friendly name := volumeID name = strings.Replace(name, "://", "/", -1) return path.Join(host.GetPluginDir(awsElasticBlockStorePluginName), "mounts", name) }
func makeGlobalPDPath(host volume.VolumeHost, devName string) string { return path.Join(host.GetPluginDir(photonPersistentDiskPluginName), mount.MountsInGlobalPDPath, devName) }
// make a directory like /var/lib/kubelet/plugins/kubernetes.io/pod/fc/target-lun-0 func makePDNameInternal(host volume.VolumeHost, wwns []string, lun string) string { return path.Join(host.GetPluginDir(fcPluginName), wwns[0]+"-lun-"+lun) }
// make a directory like /var/lib/kubelet/plugins/kubernetes.io/pod/rbd/pool-image-image func makePDNameInternal(host volume.VolumeHost, pool string, image string) string { return path.Join(host.GetPluginDir(rbdPluginName), "rbd", pool+"-image-"+image) }
func getPath(uid types.UID, volName string, host volume.VolumeHost) string { return host.GetPodVolumeDir(uid, kstrings.EscapeQualifiedNameForDisk(awsElasticBlockStorePluginName), volName) }
func getPathFromHost(host volume.VolumeHost, podUID types.UID, volName string) string { return host.GetPodVolumeDir(podUID, strings.EscapeQualifiedNameForDisk(secretPluginName), volName) }
func getPath(uid types.UID, volName string, host volume.VolumeHost) string { return host.GetPodVolumeDir(uid, strings.EscapeQualifiedNameForDisk(emptyDirPluginName), volName) }
func getFakeDeviceName(host volume.VolumeHost, pdName string) string { return path.Join(host.GetPluginDir(cinderVolumePluginName), "device", pdName) }
func makeGlobalPDName(host volume.VolumeHost, devName string) string { return path.Join(host.GetPluginDir(gcePersistentDiskPluginName), "mounts", devName) }
func makeGlobalPDPath(host volume.VolumeHost, volume string) string { return path.Join(host.GetPluginDir(azureDataDiskPluginName), mount.MountsInGlobalPDPath, volume) }
func makeGlobalPDPath(host volume.VolumeHost, devName string) string { return path.Join(host.GetPluginDir(vsphereVolumePluginName), "mounts", devName) }
// make a directory like /var/lib/kubelet/plugins/kubernetes.io/iscsi/portal-some_iqn-lun-lun_id func makePDNameInternal(host volume.VolumeHost, portal string, iqn string, lun string) string { return path.Join(host.GetPluginDir(iscsiPluginName), portal+"-"+iqn+"-lun-"+lun) }
func makeGlobalPDName(host volume.VolumeHost, devName string) string { return path.Join(host.GetPluginDir(cinderVolumePluginName), "mounts", devName) }
func makeGlobalPDPath(host volume.VolumeHost, volumeID aws.KubernetesVolumeID) string { // Clean up the URI to be more fs-friendly name := string(volumeID) name = strings.Replace(name, "://", "/", -1) return path.Join(host.GetPluginDir(awsElasticBlockStorePluginName), mount.MountsInGlobalPDPath, name) }
func GetPath(uid types.UID, volName string, host volume.VolumeHost) string { name := emptyDirPluginName return host.GetPodVolumeDir(uid, util.EscapeQualifiedNameForDisk(name), volName) }
func getFakeDeviceName(host volume.VolumeHost, volPath string) string { return path.Join(host.GetPluginDir(vsphereVolumePluginName), "device", volPath) }