change run_plugin to run_callbacks and remove the modification for kojikamid.py

This commit is contained in:
Yuming Zhu 2017-05-18 16:36:57 +08:00 committed by Mike McLean
parent 222ed94e93
commit efc4c9bcff
3 changed files with 42 additions and 54 deletions

View file

@ -1415,13 +1415,13 @@ class BuildMavenTask(BaseBuildTask):
uploadpath = self.getUploadDir()
self.run_plugin('preSCMCheckout', scminfo=scm.get_info(), build_tag=build_tag)
self.run_callbacks('preSCMCheckout', scminfo=scm.get_info(), build_tag=build_tag)
# Check out sources from the SCM
sourcedir = scm.checkout(scmdir, self.session, uploadpath, logfile)
self.run_plugin("postSCMCheckout",
scminfo=scm.get_info(),
scratch=opts.get('scratch'),
srcdir=sourcedir)
self.run_callbacks("postSCMCheckout",
scminfo=scm.get_info(),
scratch=opts.get('scratch'),
srcdir=sourcedir)
# zip up pristine sources for auditing purposes
self._zip_dir(sourcedir, os.path.join(outputdir, 'scm-sources.zip'))
@ -1431,14 +1431,14 @@ class BuildMavenTask(BaseBuildTask):
patchlog = self.workdir + '/patches.log'
patch_scm = SCM(self.opts.get('patches'))
patch_scm.assert_allowed(self.options.allowed_scms)
self.run_plugin('preSCMCheckout', scminfo=patch_scm.get_info(), build_tag=build_tag)
self.run_callbacks('preSCMCheckout', scminfo=patch_scm.get_info(), build_tag=build_tag)
# never try to check out a common/ dir when checking out patches
patch_scm.use_common = False
patchcheckoutdir = patch_scm.checkout(patchdir, self.session, uploadpath, patchlog)
self.run_plugin("postSCMCheckout",
scminfo=patch_scm.get_info(),
scratch=opts.get('scratch'),
srcdir=patchcheckoutdir)
self.run_callbacks("postSCMCheckout",
scminfo=patch_scm.get_info(),
scratch=opts.get('scratch'),
srcdir=patchcheckoutdir)
self._zip_dir(patchcheckoutdir, os.path.join(outputdir, 'patches.zip'))
# Apply patches, if present
@ -1719,12 +1719,12 @@ class WrapperRPMTask(BaseBuildTask):
logfile = os.path.join(self.workdir, 'checkout.log')
scmdir = buildroot.rootdir() + '/tmp/scmroot'
koji.ensuredir(scmdir)
self.run_plugin('preSCMCheckout', scminfo=scm.get_info(), build_tag=build_tag)
self.run_callbacks('preSCMCheckout', scminfo=scm.get_info(), build_tag=build_tag)
specdir = scm.checkout(scmdir, self.session, self.getUploadDir(), logfile)
self.run_plugin("postSCMCheckout",
scminfo=scm.get_info(),
scratch=opts.get('scratch'),
srcdir=specdir)
self.run_callbacks("postSCMCheckout",
scminfo=scm.get_info(),
scratch=opts.get('scratch'),
srcdir=specdir)
spec_template = None
for path, dir, files in os.walk(specdir):
@ -2658,12 +2658,12 @@ class ImageTask(BaseTaskHandler):
scm = SCM(self.opts['ksurl'])
scm.assert_allowed(self.options.allowed_scms)
logfile = os.path.join(self.workdir, 'checkout.log')
self.run_plugin('preSCMCheckout', scminfo=scm.get_info(), build_tag=build_tag)
self.run_callbacks('preSCMCheckout', scminfo=scm.get_info(), build_tag=build_tag)
scmsrcdir = scm.checkout(scmdir, self.session, self.getUploadDir(), logfile)
self.run_plugin("postSCMCheckout",
scminfo=scm.get_info(),
scratch=self.opts.get('scratch'),
srcdir=scmsrcdir)
self.run_callbacks("postSCMCheckout",
scminfo=scm.get_info(),
scratch=self.opts.get('scratch'),
srcdir=scmsrcdir)
kspath = os.path.join(scmsrcdir, ksfile)
else:
kspath = self.localPath("work/%s" % ksfile)
@ -3276,13 +3276,13 @@ class OzImageTask(BaseTaskHandler):
scm = SCM(self.opts['ksurl'])
scm.assert_allowed(self.options.allowed_scms)
logfile = os.path.join(self.workdir, 'checkout-%s.log' % self.arch)
self.run_plugin('preSCMCheckout', scminfo=scm.get_info(), build_tag=build_tag)
self.run_callbacks('preSCMCheckout', scminfo=scm.get_info(), build_tag=build_tag)
scmsrcdir = scm.checkout(self.workdir, self.session,
self.getUploadDir(), logfile)
self.run_plugin("postSCMCheckout",
scminfo=scm.get_info(),
scratch=self.opts.get('scratch'),
srcdir=scmsrcdir)
self.run_callbacks("postSCMCheckout",
scminfo=scm.get_info(),
scratch=self.opts.get('scratch'),
srcdir=scmsrcdir)
kspath = os.path.join(scmsrcdir, os.path.basename(ksfile))
else:
tops = dict([(k, getattr(self.options, k)) for k in 'topurl','topdir'])
@ -4087,14 +4087,14 @@ class BuildIndirectionImageTask(OzImageTask):
if fileurl:
scm = SCM(fileurl)
scm.assert_allowed(self.options.allowed_scms)
self.run_plugin('preSCMCheckout', scminfo=scm.get_info(), build_tag=build_tag)
self.run_callbacks('preSCMCheckout', scminfo=scm.get_info(), build_tag=build_tag)
logfile = os.path.join(self.workdir, 'checkout.log')
scmsrcdir = scm.checkout(self.workdir, self.session,
self.getUploadDir(), logfile)
self.run_plugin("postSCMCheckout",
scminfo=scm.get_info(),
scratch=self.opts.get('scratch'),
srcdir=scmsrcdir)
self.run_callbacks("postSCMCheckout",
scminfo=scm.get_info(),
scratch=self.opts.get('scratch'),
srcdir=scmsrcdir)
final_path = os.path.join(scmsrcdir, os.path.basename(filepath))
else:
tops = dict([(k, getattr(self.options, k)) for k in 'topurl','topdir'])
@ -4436,13 +4436,13 @@ class BuildSRPMFromSCMTask(BaseBuildTask):
logfile = self.workdir + '/checkout.log'
uploadpath = self.getUploadDir()
self.run_plugin('preSCMCheckout', scminfo=scm.get_info(), build_tag=build_tag)
self.run_callbacks('preSCMCheckout', scminfo=scm.get_info(), build_tag=build_tag)
# Check out spec file, etc. from SCM
sourcedir = scm.checkout(scmdir, self.session, uploadpath, logfile)
self.run_plugin("postSCMCheckout",
scminfo=scm.get_info(),
scratch=self.opts.get('scratch'),
srcdir=sourcedir)
self.run_callbacks("postSCMCheckout",
scminfo=scm.get_info(),
scratch=self.opts.get('scratch'),
srcdir=sourcedir)
# chown the sourcedir and everything under it to the mockuser
# so we can build the srpm as non-root
uid = pwd.getpwnam(self.options.mockuser)[2]

View file

@ -383,7 +383,7 @@ class BaseTaskHandler(object):
return repo_info
def run_plugin(self, plugin, *args, **kwargs):
def run_callbacks(self, plugin, *args, **kwargs):
if 'taskinfo' not in kwargs:
try:
taskinfo = self.taskinfo

View file

@ -47,20 +47,19 @@ MANAGER_PORT = 7000
KOJIKAMID = True
## INSERT kojikamid dup
class fakemodule(object):
pass
# make parts of the above insert accessible as koji.X
#make parts of the above insert accessible as koji.X
koji = fakemodule()
koji.GenericError = GenericError
koji.BuildError = BuildError
class WindowsBuild(object):
LEADING_CHAR = re.compile('^[^A-Za-z_]')
VAR_CHARS = re.compile('[^A-Za-z0-9_]')
@ -137,7 +136,7 @@ class WindowsBuild(object):
self.logger.info('file %s exists', entry)
if errors:
raise BuildError('error validating build environment: %s' % \
', '.join(errors))
', '.join(errors))
def updateClam(self):
"""update ClamAV virus definitions"""
@ -319,7 +318,7 @@ class WindowsBuild(object):
# rpms don't have a md5sum in the fileinfo, but check it for everything else
if ('md5sum' in fileinfo) and (digest != fileinfo['md5sum']):
raise BuildError('md5 checksum validation failed for %s, %s (computed) != %s (provided)' % \
(destpath, digest, fileinfo['md5sum']))
(destpath, digest, fileinfo['md5sum']))
self.logger.info('Retrieved %s (%s bytes, md5: %s)', destpath, offset, digest)
def fetchBuildReqs(self):
@ -469,7 +468,7 @@ class WindowsBuild(object):
self.virusCheck(self.workdir)
if errors:
raise BuildError('error validating build output: %s' % \
', '.join(errors))
', '.join(errors))
def virusCheck(self, path):
"""ensure a path is virus free with ClamAV. path should be absolute"""
@ -500,7 +499,6 @@ class WindowsBuild(object):
self.expireBuildroot()
return self.gatherResults()
def run(cmd, chdir=None, fatal=False, log=True):
global logfd
output = ''
@ -530,7 +528,6 @@ def run(cmd, chdir=None, fatal=False, log=True):
raise BuildError(msg)
return ret, output
def find_net_info():
"""
Find the network gateway configured for this VM.
@ -559,7 +556,6 @@ def find_net_info():
gateway = None
return macaddr, gateway
def upload_file(server, prefix, path):
"""upload a single file to the vmd"""
logger = logging.getLogger('koji.vm')
@ -580,7 +576,6 @@ def upload_file(server, prefix, path):
server.verifyChecksum(path, digest, 'md5')
logger.info('Uploaded %s (%s bytes, md5: %s)', destpath, offset, digest)
def get_mgmt_server():
"""Get a ServerProxy object we can use to retrieve task info"""
logger = logging.getLogger('koji.vm')
@ -599,7 +594,6 @@ def get_mgmt_server():
logger.debug('found task-specific port %s', task_port)
return xmlrpclib.ServerProxy('http://%s:%s/' % (gateway, task_port), allow_none=True)
def get_options():
"""handle usage and parse options"""
usage = """%prog [options]
@ -609,12 +603,10 @@ def get_options():
parser = OptionParser(usage=usage)
parser.add_option('-d', '--debug', action='store_true', help='Log debug statements')
parser.add_option('-i', '--install', action='store_true', help='Install this daemon as a service', default=False)
parser.add_option('-u', '--uninstall', action='store_true',
help='Uninstall this daemon if it was installed previously as a service', default=False)
parser.add_option('-u', '--uninstall', action='store_true', help='Uninstall this daemon if it was installed previously as a service', default=False)
(options, args) = parser.parse_args()
return options
def setup_logging(opts):
global logfile, logfd
logger = logging.getLogger('koji.vm')
@ -629,13 +621,11 @@ def setup_logging(opts):
logger.addHandler(handler)
return handler
def log_local(msg):
tb = ''.join(traceback.format_exception(*sys.exc_info()))
sys.stderr.write('%s: %s\n' % (time.ctime(), msg))
sys.stderr.write(tb)
def stream_logs(server, handler, builds):
"""Stream logs incrementally to the server.
The global logfile will always be streamed.
@ -673,7 +663,6 @@ def stream_logs(server, handler, builds):
log_local('error uploading %s' % relpath)
time.sleep(1)
def fail(server, handler):
"""do the right thing when a build fails"""
global logfile, logfd
@ -700,7 +689,6 @@ def fail(server, handler):
logfile = '/tmp/build.log'
logfd = None
def main():
prog = os.path.basename(sys.argv[0])
opts = get_options()