From 441dc15b53cf85f36ed4d24b9353f6ceab695cd7 Mon Sep 17 00:00:00 2001 From: Jesse Haka Date: Mon, 16 Apr 2018 23:31:27 +0300 Subject: [PATCH] add metrics to cinder cd -> r fix --- pkg/volume/cinder/cinder.go | 36 ++++++++++++++++++++---------------- 1 file changed, 20 insertions(+), 16 deletions(-) diff --git a/pkg/volume/cinder/cinder.go b/pkg/volume/cinder/cinder.go index 1ee17ba2fd1..121972c4613 100644 --- a/pkg/volume/cinder/cinder.go +++ b/pkg/volume/cinder/cinder.go @@ -79,6 +79,10 @@ const ( cinderVolumePluginName = "kubernetes.io/cinder" ) +func getPath(uid types.UID, volName string, host volume.VolumeHost) string { + return host.GetPodVolumeDir(uid, kstrings.EscapeQualifiedNameForDisk(cinderVolumePluginName), volName) +} + func (plugin *cinderPlugin) Init(host volume.VolumeHost) error { plugin.host = host plugin.volumeLocks = keymutex.NewKeyMutex() @@ -135,12 +139,13 @@ func (plugin *cinderPlugin) newMounterInternal(spec *volume.Spec, podUID types.U return &cinderVolumeMounter{ cinderVolume: &cinderVolume{ - podUID: podUID, - volName: spec.Name(), - pdName: pdName, - mounter: mounter, - manager: manager, - plugin: plugin, + podUID: podUID, + volName: spec.Name(), + pdName: pdName, + mounter: mounter, + manager: manager, + plugin: plugin, + MetricsProvider: volume.NewMetricsStatFS(getPath(podUID, spec.Name(), plugin.host)), }, fsType: fsType, readOnly: readOnly, @@ -154,11 +159,12 @@ func (plugin *cinderPlugin) NewUnmounter(volName string, podUID types.UID) (volu func (plugin *cinderPlugin) newUnmounterInternal(volName string, podUID types.UID, manager cdManager, mounter mount.Interface) (volume.Unmounter, error) { return &cinderVolumeUnmounter{ &cinderVolume{ - podUID: podUID, - volName: volName, - manager: manager, - mounter: mounter, - plugin: plugin, + podUID: podUID, + volName: volName, + manager: manager, + mounter: mounter, + plugin: plugin, + MetricsProvider: volume.NewMetricsStatFS(getPath(podUID, volName, plugin.host)), }}, nil } @@ -303,7 +309,7 @@ type cinderVolume struct { // diskMounter provides the interface that is used to mount the actual block device. blockDeviceMounter mount.Interface plugin *cinderPlugin - volume.MetricsNil + volume.MetricsProvider } func (b *cinderVolumeMounter) GetAttributes() volume.Attributes { @@ -397,8 +403,7 @@ func makeGlobalPDName(host volume.VolumeHost, devName string) string { } func (cd *cinderVolume) GetPath() string { - name := cinderVolumePluginName - return cd.plugin.host.GetPodVolumeDir(cd.podUID, kstrings.EscapeQualifiedNameForDisk(name), cd.volName) + return getPath(cd.podUID, cd.volName, cd.plugin.host) } type cinderVolumeUnmounter struct { @@ -484,8 +489,7 @@ type cinderVolumeDeleter struct { var _ volume.Deleter = &cinderVolumeDeleter{} func (r *cinderVolumeDeleter) GetPath() string { - name := cinderVolumePluginName - return r.plugin.host.GetPodVolumeDir(r.podUID, kstrings.EscapeQualifiedNameForDisk(name), r.volName) + return getPath(r.podUID, r.volName, r.plugin.host) } func (r *cinderVolumeDeleter) Delete() error {