From patchwork Wed Sep 7 02:08:13 2011 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Spring Zhang X-Patchwork-Id: 3894 Return-Path: X-Original-To: patchwork@peony.canonical.com Delivered-To: patchwork@peony.canonical.com Received: from fiordland.canonical.com (fiordland.canonical.com [91.189.94.145]) by peony.canonical.com (Postfix) with ESMTP id 84EA023E54 for ; Wed, 7 Sep 2011 02:08:14 +0000 (UTC) Received: from mail-fx0-f52.google.com (mail-fx0-f52.google.com [209.85.161.52]) by fiordland.canonical.com (Postfix) with ESMTP id 6AEC7A182BC for ; Wed, 7 Sep 2011 02:08:14 +0000 (UTC) Received: by fxd18 with SMTP id 18so230440fxd.11 for ; Tue, 06 Sep 2011 19:08:14 -0700 (PDT) Received: by 10.223.4.133 with SMTP id 5mr2839639far.81.1315361294206; Tue, 06 Sep 2011 19:08:14 -0700 (PDT) X-Forwarded-To: linaro-patchwork@canonical.com X-Forwarded-For: patch@linaro.org linaro-patchwork@canonical.com Delivered-To: patches@linaro.org Received: by 10.152.11.8 with SMTP id m8cs122495lab; Tue, 6 Sep 2011 19:08:13 -0700 (PDT) Received: by 10.227.7.25 with SMTP id b25mr1612181wbb.103.1315361293440; Tue, 06 Sep 2011 19:08:13 -0700 (PDT) Received: from indium.canonical.com (indium.canonical.com [91.189.90.7]) by mx.google.com with ESMTPS id b5si9828068wbh.140.2011.09.06.19.08.13 (version=TLSv1/SSLv3 cipher=OTHER); Tue, 06 Sep 2011 19:08:13 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of bounces@canonical.com designates 91.189.90.7 as permitted sender) client-ip=91.189.90.7; Authentication-Results: mx.google.com; spf=pass (google.com: best guess record for domain of bounces@canonical.com designates 91.189.90.7 as permitted sender) smtp.mail=bounces@canonical.com Received: from ackee.canonical.com ([91.189.89.26]) by indium.canonical.com with esmtp (Exim 4.71 #1 (Debian)) id 1R17Yj-0003Pj-2B for ; Wed, 07 Sep 2011 02:08:13 +0000 Received: from ackee.canonical.com (localhost [127.0.0.1]) by ackee.canonical.com (Postfix) with ESMTP id 03722E0030 for ; Wed, 7 Sep 2011 02:08:13 +0000 (UTC) MIME-Version: 1.0 X-Launchpad-Project: lava-dispatcher X-Launchpad-Branch: ~linaro-validation/lava-dispatcher/trunk X-Launchpad-Message-Rationale: Subscriber X-Launchpad-Branch-Revision-Number: 101 X-Launchpad-Notification-Type: branch-revision To: Linaro Patch Tracker From: noreply@launchpad.net Subject: [Branch ~linaro-validation/lava-dispatcher/trunk] Rev 101: fix bug 833246 push result even no getting test case results Message-Id: <20110907020813.13937.27268.launchpad@ackee.canonical.com> Date: Wed, 07 Sep 2011 02:08:13 -0000 Reply-To: noreply@launchpad.net Sender: bounces@canonical.com Errors-To: bounces@canonical.com Precedence: bulk X-Generated-By: Launchpad (canonical.com); Revision="13861"; Instance="initZopeless config overlay" X-Launchpad-Hash: b4add1b03f4a979affce5e7de866a595d0ff40ad Merge authors: Spring Zhang (qzhang) Related merge proposals: https://code.launchpad.net/~qzhang/lava-dispatcher/fix-833246/+merge/74190 proposed by: Spring Zhang (qzhang) review: Approve - Spring Zhang (qzhang) ------------------------------------------------------------ revno: 101 [merge] committer: Spring Zhang branch nick: fix-833246 timestamp: Wed 2011-09-07 10:06:38 +0800 message: fix bug 833246 push result even no getting test case results modified: lava_dispatcher/actions/launch_control.py lava_dispatcher/client.py --- lp:lava-dispatcher https://code.launchpad.net/~linaro-validation/lava-dispatcher/trunk You are subscribed to branch lp:lava-dispatcher. To unsubscribe from this branch go to https://code.launchpad.net/~linaro-validation/lava-dispatcher/trunk/+edit-subscription === modified file 'lava_dispatcher/actions/launch_control.py' --- lava_dispatcher/actions/launch_control.py 2011-09-02 03:24:06 +0000 +++ lava_dispatcher/actions/launch_control.py 2011-09-06 09:35:13 +0000 @@ -91,38 +91,37 @@ 'tar czf /tmp/lava_results.tgz -C /tmp/%s .' % LAVA_RESULT_DIR) master_ip = client.get_master_ip() - if master_ip == None: - raise NetworkError("Getting master image IP address failed") - # Set 80 as server port - client.run_cmd_master('python -m SimpleHTTPServer 80 &> /dev/null &') - time.sleep(3) - - result_tarball = "http://%s/lava_results.tgz" % master_ip - tarball_dir = mkdtemp(dir=LAVA_IMAGE_TMPDIR) - os.chmod(tarball_dir, 0755) - - # download test result with a retry mechanism - # set retry timeout to 2mins - now = time.time() - timeout = 120 - while time.time() < now+timeout: - try: - result_path = download(result_tarball, tarball_dir) - except: - if time.time() >= now+timeout: - raise - - client.run_cmd_master('kill %1') - - tar = tarfile.open(result_path) - for tarinfo in tar: - if os.path.splitext(tarinfo.name)[1] == ".bundle": - f = tar.extractfile(tarinfo) - content = f.read() - f.close() - self.all_bundles.append(json.loads(content)) - tar.close() - shutil.rmtree(tarball_dir) + if master_ip != None: + # Set 80 as server port + client.run_cmd_master('python -m SimpleHTTPServer 80 &> /dev/null &') + time.sleep(3) + + result_tarball = "http://%s/lava_results.tgz" % master_ip + tarball_dir = mkdtemp(dir=LAVA_IMAGE_TMPDIR) + os.chmod(tarball_dir, 0755) + + # download test result with a retry mechanism + # set retry timeout to 2mins + now = time.time() + timeout = 120 + while time.time() < now+timeout: + try: + result_path = download(result_tarball, tarball_dir) + except: + if time.time() >= now+timeout: + raise + + client.run_cmd_master('kill %1') + + tar = tarfile.open(result_path) + for tarinfo in tar: + if os.path.splitext(tarinfo.name)[1] == ".bundle": + f = tar.extractfile(tarinfo) + content = f.read() + f.close() + self.all_bundles.append(json.loads(content)) + tar.close() + shutil.rmtree(tarball_dir) #flush the serial log client.run_shell_command("") @@ -130,6 +129,12 @@ main_bundle = self.combine_bundles() self.context.test_data.add_seriallog( self.context.client.get_seriallog()) + # add submit_results failure info if no available network to get test + # case result + if master_ip == None: + err_msg = "Getting master image IP address failed, \ +no test case result retrived." + self.context.test_data.add_result('submit_results', 'fail', err_msg) main_bundle['test_runs'].append(self.context.test_data.get_test_run()) for test_run in main_bundle['test_runs']: attributes = test_run.get('attributes',{}) @@ -139,6 +144,9 @@ print >> self.context.oob_file, 'dashboard-put-result:', \ srv.put_ex(json_bundle, 'lava-dispatcher.bundle', stream) + if master_ip == None: + raise NetworkError(err_msg) + def combine_bundles(self): if not self.all_bundles: return { === modified file 'lava_dispatcher/client.py' --- lava_dispatcher/client.py 2011-09-06 02:22:12 +0000 +++ lava_dispatcher/client.py 2011-09-06 09:36:46 +0000 @@ -152,7 +152,7 @@ self.wait_network_up() #tty device uses minimal match, see pexpect wiki #pattern1 = ".*\n(\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3})" - pattern1 = "(\d+\d?\d?\.\d+\d?\d?\.\d+\d?\d?\.\d+\d?\d?)" + pattern1 = "(\d?\d?\d?\.\d?\d?\d?\.\d?\d?\d?\.\d?\d?\d?)" cmd = ("ifconfig %s | grep 'inet addr' | awk -F: '{print $2}' |" "awk '{print $1}'" % self.board.default_network_interface) self.proc.sendline(cmd)