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

=== alexlist` is now known as alexlist
davecheneythumper: http://paste.ubuntu.com/12069959/02:45
davecheneythis is from this morning's run02:45
davecheneysummary: juju is now as stable on ppc64 as any other platform02:45
thumperhazaah02:50
menn0thumper: here's the final allenvwatcher pr: http://reviews.vapour.ws/r/2374/03:35
menn0thumper: any chance you can look at the above? ^^04:51
* menn0 is keen to be done with this 04:51
* thumper is looking now04:53
menn0thumper: thanks04:53
thumpermenn0: done05:25
thumperone (strong) suggestion05:25
menn0thumper: ok...05:25
menn0thumper: no problems. I had something like that at one point.05:27
menn0thumper: to be fair those funcs aren't really for truly public use (hence the comment)05:29
thumperwell... if they have capital letters, they're public05:40
dimiternTheMue, morning06:55
dimiternTheMue, I see you've assigned the constraints card to yourself, but you're yet to land your other branch, so I've reassigned it to myself06:56
TheMuedimitern: morning, the landing card is just waiting, that CI is unblocked07:10
dimiternTheMue, cool07:10
TheMuedimitern: so which card can I start with now?07:11
dimiternTheMue, hmm.. let me have a look07:12
dimiternTheMue, you have a follow-up to do, don't you? :)07:13
dimiternalso it seems I've assigned the wrong card to myself - I'm actually working on the other constraints card07:13
TheMuedimitern: hehe07:13
TheMuedimitern: you mean "Test isNetworkingEnvironment() in ..."? we haven't moved it from backlog to iteration backlog, so I thought it's not as important as the spaces cards07:15
dimiternTheMue, yeah, we forgot about this one07:16
dimiternTheMue, the net-cli stuff is the most important once the previous tasks are done :)07:16
TheMuedimitern: ok, so I'll move it07:16
dimiternTheMue, cheers, and feel free to estimate it as well07:16
TheMuelet's move it, move it, let's move it, move it *sing*07:17
TheMuedimitern: ok07:17
voidspacedimitern: ping07:22
dimiternvoidspace, pong07:24
voidspacedimitern: did you write ListSubnets?07:24
voidspacedimitern: unlike all the other API methods it tages a *names.SpaceTag rather than a names.SpaceTag and I'm wondering why07:25
voidspaceI changed it, as it was marginally inconvenient in one place, and a few things broke07:25
voidspaceso I probably have to put it back07:25
dimiternvoidspace, I did - it's because the space is optional for filtering07:26
dimiternvoidspace, it was supposed to make calling the client-side method more convenient :)07:26
voidspacedimitern: and you need to be able to distinguish between not used (nil) and an explicit empty space ("")07:26
voidspacedimitern: so, changing API methods to take tags instead of strings means changing a bunch of CLI calls too07:28
voidspacedimitern: they need to use the tags and do the validation07:28
voidspaceso I'm now down to only 23 test failures...07:29
voidspace(the CLI methods were already validating of course - but not always storing a tag. And it's *mostly* tests that need to change.)07:29
dimiternvoidspace, :)07:32
dimiternvoidspace, sounds good07:33
dimiternTheMue, voidspace, dooferlad, guys, I'm suggesting to cancel the 1:1 meetings today - happy to chat about anything, if you want of course07:44
dimiternbut in the face of the feature freeze I'd rather concentrate on that with priority07:44
TheMuedimitern: frome my side nothing special, so sounds good07:45
dimiternTheMue, cheers07:47
voidspacedimitern: sure07:47
voidspacedimitern: thanks07:48
dooferladdimitern: +107:55
dimiternthanks guys!07:55
voidspacedimitern: TheMue: dooferlad: ready in a minute or two - coffee!!!09:01
voidspacedimitern: TheMue: dooferlad: not sure if my last message got through, my internet went down09:32
voidspacesorry09:32
voidspaceI'm back now but the hangout was empty09:32
TheMuevoidspace: you've been frozen and then the connection dropped09:33
TheMuevoidspace: so the question is, what has been the last message? ;)09:33
voidspacethat was my last message...09:33
voidspace"my internet went down"09:33
voidspace:-)09:33
dimiternvoidspace, oh - I think I heard only "own" :)09:34
TheMuehehe09:36
voidspacedimitern: own?09:36
voidspacedimitern: out of "down"?09:40
dimiternvoidspace, I think so yeah09:42
dimitern(well it sounded like "on")09:42
voidspaceheh09:42
voidspacesorry09:42
voidspace:w09:42
voidspacewrong window...09:42
dimiternvoidspace, so it seemed we should chat about subnet add/create vs tagging?09:43
voidspacedimitern: well, I thought we had talked about it a few times already!09:43
voidspacedimitern: that's why I was so surprised09:43
voidspacedimitern: previously you seemed to agree that Create was easier and we didn't need to touch tagging for the MVP09:44
dimiternvoidspace, yeah, I might have misinformed you unintentionally09:44
voidspacedimitern: if we *have* to do Add, then so-be-it, but I think it's *more work*09:44
dimiternvoidspace, we'll implement create, but not include in the MVP09:44
voidspacesure, I'm talking about what is the least work we can do which gets something useful09:45
dimiternvoidspace, also add doesn't need to respect pre-existing tags on a subnet in ec209:45
dimiternfor the MVP09:45
voidspaceso what does it do?09:45
dimiternvoidspace, it adds it to state, validating it exists on the provider09:45
voidspacejust assumes the subnet exists and adds it to state09:45
voidspaceso it does go out to the provider09:46
voidspace(the current implementation doesn't...)09:46
dimiternvoidspace, yes, as we have already a Subnets call we can call - it shouldn't be too bad to add this check09:46
voidspaceok09:46
voidspaceso if we ignore tagging then Add is easier :-)09:46
dimiternvoidspace, indeed - we'll add tagging (discovery and updates) later if we manage - it's strictly an improvement in UX and observability, not so much in functionality09:48
voidspacedimitern: fair enough I guess09:52
voidspacedimitern: like I said, based on our previous conversations I was just surprised09:52
voidspacedimitern: updated PR http://reviews.vapour.ws/r/2360/10:12
dimiternvoidspace, cheers, looking10:25
dimiterndooferlad, others: http://reviews.vapour.ws/r/2376/ spaces constraints10:31
dooferladdimitern: already reading :-)10:31
dimiterndooferlad, ta!10:34
dimiternvoidspace, didn't we talk about ListSubnets returning something like []params.SubnetInfo?10:35
dimiternvoidspace, I mean the client-side api method10:36
voidspacedimitern: I don't recall a conversation about that, let me look and see what it does return10:37
voidspaceit's been a while since I wrote that code10:37
voidspacedimitern: hmm... it returns a list of params.Subnet10:38
voidspacedimitern: there is no params.SubnetInfo is there?10:39
dimiternvoidspace, sorry, I meant params.Subnet10:39
voidspacedimitern: well, it has a result type that holds a list of params.Subnet10:39
dimiternvoidspace, well, looking at your branch it returns ListSubnetsResults and an error10:39
voidspacedimitern: do you mean removing the ListSubnetsResults part from the returned value10:39
dimiternvoidspace, that's pretty unusual for client-side apis10:40
dimiternvoidspace, just return the Results part of it and the error10:40
voidspacedimitern: ah10:40
voidspacedimitern: ListSpaces does the same10:40
voidspacedimitern: ah, and the CLI expects just a list of subnets10:41
voidspacedimitern: so that needs fixing10:41
voidspaceprobably the same for ListSpaces too10:41
voidspacedimitern: thanks10:41
voidspacedimitern: just return response.Results or can we get rid of the response type completely and just return a slice of Subnet ?10:43
voidspace(I mean can the apiserver return []params.Subnet or do we need a Result type to hold it)10:44
voidspaceI'm just changing the api List* methods10:46
dimiternvoidspace, nope, the apiserver-side still needs to use the result type like this10:46
voidspaceyeah10:46
dimiternvoidspace, you have a review10:46
voidspacedimitern: thanks10:46
voidspacedimitern: why do we need to verify that the command members are set correctly on error?10:47
voidspacedimitern: given that we report the error to the user and exist10:47
dimiternvoidspace, I'd appreciate a second look on my review as well - esp. if any of the TODOs reminds you of something I might've missed10:48
voidspacedimitern: ok10:48
dimiternvoidspace, it's not a big deal to leave this in place10:49
dimiternvoidspace, is it?10:49
voidspacedimitern: well, as we're now using SubnetTag I can't construct a SubnetTag for an invalid CIDR10:51
voidspacedimitern: so in the case of error we can't check that10:51
voidspacedimitern: and if there's no *need* for the others then it's better not to test them10:52
dimiternvoidspace, ah10:52
voidspacewe should only test behaviour we actually need10:52
dimiternvoidspace, sure, then it's fine10:52
voidspacethanks10:52
dimiternvoidspace, unlike APIs, those CLI methods are not usable from outside the package10:52
voidspaceyep10:53
voidspacethat was my thinking10:53
voidspacedimitern: what's the value in changing providerId to network.Id?10:53
voidspacedimitern: there's no validation, so it doesn't really offer any benefit like SubnetTag and SpaceTag do10:53
voidspaceit can take arbitrary strings10:54
voidspaceI believe10:54
voidspaceand it probably means finding and fixing another crap-load of tests :-p10:54
dimiternvoidspace, fwereade reminded me on more than one occasion that we should use typed strings for foreign ids, like the provider ones10:54
voidspaceok10:54
voidspacefair enough10:54
voidspaceI'll bite the bullet10:54
dimiternvoidspace, yeah, no validation for now, having a type makes adding this easier10:55
dimiternif/when needed10:55
dimiternvoidspace, thanks10:55
voidspaceso for our imaginery future use case then10:55
voidspace;-)10:55
dimiternwell :)10:56
voidspacedimitern: network.Id is used for too many *different* things for us to ever be able to add meaningful validation10:56
voidspacewe'd have to create a *specific* type10:56
dimiterngood design and architecture includes some need for precognition and such10:56
dimiternvoidspace, it's used for provider-specific ids10:57
voidspacedimitern: many *different* provider-specific ids with different specifications10:57
dimiternvoidspace, at least having them marked as such will simplify changing them to separate types if needed IMO10:58
dimiternvoidspace, I hope you don't mind too much for a string cast here and there :)10:59
voidspacedimitern: I'm not totally convinced about the *semantic* value of using types (that offer no tangible other benefit) to represent "things" that actually *are* strings, and having to case to and from everywhere they're used11:01
voidspacedimitern: I'll do it, I'm just not convinced it adds value11:01
dimiternvoidspace, I'll wait for your and mine branches to land and then create the net-cli-mvp branch11:01
dimiternvoidspace, right11:02
voidspacedimitern: cool11:02
voidspacedimitern: I'll take lunch shortly11:03
voidspaceI'll try and get the branch landable first11:03
dimiternvoidspace, ta!11:04
voidspacedimitern: right, made those changes11:25
voidspacedimitern: switching to network.Id touched 6 files, so you might want to take another brief look11:25
voidspace:-D11:25
voidspacemaybe "want" is the wrong word11:25
dimiternvoidspace, sure, looking11:26
dooferladdimitern: https://github.com/juju/juju/compare/net-cli...dooferlad:net-cli-add-deployment-support-for-spaces?expand=1 seems to be all https://canonical.leankit.com/Boards/View/101652562/116603811 needs.11:27
dooferladjust let me know about printing/logging the deprecation warning and I will tidy up that comment and get it in for review11:27
dimiterndooferlad, ok, I'll have a look shortly11:27
dooferladdimitern: thanks.11:27
dimiternvoidspace, get some lunch first11:28
dimiternvoidspace, you're eating tests otherwise :)11:28
voidspace:-)11:29
voidspacedimitern: well, I want to meditate and it will be a little bit of time before I can persuade my wife to clear out of the room I need :-D11:31
dimiternvoidspace, I see ok :)11:31
dimiternvoidspace, dooferlad, only now I realize ListSpaces API doesn't conform to the usual (results, error) behavior - it returns results and an error, but only the first error when fetching a space's subnets11:34
voidspacedimitern: you mean it should collect all errors11:35
dimiternit needs to use a Results and Error fields of the results for such errors11:35
voidspacedimitern: as the only possible error is connection with state failing (so all should fail or none)11:35
voidspacedimitern: I don't think it's a big issue11:35
dimiternvoidspace, yeah, only return an error if it can't return anything11:35
voidspaceI mean, we should fix it - but add a card for after mvp maybe11:36
dimiternvoidspace, well, just because we're catching this now means it lacks bulk call coverage11:36
voidspace"bulk call coverage"?11:36
voidspaceit's a bulk response not a bulk call...11:36
voidspaceit's a single call with a bulk result11:37
dimiternvoidspace, yeah - a call to it with e.g. one valid, one invalid, and another valid - checking 2 results and 1 error is returned11:37
dimiternvoidspace, the apiserver method I mean11:37
voidspaceright11:37
dimiternvoidspace, it's trivial to fix and we should do it for the mvp by all means, as changing the api later is worse11:38
voidspacedimitern: ok11:39
dimiternvoidspace, I'd add a card for it, but please add a TODO about it in your PR - apiserver/spaces11:39
voidspacedimitern: TODO added11:40
voidspacewell, pushing now11:41
dimiternvoidspace, thanks!11:42
voidspacedone11:42
voidspaceright, room free11:44
voidspaceoff to meditate11:44
dimiterndooferlad, hey11:46
dimiterndooferlad, the help docs need to mention the spaces constraints but not --networks btw11:47
dimiterndooferlad, but there are also - tests we do ignore --networks and dropping those that don't (or at least adding TODOs/skipping them)11:49
dimiterndooferlad, hmm sorry, I might have described it badly in the card11:50
dimiterndooferlad, the idea is not only to give a warning for it, but also not to pass it through the layers as well, so it can't interfere with the other work around spaces for deployments11:51
dimiterndooferlad, does that make sense?11:51
=== ahasenac` is now known as ahasenack
dimiterndoes anyone else get build errors for gwacl on master after updating and running godeps ?12:11
dimiternaxw, ping12:12
dooferladdimitern: yea, that isn't what I got from the card. I read it as we would still accept --networks, but we should mark it as deprecated to discourage its use before removing it in a later version.12:40
dimiterndooferlad, we would've done that if currently it was at least remotely useful12:42
dimiterndooferlad, and it will soon go away to be replaced by deploy time bindings of the right kind, with spaces (once we figure out how'd they look like)12:43
dimiternanyone up for a trivial review? http://reviews.vapour.ws/r/2377/13:02
dimiternTheMue, voidspace, dooferlad ^^13:05
dooferladdimitern: *click*13:07
=== lp|conference is now known as lazyPower
dooferladdimitern: you said that space contraints are handled elsewhere in the card I am looking at. Where is that?13:24
dooferladdimitern: also, with network constraints, do you want me to just remove them or just not wire them up in the CLI?13:25
dooferlador just leave as-is I guess.13:25
dimiterndooferlad, they need to go, but that's a separate card, which will require a lot of prerequisites (mostly provider and provisioner related) landed first13:26
dimiterndooferlad, not sure what do you mean by "handled" - my PR implements parsing and tests for them, and since they're constraints that makes them usable everywhere13:27
dooferladdimitern: doh! Haven't merged that in :-)13:27
dimiternwhether we do anything with them is another thing13:28
dimiterndooferlad, did that answer your questions btw? :)13:34
dooferladdimitern: I am leaving the constraints code as it is, so it will accept networks. I have removed the code path that --networks used for juju deploy.13:35
dooferladdimitern: I have had a look at add-machine and add-unit and both seem to have no explicit --network support, so they are just constraints code again13:35
dooferladdimitern: if that is right, yes.13:35
dimiterndooferlad, indeed - I just double checked13:37
dimiterndooferlad, are there a lot of tests affected by --networks being ignored ?13:37
dooferladdimitern: I just removed the two that started to fail (correctly) once support for the --network flag was removed.13:38
dooferladdimitern: I didn't look at any already skipped ones.13:38
dimiterndooferlad, by "removed" do you mean it returns an error like "flag provided but not defined: --networks" or it accepts it, prints a warning and continues?13:40
dooferladprints a warning and continues as if it isn't there13:40
dimiterndooferlad, great!13:40
dooferladdimitern: http://reviews.vapour.ws/r/2382/13:40
dooferladdimitern: I haven't added any support, so much as removed other support.13:41
dimiterndooferlad, that's a lot better - less fallout than my original attempt which did the former13:41
dooferladso the title is rubbish13:41
dimiterndooferlad, it's fine :)13:49
dimiterndooferlad, almost done with the review btw13:49
dimiterndooferlad, was the removal of that status test case necessary?14:05
dooferladdimitern: yes, it failed.14:09
dimiterndooferlad, that's because we're not stopping tests from calling deploy APIs with networks14:14
dimiterndooferlad, rather than removing it, can you comment it out for now with a TODO about fixing it once the API and state layers also ignore (requested)networks (which --networks sets effectively) ?14:15
dimiterndooferlad, I'll add a comment to the review14:15
dimiterndooferlad, reviewed14:21
voidspacedimitern: ping14:43
dimiternvoidspace, pong14:47
voidspacedimitern: so, I add a *Error field to params.Space so we can return partial results14:47
voidspacedimitern: the top level params.ListSpaceResult has an Error field (in case fetching the spaces fails - the new error is for an error fetching subnets for an individual space)14:48
voidspacedimitern: and ListSpaces also returns an error14:48
voidspacedimitern: so if we get an error fetching the subnets for a single space obviously we set the Error field on Space14:49
dimiternvoidspace, you did all this in your subnets api branch?14:49
voidspacedimitern: do we set an error on ListSpaceResult and do we return an error too?14:49
dimiternvoidspace, or in a follow-up?14:49
voidspacedimitern: no, new branch - looking at it now14:49
dimiternvoidspace, ah, great14:49
voidspacedimitern: not sure if I can get it done before I go as I go to the gym in 40minutes14:49
voidspacedimitern: that branch landed on net-cli by the way14:49
dimiternvoidspace, did the other one land?14:49
voidspaceyep14:50
dimiternvoidspace, awesome!14:50
dimiternvoidspace, so I added a card for the ListSpace/Subnet errors14:50
voidspaceI tried looking for other examples in the apiserver but failed to find any and thought it would be quicker to ask14:50
voidspacedimitern: it should just be ListSpace I believe14:50
voidspacedimitern: ListSubnets doesn't make extra calls per subnet, so either it all works or it all fails14:50
dimiternvoidspace, so usually bulk calls that return many results for many entities14:50
voidspace(I believe)14:50
voidspacedimitern: with ListSpaces we can fetch the spaces and then fail to fetch the subnets for some of the spaces14:51
voidspaceso partial results make sense in theory14:51
dimiternvoidspace, ..only return errors if it's not possible to do its job14:51
voidspaceI say in theory, because in practise the only error is that the connection to state goes14:51
voidspaceso again, in reality it will be all or nothing14:51
voidspacebut it's better to stick to the pattern14:51
voidspacedimitern: right, so we don't return a top level error14:52
voidspacedimitern: what about setting an error on ListSpacesResult?14:52
dimiternvoidspace, let me have a look at the code now for a moment14:52
voidspacedimitern: or should we rely on the client checking the Error field of each Space14:52
dimiternvoidspace, for ListSpaces you're correct - the backing error should be returned as top-level, others can only be per-space (fetching subnets failed)14:55
cmarswallyworld, http://reviews.vapour.ws/r/2387/ please14:56
voidspacedimitern: I'm sorry I don't understand14:57
voidspacedimitern: what is "the backing error"?14:57
voidspacedimitern: if we get an error fetching the subnets for a space obviously we set the Error on the params.Space14:57
dimiternvoidspace, coming from the state (backing)14:57
voidspacedimitern: do we set an error anywhere else?14:57
voidspacedimitern: so we also set an error on ListSpaceResults? or are you saying we also return the error at the very top level?14:58
dimiternvoidspace, sorry, let me explain better14:59
dimiternvoidspace, https://github.com/juju/juju/pull/2980/files#diff-ec0483c931b7d3d2d378df66d465deb1R100 < this is a top-level error (with empty results)14:59
voidspacedimitern: yes15:00
dimiternvoidspace, https://github.com/juju/juju/pull/2980/files#diff-ec0483c931b7d3d2d378df66d465deb1L109 < this is a per result error15:00
voidspaceyes15:00
voidspacedimitern: that's what we do currently15:00
dimiternvoidspace, in the latter case, the results != empty, err = nil15:00
voidspaceright15:00
voidspaceand we set the error on the individual params.Space we create15:01
voidspace(we should I mean)15:01
voidspaceI'm asking do we *also* do anything else with it?15:01
dimiternvoidspace, there's no individual params.Space15:01
dimiternvoidspace, ListSpaces takes no args at apiserver side15:01
voidspacethe object there "result" is a params.Space15:02
voidspaceso instead of "return results, err" it would be15:02
voidspaceresult.Error = common.ServerError(err); result.Results = append(result.Results, result);continure15:03
voidspace*continue15:03
dimiternvoidspace, ah, got you15:03
voidspacedimitern: that's the change you have said we ought to make15:03
dimiternvoidspace, yes15:03
voidspaceI'm asking if we should *also* set results.Error15:03
dimiternvoidspace, and I've just realized ListSubnets apiserver side is not yet done, so it's fine15:03
voidspaceand we've agreed that the returned err should still be nil15:03
voidspaceListSubnets won't have the same problem15:04
voidspaceI'm asking if we should *also* set results.Error15:04
voidspaceand we've agreed that the returned err should still be nil15:04
dimiternvoidspace, yes, if you can fetch spaces ok, but not all subnets -> return results(with Error set as needed), nil15:04
dimiternvoidspace, if you can't fetch spaces - as it is now15:05
voidspaceso I should set result.Error for each Space where fetching subnets fail, and set a results.Error to indicate that there are only partial results15:05
dimiternvoidspace, sorry, I'm confused - what do you mean by result.Error for each space?15:06
voidspacedimitern: every space we fetch is represented by a params.Space15:06
dimiternvoidspace, yes, yes15:06
voidspacedimitern: that will grow an Error field15:06
dimiternvoidspace, sorry15:06
voidspacedimitern: that is settled15:06
dimiternvoidspace, I need to get in a call15:06
dimiternvoidspace, it is, yes15:06
voidspacedimitern: I am asking, do we *also* set an Error on ListSpaceResults15:06
dimiternvoidspace, where is that ListSpaceResults defined?15:07
voidspacesorry params.ListSpacesResults15:08
voidspaceat the moment it doesn't have an Error field because the method would either return all results or an error15:08
voidspaceso it didn't need one there were no partial results15:08
voidspacewe're now adding partial results15:08
voidspaceso I wonder if ListSpacesResults (apiserver/params/network.go I believe)15:09
voidspaceI wonder if it now also needs an Error field15:09
voidspaceused to indicate partial results15:09
dimiternvoidspace, I believe we need to make api.ListSpaces() ([]params.Space, error)15:09
voidspacedimitern: earlier today you said that apiserver couldn't return []params.Space and ListSpacesResults was still needed :-)15:10
dimiternvoidspace, then also change ListSpacesResults' Results field to be of type ListSpacesResult (or whatever), which has a Space and Error *Error fields15:11
voidspaceinstead of adding an Error to Space...15:12
voidspaceadd a new intermediate type15:12
dimiternvoidspace, it's just confusing because of the api/apiserver transition15:12
voidspaceI think you're still slightly misundestanding my question/suggestion :-(15:12
voidspaceI think you have too much in your head15:12
voidspacewe don't need a new intermediate result type, we can just add an Error field to Space15:12
dimiternvoidspace, ok, I see how params.Space can be used as what I'm describing as ListSpacesResult (singular)15:13
voidspaceI am asking if the *plural*, the container results type, ListSpacesResults also needs an Error field15:13
voidspacebecause if we get partial results (an error occurred somewhere) don't we want a top level Error field to indicate that the results are partial?15:13
voidspacemaybe not, and just having the error printed inline with the space description is fine15:14
dimiternvoidspace, it's not common to have ErrPartialResults from API server methods15:15
dimiternvoidspace, and in this case I don't think it's even useful15:15
voidspaceok15:15
voidspaceso we won't15:15
voidspacethanks15:15
dimiternvoidspace, thanks for bearing with me :)15:15
voidspace:-)15:15
voidspaceI go soon15:16
voidspaceso I'll be leaving you to it15:16
natefinchericsnow: if we always flush immediately after set, we should be able to remove the mergeProcMaps15:17
dimiternvoidspace, sure15:17
ericsnownatefinch: right15:18
voidspacedimitern: cmd/juju/spaces/list.go - ListSpaces command fetches the subnets using api.AllSubnets()15:21
voidspacedimitern: it doesn't use the subnets on the Space!!15:21
voidspaceI guess space.Subnets() is newer than the ListSpaces command...15:21
voidspaceI don't think I can fix that in the time I have15:22
voidspaceit will make the code simpler though15:22
voidspaceI'll add it to the card15:22
dimiternvoidspace, ack, otp - thanks15:23
voidspacedimitern: done, card updated - including the code to set the error correctly15:26
voidspacedimitern: have a good week15:26
voidspaceTheMue: dooferlad: EOW15:26
voidspaceI begin my journey home15:26
voidspacegood luck with the MVP15:26
TheMuevoidspace: have a safe trip15:26
voidspacethanks15:26
natefinchericsnow: updated the code according to your suggestions, would like a re-review so we can get it done15:28
TheMuedimitern: maybe I'm missing something and you can point me to the right way. I've got my test, I've got my mock, but the way to inject is seems difficult15:28
ericsnownatefinch: will do15:28
natefinchericsnow: realized I didn't publish my responses to your earlier comments.  Just did so.15:47
ericsnownatefinch: thanks15:47
natefinch(only one real comment)15:47
dimiternTheMue, can I look at the code you're having issues with?16:01
dooferladdimitern: do you have an opinion about what card I should do next?16:03
dimiterndooferlad, I don't see a card for apiserver subnets - create and lest16:05
dimiternlist16:05
TheMuedimitern: it's not a concrete issue, more a missing idea.16:05
dooferladdimitern: you meen the apiserver side of what voidspace has done?16:06
TheMuedimitern: in the test in http://paste.ubuntu.com/12109009/ I try to inject the mock16:06
dimiterndooferlad, yeah16:06
dimiterndooferlad, we seem to have missed this - can you add a card and start on Add first perhaps?16:07
dimiternTheMue, I'll have a look shortly16:07
dooferladdimitern: isn't it in the archive? https://canonical.leankit.com/Boards/View/101652562/11562007016:07
dooferladdimitern: also https://canonical.leankit.com/Boards/View/101652562/11562018616:07
dimiterndooferlad, both of these are for spaces16:08
dooferladdimitern: doh!16:08
dooferladdimitern: yes, you are right16:08
dimiterndooferlad, I know it's confusing - it gets me every time :)16:09
dimiterndooferlad, and I'm wrong - apiserver has AddSubnets, but no list yet16:12
dimiterndooferlad, we don't need CreateSubnets for the MVP, so we can just do Add and List16:12
dimiterndooferlad, there's a card I added re ListSpacesResults and ListSubnetsResults - if you prefer16:13
dimiterndooferlad, also voidspace has a branch with some progress on it16:13
dooferladdimitern: https://github.com/voidspace/juju/commits/spaces-subnets-api ?16:15
dooferladdimitern: that is merged16:16
dimiterndooferlad, I think this is it - https://github.com/voidspace/juju/tree/spaces-list-errors16:17
dooferladdimitern: that is about spaces, not subnets16:18
dooferladbut if both need list, then I can probably finish that and add subnets16:18
dimiternTheMue, it's about ListSpaces returning proper results, which will apply to ListSubnets as well even more (apiserver side)16:18
dimiterndooferlad, ^^16:19
dimiternTheMue, sorry, I meant to tell you to have a look at TestManageEnvironDoesNotRunFirewallerWhenModeIsNone16:19
TheMuedimitern: ah, thx. what a java-like name16:19
dimiternTheMue, :)16:20
dimiternTheMue, the next one after it is another example16:20
dimiternTheMue, since this is a pre-existing test suite, no need to go wild with mocks and things when they're not already in place16:20
dimiterndooferlad, does that make sense?16:21
dooferladdimitern: yes16:21
dimiterndooferlad, cheers, let's discuss it tomorrow if needed16:22
dooferladdimitern: it is EOD for me, so will make some notes in that card about what is needed and start tomorrow, at which point I will probably have questions :-)16:22
TheMuedimitern: my test so far is pretty similar, but environs.SupportsNetworking() tests against the environment. that's why I want to mock it here16:23
dimiterndooferlad, awesome!16:23
dimiternTheMue, you don't need to mock it with the dummy provider16:23
TheMuedimitern: when using dummy environs.SupportsNetworking() always returns true16:23
dimiternTheMue, ah, yeah - it wasn't calling SupportsAddressAllocation16:27
dimiternTheMue, then, the mocks are unfortunately needed16:27
dimiternTheMue, *or*16:27
dimiternTheMue, I guess you can make it easier to write tests  for all future cases like this16:28
dimiternTheMue, by making the dummy provider *not* support networking when a given environ config setting is there16:28
TheMuedimitern: yeah, the better approach, as we already discussed about, is mnot to use type assertion16:30
dimiternTheMue, yeah - it will make writing tests a lot easier16:31
TheMuedimitern: definitely16:32
TheMuedimitern: I change the card description with my ideas. could you take a look please?16:42
dimiternTheMue, looks good, only the name SupportsNetworking() on netEnv needs to be better I think16:45
dimiternTheMue, but I need to think about it - I'd suggest to go ahead and do it as you suggest, we can rename the NetworkingEnviron method name later as you propose it16:47
TheMuedimitern: exactly, renaming it en bloc is simple16:49
dimiternTheMue, +116:49
TheMuedimitern: while doing it, how about ProvidesAddressAllocation or AllowsAddressAllocation for Allocate... and Release...17:00
TheMuedimitern: ?17:00
=== katco` is now known as katco
dimiternTheMue, we have this already - SupportsAddressAllocation - true for both Release and Allocate17:27
dimiternanyway, EOD for me17:27
TheMuedimitern: enjoy17:28
dimiternTheMue, thanks, same to you :)17:28
TheMuedimitern: ta17:28
katconatefinch: hey are you still blocked on feature tests for juju status?19:33
natefinchkatco: I haven't spent time on it, but in theory, no.19:35
natefinchkatco: I can unblock the card19:35
katconatefinch: k just checking. probably makes sense to stay on the 3-pointer?19:35
natefinchkatco: yeah19:36
katconatefinch: kk19:36
katcowwitzel3: were you working on the rename cards?19:39
wwitzel3katco: haven't started them yet, just about have the feature test buttoned up, then that was my next item to start19:40
katcowwitzel3: cool19:40
wwitzel3katco: thanks to ericsnow's hand holding, I am just about done with the test19:41
katcolol19:41
natefinchericsnow: does parseID return name, id or id, name? https://github.com/juju/juju/blob/feature-proc-mgmt/process/info.go#L4220:46
natefinchericsnow: nvm, usage indicates name, id20:48
ericsnownatefinch: k20:48
mupBug #1485781 opened: Juju is unreliable on Joyent <joyent-provider> <reliability> <repeatability> <juju-core:Triaged> <https://launchpad.net/bugs/1485781>22:06
mupBug #1485784 opened: Error creating container juju-trusty-lxc-template; Failed to parse config <oil> <juju-core:New> <lxc:New> <https://launchpad.net/bugs/1485784>22:33
davecheneythumper: free now ?23:27
thumperdavecheney: just munching down some food, 5 min?23:28
davecheneyi'll see you in the hangout23:28
davecheneytake your time23:28

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