Loading src/opticalcontroller/OpticalController.py +54 −61 Original line number Diff line number Diff line Loading @@ -102,20 +102,13 @@ class DelFLightpath(Resource): flow = None match1=False ob_id=None print(f"delete_lightpath {delete_band} and ob_id {ob_id} and flow_id {flow_id}") if flow_id is not None: if flow_id in rsa.db_flows.keys(): flow = rsa.db_flows[flow_id] match1 = flow["src"] == src and flow["dst"] == dst and flow["bitrate"] == bitrate ob_id = flow["parent_opt_band"] else : if o_band_id in rsa.db_flows.keys(): flow=rsa.db_flows[o_band_id] match1 = flow["src"] == src and flow["dst"] == dst and flow["bitrate"] == bitrate ob_id=o_band_id print(f"delete_lightpath {delete_band} and ob_id {ob_id}") print(f"and flow {flow}") flow['is_active']=False if flow is not None: Loading @@ -141,13 +134,13 @@ class DelFLightpath(Resource): else: if match1: if delete_band !=0 and ob_id is not None: print(f"delete_lightpath {delete_band} and ob_id {ob_id}") if len( rsa.optical_bands[ob_id]["served_lightpaths"]) != 0: return "DELETE_NOT_ALLOWED" ,400 # if delete_band !=0 and ob_id is not None: # print(f"delete_lightpath {delete_band} and ob_id {ob_id}") # if len( rsa.optical_bands[ob_id]["served_lightpaths"]) != 0: # return "DELETE_NOT_ALLOWED" ,400 rsa.del_handler(flow,flow_id,ob_id,delete_band) rsa.del_flow(flow,flow_id,ob_id) Loading @@ -164,46 +157,44 @@ class DelFLightpath(Resource): @optical.route('/DelOpticalBand/<string:src>/<string:dst>/<int:o_band_id>/<int:delete_band>') @optical.route('/DelOpticalBand/<string:src>/<string:dst>/<int:o_band_id>/<int:delete_band>',methods=['DELETE']) @optical.response(200, 'Success') @optical.response(404, 'Error, not found') class DelOpticalBand(Resource): @staticmethod def delete( src, dst, bitrate, o_band_id,delete_band,flow_id=None): def delete( src, dst, o_band_id,delete_band): flow = None match1=False match1=True ob_id=None print(f"delete_lightpath {delete_band} and ob_id {ob_id} and flow_id {flow_id}") if o_band_id is not None : if o_band_id in rsa.optical_bands.keys(): flow=rsa.optical_bands[o_band_id] match1 = flow["src"] == src and flow["dst"] == dst #match1 = flow["src"] == src and flow["dst"] == dst ob_id=o_band_id print(f"delete_lightpath {delete_band} and ob_id {ob_id}") print(f"and flow {flow}") if flow is not None: bidir = flow["bidir"] if bidir: match2 = flow["src"] == dst and flow["dst"] == src and flow["bitrate"] == bitrate match2 = flow["src"] == dst and flow["dst"] == src and flow["bitrate"] if match1 or match2: ob_id = flow["parent_opt_band"] rsa.del_flow(flow, ob_id) rsa.db_flows[flow_id]["is_active"] = False if flow_id in rsa.optical_bands[ob_id]["served_lightpaths"].remove: rsa.optical_bands[ob_id]["served_lightpaths"].remove(flow_id) #rsa.del_flow(flow, ob_id) rsa.optical_bands[ob_id]["is_active"] = False # if flow_id in rsa.optical_bands[ob_id]["served_lightpaths"].remove: # rsa.optical_bands[ob_id]["served_lightpaths"].remove(flow_id) #if rsa.optical_bands[ob_id]["reverse_optical_band_id"] != 0: # rev_ob_id = rsa.optical_bands[ob_id]["reverse_optical_band_id"] # rsa.optical_bands[rev_ob_id]["served_lightpaths"].remove(flow_id) if debug: print(rsa.links_dict) return "flow {} deleted".format(flow_id), 200 return "ob_id {} deleted".format(ob_id), 200 else: return "flow {} not matching".format(flow_id), 404 return "ob_id {} not matching".format(ob_id), 404 else: if match1: Loading @@ -212,18 +203,20 @@ class DelOpticalBand(Resource): if len( rsa.optical_bands[ob_id]["served_lightpaths"]) != 0: return "DELETE_NOT_ALLOWED" ,400 rsa.del_band(flow,ob_id,delete_band) rsa.del_band(flow,ob_id) if debug: print(f"vor ob_id {ob_id} rsa.optical_bands {rsa.optical_bands[ob_id]}") print(f"rsa.links_dict {rsa.links_dict}") return "flow {} deleted".format(flow_id), 200 return "ob_id {} deleted".format(ob_id), 200 else: return "flow {} not matching".format(flow_id), 404 return "ob_id {} not matching".format(ob_id), 404 else : return "flow id {} does not exist".format(flow_id), 404 return "flow for ob_id {} not found".format(ob_id),400 else: return "ob_id {} does not exist".format(ob_id), 404 Loading src/opticalcontroller/RSA.py +3 −15 Original line number Diff line number Diff line Loading @@ -338,23 +338,12 @@ class RSA(): #f = fiber_f[l] #fib = link['fibers'][f] fib = self.get_link_by_name(l)["optical_details"] print(f"del_flow_fib {fib } and band {band}") print(f"del_flow { str_list_to_int(fib[band].keys())}") ''' if list_in_list(slots, str_list_to_int(fib[band].keys())): #self.restore_link(fib, slots, band) print("invoking restore_link_2 from del_flow") self.restore_link_2(fib, slots, band,link=l) if debug: print(fib[band]) ''' print(f"invoking restore_link_2 fib: {fib} , slots {slots} , band {band} ") self.restore_link(fib, slots, band) if debug: print(fib[band]) if flow_id in self.optical_bands[o_b_id]["served_lightpaths"]: self.optical_bands[o_b_id]["served_lightpaths"].remove(flow_id) if o_b_id is not None: Loading Loading @@ -405,8 +394,7 @@ class RSA(): print(f"delete band {flow} ") if len(self.optical_bands[o_b_id]["served_lightpaths"])>0: return False flows = flow["flows"] band = None #slots = flow["slots"] Loading Loading
src/opticalcontroller/OpticalController.py +54 −61 Original line number Diff line number Diff line Loading @@ -102,20 +102,13 @@ class DelFLightpath(Resource): flow = None match1=False ob_id=None print(f"delete_lightpath {delete_band} and ob_id {ob_id} and flow_id {flow_id}") if flow_id is not None: if flow_id in rsa.db_flows.keys(): flow = rsa.db_flows[flow_id] match1 = flow["src"] == src and flow["dst"] == dst and flow["bitrate"] == bitrate ob_id = flow["parent_opt_band"] else : if o_band_id in rsa.db_flows.keys(): flow=rsa.db_flows[o_band_id] match1 = flow["src"] == src and flow["dst"] == dst and flow["bitrate"] == bitrate ob_id=o_band_id print(f"delete_lightpath {delete_band} and ob_id {ob_id}") print(f"and flow {flow}") flow['is_active']=False if flow is not None: Loading @@ -141,13 +134,13 @@ class DelFLightpath(Resource): else: if match1: if delete_band !=0 and ob_id is not None: print(f"delete_lightpath {delete_band} and ob_id {ob_id}") if len( rsa.optical_bands[ob_id]["served_lightpaths"]) != 0: return "DELETE_NOT_ALLOWED" ,400 # if delete_band !=0 and ob_id is not None: # print(f"delete_lightpath {delete_band} and ob_id {ob_id}") # if len( rsa.optical_bands[ob_id]["served_lightpaths"]) != 0: # return "DELETE_NOT_ALLOWED" ,400 rsa.del_handler(flow,flow_id,ob_id,delete_band) rsa.del_flow(flow,flow_id,ob_id) Loading @@ -164,46 +157,44 @@ class DelFLightpath(Resource): @optical.route('/DelOpticalBand/<string:src>/<string:dst>/<int:o_band_id>/<int:delete_band>') @optical.route('/DelOpticalBand/<string:src>/<string:dst>/<int:o_band_id>/<int:delete_band>',methods=['DELETE']) @optical.response(200, 'Success') @optical.response(404, 'Error, not found') class DelOpticalBand(Resource): @staticmethod def delete( src, dst, bitrate, o_band_id,delete_band,flow_id=None): def delete( src, dst, o_band_id,delete_band): flow = None match1=False match1=True ob_id=None print(f"delete_lightpath {delete_band} and ob_id {ob_id} and flow_id {flow_id}") if o_band_id is not None : if o_band_id in rsa.optical_bands.keys(): flow=rsa.optical_bands[o_band_id] match1 = flow["src"] == src and flow["dst"] == dst #match1 = flow["src"] == src and flow["dst"] == dst ob_id=o_band_id print(f"delete_lightpath {delete_band} and ob_id {ob_id}") print(f"and flow {flow}") if flow is not None: bidir = flow["bidir"] if bidir: match2 = flow["src"] == dst and flow["dst"] == src and flow["bitrate"] == bitrate match2 = flow["src"] == dst and flow["dst"] == src and flow["bitrate"] if match1 or match2: ob_id = flow["parent_opt_band"] rsa.del_flow(flow, ob_id) rsa.db_flows[flow_id]["is_active"] = False if flow_id in rsa.optical_bands[ob_id]["served_lightpaths"].remove: rsa.optical_bands[ob_id]["served_lightpaths"].remove(flow_id) #rsa.del_flow(flow, ob_id) rsa.optical_bands[ob_id]["is_active"] = False # if flow_id in rsa.optical_bands[ob_id]["served_lightpaths"].remove: # rsa.optical_bands[ob_id]["served_lightpaths"].remove(flow_id) #if rsa.optical_bands[ob_id]["reverse_optical_band_id"] != 0: # rev_ob_id = rsa.optical_bands[ob_id]["reverse_optical_band_id"] # rsa.optical_bands[rev_ob_id]["served_lightpaths"].remove(flow_id) if debug: print(rsa.links_dict) return "flow {} deleted".format(flow_id), 200 return "ob_id {} deleted".format(ob_id), 200 else: return "flow {} not matching".format(flow_id), 404 return "ob_id {} not matching".format(ob_id), 404 else: if match1: Loading @@ -212,18 +203,20 @@ class DelOpticalBand(Resource): if len( rsa.optical_bands[ob_id]["served_lightpaths"]) != 0: return "DELETE_NOT_ALLOWED" ,400 rsa.del_band(flow,ob_id,delete_band) rsa.del_band(flow,ob_id) if debug: print(f"vor ob_id {ob_id} rsa.optical_bands {rsa.optical_bands[ob_id]}") print(f"rsa.links_dict {rsa.links_dict}") return "flow {} deleted".format(flow_id), 200 return "ob_id {} deleted".format(ob_id), 200 else: return "flow {} not matching".format(flow_id), 404 return "ob_id {} not matching".format(ob_id), 404 else : return "flow id {} does not exist".format(flow_id), 404 return "flow for ob_id {} not found".format(ob_id),400 else: return "ob_id {} does not exist".format(ob_id), 404 Loading
src/opticalcontroller/RSA.py +3 −15 Original line number Diff line number Diff line Loading @@ -338,23 +338,12 @@ class RSA(): #f = fiber_f[l] #fib = link['fibers'][f] fib = self.get_link_by_name(l)["optical_details"] print(f"del_flow_fib {fib } and band {band}") print(f"del_flow { str_list_to_int(fib[band].keys())}") ''' if list_in_list(slots, str_list_to_int(fib[band].keys())): #self.restore_link(fib, slots, band) print("invoking restore_link_2 from del_flow") self.restore_link_2(fib, slots, band,link=l) if debug: print(fib[band]) ''' print(f"invoking restore_link_2 fib: {fib} , slots {slots} , band {band} ") self.restore_link(fib, slots, band) if debug: print(fib[band]) if flow_id in self.optical_bands[o_b_id]["served_lightpaths"]: self.optical_bands[o_b_id]["served_lightpaths"].remove(flow_id) if o_b_id is not None: Loading Loading @@ -405,8 +394,7 @@ class RSA(): print(f"delete band {flow} ") if len(self.optical_bands[o_b_id]["served_lightpaths"])>0: return False flows = flow["flows"] band = None #slots = flow["slots"] Loading