cephfs: check error output contains Error: ENOENT

execCommandErr returns both error and stderror
message. checking strings.HasPrefix is not helpful
as the stderr will be the first string. its good
to do string comparison and find out that error
is volume not found error.

Signed-off-by: Madhu Rajanna <madhupr007@gmail.com>
(cherry picked from commit 31c7c95fdb)
This commit is contained in:
Madhu Rajanna 2020-08-18 07:55:10 +05:30 committed by mergify[bot]
parent 91475c0a66
commit f9faf4822f

View File

@ -252,7 +252,7 @@ func purgeVolume(ctx context.Context, volID volumeID, cr *util.Credentials, volO
err := execCommandErr(ctx, "ceph", arg...) err := execCommandErr(ctx, "ceph", arg...)
if err != nil { if err != nil {
util.ErrorLog(ctx, "failed to purge subvolume %s(%s) in fs %s", string(volID), err, volOptions.FsName) util.ErrorLog(ctx, "failed to purge subvolume %s(%s) in fs %s", string(volID), err, volOptions.FsName)
if strings.HasPrefix(err.Error(), ErrVolumeNotFound.Error()) { if strings.Contains(err.Error(), ErrVolumeNotFound.Error()) {
return util.JoinErrors(ErrVolumeNotFound, err) return util.JoinErrors(ErrVolumeNotFound, err)
} }
return err return err