summaryrefslogtreecommitdiffstats
path: root/nfvbench/factory.py
diff options
context:
space:
mode:
Diffstat (limited to 'nfvbench/factory.py')
-rw-r--r--nfvbench/factory.py46
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