forked from bn222/cluster-deployment-automation
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathextraConfigRunner.py
62 lines (59 loc) · 3.07 KB
/
extraConfigRunner.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
from extraConfigBFB import ExtraConfigBFB, ExtraConfigSwitchNicMode
from extraConfigSriov import ExtraConfigSriov, ExtraConfigSriovSubscription, ExtraConfigSriovOvSHWOL, ExtraConfigSriovOvSHWOL_NewAPI
from extraConfigDpuTenant import ExtraConfigDpuTenantMC, ExtraConfigDpuTenant, ExtraConfigDpuTenant_NewAPI
from extraConfigDpuInfra import ExtraConfigDpuInfra, ExtraConfigDpuInfra_NewAPI
from extraConfigOvnK import ExtraConfigOvnK
from extraConfigCustomOvn import ExtraConfigCustomOvn
from extraConfigImageRegistry import ExtraConfigImageRegistry
from extraConfigMastersSchedulable import ExtraConfigMastersSchedulable
from extraConfigMonitoring import ExtraConfigMonitoring
from extraConfigCNO import ExtraConfigCNO
from extraConfigRT import ExtraConfigRT
from extraConfigDualStack import ExtraConfigDualStack
from extraConfigCX import ExtraConfigCX
from extraConfigMicroshift import ExtraConfigMicroshift
from extraConfigRhSubscription import ExtraConfigRhSubscription
from extraConfigDpu import ExtraConfigDpu, ExtraConfigDpuHost
from clustersConfig import ClustersConfig
from clustersConfig import ExtraConfigArgs
from concurrent.futures import Future
from typing import Callable, Optional
from logger import logger
import sys
import host
class ExtraConfigRunner:
def __init__(self, cc: ClustersConfig):
self._cc = cc
self._extra_config: dict[str, Callable[[ClustersConfig, ExtraConfigArgs, dict[str, Future[Optional[host.Result]]]], None]] = {
"bf_bfb_image": ExtraConfigBFB,
"switch_to_nic_mode": ExtraConfigSwitchNicMode,
"sriov_network_operator": ExtraConfigSriov,
"sriov_network_operator_subscription": ExtraConfigSriovSubscription,
"sriov_ovs_hwol": ExtraConfigSriovOvSHWOL,
"sriov_ovs_hwol_new_api": ExtraConfigSriovOvSHWOL_NewAPI,
"dpu_infra": ExtraConfigDpuInfra,
"dpu_infra_new_api": ExtraConfigDpuInfra_NewAPI,
"dpu_tenant_mc": ExtraConfigDpuTenantMC,
"dpu_tenant": ExtraConfigDpuTenant,
"dpu_tenant_new_api": ExtraConfigDpuTenant_NewAPI,
"ovnk8s": ExtraConfigOvnK,
"ovn_custom": ExtraConfigCustomOvn,
"image_registry": ExtraConfigImageRegistry,
"cno": ExtraConfigCNO,
"rt": ExtraConfigRT,
"dualstack": ExtraConfigDualStack,
"cx_firmware": ExtraConfigCX,
"microshift": ExtraConfigMicroshift,
"masters_schedulable": ExtraConfigMastersSchedulable,
"monitoring_config": ExtraConfigMonitoring,
"rh_subscription": ExtraConfigRhSubscription,
"dpu_operator_host": ExtraConfigDpuHost,
"dpu_operator_dpu": ExtraConfigDpu,
}
def run(self, to_run: ExtraConfigArgs, futures: dict[str, Future[Optional[host.Result]]]) -> None:
if to_run.name not in self._extra_config:
logger.info(f"{to_run.name} is not an extra config")
sys.exit(-1)
else:
logger.info(f"running extra config {to_run.name}")
self._extra_config[to_run.name](self._cc, to_run, futures)