@@ -74,6 +74,7 @@ def __init__(self, mode, name, test=None, params=None):
7474 self .mode = mode
7575 self .name = name
7676 self .params = params
77+ self .test = test
7778 self .param_key_prefix = '%s_%s' % (self .mode ,
7879 self .name )
7980
@@ -84,7 +85,7 @@ def __init__(self, mode, name, test=None, params=None):
8485 if test and params :
8586 self .set_install_params (test , params )
8687
87- def _set_test_dirs (self , test ):
88+ def _set_test_dirs (self , test , params = None ):
8889 """
8990 Save common test directories paths as class attributes
9091
@@ -107,8 +108,12 @@ def _set_test_dirs(self, test):
107108 * resultsdir = results/<job>/kvm.<other_variant_names>.build/results
108109 """
109110 self .test_bindir = test .bindir
110- self .test_workdir = test .workdir
111- self .test_builddir = test .builddir
111+ if params .get ("preserve_srcdir" ) == "yes" :
112+ self .test_workdir = os .path .join (test .bindir , "build" )
113+ self .test_builddir = os .path .join (test .bindir , "bin" )
114+ else :
115+ self .test_workdir = test .workdir
116+ self .test_builddir = test .builddir
112117 self .test_resultsdir = test .resultsdir
113118
114119 #
@@ -184,7 +189,7 @@ def set_install_params(self, test=None, params=None):
184189 """
185190 logging .info ("calling set install params" )
186191 if test is not None :
187- self ._set_test_dirs (test )
192+ self ._set_test_dirs (test , params )
188193
189194 if params is not None :
190195 self .params = params
@@ -324,6 +329,21 @@ def _install_phase_init_verify(self):
324329 """
325330 pass
326331
332+ def _install_phase_package (self ):
333+ """
334+ """
335+ pass
336+
337+ def _install_phase_package_verify (self ):
338+ '''
339+ Optional install phase for checking that software is packaged.
340+
341+ This should verify that the packages are actually created. Ideas for
342+ using this include:
343+ * checking /root/rpmbuild/RPMS'
344+ '''
345+ pass
346+
327347 def write_version_keyval (self , test ):
328348 try :
329349 version = self .get_version ()
@@ -380,7 +400,7 @@ def reload_modules_if_needed(self):
380400 self .reload_modules ()
381401
382402 def install (self , cleanup = True , download = True , prepare = True ,
383- build = True , install = True , init = True ):
403+ build = True , install = True , package = False , init = True ):
384404 """
385405 Performs the installation of the virtualization software
386406
@@ -404,6 +424,10 @@ def install(self, cleanup=True, download=True, prepare=True,
404424 self ._install_phase_build ()
405425 self ._install_phase_build_verify ()
406426
427+ if package :
428+ self ._install_phase_package ()
429+ self ._install_phase_package_verify ()
430+
407431 if install :
408432 self ._install_phase_install ()
409433 self ._install_phase_install_verify ()
@@ -482,6 +506,10 @@ def _install_phase_cleanup(self):
482506 packages_to_remove = " " .join (self .yum_pkgs )
483507 process .system ("yum remove -y %s" % packages_to_remove )
484508
509+ def _install_phase_package (self ):
510+ if self .build_helper is not None :
511+ self .build_helper .package ()
512+
485513 def _install_phase_install (self ):
486514 if self .yum_pkgs :
487515 os .chdir (self .test_workdir )
0 commit comments