blob: b8ea42f1d8d4c98b79a5e9631a3f7d3b4b94836d [file] [log] [blame]
Anderson Bravalheri0446cd52018-08-17 15:26:19 +01001# -*- coding: utf-8 -*-
2##
3# Copyright 2018 University of Bristol - High Performance Networks Research
4# Group
5# All Rights Reserved.
6#
7# Contributors: Anderson Bravalheri, Dimitrios Gkounis, Abubakar Siddique
8# Muqaddas, Navdeep Uniyal, Reza Nejabati and Dimitra Simeonidou
9#
10# Licensed under the Apache License, Version 2.0 (the "License"); you may
11# not use this file except in compliance with the License. You may obtain
12# a copy of the License at
13#
14# http://www.apache.org/licenses/LICENSE-2.0
15#
16# Unless required by applicable law or agreed to in writing, software
17# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
18# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
19# License for the specific language governing permissions and limitations
20# under the License.
21#
22# For those usages not covered by the Apache License, Version 2.0 please
23# contact with: <highperformance-networks@bristol.ac.uk>
24#
25# Neither the name of the University of Bristol nor the names of its
26# contributors may be used to endorse or promote products derived from
27# this software without specific prior written permission.
28#
29# This work has been performed in the context of DCMS UK 5G Testbeds
30# & Trials Programme and in the framework of the Metro-Haul project -
31# funded by the European Commission under Grant number 761727 through the
32# Horizon 2020 and 5G-PPP programmes.
33##
34
35"""In the case any error happens when trying to initiate the WIM Connector,
36we need a replacement for it, that will throw an error every time we try to
37execute any action
38"""
39import json
tierno72774862020-05-04 11:44:15 +000040from osm_ro_plugin.sdnconn import SdnConnectorError
Anderson Bravalheri0446cd52018-08-17 15:26:19 +010041
42
tierno72774862020-05-04 11:44:15 +000043class SdnFailingConnector(object):
Anderson Bravalheri0446cd52018-08-17 15:26:19 +010044 """Placeholder for a connector whose incitation failed,
45 This place holder will just raise an error every time an action is needed
46 from the connector.
47
48 This way we can make sure that all the other parts of the program will work
49 but the user will have all the information available to fix the problem.
50 """
51 def __init__(self, error_msg):
52 self.error_msg = error_msg
53
tiernoed3e4d42019-10-21 15:31:27 +000054 def __call__(self, wim, wim_account, config=None, logger=None):
55 return self
56
57 def vimconnector(self, *args, **kwargs):
58 raise Exception(self.error_msg)
59
Anderson Bravalheri0446cd52018-08-17 15:26:19 +010060 def check_credentials(self):
tiernoed3e4d42019-10-21 15:31:27 +000061 raise SdnConnectorError('Impossible to use WIM:\n' + self.error_msg)
Anderson Bravalheri0446cd52018-08-17 15:26:19 +010062
63 def get_connectivity_service_status(self, service_uuid, _conn_info=None):
tiernoed3e4d42019-10-21 15:31:27 +000064 raise SdnConnectorError('Impossible to retrieve status for {}\n\n{}'
Anderson Bravalheri0446cd52018-08-17 15:26:19 +010065 .format(service_uuid, self.error_msg))
66
67 def create_connectivity_service(self, service_uuid, *args, **kwargs):
tiernoed3e4d42019-10-21 15:31:27 +000068 raise SdnConnectorError('Impossible to connect {}.\n{}\n{}\n{}'
Anderson Bravalheri0446cd52018-08-17 15:26:19 +010069 .format(service_uuid, self.error_msg,
70 json.dumps(args, indent=4),
71 json.dumps(kwargs, indent=4)))
72
73 def delete_connectivity_service(self, service_uuid, _conn_info=None):
tiernoed3e4d42019-10-21 15:31:27 +000074 raise SdnConnectorError('Impossible to disconnect {}\n\n{}'
Anderson Bravalheri0446cd52018-08-17 15:26:19 +010075 .format(service_uuid, self.error_msg))
76
77 def edit_connectivity_service(self, service_uuid, *args, **kwargs):
tiernoed3e4d42019-10-21 15:31:27 +000078 raise SdnConnectorError('Impossible to change connection {}.\n{}\n'
Anderson Bravalheri0446cd52018-08-17 15:26:19 +010079 '{}\n{}'
80 .format(service_uuid, self.error_msg,
81 json.dumps(args, indent=4),
82 json.dumps(kwargs, indent=4)))
83
84 def clear_all_connectivity_services(self):
tiernoed3e4d42019-10-21 15:31:27 +000085 raise SdnConnectorError('Impossible to use WIM:\n' + self.error_msg)
Anderson Bravalheri0446cd52018-08-17 15:26:19 +010086
87 def get_all_active_connectivity_services(self):
tiernoed3e4d42019-10-21 15:31:27 +000088 raise SdnConnectorError('Impossible to use WIM:\n' + self.error_msg)