diff options
author | ahothan <ahothan@cisco.com> | 2018-10-07 15:55:25 -0700 |
---|---|---|
committer | ahothan <ahothan@cisco.com> | 2018-10-08 10:44:31 -0700 |
commit | 391dcf76fefb747888a3411ae3b8df7b1ad26685 (patch) | |
tree | b823ae8a5f0e837bb285f53acb1502e0aad1bdf0 /nfvbench/factory.py | |
parent | 99260f95219301bb5c0b58921e793bcad6ec4990 (diff) |
2.0 beta NFVBENCH-91 Allow multi-chaining with separate edge networks
Includes complete refactoring of code
Beta for NFVbench 2.0
Change-Id: I2997f0fb7722d5ac626cd11a68692ae458c7676e
Signed-off-by: ahothan <ahothan@cisco.com>
Diffstat (limited to 'nfvbench/factory.py')
-rw-r--r-- | nfvbench/factory.py | 46 |
1 files changed, 4 insertions, 42 deletions
diff --git a/nfvbench/factory.py b/nfvbench/factory.py index 1461036..cad5a43 100644 --- a/nfvbench/factory.py +++ b/nfvbench/factory.py @@ -13,57 +13,19 @@ # License for the specific language governing permissions and limitations # under the License. # +"""Factory for creating worker and config plugin instances.""" -from chain_clients import EXTStageClient -from chain_clients import PVPStageClient -from chain_clients import PVVPStageClient -from chain_managers import EXTStatsManager -from chain_managers import PVPStatsManager -from chain_managers import PVVPStatsManager import chain_workers as workers from config_plugin import ConfigPlugin -from specs import ChainType -import tor_client class BasicFactory(object): - chain_classes = [ChainType.EXT, ChainType.PVP, ChainType.PVVP] - - chain_stats_classes = { - ChainType.EXT: EXTStatsManager, - ChainType.PVP: PVPStatsManager, - ChainType.PVVP: PVVPStatsManager, - } - - stage_clients_classes = { - ChainType.EXT: EXTStageClient, - ChainType.PVP: PVPStageClient, - ChainType.PVVP: PVVPStageClient, - } - - def get_stats_class(self, service_chain): - CLASS = self.chain_stats_classes.get(service_chain, None) - if CLASS is None: - raise Exception("Service chain '{}' not supported.".format(service_chain)) - - return CLASS - - def get_stage_class(self, service_chain): - CLASS = self.stage_clients_classes.get(service_chain, None) - if CLASS is None: - raise Exception("VM Client for chain '{}' not supported.".format(service_chain)) - - return CLASS + """Basic factory class to be overridden for advanced customization.""" def get_chain_worker(self, encaps, service_chain): + """Get a chain worker based on encaps and service chain type.""" return workers.BasicWorker - def get_tor_class(self, tor_type, no_tor_access): - if no_tor_access or not tor_type: - # if no TOR access is required, use basic no-op client - tor_type = 'BasicTORClient' - - return getattr(tor_client, tor_type) - def get_config_plugin_class(self): + """Get a config plugin.""" return ConfigPlugin |