From 71f7abb8d48b167749e7b03586def13bff0c8a41 Mon Sep 17 00:00:00 2001 From: tierno Date: Fri, 12 Jun 2020 08:59:29 +0000 Subject: [PATCH] fix flake8 for SDN-juniper_contrail Change-Id: Ifc06fa889fa0625c0ac32738f05dc9fca26ee42a Signed-off-by: tierno --- .../osm_rosdn_juniper_contrail/rest_lib.py | 21 ++++--- .../osm_rosdn_juniper_contrail/sdn_api.py | 21 +++---- .../sdn_assist_juniper_contrail.py | 59 ++++++++----------- 3 files changed, 45 insertions(+), 56 deletions(-) diff --git a/RO-SDN-juniper_contrail/osm_rosdn_juniper_contrail/rest_lib.py b/RO-SDN-juniper_contrail/osm_rosdn_juniper_contrail/rest_lib.py index 2586d410..699655a3 100644 --- a/RO-SDN-juniper_contrail/osm_rosdn_juniper_contrail/rest_lib.py +++ b/RO-SDN-juniper_contrail/osm_rosdn_juniper_contrail/rest_lib.py @@ -17,11 +17,11 @@ import requests import json import copy -import logging from time import time from requests.exceptions import ConnectionError + class HttpException(Exception): pass @@ -97,16 +97,16 @@ class ContrailHttp(object): def _get_token(self, headers): if self.auth_url: - self._logger.debug('Current Token:'.format(self.token)) + self._logger.debug('Current Token: {}'.format(self.token)) auth_url = self.auth_url + 'auth/tokens' if self.token is None or self._token_expired(): if not self.auth_url: self.token = "" resp = self._request_noauth(url=auth_url, op="POST", headers=headers, - data=self.auth_dict) + data=self.auth_dict) self.token = resp.headers.get('x-subject-token') self.last_token_time = time.time() - self._logger.debug('Obtained token: '.format(self.token)) + self._logger.debug('Obtained token: {}'.format(self.token)) return self.token @@ -121,8 +121,8 @@ class ContrailHttp(object): headers = http_headers.copy() # Get authorization (include authentication headers) - # todo - añadir token de nuevo - #token = self._get_token(headers) + # TODO add again token + # token = self._get_token(headers) token = None if token: headers['X-Auth-Token'] = token @@ -148,13 +148,13 @@ class ContrailHttp(object): # Execute operation try: self._logger.info("Request METHOD: {} URL: {}".format(op, url)) - if (op == "GET"): + if op == "GET": resp = self._http_get(url, headers, query_params=data) - elif (op == "POST"): + elif op == "POST": resp = self._http_post(url, headers, json_data=data) - elif (op == "POST_HEADERS"): + elif op == "POST_HEADERS": resp = self._http_post_headers(url, headers, json_data=data) - elif (op == "DELETE"): + elif op == "DELETE": resp = self._http_delete(url, headers, json_data=data) else: raise HttpException("Unsupported operation: {}".format(op)) @@ -201,4 +201,3 @@ class ContrailHttp(object): def _http_delete(self, url, headers, json_data=None): return requests.delete(url, json=json_data, headers=headers) - diff --git a/RO-SDN-juniper_contrail/osm_rosdn_juniper_contrail/sdn_api.py b/RO-SDN-juniper_contrail/osm_rosdn_juniper_contrail/sdn_api.py index 2bf0b52f..c99452bb 100644 --- a/RO-SDN-juniper_contrail/osm_rosdn_juniper_contrail/sdn_api.py +++ b/RO-SDN-juniper_contrail/osm_rosdn_juniper_contrail/sdn_api.py @@ -20,8 +20,9 @@ import json from osm_ro.wim.sdnconn import SdnConnectorError from osm_rosdn_juniper_contrail.rest_lib import ContrailHttp from osm_rosdn_juniper_contrail.rest_lib import NotFound -from osm_rosdn_juniper_contrail.rest_lib import DuplicateFound -from osm_rosdn_juniper_contrail.rest_lib import HttpException +# from osm_rosdn_juniper_contrail.rest_lib import DuplicateFound +# from osm_rosdn_juniper_contrail.rest_lib import HttpException + class UnderlayApi: """ Class with CRUD operations for the underlay API """ @@ -61,7 +62,7 @@ class UnderlayApi: self.logger.debug("Config parameters for the underlay controller: auth_url: {}, project: {}," " domain: {}, user: {}, password: {}".format(self.auth_url, self.project, - self.domain, self.user, self.password)) + self.domain, self.user, self.password)) auth_dict = {} auth_dict['auth'] = {} @@ -142,9 +143,7 @@ class UnderlayApi: "operation": "DELETE" } endpoint = self.controller_url + "ref-update" - resp = self.http.post_cmd(url=endpoint, - headers=self.http_header, - post_fields_dict=payload) + resp = self.http.post_cmd(url=endpoint, headers=self.http_header, post_fields_dict=payload) return resp # Aux methods to avoid code duplication of name conventions @@ -230,11 +229,10 @@ class UnderlayApi: return self.get_by_uuid(self.controller_url, "virtual-port-group", vpg_id) def get_vpg_by_name(self, vpg_name): - fq_name = [ - "default-global-system-config", - self.fabric, - vpg_name - ] + fq_name = ["default-global-system-config", + self.fabric, + vpg_name + ] return self.get_by_fq_name("virtual-port-group", fq_name) def delete_vpg(self, vpg_id): @@ -321,4 +319,3 @@ class UnderlayApi: def unref_vmi_vpg(self, vpg_id, vmi_id, vmi_fq_name): self.delete_ref("virtual-port-group", vpg_id, "virtual-machine-interface", vmi_id, vmi_fq_name) - diff --git a/RO-SDN-juniper_contrail/osm_rosdn_juniper_contrail/sdn_assist_juniper_contrail.py b/RO-SDN-juniper_contrail/osm_rosdn_juniper_contrail/sdn_assist_juniper_contrail.py index 0e2c0b7b..0bbe7341 100644 --- a/RO-SDN-juniper_contrail/osm_rosdn_juniper_contrail/sdn_assist_juniper_contrail.py +++ b/RO-SDN-juniper_contrail/osm_rosdn_juniper_contrail/sdn_assist_juniper_contrail.py @@ -18,16 +18,14 @@ # import logging -import json import yaml import random from osm_ro.wim.sdnconn import SdnConnectorBase, SdnConnectorError -from osm_rosdn_juniper_contrail.rest_lib import ContrailHttp -from osm_rosdn_juniper_contrail.rest_lib import NotFound +# from osm_rosdn_juniper_contrail.rest_lib import ContrailHttp +# from osm_rosdn_juniper_contrail.rest_lib import NotFound from osm_rosdn_juniper_contrail.rest_lib import DuplicateFound from osm_rosdn_juniper_contrail.rest_lib import HttpException - from osm_rosdn_juniper_contrail.sdn_api import UnderlayApi @@ -37,7 +35,8 @@ class JuniperContrail(SdnConnectorBase): whose API details can be found in these links: - https://github.com/tonyliu0592/contrail/wiki/API-Configuration-REST - - https://www.juniper.net/documentation/en_US/contrail19/information-products/pathway-pages/api-guide-1910/tutorial_with_rest.html + - https://www.juniper.net/documentation/en_US/contrail19/information-products/pathway-pages/api-guide-1910/ + tutorial_with_rest.html - https://github.com/tonyliu0592/contrail-toolbox/blob/master/sriov/sriov """ _WIM_LOGGER = "openmano.sdnconn.junipercontrail" @@ -72,7 +71,7 @@ class JuniperContrail(SdnConnectorBase): self.user = wim_account.get("user") self.password = wim_account.get("password") - url = wim.get("wim_url") # underlay url + url = wim.get("wim_url") # underlay url auth_url = None self.project = None self.domain = None @@ -148,10 +147,10 @@ class JuniperContrail(SdnConnectorBase): Returns: VNI """ - #find unused VLAN ID + # find unused VLAN ID for vlanID_range in self.vni_range: try: - start_vni , end_vni = map(int, vlanID_range.replace(" ", "").split("-")) + start_vni, end_vni = map(int, vlanID_range.replace(" ", "").split("-")) for i in range(start_vni, end_vni + 1): vni = random.randrange(start_vni, end_vni, 1) if vni not in self.used_vni: @@ -159,10 +158,9 @@ class JuniperContrail(SdnConnectorBase): except Exception as exp: raise SdnConnectorError("Exception {} occurred while searching a free VNI.".format(exp)) else: - raise SdnConnectorError("Unable to create the virtual network."\ - " All VNI in VNI range {} are in use.".format(self.vni_range)) + raise SdnConnectorError("Unable to create the virtual network." + " All VNI in VNI range {} are in use.".format(self.vni_range)) - # Aux functions for testing def get_url(self): return self.url @@ -216,7 +214,6 @@ class JuniperContrail(SdnConnectorBase): else: num_vmis = len(vmi_list) for vmi in vmi_list: - uuid = vmi.get("uuid") fqdn = vmi.get("to") # check by name if fqdn[2] == vmi_name: @@ -306,7 +303,6 @@ class JuniperContrail(SdnConnectorBase): self.logger.error('Exception getting connectivity service info: %s', e, exc_info=True) return {'sdn_status': 'ERROR', 'error_msg': str(e)} - def create_connectivity_service(self, service_type, connection_points, **kwargs): """ Establish SDN/WAN connectivity between the endpoints @@ -353,7 +349,8 @@ class JuniperContrail(SdnConnectorBase): # 1.3 If more than one, ERROR # Step 2. Modify the existing virtual network in the overlay controller # 2.1 Add VNI (VxLAN Network Identifier - one free from the provided range) - # 2.2 Add RouteTarget (RT) ('ASN:VNI', ASN = Autonomous System Number, provided as param or read from controller config) + # 2.2 Add RouteTarget (RT) ('ASN:VNI', ASN = Autonomous System Number, provided as param or read from + # controller config) # Step 3. Create a virtual network in the underlay controller # 3.1 Create virtual network (name, VNI, RT) # If the network already existed in the overlay controller, we should use the same name @@ -369,10 +366,8 @@ class JuniperContrail(SdnConnectorBase): # Initialize data conn_info = None - # 1 - Filter connection_points (transform cp to a dictionary with no duplicates) # This data will be returned even if no cp can be created if something is created - vlans = set() work_cps = {} for cp in connection_points: switch_id = cp.get("service_endpoint_encapsulation_info").get("switch_dpid") @@ -393,7 +388,8 @@ class JuniperContrail(SdnConnectorBase): "vlan": vlan} work_cps[cp_name] = add_cp else: - self.logger.warning("cp service_endpoint_id : {} has no vlan, ignore".format(service_endpoint_id)) + self.logger.warning("cp service_endpoint_id : {} has no vlan, ignore".format( + service_endpoint_id)) else: # add service_endpoint_id to list service_endpoint_ids = add_cp["service_endpoint_ids"] @@ -426,7 +422,7 @@ class JuniperContrail(SdnConnectorBase): "uuid": vnet_id, "name": vnet_name }, - "connection_points": work_cps # dict with port_name as key + "connection_points": work_cps # dict with port_name as key } # 4 - Create a port for each endpoint @@ -448,7 +444,6 @@ class JuniperContrail(SdnConnectorBase): else: self.logger.error("Error creating connectivity service: {}".format(e), exc_info=True) - # If nothing is created raise error else return what has been created and mask as error if not conn_info: raise SdnConnectorError("Exception create connectivity service: {}".format(str(e))) @@ -472,11 +467,11 @@ class JuniperContrail(SdnConnectorBase): :raises: SdnConnectorException: In case of error. The parameter http_code must be filled """ self.logger.info("delete_connectivity_service vnet_name: {}, connection_points: {}". - format(service_uuid, conn_info)) + format(service_uuid, conn_info)) try: vnet_uuid = service_uuid - vnet_name = conn_info["vnet"]["name"] # always should exist as the network is the first thing created + # vnet_name = conn_info["vnet"]["name"] # always should exist as the network is the first thing created work_cps = conn_info["connection_points"] # 1: For each connection point delete vlan from vpg and it is is the @@ -486,7 +481,7 @@ class JuniperContrail(SdnConnectorBase): # 2: Delete vnet self.underlay_api.delete_virtual_network(vnet_uuid) - self.logger.info("deleted connectivity_service vnet_name: {}, connection_points: {}". + self.logger.info("deleted connectivity_service vnet_uuid: {}, connection_points: {}". format(service_uuid, conn_info)) except SdnConnectorError: raise @@ -497,7 +492,7 @@ class JuniperContrail(SdnConnectorBase): self.logger.error("Error deleting connectivity service: {}".format(e), exc_info=True) raise SdnConnectorError("Exception deleting connectivity service: {}".format(str(e))) - def edit_connectivity_service(self, service_uuid, conn_info = None, connection_points = None, **kwargs): + def edit_connectivity_service(self, service_uuid, conn_info=None, connection_points=None, **kwargs): """ Change an existing connectivity service. This method's arguments and return value follow the same convention as @@ -523,7 +518,7 @@ class JuniperContrail(SdnConnectorBase): # 3 - Delete unnecesary ports # 4 - Add new ports self.logger.info("edit connectivity service, service_uuid: {}, conn_info: {}, " - "connection points: {} ".format(service_uuid, conn_info, connection_points)) + "connection points: {} ".format(service_uuid, conn_info, connection_points)) # conn_info should always exist and have connection_points and vnet elements old_cp = conn_info.get("connection_points", {}) @@ -545,7 +540,7 @@ class JuniperContrail(SdnConnectorBase): del old_cp[port] # Delete sdn_status and sdn_info if exists (possibly marked as error) - if conn_info.get("vnet",{}).get("sdn_status"): + if conn_info.get("vnet", {}).get("sdn_status"): del conn_info["vnet"]["sdn_status"] except HttpException as e: self.logger.error("Error trying to delete old ports marked as error: {}".format(e)) @@ -621,7 +616,7 @@ class JuniperContrail(SdnConnectorBase): cp = conn_info_cp[port_name] switch_id = cp.get("switch_dpid") switch_port = cp.get("switch_port") - self.logger.debug("delete port switch_id, switch_port: {}".format(switch_id, switch_port)) + self.logger.debug("delete port switch_id={}, switch_port={}".format(switch_id, switch_port)) self._delete_port(switch_id, switch_port, vlan) deleted_ports.append(port_name) @@ -635,7 +630,7 @@ class JuniperContrail(SdnConnectorBase): switch_id = cp.get("switch_dpid") switch_port = cp.get("switch_port") vlan = cp.get("vlan") - self.logger.debug("add port switch_id, switch_port: {}".format(switch_id, switch_port)) + self.logger.debug("add port switch_id={}, switch_port={}".format(switch_id, switch_port)) vpg_id, vmi_id = self._create_port(switch_id, switch_port, vnet_name, vlan) cp_added = cp.copy() cp_added["vpg_id"] = vpg_id @@ -686,8 +681,8 @@ if __name__ == '__main__': handler = logging.StreamHandler() handler.setFormatter(log_formatter) logger = logging.getLogger('openmano.sdnconn.junipercontrail') - #logger.setLevel(level=logging.ERROR) - #logger.setLevel(level=logging.INFO) + # logger.setLevel(level=logging.ERROR) + # logger.setLevel(level=logging.INFO) logger.setLevel(level=logging.DEBUG) logger.addHandler(handler) @@ -707,17 +702,16 @@ if __name__ == '__main__': vni = juniper_contrail._generate_vni() juniper_contrail.used_vni.add(vni) print(juniper_contrail.used_vni) - #juniper_contrail.used_vni.remove(1000003) + # juniper_contrail.used_vni.remove(1000003) print(juniper_contrail.used_vni) for i in range(2): vni = juniper_contrail._generate_vni() juniper_contrail.used_vni.add(vni) print(juniper_contrail.used_vni) - # 0. Check credentials print('0. Check credentials') - #juniper_contrail.check_credentials() + # juniper_contrail.check_credentials() # 1 - Create and delete connectivity service conn_point_0 = { @@ -781,4 +775,3 @@ if __name__ == '__main__': logger.debug("Delete connectivity service 2") juniper_contrail.delete_connectivity_service(service_id2, conn_info2) logger.debug("Delete Ok") - -- 2.17.1