22# ex: set filetype=python:
33
44import os
5+ from dataclasses import dataclass
56
67from buildbot .plugins import steps , util , worker
78from buildbot .steps .shell import Test
89from constants import BUILDERS_INSTALL , OS_INFO
910from master_common import base_master_config
1011from utils import canStartBuild , envFromProperties , getScript , nextBuild , printEnv
1112
13+
1214cfg_dir = os .path .abspath (os .path .dirname (__file__ ))
1315
1416# Non autogen master. For now the directory structure is:
@@ -184,6 +186,23 @@ f_rpm_upgrade.addStep(getRpmUpgradeStep())
184186c ["workers" ] = []
185187c ["builders" ] = []
186188
189+
190+ @dataclass
191+ class LibVirtWorkerSpecs :
192+ name : str
193+ connection_url : str
194+ image_path : str
195+ password : str
196+
197+ def __init__ (self , platform : str , os_name : str , os_version : str ):
198+ host , url = config ["private" ]["libvirt_workers" ][platform ]
199+ name = f"{ host } -{ os_name } -{ os_version } -{ platform } " , url
200+ super ().__init__ (name = name ,
201+ connection_url = url ,
202+ image_path = f"/var/libvirt/images/{ name } " ,
203+ password = config ["private" ]["worker_pass" ]["libvirt" ])
204+
205+
187206# Add the workers and builds based on the configured install builders (see constants.py)
188207for builder_name in BUILDERS_INSTALL :
189208 # Parse builder name
@@ -193,24 +212,16 @@ for builder_name in BUILDERS_INSTALL:
193212
194213 os_info_name = os_name + "-" + os_version
195214
196- libvirt_worker_name = (
197- config ["private" ]["libvirt_workers" ][platform ][0 ]
198- + "-"
199- + os_name
200- + "-"
201- + os_version
202- + "-"
203- + platform
204- )
205- connection_url = config ["private" ]["libvirt_workers" ][platform ][1 ]
206- image_path = "/var/libvirt/images/" + libvirt_worker_name
215+ worker_specs = LibVirtWorkerSpecs (platform = platform ,
216+ os_name = os_name ,
217+ os_version = os_version )
207218
208219 c ["workers" ].append (
209220 worker .LibVirtWorker (
210- libvirt_worker_name ,
211- config [ "private" ][ "worker_pass" ][ "libvirt" ] ,
212- util .Connection (connection_url ),
213- image_path ,
221+ worker_specs . name ,
222+ worker_specs . password ,
223+ util .Connection (worker_specs . connection_url ),
224+ worker_specs . image_path ,
214225 build_wait_timeout = 0 ,
215226 max_builds = 1 ,
216227 )
@@ -236,7 +247,7 @@ for builder_name in BUILDERS_INSTALL:
236247 c ["builders" ].append (
237248 util .BuilderConfig (
238249 name = builder_name ,
239- workernames = libvirt_worker_name ,
250+ workernames = worker_specs . name ,
240251 tags = [os_name , builder_type , "install" , "kvm" ],
241252 collapseRequests = True ,
242253 nextBuild = nextBuild ,
@@ -260,7 +271,7 @@ for builder_name in BUILDERS_INSTALL:
260271 c ["builders" ].append (
261272 util .BuilderConfig (
262273 name = major_upgrade_name ,
263- workernames = libvirt_worker_name ,
274+ workernames = worker_specs . name ,
264275 tags = [os_name , builder_type , "upgrade" , "kvm" , "major" , "server" ],
265276 collapseRequests = True ,
266277 nextBuild = nextBuild ,
@@ -286,7 +297,7 @@ for builder_name in BUILDERS_INSTALL:
286297 c ["builders" ].append (
287298 util .BuilderConfig (
288299 name = minor_upgrade_name + "-all" ,
289- workernames = libvirt_worker_name ,
300+ workernames = worker_specs . name ,
290301 tags = [os_name , builder_type , "upgrade" , "kvm" , "minor" , "all" ],
291302 collapseRequests = True ,
292303 nextBuild = nextBuild ,
@@ -310,7 +321,7 @@ for builder_name in BUILDERS_INSTALL:
310321 c ["builders" ].append (
311322 util .BuilderConfig (
312323 name = minor_upgrade_name + "-columnstore" ,
313- workernames = libvirt_worker_name ,
324+ workernames = worker_specs . name ,
314325 tags = [os_name , builder_type , "upgrade" , "kvm" , "minor" , "columnstore" ],
315326 collapseRequests = True ,
316327 nextBuild = nextBuild ,
0 commit comments