/srv/irclogs.ubuntu.com/2014/02/12/#juju-dev.txt

thumperwallyworld_: https://plus.google.com/hangouts/_/76cpj15en6ms7kb8jr9r3fvhco?hl=en00:03
axweh wtf01:28
axwI had a dupe of the standup in my calendar and deleted one, now calendar says I'm not coming to the other one01:28
davecheneyaxw: https://codereview.appspot.com/61560045/01:29
axwdavecheney: about to go to standup, will look a bit later01:29
davecheneyta01:30
* axw wonders if he can justify going to gophercon as well02:03
axwthumper: https://codereview.appspot.com/49640050/02:05
thumperaxw: canonical has 10 entrances due to sponsorship02:09
thumperaxw: could always see if you could acquire one of those02:09
axwooer02:10
axwwho do I ask?02:10
thumperaxw: um... not sure actually02:17
thumperaxw: mramm to start I guess02:18
axwok02:18
thumperah bugger02:20
thumperpackage review02:20
* thumper kicks it again02:20
thumperperhaps one day soon again02:20
thumperalthough I think it is important, especially with waigani needing to learn stuff02:21
thumperwe should definitely get back into it02:21
thumperhowever today, I have to take a daughter to the physio02:21
=== thumper is now known as thumper-afk
=== thumper-afk is now known as thumper
thumperWTF?03:56
thumperbootstrapping local provider fails with trunk03:56
thumperand it didn't delete the .jenv03:57
thumperand destroy environment failed03:58
=== mwhudson is now known as zz_mwhudson
thumperas did with --force03:58
axwthumper: figure out what's breaking? I'm just testing a fix for azure, I can look after that04:37
davecheneyaxw: thanks for the review04:56
axwdavecheney: nps04:56
axwwallyworld_: a real quick one please, fixes at least one of the critical azure bugs. https://codereview.appspot.com/51300044/05:03
wallyworld_sure05:04
wallyworld_axw: oh shit that looks like my fault05:04
axwyeah, it's easy to do.. the defaults stuff is pretty confusing IMO05:04
wallyworld_the whole config stuff is confusing05:06
thumperaxw: yeah, it was my code in cloudinit causing it to break05:16
thumperbut it should have been able to remove it, but it didn't05:16
axwmk05:16
davecheneyaxw: doesn't look like the bot is running05:39
axwhm yeah mine hasn't landed either. I don't have access05:40
axwthumper: can you please poke the bot?05:40
axwwallyworld_: hey, can you please poke the bot?06:47
wallyworld_sure06:47
axwonce it's moved, I'll see if I can get poking privileges...06:47
wallyworld_yeah, will be different infrastructure06:49
rogpeppe1mornin' all08:58
axwdimitern: heya. just saw your comment. I don't understand how the preferences file gets picked up by apt-get? runcmds run after apt-get installs packages?08:58
axwmorning rogpeppe108:58
rogpeppe1axw: hiya08:58
=== rogpeppe1 is now known as rogpeppe
dimiternmorning all08:58
dimiternaxw, in sshinit I made it so that it gets called immediately after add-apt-repo08:59
axwdimitern: yep that bit works, but sshinit is only used for bootstrap08:59
axw(and add-machine ssh)08:59
dimiternaxw, so both add-machine and bootstrap manual will work, don't you agree?09:00
axwdimitern: I don't, because they're doing things at different times. For add-machine, cloud-init runs apt-get update, apt-get upgrade, apt-get install XXX, then finally it'll write the preferences file09:01
axwso I can't see how the pinning takes effect for non-bootstrap machines09:01
dimiternaxw, can you point me to the code you're referring to that executes runcmd after any packages were installed?09:02
axwdimitern: it's in cloud-init itself. I'll have a rummage in my downloads..09:03
dimiternaxw, so, looking at cloudinit/sshinit/configure.go - we have addPackageCommands very early, before the runcmds are executed09:04
axwdimitern: yes, this is meant to mimic cloud-init09:05
dimiternaxw, and in case we have an apt source with prefs, we do add-apt-repository, and then immediately it installs the prefs file09:05
dimiternaxw, (in addPackageCommands)09:05
axwyes I get that - just ignore sshinit09:05
axwit is not used for add-machine09:06
axwbootstrap is fine09:06
dimiternaxw, ok, so going back to environs/cloudinit/ then?09:06
axwyes09:06
axwand what happens when you provision a non-bootstrap machine09:07
dimiternaxw, in ConfigureJuju we have several AddPackage commands before getting to MaybeAddCloudArchiveCloudTools09:07
dimiternaxw, but that's fine, because none of these packages are affected by the bug - they're in main, not in cloud-tools09:07
dimiternaxw, the only problematic package is mongodb-server09:07
axwdimitern: ok. if we don't care if we get other things from cloud-tools that's fine09:08
dimiternaxw, yep, sorry if i wasn't clear09:09
axwno worries09:09
dimiternaxw, only mongodb-server and only on precise needs to be installed from cloud-tools pocket09:09
axwdimitern: if you don't mind I will move it up into environs/cloudinit though, as a bootcmd09:09
axwwhen I have nothing better to do :)09:09
dimiternaxw, i don't mind at all, but please live test it ;)09:10
axwyes definitely09:10
dimiternaxw, now there's a slight imperfection (two actually) - the prefs file is created twice09:10
axwhow's that?09:10
dimiternaxw, due to the addfile call - both after adding the repo and when all the rest runcmds are run, but the contents are the same09:11
axwah right09:11
dimiternaxw, and the second issue is the duplication of logic in sshinit, but adding a boot cmd should fix both09:11
dimiternmgz, hey09:12
axwrogpeppe: did you get anywhere with reporting bootstrap errors back to the user?09:13
axwor if you've shelved it, is there something I can pick up?09:13
rogpeppeaxw: no, i didn't09:13
dimiternaxw, i had some issues trying out manual bootstrapping on an existing saucy VM09:14
rogpeppeaxw: i had an idea as to how i might do it, but the sprint got in the way and then i haven't got back to it, i'm afraid09:14
axwrogpeppe: nps09:14
axwthanks09:14
axwdimitern: what's issues?09:14
axwwhat*09:14
dimiternaxw, it seems it tries to use ubuntu@ even if I set bootstrap-user to something else; and doesn't get very far09:14
axwdimitern: it will first try to use ubuntu@ tosee if it has already set up the ubuntu user. it *should* then use bootstrap-user to initialise the ubuntu user09:15
* axw checks that this works on his machine still09:15
dimiternaxw, I had to actually create an ubuntu user and authorize my ssh key so i can login passwordless, but it still insisted on asking for password in sudo09:15
dimiternaxw, although, it might be all moot, because some time down the road i realized i was using sudo juju bootstrap, and that was getting /usr/bin/juju, i.e. 1.16.5 from the ppa09:17
axwhrm, seems it's broken09:17
axwyou shouldn't be using sudo for manual09:17
dimiternbut once i started using trunk it went fine, except for one small thing09:17
dimiternyeah, i know - i was just lazy and relying on bash history :)09:17
axwok09:18
dimiternthe small thing is I get "storage-auth-key" expected string, got "" after I did destroy-environment, and then status09:18
axwhrm09:19
dimiternlet me try again09:19
axwsounds like prepare failed09:19
axwdimitern: it is broken on trunk tho09:19
dimiternaxw, what is?09:19
axwdimitern: I started getting rid of BootstrapStorager, and broke it in the process. will see if I can fix it now09:19
dimiternaxw, ah, ok09:20
axwinitialising the ubuntu user09:20
axwdimitern: in the mean time, if you enable passwordless sudo for unbuntu, you should be good to go09:21
dimiternaxw, yep, that's how I finally made it09:21
dimiternaxw, is it normal to get "manual:" instance names in a manual env? when I used add-machine the instance name was "manual:<IP>"09:22
axwdimitern: just for the bootstrap node09:23
dimiternaxw, but since you can't start more instances..09:24
dimiternaxw, i successfully deployed stuff on 0, but deploying without --to gets me phantom machines and some errors later on in status09:24
axwdimitern: yeah, I've got a branch up for review that disallows add-machine (except ssh:...)09:25
axwthe "Wire up prechecker" one09:25
axwit's back from the dead09:25
dimiternaxw, perhaps any commands that could result in an environs.StartInstance call should be disallowed09:26
axwdimitern: yes, that's what will happen09:26
dimiternaxw, sweet!09:26
axwdimitern: also, you won't be allowed to create contains on providers that don't support it09:27
axwcontainers*09:27
dimiternaxw, ah! that reminds me - i've encountered an issue while live testing in ec2 yesterday - the lxc provisioner kept dying because lxc is not supported09:28
* dimitern should make a habit of saving odd errors and stuff like that for easier reporting later09:29
axwhad you tried adding a container?09:29
dimiternnope09:30
dimiternit's no use - nothing can access it yet09:30
axwyeah, just wondering why it would be doing that09:30
dimiterni did in previous tests, they deploy ok, but can't relate to each other09:31
dimiternmgz, so i can see bug 1241674 you fixed is released in 1.17.1, and bug 1188126 is still in progress?09:33
_mup_Bug #1241674: juju-core broken with OpenStack Havana for tenants with multiple networks <cts-cloud-review> <openstack-provider> <juju-core:Fix Released by gz> <https://launchpad.net/bugs/1241674>09:33
_mup_Bug #1188126: Juju unable to interact consistently with an openstack deployment where tenant has multiple networks configured <canonistack> <cts-cloud-review> <openstack-provider> <serverstack> <pyjuju:Triaged> <juju-core:Triaged by gz> <https://launchpad.net/bugs/1188126>09:33
dimiternadeuring, hey, are you working on bug 1276462 ?09:50
_mup_Bug #1276462: add a JUJU_TESTING environment variable for stats=0 on charm store interactions <juju-core:In Progress by adeuring> <https://launchpad.net/bugs/1276462>09:50
adeuringdimitern: yes09:50
dimiternadeuring, but there's no MP yet?09:51
adeuringdimitern: not yet ready -- i'm still learning the code base, so I#m not that fast09:52
dimiternadeuring, ok, just checking, thanks09:52
dimiternmgz, standup?10:47
dimiternniemeyer, thanks for replying - i understand you've been busy lately, didn't mean to bug you unnecessarily :)11:56
niemeyerdimitern: Heya12:00
dimiternniemeyer, welcome back!12:01
niemeyerdimitern: Thanks.. sorry for taking longer than I wish12:02
dimiternniemeyer, no problem12:02
sinzuijamespage, maybe I was confused about packaging for the 1.16.6 release. Since trusty is leaping to 1.17.x, should I release 1.16.6 though the stable ppa only?14:11
jamespagesinzui, yes14:11
jamespagesounds good to me14:11
sinzuithank you jamespage14:14
=== frankban_ is now known as frankban
jamespagesinzui, I started work on the .5 SRU for saucy last week - I'll hold off until .6 is done as well14:14
sinzuiunderstood14:15
niemeyerdimitern: ping14:28
dimiternniemeyer, hey14:28
niemeyerdimitern: Heya14:28
niemeyerdimitern: We have a small inconsistency being introduced which would be nice to brainstorm on14:29
niemeyerdimitern: Nowdays we have ec2.RunInstances14:29
niemeyerNowadays14:29
niemeyerdimitern: This type is used as an options structure when calling EC2.RunInstances14:30
dimiternniemeyer, yes?14:30
niemeyerdimitern: The network support is now adding NetworkInterfaceOptions, and NetworkInterfaceSpec14:30
niemeyerdimitern: Which is not quite great14:30
dimiternniemeyer, yeah, it was bugging me a bit14:31
niemeyerdimitern: They're both very specific to a given context14:31
niemeyerdimitern: although their names say nothing about that context14:31
dimiternniemeyer, they are14:31
niemeyerdimitern: What will we have next? NetworkInterfaceStuff? :)14:31
dimiternniemeyer, i'm open to suggestions on naming :)14:31
niemeyerdimitern: Following the lead of RunInstances, NetworkInterfaceOptions should probably be called CreateNetworkInterface14:32
dimiternniemeyer, ok and NetworkInterfaceSpec - NetworkInterfaceOptions?14:32
niemeyerdimitern: What's the difference between the two?14:34
niemeyerdimitern: In terms of data14:34
dimiternniemeyer, just a sec14:34
dimiternniemeyer, so the *Spec is used only in RunInstances, because it can specify either a new or an existing NIC (Id empty or not)14:35
niemeyerdimitern: In terms of data14:35
niemeyerdimitern: It looks like they are exactly the same, except for two fields.. and one of these fields runs every other field irrelevant14:36
dimiternniemeyer, in RunInstances you can specify more things (and different ones) than in CreateNIC14:36
dimiternniemeyer, DeviceIndex and DeleteOnTermination do not apply for CreateNIC14:37
dimiternniemeyer, and security groups are specified only by id, not name or id14:38
niemeyerdimitern: Right.. what is device index about?14:38
dimiternniemeyer, where to "mount" the NIC14:38
dimiternniemeyer, eth0, 1, ..14:38
niemeyerdimitern: I'm tempted to suggest RunNetworkInterface14:41
dimiternniemeyer, sgtm14:41
niemeyerdimitern: It's not great, but I cannot come up with anything nice that would fit in a tweet :)14:41
dimiternniemeyer, indeed :)14:42
dimiternniemeyer, so i'll s/NetworkInterfaceOptions/CreateNetworkInterface/ and in the next branch s/NetworkInterfaceSpec/RunNetworkInterface/14:42
niemeyerdimitern: Thanks14:43
dimiternmgz, ping14:50
dimiternniemeyer, I've just noticed in https://codereview.appspot.com/54570048/ there are similar *Status constants - do you want them removed like in the vpc prereq?14:53
dimiternniemeyer, I can do it in the RunInstances CL, because I've just submitted the NICs one14:54
axw__sinzui: not sure if this classifies as critical or not, but manual provider is buggered on trunk -- https://bugs.launchpad.net/juju-core/+bug/127925915:01
_mup_Bug #1279259: manual: bootstrap fails if ubuntu user is not initialised <manual-provider> <juju-core:Triaged by axwalk> <https://launchpad.net/bugs/1279259>15:01
axw__I'm working on it now, but haven't marked it against 1.17.3 in case you want to release without the fix15:02
dimiternnatefinch, are you around for a review of https://codereview.appspot.com/60620043/ ?15:10
sinzuiaxw__, I think it is critical. I think we are two weeks away from having a manual provisioning env that is tested with every revision merged15:14
axw__sinzui: ok, will try to get it fixed tomorrow. thanks15:16
dimiternniemeyer, ..or you think it's ok to leave them as they are?15:17
natefinchdimitern: yeah15:19
dimiternnatefinch, ta!15:19
mattywrogpeppe, afternoon - do you have a moment?15:23
rogpeppemattyw: hiya15:23
rogpeppemattyw: yeah, i do15:23
=== luca__ is now known as luca
=== hatch___ is now known as hatch
niemeyerdimitern: Hmm16:06
dimiternnatefinch, review poke16:07
niemeyerdimitern: INdeed, it's the same issue16:09
niemeyerdimitern: and we can already see the mentioned issue surfacing16:09
dimiternniemeyer, ok then, I'll remove the constants before I submit the next CL16:09
niemeyerdimitern: ec2.AvailableState, and ec2.AvailableStatus16:09
dimiternniemeyer, AvailableState is gone now16:10
niemeyerdimitern: Right, I mean that the motivation I provided to not do that is real16:10
niemeyerdimitern: Either we put context in their name, or we drop them.. I suggest dropping until we have a better idea of how/when to use them16:11
dimiternniemeyer, noted, will drop them16:11
dimiternniemeyer, and apart from that only one CL left - yay! :)16:13
rogpeppedimitern: can you tell me something about the intended use of juju.apiState.cachedInfo ?16:15
dimiternrogpeppe, that's where the api info creds are cached for the CLI16:16
rogpeppedimitern: ah, i see where it's initialised now16:17
rogpeppedimitern: it seems a weird place to stash that16:17
rogpeppedimitern: apiState is supposed to be an ultra-thin wrapper around state16:17
rogpeppedimitern: not a place to store arbitrary runtime context16:17
dimiternrogpeppe, if that was the intent, it wasn't well documented :)16:18
rogpeppedimitern: sorry, i thought this comment was reasonably clear.16:19
rogpeppe// apiState wraps an api.State, redefining its Close method16:19
rogpeppe// so we can abuse it for testing purposes.16:19
dimiternrogpeppe, also, you're the reviewer on this change btw ;) r220916:19
rogpeppedimitern: i'm sure we need something like this - i was just a bit surprised :-)16:19
rogpeppedimitern: memory shmemory :-)16:20
dimiternrogpeppe, hehe16:22
natefinchdimitern: sorry, got sidetracked by the kids for a bit.  Review is pretty much done16:22
dimiternnatefinch, thanks!16:32
dimiternniemeyer, thanks for all the reviews!17:19
niemeyerdimitern: np, thanks for pushing these change17:19
niemeyers17:19
dimiternniemeyer, there might be more to come, but these should suffice for now17:20
dimiterng'night all!17:39
rogpeppenatefinch: largest CL ever? https://codereview.appspot.com/62230043 :-)18:39
hatchdo people use the GUI with maas?19:02
marcoceppihatch: I do/have19:06
hatchmarcoceppi thanks :)19:06
natefinchrogpeppe: lol, nice19:11
=== zz_mwhudson is now known as mwhudson
marcoceppinatefinch: is juju ipv6 safe?20:33
natefinchmarcoceppi: I believe so, but I don't know that I've actually tried it.  I know there's code for IPv6 in there, though.,20:34
rogpeppe1marcoceppi: i think it's somewhat unlikely20:38
rogpeppe1marcoceppi: for example, i think we often assume we can make a valid host/port combo by simply appending ":port"20:38
marcoceppirogpeppe1: you mean within charms, or within the juju core?20:39
rogpeppe1marcoceppi: the latter20:39
rogpeppe1marcoceppi: it *might* be ok, but it hasn't been verified20:40
marcoceppiah, yeah, it'd need to be encapsulated within []20:40
rogpeppe1marcoceppi: yup20:41
natefinchmarcoceppi: I certainly wouldn't count on it without some heavy testing.20:41
marcoceppithanks20:42
thumpero/ marcoceppi20:58
marcoceppithumper: \o/20:58
thumpermarcoceppi: if juju isn't ipv6 safe we damn well ought to make it so20:58
thumperI'd like charms to be able to ask for an ipv6 address20:58
thumperhey marcoceppi, are you wanting my incredibly hacked up github webhook charm?21:00
thumpernatefinch: are you currently working on any of the 1.17.3 or 1.18.0 bugs?21:04
natefinchthumper: I just started looking into the mongo location bug, but haven't gotten far with it21:06
thumperok21:06
rick_h_thumper: hey, got a sec? I hear you're the guy to talk to about getting multiple local envs working in lxc land?21:08
thumperrick_h_: yes21:09
rick_h_thumper: I hear there's 3ish tricks to make it work?21:09
thumperrick_h_: it works21:09
rick_h_thumper: in trunk? in 1.17.3 I get an error on the mongo port not being available21:09
rick_h_errr 1.17.221:09
thumperrick_h_: you just need to make sure that you have different ports for mongo, api, storage21:09
rick_h_ok, yea I've got different ports for the api/storage but didn't know what key to use for mongod21:09
rick_h_I didn't see any docs around it for the env.yaml21:10
thumperrick_h_: here is my config for a local that will run with a default local. http://pastebin.ubuntu.com/6922215/21:10
rick_h_thumper: thanks, looking21:11
rick_h_ah, state-port I don't have21:11
rick_h_thanks thumper, I'll try that out.21:12
natefinchI think I could save myself a lot of frustration if I just did  ln -s /usr /user21:38
natefinchI love it when comments just outright lie.21:42
natefinch/ This is a variable only to support unit testing.21:42
natefinchvar mongodPath = "/usr/bin/mongod"21:42
natefinch(is then used in production code)21:42
marcoceppithumper: yes please, I heard I should know more about it21:43
thumpermarcoceppi: ok, will send, but you have to realize it is demo-ware :-)21:43
marcoceppithat's fine!21:43
natefinchthumper: where does the new mongod live in trusty?21:45
sinzuinatefinch, It was true when the test was written :) Well I assume test-driven development...otherwise it is a malicious lie21:45
thumpernatefinch: *shrug*21:45
thumpernatefinch: do you mean the juju-db package one?21:46
natefinchthumper: yeah21:46
thumpernatefinch: that is somewhere special21:46
thumperprobably need to look in the package itself21:46
thumperI do know that it isn't in th path21:46
natefinchsinzui: heh, yeah.  I assume someone put it there for a test,and then someone else came along, needed a path for mongo, and said "hey, there's one already defined" and used it.21:46
sinzuinatefinch, I had the path, and getting it again21:46
* sinzui keeps switching between version of juju and deps21:47
sinzuinatefinch, /usr/lib/juju/bin/mongod21:48
natefinchsinzui: thanks21:49
sinzuinatefinch, this is all that juju-mongodb added to /usr/lib/juju21:50
sinzuihttp://pastebin.ubuntu.com/6922408/21:50
davecheneycan the bot owner please update distinfo on that bot host21:53
davecheneyI can't land my change because the os runnong on that machine doesn't know about trusty21:53
davecheneythumper: pong22:21
thumperdavecheney: did I ping you?22:21
davecheneythumper: do you have access to the bot ?22:21
thumperdavecheney: yeah...22:22
thumperwhat do you need?22:22
davecheneycan you do a `apt-get update && apt-get install distro-info`22:22
davecheneyso that the bot knows about trusty22:22
* thumper goes to try22:22
davecheneythank you22:22
thumperdavecheney: it says it is already at the latest revision22:23
thumperdavecheney: however that doesn't list trusty22:25
thumperdavecheney: how do we update the source for it?22:26
davecheneyoh dear22:26
davecheneythumper: shoulnd't need to22:27
davecheneywe publish distro-info's for all supported releases22:27
davecheneyis the bot running quantal ?22:27
thumper--devel still doesn't list it22:27
thumperbot is running precise22:27
thumperlists up to saucy22:27
thumperso...22:27
thumpersomething there is all fubared22:27
davecheneytry --all22:27
thumperdid22:28
thumperno trusty22:28
davecheneymaybe juju shouldn't depend on this pacakge22:28
thumperheh22:28
davecheneythis isn't the first time it's let us down22:28
thumperblame someone, anyone else22:28
thumpercan't be our fault22:29
davecheneywe had the same bullshit in August when Saucy came out22:29
wallyworldsinzui: hey. is bug # 1247175 really a block for 1.18? can't we just use the release notes to tell people to update any scripts rather than having to develop/test code which will be removed next release?22:29
_mup_Bug #1247175: juju sync-tools does not support --destination <ci> <regression> <juju-core:Triaged> <https://launchpad.net/bugs/1247175>22:29
thumperwho updates this?22:29
thumperwallyworld: hey22:29
wallyworldo/22:29
thumperwallyworld: I have a proposal that adds an upgrade script22:29
thumperwallyworld: needs agent.Config in the upgrade context22:29
wallyworldok22:29
wallyworldwill add it22:29
thumpermy branch adds it22:29
thumper:-)22:29
thumpertake a look22:29
wallyworldrightio22:29
sinzuiwallyworld, How do we get people to read the release notes and update their scripts when apt-put it there22:30
davecheneysinzui: put clues in the release notes22:30
davecheneyto install the package users must answer 5 questions drawn from the release notes22:30
davecheneyit's like copy protection in the 80's22:31
sinzuiwallyworld, I think the win users are the only one who know there are release notes because they are downloading the client from the milestone page22:31
wallyworldsinzui: ok, i'll add the code to support --destination with a deprecation warning22:31
wallyworldthumper: i'm seriously considering having each major.minor version have its own sub package under juju-core/upgrades22:33
wallyworldotherwise that top level package will bloat22:33
thumperwallyworld: I have no strong feelings either way22:33
thumper+1 to avoiding bloat22:33
thumpersubpackage sounds fine22:34
thumperwallyworld: this one is important because I fucked up: https://code.launchpad.net/~thumper/juju-core/fix-provider-query-in-machine-env-worker/+merge/20586422:34
wallyworldok, will look at that one too22:34
thumperwallyworld: and this one is the one with the upgrade https://code.launchpad.net/~thumper/juju-core/juju-run-on-machine-with-no-units/+merge/20605022:34
wallyworldyeah already found that one22:34
* thumper goes to file a bug for the fuckup22:35
sinzuidavecheney, we could have a dot-file for each juju version in the user HOME. when juju runs and doesn't find the dot-file, it shows the user the release notes and will not do anything unit the user agrees to save the file.22:37
davecheneysinzui: like the thing that sudo does22:38
sinzui\o/ home brew accepted juju 1.16.6. I can close the release log22:39
thumper\o/22:40
wallyworldthumper: i was imagining description would be short, able to be used in logging. look like i need to add a Name field22:42
thumperwallyworld: yeah, ok22:42
thumperwallyworld: I was wanting it to be nice and long and descriptive :-)22:43
wallyworldnot sure who would see it22:43
thumpermaybe it doesn't need to be there22:43
wallyworldi'dd do it as a code comment22:43
thumperand instead becomes a "docstring" on the function22:43
wallyworldand keep the desc short22:43
thumperI'm happy either way22:43
thumperwan't sure what was needed22:43
thumpersince we are in a brave new world22:44
wallyworldit's really for devs what you have done i think22:44
wallyworldyeah22:44
thumperI'm happy to change it22:44
wallyworldso +1 to doc string :-)22:44
wallyworldthanks :-)22:44
wallyworldi'll update the Description attr doc string also22:44
thumperkk22:44
wallyworldso people know to keep it short22:44
thumperyep22:44
wallyworldthumper: i has upgradeOperation as a base struct for UpgradeStep implementations. if you want to introduce upgradeStep instead, which I think is fine, can you remove upgradeOperations?22:49
wallyworlds/s//22:49
thumperI assumed that you would have one soon, but I needed something for the branch22:51
thumperhappy to wait until you've landed something and update it22:51
thumperor merge in as a dependency22:51
wallyworldif yours is ready first, you can land it and i'll deal with it22:51
thumperkk22:51
wallyworldthumper: we are missing a test for the actual business logic22:52
wallyworldthat does the upgrade22:52
wallyworldespecially a test to ensure it is idempotent22:52
thumperyeah...22:52
wallyworldi think all upgrade steps should have explicit idempotent tests22:52
thumperwas wonderinga bout that22:52
thumperI have problems though22:52
thumperas I don't have an ubuntu user22:52
wallyworldand we should reject when reviewing if they don't22:52
wallyworldmock22:53
thumperso how do we write a test for that22:53
thumperhmm...22:53
wallyworlddon't hard code /home/ubuntu22:53
wallyworlduse the juju helper func22:53
wallyworldto convert ~/ubuntu22:53
wallyworldthat way you can test with a fake /home/ubuntu22:53
thumperhmm... o...k...22:54
thumperwill try to write something22:54
wallyworlddo you know the function i mean?22:54
thumperno22:54
thumperbut I can grep :)22:54
wallyworldit's in utils, let me check22:54
wallyworldi think it's UserHomeDir22:56
wallyworldbut your test needs to have set up a fake home22:57
wallyworldcan't quite recall exactly without digging a bit22:57
thumperkk22:57
wallyworldMakeEmptyFakeHomeWithoutJuju22:58
=== thumper is now known as thumper-lunch

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