/srv/irclogs.ubuntu.com/2015/08/21/#juju-dev.txt

menn0thumper, waigani: I just did a "juju destroy-environment local --yes  --force" to 2 env JES both of which had new LXC containers coming up and the containers were left behind01:25
menn0known limitation until the new env descruction stuff happens?01:26
waiganihmmm...01:26
thumpermenn0: known...01:26
waiganimenn0: thanks for the heads up, I'll add it to my things to manually test01:26
thumpermenn0: I can explain...01:26
thumpernot surprising01:26
thumperwhich is why we want to tell people to use system destroy01:27
thumperand environment destroy01:27
thumpernot destroy-environment01:27
menn0cool01:27
menn0just making sure it was a known thing01:27
thumperI'll explain when I'm not shoveling food in my mouth01:28
menn0I can pretty much guess where the problem is so no rush01:29
menn0thumper: i thought I just finished the state pool stuff but it seems i've made the state server panicky01:42
menn0thumper: I think I know why though01:42
thumpermenn0: did you want to hop on a call to hear why destroy-environment --force is evil?01:49
menn0thumper: sure01:50
thumpermenn0, waigani: https://plus.google.com/hangouts/_/canonical.com/evil01:50
waiganithumper: http://reviews.vapour.ws/r/2250/, cheers02:11
sinzuithumper: "destroy-environment --force" is  eveil  because it circumvents blocks, leaves resources behind, and users report bugs that juju did exactly as they told it to do?02:15
thumperfor JES it is evil because it doesn't contact the api server, and just destroys the system environment, leaving all hosted environments running but headless02:15
* thumper goes to make a coffee urgently02:16
sinzuithumper: ouch, but --force also circumvents the api server, which is why my blocks can be ignored02:16
thumpersinzui: yes, it doesn't even try02:23
thumpersinzui: the new system destroy and environment destroy commands do try02:23
sinzuithumper: hurray for sanity02:24
menn0thumper: if you have time: http://reviews.vapour.ws/r/2445/03:13
menn0thumper: i'm really happy with how this worked out03:13
* thumper looks03:13
thumpermenn0: mostly good, just concerned about reordering the defer calls03:30
menn0thumper: hmmm I wasn't intending on reordering them03:31
* menn0 checks03:31
thumperyou moved them all into a single function that is deferred03:32
thumperbut then still call defer on each of the internals03:32
thumperand you changed the order03:32
thumpereffectively reorering03:32
menn0but defers run inside out03:32
thumpereither reorder and don't defer03:32
thumperor defer03:32
thumperyes03:33
* menn0 does a quick check on play03:33
thumperhappy to talk through03:33
menn0thumper: I think I did the right thing: http://play.golang.org/p/fzFmAHa86q03:34
menn0sorry03:34
menn0hang on03:34
menn0thumper: this one: http://play.golang.org/p/S4ehts8JxY03:35
thumpermenn0: but you did version three in http://play.golang.org/p/2d9vMgldxc03:36
menn0thumper: I see what I screwed up03:36
menn0all the defers in the new func shouldn't be there03:36
menn0i'm an idiot03:36
thumperright03:36
menn0thumper: my eyes were not seeing the inner defers03:36
menn0man I was trying to make that code clearer and unintentionally made it much worse03:37
thumper:)03:37
menn0thumper: i saw the bit about env.Life ! state.Alive too03:39
menn0i'll fix that in a followup PR03:39
menn0it's not really related to this change03:39
menn0I think the condition should still be there, but as: else if env.Life() == state.Dead03:40
thumperhmmm...03:41
thumpernope03:41
thumperbecause we may want to get logs from a dead environment03:42
thumperprior to everything being deleted some time later03:42
menn0thumper: hmm ok03:42
thumperthe dying / dead aspects should stop us adding things to the environment03:46
thumperbut we need to be able to view / introspect it while it is dying03:46
thumperand after it is dead03:46
* thumper looks in the morgue03:46
menn0thumper: but remmeber we've removed most of the assertions on env life03:46
menn0thumper: I guess the critical places, like adding a machine still check03:47
* menn0 wishes you could edit past IRC comments :)03:47
* menn0 pushes the StatePool PR03:49
thumperright03:50
thumperdead / dying environments can't get new machines or services03:50
thumpereverything else needs a machine or service03:50
menn0can't get storage either i'm pretty sure03:50
thumperalthough in the coming future we should also check environment level network spaces and storage03:50
* thumper nods03:50
* thumper has to head into town briefly03:51
thumperbbl to review waigani's branch03:51
* menn0 has to swap his UK driver's license for a NZ one03:51
thumpergee menn003:53
thumperjumping the merge gun03:53
thumper:)03:53
* thumper does a post hoc shipit03:53
menn0thumper: sorry... missed there wasn't one there already03:53
menn0thumper: if you have time: http://reviews.vapour.ws/r/2446/05:18
dimiterndooferlad, TheMue, morning08:52
dooferladdimitern: hello!08:52
dimiterndooferlad, TheMue, can you have a look at http://reviews.vapour.ws/r/2448/ please?08:52
dooferladdimitern: on it08:53
dimiterndooferlad, cheers08:53
dooferladdimitern: we really need to get better at splitting cosmetic changes from functional changes :-|08:54
dooferladdimitern: or get a better diff viewer!08:54
dimiterndooferlad, yeah, when there's no deadline to catch :)08:55
dooferladdimitern: :-)08:55
dimiterndooferlad, also, if you can give it a spin on EC2 - bootstrap, space list, space create, subnet add, subnet list (with juju subnet -- debug .. if needed), subnet add with CIDR and/or ProviderId08:59
dimiterndooferlad, --constraints spaces= does not cause errors in my tests, but obviously doesn't yet respect them09:00
dooferladdimitern, TheMue: hangout09:01
dimiterndooferlad, omw, getting coffee09:02
TheMuedooferlad: omw, got coffee09:04
dooferladdimitern: do you have a moment for EC2 testing?09:52
dimiterndooferlad, sure09:52
dooferladdimitern: https://ide.c9.io/dooferlad/juju09:53
dooferladTheMue: ^^ if you want to join in09:53
TheMuedooferlad: having phone, come in a few moments09:53
dimiterndooferlad, omw09:54
TheMuedimitern: btw, would you like a feature flag for the spaces support? like for address allocation? that way we could turn it on and off in tests with dummy.10:47
dimiternTheMue, nope, we need another way to turn it on and off - e.g. having a "broken" method is one way10:48
TheMuedimitern: ok10:49
dimiternTheMue, or a flag settable by calling dummy.SetSupportsSpaces(bool)10:49
TheMuedimitern: a direct method needs that you have direct access to the provider. often it is hidden deeply in our embedded tests. so I prefer the "broken" approach10:52
dimiternTheMue, I'm fine with either - it's the same effort I think10:54
TheMuedimitern: in first implementation yes, in tests I really liked the indirect approach - here with feature flag, but broken is fine too - during the tests10:55
mattywaxw, https://github.com/juju/juju/pull/3072/files#diff-aa7f5128113461cdc1ee5c2335a09d6cR5212:54
frankbanericsnow: I replied to your requests at http://reviews.vapour.ws/r/2416/ could you please take another look?13:26
sinzuidimitern: master wasn't merged into net-cli. your branch failed. Master now has singnigicant divergence and we don't know if it is good.13:36
sinzuidimitern: I am not sure what to recommend. test master and hope for a pass, then test the updated net-cli to get a pass?13:37
natefinchfinally got my code working... now to remove 100 printfs13:39
dimiternsinzui, we merged master this morning13:47
dimiternsinzui, and I have a PR which hopefully solves pingerSuite.TestAgentConnectionDelaysShutdownWithPing and MachineSuite.TestManageEnvironRunsInstancePoller13:48
sinzuidimitern: excellent. master just started testing. I will make net-cli the most important branch to test next. I am setting CI to wait 8 hours if there is a failure to give people time to investigate and retry failures cause by subtrates13:48
dimiternsinzui, awesome13:49
dimiterndooferlad, TheMue, please have a look http://reviews.vapour.ws/r/2454/13:56
TheMuedimitern: yep13:57
dooferladdimitern: on it13:57
dimiterncheers guys!13:57
wwitzel3ericsnow, natefinch, katco: hangout working for you guys?13:59
katcowas in one half an hour ago13:59
ericsnowwwitzel3: yep13:59
katcoericsnow: moonstone working fine14:00
natefinchwwitzel3: make sure it's having you join with your canonical account14:00
TheMuedimitern: reviewed14:02
dimiternTheMue, ta!14:08
dooferladdimitern: done14:09
ericsnowcmars: is this what I think it is?  http://reviews.vapour.ws/r/245314:09
cmarsericsnow, yep14:10
ericsnowcmars: cool!14:10
cmars:)14:10
dimiterndooferlad, thanks!14:11
ericsnowcmars: at least it got reviewed <wink>14:14
cmarsericsnow, we're going to re-review it in greater detail next week. important to get it landed for now to get CI testing, but it won't be glossed over. all other PRs have been reviewed carefully14:20
ericsnowcmars: oh, I don't doubt that :)14:20
ericsnowcmars: thanks for getting it done!14:21
cmarsericsnow, wasn't me, really. axw & wallyworld are the heroes14:21
ericsnowcmars: ah, right; commit history FTW :)14:23
dimiternTheMue, I'm not sure what's your last comment about? adding a comment in the patched function checking the result of newWorker?14:25
TheMuedimitern: only adding comments I missed when creating this test. that FinishedWorker means the Addresser doesn't run while not FinishedWorker means it's the Addresser (sadly not direct testable)14:26
TheMuedimitern: but it's only maintenance cosmetic, for later14:27
TheMuedimitern: maybe we should add a worker.HasFinished(w worker.Worker) bool for it soon, when those tests get more. will keep it in mind for the Firewaller14:28
dimiternTheMue, I see, ok I'll add comments about the meaning of a FinishedWorker as a result14:30
dimiterndooferlad, about your comment14:30
dimiterndooferlad, I don't believe the issue is related to clock time14:30
dooferladdimitern: oh, I thought you were increasing the timeout14:31
dimiterndooferlad, yeah, but your comment caused me to think of a different approach14:34
dimiterndooferlad, using attempt loops we don't have to sleep explicitly14:34
ericsnowfrankban: I'm reading through your responses to my review right now :)14:52
frankbanericsnow: ty!14:52
niemeyer_Hey all15:35
natefinchhowdy niemeyer_15:36
niemeyer_Do we have any envs with MongoDB deployed on IPv6?15:36
natefinchthere was talk about that on the mailing list.  I think the answer is that it needs work, i.e. not really working currently, though I don't know the details.15:37
mgzcmars: hey, are you around15:54
ericsnowfrankban: thanks for the thoughtful responses to my review comments15:55
ericsnowfrankban: I see where you're coming from now15:56
frankbanericsnow: cool, thank you, reading your review15:58
ericsnowfrankban: BTW, good call on making the JSON field tag "yaml" :)15:59
ericsnowfrankban: my only remaining concern is about adding the "guiserver" methods to the "public" API facade16:03
frankbanericsnow: yeah I was looking at that16:05
frankbanericsnow: the GUI is really just a user client, and I am not sure about having a separate facade for the GUI because the GUI basically uses all the Client methods already (including the mega-watcher)16:05
frankbanericsnow: actually I think the GUI is the most used juju API client after juju itself ;-)16:06
ericsnowfrankban: :)16:06
ericsnowfrankban: I think it would be good to at least have methods like GetBundleChanges on a separate facade16:07
frankbanericsnow: so the GUI is JS connecting the ws, it needs the user to authenticate and all the endpoint it uses are in the client facade (excpet for the initial admin.login one)16:07
ericsnowfrankban: ah16:07
ericsnowfrankban: that's fine16:08
frankbanericsnow: so basically like this the change is transparent, the GUI connects and sends requests over the ws, and GetBundleChanges is one request like many others (ServiceDeploy etc.)16:08
ericsnowfrankban: so one goal is to minimize changes to the GUI client code?16:09
frankbanericsnow: yes, and we can adjust things later if the amount of GUI specific endpoints increases, but I don;t believe so16:10
ericsnowfrankban: using multiple facades on the same WS should be fine, no?16:10
ericsnowfrankban: k16:10
frankbanericsnow: thanks16:10
ericsnowfrankban: I still think there should be a bit more discussion (on juju-dev) about where methods like GetBundleChanges should live in the API16:12
ericsnowfrankban: but moving the code to a more appropriate place later (if needed) wouldn't be hard16:13
frankbanericsnow: I agree, but consider this is merging into a feature branch, I think we will be able to introduce these changes gradually, and rick_h_ is already working on this16:13
ericsnowfrankban: how urgent is it that GetBundleChanges land?  Could it wait a few days?16:13
ericsnowfrankban: oh, duh16:13
frankbanericsnow: this is not landing in trunk16:13
ericsnowfrankban: feature branch :)16:14
ericsnowfrankban: I'll give you a ship-it but encourage you to at least ask jam and fwereade about it :)16:14
ericsnowfrankban: oh, and there are some missing tests16:15
frankbanericsnow: thanks! yes this will be a long running branch and with rick_h_ we are already working on getting people aware of our goals and the changes to be made for the embedded gui story16:15
frankbanericsnow: which ones? back to reading the review16:15
rick_h_ericsnow: there's a spec with this work out to wallyworld and jam atm16:15
rick_h_ericsnow: we're waiting on feedback but with holidays and such we're moving forward with the feature branch with the caveat that things will be tweaked based on feedback16:16
ericsnowrick_h_: cool!16:16
rick_h_ericsnow: as you mention, moving the endpoint isn't really going to make/break anything here.16:16
rick_h_ericsnow: https://docs.google.com/document/d/1zZY0a-dby-VnrBXaoFARIN8Mj6pdXLeZzTXmH0mRUik/edit in case it helps at all or you're curious16:16
ericsnowrick_h_: yep :)16:16
rick_h_ericsnow: but we're definitely eager for core folks to know/udnersteand what's up and where things are headed as we want to make sure we're doing thigns by the book, that your folks feel comfy with fixes that might be required later/etc.16:17
rick_h_ericsnow: so please feel free to push back on anything you would to another core team16:18
ericsnowrick_h_: sounds good; I'll be sure to read through the spec16:18
rick_h_ericsnow: ty, any feedback is welcome. I ran thumper through it last night16:18
ericsnowrick_h_: you can count on me to speak up :)16:18
rick_h_ericsnow: and we look forward to the other when they're back on duty16:18
rick_h_:)16:18
frankbanericsnow: GetBundleChanges is tested in apiserver/client/bundles_test.go16:18
ericsnowfrankban: hmm, we're trying to move away from full-stack tests like that16:20
* ericsnow looks at tests for other API methods (on server and client)16:20
frankbanericsnow: thanks16:20
ericsnowfrankban: blech, our existing tests aren't very good examples :/16:23
frankban:-/16:23
ericsnowfrankban: for an example of unit-ish tests see apiserver/backups and api/backups16:24
ericsnowfrankban: "feature" tests (effectively integration tests) live in the top-level featuretests package16:25
ericsnowfrankban: we're making an effort to improve our approach to testing in core which is why I'm bringing all this up16:26
frankbanericsnow: sure, I made a note and I'll take a look on Monday16:27
ericsnowfrankban: coolio16:27
frankbanericsnow: thanks and have a nice weekend16:27
ericsnowfrankban: you too and thanks for working on this!16:28
natefinchericsnow: this id/name thing is killing me19:15
ericsnownatefinch: how so?19:15
natefinchericsnow: just the fact that sometimes we munge the name/id and sometimes we don't.... and so I have to know exactly when to munge the name/id to match what's stored in whichever map19:17
ericsnownatefinch: we should always be identifying them by the full ID19:17
ericsnownatefinch: where in particular are we not?19:18
natefinchericsnow: but what is the full ID and where do I get it from?  This is the problem I have with untrack.    So the current problem is getting the test infrastructure to do the right thing when I tell it to untrack.... which is actually kind of a problem in itself that we have logic in the test infrastructure19:19
natefinchericsnow: like stubAPIClient19:20
natefinchericsnow: https://github.com/natefinch/juju/blob/untrack-cmd/process/context/base_test.go#L28719:21
ericsnownatefinch: the user should have passed in the full ID (or the name, by which we look up the full ID)19:21
natefinchericsnow: the user doesn't know what the full ID is, since that's a composed thing which we create, isn't it?  They know the name... I don't think they can possibly be expected to know anything else19:22
ericsnownatefinch: that's fine; we just have to do the lookup for them19:23
natefinchericsnow: my point is... the fact that we're doing all this logic stuff in stubAPIClient is bad.  We're duplicating production code logic, and relying on this test harness to have the same implementation.19:24
ericsnownatefinch: the API client shouldn't be doing any of that lookup19:25
ericsnownatefinch: I thought we agreed that we would hold off on that part19:25
ericsnownatefinch: i.e. the API client should always expect full IDs19:25
natefinchericsnow: I'm talking about this - https://github.com/natefinch/juju/blob/untrack-cmd/process/context/base_test.go#L20119:26
natefinchericsnow: that's logic that is duplicating what the real apiclient would be doing19:26
ericsnownatefinch: setNew is just a convenience function to inject values into the API19:29
ericsnownatefinch: it's not part of the stubbed API implementation19:30
natefinchericsnow: Ahh, I was missing a flush in there... I didn't expect that to make a difference, but it does.  Sorry.19:33
ericsnownatefinch: np :)19:34
natefinchok, everything works... now to merge wwitzel3's rename commit :/20:37
natefinchoh this is gonna suck20:44
natefinchevidently git is not smart enough to merge <file renamed> with <file modified>   .... how is that not something it can just do automatically?20:45
natefinch"oh hey, the old file just got moved, so I'll merge the changes into the new location" :/20:45
ericsnownatefinch: yeah, I just went through that pain yesterday20:46
natefinchgoogle/stack overflow to the rescue....  git rebase feature-proc-mgmt -X rename-threshold=5%20:48
natefinch....mostly20:49
katcocan i get a rubber-stamp on http://reviews.vapour.ws/r/2455/? this exact patch has already been landed in 1.2421:09
perrito666katco: done21:16
katcoperrito666: ty sir21:16
perrito666since I reviewed the other one I believe you :)21:16
katcohaha21:17
perrito666I must say, buying an electric toaster is a life changing decision, I no longer forget and burn my toasts21:23
perrito666(which mostly happens while reading this channel or reading code of juju)21:24

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