/srv/irclogs.ubuntu.com/2012/10/05/#launchpad-dev.txt

wgrantI just uploaded and downloaded an attachment named 'huh?'00:00
sinzuiwgrant, https://bugs.launchpad.net/ubuntu/+source/gnome-control-center/+bug/983116/+attachment/3077581/+files/HUD-to-do-what%3F-de.png00:00
_mup_Bug #983116: [Component: Keyboard] HUD is <Alt> not <Alt L> <amd64> <apport-bug> <hud> <precise> <gnome-control-center (Ubuntu):New> < https://launchpad.net/bugs/983116 >00:00
wgrantYeah, prod strips them00:00
wgrantCompare the exception on https://launchpad.net/huh%3F and https://launchpad.dev/huh%3F00:00
wgranthttps://dogfood.launchpad.net/huh%3F shows the correct behaviour00:01
wgrantqastaging is bad00:01
wgrantSo something on the prod/qas frontend configs is molesting our URLs; there's no LP bug here.00:01
sinzuiyes, jcsackett confirmed that qa and prodct beahve the same00:01
wgrantSo I would suggest replacing that MP with an RT00:02
wgrantWho knows what else the frontends are doing :/00:02
sinzuiand watch it for 5 years?00:02
wgrantNah, I'll coerce APAC webops to give me the configs next week and then give them a diff :)00:03
wgrantDiffs are a good way to accelerate RTs00:03
wgrantI am glad it is reproducible on qastaging; that makes things much easier.00:03
wgrantSince there's no squid or haproxy, AIUI00:04
StevenKsteven@undermined:~% wget -Sq https://qastaging.launchpad.net 2>&1 | grep X-Cache00:05
StevenK  X-Cache: HIT from arsenic.canonical.com00:05
wgrantOh00:05
wgrantSo *that's* what arsenic does...00:05
wgrants/Oh/Oh god why/00:05
* wgrant files the RT00:06
StevenKarsenic for staging too00:06
wgrantWe may need to do the same tweak we did to get the restricted librarian working00:07
wgrant    # nocanon per RT#42560, woe with LP's handling of eg %2B00:08
wgrant    ProxyPass / balancer://launchpad-librarian-cluster/ nocanon00:08
_mup_Bug #42560: /var is mounted over /var/run and /var/lock <sysvinit (Ubuntu):Invalid> < https://launchpad.net/bugs/42560 >00:08
wgrantThat shouldn't be it, since decoding the %3F is not a legal part of canonicalization, but it's possible.00:08
wgrantWhatever it is, either apache or squid is in the wrong here, not LP00:09
wgrantIt looks like it's probably our squid config, but I don't think I have a copy.00:12
* StevenK glares at DF01:05
StevenKWith no builder how am I supposed to QA? :-(01:06
=== matsubara is now known as matsubara-afk
wgrantStevenK: DB hacking or qa-meh01:25
StevenKYeah, qa-meh might be the way01:25
StevenKwgrant: I wonder if bug 834293 is fixed, we did a bunch of work on branch privacy01:50
_mup_Bug #834293: Product:+code-index times out <timeout> <Launchpad itself:Triaged> < https://launchpad.net/bugs/834293 >01:50
=== jtv1 is now known as jtv
wgrantStevenK: No02:07
wgrantWe made it better, but not much better02:07
* wgrant finds data02:07
wgranthttps://devpad.canonical.com/~lpqateam/ppr/lpnet/latest-monthly-pageids.html02:08
wgrant99% under 7.26s02:08
* StevenK made the mistake of searching OOPS on neem with 'AssertionError'02:11
StevenK1648 OOPSes later ...02:12
StevenKAlmost all of them appear to be AssertionError: Bug #504291: Store left in a disconnected state.02:13
wgrantStevenK: Why?02:13
_mup_Bug #504291: DisconnectionErrors (already disconnected) happening again <fastdowntime> <lp-foundations> <oops> <Launchpad itself:Incomplete by stub> <Storm:Invalid> < https://launchpad.net/bugs/504291 >02:13
wgrantWe know the precise circumstances around +edit-dependencies02:13
wgrantSo we don't need to grep for it02:13
StevenKI wasn't02:13
StevenKThat grep was for bug 80895002:13
_mup_Bug #808950: AssertionError: You exported name as an IChoice based on an SQLObjectVocabularyBase, you should use lazr.restful.fields.ReferenceChoice instead <api> <oops> <Launchpad itself:Triaged> < https://launchpad.net/bugs/808950 >02:13
wgrantAh02:14
StevenKBut doesn't seem to show up02:15
wgrantStevenK: Have you tried to reproduce it?02:23
StevenKI was looking for an OOPS as the first step.02:25
wgrant"AssertionError: You exported milestone_assignment as an IChoice based on an SQLObjectVocabularyBase, you should use lazr.restful.fields.ReferenceChoice instead." on Product:EntryResource:searchTasks02:26
wgrantis pretty clear02:26
wgrantAnd the fix is obvious02:26
wgrant(hint: grep the entire tree for the field name)02:28
StevenK        # The vocabulary should be HWBus; this is fixed in02:31
StevenK        # _schema_circular_imports to avoid circular imports.02:31
StevenKDidn't you kill that?02:31
wgrant_schema_circular_imports continues to live02:31
wgrantIts death will come only from lazr.restful's demise, or being split up into app-specific _schema_circular_importses.02:31
StevenKwgrant: Hmm, I don't get it. Since bugtasksearch has assignee as a Choice02:32
wgrantStevenK: Look at the other places that use it, and it should become clear02:32
StevenKHah. Assignee is a Reference02:33
StevenKIn bugtarget02:33
wgrantThat's fine.02:33
StevenKBut milestone_assignment isn't02:33
wgrantWe only care about milestone_assignment, don't we?02:33
StevenKWe shouldn't use copy_field, but use Reference?02:33
wgrantI'd look at how the other code that goes near that field uses it.02:34
StevenKwgrant: What other code? milestone_assignment turns up in two places.02:35
wgrantYou're on the right track.02:35
StevenKThat wasn't the answer I was expecting. :-)02:36
StevenKwgrant: Oh, it isn't used at all./02:37
StevenKsearch params never assigns it in __init__02:38
wgrantBingo02:38
StevenKShould I drop it entirely then?02:39
StevenKIt's obviously exported, but use of it will return 500s02:39
wgrantRight, it's probably in 1.0, but it's also likely that any attempt to use it crashes02:39
wgrantCheck that, and if it always crashes then obliterate it02:39
wgrantIf it doesn't always crash, think about it a big and then obliterate it anyway.02:39
wgrantbit02:40
StevenKHah02:41
StevenKSo it wants a milestone name ?02:41
wgrantI think it wants a milestone reference.02:41
wgrantGiven that it's using the Milestone vocab02:41
wgrantBut it's exported as a Choice, which means it wants an enum value02:42
wgrantWhich is why it crashes02:42
wgrantTry giving it references and names and see if there's anything that doesn't OOPS02:42
StevenKOOPS-a8ab241f5057264be5073a00263b04fb and OOPS-2c4ba13f50161b4d3ae38ccb9405930802:44
wgrantAh... ha...02:49
wgrantThe archeology of this is interesting02:49
wgrantIt actually dates back to batch edit functionality added in mid-2005.02:49
wgrantIn r186002:50
wgrantIf milestone_assignment was set in search parameters, it looks like it set the milestone of the found bug tasks.02:50
StevenKHAHAHA02:51
StevenKIt's only referenced in a doctest that has been disabled since 200502:51
wgrantAh, no, there was a separate batch assignment form on the search page, but it all used that same "search" schema02:51
StevenK# XXX Bjorn Tillenius 2005-08-01:02:51
StevenK# This test is disabled in wait for SQLObject being fixed to accept02:51
StevenK# both distinct=True and an orderBy argument.02:51
wgrantxx-bugattachments.txt is disabled?02:52
StevenKNo, just the last test of it02:52
wgrantAh02:52
StevenK  XXX print http(r"""02:52
StevenK  ... GET /bugs/fir...02:52
StevenKwgrant: What about name in that bug? Or is that long dead?02:53
wgrantStevenK: It may still exist, but the pageid is bad02:54
wgrantPerhaps search the apidoc for parameters named name02:54
wgrant'cause the method mentioned in the bug doesn't have onje02:54
wgrantAnd I don't think it ever did02:54
wgrantHuh02:55
wgrantThat code persisted until June 200602:55
wgrantBut I'm pretty sure the bulk edit form was long gone by then, or I'd remember.02:55
* StevenK ignores name02:57
StevenKwallyworld__: Read https://code.launchpad.net/~stevenk/launchpad/obliterate-milestone_assignment/+merge/128158 and weep04:02
* wallyworld__ reads04:06
wallyworld__there were some cobwebs there04:08
StevenKI think the cobwebs are covered in dust04:08
StevenKMaybe this branch will land now04:09
StevenKwallyworld__: Did you want to approve that MP, or are you afraid of the spiders that own said cobwebs?04:13
=== gary_poster is now known as gary_poster|away
wallyworld__StevenK: i'll aprove it, i just thought you wanted me to read it04:15
StevenKwallyworld__: The reading was first, yeah04:16
StevenKwallyworld__: I was curious about your reaction before you reviewed it04:16
wallyworld__StevenK: so, you saying that if the api is used now, as it, it oopses?04:16
wallyworld__as is04:16
StevenKwallyworld__: searchTasks() works fine. If you pass in milestone_assignment as one of your arguments, you will get an OOPS.04:17
wallyworld__ok, so no harm in removing it then04:17
StevenKRight, and I doubt any one is using it04:17
StevenKIf they are, they move from a 500 to what, 404 or a lazr.restful error?04:17
wallyworld__you may have won the prize for removing the oldest code04:18
wallyworld__40x for sure, not sure what04:18
wgrant40004:18
wgrantWell, actually, once the WADL updates launchpadlib will probably tell them they're wrong before even sending the request04:19
wgrantBut still, if they were relying on getting a 500 from that then they're pretty strange :)04:19
StevenKLet's find out in about an hour04:20
wgrantHm?04:20
wgrantWhy an hour?04:20
StevenKbuildbot and qas updating04:20
wgrantAh04:21
StevenKCurrent run has 15 minutes to go04:21
StevenKUnless wallyworld__ breaks it again04:21
wallyworld__it was only once :-(04:21
StevenKTwice04:21
wallyworld__once04:22
wallyworld__the other was suprious04:22
StevenKOnce this morning and the feature flag related changes a few days ago04:22
wallyworld__same old thing we'vebeen seeing lately04:22
wallyworld__i thought you meant today04:22
StevenKWhy did we add rf-setup-certs to LP?04:37
wallyworld__curtis said to04:37
StevenKI thought it was supposed to go into lp-dev-utils ?04:37
wallyworld__oops, maybe, let me check04:37
wallyworld__StevenK: the email said utilities04:37
StevenKHmmm04:38
wallyworld__i can move it04:38
StevenKwgrant: What do you think?04:38
StevenKI think it should move04:39
wallyworld__wgrant: StevenK: +expirable-bugs oops on a dsp. i can't see a link so it must have been via url hacking. i guess it should return a 404 instead of a 500? or did we want to implement expirable bugs on a dsp?04:40
StevenKwallyworld__: So the ZCML has +expirable-bugs on IBugTarget04:40
StevenKA DSP is a bug target, but it doesn't support it04:41
wallyworld__ah. but there's no link on the dsp bugs page04:41
StevenKCurtis and William are of the opinion that it should support it04:41
wallyworld__ok, will look at that, thanks04:41
wallyworld__and then we can add the link to the page04:41
wgrantwallyworld__: I'm not really of the opinion that it should support it04:43
StevenKwgrant: Do you think Colin's work is far enough long to close bug 556839?04:43
wgrantI'm of the opinion that it might be easier to fix it to support it than it is to remove the page04:43
wgrantGiven it's registered for IBugTarget04:43
wgrantStevenK: No04:43
StevenKWe don't use async by default?04:43
wgrantwallyworld__: I'd put the cert gen script in lp-dev-utils, I think04:43
wgrantAs StevenK suggests04:43
wallyworld__wgrant: why wouldn't we want to find expirable bugs on a dsp?04:44
wgrantwallyworld__: 'cause even Distribution:+expirable-bugs had only 136 hits last month04:44
StevenKHah04:45
StevenKAnd how many of those were Google?04:45
wallyworld__hmmm.04:45
wgrantMost were probably search engines, yeah04:45
wallyworld__maybe we want to redo the zcml then to stop lying?04:45
wgrant+expirable-bugs was mostly introduced to show what would happen when expiration was turned on04:45
wgrantwallyworld__: Right, it's possibly best to just register it on IProduct and IDistribution04:46
wgrantNot sure if IProductSeries or IDistroSeries or IProject have it linked04:46
wallyworld__ok, i'll check that out. i think that's the better solution04:46
wallyworld__rather than doing something no one will use04:47
wgrantIProductSeries and IDistroSeries have about as many hits as I'd expect from Google04:47
wgrantBut it's difficult to say04:47
wgrantwallyworld__: Right04:47
* wallyworld__ first gets out the hedge trimmer04:47
wgrantIn some situations like this it's a one-liner to fix it, so it's easier to just make it work04:47
wgrantBut this is not one of them04:48
wallyworld__yeah, dicking eith _getTargetJoinAndClause() for dsp would be messy04:48
StevenKwgrant: So, for bug 1050191, I agree with Curtis. If it was in +junk first, we don't care.04:49
_mup_Bug #1050191: allocate-revision-karma.py is too slow to complete <branches> <karma> <lp-code> <oops> <Launchpad itself:Triaged> < https://launchpad.net/bugs/1050191 >04:49
wgrantStevenK: It's on my chopping block for the next few days04:49
wgrantAs it's directly implicated in the BranchRevision drama04:49
StevenKRight04:49
StevenKI'll leave it alone then04:49
wgrantFixing it is probably a prereq, but in which way I'm not sure04:49
wgrantRight :)04:49
StevenKIs mawson back to crying about your queries?04:50
wgrantNo04:50
wgrantI have the data I need for now04:50
wgrantYou can molest mawson if you so desire04:50
StevenKI have no need to, I was curious.04:51
wgrantOh right, you qa-meh'd the PCJ thing04:51
StevenKI did, yes.04:51
StevenKBug 1031751 is interesting. I've seen a test fail in that way too04:51
_mup_Bug #1031751: KeyError: 'primary_vars'  raised setting branch for a project <oops> <Launchpad itself:Triaged> < https://launchpad.net/bugs/1031751 >04:51
wgrantRight, some of Orange's work triggered that a week or so ago04:52
wgrantAn unrelated cause, but similar exception04:52
StevenKYeah. I'm not sure about the cause for the bug04:52
StevenKAlmost at 45 revisions needing deployment04:54
wgrantStevenK: I suspect a branch was being created with a private team as the registrant04:54
wgrantStevenK: Perhaps registering a codeimport04:55
wgrantBut the OOPS is gone and the traceback severely truncated04:55
wgrantCare you try what I suggested on qastaging?04:55
StevenK+new-import with a private team?04:55
wgrantThat shouldn't set the registrant to the primary team, but it might04:56
wgrantSo it's worth a try04:56
StevenKPrivatePersonLinkageError: Cannot link person (name=rhinos, visibility=PRIVATE) to <CodeImport for ~rhinos/launchpad/test-import> (name=None)<br />04:57
wgrantIndeed04:59
wgrantI can't see an obvious way to set the registrant to a private team04:59
wgrantAnd you can't log in as a team any more, so that won't work...04:59
wgrantOh, hmmm05:00
wgrantThat OOPS would make it obvious :(05:02
lifeless.oOo.05:23
wgrantStevenK: Ah, it would have helped if I'd read the summary06:01
wgrantOOPS-07a7ee485f0ae949f3e103cc1db1c08206:02
StevenKNice.06:04
StevenKWhat was the cause, then?06:04
StevenKHmmmm, I think I get it. Creating an import for a series owned by a private team06:10
lifelessis sso glitching06:11
lifelessI'm having trouble logging into oops.c.c06:11
wgrantlifeless: It's working for me06:12
lifelessI'm getting The connection was reset06:13
lifelesson06:13
lifelesshttps://oops.canonical.com/openid/+return?janrain_nonce= ...06:13
wgrantStevenK:                     code_import = getUtility(ICodeImportSet).new(06:13
wgrant                        registrant=branch_owner,06:13
wgrantFrom ProductSeriesSetBranchView.update_action06:13
StevenKwgrant: So we should croak in validate if branch_owner is private?06:15
wgrantStevenK: No06:16
wgrantYou should specify the registrant06:16
StevenKOh, registrant=self.user ?06:16
wgrantYeah06:17
StevenKwgrant: But I thought the form was asking who should own the branch?06:17
StevenKSo isn't that ignoring them ...06:17
wgrantown != register06:17
wgrantSo owner != registrant06:17
wgrantI think you'll find that all the other branch creation callsites use the user as the registrant, with the provided owner as the owner.06:18
wgrantThat's certainly the intent.06:18
wgrantI suspect that Registry got confused when producing this view06:19
StevenKRight06:19
StevenKUgh, all of the tests for it are in doctests06:19
StevenK I chose SHA-512 because everyone knows it's 512 times more secure than SHA-1.06:31
StevenK— Rusty Russell06:31
wgrant:)06:31
StevenK        obj_info["primary_vars"])06:35
StevenK    KeyError: 'primary_vars'06:35
StevenKFantastic06:35
wgrantIn a test?06:36
wgrantI wouldn't have a test for this issue directly.06:36
wgrantRather amend an existing test to check that the registrant is the user, not the owner06:36
wgrantMaking the branch approximately -1/+206:37
StevenKBut I just wrote one :-(06:39
=== lifeless_ is now known as lifeless
wgrantStevenK: It may be useful for checking that the issue is really gone, but it's not something that's worth the test suite time and LoC to keep forever06:48
StevenKRaaaargh06:56
StevenKThis entire test uses the product.owner as the registrant as well as the logged in the user06:56
wgrantChange one of them to be the other, I guess06:57
StevenKChanging the whole test to make a driver and set them as the owner of the series has lots of ('Invalid value', InvalidValue("token u'person-name-100001' not found in vocabulary"))06:57
wgrantStevenK: Ensure that the user is a member of the team06:57
StevenKWhat team06:57
StevenK?06:57
wgrantYou can only create a branch owned by yourself or a team in which you participate06:58
wgrantSo the owner has to be a superteam of the user06:58
StevenKRight, large diff07:04
StevenKwgrant: Did you want to review?07:20
wgrantSure07:20
StevenKwgrant: https://code.launchpad.net/~stevenk/launchpad/no-private-registrant-setbranch/+merge/12817307:21
jpdsStevenK: Do you use ROT26 from time to time?07:26
StevenKROT26 is the alphabet?07:27
adeuringgood morning07:43
=== spm` is now known as spm_
=== spm_ is now known as spm
=== adeuring changed the topic of #launchpad-dev to: http://dev.launchpad.net/ | On call reviewer: adeuring | Firefighting: - | Critical bugs: ~300
rick_h_morning10:50
czajkowskirick_h_: hey there10:54
czajkowskiyou're on early10:54
rick_h_czajkowski: trying to get back on time10:55
czajkowskirick_h_: can you pop into #lp please if you're free?10:56
rick_h_adeuring: ping, can you help czajkowski debug a blueprint issue? https://oops.canonical.com/?oopsid=OOPS-51c8161b2e479d7ed62ba67c1000bd1911:00
* adeuring is looking11:00
rick_h_adeuring: looks like a user hit a forbidden setting it to embargoed or something.11:01
adeuring38326411:01
rick_h_adeuring: ? typo'd bug number or something?11:04
adeuringrick_h_: PEBCAK: I tend to forget to click into a wondow before typing something. I this I wanted to add a 2-fact auth number into a browser window, while irc IRC window still had the focus...11:06
rick_h_adeuring: ah gotcha cool11:06
rick_h_thanks for looking at the oops11:07
adeuringrick_h_: https://bugs.launchpad.net/launchpad/+bug/1062207/comments/111:41
_mup_Bug #1062207: Unable to raise blueprint <Launchpad itself:New> < https://launchpad.net/bugs/1062207 >11:41
=== gary_poster|away is now known as gary_poster
rick_h_abentley: I missed you yesterday about setting the field value = PUBLIC13:22
rick_h_abentley: that was my doing when I setup the UI because I needed to set a value to the form field so that choicepicker stuff would pick it up13:22
rick_h_now that the field exists, model sets, etc it can probably just go away13:22
deryckadeuring, thanks for the review.  Agree on both counts.  We can hold the individual adapters until after alpha though, I think.13:22
adeuringderyck: right13:23
abentleyrick_h_: I've removed it, and there seem to be no ill effects.13:23
rick_h_abentley: right13:23
rick_h_and the IProductSet checks were because there were tests that hit that View that weren't of that interface and weren't getting information_type added onto it13:23
rick_h_abentley: I had talked to deryck about that one when I thit it13:24
abentleyrick_h_: Strange.  We don't seem to have any tests like that now.13:24
rick_h_abentley: it was something I hit. I had a chat with deryck about it asking if there was a better way than the interface checks13:25
rick_h_abentley: ProjectGroup perhaps gets hit in there?13:26
abentleyrick_h_: I don't understand.13:26
rick_h_abentley: I'll bring it up on the call in a sec13:28
=== bac changed the topic of #launchpad-dev to: http://dev.launchpad.net/ | On call reviewer: adeuring, bac | Firefighting: - | Critical bugs: ~300
=== matsubara-afk is now known as matsubara
abentleyAfter 3 years, I think I'm starting to understand buildbot's waterfall display.14:06
jelmerabentley: lol14:13
abentleyjelmer: It's funny 'cause it's true.14:14
=== benji___ is now known as benji
* deryck switches work locations, back online shortly14:39
sinzuiadeuring, bac, abentley: do either of you have time to review https://code.launchpad.net/~sinzui/launchpad/contact-new-maintainer/+merge/12827315:10
adeuringsinzui: i'll look15:10
adeuringsinzui: if the maintainer is a single person, not a team, user_address in LicenseNotification.send(), while it is a list of strings if the maintainer is a team. shouldn't a one-element list be used for "person is maintainer" case too?15:24
adeuringsinzui: never mind, i see now taht a single address worked before15:26
sinzuiadeuring, indeed that is confusing. I had to read the code of our send mail helper to see that it would work15:27
adeuringsinzui: right, I an often a bit worried when a function(method argument can have different types. ANyway, r=me15:29
sinzuithank you adeuring15:29
rick_h_adeuring: branch for you if you get a sec, I noted a 'known issue' for the backend stuff that needs updating will be coming in a second branch. https://code.launchpad.net/~rharding/launchpad/edit_product_info_type/+merge/12808115:36
adeuringrick_h_: I'll look15:36
abentleyadeuring: Do we have an equivalent for get_specification_privacy_filter that works for product listings?15:36
adeuringabentley: not yet...15:37
adeuringrick_h_: r=me16:01
rick_h_adeuring: ty much16:07
deryckrick_h_, abentley -- I'm going to have to leave here shortly, a little earlier than expected.16:56
deryckrick_h_, abentley -- but I'll obviously be around tonight and tomorrow as I finish tests and get my last branch landed.16:56
rick_h_deryck: rgr17:20
abentleyrick_h_: I'm having trouble with a DB query-- getting duplicate results back.  Can you have a look at it with me?19:34
rick_h_abentley: sure thing19:34
abentleyrick_h_: let's hangout19:35
rick_h_abentley: rgr19:35
rick_h_abentley or bac if you're still around. Would appreciate a review of https://code.launchpad.net/~rharding/launchpad/store_edit_product_info_type/+merge/12828819:59
abentleyrick_h_: looking.19:59
rick_h_abentley: ty much19:59
abentleyrick_h_: Where is _setLicense being invoked?20:04
rick_h_abentley: it's set by the ProductEditView when all the fields are updated.20:05
rick_h_abentley: there's an assumption there because changing the information_type changes the license I guess...20:05
abentleyrick_h_: I think this change leaves a hole in the validation, because it allows information_type to change without setLicense being invoked.20:06
rick_h_abentley: yea, right20:06
abentleyrick_h_: Can we do setLicense first?  Or add the subscription in _set_information_type?20:07
rick_h_abentley: thinking, really hate to call setLicense from set_information_type20:09
abentleyrick_h_: Not set_license, but adding the subscription.20:10
rick_h_so maybe the best thing is to try to pull out the block that does the commerical sub generation and share it between teh two20:10
rick_h_what about a check in set_information_type that if the information_type is EMBARGOED/PROPRIETARY it sets the license manually there, overrides so that it makes sure it's getting the OTHER_PROPRIETARY value20:12
abentleyrick_h_: That would make sense.  Either the license or the information_type could be seen as proprietary intent.20:12
rick_h_yea, it's just more a functino of license so trying to think of a good way to keep it there20:12
abentleyrick_h_: r16102 provides make_product_form which should simplify your code.20:12
rick_h_the root issue is you can set the information type, and the license might not kick in.20:12
rick_h_abentley: cool, thanks for the heads up on that.20:13
rick_h_abentley: but can the license field ever not be supplied? It's a required field of data20:14
abentleyrick_h_: The view code should never be responsible for the sanity of the data.  Especially given we have a web service API.20:15
rick_h_abentley: yea, sorry I thought it was required in the model via the validate method, but that's just worried about resetting the license review20:16
abentleyrick_h_: So, I think the subscription is the key thing.  The license doesn't matter for information types.  A product could have an open source license, but not be announced yet.  Which is fine, as long as they're paying for the right to secrecy.20:21
rick_h_abentley: yea, so I'll pull that out into a new create_complimentary_subscription method and call from both places. I need to make sure it'll be safe to run twice20:22
rick_h_since it could get called via both the license setter and the information type setter20:22
abentleyrick_h_: Sounds good.  We seem to be calling such methods "ensure_FOO", rather than create_ or make_.20:23
rick_h_abentley: not sure ensure fits here like it does fixing policies20:25
rick_h_it's just creating an initial compl. commercial sub20:25
abentleyrick_h_: It's like it in the sense that it doesn't try to create things that already exist.20:28
rick_h_ok, fits my head strange but I can buy in :) Pushed an update to the MP when it processes20:32
rick_h_bah, I need to update the test though to verify the subscription exists as well20:33
abentleyrick_h_: You don't need line 116 because it duplicates line 148.20:37
rick_h_abentley: ah true thanks.20:38
abentleyrick_h_: I would do http://pastebin.ubuntu.com/1262684/ but I believe your code's equivalent.20:41
rick_h_abentley: thanks for the suggestino20:43
abentleyrick_h_: r=me either way, but I'm surprised you don't have to change the view in order to solve the bug.20:45
rick_h_abentley: the view was in the first branch to get the field to show up20:46
rick_h_abentley: it's listed as a pre-req to this MP20:46
abentleyrick_h_: Gotcha.20:46
rick_h_thanks for the late day review abentley20:47
abentleyrick_h_: np20:47
abentleyrick_h_: still before my EOD.20:47
rick_h_still, late Friday bonus reviews yay ...not :)20:48
abentleyrick_h_: So thanks for the advice on debugging the privacy filter.  It turned out that the And() needed to be in a sub-select, because that Product._information_type == InformationType.PUBLIC evaluates true for most rows.20:54
rick_h_abentley: cool, glad it worked out. Is that grantee thing still an issue or was that nothing?21:00
abentleyrick_h_: The grantee thing was not really part of it.  It was just generating rows where AccessPolicyGrantFlat.grantee_id != TeamParticipation.teamID but Product._information_type == PUBLIC, so such rows were being yielded in the result.21:03
=== bac changed the topic of #launchpad-dev to: http://dev.launchpad.net/ | On call reviewer: - | Firefighting: - | Critical bugs: ~300

Generated by irclog2html.py 2.7 by Marius Gedminas - find it at mg.pov.lt!