/srv/irclogs.ubuntu.com/2013/05/02/#juju-dev.txt

wallyworld_AeroNotix: without looking closely at your code, it seems you've written an openstack client similar to goose00:01
AeroNotixwallyworld_: indeed, that's what I thought at a cursory look through goose00:01
wallyworld_you think you have features we don't support yet in goose?00:01
wallyworld_we wrote goose generically but with juju in mind00:02
AeroNotixI don't know, I can't make heads or tails of that launchpad site to tell the truth00:02
wallyworld_so it does what we need for juju but is usable as a separate lib00:02
wallyworld_i feel the same about github :-)00:02
AeroNotix:)00:02
wallyworld_how can i help with launchpad00:02
AeroNotixAnd I'm not certain what are "base" openstack modules00:03
AeroNotixI'm assuming CDN/Block/Compute are base00:03
AeroNotixobject store00:03
wallyworld_at the moment, compute, object store and limited image (glance) support, as well as identity (userpass, key pair)00:04
wallyworld_if you want the code, easiest to use bzr00:04
AeroNotixyeah I will grab the code now00:04
wallyworld_bzr branch lp:goose00:04
wallyworld_if you need help etc, just ping me00:05
AeroNotixwill do00:05
AeroNotixSo Goose is for your needs, are you open to it being extended beyond those and becoming a more comprehensive library?00:08
thumperwallyworld_: I'm surprised you didn't say "go get launchpad.net/goose" :-)00:08
thumperAeroNotix: I would assume yes, as long as it continues to meet our needs00:08
wallyworld_thumper: what can i say, i like bzr00:09
AeroNotixok sounds good00:09
thumperwallyworld_: me too :)00:09
wallyworld_AeroNotix: go for it :-)00:09
thumperhmm lunchtime00:09
wallyworld_AeroNotix: pun intended :-)00:09
AeroNotix:)00:09
=== wedgwood is now known as wedgwood_away
AeroNotixok it's quite late here but I'll check in tomorrow :)00:14
AeroNotixnight all00:14
* thumper heads to lunch00:23
=== thumper is now known as thumper-afk
=== thumper-afk is now known as thumper
Makyojoin #juju-gui02:40
MakyoYikes, too many windows at once.02:41
wallyworld_jam: hi, i have to go to my son's school concert (oh joy) so will miss the weekly meeting but i should be back in time for the standup06:14
=== thumper is now known as thumper-cooking
davecheneyQuoting fail06:49
davecheneyworkitems_text: Invalid work item format: "[TODO] Get Go 1.1 into Saucy."06:49
davecheneyOK06:49
=== tasdomas_afk is now known as tasdomas
=== tasdomas is now known as tasdomas_afk
=== tasdomas_afk is now known as tasdomas
rogpeppemramm, fwereade: keeps on chucking me out09:07
rogpeppei'll try one more time09:07
fwereadeblast, forgot appointment, bbiab09:56
=== ChanServ changed the topic of #juju-dev to: https://juju.ubuntu.com | On-call reviewer: dimitern | Bugs: 6 Critical, 66 High - https://bugs.launchpad.net/juju-core/
dimiternfwereade: when you're here, i have a question10:21
dimiternmgz: ping10:31
mgzdimitern: hey10:32
dimiternmgz: hey, it seems your branch reverting the raring workaround haven't landed yet10:32
dimiternmgz: does it mean that's still in the release?10:32
mgzyeah, was holding off on it till after release deliberately10:32
dimiternmgz: ah, ok10:33
mgzI didn't want to patch it back in late, felt more risky that leaving it till we do 1.10.110:33
mgzand the backports thing meant what went in on day 0 was less crucial10:33
dimiternmgz: ok, so we do have a workaround for raring in 1.10.0 then10:34
mgzand now the release has happened, that's not going to be hit10:34
mgz(unless you use a pre-release raring image, rather than the actual release)10:35
dimiternmgz: what do you mean?10:35
mgzthere' no upstart update pending when you start a 13.04 machine10:35
dimiternmgz: ah, they backed it out then10:36
mgzno, it's just that there's no *update*, it's in the image10:36
dimiternmgz: sorry, i still don't get it - the upstart issue we had, due to which the workaround was introduced - is it fixed or not?10:37
mgznot yet, but it's only triggered when apt-get upgrade will install a new upstart10:38
mgzthis isn't the case for the release images, they have the latest upstart10:38
dimiternmgz: ah, i see, we're good then10:38
mgzand before a new upstart release is SRUed, this bug will get fixed10:39
jammgz: standup?11:32
mgzjam: ta11:33
dimiternfwereade: ping11:38
* dimitern bbi3m11:44
fwereadedimitern, pong12:08
=== 92AAAI3TG is now known as ahasenack
dimiternfwereade: hey, can you take a look at this, to see if i'm heading in the right direction? http://paste.ubuntu.com/5625717/12:29
fwereadedimitern, sure12:29
fwereadedimitern, looks sane -- but you'll also, I think, want to be passing the charm in so you can extract the local endpoint of each relation and check that the new charm implements it12:31
fwereadedimitern, no extra asserts necessary there though, just an error return12:31
fwereadedimitern, from the ops POV it looks perfect as it is12:31
dimiternfwereade: well, that's a separate card, wasn't sure if i should mix them in the same branch?12:31
dimiternfwereade: but i guess the extra code for the endpoints checking is not much12:32
fwereadedimitern, I think they're the same task -- checking the relations are the same delivers no value without checking they're sane, while checking their sanity almost demands that we also assert sameness12:32
dimiternfwereade: ok then12:33
fwereadedimitern, but, hmm12:33
dimiternfwereade: should i exclude (new/all) peer relations from the generate ops?12:33
fwereadedimitern, exclude new ones -- just work against original ones12:33
dimiternfwereade: so as is it's ok - since the new ones won't be there until after setcharm succeeds12:34
fwereadedimitern, yeah, but there's something knocking at my brain12:34
fwereadedimitern, oh yeah! you want to check len(relations) against doc.RelationCount and return errRefresh or something (and handle that at the top level)12:35
dimiternfwereade: ah! yeah, good point12:35
dimiternfwereade: will do12:35
fwereadedimitern, so I'll leave it to your judgment re 2 CLs or 112:35
dimiternfwereade: ok, thanks12:36
fwereadedimitern, you might still have trouble testing that bit in isolation though12:36
dimiternfwereade: i already have one failing test (only one) - the one testing new peer relations.. so i'm still figuring out how to test this12:37
fwereadedimitern, yeah, bears some thinking about12:38
dimiternfwereade: btw, can you print out the itinerary + sprint info in 2 copies for saturday?12:39
fwereadedimitern, sure, np12:39
dimiternfwereade: cheers12:41
rogpeppefwereade: FWIW this was the document i originally wrote regarding upgrades. It has a footnote on major-version upgrades, but not much. http://paste.ubuntu.com/5625794/12:59
rogpeppefwereade: i think we'd want some agent to be responsible for waiting for all machines to indicate they're ready, and perform the actual process13:00
fwereaderogpeppe, yeah, but we also need to make sure that no units or machines are created i the meantime13:00
rogpeppefwereade: that's easy if we know that all agents have halted13:01
rogpeppefwereade: which is what i meant by "all machines to indicate they're ready"13:01
rogpeppefwereade: then we have a single lonely agent carrying out the appointed upgrade tasks13:01
fwereaderogpeppe, ok, I think it's actually a little harder than "easy" but I agree it's not the hardest thing we'll ever have to do13:02
rogpeppefwereade: i meant that, given that step that we've already agreed, making sure that no units or machines are created in the meantime falls out naturally.13:02
rogpeppefwereade: that does of course assume the clients communicate through the API13:03
fwereaderogpeppe, yeah, it's a bit hard t separate the two issues13:03
rogpeppefwereade: BTW one thing i don't see on the blueprints is the ability to dynamically change the agents running on an instance13:04
fwereaderogpeppe, jobs on a machine?13:05
rogpeppefwereade: yeah13:05
fwereaderogpeppe, that's something that feels like a bit of a can of worms that we don't strictly *need* at this stage, but I'll bear it in mind13:06
rogpeppefwereade: yes, i'm not sure about it, but it's something worth considering.13:06
rogpeppefwereade: the other significant thing with regart to major-version upgrades that i'm considering is how to do the actual mongo schema migration13:09
rogpeppefwereade: i'm wondering about building special upgrade binaries that know how to transition from one major version schema to another13:10
rogpeppefwereade: then the agent that's responsible for upgrading find the appropriate binary for the upgrade and runs it13:10
rogpeppefwereade: possibly running several in succession if upgrading across several major versions13:10
fwereaderogpeppe, not sure how that's any better than just making the first agent of the new version responsible for running whatever series of upgrade methods is appropriate and just available right there in state13:11
rogpeppefwereade: that assumes the agent knows how to upgrade from every version. i *think* it might be nicer to isolate the compatibility code from the main code13:13
fwereaderogpeppe, sounds like an awful lot of binaries to download and run, especially since the state-upgrade code is kinda going to have to be in state anyway, isn't it?13:14
rogpeppefwereade: i wasn't imagining it was13:15
rogpeppefwereade: i'd thought we'd have some specialised code which knows about the schemas for both versions and can run some mongo bulk change stuff.13:15
rogpeppefwereade: if the code is in state, then we're going to have loads of alternative versions of the same data structures in the state package indefinitely.13:17
rogpeppefwereade: but i take your point about multiple binaries13:18
rogpeppefwereade: perhaps put everything in state/upgrade13:19
rogpeppefwereade: although it's possibly about more than just mongo schemas, though i can't think of any good counter examples currently13:20
fwereaderogpeppe, I think that API versioning may be waiting to confuse us here13:26
fwereaderogpeppe, we'll see13:27
rogpeppefwereade: is there a particular problem scenario you have in mind there?13:28
fwereaderogpeppe, nothing specific -- just that managing two versions at the same makes me a little confused13:34
=== wedgwood_away is now known as wedgwood
rogpeppeha, new internet fix time delayed by another two days14:37
MakyoRebuilt my dev environment this morning, but I'm still getting panics around mongo when testing in trunk: http://pastebin.ubuntu.com/5626071/14:38
=== andreas__ is now known as ahasenack
dimiternrogpeppe: they're just messing with you now :)14:42
fwereadeMakyo, this remains somewhat baffling -- you can start and use an environment with `default-series: raring`, right?14:43
rogpeppeMakyo: are you using the mongo from tarball or from the PPA?14:44
Makyofwereade, will try that next.  rogpeppe, 2.2.4 from a PPA, looks like.14:44
rogpeppeMakyo: i recommend trying the tarball version and seeing if that makes a difference14:45
Makyorogpeppe, alright, fetching that.14:45
Makyofwereade, bootstrap succeeded, status shows agent-state: down  agent-state-info (started)  series: raring.  Will try again in a few.14:51
MakyoOh, though I haven't installed from this new env.  Let me do that again.14:51
fwereadeMakyo, yeah, the presence doesn't seem to be 100% reliable in the first few seconds, I think it settles down solidly after that14:53
fwereadeMakyo, regardless, that's looking very much like a working mongo14:53
fwereadeMakyo, can you check whether you have the same version at home?14:53
dimiternrogpeppe: reviewed both godeps CLs14:54
rogpeppedimitern: thanks!14:54
rogpeppedimitern: responded14:58
dimiternrogpeppe: my reasoning about the const usage is that you probably don't need the [1:] anyway - it'll print out a NL, which is not bad14:59
Makyofwereade, 2.2.4 on both bootstrap node and home.  I can try the tarball though15:00
rogpeppedimitern: i don't want an extra newline before the Usage line. call me anal if you like :-)15:00
dimiternrogpeppe: ok :) fair enough15:00
rogpeppedimitern: and the difference between var and const is minimal here really15:00
dimiternrogpeppe: LGTM then15:01
fwereadeMakyo, just for confirmation, can you try to run the tests on the machine you just started? I imagine it'll demonstrate the problem but it would be good to check15:01
rogpeppedimitern: cool. i'll add some notes to the usage info about the output format15:01
dimiternrogpeppe: yeah, that'll be helpful, thanks15:02
Makyofwereade, Okay, will report back.15:02
fwereadedimitern, hey, I think you fixed this?https://bugs.launchpad.net/juju-core/+bug/112213415:16
_mup_Bug #1122134: status must report machine provisioning errors <juju-core:New> <https://launchpad.net/bugs/1122134>15:16
dimiternfwereade: yeah, I did, I'll mark it appropriately15:17
fwereadedimitern, cool, thanks15:17
dimiternfwereade: i had to remove a uniter test case, because it violated the compatibility checks15:26
dimiternfwereade: renaming a relation in wp charm from "db" to "db2" and trying to upgrade15:26
fwereadedimitern, hmm, are you sure it wasn't the only thing covering some other case as well?15:27
dimiternfwereade: well, i'll propose in a bit, so you can see15:27
fwereadedimitern, cool, thanks15:27
dimiternhttps://codereview.appspot.com/908404515:30
dimiternfwereade, rogpeppe: ^^15:30
* dimitern bbiab15:31
Makyofwereade, Fewer failures, but still some in state.  http://pastebin.ubuntu.com/5626261/15:41
fwereadeMakyo, huh, very strange15:42
fwereadedimitern, reviewed, should be quite a simple change but the tests are a little more involved15:44
dimiternfwereade: thanks!15:45
fwereadedimitern, it's just rel.Endpoint(serviceName) for each relation that needs to be checked15:45
dimiternfwereade: and serviceName is s.doc.Name?15:46
fwereadedimitern, yeah15:46
dimiternfwereade: ok, will change15:46
dimiternfwereade: how about the tests?15:47
dimiternfwereade: do they look good, except that endpoints change?15:48
fwereadedimitern, well, I'd love to see a mechanism whereby we could pause txn execution just before it hapens, and hook in to fuck up the state and see how it reacts15:48
fwereadedimitern, but that's a bit out of scope here15:48
dimiternfwereade: yeah, just "a bit" :)15:49
fwereadedimitern, ;p15:49
* fwereade wants to dash off and work on another new thing now15:49
dimiternfwereade: i was thinking of adding more tests with changing relations, but as you said we cannot change state during a transaction like that15:50
fwereadedimitern, yeah, I don't think it's practical to test that behaviour via spray-and-pray15:52
dimiternfwereade: i spotted a follow-up though - adding more tests to upgrade-charm to handle incompatible upgrades15:52
fwereadedimitern, +10015:53
dimiternfwereade: will add a card then15:53
fwereadedimitern, cheers15:53
dimiternfwereade: how can I get a fresh s inside a service method without Refresh() ?16:05
dimiternfwereade: s = s.st.Service(s.doc.Name) ?16:05
dimiternfwereade: changing the method receiver like that seems wrong..16:06
mgzdimitern: fun branch for you to review if the upload ever finishes...16:08
dimiternmgz: sure16:08
mgzit's only like I'm touching every source file, what's the issue rietveld?16:08
mgzdimitern: up, 910404516:12
fwereadedimitern, yeah, that'd be fine16:12
mgzfwereade: ^you may also want to eyeball16:12
dimiternmgz: will look shortly16:13
fwereademgz, cheers16:13
dimiternfwereade: Assert: append(txn.DocExists, sameRelCount...), doesn't seem to work (txn.DocExists is an "ideal string" and sameRelCount := D{{"relationcount", s.doc.RelationCount}})16:13
fwereadedimitern, hmm, perhaps DocExists is implicit in any other field check?16:15
dimiternfwereade: so skip it?16:16
dimiternfwereade: yeah, it seems to work16:17
fwereadedimitern, cool16:18
=== andreas__ is now known as ahasenack
rogpeppefwereade: here's a sketch of how we might do major version upgrades: http://paste.ubuntu.com/5626471/16:51
rogpeppefwereade: there are actually some interesting interactions between upgrades and multitenancy that we need to discuss16:52
dimiternmgz: wow, that has to be the biggest diff ever! :)16:58
dimiternmgz: so how did we manage to go through packaging for the release without copyrights?17:01
dimiternfwereade: updated https://codereview.appspot.com/908404517:09
dimiternrogpeppe: you too perhaps wanna look? ^^17:09
rogpeppedimitern: looking17:09
dimiternmgz: interesting, how is this mojo bzr update-copyright acts so smart?17:13
dimiterns/acts/actually acting/17:13
dimiterna fine example why rietveld sucks for not having full diff preview :)17:17
mgzdimitern: it's pretty funny, isn't it :)17:17
dimiternmgz: LGTM17:19
dimiternmgz: when are you planing on landing this?17:19
mgznowish, though might wait till next week just so people can bikeshed it a bit17:20
rogpeppedimitern: replied17:21
dimiternrogpeppe: thanks!17:21
dimiternmgz: haven't heard of parkinson's law of triviality before :) lmao17:21
dimiternmgz: it would be a blast watching the yak shaving about it17:37
dimiternfwereade: ping17:39
=== ChanServ changed the topic of #juju-dev to: https://juju.ubuntu.com | On-call reviewer: - | Bugs: 6 Critical, 66 High - https://bugs.launchpad.net/juju-core/
=== tasdomas is now known as tasdomas_afk
rogpeppedimitern, fwereade: i'd be interested in your reaction to this straw man sketch on multitenancy: http://paste.ubuntu.com/5626707/18:08
rogpeppehazmat: ^18:08
hazmatrogpeppe, that's a strange definition of multi-tenancy18:09
rogpeppehazmat: perhaps so18:10
rogpeppehazmat: any definition i tried to make seemed to be pushing me in that direction though18:10
rogpeppehazmat: this was the definition i started with:18:10
rogpeppeWe want to alow several state instances to be served from the same machine or,18:10
rogpeppein a high-availability context, to be able to have an arbitrary n-m mapping18:10
rogpeppefrom server processes to machines that the server processes run on,18:10
rogpeppewith restrictions as deemed appropriate.18:10
rogpeppehazmat: this is my rough draft text for the blueprint: http://paste.ubuntu.com/5626724/18:12
hazmatrogpeppe, the common definition is a single api endpoint that knows how to isolate resources for clients. a separate endpoint per client per client might be  viable, but it scales poorly18:12
hazmatrogpeppe, goal we want to amortize the cost of a set of ha state servers over many tenants18:12
rogpeppehazmat: there are two state servers we're talking about here18:13
rogpeppehazmat: one is mongod18:13
rogpeppehazmat: the other is the juju API state server18:13
rogpeppehazmat: and then there's the matter of the environment management agents too18:13
rogpeppehazmat: the solution i'm thinking about does amortise the cost of the mongod servers18:14
hazmatrogpeppe, yes.. and we want a set of ha for all.. not a per process per tenant.18:14
hazmatimo18:14
rogpeppehazmat: i don't know that that's too bad18:14
rogpeppehazmat: it's much much better than one instance per client :-)18:14
rogpeppehazmat: and means environments are naturally isolated18:15
rogpeppehazmat: i'm sure we could easily have 500 or so API servers per instance18:15
dimiternrogpeppe: looks solid, if not a bit overcomplicated in places18:15
hazmatrogpeppe, so they each get a different port?18:16
rogpeppehazmat: i guess so18:17
hazmati'm skeptical, but it would be nicer to talk about in person.18:17
hazmatscaling O(n) tenants is going to be a problem for some use cases18:18
hazmatlike cloud ;-)18:18
ahasenackhm, the way the development in juju-core goes, bugs stay open even after they are merged20:18
ahasenackso I don't get a notification that a bug has been fixed already (the branch was merged),20:19
ahasenackbecause the bug status doesn't chnage20:19
ahasenackchange20:19
ahasenackcase in point: #1172895 which was blocking me20:19
_mup_Bug #1172895: relation-list incompatibility with pyjuju: -r <juju-core:Fix Committed by fwereade> <https://launchpad.net/bugs/1172895>20:19
ahasenackI marked it as "fix committed" just now, because I saw that the branch was merged20:19
ahasenacknote that the review request is still up in LP, because you guys use something else20:19
ahasenackif you are using something else for reviews, why not bite the bullet and use that same something else for bugs? If you link lp bugs to it (if supported), then the bug status will be good20:20
thumpermorning21:14
bigjoolsmorning23:10
thumperhi bigjools23:10
bigjoolswazzup big t23:10
thumperbigjools: not a lot23:16
thumperbigjools: doing some side hacking... in go23:16
thumperbigjools: a more useful logging package23:16
bigjools\o/23:17
thumperjust writing some more tests, then I'll push to LP23:17
thumpercalling it ...23:17
bigjoolswe spent some time looking at errors recently23:17
thumperwait for it23:17
thumpergolog23:17
bigjoolsand how we could improve them23:17
bigjoolsyour imagination is astounding :)23:17
thumperi know, right?23:17
thumperhas the standard ideas23:18
thumpermodules, variable levels, writers and formatters23:18
bigjoolsloggo would have been amusing23:18
thumperbigjools: there is still time...23:18
thumperI think I may well change it to that23:18
thumperI was going for consistency23:19
thumperbut amusing is good23:19
thumperand it still fits23:19
bigjools:)23:19
thumperbigjools: renamed23:23
bigjools\o/23:23
thumperbigjools: to be honest, I think jam suggested the same thing last night :)23:23
bigjoolshaha23:23
bigjoolsit sounds antipodean23:24

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