/srv/irclogs.ubuntu.com/2014/06/17/#launchpad-dev.txt

cjwatsonOne bot with queue admin on Ubuntu is quite enough thankyouverymuch and I'd like to try to keep privileges at least slightly least00:00
wgrantIt all becomes a lot simpler when scalingstack is everywhere, but we still need to make private archives non-hideous.00:00
wgrantIf possible.00:00
cjwatsonSo maybe we can still have somewhat different rules for public and private archives00:00
cjwatsonBut trying to have a common class of solution for private and devirt means either something that looks for any devirt archive, or adding an ArchivePermission to Ubuntu primary, or a special-case hack of some kind00:02
cjwatsonI'd managed to avoid adding a celebrity so far ...00:03
wgranthttps://docs.google.com/a/canonical.com/document/d/1F1wh8MxaxC-pSx5yMsFNpKFm5Mytsvn0Ugw2AIgQXzU/edit#00:08
cjwatsonI was just writing up something too, only in vim :P00:10
wgrantvim sadly isn't easily multi-user.00:10
wgrantAs much as I'd prefer it :)00:10
cjwatsonRight, just lots more pleasant to use when my mirror sync and backups are both running00:11
cjwatsonBut let's see00:11
wgrantHeh00:11
cjwatsonAny LiveFS can be built against a public archive.00:11
cjwatsonTo build a LiveFS against a private archive, the owners must match exactly.00:11
cjwatson => registrant is in common owner => registrant can see archive00:11
cjwatsonwas what I had so far00:11
cjwatsonLiveFS gains a require_virtualized column, set by admins as for PPAs.  (This is a bit more cumbersome, but lets us vet owners, and LiveFSBuild : LiveFS :: PPA builds : Archive, after a fashion.)00:11
wgrantRight, the require_virtualized thing is hideous, but hopefully ~temporary.00:12
wgrantThe private archive restriction is hopefully not terribly onerous.00:12
wgrantAnd can always be relaxed later, I suppose, if we run into real problems with PES.00:12
cjwatsonEven though that means the answers to the two problems are quite different rather than paralleling each other, I think that's actually sufficient given the existing LiveFS.requestBuild security00:13
wgrantHaving such a security-sensitive flag duplicated on another table is awful, but hopefully of limited life due to scalingstack taking over the world.00:14
wgrantSo I'm not as far against it as I was late last year, when everyone was "omg we can't do scalingstack for Ubuntu the world will be on fire"00:14
cjwatsonIt's sort of duplication but not entirely00:14
wgrantIt's another class of objects that we have to check for terrible security holes.00:15
wgrantIn terms of nagios checks for owners and such.00:15
cjwatsonYes, that's true, I should dig those up for comparison.  Are they in puppet?00:15
wgrantBut I think those two solutions are workable for now.00:15
wgrantI'm not sure if they actually exist in any particularly current fashion. There are RTs which suggest they might not actually work.00:16
cjwatsonYay.00:16
wgrantAnyway, sounds like this should be relatively easy to implement for you?00:19
wgrantJust need to ensure that the permission checks occur at dispatch time (as well?)00:19
cjwatsonTrying to rationalise this: a write permission check on the archive helps for privacy (buildd secret), but is wrong for virtness because really we're only reading from the archive and might well need to do a livefs build on devirt hardware for make-it-work reasons but with a virt PPA as a dependency.00:20
wgrantThough I guess the lack of retries means that's not such a huge issue, still.00:20
wgrantRight, that sounds reasonable.00:21
cjwatsonYes, I can do this tomorrow.  I have indeed got the message that it needs to be done at dispatch time. :-)  Worth doing at least lightweight checks (and probably all of this is sufficiently lightweight) in the model on requests as well.00:21
wgrantDefinitely.00:22
wgrantIt's all pretty lightweight now you're not doing a hideous query over every ArchivePermission evar.00:22
cjwatsonSSD DBs baby00:22
cjwatsonor maybe not00:22
wgrantMaybe before the heat death of the universe.00:22
cjwatsonI've done the rest of your review, so will just need to go round again and make sure I haven't broken the browser code, and make sure it still works end-to-end00:24
wgrantcjwatson: I'm just wondering how likely it is that people will shoot themselves in the foot by building some random PPA on a non-virt LiveFS.00:25
wgrants/themselvesk in the foot/us in the face/00:26
cjwatsonWell, the most important use case for building a LiveFS against a PPA is the CI engine stuff00:26
cjwatsonSecondarily, letting flavours run short-term experiments00:27
cjwatsonThe first is already all devirt, and perhaps we can just say that for the second you get to copy the LiveFS to a require_virtualized=True flavour00:27
wgrantYeah, exactly.00:27
wgrantThe only cases in which it really makes sense to do a nonvirt livefs on a virt PPA are narrow00:28
cjwatsonAnd then say that if LiveFS.require_virtualised is False then so must Archive.require_virtualised be.00:28
wgrantArch-indep only changes, and old Xen kernels00:28
wgrantAnd the latter is going to go away in a couple of weeks i hope.00:28
wgrantSo I think that restriction would be sensible.00:28
cjwatsonCertainly don't think it makes sense to design this around the Xen constraints00:28
cjwatsonKubuntu want to do PPA-based livefs experiments in the not too distant future00:29
wgrantYes, mostly documenting that so I can review IRC logs when in 18 months I wonder why we made stupid decisions.00:29
cjwatsonBut I think we can hold that off for a while00:29
cjwatsonThe CI engine stuff can't really wait00:29
wgrantCI is all non-virt00:30
wgrantPresumably Kubuntu would have to be too.00:30
cjwatsonExactly00:30
cjwatsonWell00:30
wgrantOr they'll be missing powerpc packages00:30
wgrantIn which case they wouldn't want powerpc ISOs anyway00:30
cjwatsonI'm not sure they care about powerpc for the experiments in question00:30
cjwatsonI haven't really analysed it but I suspect they could go all virt00:30
cjwatsonWhich would save us from having to deal with the devirt => Canonical restriction00:31
wgrantRight, but the only interesting case is a mixed one.00:31
wgrantAnd Kubuntu doesn't seem to require that.00:31
wgrantNor does CI00:31
wgrantAnd I can't think of any that do.00:31
cjwatsonThe ones I can think of are quick experiments - "what happens if I build an image based on this change", outside the CI system00:32
cjwatsonBut we could have people copy the livefs for that00:32
wgrantRight, and they already have to copy if they don't participate in the livefs owner.00:33
wgrantSo copies have to work well anyway.00:33
cjwatsonOr even just say that if you try to build a LiveFS against a virt archive then the build ends up virtualised too.00:33
wgrantAh, that would work, indeed.00:33
wgrantA LiveFS build is non-virt iff its LiveFS and Archive both are.00:33
cjwatsonIt's require_virtualized not require_devirtualized, so it can be implicit in that direction.00:34
wgrantI think those were the only thorny issues in the review, weren't they?00:38
cjwatsonThere were a few things I had to slightly guess at how to implement correctly, but nothing else was fundamentally hard, no.00:40
* cjwatson sleeps, thanks for the help00:42
wgrantNight, thanks for working this out00:43
wgrantI'll hopefully approve your UI branch today, now that we know model changes aren't required.00:43
wgrantstub: https://code.launchpad.net/~wgrant/launchpad/ppa-reset-2.0-db/+merge/223395 could use a review some time tomorrow, if you've time.13:13
stubwgrant: k13:14
wgrantOh, you're still alive.13:14
stubwgrant: what does a null vm_reset_protocol mean?13:18
wgrantstub: Same as null vm_host -- incomplete setup if the virtualized flag is set13:19
wgrantWe'll refuse to dispatch in that case, as we do with vm_host13:19
wgrantI could add a CHECK constraint to that effect, but then I'd have to fix all the tests that violate that constraint with vm_host already.13:19
wgrantAnd given this will hopefully all go away within 12 months...13:19
stubYup. and unlikely worth adding the constraints for that, if we can.13:20
wgrantstub: Thanks.13:21
=== Ursinha is now known as Ursinha-afk
=== Ursinha-afk is now known as Ursinha
=== Laney is now known as mrage
=== mrage is now known as Laney
cjwatsonwgrant: I believe I've implemented all the livefs stuff from last night (including a db-livefs change) and fixed up livefs-browser to match.  Just running an end-to-end build now.16:38
cjwatsonwgrant: But should be ready for re-review of the changes.16:38
cjwatsonwgrant: End-to-end build test still works.17:33
=== btulchin_ is now known as btulchinsky
wgrantcjwatson: Lovely, let me see.23:46

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