/srv/irclogs.ubuntu.com/2015/01/22/#juju-dev.txt

thumperyeah, I think two methods could work00:00
menn0my suggested name sucks :)00:00
anastasiamacthumper: how can i test the command behind a feature flag?00:01
anastasiamacthumper: how do i set feture flag for tests*?00:01
thumperanastasiamac: set the feature flag in the test00:01
thumperanastasiamac: I have something in my current branch00:01
thumperanastasiamac: that makes it trivial00:01
thumperanastasiamac: can you wait?00:01
thumperwhere current means hopefully by the eod00:02
anastasiamacthumper: i can wait for the final land, but I need a way while developing now...00:02
anastasiamacthumper: i'll look at what's currently done..00:02
thumperanastasiamac: look at the actions code00:02
anastasiamacthumper: unfortunately, the test is not mine, m just adding to it...00:03
anastasiamacthumper: thnx!00:03
jw4anastasiamac: cmd/juju/action/action.go :: const FeatureFlag string = "action"00:05
jw4anastasiamac: and then just grep usages of FeatureFlag in cmd/juju/action/...00:05
anastasiamacjw4: yep. i got this far. but it's never set in any of the tests....00:06
jw4anastasiamac: ah; gimme a sec00:07
thumperjw4: btw, my branch does change that... hopefully it'll land by EOD00:07
thumperif all goes well00:07
menn0thumper: right. i have all the per-env workers starter under the envworkermanager00:09
menn0thumper: but there's no way it'll work for a non-state server env just yet00:09
thumperyep00:09
jw4anastasiamac: cmd/juju/main_test.go00:09
thumpermenn0: getting there :)00:09
menn0thumper: yep :)00:09
menn0thumper: the remaining bits aren't hard, but I do need to change the envworkermanager a little00:10
menn0thumper: doing that first in a separate branch00:10
jw4anastasiamac: setFeatureFlags("...")00:10
anastasiamacjw4: AHHH! AWESOME :D00:10
anastasiamacjw4: thnx!00:10
jw4anastasiamac: yw - I'm looking forward to seeing thumpers branch too :)00:11
anastasiamacjw4: u r removing "action" for one of the runs... mind if I'll modify it ot be a bit more genric to remove any features that are behind the flags?00:14
jw4anastasiamac: not at all - please do00:15
anastasiamacjw4: gr8 :D00:15
thumpermenn0: branch done, just waiting for the factory one to land00:27
thumperbefore proposing00:27
* thumper pops the stack again00:27
menn0thumper: kk00:28
menn0thumper: here's a little change to envWorkerManager that I need to get things working correctly in the machine agent00:34
menn0http://reviews.vapour.ws/r/785/00:34
thumpermenn0: http://reviews.vapour.ws/r/786/00:37
anastasiamacjw4: m thinkn http://pastebin.ubuntu.com/9812212/00:41
jw4anastasiamac: that looks good to me00:42
anastasiamacjw4: excellent! i'll keep it for now until thumper's branch lands :P00:42
jw4coolio00:43
jw4:)00:43
katcowallyworld_: got time for a chat about leadership settings before the standup?00:44
wallyworld_katco: maybe, i'm in the middle or trawling log files for a potential 1.21 issue, give me a few minutes and i'll ping you00:44
katcowallyworld_: np at all, whenever you're ready00:45
* thumper has popped back up to the start of the day00:46
thumperjust one branch on the stack now00:46
menn0thumper: looking00:46
thumperah poo00:53
thumpercan't wrap the facade registration in the init method because the init methods are called before any other code, like mocking out the environment00:53
thumperso we have to intercept calls00:53
thumperbah humbug00:54
=== kadams54-away is now known as kadams54
menn0thumper: review done00:57
menn0looks good00:57
=== kadams54 is now known as kadams54-away
perrito666sometimes embedding feels like being back with html and iframes01:07
* thumper pushes two items on to the stack01:17
menn0thumper: can we have a hangout? I have some stuff to show you.01:18
thumpermenn0: give me five minutes?01:18
menn0thumper: sure01:18
thumpermenn0: now?01:23
thumperhangout again?01:23
thumperwow, exactly five minutes01:23
thumperamigood or amigood?01:23
thumpermenn0, axw, wallyworld_: https://github.com/juju/utils/pull/10601:24
wallyworld_thumper: we're in standup,01:24
thumperkk01:24
menn0thumper: sorry... I missed your message01:27
menn0thumper: hangout now?01:27
thumperI'm there01:28
* perrito666 remaps his brain for go instead of python where said map was still missing01:33
perrito666it is amazin how python finds ways to crawl back01:37
=== kadams54-away is now known as kadams54
=== TheRealMue is now known as TheMue
* thumper headdesks02:24
thumperwhy isn't this working...02:24
thumperah fark...02:25
thumperWTF?  why is it looking for facade version 0?02:28
anastasiamacthumper: version 0 is for facades that existed before versioning was done...02:29
thumperbut I have registered it with version 102:29
thumperbut the apiserver is doing a lookup for 002:29
thumperversion 1 is returned in the login results02:29
anastasiamacthumper: m sure it is doing what u asked it to :D02:30
anastasiamacthumper: if u r in the tests, i saw hardcoding to 0...02:32
anastasiamacthumper: testing/apicaller.go02:32
anastasiamacthumper: in juju/juju/api/base02:33
thumpercaller.BestFacadeVersion is returnig 002:33
anastasiamacthumper: yep :(02:33
thumperWTF?02:33
thumperdamn,... this code is terrible02:34
thumperI needed to add to the map in api/facadeversions.go02:36
=== kadams54 is now known as kadams54-away
dimiternmorning o/02:39
perrito666dimitern: I see your morning and raise you a gnight02:40
dimiternperrito666, good night to you then ;)02:40
axwthat moment when you think you've finished a review, only to see you're on page 1 of 303:04
anastasiamacaxw: m glad that fun is equally shared within the team :D03:11
axwfor some value of fun03:12
=== kadams54-away is now known as kadams54
menn0thumper or axw: an easy review: http://reviews.vapour.ws/r/788/03:40
thumpermenn0: a not so easy review http://reviews.vapour.ws/r/789/03:41
menn0thumper: that seems like an unfair trade :)03:41
thumper:)03:42
menn0thumper: looking :)03:43
menn0thumper: done. a thing of beauty :)03:58
thumpermenn0: fixed and submitted for merge04:09
axwwallyworld: I'm just going to change the diskformatter apiserver to filter out unattached block devices05:14
axwshould've done that in the first place05:14
wallyworldok05:14
axwwallyworld: published my reply so you can see my comments while I'm doing that05:15
wallyworldlooking05:15
wallyworldaxw: disagree about the singular comment. singular tends to apply for Set operations; but we also have ListKeys(), AddKeys(), MachinesWithTransientErrors(), WatchEnvironMachines() etc05:19
wallyworldthe plural reflects that we get multiple results05:19
axwwallyworld: you can argue either way. in apiserver/provisioner we have Machine, DistributionGroup, ProvisioningInfo05:20
wallyworldMachine() get a single machine only05:21
wallyworldfor a single given tag05:21
wallyworldwhereas here we are getting multiple BlockDevices for many tags05:21
axwwallyworld: uniter AssignedMachine, GetOwnerTag ... these take params.Entities05:22
axwwhatever, I can change it05:22
wallyworldif that's ok it would be good. AssignedMachine is a little unfortunate but i can see why it was done - it gets the single AssignedMachine for each of the specified units05:24
wallyworldaxw: when done, can you ping me as i'd like to discuss filesystem providers etc05:25
axwwallyworld: just testing live, won't be long05:29
wallyworldsure05:29
axwle sigh, now I've broken something05:41
axwwallyworld: let's chat, I'll fix this later05:42
wallyworldok05:42
=== kadams54 is now known as kadams54-away
wallyworldaxw: i imagine we will be adding a new hook context value for the storage attached hook - "storageInstanceId". this will then be used in storage-get. agree?06:55
axwwallyworld: yes06:55
wallyworldrightio06:56
axwwallyworld: although, I've been wondering whether it shouldn't just be storage-changed; collapse multiple attachments into one event06:56
axwin which case there would be no ID06:56
axwand instead we'd need a storage-list06:57
axwwhich we may well want anyway06:57
wallyworldhmmm, that might work06:57
wallyworldsince the spec calls for storage-get, perhaps we should still do that06:57
wallyworldand storage-attached06:57
axwwallyworld: we would need storage-get anyway, but it may need a parameter06:58
wallyworldi could make storage-get take a list06:58
wallyworldwell, it would need the storageInstanceId parameter06:58
wallyworldi could make that a slice of ids06:58
wallyworldi guess06:58
wallyworldi assume hook tool parameters can be slices, never written one before06:59
axwwallyworld: they're just commands, they can take whatever you want them to06:59
wallyworldwasn't sure about the marshalling implications07:00
wallyworldof passing around the parameters07:00
wallyworldoh i see, there's a Context07:01
wallyworldnever written a hook or hook command before  :-)07:01
=== cmars` is now known as cmars
dimiternvoidspace, axw, wallyworld, others? PTAL http://reviews.vapour.ws/r/790/10:04
TheMuedimitern: core meeting?10:04
dimiternTheMue, omw10:04
voidspacedimitern: oops, got distracted omw10:05
dimiternaxw, perrito666, wallyworld, team meeting?10:11
voidspacedimitern: TheMue: are we waiting for 11am for our standup or doing it now?10:29
TheMuevoidspace: dimitern: np with doing it now10:29
dimiternvoidspace, TheMue, just give me 3 mins and I'll be there10:30
voidspacedimitern: ok10:30
TheMueok10:30
dimiternvoidspace, i'm in the hangout10:34
voidspaceomw10:35
perrito666morning10:41
voidspaceperrito666: o/10:48
dimiternvoidspace, I've reviewed your NetworkInterfaces() implementation for MAAS - it's awesome, please propose it :)11:00
* dimitern steps out for a while11:36
voidspaceTheMue: thanks for the review12:26
voidspaceTheMue: listConnectedMacs calls the MAAS API list_connected_macs12:27
TheMuevoidspace: yw, only minor notes12:27
voidspaceTheMue: so I don't think the suggested name change is actually helpful12:27
voidspaceTheMue: but a comment is a good idea12:27
TheMuevoidspace: I know, but inside a code I like to use its conventions instead of the one of the API it calls ;)12:27
voidspaceTheMue: well, the name should make it's clear what its doing - and I don't think it's unclear in usage or naming12:28
voidspaceTheMue: and the parallel with the underlying API is useful for understanding12:28
voidspaceI'll happily add the comment though12:28
voidspacedoing it now12:28
TheMuevoidspace: also sometimes more explicit naming is helpful for the poor guy maintaining this code in three years :D12:28
voidspaceTheMue: comment pushed, should be clear now http://reviews.vapour.ws/r/791/diff/#12:33
mfoordI somehow managed to crash my machine12:41
mfoorddropped the keyboard, knocking the usb hub, and whoops...12:41
perrito666wow, that is amazing12:41
mfoordperrito666: yeah, not sure what happened :-)12:42
perrito666I would love to see the bug report :p12:44
perrito666mfoord: https://bugs.kde.org/show_bug.cgi?id=10831212:46
perrito666it used to be bundled with a picture of the ferrent12:46
perrito666ferret*12:46
mfoordHah12:46
mfoordnice12:46
perrito666https://bugsfiles.kde.org/attachment.cgi?id=1162212:47
dimiternmfoord, you've got a review12:58
dimiternmfoord, and thanks for reviewing mine - btw can you clarify a bit about replaceContainerConfig?12:58
dimiternmfoord, ah, sorry I got you12:59
dimiternmfoord, so I didn't want to couple replaceContainerConfig too much with the networking config, as like this it's also useful for storage config13:00
mfoorddimitern: ah, ok13:01
mfoorddimitern: at least instead of a list of lines it could take a string and do the split itself13:01
mfoorddimitern: have to call split manually before every call (all one of them, right?) seems pointless13:01
mfoorddimitern: not tying it to network is fine though13:01
dimiternmfoord, fair point13:01
dimiternmfoord, will do the split internally13:01
mfoordTheMue: dimitern: thanks for the reviews guys13:02
mfoorddimitern: I'm still looking through that PR13:02
mfoorddimitern: but going on lunch now, will return to it13:02
TheMuemfoord: yw13:02
dimiternmfoord, sure, enjoy!13:06
TheMuedimitern: would you mind taking a look at https://github.com/TheMue/juju/tree/networking-interfaces?14:11
TheMuedimitern: it not yet has merged michaels latest changes14:11
TheMuedimitern: but so far it compiles and tests fine14:11
dimiternTheMue, sure, I'll have a look in a bit14:20
TheMuedimitern: thx14:23
wwitzel3ericsnow: standup?16:01
ericsnowwwitzel3: coming16:02
sinzuinatefinch, master (1.23) has a regression in the last commit. I reported bug 141365216:03
mupBug #1413652: TestNetworkInterfaces fails on ppv64el unit tests <ci> <ppc64el> <regression> <test-failure> <juju-core:Triaged> <https://launchpad.net/bugs/1413652>16:03
alexisbdimitern, you still around?16:05
perrito666natefinch: ?16:07
=== ChanServ changed the topic of #juju-dev to: https://juju.ubuntu.com | On-call reviewer: see calendar | Open critical bugs: 1413424 1413424
dimiternalexisb, yes16:17
alexisbdimitern, I was just wondering if you had insight on bug 14135652 mentioned above16:18
dimiternTheMue, mfoord, I've updated the PR - can I get an LGTM please? :)16:18
mgzalexisb: it's just using DeepEquals where it shouldn't16:18
TheMuedimitern: looking16:18
dimiternalexisb, hmm.. I might have, let me have a look16:18
dimiternalexisb, mgz, oh this looks like a map ordering ppc64 issue16:19
mgzdimitern: yup16:20
mfoorddimitern: yep, reading16:20
dimiternmfoord, yeah - definitely; sorry I should've thought of that - can you propose a fix for that bug?16:21
mfoorddimitern: I meant I was reading your PR...16:22
dimiternmfoord, basically the results should not rely on map traversal order but be sorted (e.g. by DeviceIndex)16:22
mfoorddimitern: ah, is this my fault?16:22
mfoorddimitern: ok, easy16:22
dimiternmfoord, i'm afraid :)16:22
mfoorddimitern: I'll do it now16:22
dimiternmfoord, cheers!16:22
dimiternmgz, thanks for bringing this up so quickly btw16:24
mgzsinzui was on the ball16:24
alexisbyes sinzui thank you!16:27
dimiternthank you sinzui16:27
mfoorddimitern: do we have anything in utils for sorting structs by field name?16:27
mfoorddimitern: or should I wrap them?16:28
dimiternmfoord, I don't believe so16:28
mfoorddimitern: ok16:28
alexisbmfoord, where is voidspace?16:28
mfoordalexisb: heh, not sure16:28
dimiternmfoord, if you check network.SortAddresses - it should be similar16:28
mgzmfoord: I think what we did last time was just add the sort methods16:28
mgzlike dimitern points at there16:28
mfoordalexisb: I hard crashed a while back and I guess "voidspace" was still logged in when I resurfaced...16:29
dimiternTheMue, sorry, I'm looking at your branch now - got distracted16:29
mfoordmgz: dimitern: we're adding sort methods to production structs just to be able to test them?16:29
mfoordmgz: dimitern: ah, SortAddresses is used in production too16:30
dimiternmfoord, :) well isn't it nice to have a deterministic result?16:30
mgzmfoord: yeah, I prefer having any api visible stuff in stable order16:30
dimiternmfoord, so not just for testing16:30
mgzfor backend things, just sorting in the test or doing contentsequals instead of deepequals is fine16:31
mfoordmgz: dimitern: ah, SortAddresses is used in production too16:31
mfoordhah, oops already said that16:31
dimitern:)16:31
mfoordmgz: this isn't API visible stuff - I think this is just arbitrarily ordered test input data16:32
mfoordI *think*, checking16:32
TheMuedimitern: np16:32
dimiternTheMue, first look - environs.Networking should also include SupportsAddressAllocation16:32
TheMuedimitern: thought about, but on the other hand it's a capability16:33
TheMuedimitern: can move it16:33
dimiternTheMue, well, SupportNetworks was also a capability IIRC16:34
TheMuedimitern: got me :D16:34
dimiternTheMue, :) so let's try moving SAA() into the interface and make it a regular method16:35
TheMuedimitern: will do so16:36
dimiternTheMue, cheers16:36
=== enterprisedc_ is now known as enterprisedc
dimiternTheMue, also, for ec2 and MAAS which already supports networking ISTM we should do the SupportsNetworking once somewhere - like in SetUpTest or e.g. setUpInstanceWithDefaultVpc16:38
dimiternTheMue, to save a few lines and avoid calling it in each test16:38
mfoorddimitern: it would be relatively easy to write a generic version of that sort taking a field name and using reflection...16:39
dimiternmfoord, I agree, would you prefer doing this in utils and then proposing the fix?16:40
mfoorddimitern: heh, that will take me longer16:40
mfoorddimitern: I've nearly finished the "standard" fix16:40
dimiternmfoord, :) exactly my point16:40
mfoorddimitern: I'd be interested in doing the general one afterwards16:40
mfoorddimitern: I would much *prefer* doing a general one16:41
dimiternmfoord, but we should add a generic sort like this to utils nevertheless - after that16:41
dimiternmfoord, +116:41
mfoorddimitern: cool, sounds like fun :-)16:41
TheMuedimitern: yes, that's my planning. only wanted to show the mechanism to check if an env supports networking and the return of the combined interface16:42
dimiternTheMue, it looks solid enough for proposing - minus those few suggestions16:43
dimiternTheMue, and I like how many lines get removed16:43
TheMuedimitern: fine, will change those then and then do the proposal16:43
TheMuedimitern: yeah, that's one of the nice features, remove code16:44
dimiternTheMue, cheers! the cmd/juju/action/queue.go seems it doesn't belong there though16:44
dimiternTheMue, I'll review it more carefully when you propose it16:44
TheMuedimitern: ouch, added it by accident :/16:45
dimiternTheMue, np :)16:48
mfoorddimitern:16:56
mfoorddimitern: http://reviews.vapour.ws/r/792/16:57
dimiternmfoord, looking16:57
dimiternmfoord, reviewed17:00
mfoorddimitern: see my last commit message...17:01
mfoorddimitern: https://github.com/juju/juju/pull/147017:01
mfoorddimitern: and thanks :-)17:01
dimiternmfoord, :D17:02
dimiternmfoord, thank you for the quick fix17:02
dimiternmfoord, can I get LGTM on mine now please? ;)17:03
mfoorddimitern: going back to reading it17:03
dimiternmfoord, cheers17:03
mfoorddimitern: so when updating the config we overwrite the file in place?17:09
mfoorddimitern: a common pattern is to write the new file as a temp one and then only move it into place when writing is complete17:10
mfoorddimitern: avoids creating partial files / invalid files due to a bug17:10
mfoorddimitern: probably not an issue for config changing though, because if we crashed we wouldn't use the config file anyway?17:10
dimiternmfoord, fair point, and I was itching to use AtomicWriteFile, but since none of the other config updating calls do it I decided not to for now17:12
mfoorddimitern: ok17:12
mfoorddimitern: if you don't think it's worth it then just drop the issue I created17:12
mfoorddimitern: ah wait, you write to it in one go at the end anyway - you're "writing into" a bytes buffer anyway17:15
mfoorddimitern: and then you seek, truncate and write17:15
mfoordseems like a lot of boilerplate just to write a file... ah well.17:15
mfoorddimitern: there's never a need for duplicate prefixes in lxc?17:18
dimiternmfoord, ok, I'll look into changing it to use AtomicWriteFile instead17:20
dimiternmfoord, there are valid cases for duplicate prefixes - e.g. each lxc.network.type defines a new NIC config17:21
mfoorddimitern: ah, but you'd want the line multiple times in the input lines then?17:21
mfoorddimitern: it's just that popping it from the parsedLines values dictmeans multiple replacements need multiple entries17:22
mfoordsounds like that's desirable though17:22
mfoord"lxc.network.type = foo" in the input line will only replace the first occurence17:22
mfoordheh, testing templates makes for long tests17:24
mfoorddimitern: LGTM17:24
dimiternmfoord, yes - I tried to explain the way it works, but I'm bad at explaining complex things :)17:25
dimiternmfoord, thanks!17:25
mfoord"occurrences of any setting in lines will be replaced with the value of that setting."17:25
mfoordhmm, is that true? Let me read the code again.17:26
mfoordparsedLines is a map of prefixes to new values to use17:27
mfoordonce a prefix has been encountered, the first value from parsedLines[prefix] is used - and the used value is *removed*17:28
dimiternmfoord, it actually got more difficult to explain with a string rather than []string lines :)17:28
dimiternmfoord, yes17:28
mfoordso next time it is encountered the prefix *won't* be replacedd with the new value17:28
mfoordso it isn't "any setting in lines" - it's the first occurence of that setting is used. If the same prefix is specified multiple times they are used in order.17:29
dimiternmfoord, no, so if "lxc.foo" > []string{"bar","baz"} and you have lxc.foo=1\nlxc.foo=2\lxc.foo=3\n it becomes lxc.foo=bar\nlxc.foo=baz\nlxc.foo=3\n17:29
mfoordright, but if I have "lxc.foo" > []string{"bar"}17:30
mfoordthe documentation implies that "any occurence" of "lxc.foo" will become bar.17:30
dimiternmfoord, then it will be lxc.foo=bar\nlxc.foo=2\nlxc.foo=3\n17:30
mfoordWhereas it's actually only the first.17:30
dimiternmfoord, right, right - I'll change this17:30
mfoord"occurrences of any setting"17:30
mfoorddimitern: it's fiddly to explain as what it is doing is fiddly17:31
dimiternmfoord, how would you explain it now that you know what the code does?17:31
mfoordbut "occurrences of any setting" implies to me multiple replacements from a single value17:31
mfoordhehe17:31
dimitern:)17:31
dimiternmfoord, maybe just with a few examples?17:31
mfoordyou've pointed people to the tests and there are some examples there17:32
mfoordso I don't think more examples are needed in the docstring17:32
mfoordjust maybe a wording tweak for that one line17:32
mfoordI'm thinking17:32
mfoordThen the occurrence of a setting in a line of the config file will be replaced by values from newConfig. Values in newConfig are only used once (in the order provided), so multiple replacements must be supplied as multiple input values in newConfig.17:33
mfoordReplacing "Then any..."17:34
mfoordIt's not so concise but a bit more precise I think.17:34
mfoordand I need more coffee17:34
mfoorddimitern: mgz: the bug fix for 1413652 landed so I changed the issue to fix committed17:35
mgzmfoord: ace17:36
dimiternmfoord, nice, I'll take it :)17:36
dimiternmfoord, thanks17:36
mfoordmgz:  ace is such an eighties word :-)17:36
mgzit's when I was born :)17:36
mfoord:-)17:36
mfoordmy Dad still uses it because we used it when we were kids17:37
mfoordhe thinks it's still cool to be ace17:37
mfoordand I guess he's right...17:37
* mfoord goes on a coffee hunt...17:37
wwitzel3ericsnow: ok, grabbing some food then we can take a look at that review17:45
ericsnowwwitzel3: great17:45
=== kadams54 is now known as kadams54-away
hazmatperrito666, ping18:10
perrito666hazmat: pong18:34
hazmatperrito666, just trying to understand some of the backups api18:35
hazmatperrito666, afaics info method doesn't have a purpose, given all content is in list18:35
perrito666hazmat: you will have to talk to ericsnow about it, I just wrote restore, there is little left of th backup logic I once did.18:37
perrito666it might be redundant though, since backup+restore lacks a spec it was mostly played "by ear"18:37
hazmatperrito666, ok.. i think i got most of it from the code, i'm just looking at trunk18:38
perrito666hazmat: hacking something into backups?18:39
hazmatperrito666, exposing all the facades via jujuclient atm18:39
ericsnowhazmat, perrito666: yeah, Info is effectively just a special case List (where you don't have to look up the one you care about in the result)18:40
hazmatand exercising all the apis while i'm at it.18:40
hazmatsort of wishing that agent version was in login result18:41
hazmatits a bit hard to specialize some of the /environment/:uuid/backups|charms etc urls without knowing the version18:41
ericsnowhazmat: keep in mind that the backups API methods related to restore probably should be avoided (once they land)18:42
wwitzel3ericsnow: headed in to moonstone18:42
ericsnowhazmat: they have to work together and require some set up (the restore command will cover all that)18:43
hazmatericsnow, cause their not stable?18:43
hazmatcool18:43
hazmatits just upload  & restore i would hope, but fair enough18:43
ericsnowhazmat: each of the restore-related methods makes assumptions (e.g. that bootstrap has already happened in a new env)18:44
perrito666hazmat: restore is abig piece of twisted machinery and its landed in small bits since no one seems to be able to review it as a whole so I am entering the bits as they are approved18:44
ericsnowhazmat, perrito666: I suppose it could make sense to roll that logic out of the command and into the API client, but bindings other than our API client would have to know those details to incorporate them18:45
hazmatbootstrap already seems reasonable, i'll bake what i can into my functional tests.18:45
ericsnowperrito666: perhaps you could give hazmat a link to the cmd and API client code so he can see what's going on18:46
hazmati don't see restore in trunk looking at api server source.18:47
ericsnowhazmat, perrito666: really it would be nice if restore could be handled on the server side by a single API call, but I'm not sure that's feasible (or worth it)18:47
ericsnowhazmat: http://reviews.vapour.ws/r/732/ (just the API server part)18:48
hazmatericsnow, thanks18:48
hazmatso three calls prep/restore/finish18:50
perrito666hazmat: yup, finish is not really required, you see prep sets the server in a status that prevents anything el se to be done (to avoid data loss from whatever you asked the server to do between deciding to restore and restore actually taking effect)18:51
perrito666restore does well, restore18:51
perrito666and finish just finishes ok if restore finished properly (restore will kill the server so your connection will be droped)18:52
hazmatgot it, thanks18:53
perrito666somehow each time I explain this part of restore I think of willie coyote cutting the branch he is standing on18:54
mfoordg'night all19:05
* perrito666 listens to the afternoon news on the radio and wonders why did he decide to do that in the first place20:07
mwhudsonwaigani, cherylj, menn0: morning20:12
mwhudsonoops20:13
perrito666mwhudson: ?20:13
mwhudsonforgot stand up was now :)20:14
natefinchGood god, bank websites blow20:36
perrito666natefinch: mine works well although the bank might have been forbidden to do certain operations by the govt bc they where helping in money laundring schemes20:41
natefinchperrito666: heh... this is just stupid crap like not giving you sane options anyone with half a brain would want, or making things unclear when all you need is a tiny bit more status text to make it clear.20:42
natefinchthe problem today was that I wanted to set up automatic payments for my credit card, but they won't let you do that when you have an outstanding payment due.... which is like... why do you think I want to set up automatic payments?!  So I schedule a payment for today, see it's not actually quite enough, so I schedule a second one... but they won't let you schedule two payments for the same day.20:44
perrito666lol20:45
perrito666we do that the other way round20:46
perrito666we set the bank to accept charges from the card20:46
perrito666and the rest is not my problem20:46
=== abentley_ is now known as abentley
katcosanity check: does DeepEquals resolve the map ordering issue in tests?21:45
natefinchkatco: I think so.... I think the problem we had was converting maps to slices of values and then comparing the slices21:50
=== liam_ is now known as Guest65443
katconatefinch: gotcha thank you!21:51
* perrito666 stumbles upon a function half using new errors half using old style and cries22:14
perrito666omg state/unit.go:1462 is a PITA, it composes this error in bits (a word per line) making it so hard to find22:29
=== ChanServ changed the topic of #juju-dev to: https://juju.ubuntu.com | On-call reviewer: see calendar | Open critical bugs: 1413652
sinzuiwallyworld_, Can you review this branch when you have time http://reviews.vapour.ws/r/795/22:50
wallyworld_sure22:50
wallyworld_sinzui: done, plus 1.22-beta1 going through landing tests22:52
sinzui\o/22:53

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