Skip to content

Commit d2afe48

Browse files
committed
Remove NULL bdev when BACKUP node
1 parent 6c9ee89 commit d2afe48

File tree

1 file changed

+4
-21
lines changed
  • src/middlewared/middlewared/utils/nvmet

1 file changed

+4
-21
lines changed

src/middlewared/middlewared/utils/nvmet/spdk.py

Lines changed: 4 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -83,9 +83,6 @@ def debug(self, live, config):
8383
pprint.pprint(config)
8484
print()
8585

86-
def before_add(self, client, config, live, render_ctx: dict):
87-
pass
88-
8986
@contextmanager
9087
def render(self, client, render_ctx: dict):
9188
live = self.get_live(client, render_ctx)
@@ -99,8 +96,6 @@ def render(self, client, render_ctx: dict):
9996

10097
self.debug(live, config)
10198

102-
self.before_add(client, config, live, render_ctx)
103-
10499
for item in add_keys:
105100
self.add(client, config[item], render_ctx)
106101

@@ -124,18 +119,6 @@ def config_key(self, config_item, render_ctx):
124119
def get_live(self, client, render_ctx):
125120
return {subsys['nqn']: subsys for subsys in rpc.nvmf.nvmf_get_subsystems(client)}
126121

127-
def before_add(self, client, config, live, render_ctx: dict):
128-
# If we have just toggled HA MASTER then the subsystem will
129-
# currently have a bunch of NULL bdevs attached. We need to
130-
# remove them so that the real BDEVs can be attached.
131-
if render_ctx['failover.status'] == 'MASTER':
132-
for nqn, subsys in live.items():
133-
if nqn == NVMET_DISCOVERY_NQN:
134-
continue
135-
for namespace in subsys['namespaces']:
136-
if namespace['name'].startswith('NULL:'):
137-
rpc.nvmf.nvmf_subsystem_remove_ns(client, nqn=nqn, nsid=namespace['nsid'])
138-
139122
def add(self, client, config_item, render_ctx):
140123

141124
kwargs = {
@@ -449,9 +432,8 @@ class NvmetBdevConfig(NvmetConfig):
449432

450433
def config_key(self, config_item, render_ctx):
451434
if subsys_visible(config_item['subsys'], render_ctx):
452-
if render_ctx['failover.status'] == 'BACKUP':
453-
return f"NULL:{config_item['device_path']}"
454-
return f"{config_item['device_type']}:{config_item['device_path']}"
435+
if render_ctx['failover.status'] != 'BACKUP':
436+
return f"{config_item['device_type']}:{config_item['device_path']}"
455437

456438
def live_key(self, live_item):
457439
match live_item['product_name']:
@@ -474,8 +456,9 @@ def get_live(self, client, render_ctx):
474456
return result
475457

476458
def bdev_name(self, config_item, render_ctx):
459+
# Skip is we're the BACKUP in a HA
477460
if render_ctx['failover.status'] == 'BACKUP':
478-
return f"NULL:{config_item['device_path']}"
461+
return
479462

480463
match config_item['device_type']:
481464
case NAMESPACE_DEVICE_TYPE.ZVOL.api:

0 commit comments

Comments
 (0)