@@ -18,6 +18,7 @@ import (
1818 "github.com/RoaringBitmap/roaring/v2"
1919
2020 tridentconfig "github.com/netapp/trident/config"
21+ "github.com/netapp/trident/internal/fiji"
2122 . "github.com/netapp/trident/logging"
2223 "github.com/netapp/trident/pkg/capacity"
2324 "github.com/netapp/trident/pkg/collection"
@@ -38,6 +39,11 @@ import (
3839// string of the form /vol/<flexVolName>/<Namespacename>
3940var NVMeNamespaceRegExp = regexp .MustCompile (`[^(\/vol\/.+\/.+)?$]` )
4041
42+ var (
43+ beforeNQNRemovalFromSubsystem = fiji .Register ("beforeNQNRemovalFromSubsystem" , "ontap_san_nvme" )
44+ beforeNamespaceUnmapFromSubsystem = fiji .Register ("beforeNamespaceUnmapFromSubsystem" , "ontap_san_nvme" )
45+ )
46+
4147// NVMeStorageDriver is for NVMe storage provisioning.
4248type NVMeStorageDriver struct {
4349 initialized bool
@@ -1044,6 +1050,10 @@ func (d *NVMeStorageDriver) Unpublish(
10441050 unlock := lockNamespaceAndSubsystem (namespaceUUID , subsystemUUID )
10451051 defer unlock ()
10461052
1053+ if err := beforeNQNRemovalFromSubsystem .Inject (); err != nil {
1054+ return err
1055+ }
1056+
10471057 // Remove host from subsystem if it has no other published volumes from this subsystem
10481058 _ , err := RemoveHostFromSubsystem (
10491059 ctx ,
@@ -1056,6 +1066,10 @@ func (d *NVMeStorageDriver) Unpublish(
10561066 return fmt .Errorf ("failed to remove host from subsystem: %w" , err )
10571067 }
10581068
1069+ if err := beforeNamespaceUnmapFromSubsystem .Inject (); err != nil {
1070+ return err
1071+ }
1072+
10591073 // Unmap namespace from subsystem if no other hosts in SS need it
10601074 namespaceUnmapped , err := UnmapNamespaceFromSubsystem (
10611075 ctx ,
0 commit comments