From patchwork Thu Mar 15 21:24:10 2012 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Michael-Doyle Hudson X-Patchwork-Id: 7322 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 CD4EB23DEA for ; Thu, 15 Mar 2012 21:24:13 +0000 (UTC) Received: from mail-gy0-f180.google.com (mail-gy0-f180.google.com [209.85.160.180]) by fiordland.canonical.com (Postfix) with ESMTP id 76E42A1819B for ; Thu, 15 Mar 2012 21:24:13 +0000 (UTC) Received: by ghbz12 with SMTP id z12so4419229ghb.11 for ; Thu, 15 Mar 2012 14:24:13 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20120113; h=x-forwarded-to:x-forwarded-for:delivered-to:received-spf :content-type:mime-version:x-launchpad-project:x-launchpad-branch :x-launchpad-message-rationale:x-launchpad-branch-revision-number :x-launchpad-notification-type:to:from:subject:message-id:date :reply-to:sender:errors-to:precedence:x-generated-by :x-launchpad-hash:x-gm-message-state; bh=nSlz0o4CotALvjY0L22ZJH+iyLMKIplmE2HQrNfgGPM=; b=p2ocFTjCWHfEI09VGzRFoyzrCHunBLFetclOp7kFn4MxPiBMn77G7d7MlWHr6qgQen kT2Mmc5U4G0HRaJddb3+iqHw9EYMb8HLzt3l2R/MTZuMrdbo6HzHh8avMuJBAEzQmOgK lSSQvWWrDkHTd34y3RYTUR3YecSUNrd6H5BOFbrwHG5HpzYhM2d6OyUue6r7kW5JjnlE N3oRSAgaryweOGhGQlwoOsl3k4YixNe+1LQMohmC8kIoTG6cRzWaHTQtbeqPv6TisI7N ULtdV6pb/CmoWvco/bxnMSnoEiWp9JSKSjqytj+fnfizTkH2P6/lcCRoDvkRWOfRIopb YkXw== Received: by 10.50.159.198 with SMTP id xe6mr476407igb.74.1331846652788; Thu, 15 Mar 2012 14:24:12 -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.231.53.18 with SMTP id k18csp46845ibg; Thu, 15 Mar 2012 14:24:11 -0700 (PDT) Received: by 10.180.78.130 with SMTP id b2mr29985150wix.1.1331846650761; Thu, 15 Mar 2012 14:24:10 -0700 (PDT) Received: from indium.canonical.com (indium.canonical.com. [91.189.90.7]) by mx.google.com with ESMTPS id k28si3594429weq.103.2012.03.15.14.24.10 (version=TLSv1/SSLv3 cipher=OTHER); Thu, 15 Mar 2012 14:24:10 -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 1S8I9a-0000O8-5m for ; Thu, 15 Mar 2012 21:24:10 +0000 Received: from ackee.canonical.com (localhost [127.0.0.1]) by ackee.canonical.com (Postfix) with ESMTP id 1B2CCE0283 for ; Thu, 15 Mar 2012 21:24:10 +0000 (UTC) MIME-Version: 1.0 X-Launchpad-Project: lava-scheduler X-Launchpad-Branch: ~linaro-validation/lava-scheduler/trunk X-Launchpad-Message-Rationale: Subscriber X-Launchpad-Branch-Revision-Number: 154 X-Launchpad-Notification-Type: branch-revision To: Linaro Patch Tracker From: noreply@launchpad.net Subject: [Branch ~linaro-validation/lava-scheduler/trunk] Rev 154: * Display ValueErrors raised by from_json_and_user nicely to API Message-Id: <20120315212410.6208.36515.launchpad@ackee.canonical.com> Date: Thu, 15 Mar 2012 21:24:10 -0000 Reply-To: noreply@launchpad.net Sender: bounces@canonical.com Errors-To: bounces@canonical.com Precedence: bulk X-Generated-By: Launchpad (canonical.com); Revision="14946"; Instance="launchpad-lazr.conf" X-Launchpad-Hash: 719f918d31b2a4feae642c01842742f1f794d3e7 X-Gm-Message-State: ALoCoQn+5Cjs5lgw5dhnmfYHCUn+zRdOgAQmfG0nR4PLv+UfvGStyWRVm4LnbQtQtThDEE3R5xwu Merge authors: Michael Hudson-Doyle (mwhudson) Related merge proposals: https://code.launchpad.net/~mwhudson/lava-scheduler/private-job-tweaks/+merge/97556 proposed by: Michael Hudson-Doyle (mwhudson) review: Needs Fixing - Zygmunt Krynicki (zkrynicki) ------------------------------------------------------------ revno: 154 [merge] committer: Michael Hudson-Doyle branch nick: trunk timestamp: Fri 2012-03-16 10:22:30 +1300 message: * Display ValueErrors raised by from_json_and_user nicely to API users. * Allow submission to anonymous streams again. modified: doc/changes.rst lava_scheduler_app/api.py lava_scheduler_app/models.py lava_scheduler_app/tests.py setup.py --- lp:lava-scheduler https://code.launchpad.net/~linaro-validation/lava-scheduler/trunk You are subscribed to branch lp:lava-scheduler. To unsubscribe from this branch go to https://code.launchpad.net/~linaro-validation/lava-scheduler/trunk/+edit-subscription === modified file 'doc/changes.rst' --- doc/changes.rst 2012-03-13 21:26:49 +0000 +++ doc/changes.rst 2012-03-15 01:44:09 +0000 @@ -5,6 +5,10 @@ Version 0.12 (UNRELEASED) ========================= +* Two fixes around job privacy: + * Display ValueErrors raised by from_json_and_user nicely to API + users. + * Allow submission to anonymous streams again. .. _version_0_11: === modified file 'lava_scheduler_app/api.py' --- lava_scheduler_app/api.py 2012-01-25 02:42:58 +0000 +++ lava_scheduler_app/api.py 2012-03-15 01:34:13 +0000 @@ -28,7 +28,7 @@ job = TestJob.from_json_and_user(job_data, self.user) except JSONDecodeError as e: raise xmlrpclib.Fault(400, "Decoding JSON failed: %s." % e) - except JSONDataError as e: + except (JSONDataError, ValueError) as e: raise xmlrpclib.Fault(400, str(e)) except Device.DoesNotExist: raise xmlrpclib.Fault(404, "Specified device not found.") === modified file 'lava_scheduler_app/models.py' --- lava_scheduler_app/models.py 2012-03-09 01:46:30 +0000 +++ lava_scheduler_app/models.py 2012-03-15 20:44:39 +0000 @@ -290,12 +290,13 @@ bundle_stream = BundleStream.objects.get(pathname=stream) except BundleStream.DoesNotExist: raise ValueError("stream %s not found" % stream) - if not bundle_stream.is_owned_by(submitter): + if not bundle_stream.can_upload(submitter): raise ValueError( "you cannot submit to the stream %s" % stream) - user, group, is_public = (bundle_stream.user, - bundle_stream.group, - bundle_stream.is_public) + if not bundle_stream.is_anonymous: + user, group, is_public = (bundle_stream.user, + bundle_stream.group, + bundle_stream.is_public) tags = [] for tag_name in job_data.get('device_tags', []): === modified file 'lava_scheduler_app/tests.py' --- lava_scheduler_app/tests.py 2012-03-09 04:07:06 +0000 +++ lava_scheduler_app/tests.py 2012-03-15 01:41:32 +0000 @@ -246,6 +246,17 @@ job = TestJob.from_json_and_user(j, user) self.assertEqual(group, job.group) + def test_from_json_and_user_can_submit_to_anonymous(self): + user = self.factory.make_user() + anon_user = User.objects.get_or_create(username="anonymous-owner")[0] + b = BundleStream.objects.create( + slug='anonymous', is_anonymous=True, user=anon_user, + is_public=True) + b.save() + j = self.make_job_json_for_stream_name('/anonymous/anonymous/') + job = TestJob.from_json_and_user(j, user) + self.assertEqual(user, job.submitter) + def test_from_json_and_user_sets_is_public_from_bundlestream(self): group = Group.objects.create(name='group') user = self.factory.make_user() === modified file 'setup.py' --- setup.py 2012-03-13 20:50:18 +0000 +++ setup.py 2012-03-15 02:56:22 +0000 @@ -33,7 +33,7 @@ scheduler = lava_scheduler_app.extension:SchedulerExtension """, install_requires=[ - "django-restricted-resource", + "django-restricted-resource >= 0.2.7", "django-tables2 >= 0.9.4", "lava-dashboard", "lava-dispatcher >= 0.5.9",