Skip to content

Commit 5aff5d7

Browse files
committed
fix(api): check rack u slot
1 parent 464b9d5 commit 5aff5d7

File tree

1 file changed

+8
-4
lines changed

1 file changed

+8
-4
lines changed

cmdb-api/api/lib/cmdb/dcim/rack.py

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -112,11 +112,14 @@ def check_u_slot(self):
112112
u_slot_sets.append(set(range(u_start, u_start + u_count)))
113113

114114
if len(u_slot_sets) > 1:
115+
u_slot_abnormal = False
115116
for a, b in itertools.combinations(u_slot_sets, 2):
116-
u_slot_abnormal = bool(a.intersection(b))
117-
if u_slot_abnormal != rack.get(RackBuiltinAttributes.U_SLOT_ABNORMAL):
118-
payload = {RackBuiltinAttributes.U_SLOT_ABNORMAL: u_slot_abnormal}
119-
CIManager().update(rack['_id'], **payload)
117+
if a.intersection(b):
118+
u_slot_abnormal = True
119+
break
120+
if u_slot_abnormal != rack.get(RackBuiltinAttributes.U_SLOT_ABNORMAL):
121+
payload = {RackBuiltinAttributes.U_SLOT_ABNORMAL: u_slot_abnormal}
122+
CIManager().update(rack['_id'], **payload)
120123

121124
def add_device(self, rack_id, device_id, u_start, u_count=None):
122125
with (redis_lock.Lock(rd.r, "DCIM_RACK_OPERATE_{}".format(rack_id))):
@@ -177,3 +180,4 @@ def migrate_device(self, rack_id, device_id, to_rack_id, to_u_start):
177180

178181
OperateHistoryManager().add(operate_type=OperateTypeEnum.REMOVE_DEVICE, rack_id=rack_id, ci_id=device_id)
179182
OperateHistoryManager().add(operate_type=OperateTypeEnum.ADD_DEVICE, rack_id=to_rack_id, ci_id=device_id)
183+

0 commit comments

Comments
 (0)