- onos_config_req = requests.get(self.url, auth=HTTPBasicAuth(self.user, self.password))
- onos_config_req.raise_for_status()
- onos_config = onos_config_req.json()
- for vpls in onos_config['apps']['org.onosproject.vpls']['vpls']['vplsList']:
- if vpls['name'] == service_uuid:
- return vpls
- raise SdnConnectorError('VPLS {} not found'.format(service_uuid), http_code=404)
+ try:
+ result = None
+ onos_config = self._get_onos_netconfig()
+ vpls_config = onos_config.get('apps', {}).get('org.onosproject.vpls')
+ if vpls_config:
+ for vpls in vpls_config.get('vpls', {}).get('vplsList'):
+ if vpls.get('name') == service_uuid:
+ return {'sdn_status': 'ACTIVE', 'sdn_info': vpls}
+
+ return {'sdn_status': 'ERROR', 'sdn_info': 'not found'}
+
+ except Exception as e:
+ self.logger.error('Exception getting connectivity service info: %s', e)
+ return {'sdn_status': 'ERROR', 'error_msg': str(e)}
+
+ def _get_onos_netconfig(self):
+ try:
+ onos_config_req = requests.get(self.url, auth=HTTPBasicAuth(self.user, self.password))
+ status_code = onos_config_req.status_code
+ if status_code == requests.codes.ok:
+ return onos_config_req.json()
+ else:
+ self.logger.info("Error obtaining network config, status code: {}".format(status_code))
+ raise SdnConnectorError("Error obtaining network config status code: {}".format(status_code),
+ http_code=status_code)
+ except requests.exceptions.ConnectionError as e:
+ self.logger.info('Exception connecting to onos: %s', e)
+ raise SdnConnectorError("Error connecting to onos: {}".format(e))
+ except Exception as e:
+ self.logger.error('Exception getting onos network config: %s', e)
+ raise SdnConnectorError("Exception getting onos network config: {}".format(e))
+
+ def _post_onos_netconfig(self, onos_config):
+ try:
+ onos_config_resp = requests.post(self.url, json=onos_config, auth=HTTPBasicAuth(self.user, self.password))
+ status_code = onos_config_resp.status_code
+ if status_code != requests.codes.ok:
+ self.logger.info("Error updating network config, status code: {}".format(status_code))
+ raise SdnConnectorError("Error obtaining network config status code: {}".format(status_code),
+ http_code=status_code)
+ except requests.exceptions.ConnectionError as e:
+ self.logger.info('Exception connecting to onos: %s', e)
+ raise SdnConnectorError("Error connecting to onos: {}".format(e))
+ except Exception as e:
+ self.logger.info('Exception posting onos network config: %s', e)
+ raise SdnConnectorError("Exception posting onos network config: {}".format(e))