@@ -287,14 +287,21 @@ def add_reservation(self, *, reservation: ABCReservationMixin):
287287 components = None
288288 host = None
289289 ip_subnet = None
290- if reservation .get_resources () is not None and reservation .get_resources ().get_sliver () is not None :
290+ sliver = None
291+ from fabric_cf .actor .core .kernel .reservation_client import ReservationClient
292+ if isinstance (reservation , ReservationClient ) and reservation .get_leased_resources () and \
293+ reservation .get_leased_resources ().get_sliver ():
294+ sliver = reservation .get_leased_resources ().get_sliver ()
295+ if not sliver and reservation .get_resources () and reservation .get_resources ().get_sliver ():
291296 sliver = reservation .get_resources ().get_sliver ()
292- site = sliver .get_site ()
297+
298+ if sliver :
293299 rsv_type = sliver .get_type ().name
294300 from fim .slivers .network_service import NetworkServiceSliver
295301 from fim .slivers .network_node import NodeSliver
296302
297303 if isinstance (sliver , NetworkServiceSliver ) and sliver .interface_info :
304+ site = sliver .get_site ()
298305 if sliver .get_gateway ():
299306 ip_subnet = sliver .get_gateway ().subnet
300307
@@ -311,7 +318,9 @@ def add_reservation(self, *, reservation: ABCReservationMixin):
311318 bdf = ":" .join (split_string [3 :]) if len (split_string ) > 3 else None
312319 if node_id and comp_id and bdf :
313320 components .append ((node_id , comp_id , bdf ))
321+
314322 elif isinstance (sliver , NodeSliver ):
323+ site = sliver .get_site ()
315324 if sliver .get_labels () and sliver .get_labels ().instance_parent :
316325 host = sliver .get_labels ().instance_parent
317326 if sliver .get_label_allocations () and sliver .get_label_allocations ().instance_parent :
@@ -368,14 +377,21 @@ def update_reservation(self, *, reservation: ABCReservationMixin):
368377 components = None
369378 ip_subnet = None
370379 host = None
371-
372- if reservation .get_resources () is not None and reservation .get_resources ().get_sliver () is not None :
380+ sliver = None
381+ from fabric_cf .actor .core .kernel .reservation_client import ReservationClient
382+ if isinstance (reservation , ReservationClient ) and reservation .get_leased_resources () and \
383+ reservation .get_leased_resources ().get_sliver ():
384+ sliver = reservation .get_leased_resources ().get_sliver ()
385+ if not sliver and reservation .get_resources () and reservation .get_resources ().get_sliver ():
373386 sliver = reservation .get_resources ().get_sliver ()
374- site = sliver .get_site ()
387+
388+ if sliver :
375389 rsv_type = sliver .get_type ().name
376390 from fim .slivers .network_service import NetworkServiceSliver
377391 from fim .slivers .network_node import NodeSliver
378392 if isinstance (sliver , NetworkServiceSliver ) and sliver .interface_info :
393+ site = sliver .get_site ()
394+
379395 if sliver .get_gateway ():
380396 ip_subnet = sliver .get_gateway ().subnet
381397
@@ -393,6 +409,8 @@ def update_reservation(self, *, reservation: ABCReservationMixin):
393409 if node_id and comp_id and bdf :
394410 components .append ((node_id , comp_id , bdf ))
395411 elif isinstance (sliver , NodeSliver ):
412+ site = sliver .get_site ()
413+
396414 if sliver .get_labels () and sliver .get_labels ().instance_parent :
397415 host = sliver .get_labels ().instance_parent
398416 if sliver .get_label_allocations () and sliver .get_label_allocations ().instance_parent :
0 commit comments