# Copyright OpenSearch Contributors
# SPDX-License-Identifier: Apache-2.0
#
# The OpenSearch Contributors require contributions made to
# this file be licensed under the Apache-2.0 license or a
# compatible open source license.

from manifests.bundle_manifest import BundleManifest
from test_workflow.perf_test.perf_args import PerfArgs
from test_workflow.perf_test.perf_test_runner import PerfTestRunner
from test_workflow.perf_test.perf_test_runner_opensearch import PerfTestRunnerOpenSearch
from test_workflow.perf_test.perf_test_runner_opensearch_plugins import PerfTestRunnerOpenSearchPlugins


class PerfTestRunners:
    RUNNERS = {
        "OpenSearch": PerfTestRunnerOpenSearch,
        "OpenSearch Plugin": PerfTestRunnerOpenSearchPlugins
    }

    @classmethod
    def from_args(cls, args: PerfArgs, test_manifest: BundleManifest) -> PerfTestRunner:
        return cls.RUNNERS.get(args.component, PerfTestRunnerOpenSearchPlugins)(args, test_manifest)