errorRule = re.compile(r"some packages failed to be built")
ips = ['109.123.100.182','109.123.100.139','109.123.100.72']
cpus = [8,4,4]
+ def _getLocalIp(self):
+ s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
+ s.connect(('109.123.111.170', 80))
+ return s.getsockname()[0]
def __init__(self,packageName, id):
super(GbsBuild, self).__init__()
self.sourcePath = "/home/scm/renjg/workspace"
self.packageName = packageName
self.threadId = id
self.result = "/home/scm/GBS-ROOT-%d/local/results" % id
- self.localip = socket.gethostbyname(socket.gethostname())
+ self.localip = self._getLocalIp()
def build(self):
os.system("cd %s" % (self.sourcePath))
os.system("mkdir -p %s" % self.logPath)
return "Success"
def syncResult(self):
buildFiles = []
- with open(self.result, "r") as f:
- buildFiles.append(f.readline)
- os.system("rm -rf %s" % self.result)
+ try:
+ with open(self.result, "r") as f:
+ line = f.readline()[:-1]
+ while line:
+ buildFiles.append(line)
+ line = f.readline()[:-1]
+ except IOError as em:
+ print em
+
if not buildFiles:
return
for ip, cpunumber in zip(GbsBuild.ips, GbsBuild.cpus):
- if ip == self.localip:
+ print str(ip)+" "+str(self.localip)
+ if str(ip) == str(self.localip):
for i in xrange(cpunumber):
+ print self.threadId
if i == self.threadId:
continue
else:
print "copy to %s GBS-ROOT-%d" % (ip, i)
- for file in buildFiles:
- os.popen("cp %s /home/scm/GBS-ROOT-%d/local/repos/unified_standard/armv7l/RPMS/" % (file, i))
+ for f in buildFiles:
+ os.popen("cp %s /home/scm/GBS-ROOT-%d/local/repos/unified_standard/armv7l/RPMS/" % (f, i))
else:
for i in xrange(cpunumber):
- print "copy to %s GBS-ROOT-%d" % (ip, i)
- for file in buildFiles:
- os.popen("scp %s samsung@%s:/home/scm/GBS-ROOT-%d/local/repos/unified_standard/armv7l/RPMS/" % (file, ip, i))
+ print "scp to %s GBS-ROOT-%d" % (ip, i)
+ for f in buildFiles:
+ os.popen("scp %s scm@%s:/home/scm/GBS-ROOT-%d/local/repos/unified_standard/armv7l/RPMS/" % (f, ip, i))
+
+ os.system("rm -rf %s" % self.result)
class Consumer(Process):
def __init__(self, threadId, partition = 0):