/srv/irclogs.ubuntu.com/2013/03/28/#juju-dev.txt

thumperdavecheney: hmm, went to the gym before the LGTM00:34
davecheneyshit happens00:36
thumperdavecheney: changes being proposed now if you want to LGTM the actual review...00:44
thumperdavecheney: just give it a minute00:44
davecheneychanges look good, i trust ya00:45
davecheneyit was only nit picking stuff00:45
thumperdavecheney: so submitting now should pick the right reviewers?00:45
thumperdavecheney: one time before it failed to do so00:45
thumperand had "R=" in the commit message00:45
davecheneythumper: looks like that thing is unreliable00:45
davecheneyi don't think anyone cares00:45
davecheneyor looks00:45
davecheneyor both00:45
* thumper cares00:45
thumperkinda00:45
davecheneythat makes one then00:45
* thumper does the switch to trunk, merge and run tests prior to submitting00:46
thumper:)00:46
davecheneythumper: so you switch to trunk then merge your branch before pushing ?00:47
davecheneyi do the other way around00:47
davecheneyi merge trunk into my branch, test, then push if it passes00:47
thumperif I switch to trunk then merge it, and it works, it is all good00:48
thumperthen I revert, and switch and submit00:48
thumperkinda the same00:48
davecheneyhorses for courses00:48
thumperbut my way avoids bringing in the extra merge00:48
davecheneymeh, that isn't the slow part00:48
thumperheh, no00:48
thumperdavecheney: if you have time, i'd love to chat about the upgrade process00:49
thumperas in 'juju upgrade'00:49
thumperdo you know much about it?00:49
davecheneya little, dating back to august last year (2nd lisbon sprint)00:49
davecheneyi don't think much has changed since then00:49
davecheneywant me to grab moi headset ?00:50
thumpersure, 5 min?00:51
thumperas in, in 5 min?00:51
davecheneykk00:51
thumperhangout?00:54
davecheneysure00:58
davecheneylemmie try00:58
wallyworldthumper: davecheney: want the easiest review ever? +1/0 https://codereview.appspot.com/806404302:25
jamwallyworld: for your patch, the idea is that we should retry only for IsNotFound errors, but exit on everything else?03:44
wallyworldjam: yes03:44
wallyworldthat's how ec2 does it too03:44
jamwallyworld: I would probably find it easier to read with inverted if logic03:44
jamif !errors.IsNotFound(err) { return err}03:45
jamotherwise LGTM03:45
wallyworldok, i copied the logic style used by ec2 for consistency03:45
jamwallyworld: yeah, but consistency with *cough* is not necessarily worth keeping.03:45
wallyworldsure :-)03:45
jami would be happy if you wanted to tweak the ec2 side as well03:46
wallyworldwill do03:46
wallyworldjam: i reworked the debug log branch also, as per william's review, less code now03:46
jamwallyworld: to make sure I understand: https://codereview.appspot.com/7749048/patch/6001/700403:49
jamthat change is because you can't use the nil constructor03:49
jambecause 'sshCmd' is an interface.03:49
jamso it doesn't know which one to do.03:49
jamThe only thing I might say is "could we just check for nil?"03:49
wallyworldjam: go doesn't allow default values in struct definitions sadly03:49
jamso Init does something like "if s.sshCmd == nil {sshCmd = XXX}"03:50
jamwallyworld: right, but you set it in Init if it isn't set yet.03:50
wallyworldjam: i did that, but SetFlags() is called before init, so the nil check needed to go there, hence i aborted that way of doing it because it wasn't obvious to the reader where the nil check needed to go03:50
jamanyway, I'm not to unhappy with just specifying it at register.03:50
jamwallyworld: yeah, I wondered about that. SetFlags vs Init... good enough for me.03:51
wallyworldie the expected place Init() wasn't the right place at all03:51
wallyworldso best to be explicit03:51
jamyou could hide it under a method call03:51
jamDebugLogCommand.sshCmd() which would do it.03:51
wallyworldi could, but then debug log would be the only command with a New()03:51
jambut yeah03:51
wallyworldhmm, i could have used a method like you suggest03:52
jamwallyworld: I was meaning a method on DebugLogCommand. But it is a fair amount of *stuff* just to avoid setting it for registration.03:52
jamwallyworld: so certainly, think about it, if you like it more than what you have you can change it, but it seems very much 6-of-one half-dozen of another.03:52
jamNeither is clearly better.03:53
wallyworldyeah, agreed03:53
wallyworldit's landed now, so not really worth changing unless really needed03:53
jamwallyworld: anything left on your plate that hasn't landed?03:55
jamwallyworld: and did you get a chance to look at sync-log?03:55
wallyworldjam: writing tests for the invalid region stuff. will propose soon03:56
wallyworldremind me, what was sync-log again?03:56
jamwallyworld: sorry not sync-log, sync-tools04:02
jamI was mixing my work with yours04:02
jamit is "get the official posted binaries, upload them to my local space"04:02
wallyworldjam: ah, balls, i haven't looked yet. sorry. will do it now. i was going to do it before you came on line and clearly i didn't expect you to log on till later :-)04:04
jamwallyworld: I'm not officially here for another hour at least04:04
wallyworldthat's what i thought :-)04:05
wallyworldjam: i made the change to that branch without first seeing your comment. you happy with my version?05:32
jamwallyworld: change to which branch?05:32
wallyworldsorry, the retries one05:32
wallyworldhttps://codereview.appspot.com/8064043/05:33
jamwallyworld: yeah, break is fine vs return05:34
wallyworldcool, landing now05:34
wallyworldi've pushed my other branch with the error messages, so might even get to land it tonight05:34
wallyworldjam: i thought about the \n, but the common convention *seems* to be just a long string. i'll tweak it and see how it turns out06:41
jamwallyworld: I like the amount of context, but it is a little hard to read06:41
jamour error formatting putting in a bunch of "caused-by" doesn't help either.06:41
jamwallyworld: as for convention, the convertion isn't to give super-helpful error messages with info for the user, either.06:41
wallyworldjam: i agree that it's hard to read for sure06:41
jamso I feel comfortable breaking convention here :)06:42
wallyworldjam: caused by messages should  all come after a \n imho06:42
jamwallyworld: yeah, I'd probably agree with that06:43
wallyworldbut i'll just do this one thing perhaps so i can land it before i go06:43
jamwallyworld: it isn't a blocker, your patch is better in than out, etc.06:43
jambut if you can tweak it, I think we can make it better.06:43
wallyworldthat's what she said06:43
jamwallyworld: I'm pretty sure that is "in and out" .06:44
wallyworldlol06:44
* wallyworld biab06:45
dimiternmorning all07:37
rogpeppedimitern: hiya07:40
dimiternrogpeppe: yo07:41
TheMue*: morning07:46
* thumper is back07:55
dimiterncan someone send me the HO link?07:56
dimiterni found it08:01
thumperfwereade_: I'm looking for something next week...09:07
thumperfwereade_: how about I take https://bugs.launchpad.net/juju-core/+bug/113160809:07
_mup_Bug #1131608: deployed series is arbitrary <juju-core:New for fwereade> < https://launchpad.net/bugs/1131608 >09:07
fwereade_thumper, hum, ok, let me think a sec -- and I *think* you've actually basically fixed that one09:07
fwereade_thumper, modulo openstack09:08
thumperfwereade_: in fact, part 3 of that bug solution is done09:08
thumperfwereade_: ok, I'll let you think on it09:08
thumperfwereade_: and pick something on Tuesday next week09:08
fwereade_thumper, yeah, I did 1 and 2, you did 309:08
thumperMonday is a public holiday here too09:08
fwereade_thumper, I do have an idea09:08
thumperfwereade_: feel free to email me :)09:08
* thumper is off now09:08
fwereade_thumper, which is to look into the cards surrounding machine status and reporting back of provisioning errors09:08
thumper10 pm before 4 days off \o/09:08
fwereade_thumper, but I shall mail you09:08
fwereade_thumper, enjoy your holiday :)09:09
thumperfwereade_: awesome, ta09:09
dimiternfwereade_: so now upgrade-charm is done (up to py-juju parity) what next?09:10
dimiternfwereade_: or can just pick some other card09:10
fwereade_dimitern, it is probably best to pick some other card09:10
fwereade_dimitern, trying to swarm is probably a good idea09:11
fwereade_dimitern, since you have picked up some experience with state09:11
dimiternok, any ideas where?09:11
fwereade_dimitern, I might lean towards the "add machine status field"09:11
fwereade_dimitern, which is in blue's TODO09:11
dimiterni'll take a look09:11
rogpeppefwereade_: i'd appreciate it if you could take a look at the Relation embedded in Endpoint CL at some point, please. i *think* it worked out pretty well, but YMMV. https://codereview.appspot.com/8055044/09:13
fwereade_rogpeppe, sweet, I will take a look09:14
rogpeppefwereade: ping10:24
rogpeppefwereade: "10:24
rogpeppeNot sure what the distinction is between Limit and Optional -- they're equally10:24
rogpeppeignored AFAICT, so we should probably include both or neither.10:25
rogpeppe"10:25
rogpeppefwereade: we do include both AFAICS10:25
fwereaderogpeppe, ah, sorry, let me reread10:27
fwereaderogpeppe, yep, I'm an idiot, please disregard10:28
rogpeppefwereade: np10:28
dimiternfwereade: what are the possible machine statuses? are they basically the same as machine agent statuses (as with unit statuses)?10:28
fwereadedimitern, hum, not necessarily10:36
fwereadedimitern, I don't think "installed" is meaningful10:36
fwereadedimitern, all the others might be10:36
dimiternfwereade: ok, thanks10:40
dimiternfwereade: so this comment is wrong? // UnitStatus represents the status of the unit agent.10:40
fwereadedimitern, well -- there is a fuzzy distinction between the "unit" and the "unit agent"10:45
fwereadedimitern, and there's an additional complication in that agent presence is conflated with unit status (see Unit.Status)10:46
dimiternfwereade: so it's better to say "UnitStatus represents the status of a unit." and similarly for a machine status10:46
fwereadedimitern, yeah, sgtm10:46
fwereadedimitern, btw, since you're hitting that10:47
dimiternfwereade: and specific status value have a relation to the agent? cf. UnitStarted   UnitStatus = "started"   // Agent is running properly10:47
fwereadedimitern, it would prbably be valuable, as a first step, to move the "down" stuff out of Unit.Status and put it in cmd/juju/status instead10:47
fwereadedimitern, not really10:47
fwereadedimitern, "Agent is running properly" applied to every status except pending and down10:48
fwereadedimitern, and down isn't really a status10:48
dimiternfwereade: i'm thinking of moving all of unit status in state/status.go10:48
fwereadedimitern, no firm opinion either way on that, follow your heart :)10:49
dimiternfwereade: cheers10:49
dimiternfwereade: and istm i'll just s/agent/unit in those comments10:49
TheMuelunchtime11:10
jamniemeyer: blog.labix.org is currently offline11:18
niemeyerjam: I noticed.. great timing11:18
niemeyerjam: The whole server is down an inaccessible11:18
jamthat's a hosted site/11:18
jam?11:19
niemeyerjam: Yeah, dreamhost11:19
niemeyerAlready filed a support request11:19
jamniemeyer: its back up11:23
niemeyerjam: Phew11:23
niemeyerjam: I'll wait a bit until making it public, to make sure it won't happen again11:24
jamwallyworld: are you aronud for standup?11:32
dimiternmgz: https://codereview.appspot.com/8051043/11:40
mgzta11:41
rogpeppefwereade: "11:43
rogpeppeLet's keep that terminology out of charm, I think it's only meaningful at11:43
rogpepperuntime.11:43
rogpeppe"11:43
rogpeppefwereade: we already use the term "endpoint" in the RelationScope type doc11:43
rogpeppefwereade: should i remove it from there too?11:43
fwereaderogpeppe, good point -- yes, I think so11:43
fwereaderogpeppe, does that make it unpleasant?11:44
rogpeppefwereade: i'm don't *think* so.11:44
fwereaderogpeppe, cool, thanks11:45
rogpeppefwereade: if we think of a "relation" as a single-ended thing11:45
rogpeppefwereade: it's a pity we don't have two terms for "one end of a relation" and "the relation that joins these things together"11:45
fwereaderogpeppe, agreed, but the terminology seems to be reasonably well bedded in already11:46
fwereaderogpeppe, without too much confusion, hopefully11:46
rogpeppefwereade: yeah11:47
rogpeppefwereade: certainly in charm, there's no concept of the double-ended relation anyway11:47
fwereaderogpeppe, yeah, indeed11:47
=== benji___ is now known as benji
rogpeppefwereade: here's some preliminary work to make state/watcher amenable to a faster sync cycle: https://codereview.appspot.com/8078043/12:31
wallyworlddimitern: jam: https://codereview.appspot.com/807904312:39
wallyworldsorry i missed the suggestions the first time12:39
dimiternwallyworld: no worries, it looks much better now - LGTM12:43
dimiternthanks12:44
dimiternfwereade: ping12:44
wallyworldthanks, i must have been smoking my crack pipe to have missed it, sorry12:44
dimitern;)12:44
jamwallyworld: reviewed12:48
wallyworldthanks, looking12:48
dimiternjam: my point with using %s instead of %q was that ["compute, object-store"] looks uglier than [compute, object-store], and esp. [... one of these regions may be suitable instead: "reg1, reg2, reg3"] (ILTM as the region name suggested is "reg1, reg2, reg3"12:50
wallyworldjam: the wrapping with the error you pasted into the code review - i don't get that in my terminal12:51
wallyworldi get12:51
wallyworlderror: failed to GET object provider-state from container juju-50548874395ac32d8896f65ab33f3e1712:51
wallyworldcaused by: cannot create service URLs12:51
wallyworldcaused by: the configured region "region-a.geo-1" does not allow access to all required services, namely: compute, object-store12:51
wallyworldaccess to these services is missing: compute12:51
wallyworldone of these regions may be suitable instead: az-1.region-a.geo-1, az-2.region-a.geo-1, az-3.region-a.geo-112:51
jamwallyworld: that specific wrapping was probably codereview: http://paste.ubuntu.com/5655074/12:51
jamright12:51
jamwhich is why it is 'uneven'12:52
jamNot worth worrying about.12:52
wallyworldyeah. at least each caused by is on a new line etc, so it's not tooooo hard to read12:52
wallyworldbetter than a long string12:52
jamcertainly12:52
jamjust not 'ideal'12:52
jambut good enough for now, I believe12:52
wallyworldcertainly better than what it is replacing12:53
=== teknico is now known as teknico_away
jamyep12:53
jamand quite helpful12:53
wallyworldlet's see what users think :-)12:54
* rogpeppe struggles with the crackful WatchUnits tests12:56
jamdimitern: so, it appears that goamz.S3 requires an aws.Auth, and it *always* signs the request, even when your key is "". And that, in turn, is rejected by Amazon, even though the bucket is public (auth is checked first0.13:06
jamso I'm thinking just to add a way to supply ec2 creds, even though we "shouldn't" need them.13:06
dimiternjam: it looks like a bug in goamz13:07
jamdimitern: well, it is something to fix in the whole stack, which seems out of scope for the benefit.13:07
dimiternjam: but maybe it's worth a bug report at least to keep it in  mind13:07
jamas you have to have a way to get creds to accept not having auth entries13:07
jamrogpeppe: I believe you can land: https://codereview.appspot.com/7925045/13:19
rogpeppejam: i believe you might be right13:19
jamI was going to LGTM, but its already been done13:19
jamrogpeppe: it seems like you might get the framing wrong if you don't disconnect. Is there an advantage of leaving the connection open? https://codereview.appspot.com/7518052/13:23
jamit seems like while there might be a small one, it shouldn't be "normal operation" to get UnexpectedEOF13:23
rogpeppejam: yeah, i should probably not return nil on UnexpectedEOF actually13:24
rogpeppejam: the advantage of leaving the connection open is that the client gets some feedback on what went wrong.13:24
jamrogpeppe: can we write the response and then disconnect?13:25
rogpeppejam: in the actual api, ReadRequestBody does not actually read anything13:25
jamI do think we want to respond13:25
jamI agree we want to respond13:25
jamMy concern is just that if we get a partial read, then we might not know where the next message starts13:25
rogpeppejam: i'm wondering about allowing the codec to return a special error code that signifies it's not a terminal error13:25
rogpeppejam: we shouldn't get an error on a partial read13:26
jamrogpeppe: isn't that UnexpectedEOF?13:26
rogpeppejam: in the UnexpectedEOF case, we do bomb out13:26
rogpeppejam: the issue is other requests that may or may not signify a terminal error13:27
rogpeppejam: the thing is that the codec *knows* whether it's a recoverable error or not13:28
rogpeppejam: and when it is, i'd prefer not to drop the connection13:28
jamrogpeppe: sure13:28
rogpeppejam: (this was a request from the GUI team, BTW)13:29
jamproperly formed messages (even when they are telling you "I can't do that") don't have to close the conn13:29
rogpeppejam: the problem is that a message can be syntactically correct (e,g. well-formed JSON) but have some problem with the param types (e.g. null instead of string)13:29
jamrogpeppe: sure. My concern is specifically about malformed messages, which seemed EOF related.13:30
rogpeppejam: the behaviour at EOF and UnexpectedEOF is still pretty much what it was13:30
rogpeppejam: i'm more concerned about issues like spurious closing braces13:31
jamrogpeppe: well, I'd be fine closing a conn if you had a spurious closing brace.13:31
jamIf you're sending stuff that badly formatted, you can connect again.13:31
rogpeppejam: yeah, but this change might make it so that doesn't happen13:32
rogpeppejam: *if* ReadRequestBody actually read some data13:32
rogpeppejam: (which it doesn't, except in the rpc tests)13:32
rogpeppejam: my thought is that if such a thing happens, and the connection really is borked, then the next read-header will deal with the issue13:33
jamrogpeppe: as long as it doesn't become some sort of security hole (user-data getting interpreted as request data, etc) but I think the change is fine.13:34
rogpeppejam: i can't currently see any problem with doing that13:34
jamJust having the conversation about it.13:34
rogpeppejam: yeah, it's a good conversation to have13:34
rogpeppejam: i'm glad you brought it up, because it's the central possible issue in this change13:34
rogpeppejam: if the user data could force a syntax error in the framing data, then i think the client is broken.13:35
jamrogpeppe: sure, though you can always have a custom client that lets you send broken requests.13:37
jamHTTP apis aren't sacred :)13:37
jamanyway,13:37
jamthat is a bit remote13:37
rogpeppejam: that's true, but if that's true, then they can make up requests as they need - no need to leverage this method of getting user data to be interpreted as request data13:38
jamyeah13:38
rogpeppes/that's true/they want to/13:38
rogpeppesecond one13:38
dimiternanybody seen "Modifiers and non-modifiers cannot be mixed" from mgo? tried searching whole or parts of it in all go code, including mgo, but couldn't find anything13:38
rogpeppedimitern: sounds like it might be an error from mongod itself13:39
rogpeppedimitern: yeah: ./src/mongo/db/ops/update.cpp:4013:39
dimiternrogpeppe: yeah, seems so. hmm weird..13:39
rogpeppeomg c++13:40
rogpeppedimitern: http://paste.ubuntu.com/5655182/13:41
rogpeppedimitern: "e.eoo()" ?!13:41
dimiternrogpeppe: what's e.eoo() ?13:41
dimitern:)13:41
rogpeppedimitern: my question exactly13:42
rogpeppedimitern: EOO == "end of object", i think13:42
rogpeppedimitern: ah, you're mixing "$x" with "x"13:43
rogpeppedimitern: the crucial bit is: e.fieldName()[ 0 ] != '$'13:43
dimiternrogpeppe: I can't see how.. I dumped the doc and the key and there's no $ anywhere13:43
rogpeppedimitern: have you dumped the entire mongo op?13:44
dimiternrogpeppe: doing it now13:45
dimitern>>>> trying to set status of "u#wordpress/0" to &state.unitStatusDoc{Status:"error", StatusInfo:"test-hook failed"}; txn.Op{C:"statuses", Id:"u#wordpress/0", Assert:"d+", Insert:interface {}(nil), Update:(*state.unitStatusDoc)(0xf8401dd720), Remove:false}13:46
dimiternthat's what I have printed just before13:46
dimiternrogpeppe: can I somehow get a log of what mongo is receiving?13:49
rogpeppedimitern: i'd probably put a printf somewhere in mgo13:50
dimiternrogpeppe: good idea13:50
rogpeppedimitern: are you getting this when running a transaction?13:50
dimiternrogpeppe: yes13:50
dimiternrogpeppe: insert is fine, update fails13:50
dimiternrogpeppe: in the same collection13:51
rogpeppedimitern: what does the dump of the whole transaction ops look like?13:51
dimiternrogpeppe: I haven't changed anything else, just added a single op to an exiting transaction13:51
rogpeppedimitern: sure, but i'd still like to see it13:51
dimiternrogpeppe: just a sec13:52
dimiternrogpeppe: http://paste.ubuntu.com/5655208/13:54
rogpeppedimitern: looks fishy to me13:55
rogpeppedimitern: what's that Name:"$ne" doing in there?13:55
dimiternrogpeppe: I think I start to get it - Update: someinterface is not the same as wrapping it up in a D{{...}}13:55
dimiternrogpeppe: that's notDeadDoc assert13:56
dimiternrogpeppe: ah!13:56
dimiternrogpeppe: got it13:56
rogpeppedimitern: cool13:56
rogpeppedimitern: see, told you it was worth dumping in total :-)13:56
dimiternrogpeppe: or maybe not..13:56
=== wedgwood_away is now known as wedgwood
dimiternrogpeppe: so it used to be {C:u.st.units.Name, Id: u.doc.Name, Assert: notDeadDoc, Update: D{{"status", "somestatus"}}} and I removed the update but wanted to keep the assert13:58
rogpeppedimitern: there's still an Update in there13:58
rogpeppedimitern: which looks possibly bogus13:58
dimiternrogpeppe: yeah, but the status is moved into a separate collection where's the update now13:58
rogpeppedimitern: all the other Update instances have D{{...}} but this just has a unitStatusDoc13:59
dimiternrogpeppe: well, unitStatusDoc is interface{} to the setStatusOp (opaque)13:59
dimiternrogpeppe: and I need to insert/update whatever's there14:00
dimiternrogpeppe: should I wrap it up in a D{{something}}?14:00
rogpeppedimitern: what's the type of unitStatusDoc ?14:00
dimiternrogpeppe: unitStatusDoc is the type - struct {Status, StatusInfo string}14:01
rogpeppedimitern: BTW, i recommend dumping with spew.Dump - it formats it nicely and shows all depths14:01
rogpeppedimitern: that doesn't look like something you can pass directly to Update14:01
dimiternrogpeppe: actually no, there are 2 doc types: unitStatusDoc and machineStatusDoc - both have 2 fields (+ the implicit _id) and one has Status UnitStatus, the other Status MachineStatus (both are type *Status string)14:02
rogpeppedimitern: i think perhaps you want D{{"$set", unitStatusDoc}}14:02
dimiternrogpeppe: ah, ok I'll try this 10x14:03
dimiternrogpeppe: it worked! tyvm14:04
dimiternfwereade: ping14:32
dimiternfwereade: I prefer not to change annotations and constraints in this CL to use the globalKeyer, if you don't mind14:42
dimiternand there it is - https://codereview.appspot.com/8087043/14:44
fwereadedimitern, heyhey15:21
dimiternfwereade: hey, it's basically done - not sure about machine status logic; can you take a look please?15:22
dimiternfwereade: all tests pass, it seems none of the uniter ones depend on unit changes on status15:22
fwereadedimitern, there are a few things to talk about, not necessarily line-focused; might make sense to do so in a hangout?15:23
dimiternfwereade: sure, I'll start one15:23
dimiternfwereade: https://plus.google.com/hangouts/_/555b884bebd0c196b62a3b05ec40cb1ba95a5c19?authuser=0&hl=en15:24
MakyoCan I request another reviewer for https://codereview.appspot.com/8018043/ ?  It's big, but mostly just a name refactor.15:34
jamMakyo: is it possible to split it into *just* a name refactor and then another patch for logic changes, that is usually a lot easier to review, though I'll still give this one a look if you want16:05
jamotherwise each line I have to read carefully to see if there is more than just a mechanical change16:06
jamthough to be fair, everything so far has been only mechanical renames16:07
Makyojam, not easily, but yes, it's at least 95% mechanical, with the only logic changes being to get rid of entityNamer/namedEntity interfaces in state tests, as those are now available through the Tagger interface in state/state.go16:09
jamMakyo: can you point out the specific files, so I can be careful when looking at them16:09
jamstate/state.go and state/?_test.go ?16:09
Makyojam, yes, let me see if I can narrow it down further.16:10
jamMakyo: so one place here: https://codereview.appspot.com/8018043/patch/12001/1302616:10
jamyou rename entityId => tag16:10
jamwhere everything else was "entityName"16:10
jamis Id something different?16:10
Makyojam, no, same as entityName16:10
jamMakyo: so I think you mean here: https://codereview.appspot.com/8018043/patch/12001/1303016:12
jamwhere you got rid of the namedEntity interface16:13
jamfor a public state.Tagger interfac16:13
jam(presumably providing the logically same interface)16:13
Makyojam, state/assign_test.go, state/apiserver/api_test.go, state/state_test.go16:13
Makyojam, yep.16:13
jamreviewed16:20
Makyojam, Thank you :)16:20
rogpeppegosh that was a hard bug to find17:18
rogpeppeeod. am off now. happy weekends all. see y'all on tuesday.18:11
=== wedgwood is now known as wedgwood_away

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