Adding volume metrics support for vSphere Cloud Provider

This commit is contained in:
Divyen Patel
2018-02-04 16:10:15 -08:00
parent 19131583eb
commit 46edaa7269

View File

@@ -52,6 +52,10 @@ const (
vsphereVolumePluginName = "kubernetes.io/vsphere-volume" vsphereVolumePluginName = "kubernetes.io/vsphere-volume"
) )
func getPath(uid types.UID, volName string, host volume.VolumeHost) string {
return host.GetPodVolumeDir(uid, utilstrings.EscapeQualifiedNameForDisk(vsphereVolumePluginName), volName)
}
// vSphere Volume Plugin // vSphere Volume Plugin
func (plugin *vsphereVolumePlugin) Init(host volume.VolumeHost) error { func (plugin *vsphereVolumePlugin) Init(host volume.VolumeHost) error {
plugin.host = host plugin.host = host
@@ -107,12 +111,13 @@ func (plugin *vsphereVolumePlugin) newMounterInternal(spec *volume.Spec, podUID
return &vsphereVolumeMounter{ return &vsphereVolumeMounter{
vsphereVolume: &vsphereVolume{ vsphereVolume: &vsphereVolume{
podUID: podUID, podUID: podUID,
volName: spec.Name(), volName: spec.Name(),
volPath: volPath, volPath: volPath,
manager: manager, manager: manager,
mounter: mounter, mounter: mounter,
plugin: plugin, plugin: plugin,
MetricsProvider: volume.NewMetricsStatFS(getPath(podUID, spec.Name(), plugin.host)),
}, },
fsType: fsType, fsType: fsType,
diskMounter: volumehelper.NewSafeFormatAndMountFromHost(plugin.GetPluginName(), plugin.host)}, nil diskMounter: volumehelper.NewSafeFormatAndMountFromHost(plugin.GetPluginName(), plugin.host)}, nil
@@ -121,11 +126,12 @@ func (plugin *vsphereVolumePlugin) newMounterInternal(spec *volume.Spec, podUID
func (plugin *vsphereVolumePlugin) newUnmounterInternal(volName string, podUID types.UID, manager vdManager, mounter mount.Interface) (volume.Unmounter, error) { func (plugin *vsphereVolumePlugin) newUnmounterInternal(volName string, podUID types.UID, manager vdManager, mounter mount.Interface) (volume.Unmounter, error) {
return &vsphereVolumeUnmounter{ return &vsphereVolumeUnmounter{
&vsphereVolume{ &vsphereVolume{
podUID: podUID, podUID: podUID,
volName: volName, volName: volName,
manager: manager, manager: manager,
mounter: mounter, mounter: mounter,
plugin: plugin, plugin: plugin,
MetricsProvider: volume.NewMetricsStatFS(getPath(podUID, volName, plugin.host)),
}}, nil }}, nil
} }
@@ -174,7 +180,7 @@ type vsphereVolume struct {
// diskMounter provides the interface that is used to mount the actual block device. // diskMounter provides the interface that is used to mount the actual block device.
diskMounter mount.Interface diskMounter mount.Interface
plugin *vsphereVolumePlugin plugin *vsphereVolumePlugin
volume.MetricsNil volume.MetricsProvider
} }
var _ volume.Mounter = &vsphereVolumeMounter{} var _ volume.Mounter = &vsphereVolumeMounter{}