/srv/irclogs.ubuntu.com/2016/10/25/#juju-dev.txt

thumperredir: around 9am00:04
wallyworldveebers: i am blind. i pulled goose master and the change i wanted was there after all. i just missed seeing it in the diff it appears00:08
veeberswallyworld: sweet, well in that case I accidentally re-built that job on purpose :-)00:10
wallyworldyes :-)00:10
wallyworldi need to go get glasses00:10
perrito666hey, this is a strange question, did any of you went to disney?00:28
anastasiamacperrito666: no00:28
redirOK, thumper I'll hit you up around 10 tomorrow.00:33
=== cmars` is now known as cmars
anastasiamacperrito666: wallyworld: as the most amazingly persistent ppl that worked on "backup" featurette, do u know if we have fixed this on Juju 2? https://bugs.launchpad.net/juju-core/+bug/163608000:43
mupBug #1636080: Machine unit 0 dies after "juju backup" <canonical-bootstack> <juju:New> <juju-core:Won't Fix> <https://launchpad.net/bugs/1636080>00:43
wallyworldlol00:43
wallyworldi don't know that bug00:43
anastasiamacit's new00:43
anastasiamacagaisnt 1.25.600:43
anastasiamaci just want to know if we've fixed on 2..00:43
perrito666anastasiamac: I have no clue, but last time I checked backup "just works" in 2.000:44
anastasiamac(which part "lol" - most persistent or featurette?)00:44
anastasiamacawesome \o/00:44
anastasiamacwallyworld: so as a conclusion of heated discussion.. spaces are only supported on MAAS in JUju2?00:50
anastasiamacwallyworld: not ec2 or any other provider?00:50
wallyworldand aws i believe00:50
anastasiamack ;)00:50
anastasiamacthen i have a bug \o/00:50
wallyworldnot 100% sure about others00:50
wallyworldrick is across it all00:50
wallyworldnot sure if a bug is required, there is probably one already00:50
anastasiamacwallyworld: that's what i mean - i have  abug: m not planing on creating more ;-P00:51
mupBug #1636307 changed: cannot deploy to network space <juju:Triaged by rharding> <https://launchpad.net/bugs/1636307>00:57
thumperveebers: what CI testing do we have around migrations?01:24
veebersthumper: http://juju-ci.vapour.ws:8080/job/functional-model-migration/01:34
thumperhow can I see what it does?01:34
veebersthumper: that's the jenkins job for the model migrations that I worked on with menn001:34
veebersthumper: you could read the log, or the source or I could take a quick look to refresh my memory and give you a quick summary01:35
veebersthumper: the test is "assess_model_migration.py" in juju-ci-tools01:35
* thumper looks at console output01:36
thumperveebers: just wondering, because I have found a failure case, and wondering whether we should add it to the CI01:37
thumperor at least I think I have a failing case01:38
veebersthumper: what's the suspected failure case?01:42
thumperveebers: juju upgrade-charm after a migration01:42
thumperI'm pretty sure it will fail01:42
* veebers checks test code01:42
veebersthumper: right, the current CI test does not attempt that, it does add units to the migrated models01:43
* thumper nods01:44
thumperhow easy is it to add?01:44
veebersthumper: should be straight forward I think01:44
=== frankban|afk is now known as frankban
mgzmorning all08:44
frankbandimitern: could you please take a look at https://github.com/juju/juju/pull/6482 ? it's trivial10:59
dimiternfrankban: sure, I'll get to it shortly10:59
frankbanty10:59
=== Guest95404 is now known as ahasenack
=== ahasenack is now known as Guest59736
dimiternfrankban: it is trivial indeed - I'll QA it locally, but I'd appreciate a review on this equally trivial https://github.com/juju/juju/pull/649511:00
frankbandimitern: since *state.State is embedded, why defining that method at all?11:03
dimiternfrankban: not sure - I guess so it can be stubbed for testing11:06
mgzI like just deleting the method11:07
frankbandimitern: ok, then lgtm11:07
dimiternfrankban: cheers! I'm almost done with yours..11:08
frankbandimitern: what's vmaas-21?11:08
dimiternfrankban: virtual maas 2.111:09
frankbandimitern: cool, so that spins up a virtual maas? where? lxd?11:09
dimiternfrankban: nope, just uses one of my vmaas-es - all in lxd11:10
frankbandimitern: ah, ok11:10
perrito666Morning all11:12
dimiternperrito666: morning :)11:18
perrito666Dimitern i added a comment to your pr about something that worries me11:19
dimiternperrito666: yeah, I've just seen it11:19
dimiternperrito666: I'm open to suggestions how to test this actually :)11:20
perrito666If you can convince of the comtrary ill stamp it11:20
dimiternperrito666: it's just badly written code, that's not well tested - and that's because it's only really works on maas - with some assumptions11:21
perrito666Are there plans to change the state of things?11:21
dimiternfrankban: I'm having trouble with `juju gui` - it seems to return Juju GUI is not available: Juju GUI not found on LXD (always that I can see..)11:22
dimiternfrankban: however I can see with your fix it's dialing "wss://10.40.149.73:17070/api", and without it - "wss://10.40.41.252:17070/model/9b6daa80-d635-43d8-893d-8e5fcaec583d/api", so I can confirm it's using the controller root11:24
dimiternfrankban: ok, I've run `juju upgrade-gui` first and now it works! \o/11:25
frankbandimitern: cool, so current GUI in simplestreams does not work with juju tip?11:25
frankbandimitern: or did you bootstrap with --no-gui?11:26
dimiternfrankban: it seems so - I've seen issues around getting the gui commonly11:26
dimiternfrankban: nope, I'm not using --no-gui11:27
frankbandimitern: I wonder why the GUI was not available on your controller then...11:27
frankbanany errors in the bootstrap output?11:27
dimiternfrankban: yeah - usually `Unable to fetch Juju GUI info: error fetching simplestreams metadata: invalid URL "https://streams.canonical.com/juju/gui/streams/v1/index.sjson" not found`11:29
dimiternfrankban: LGTM11:30
frankbandimitern: dimitern oh ok then, you have a firewall or similar?11:30
frankbandimitern: ty11:31
dimiternfrankban: I have a bunch of iptables rules, but I don't think it should interfere with streams.c.c (I've seen intermittent connection errors hitting streams.c.c occasionally though)11:32
dimiternperrito666: there are always plans :)11:33
dimiternperrito666: but that code is not yet used for what it's supposed to be used11:33
dimiternperrito666: it will be fixed in the near future when we have greater spaces support in the providers (LXD at least)11:34
frankbandimitern: thanks to your fantastic QA instructions a set up a quick and dirty juju-db juju plugin: http://pastebin.ubuntu.com/23378478/11:36
dimiternfrankban: awesome! I'll give it a try :)11:37
frankbancool11:37
dimiternfrankban: works great, and only needs support for --help and --description I think to become an official plugin :)11:41
frankbandimitern: http://pastebin.ubuntu.com/23378596/12:16
dimiternfrankban: sweet thanks! btw noticed a typo on 17 (conect)12:17
frankbandimitern: good catch thanks12:18
dooferladdimitern, voidspace, macgreagoir: https://github.com/juju/juju/pull/6496 needs eyes12:39
dimiterndooferlad: will have a look shortly12:40
dooferladthanks dimitern!12:40
natefinchrick_h_, voidspace: http://pastebin.ubuntu.com/23378736/13:01
natefinchI was thinking it would be useful to just print out the yaml at the end anyway, so you can see the end result easier.13:02
rick_h_natefinch: sorry, -1 from my pov on that. I think just finishing with a "Added cloud 'osl' would be about it13:02
rick_h_natefinch: maybe a sample bootstrap ", can be bootstrapped with juju bootstrap osl"13:03
dimiterndooferlad: can you clean that diff a bit, so it's easier to follow? It looks like you've moved some things around for no good reason13:03
rick_h_natefinch: much like add-credential, the goal is to get to where the files don't exist to the end user and having this go so far from that seems not the best direction.13:03
natefinchrick_h_: well, maybe the output of show-cloud os1?13:04
natefinchbasically the same thing... I just find it nice after all the prompts and stuff to see that I didn't typo anything13:05
rick_h_natefinch: is it really worth a > 1 line output that you added an entry?13:05
rick_h_natefinch: but you see what you typed in your terminal above the final line?13:05
natefinchyes, but it can be hard to see the forest for the trees.  The prompts and stuff make it so it's not a consolidated view13:05
rick_h_natefinch: nothing else we have dumps out that kind of data that I can think of.13:06
dooferladdimitern: code was moved for the very good reason of it being difficult to follow and debug13:06
natefinchrick_h_: most of our things aren't long complicated interactive commands either13:06
dooferladdimitern: like it says in the PR, getBootstrapConfigs contains the only material changes.13:06
dooferlad+ tests13:06
rick_h_natefinch: I understand, but going to go -1 on starting that here unless there's real user feedback. Start minimal and add only when pushed imo.13:07
natefinchok13:07
rick_h_always easy to add, harder to take away kind of thing13:07
dimitern<grumble/>..13:07
dooferladdimitern: unfortunately the github diff viewer sucks13:07
dooferladdimitern: the one I was using locally make it much clearer :-|13:08
dimiterndooferlad: *ok*, I'll try to follow it, but since it's >500 lines, somebody else should have a look as well13:08
rick_h_dimitern: dooferlad +1 on 2 reviews for a large diff13:08
natefinchrick_h_: so, I added manual yesterday too (which is really trivial, but worth having to keep the UX consistent).  So now I just need tests... but at least it's working, and it should be pretty extensible if neeed13:09
dimiterndooferlad: re QA: what do you mean by 'check that it is honored' ? whether it's set on get-model-config after bootstrap with --config use-floating-ips=true ?13:10
rick_h_natefinch: so is this still a PoC or have you gone beyond that?13:10
rick_h_natefinch: the original goal was a single PoC we could try out and get some review that the code was heading in the right path.13:10
natefinchrick_h_: it's basically production code that has zero tests13:11
dooferladdimitern: if I were you, I would just open https://github.com/dooferlad/juju/blob/9577e379651a6c45d3b4b3050f11ebda2516fbad/cmd/juju/commands/bootstrap.go and look at Run (line 314+) that used to be insanely big and make sure that it reads well. The only logical change is in getBootstrapConfigs (line 729+) where the old code was wrong.13:11
rick_h_natefinch: heh, ok13:11
rick_h_natefinch: let's not use the word production yet then :P13:11
natefinchrick_h_: heh13:11
natefinchindeed13:11
natefinchI can build a binary and let people poke at it13:11
dooferladdimitern: the other new functions are just moved code so Run is even vaguely readable.13:12
rick_h_natefinch: +1, shoot me a branch or a binary and I'll tinker with it13:12
dimiterndooferlad: ok, I'll do that13:12
* dimitern wtf?! bootstrapCmd.Run is more than 500 lines itself!13:13
dooferladdimitern: Just clarified the CI steps in response to your question - the bug was in parsing clouds.yaml, so you need to set the config there, not on the CLI13:13
dimiternthat's *insane*13:13
dooferladdimitern: it used to be *much* bigger13:14
dimiterndooferlad: I'm looking at the source before your changes :)13:14
dooferladdimitern: oh, yea13:14
dooferladdimitern: that is why I changed it!13:14
* dimitern approves :)13:14
dimiternof the refactoring13:14
natefinchrick_h_: https://docs.google.com/uc?export=download&confirm=leR2&id=0B-r4AW1RoHJNRFRsZ1U4d1diaHc13:16
=== ubuntu is now known as Guest74698
natefinchrick_h_: or use hub checkout https://github.com/juju/juju/pull/649813:19
rick_h_natefinch: cool ty13:20
* dimitern tries to remember how to use canonistack13:20
macgreagoirdimitern: I can give it a test in canonistack, if you get stuck.13:24
dooferladmacgreagoir: if you could take a look at that https://github.com/juju/juju/pull/6496 too that would be great13:25
macgreagoirdooferlad: I am, aye. Only 498 lines to go :-)13:26
perrito666dooferlad: looking13:26
dimiternmacgreagoir: that would be great actually :) thanks!13:27
macgreagoirdimitern: nw13:31
rick_h_kadams54: natefinch dimitern ping for standup14:00
rick_h_bah, katco that is14:00
kadams54:-(14:00
kadams54;-)14:00
dimiternomw14:01
dimiterndooferlad: reviewed14:13
dooferladdimitern: thanks!14:13
dooferladdimitern: my favourite types of changes - minor cosmetic14:14
dimiterndooferlad: well, the code seems OK AFAICS14:15
dooferladdimitern: :-D14:15
rick_h_dooferlad: picking up our intermittent issue for week #2 and since your work is in review sending your way please.14:16
dooferladrick_h_: ack14:18
perrito666dooferlad: dimitern I am reviewing the pr, it might take me a couple of minutes but I will most likely catch similar stuff than dimitern14:35
perrito666dooferlad: reviewed14:48
dimiternrick_h_: good news :) I can't reproduce the bash completion traceback - probably was due to stale cache file or something15:09
rick_h_dimitern: hmm, I had that in my testing right up to GA15:09
rick_h_dimitern: /me will try to reproduce I guess15:10
dimiternrick_h_: however, I found a couple of issues with it and I'd like to propose a small fix so completions will work for source builds and the version check will be properly installed15:10
mgzyeah, I'm sorry but the completion stuff is still super-heisen15:10
mgzthere is almost certainly a bug or two15:10
mgzbut may depend on specifics of which packages were installed in the past and so on15:11
dimiternmgz: can you give this a try? https://github.com/juju/juju/pull/6499/ (also a review would be nice :)15:17
dimiternrick_h_: ^^15:17
mgzdimitern: taking a look15:17
mgzdimitern: I don't think try:/except: pass can be what we want15:19
dimiternmgz: why?15:19
mgzmeans there's no record at all if things are borked15:19
dimiterntrue, but would you prefer a broken bash env instead? :)15:20
mgzthe style seems to be print something out mid-tab if things are totally screwed15:21
mgzI agree that normal operation shouldn't do that15:21
dimiternI don't mind dropping the try/excepts15:21
dimiternbut I really like the block 345-348, which finally made the completions usable for source builds15:22
mgzyeah, I agree that change seems good15:22
dimiterna possible workaround will be `sudo ln -s "$GOPATH/bin/juju" /usr/bin/juju-2.0", but that won't work if you *also* have the juju-2.0 package installed15:28
dooferladdimitern, perrito666: WRT https://github.com/juju/juju/pull/649 I could just return/fill in structs for the functions that currently return lots of variables but the diff would be bigger. Happy to make the change either now or in a followup. Thoughts?15:38
dooferladleave comments on the PR if you want but would like to know my next step soon.15:39
dimiterndooferlad: that's even better - I meant to suggest it, but forgot15:39
dooferladdimitern: OK, I won't squash that commit so you can see what changed.15:40
dooferladdimitern: thanks15:41
dimiternmgz: updated https://github.com/juju/juju/pull/649916:00
perrito666dooferlad: sorry was hunting for lunch, please do as a follow up16:22
dooferladperrito666: just pushed changes to ^^. Dimiter seemed to want them on the same branch so that was where I was working. https://github.com/juju/juju/pull/6496/commits/5890aa96b97e4db8b945894ce2a8415fdfaab077 is the changes from what you have seen before.18:01
perrito666dooferlad: checking18:09
=== frankban is now known as frankban|afk
deanmanHello, I'm facing a very wierd behavior of juju2 on xenial guest VM using localhost as a cloud provider. In particular, i can bootstrap the controller just fine and see its LXD in running state but when deploying a charm it complains about not being able to download the image. Guys from #juju were helpful enough and suggested that maybe it is a bug and could get some more triage assistance here?18:43
kwmonroeto add to deanman's case, this looked fishy to me:  http://paste.ubuntu.com/23379874/.  where does 'stream "devel"' come from, and why is his agent version 2.0.0.1?  he's got the juju/devel ppa, but so do i, and my agent version/stream is 2.0.0/released.18:48
deanmankwmonroe: You meant juju/stable ppa right? At least i have used 'sudo add-apt-repository ppa:juju/stable' before downloading juju18:51
kwmonroedeanman: even when i install from the devel ppa, i still get a model-config with 2.0.0/released.18:52
deanmanah ok!18:52
deanmankwmonroe: xenial-backports repo is uncomment on source.list, does it make any difference?18:55
kwmonroei don't think so deanman.  mine is uncommented as well18:56
kwmonroeone other fishy thing between deanman's model config (http://pastebin.com/YM9GHtrC) and mine is his says: development / model / true.  mine says:  development / default / false.18:57
kwmonroedeanman: is it possible you bootstrapped with --config development=true?19:02
deanmankwmonroe: well i did set it to true myself during bootstraping.19:02
kwmonroeand you were just all like "this probably isn't important to mention to kwmonroe"?19:02
deanman"Set whether the model is in development mode", i was in development mode :-)19:02
kwmonroe:)19:03
kwmonroewell try turning that sucker off19:03
rogpeppe1anyone know of a testing utility func in juju that destroys a model and all its applications too?19:03
rogpeppe1or do i have to write it?19:03
rogpeppe1i'm talking about testing when i've got a *state.State instance here19:04
rogpeppe1natefinch: ^ ?19:04
natefinchrogpeppe1: buh.... no idea.  Look on juju conn suite maybe?19:05
rogpeppe1i *think* what i have to do is Destroy the model, then go through each of the model's applications and destroy them, then go through each unit and destroy that. or maybe the other way around.19:06
natefinchI can't tell if juju destroy-model kills applications too (sorta looks like it, but it's not explicit).  Might look to see how it does that19:07
rogpeppe1natefinch: it doesn't seem to19:09
rogpeppe1natefinch: i think it waits for everything to tear itself down19:09
natefinchahh19:09
katcorogpeppe1: is this a feature test?19:10
natefinchrogpeppe1: kill-controller does a forced destruction after it's timeout expires19:10
rogpeppe1katco: this isn't a test in juju-core19:10
katcorogpeppe1: ah ok, sorry to bother19:11
rogpeppe1katco: np19:11
natefinchdo we have a checker that does regex matches across newlines, or do I have to do the strings.replace(s, "\n", "", -1) thing?19:12
natefinchgah, whoever made checkers in github.com/juju/testing/checkers without godoc deserves a flogging19:14
* rogpeppe1 checks it's not him19:17
perrito666yeah, foto log that b*****d19:17
perrito666natefinch: fun fact flog in spanish applies to users of foto logs :p19:18
natefinchheh, it was tim19:19
natefinchor at least... hmm19:19
natefinchI think he must have moved the code19:19
natefinchbecause I know I wrote SameContents, but it's flagged as him too19:19
natefinchI guess we'll never know19:20
natefinchperrito666: heh19:20
katconatefinch: if only there was a tool to review the complete history of code =|19:20
perrito666natefinch: great now my brain has snaps of tim dressed as a emo/dark19:20
natefinchkatco: I don't know how to dig further in the history of that line, and running more than one command requires more effort than I really care to spend :)19:23
perrito666yeah, if we where all in the same office you could use the more simple method of printting the code, write in red marker "you know who you are, beg that I never do" and put it with a knife in the pin board19:24
perrito666which I am sure there is a git command for19:25
perrito666and certainly an emacs shortcut19:25
rogpeppe1so far i've got this and the last call to RemoveAllModelDocs still fails with a "model not dead" error: http://paste.ubuntu.com/23380364/19:28
rogpeppe1i wonder what other things i need to kill19:31
* rogpeppe1 delves into the code19:32
rogpeppe1how i love mgo/txn19:32
natefinchit's um... something special, for sure19:33
rogpeppe1perrito666: any idea how i can remove a model, by any chance?19:34
perrito666rogpeppe1: destroy-model ?19:35
rogpeppe1perrito666: sorry, i've got a *state.State19:35
perrito666rogpeppe1: ah, It escapes my memory now, but State.Destroy() isnt a thing?19:36
rogpeppe1perrito666: no, that would be too obvious :)19:36
perrito666rogpeppe1: god forbid we do that19:37
rogpeppe1perrito666: i think Model.DestroyAllModelDocs is the thing19:37
rogpeppe1perrito666: but it doesn't work if the model isn't dead19:37
rogpeppe1perrito666: and i can't work out how to make it dead19:37
rogpeppe1perrito666: there's no EnsureDead or Remove method on Model19:37
perrito666rogpeppe1: state.Model() then thatModel.Destroy()19:39
rogpeppe1perrito666: this is what i'm doing currently: http://paste.ubuntu.com/23380415/19:39
perrito666rogpeppe1: check state/model.go19:39
rogpeppe1perrito666: but it doesn't work19:39
rogpeppe1perrito666: i've checked that there are no apps and no machines left19:40
rogpeppe1perrito666: which is what the code seems to be checking for19:40
perrito666rogpeppe1: odd, destroy is quite straight forward19:40
rogpeppe1perrito666: the model life remains at dying19:41
perrito666I recall there being aworker for this but not much more19:43
rogpeppe1perrito666: the worker will be outside of state tho'19:44
perrito666rogpeppe1: most likely running on the controller? not sure19:44
rogpeppe1perrito666: it shouldn't matter AFAICS - i'm accessing the state directly19:45
rogpeppe1perrito666: ha, it looks like you can't remove a model if you've called Destroy on it19:47
perrito666rogpeppe1: even if life advanced to dead?19:48
rogpeppe1perrito666: the only way of advancing life to dead is by calling Destroy19:48
rogpeppe1perrito666: (i think)19:48
perrito666rogpeppe1: afaik destroy will advance it to dying19:48
rogpeppe1perrito666: but if there are units around and you call Destroy it goes into dying mode19:48
perrito666then you do something and it gets dead :p19:48
rogpeppe1perrito666: yeah19:48
rogpeppe1perrito666: but there's this code in Destroy:19:49
rogpeppe1if m.Life() != Alive {19:49
rogpeppe1return nil, errModelNotAlive19:49
rogpeppe1}19:49
rogpeppe1perrito666: which looks wrong to me19:49
perrito666right in this moment I miss fwereade :p19:50
rogpeppe1perrito666: indeed19:50
rogpeppe1perrito666: i don't think anyone else understood this stuff19:50
rogpeppe1perrito666: if i change that line to "m.Life() == Dead", then I get "failed to destroy model: state changing too quickly; try again soon"19:51
rogpeppe1i can't think how many times i've seen that error and it's never ever been because state was changing underfoot19:52
rogpeppe1katco: BTW i got bored and landed gopkg.in/retry.v119:52
katcorogpeppe1: cheers19:53
katcorogpeppe1: i was going to try and review that in more depth today before the tech board meeting19:53
rogpeppe1katco: i dunno what the juju board decision will be, but at least snappy can use it now19:54
katcorogpeppe1: :)19:54
perrito666rogpeppe1: with some luck menn0 might understand it better or thumper they both must have been around for multi model work19:55
rogpeppe1perrito666: it would be nice to have someone with whom i shared some working hours :)19:56
perrito666rogpeppe1: ah I sort of forgot t hat detail19:56
rogpeppe1katco: review comments still welcome on the retry PR BTW19:57
katcorogpeppe1: is that pr now in sync with gopkg.in/retry.v1?19:58
rogpeppe1katco: pretty much. the only changes are the import paths and that i removed the dependency on juju/utils/clock19:58
katcorogpeppe1: ok cool. i will go there when/if i can review19:58
rogpeppe1katco: ta19:58
katcorogpeppe1: ty!19:58
katcoredir: hey i'm sorry i'm afraid i've been a horrible pairing partner. do you need anything?19:59
rogpeppe1perrito666: BTW that code does work if you haven't already called Destroy on the model first20:02
perrito666rogpeppe1: odd20:02
perrito666rogpeppe1: btw, thumper is there, so technically you are now sharing tz20:02
thumperFSVO sharing20:03
rogpeppe1thumper: yo!20:03
thumpermorning20:03
rogpeppe1thumper: evening :)20:03
thumperpretty sure if it was evening, I'd be drinking20:03
rogpeppe1thumper: do you have any idea about model lifecycle states?20:03
katcorogpeppe1: thumper: it's afternoon you fools!20:03
rogpeppe1thumper: i drank enough last week to cover this week20:03
thumperrogpeppe1: what do you mean by that?20:03
rogpeppe1thumper: so, i'm operating directly on *state.State20:04
thumperalive, dying, dead?20:04
rogpeppe1thumper: i have a model with some units20:04
thumperuh ha20:04
rogpeppe1thumper: i call Destroy on it20:04
rogpeppe1thumper: it goes into dying state20:04
rogpeppe1thumper: (as expected)20:04
* thumper nods20:04
rogpeppe1thumper: then i destroy/remove all the units, apps and machines20:04
thumperwhy?20:04
rogpeppe1thumper: because i want to remove the model20:05
thumperdestrying a model starts a cascade of cleanup jobs20:05
rogpeppe1thumper: this is without any workers running20:05
rogpeppe1thumper: just raw *state.State20:05
thumperum... ok20:05
thumperwhy not call the remove all model docs method?20:05
rogpeppe1thumper: you can't call it until the model is dead20:06
rogpeppe1thumper: but it seems that once a model is dying it can never be made dead20:06
thumperwhat is the use case for this?20:06
rogpeppe1thumper: a test20:06
rogpeppe1thumper: but i kinda hope that state works on its own terms20:06
thumperit can be made dead20:06
thumperbut a lot of this changed with the tear down of multi model20:06
thumperi'd have to go and read the code20:07
rogpeppe1thumper: how can it be made dead?20:07
* thumper goes to look20:07
rogpeppe1thumper: this code looks suspicious to me:20:07
rogpeppe1func (m *Model) destroyOps(ensureNoHostedModels, ensureEmpty bool) ([]txn.Op, error) {20:07
rogpeppe1if m.Life() != Alive {20:07
rogpeppe1return nil, errModelNotAlive20:07
rogpeppe1}20:07
rogpeppe1thumper: I *think* that implies that if the model is dying, then it won't do anything20:08
rogpeppe1thumper: and that certainly *seems* to be the case in practice20:08
thumperlook at state/model_test.go:11120:09
thumperalthough that method is is export_test.go20:10
thumperis this a state package test or from further out?20:10
rogpeppe1thumper: further out. in an external project that's integration-testing watcher behaviour20:10
thumperProcessDyingModel20:12
thumperrogpeppe1: moves a model from dying to dead if all the machines are gone20:13
rogpeppe1thumper: ha20:13
rogpeppe1thumper: that's... unusual20:13
thumperpart of the undertaker worker20:14
rogpeppe1thumper: perhaps that should be renamed to EnsureDead20:14
rogpeppe1thumper: to fit with the other types20:14
thumperall about the controller making sure the models are cleaned up nicely20:14
thumperexcept it doesn't EnsureDead20:14
thumperish20:14
rogpeppe1thumper: or at least Destroy could mention that method20:14
thumpernot entirely sure20:14
thumpertrue20:14
thumperit should20:15
thumperthere should be docs about model lifecycle that mention the states, and how to progress through them20:15
thumperyou are not wrong20:15
rogpeppe1thumper: thanks anyway. i've spent hours on this :)20:16
thumper:(20:16
thumperit is one of those sad cases where everyone wants better docs20:16
thumperand no one writes them20:16
thumperor20:16
thumperwe have a tendency to think everything is obvious20:16
thumperand doesn't need writing down20:16
thumperuntil we come back to it in 3 - 6 months20:16
thumperwhen we have forgotten the context20:17
thumperI've done that a lot20:17
rogpeppe1thumper: yeah, it is easy to do20:19
rogpeppe1thumper: BTW this is what you need to do do destroy a model in the state from first principles AFAICS: http://paste.ubuntu.com/23380624/20:20
thumperhmm...20:21
rogpeppe1thumper: FWIW i think i'd found ProcessDyingModel if it had been a method on Model not State20:21
thumpergood thing we have cleanups that do most of that20:21
rogpeppe1s/i'd/i'd've/20:22
* rogpeppe1 's test finally passes20:22
thumper\o/20:22
thumperhmm...20:47
thumperseems like if bootstrap can't access public streams, it'll fail, even if it has local tools20:48
thumperhow will this work in secure separate networks?20:48
natefinchthumper: sounds like a question for Ian.  it should upload tools automatically, but that doesn't help with images20:49
thumperyeah20:49
thumperI have intermittent DNS issues20:50
thumperwhich makes bootstrap sometimes fail20:50
thumperand also GUI downloading fail20:50
* thumper thinks there should be a retry in there somewhere20:50
natefinchthe network isn't always reliable?20:50
thumpernope20:50
thumperno idea why20:50
thumperkinda shit20:50
natefinchwell, maybe it's because you're on an island off the coast of an island off the coast of southeast asia20:51
thumperhmm...20:57
thumperhow do you upgrade a local charm now?20:57
rick_h_thumper: juju upgrade-charm ./localcharm20:57
thumperthat isn't what the help says...20:58
rick_h_thumper: sorry, missed the application name in there20:58
thumpernope20:58
thumper$ juju upgrade-charm ~/canonical/juju-2.0-beta7/charm-ubuntu ubuntu20:58
thumpererror: unrecognized args: ["ubuntu"]20:58
rick_h_thumper: hmm, katco reworked that per a bug on that20:58
thumperhelp says to specify --path to point to local charm location20:58
thumperbut that fails too20:58
rick_h_katco: does it remember the same path on disk and need a --switch to take a ne wone?20:58
thumper$ juju upgrade-charm --path=~/canonical/juju-2.0-beta7/charm-ubuntu ubuntu20:59
thumperERROR charm or bundle URL has invalid form: "~/canonical/juju-2.0-beta7/charm-ubuntu"20:59
rick_h_thumper: right, you need the ./20:59
thumperthat isn't obvious at all20:59
rick_h_thumper: try --path=./home/thumper/canonical/juju-2.0-beta7/charm-ubuntu or cd there and go20:59
thumper./home is just wrong20:59
katcothumper: rick_h_: right, you have to specify --path in addition to the application name20:59
rick_h_thumper: except all local charm references across all of juju2 require the ./ as the local indicator?20:59
thumperis it a path or relative?20:59
katcothumper: i believe it's any resolvable path... let me check21:00
thumper$ juju upgrade-charm --path=./../canonical/juju-2.0-beta7/charm-ubuntu ubuntu21:00
thumperERROR charm or bundle URL has invalid form: "./../canonical/juju-2.0-beta7/charm-ubuntu"21:00
thumperugh from wrong dir21:00
thumperjuju upgrade-charm --path=./canonical/juju-2.0-beta7/charm-ubuntu ubuntu21:01
thumperAdded charm "local:xenial/ubuntu-1" to the model.21:01
thumperworked when given a relative path21:01
thumperthat points to it21:01
thumperbut if the path is wrong, the error is confusing21:01
thumperredir: did you want to chat kvm?21:02
redirthumper: sure if your free21:03
rediryou're even21:03
thumperrick_h_: funnily enough `juju deploy ~/canonical/juju-2.0-beta7/charm-ubuntu/ ubuntu` works21:03
thumperrick_h_: but you can't use the same path to upgrade-charm21:03
thumperwe should probably fix that21:03
rick_h_thumper: right, there was a bug around that. I thought they were made consistent.21:04
katcothumper: this is the thing that resolves it: https://github.com/juju/charmrepo/blob/v2-unstable/charmpath.go#L5121:04
katcorick_h_: thumper: https://github.com/juju/juju/commit/51d6437d31b154604d011be146f7d0a231e6e186#diff-aec7c600a6f94b7c3646bb9d9b12485421:05
katcorick_h_: thumper: "There is commonality between `deploy` and `upgrade-charm` in resolving arguments and doing something useful with them. There is an opportunity to create a component and to pass it into both commands."21:05
katcorick_h_: i would relish the opportunity to address that :)21:07
rick_h_katco: yea, sorry. We spent a lot of time there. More to move onto atm.21:07
rick_h_katco: would be good to get a bug though with the direction and mark it up for 2.2 suggestions21:08
katcorick_h_: actually did not; you're thinking of deploy21:08
rick_h_katco: true enough21:08
mupBug #1614633 changed: A unit with a failed storage-detaching hook cannot be destroyed <juju:Fix Released by axwalk> <juju-core:Won't Fix> <juju-core 1.25:Won't Fix> <https://launchpad.net/bugs/1614633>21:12
alexisbanastasiamac, we can meet now if you like21:13
anastasiamack :)21:13
anastasiamacalexisb: m in our 1:121:14
=== hml_ is now known as hml

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