1: fix error of getting local ip.
authorjingui.ren <jingui.ren@samsung.com>
Wed, 13 Feb 2019 06:47:23 +0000 (14:47 +0800)
committerjingui.ren <jingui.ren@samsung.com>
Wed, 13 Feb 2019 06:47:23 +0000 (14:47 +0800)
2: fix error of reading rpms path from file

Change-Id: I8b821aafc0f82caa5afb0b594c29de095ce0bd1d

tools/worker.py

index 5ce0aaf..f730607 100755 (executable)
@@ -16,6 +16,10 @@ class GbsBuild(object):
        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"
@@ -26,7 +30,7 @@ class GbsBuild(object):
                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)
@@ -39,25 +43,35 @@ class GbsBuild(object):
                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):