From 6f4af695bdfd7c51367226e6d317f89282dcbca5 Mon Sep 17 00:00:00 2001 From: ioito Date: Mon, 16 Sep 2019 17:11:10 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E9=81=BF=E5=85=8D=E5=88=A0=E9=99=A4?= =?UTF-8?q?=E4=B8=8D=E5=AD=98=E5=9C=A8=E7=9A=84=E5=BF=AB=E7=85=A7=E5=87=BA?= =?UTF-8?q?=E9=94=99?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pkg/hostman/storageman/storage_rbd.go | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/pkg/hostman/storageman/storage_rbd.go b/pkg/hostman/storageman/storage_rbd.go index aec58960e2..e5210e98d3 100644 --- a/pkg/hostman/storageman/storage_rbd.go +++ b/pkg/hostman/storageman/storage_rbd.go @@ -442,7 +442,20 @@ func (s *SRbdStorage) createSnapshot(pool string, diskId string, snapshotId stri func (s *SRbdStorage) deleteSnapshot(pool string, diskId string, snapshotId string) error { _, err := s.withImage(pool, diskId, func(image *rbd.Image) (interface{}, error) { - snapshot := image.GetSnapshot(snapshotId) + snapshots, err := image.GetSnapshotNames() + if err != nil { + return nil, errors.Wrapf(err, "image.GetSnapshotNames()") + } + var snapshot *rbd.Snapshot + for _, snapInfo := range snapshots { + if snapInfo.Name == snapshotId { + snapshot = image.GetSnapshot(snapshotId) + break + } + } + if snapshot == nil { //not found snapshot + return nil, nil + } isProtect, err := snapshot.IsProtected() if err != nil { return nil, errors.Wrap(err, "snapshot is protected")