@@ -1174,9 +1174,7 @@ def create_subsystem_safe(self, request, context):
1174
1174
error_message=errmsg,
1175
1175
nqn=request.subsystem_nqn)
1176
1176
1177
- if not request.max_namespaces:
1178
- request.max_namespaces = self.max_namespaces_per_subsystem
1179
- else:
1177
+ if request.max_namespaces:
1180
1178
if request.max_namespaces > self.max_namespaces:
1181
1179
self.logger.warning(f"The requested max number of namespaces for subsystem "
1182
1180
f"{request.subsystem_nqn} ({request.max_namespaces}) is "
@@ -1232,31 +1230,35 @@ def create_subsystem_safe(self, request, context):
1232
1230
error_message=errmsg,
1233
1231
nqn=request.subsystem_nqn)
1234
1232
1235
- if context:
1236
- if request.no_group_append or not self.gateway_group:
1237
- self.logger.info("Subsystem NQN will not be changed")
1238
- else:
1239
- group_name_to_use = self.gateway_group.replace(GatewayState.OMAP_KEY_DELIMITER,
1240
- "-")
1241
- request.subsystem_nqn += f".{group_name_to_use}"
1242
- self.logger.info(f"Subsystem NQN was changed to {request.subsystem_nqn}, "
1243
- f"adding the group name")
1244
-
1245
1233
# Set client ID range according to group id assigned by the monitor
1246
1234
offset = self.group_id * CNTLID_RANGE_SIZE
1247
1235
min_cntlid = offset + 1
1248
1236
max_cntlid = offset + CNTLID_RANGE_SIZE
1249
1237
1250
- if not request.serial_number:
1251
- random.seed()
1252
- randser = random.randint(2, 99999999999999)
1253
- request.serial_number = f"Ceph{randser}"
1254
- self.logger.info(f"No serial number specified for {request.subsystem_nqn}, will "
1255
- f"use {request.serial_number}")
1256
-
1257
1238
ret = False
1258
1239
omap_lock = self.omap_lock.get_omap_lock_to_use(context)
1259
1240
with omap_lock:
1241
+ if not request.max_namespaces:
1242
+ request.max_namespaces = self.max_namespaces_per_subsystem
1243
+
1244
+ if not request.serial_number:
1245
+ random.seed()
1246
+ randser = random.randint(2, 99999999999999)
1247
+ request.serial_number = f"Ceph{randser}"
1248
+ self.logger.info(f"No serial number specified for {request.subsystem_nqn}, will "
1249
+ f"use {request.serial_number}")
1250
+
1251
+ if context:
1252
+
1253
+ if request.no_group_append or not self.gateway_group:
1254
+ self.logger.info("Subsystem NQN will not be changed")
1255
+ else:
1256
+ group_name_to_use = self.gateway_group.replace(
1257
+ GatewayState.OMAP_KEY_DELIMITER, "-")
1258
+ request.subsystem_nqn += f".{group_name_to_use}"
1259
+ request.no_group_append = True
1260
+ self.logger.info(f"Subsystem NQN was changed to {request.subsystem_nqn}, "
1261
+ f"adding the group name")
1260
1262
errmsg = ""
1261
1263
try:
1262
1264
subsys_using_serial = None
@@ -2274,7 +2276,7 @@ def list_namespaces(self, request, context=None):
2274
2276
"""List namespaces."""
2275
2277
2276
2278
peer_msg = self.get_peer_message(context)
2277
- if request.nsid is None or request.nsid == 0 :
2279
+ if not request.nsid:
2278
2280
if request.uuid:
2279
2281
nsid_msg = f"namespace with UUID {request.uuid}"
2280
2282
else:
@@ -2567,28 +2569,28 @@ def namespace_set_qos_limits_safe(self, request, context):
2567
2569
f"limits are set for namespace {request.nsid} on "
2568
2570
f"{request.subsystem_nqn}")
2569
2571
2570
- # Merge current limits with previous ones, if exist
2571
- if ns_qos_entry:
2572
- if not request.HasField("rw_ios_per_second") and ns_qos_entry.get(
2573
- "rw_ios_per_second") is not None:
2574
- request.rw_ios_per_second = int(ns_qos_entry["rw_ios_per_second"])
2575
- if not request.HasField("rw_mbytes_per_second") and ns_qos_entry.get(
2576
- "rw_mbytes_per_second") is not None:
2577
- request.rw_mbytes_per_second = int(ns_qos_entry["rw_mbytes_per_second"])
2578
- if not request.HasField("r_mbytes_per_second") and ns_qos_entry.get(
2579
- "r_mbytes_per_second") is not None:
2580
- request.r_mbytes_per_second = int(ns_qos_entry["r_mbytes_per_second"])
2581
- if not request.HasField("w_mbytes_per_second") and ns_qos_entry.get(
2582
- "w_mbytes_per_second") is not None:
2583
- request.w_mbytes_per_second = int(ns_qos_entry["w_mbytes_per_second"])
2584
-
2585
- limits_to_set = self.get_qos_limits_string(request)
2586
- self.logger.debug(f"After merging current QOS limits with previous ones for "
2587
- f"namespace {request.nsid} on {request.subsystem_nqn},"
2588
- f"{limits_to_set}")
2589
-
2590
2572
omap_lock = self.omap_lock.get_omap_lock_to_use(context)
2591
2573
with omap_lock:
2574
+ # Merge current limits with previous ones, if exist
2575
+ if ns_qos_entry:
2576
+ assert context, "Shouldn't get here on an update"
2577
+ if not request.HasField("rw_ios_per_second") and ns_qos_entry.get(
2578
+ "rw_ios_per_second") is not None:
2579
+ request.rw_ios_per_second = int(ns_qos_entry["rw_ios_per_second"])
2580
+ if not request.HasField("rw_mbytes_per_second") and ns_qos_entry.get(
2581
+ "rw_mbytes_per_second") is not None:
2582
+ request.rw_mbytes_per_second = int(ns_qos_entry["rw_mbytes_per_second"])
2583
+ if not request.HasField("r_mbytes_per_second") and ns_qos_entry.get(
2584
+ "r_mbytes_per_second") is not None:
2585
+ request.r_mbytes_per_second = int(ns_qos_entry["r_mbytes_per_second"])
2586
+ if not request.HasField("w_mbytes_per_second") and ns_qos_entry.get(
2587
+ "w_mbytes_per_second") is not None:
2588
+ request.w_mbytes_per_second = int(ns_qos_entry["w_mbytes_per_second"])
2589
+
2590
+ limits_to_set = self.get_qos_limits_string(request)
2591
+ self.logger.debug(f"After merging current QOS limits with previous ones for "
2592
+ f"namespace {request.nsid} on {request.subsystem_nqn},"
2593
+ f"{limits_to_set}")
2592
2594
try:
2593
2595
ret = rpc_bdev.bdev_set_qos_limit(
2594
2596
self.spdk_rpc_client,
0 commit comments