| from xos.logger import Logger, logging | |
| from services.metronetwork.models import * | |
| from synchronizers.metronetwork.providers.metronetworkprovider import MetroNetworkProvider | |
| import requests, json | |
| from requests.auth import HTTPBasicAuth | |
| logger = Logger(level=logging.INFO) | |
| class MetroNetworkRestProvider(MetroNetworkProvider): | |
| def __init__(self, networkdevice, **args): | |
| MetroNetworkProvider.__init__(self, networkdevice, **args) | |
| def get_network_ports(self): | |
| objs = [] | |
| restCtrlUrl = self.networkdevice.restCtrlUrl | |
| username = self.networkdevice.username | |
| password = self.networkdevice.password | |
| resp = requests.get("{}/mef-sca-api/SCA_ETH_FPP_UNI_N".format(restCtrlUrl), | |
| auth=HTTPBasicAuth(username, password)) | |
| if resp.status_code == 200: | |
| for uni in resp.json(): | |
| hostname = uni['transportPort']['Hostname'] | |
| port = uni['transportPort']['Port'] | |
| # Default values | |
| bwpCfgCbs = 0 | |
| bwpCfgEbs = 0 | |
| bwpCfgCir = 0 | |
| bwpCfgEir = 0 | |
| if 'interfaceCfgIngressBwp' in uni: | |
| bwpCfgCbs = uni['interfaceCfgIngressBwp']['bwpCfgCbs'] | |
| bwpCfgEbs = uni['interfaceCfgIngressBwp']['bwpCfgEbs'] | |
| bwpCfgCir = uni['interfaceCfgIngressBwp']['bwpCfgCir'] | |
| bwpCfgEir = uni['interfaceCfgIngressBwp']['bwpCfgEir'] | |
| uniPort = NetworkEdgePort() | |
| uniPort.element = self.networkdevice | |
| uniPort.pid = "{}.{}/{}".format(self.networkdevice.id, hostname, port) | |
| uniPort.bwpCfgCbs = bwpCfgCbs | |
| uniPort.bwpCfgEbs = bwpCfgEbs | |
| uniPort.bwpCfgCir = bwpCfgCir | |
| uniPort.bwpCfgEir = bwpCfgEir | |
| objs.append(uniPort) | |
| return objs | |
| else: | |
| raise Exception("OnosApiError: get_network_ports()") | |
| def get_network_ports(self): | |
| objs = [] | |
| restCtrlUrl = self.networkdevice.restCtrlUrl | |
| username = self.networkdevice.username | |
| password = self.networkdevice.password | |
| resp = requests.get("{}/mef-sca-api/SCA_ETH_FPP_UNI_N".format(restCtrlUrl), | |
| auth=HTTPBasicAuth(username, password)) | |
| if resp.status_code == 200: | |
| for uni in resp.json(): | |
| hostname = uni['transportPort']['Hostname'] | |
| port = uni['transportPort']['Port'] | |
| # Default values | |
| bwpCfgCbs = 0 | |
| bwpCfgEbs = 0 | |
| bwpCfgCir = 0 | |
| bwpCfgEir = 0 | |
| if 'interfaceCfgIngressBwp' in uni: | |
| bwpCfgCbs = uni['interfaceCfgIngressBwp']['bwpCfgCbs'] | |
| bwpCfgEbs = uni['interfaceCfgIngressBwp']['bwpCfgEbs'] | |
| bwpCfgCir = uni['interfaceCfgIngressBwp']['bwpCfgCir'] | |
| bwpCfgEir = uni['interfaceCfgIngressBwp']['bwpCfgEir'] | |
| uniPort = NetworkEdgePort() | |
| uniPort.element = self.networkdevice | |
| uniPort.pid = "{}.{}/{}".format(self.networkdevice.id, hostname, port) | |
| uniPort.bwpCfgCbs = bwpCfgCbs | |
| uniPort.bwpCfgEbs = bwpCfgEbs | |
| uniPort.bwpCfgCir = bwpCfgCir | |
| uniPort.bwpCfgEir = bwpCfgEir | |
| objs.append(uniPort) | |
| return objs | |
| else: | |
| raise Exception("OnosApiError: get_network_ports()") | |
| def get_network_eline_link(self, networkDevice, evc): | |
| sid = evc['id'] | |
| uni1 = evc['SCA_ETH_Flow_Points'][0] | |
| hostname = uni1['scaEthFppUniN']['transportPort']['Hostname'] | |
| port = uni1['scaEthFppUniN']['transportPort']['Port'] | |
| edgePort1 = NetworkEdgePort() | |
| edgePort1.element = networkDevice | |
| edgePort1.pid = "{}.{}/{}".format(networkDevice.id, hostname, port) | |
| if 'interfaceCfgIngressBwp' in uni1['scaEthFppUniN']: | |
| edgePort1.bwpCfgCbs = uni1['scaEthFppUniN']['interfaceCfgIngressBwp']['bwpCfgCbs'] | |
| edgePort1.bwpCfgEbs = uni1['scaEthFppUniN']['interfaceCfgIngressBwp']['bwpCfgEbs'] | |
| edgePort1.bwpCfgCir = uni1['scaEthFppUniN']['interfaceCfgIngressBwp']['bwpCfgCir'] | |
| edgePort1.bwpCfgEir = uni1['scaEthFppUniN']['interfaceCfgIngressBwp']['bwpCfgEir'] | |
| uni2 = evc['SCA_ETH_Flow_Points'][1] | |
| hostname = uni2['scaEthFppUniN']['transportPort']['Hostname'] | |
| port = uni2['scaEthFppUniN']['transportPort']['Port'] | |
| edgePort2 = NetworkEdgePort() | |
| edgePort2.element = networkDevice | |
| edgePort2.pid = "{}.{}/{}".format(networkDevice.id, hostname, port) | |
| if 'interfaceCfgIngressBwp' in uni1['scaEthFppUniN']: | |
| edgePort2.bwpCfgCbs = uni2['scaEthFppUniN']['interfaceCfgIngressBwp']['bwpCfgCbs'] | |
| edgePort2.bwpCfgEbs = uni2['scaEthFppUniN']['interfaceCfgIngressBwp']['bwpCfgEbs'] | |
| edgePort2.bwpCfgCir = uni2['scaEthFppUniN']['interfaceCfgIngressBwp']['bwpCfgCir'] | |
| edgePort2.bwpCfgEir = uni2['scaEthFppUniN']['interfaceCfgIngressBwp']['bwpCfgEir'] | |
| edgeToEdgeConnectivity = NetworkEdgeToEdgePointConnection() | |
| edgeToEdgeConnectivity.sid = sid | |
| edgeToEdgeConnectivity.type = "Point_To_Point" | |
| edgeToEdgeConnectivity.uni1 = edgePort1 | |
| edgeToEdgeConnectivity.uni2 = edgePort2 | |
| edgeToEdgeConnectivity.operstate = "active" | |
| edgeToEdgeConnectivity.adminstate = "enabled" | |
| return(edgeToEdgeConnectivity) | |
| def get_network_elan_link(self, networkDevice, evc): | |
| sid = evc['id'] | |
| eps = [] | |
| for ep in evc['SCA_ETH_Flow_Points']: | |
| hostname = ep['scaEthFppUniN']['transportPort']['Hostname'] | |
| port = ep['scaEthFppUniN']['transportPort']['Port'] | |
| edgePort = NetworkEdgePort() | |
| edgePort.element = networkDevice | |
| edgePort.pid = "{}.{}/{}".format(networkDevice.id, hostname, port) | |
| if 'interfaceCfgIngressBwp' in ep['scaEthFppUniN']: | |
| edgePort.bwpCfgCbs = ep['scaEthFppUniN']['interfaceCfgIngressBwp']['bwpCfgCbs'] | |
| edgePort.bwpCfgEbs = ep['scaEthFppUniN']['interfaceCfgIngressBwp']['bwpCfgEbs'] | |
| edgePort.bwpCfgCir = ep['scaEthFppUniN']['interfaceCfgIngressBwp']['bwpCfgCir'] | |
| edgePort.bwpCfgEir = ep['scaEthFppUniN']['interfaceCfgIngressBwp']['bwpCfgEir'] | |
| eps.append(edgePort) | |
| multipointToMultipointConnectivity = NetworkMultipointToMultipointConnection() | |
| multipointToMultipointConnectivity.sid = sid | |
| multipointToMultipointConnectivity.type = "Multipoint_To_Multipoint" | |
| multipointToMultipointConnectivity.eps = eps | |
| multipointToMultipointConnectivity.operstate = "active" | |
| multipointToMultipointConnectivity.adminstate = "enabled" | |
| return(multipointToMultipointConnectivity) | |
| def get_network_etree_link(self, networkDevice, evc): | |
| sid = evc['id'] | |
| eps = [] | |
| root = evc['SCA_ETH_Flow_Points'][0] | |
| hostname = root['scaEthFppUniN']['transportPort']['Hostname'] | |
| port = root['scaEthFppUniN']['transportPort']['Port'] | |
| edgePort = NetworkEdgePort() | |
| edgePort.element = networkDevice | |
| edgePort.pid = "{}.{}/{}".format(networkDevice.id, hostname, port) | |
| if 'interfaceCfgIngressBwp' in root['scaEthFppUniN']: | |
| edgePort.bwpCfgCbs = root['scaEthFppUniN']['interfaceCfgIngressBwp']['bwpCfgCbs'] | |
| edgePort.bwpCfgEbs = root['scaEthFppUniN']['interfaceCfgIngressBwp']['bwpCfgEbs'] | |
| edgePort.bwpCfgCir = root['scaEthFppUniN']['interfaceCfgIngressBwp']['bwpCfgCir'] | |
| edgePort.bwpCfgEir = root['scaEthFppUniN']['interfaceCfgIngressBwp']['bwpCfgEir'] | |
| edgeToMultipointConnectivity = NetworkEdgeToMultipointConnection() | |
| edgeToMultipointConnectivity.sid = sid | |
| edgeToMultipointConnectivity.type = "Root_Multipoint" | |
| edgeToMultipointConnectivity.root = edgePort | |
| for ep in evc['SCA_ETH_Flow_Points'][1:]: | |
| hostname = ep['scaEthFppUniN']['transportPort']['Hostname'] | |
| port = ep['scaEthFppUniN']['transportPort']['Port'] | |
| edgePort = NetworkEdgePort() | |
| edgePort.element = networkDevice | |
| edgePort.pid = "{}.{}/{}".format(networkDevice.id, hostname, port) | |
| if 'interfaceCfgIngressBwp' in ep['scaEthFppUniN']: | |
| edgePort.bwpCfgCbs = ep['scaEthFppUniN']['interfaceCfgIngressBwp']['bwpCfgCbs'] | |
| edgePort.bwpCfgEbs = ep['scaEthFppUniN']['interfaceCfgIngressBwp']['bwpCfgEbs'] | |
| edgePort.bwpCfgCir = ep['scaEthFppUniN']['interfaceCfgIngressBwp']['bwpCfgCir'] | |
| edgePort.bwpCfgEir = ep['scaEthFppUniN']['interfaceCfgIngressBwp']['bwpCfgEir'] | |
| eps.append(edgePort) | |
| edgeToMultipointConnectivity.eps = eps | |
| edgeToMultipointConnectivity.operstate = "active" | |
| edgeToMultipointConnectivity.adminstate = "enabled" | |
| return(edgeToMultipointConnectivity) | |
| def get_network_links(self): | |
| objs = [] | |
| networkDevice = self.networkdevice | |
| restCtrlUrl = self.networkdevice.restCtrlUrl | |
| username = self.networkdevice.username | |
| password = self.networkdevice.password | |
| resp = requests.get("{}/mef-sca-api/SCA_ETH_FDFr_EC/findByState?state=Active".format(restCtrlUrl), | |
| auth=HTTPBasicAuth(username, password)) | |
| if resp.status_code == 200: | |
| for evc in resp.json(): | |
| evcServiceType = evc['evcServiceType'] | |
| if (evcServiceType == "Point_To_Point"): | |
| objs.append(self.get_network_eline_link(networkDevice, evc)) | |
| elif (evcServiceType == "Multipoint_To_Multipoint"): | |
| objs.append(self.get_network_elan_link(networkDevice, evc)) | |
| elif (evcServiceType == "Root_Multipoint"): | |
| objs.append(self.get_network_etree_link(networkDevice, evc)) | |
| else: | |
| raise Exception("OnosApiError: get_network_links() - unknown link type") | |
| else: | |
| raise Exception("OnosApiError: get_network_links()") | |
| return objs | |
| def create_point_to_point_connectivity_json_data(self, obj): | |
| p2p_json_data = {} | |
| p2p_json_data["evcServiceType"] = "Point_To_Point" | |
| uni1 = obj.uni1 | |
| uni1Id = uni1.pid | |
| uni1IdToken = (uni1Id.split('.', 1))[1].split('/', 1) | |
| uni1Hostname = uni1IdToken[0] | |
| uni1Port = uni1IdToken[1] | |
| uni1BwpCfgCbs = uni1.bwpCfgCbs | |
| uni1BwpCfgEbs = uni1.bwpCfgEbs | |
| uni1BwpCfgCir = uni1.bwpCfgCir | |
| uni1BwpCfgEir = uni1.bwpCfgEir | |
| uni1_json_data = {} | |
| uni1_json_data['scaEthFppUniN'] = {} | |
| uni1_json_data['scaEthFppUniN']['ceVlanId'] = obj.vlanid | |
| uni1_json_data['scaEthFppUniN']["transportPort"] = {} | |
| uni1_json_data['scaEthFppUniN']["interfaceCfgIngressBwp"] = {} | |
| uni1_json_data['scaEthFppUniN']["transportPort"]["Hostname"] = uni1Hostname | |
| uni1_json_data['scaEthFppUniN']["transportPort"]["Port"] = uni1Port | |
| uni1_json_data['scaEthFppUniN']["interfaceCfgIngressBwp"]["bwpCfgCbs"] = uni1BwpCfgCbs | |
| uni1_json_data['scaEthFppUniN']["interfaceCfgIngressBwp"]["bwpCfgEbs"] = uni1BwpCfgEbs | |
| uni1_json_data['scaEthFppUniN']["interfaceCfgIngressBwp"]["bwpCfgCir"] = uni1BwpCfgCir | |
| uni1_json_data['scaEthFppUniN']["interfaceCfgIngressBwp"]["bwpCfgEir"] = uni1BwpCfgEir | |
| uni2 = obj.uni2 | |
| uni2Id = uni2.pid | |
| uni2IdToken = (uni2Id.split('.', 1))[1].split('/', 1) | |
| uni2Hostname = uni2IdToken[0] | |
| uni2Port = uni2IdToken[1] | |
| uni2BwpCfgCbs = uni2.bwpCfgCbs | |
| uni2BwpCfgEbs = uni2.bwpCfgEbs | |
| uni2BwpCfgCir = uni2.bwpCfgCir | |
| uni2BwpCfgEir = uni2.bwpCfgEir | |
| uni2_json_data = {} | |
| uni2_json_data['scaEthFppUniN'] = {} | |
| uni2_json_data['scaEthFppUniN']['ceVlanId'] = obj.vlanid | |
| uni2_json_data['scaEthFppUniN']["transportPort"] = {} | |
| uni2_json_data['scaEthFppUniN']["interfaceCfgIngressBwp"] = {} | |
| uni2_json_data['scaEthFppUniN']["transportPort"]["Hostname"] = uni2Hostname | |
| uni2_json_data['scaEthFppUniN']["transportPort"]["Port"] = uni2Port | |
| uni2_json_data['scaEthFppUniN']["interfaceCfgIngressBwp"]["bwpCfgCbs"] = uni2BwpCfgCbs | |
| uni2_json_data['scaEthFppUniN']["interfaceCfgIngressBwp"]["bwpCfgEbs"] = uni2BwpCfgEbs | |
| uni2_json_data['scaEthFppUniN']["interfaceCfgIngressBwp"]["bwpCfgCir"] = uni2BwpCfgCir | |
| uni2_json_data['scaEthFppUniN']["interfaceCfgIngressBwp"]["bwpCfgEir"] = uni2BwpCfgEir | |
| p2p_json_data["SCA_ETH_Flow_Points"] = [] | |
| p2p_json_data["SCA_ETH_Flow_Points"].append(uni1_json_data) | |
| p2p_json_data["SCA_ETH_Flow_Points"].append(uni2_json_data) | |
| return p2p_json_data | |
| # nchoi: create elan service json data | |
| def create_multipoint_to_multipoint_connectivity_json_data(self, obj): | |
| mp2mp_json_data = {} | |
| mp2mp_json_data["evcServiceType"] = "Multipoint_To_Multipoint" | |
| mp2mp_json_data["SCA_ETH_Flow_Points"] = [] | |
| for ep in obj.eps.all(): | |
| uniId = ep.pid | |
| uniIdToken = (uniId.split('.', 1))[1].split('/', 1) | |
| uniHostname = uniIdToken[0] | |
| uniPort = uniIdToken[1] | |
| uniBwpCfgCbs = ep.bwpCfgCbs | |
| uniBwpCfgEbs = ep.bwpCfgEbs | |
| uniBwpCfgCir = ep.bwpCfgCir | |
| uniBwpCfgEir = ep.bwpCfgEir | |
| uni_json_data = {} | |
| uni_json_data['scaEthFppUniN'] = {} | |
| uni_json_data['scaEthFppUniN']['ceVlanId'] = obj.vlanid | |
| uni_json_data['scaEthFppUniN']["transportPort"] = {} | |
| uni_json_data['scaEthFppUniN']["interfaceCfgIngressBwp"] = {} | |
| uni_json_data['scaEthFppUniN']["transportPort"]["Hostname"] = uniHostname | |
| uni_json_data['scaEthFppUniN']["transportPort"]["Port"] = uniPort | |
| uni_json_data['scaEthFppUniN']["interfaceCfgIngressBwp"]["bwpCfgCbs"] = uniBwpCfgCbs | |
| uni_json_data['scaEthFppUniN']["interfaceCfgIngressBwp"]["bwpCfgEbs"] = uniBwpCfgEbs | |
| uni_json_data['scaEthFppUniN']["interfaceCfgIngressBwp"]["bwpCfgCir"] = uniBwpCfgCir | |
| uni_json_data['scaEthFppUniN']["interfaceCfgIngressBwp"]["bwpCfgEir"] = uniBwpCfgEir | |
| mp2mp_json_data["SCA_ETH_Flow_Points"].append(uni_json_data) | |
| return mp2mp_json_data | |
| # nchoi: create etree service json data | |
| def create_root_multipoint_connectivity_json_data(self, obj): | |
| r2mp_json_data = {} | |
| r2mp_json_data["evcServiceType"] = "Root_Multipoint" | |
| r2mp_json_data["SCA_ETH_Flow_Points"] = [] | |
| root = obj.root | |
| uniId = root.pid | |
| uniIdToken = (uniId.split('.', 1))[1].split('/', 1) | |
| uniHostname = uniIdToken[0] | |
| uniPort = uniIdToken[1] | |
| uniBwpCfgCbs = root.bwpCfgCbs | |
| uniBwpCfgEbs = root.bwpCfgEbs | |
| uniBwpCfgCir = root.bwpCfgCir | |
| uniBwpCfgEir = root.bwpCfgEir | |
| uni_json_data = {} | |
| uni_json_data['scaEthFppUniN'] = {} | |
| uni_json_data['scaEthFppUniN']['ceVlanId'] = obj.vlanid | |
| uni_json_data['scaEthFppUniN']["transportPort"] = {} | |
| uni_json_data['scaEthFppUniN']["interfaceCfgIngressBwp"] = {} | |
| uni_json_data['scaEthFppUniN']["transportPort"]["Hostname"] = uniHostname | |
| uni_json_data['scaEthFppUniN']["transportPort"]["Port"] = uniPort | |
| uni_json_data['scaEthFppUniN']["interfaceCfgIngressBwp"]["bwpCfgCbs"] = uniBwpCfgCbs | |
| uni_json_data['scaEthFppUniN']["interfaceCfgIngressBwp"]["bwpCfgEbs"] = uniBwpCfgEbs | |
| uni_json_data['scaEthFppUniN']["interfaceCfgIngressBwp"]["bwpCfgCir"] = uniBwpCfgCir | |
| uni_json_data['scaEthFppUniN']["interfaceCfgIngressBwp"]["bwpCfgEir"] = uniBwpCfgEir | |
| r2mp_json_data["SCA_ETH_Flow_Points"].append(uni_json_data) | |
| for ep in obj.eps.all(): | |
| uniId = ep.pid | |
| uniIdToken = (uniId.split('.', 1))[1].split('/', 1) | |
| uniHostname = uniIdToken[0] | |
| uniPort = uniIdToken[1] | |
| uniBwpCfgCbs = ep.bwpCfgCbs | |
| uniBwpCfgEbs = ep.bwpCfgEbs | |
| uniBwpCfgCir = ep.bwpCfgCir | |
| uniBwpCfgEir = ep.bwpCfgEir | |
| uni_json_data = {} | |
| uni_json_data['scaEthFppUniN'] = {} | |
| uni_json_data['scaEthFppUniN']['ceVlanId'] = obj.vlanid | |
| uni_json_data['scaEthFppUniN']["transportPort"] = {} | |
| uni_json_data['scaEthFppUniN']["interfaceCfgIngressBwp"] = {} | |
| uni_json_data['scaEthFppUniN']["transportPort"]["Hostname"] = uniHostname | |
| uni_json_data['scaEthFppUniN']["transportPort"]["Port"] = uniPort | |
| uni_json_data['scaEthFppUniN']["interfaceCfgIngressBwp"]["bwpCfgCbs"] = uniBwpCfgCbs | |
| uni_json_data['scaEthFppUniN']["interfaceCfgIngressBwp"]["bwpCfgEbs"] = uniBwpCfgEbs | |
| uni_json_data['scaEthFppUniN']["interfaceCfgIngressBwp"]["bwpCfgCir"] = uniBwpCfgCir | |
| uni_json_data['scaEthFppUniN']["interfaceCfgIngressBwp"]["bwpCfgEir"] = uniBwpCfgEir | |
| r2mp_json_data["SCA_ETH_Flow_Points"].append(uni_json_data) | |
| return r2mp_json_data | |
| def create_network_connectivity(self, obj): | |
| restCtrlUrl = self.networkdevice.restCtrlUrl | |
| username = self.networkdevice.username | |
| password = self.networkdevice.password | |
| evcServiceType = obj.type | |
| if (evcServiceType == "Point_To_Point"): | |
| network_connectivity_json_data = self.create_point_to_point_connectivity_json_data(obj) | |
| elif (evcServiceType == "Multipoint_To_Multipoint"): | |
| network_connectivity_json_data = self.create_multipoint_to_multipoint_connectivity_json_data(obj) | |
| elif (evcServiceType == "Root_Multipoint"): | |
| network_connectivity_json_data = self.create_root_multipoint_connectivity_json_data(obj) | |
| else: | |
| raise Exception("OnosApiError: get_network_links() - unknown link type") | |
| headers = {'Content-Type': 'application/json'} | |
| resp = requests.post('{}/mef-sca-api/SCA_ETH_FDFr_EC'.format(restCtrlUrl), | |
| data=json.dumps(network_connectivity_json_data), headers=headers, auth=HTTPBasicAuth(username, password)) | |
| if resp.status_code == 201: | |
| result = resp.json() | |
| message = result['message'] | |
| msg_token = message.split() | |
| for i, token in enumerate(msg_token): | |
| if token == 'id': | |
| service_id = msg_token[i + 1] | |
| obj.sid = service_id | |
| obj.adminstate = "enabled" | |
| obj.operstate = "active" | |
| return True | |
| elif resp.status_code == 204: | |
| obj.adminstate = "invalid" # what's the meaning? | |
| obj.operstate = "inactive" | |
| obj.backend_status = '204 - No network resource' | |
| return False | |
| elif resp.status_code == 500: | |
| obj.adminstate = "enabled" | |
| obj.operstate = "inactive" | |
| obj.backend_status = '500 - Internal Server Error' | |
| return False | |
| else: | |
| raise Exception("OnosApiError: create_network_connectivity()") | |
| def delete_network_connectivity(self, obj): | |
| restCtrlUrl = self.networkdevice.restCtrlUrl | |
| username = self.networkdevice.username | |
| password = self.networkdevice.password | |
| evcId = obj.sid | |
| resp = requests.delete("{}/mef-sca-api/SCA_ETH_FDFr_EC/{}".format(restCtrlUrl, evcId), | |
| auth=HTTPBasicAuth(username, password)) | |
| if resp.status_code == 200: | |
| obj.adminstate = 'disabled' | |
| obj.operstate = 'inactive' | |
| return True | |
| elif resp.status_code == 204: | |
| obj.adminstate = "invalid" # what's the meaning? | |
| obj.backend_status = '204 - No such network resource: {}'.format(evcId) | |
| return False | |
| elif resp.status_code == 500: | |
| obj.adminstate = "disabled" | |
| obj.backend_status = '500 - Internal Server Error' | |
| return False | |
| else: | |
| raise Exception("OnosApiError: delete_network_connectivity()") |