| import sys, os, ConfigParser, popen2 |
import sys, os, ConfigParser, popen2 |
| import xml.parsers.expat |
import xml.parsers.expat |
| import md5, string |
import md5, string |
| |
from getopt import getopt |
| from ftplib import FTP |
from ftplib import FTP |
| from commands import getoutput |
from commands import getoutput |
| from shutil import copy, move |
from shutil import copy, move |
| from ClientForm import ParseResponse |
from ClientForm import ParseResponse |
| |
|
| |
|
| debug=0 |
debug=1 |
| clean=1 |
clean=1 |
| dont_build=0 |
dont_build=0 |
| verbose=1 |
verbose=1 |
| |
|
| |
configfile='gkb-host.cfg' |
| |
|
| |
opts,args=getopt(sys.argv[1:],"gkb",["config="]) |
| |
for opt, arg in opts: |
| |
if opt in ("-c","--config"): |
| |
configfile = arg |
| |
|
| # parse host-specific configuration information from gkb.cfg |
# parse host-specific configuration information from gkb.cfg |
| config = ConfigParser.ConfigParser() |
config = ConfigParser.ConfigParser() |
| config.readfp(open('gkb-host.cfg')) |
config.readfp(open(configfile)) |
| buildroot=config.get("options","buildroot") |
buildroot=config.get("options","buildroot") |
| host=config.get("options","host") |
host=config.get("options","host") |
| passwd=config.get("options","passwd") |
passwd=config.get("options","passwd") |
| makeopts=config.get("options","makeopts") |
makeopts=config.get("options","makeopts") |
| |
|
| # parse manager-related configuration from gkb-manager.cfg |
# parse manager-related configuration from gkb-manager.cfg |
| config.readfp(open('gkb-manager.cfg')) |
config.readfp(open('%s/gkb-manager.cfg' %buildroot)) |
| msite=config.get('options','msite') |
msite=config.get('options','msite') |
| |
uploaddir=config.get('options','uploaddir') |
| |
|
| # these values will likely stay fairly static across different builds |
# these values will likely stay fairly static across different builds |
| patchdir="%s/patches" % buildroot # full path to patch file dir |
patchdir="%s/patches" % buildroot # full path to patch file dir |
| |
|
| return err |
return err |
| |
|
| |
def mail(to,subject,body): |
| |
"""send a message to 'to' with subject 'subject' and body 'body'""" |
| |
log(" \_ running mail") |
| |
|
| |
p4obj = popen2.Popen4("mail -s \'%s\' %s" % (subject, to)) |
| |
|
| |
pin = p4obj.tochild |
| |
pouterr = p4obj.fromchild |
| |
|
| |
pin.write(body) |
| |
pin.close() |
| |
err = p4obj.wait() |
| |
|
| |
if err == None: |
| |
err = 0 |
| |
|
| |
log(" \_ exit code: %i" % err) |
| |
|
| |
return err |
| |
|
| def log(text,kinfo=0): |
def log(text,kinfo=0): |
| if kinfo: |
if kinfo: |
| printverbose(kinfo["name"] + " : " + text) |
printverbose(kinfo["name"] + " : " + text) |
| form["build"] = kinfo["name"] |
form["build"] = kinfo["name"] |
| form["version"] = version |
form["version"] = version |
| |
|
| form.add_file(open(file), "application/x-bzip2", os.path.basename(file)) |
#form.add_file(open(file), "application/x-bzip2", os.path.basename(file)) |
| |
runcmd("scp %s www.ppckernel.org:%s/%s/" % (os.path.basename(file),uploaddir,kinfo["name"])) |
| |
|
| # form.click() returns a urllib2.Request object |
# form.click() returns a urllib2.Request object |
| # (see HTMLForm.click.__doc__ if you don't have urllib2) |
# (see HTMLForm.click.__doc__ if you don't have urllib2) |
| print "GKB finished %s %s" % (today,endtime) |
print "GKB finished %s %s" % (today,endtime) |
| |
|
| # and finally, call the mainloop to execute |
# and finally, call the mainloop to execute |
| |
#mail("tmcnulty@ppckernel.org","test subject","test body") |
| main() |
main() |