-
Notifications
You must be signed in to change notification settings - Fork 27
/
Copy pathextraConfigRunner.py
66 lines (61 loc) · 2.95 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
63
64
65
66
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 extraConfigDpuFirmware import ExtraConfigDpuFirmware
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
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,
"dpu_firmware": ExtraConfigDpuFirmware,
}
class ExtraConfigRunner:
def __init__(self, cc: ClustersConfig):
self._cc = cc
def run(self, to_run: ExtraConfigArgs, futures: dict[str, Future[Optional[host.Result]]]) -> None:
if to_run.name not in 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}")
extra_config[to_run.name](self._cc, to_run, futures)