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

thumperdavecheney: as commented, I'd agree no floats if we were charging people, but I don't think we are00:05
thumperas it is just used for ordering, I think floats are ok00:05
davecheneythumper: i think it's going to bite us in the arse00:07
davecheneyand ordering could easily be acomplished by00:07
davecheneyconst millicent = 100:07
davecheneyconst cent = 100 * millicent00:07
davecheneyetc00:07
thumperwhat's this about go constants being untyped?00:08
davecheneythey are untyped00:09
davecheneythey are ideal00:09
thumperit makes constants like C #defines00:09
thumperwhich are horrible00:10
thumperwhy would they replicate that?00:10
davecheneyprobably, but a little more specified00:10
davecheneyso you don't need 100000000000000ULL00:10
davecheneyit works pretty well in practice00:10
bacdavecheney: could you have a look at https://codereview.appspot.com/7610046 again?00:21
davecheneybac: sure00:22
* davecheney has just filled up all the WIP slots on the review lane05:50
jamdavecheney: poke about hp bootstrapping06:28
jamjust to check what your OS_REGION_NAME is set to. It needs to be something like: export OS_REGION_NAME="az-3.region-a.geo-1"06:29
jamif it is just 'region-a.geo-1' then we can't find which compute region you actually want (az-1, az-2, az-3)06:29
davecheneyjam: ahh, that is probably it06:32
davecheneyerror: cannot start bootstrap instance: cannot find image satisfying constraints: No such flavor06:34
davecheneyhttp://www.vh1.com/celebrity/bwe/images/2009/10/FLAVA-FLAV-DAYLIGHT-SAVINGS-TIME.JPG06:34
davecheneyjam: do I need to supply a default-image-id or something to run on hp ?06:40
jamdavecheney: yes, you need default-image-id. I thought that 'juju init' would report an HP image06:40
davecheneyi didn't use juju init06:40
jamdavecheney: default-image-id: "75845"06:40
davecheneyta06:41
jamdefault-instance-type: "standard.xsmall"06:41
davecheneyoh god, number cannot be string06:41
* davecheney pulls hair out06:41
jamdavecheney: where was that? I've gotten it working with the above config on Windows, so I would think you wouldn't have a problem.06:42
davecheneydon't quote 7584506:42
davecheneythen yaml tries to 'sense' the type of the key06:42
jamdavecheney: http://paste.ubuntu.com/5627423/06:42
jamI'm using a ""06:43
jamI think it is supposed to be a string06:43
davecheneywow, bootstrap just pooed a screenful of binary data at me, ending with, returned unexpected status: 400; error info: {"badRequest": {"message": "Cannot find requested image 75845: Image 75845 could not be found.", "code": 400}}06:43
davecheneyis that image for region a, or region b ?06:43
jamdavecheney: there is nothing in region b06:44
davecheneyhmm, i'm using region-a06:44
davecheneybut using the indentity endpoint in region-b06:44
jamyeah, I just got the same, it worked last week. :(06:44
jamapparently they expired their images06:44
davecheneybzzzzzzzzzzzzzt06:44
rogpeppemornin' all07:14
dimiternmorning!07:55
dimiternjam: sorry about the meeting yesterday - got the mail to late to attend07:55
jamdimitern: np07:55
dimiternjam: so it's going to be a regular weekly meeting at 19h UTC ?07:56
jamyeah07:56
jamI think 16h UTC07:56
jamyeah, 16h is what I see on the calendar07:57
jamwhich is 17/18 DST07:57
jamfor you,  I believe07:57
dimiternjam: weird.. it showed as 20-20:30 local for me07:57
jamIf it was the email I sent, it was 20-20:30 local time in Dubai07:58
jamnot CST07:58
jamCET?07:58
dimiternjam: I see :)07:58
dimiternmramm: can you add the monday meeting to the juju calendar please?08:17
mrammwhich monday meeting?08:18
dimiternmramm: the juju cross team meeting (or smth)08:19
mrammI'll get it added08:19
dimiternmramm: cheers!08:20
rogpeppedimitern: https://codereview.appspot.com/7650048/ is up for review if you fancy it08:22
dimiternrogpeppe: click08:22
dimiternrogpeppe: while i'm on it - https://codereview.appspot.com/7497047 ?08:30
rogpeppedimitern: looking08:30
dimiternrogpeppe: reviewed08:50
rogpeppedimitern: thanks!08:50
jammgz: /wave09:04
mgzjam: mumble?09:04
jamsoitenly09:05
dimiternrogpeppe: ping09:49
rogpeppedimitern: pong09:49
dimiternrogpeppe: how about that CL?09:49
rogpeppedimitern: sorry, i've been chatting with mark09:50
dimiternrogpeppe: np, no rush09:50
jammgz: mumble is timing out for me right now, so I'm going to go grab a snack, bbias10:15
mgzjam: mumble kicked me...10:20
mgzand I can't reconnect10:20
jammgz: try one more time10:20
jamI'm back on it10:20
jammgz: still no love?10:22
mgzit's back10:25
* dimitern quick lunch10:47
dimiterni'd like a review on https://codereview.appspot.com/749704711:33
rogpeppedimitern: reviewed. not very well, i'm afraid though - i'm having difficulty wrapping my head around it.11:54
dimiternrogpeppe: tyvm11:55
dimiternrogpeppe: the idea is to have multiple service settings (per charm url), and the refcount is used to track and clean them11:56
dimiternrogpeppe: we need this in order to keep the old settings until there are any units that might use them (before they are upgraded to the new charm)11:57
=== BradCrittenden is now known as bac
rogpeppedimitern: one difficulty i have is that we're building a quite involved set of txn ops, and i have no idea what it might look like eventually, nor how the various asserts and ops might play together12:01
dimiternrogpeppe: well, there are tests to make sure the refcounts are handled correctly12:02
rogpeppedimitern: are there any concurrent-change tests?12:03
rogpeppedimitern: i suppose we know that the whole txn must go through as a unit, so maybe it's not worth it12:03
rogpeppedimitern: i'm just concerned that there are many possible txn "programs" this code can be building and i'm not clear that the tests are exercising all possibilities.12:04
dimiternrogpeppe: no concurrent tests, but I don't think they'll be that useful, and moreover i can't really wrap my mind around how to do it12:05
rogpeppedimitern: i wonder if you could enumerate a few cases for me, showing the whole set of txn ops produced for a SetCharm in various cases12:05
dimiternrogpeppe: if you refer to settingsInc/Dec ops they are used only in a few places (add/destroy service mostly)12:06
rogpeppedimitern: they're used by SetCharm12:06
dimiternrogpeppe: you mean service.SetCharm, right?12:06
rogpeppedimitern: yeah12:06
rogpeppedimitern: hmm, maybe i should download the branch and put a few printfs in12:07
dimiternrogpeppe: please do, if you can12:09
dimiternrogpeppe: so, cases:12:09
dimiternrogpeppe: we need to make sure the config is compatible, and also check the charmurl is different (not already set)12:10
wallyworld_mgz: https://pastebin.canonical.com/87106/12:10
rogpeppedimitern: because you're not allowed to change the charm url once it's set?12:11
dimiternrogpeppe: no, because it's already set12:11
rogpeppedimitern: so you can't upgrade to a charm from a different URL?12:11
dimiternrogpeppe: the crux of the ops happens in changeCharmOps12:12
dimiternrogpeppe: you can't upgrade to the same url12:12
rogpeppedimitern: ah, i see12:12
dimiternrogpeppe: and also we need to either create or replace the settings for this charm and service12:13
dimiternrogpeppe: i suppose adding more comments inline will help with understanding better what's going on12:13
dimiternrogpeppe: and we inc the new, dec the old, adding asserts as needed12:14
rogpeppedimitern: yeah, i think that would help me, at any rate12:15
dimiternrogpeppe: ok, i'll then12:16
mgzwallyworld_: ta12:18
rogpeppedimitern: FYI, here's an example of the ops we're producing: http://paste.ubuntu.com/5628008/12:19
wallyworld_mgz: lp:~wallyworld/juju-core/rsyslog-conf   <-- wip, bootstrap = good, unit nodes = bad12:20
dimiternrogpeppe: wow that's nifty how did you generate it?12:20
rogpeppedimitern: github.com/davecgh/go-spew/spew is really handy :-)12:21
dimiternrogpeppe: cool :) thanks12:21
rogpeppedimitern: i produced the output above with simply: spew.Dump(ops)12:24
rogpeppedimitern: (oh except i ran Edit x/^ +/x/ /c// on it because i prefer tab indentation and that's not the default)12:24
dimiternrogpeppe: nice!12:25
mgzwallyworld_: so, first thing to try is just copying /var/lib/cloud/instance/scripts/runcmd and running it, see what errors you get if any12:38
wallyworld_ok, will do12:38
mgzit looks from your cloud-config it should be safe to run again at a later stage12:38
mgzbut I note there's no set -e12:39
mgzso everything should be getting run, regardless of exit codes12:39
mgzthe other thing that comes to mind...12:40
wallyworld_mgz: running runcmd manually orked12:40
mgzare the perms on the config being borked somehow? this runs as root, I expect rsyslog isn't fusyy, but you never know12:40
wallyworld_rsyslog.conf can be owned by root12:41
mgzright, and your issue was it wasn't present at all...12:41
wallyworld_yes, "sudo sh ./runcmd" worked and generated the onf file and restarted syslog and everything is act expected12:42
wallyworld_but it's not running on boot12:42
wallyworld_or so it seems12:42
mgzI think it is... from the output12:43
mgzbefore the key generation, there's a line from wget12:43
mgzthen a note about rsyslog start/running12:43
wallyworld_ah yes, missed that12:44
mgz...I'd hurl in a `cat /etc/rsyslog.d/25-juju.conf` before that restart cmd12:44
mgzI wonder if this was just the port thing12:46
wallyworld_can't see how - it's just echoing to a file to generate the conf12:46
mgzand just the lack of output, and somehow confusion over the conf file existing was borking stuff12:46
wallyworld_i'll dig some more tomorrow, too tired now, thanks for help12:47
mgzI don't see what's special about the non-provisioning state apart from the send-logs-too part12:48
wallyworld_yeah12:48
mgzer... non-bootstrap node, whatever we're callig it12:48
mgza ghost!12:56
jammgz: mumble?13:07
mgzghost!13:08
abentleyjam: I've updated the branch to remove references to format 2.  Could you land it for me, please?13:27
=== wedgwood_away is now known as wedgwood
jamabentley: sure, I'll try13:28
abentleyjam: Thanks.13:29
jamabentley: in progress now13:31
jamabentley: done13:32
jamrev 102213:32
abentleyjam: Thanks!13:32
jamabentley: can you run the test suite on trunk just to be sure? I'm running it here13:33
abentleyjam: Okay.13:33
bacdimitern: sorry, i sent the email before pushing the code.  i'll ping you when it is done13:38
dimiternbac: sure, np13:38
dimiternbac: I got the habit of leaving draft comments on rietveld and then just lbox propose-ing - it sends them along13:39
bacdimitern: it does?  oh that's great.  i thought i had to do it manually13:39
dimiternbac: yes, it's nifty (both submit and propose do this)13:40
rogpeppedimitern: yeah, and it has the nice advantage that you don't post comments saying "done" when you haven't actually pushed the changes yet...13:45
dimiternrogpeppe: exactly :) i use this a lot!13:47
dimiternrogpeppe: btw I don't know why with your benchmarking branch one of the cases was run 50 instead of 100 times (like in your dump)13:48
rogpeppedimitern: it runs it more times if it runs faster13:48
rogpeppedimitern: it tries a small number of iterations first13:48
dimiternrogpeppe: I see13:48
rogpeppedimitern: obviously yours was a little bit slower than mine and pushed it over the boundary13:49
dimiternrogpeppe: no doubt - it has a teensy core i3 (one of the slowest)13:49
rogpeppedimitern: SSD?13:49
dimiternrogpeppe: yes and a good one13:50
rogpeppedimitern: i'm surprised that doesn't make a bigger difference actually. i suspect it's all io bound13:50
rogpeppedimitern: i just got the SSD that i could order with the laptop13:50
dimiternrogpeppe: mine is OCZ Vertex 128G13:54
dimiternrogpeppe: is supports sata3 i think, but my mb is too old13:55
rogpeppedimitern: i've no idea how to find out what mind is...13:55
rogpeppes/mind/mine/13:55
dimiternrogpeppe: :) just fiddled about in google about this - sudo hdparm -d /dev/sda13:55
dimiternops13:55
dimiternnot -d: -i instead13:56
rogpeppedimitern: one of the great things about macs is it's very easy to find out all the gory details of the machine specs13:56
dimiternrogpeppe: how?13:56
rogpeppedimitern: apple menu, About, Details.13:56
rogpeppedimitern:  HDIO_GET_DMA failed: Inappropriate ioctl for device13:57
bacdimitern: changes pushed13:58
TheMuerogpeppe: isn't the answer simple - always too slow and too small (any system). ;)13:58
dimiternrogpeppe: ah, yes - ubuntu used to have something like that (easily accessible somewhere... not the About this Computer in the tray menu though)13:58
rogpeppeTheMue: actually i find it's pretty quick.13:58
dimiternrogpeppe: -i is the info, -d is get/set dma sorry - see above13:58
dimiternbac: sweet!13:58
rogpeppedimitern: ah, i thought -d was the "dump" option :-)13:58
=== teknico__ is now known as teknico
TheMuerogpeppe: i'm happy right now too, it has been a geeks statement that hw can't be fast enough. :D13:59
rogpeppedimitern: TOSHIBA THNSNC128GCSJ13:59
dimiternrogpeppe: well, I was instantly afraid it was something bad, so checked :)13:59
dimiternbac: nice, good to go14:03
bacdimitern: by that you mean, submit?14:04
TheMuerogpeppe, mramm: hangout?14:04
abentleyjam: All tests ok.14:05
jama14:06
jamabentley: yep, same here14:06
dimiternbac: yeah, at least on my part I like it14:06
bacdimitern: ok.  dfc already said LGTM and i addressed his issue.  so off it goes.14:07
dimiternrogpeppe: can you take a look at https://codereview.appspot.com/7497047 again to see if it makes more sense now? added more comments14:38
rogpeppedimitern: will do14:38
dimiternmramm: what happened to the OCR card?14:39
dimiternmramm: I mean any steps towards it? what do you think?14:40
rogpeppeanyone other than dimitern fancy doing a review of https://codereview.appspot.com/7650048/ ?14:40
rogpeppealso there's a fairly trivial followup which actually makes the StateWatcher work: https://codereview.appspot.com/766304814:40
dimiternrogpeppe: I'll take the follow-up14:41
rogpeppedimitern: ta!14:41
dimiternrogpeppe: what will happen to other two watchers in state/state.go - watcher, pwatcher? should they be removed (eventually)?14:47
rogpeppedimitern: no - they're what all the other watchers (including the allWatcher) build on14:47
dimiternrogpeppe: but having them in State as fields - wouldn't it be a bit confusing?14:48
rogpeppedimitern: you mean allWatcher vs watcher?14:49
dimiternrogpeppe: yes, and pwatcher14:49
dimitern(the fields, not the actual impl)14:49
rogpeppedimitern: the fields are needed (and used) by all the other watchers14:49
niemeyerSo, is allWatcher going to receive data about every single thing that happens in the environment?14:50
rogpeppedimitern: but if you can think of better names, please feel welcome to suggest14:50
dimiternrogpeppe: no, just asking, sgtm14:50
niemeyerBy the way, state importing from state/api/params when state/api depends on state seems slightly backwards14:50
rogpeppeniemeyer: currently, yes (because that's what the GUI requires). in the near future we will summarise and hopefully avoid seeing everything.14:50
niemeyerrogpeppe: Ugh!14:51
rogpeppeniemeyer: there have been some awkward cyclic import issues around there. the params package is there precisely to avoid a cyclic import.14:51
niemeyerrogpeppe: There are many ways to avoid cyclic imports14:52
rogpeppeniemeyer: we need to work with the GUI as it currently is before moving forwards.14:52
niemeyerrogpeppe: Often, though, cyclic imports means that the organization itself isn't great14:52
rogpeppeniemeyer: perhaps you're right.14:52
rogpeppeniemeyer: suggestions welcome.14:52
niemeyerrogpeppe: I had several suggestions before:14:52
niemeyer1) Implement the proper API that makes the GUI work with it14:53
niemeyerThis could require changes in the GUI, of course14:53
rogpeppeniemeyer: i'm not sure what that means14:53
niemeyerrogpeppe: Not implementing allWatcher14:53
rogpeppeniemeyer: i could not get the GUI folks to change their entire structure at this point, i'm sorry.14:53
niemeyerrogpeppe: Well, you actually could.. we've talked about this before in a call as I remember it14:54
niemeyerrogpeppe: Spending an awful lot of time to put something broken in juju-core is no better than fixing the GUI14:54
rogpeppeniemeyer: i believe that even when fixed, the GUI will want information about the status of all units, even if it's in summary form.14:55
niemeyerrogpeppe: That's a broken design14:55
rogpeppeniemeyer: is it broken to want to know how many units are in a failed state?14:56
niemeyerrogpeppe: Nobody can possibly see 100k units at once in a meaningful way14:56
rogpeppeniemeyer: sure they can - *summarised*14:56
niemeyerrogpeppe: Heh.. that's a pretty different API than the watch API we have in place14:57
rogpeppeniemeyer: really?14:57
niemeyerrogpeppe: You wouldn't be watching a unit.. you'd be watching a single summary document14:57
rogpeppeniemeyer: yes, either that, or summarising changes into a summary held in memory14:58
rogpeppeniemeyer: that's the next phase in the allWatcher implementation (it's probable that the name "allWatcher" may no longer be appropriate after those changes)15:00
niemeyerrogpeppe: This is a massive infrastructure to compute "100 units in failing state"15:04
niemeyerrogpeppe: That's a single database query15:04
niemeyerrogpeppe: Indexed15:04
* rogpeppe goes off to die15:05
dimitern:D15:06
niemeyerhttp://www.dilbert.com/2013-02-25/15:06
* rogpeppe can't muster a smile.15:07
dimiternin such cases i remember monty python's "always look at the bright side of life"15:09
niemeyerrogpeppe: We just need a proper plan for how to move forward15:12
niemeyerrogpeppe: Perhaps this conversation took place and I'm just not aware, but given the conversations we had when I was pushing things closer, I though there was agreement on certain things that are clearly not the case at the moment15:14
niemeyerrogpeppe: It's not necessarily bad, but it's definitely the kind of thing that needs alignment to avoid digging a big hole15:15
niemeyerrogpeppe: I'll send a public sync up email15:15
niemeyerrogpeppe: Or half-public, perhaps15:16
mrammniemeyer: I don't think the hole is quite that big15:19
mrammniemeyer: we can pretty easily change both sides -- either now or later15:19
mrammniemeyer: which is not to say that digging holes and then patching them in later is the best thing to do15:20
niemeyermramm: Agreed. My concern at this point is mostly that I had discussed this with rogpeppe and hazmat in a call before, and it felt like the direction was a different oen15:20
niemeyerone15:20
niemeyermramm: I don't want to be right, though.. I just want us to know that we're not digging that hole, and have a plan15:21
mrammniemeyer: yes, but unfortunately that was 2+ months ago and discussions have happened since then15:22
niemeyermramm: Excellent15:23
niemeyermramm: Discussions is what we need15:23
mrammniemeyer: I know roger and gary have been in pretty constant communication15:23
niemeyermramm: Why is it hard to build the GUI on top of the existing watchers in watcher.go?15:23
mrammniemeyer: I have not been present in all of those meetings myself15:23
mrammniemeyer: my (partial) understanding is that there are many things that the gui needs to know that are not yet watched in watcher.go15:24
niemeyermramm: Why is it hard to change the GUI to not require a "give me everything that ever changes in the whole environment" model?15:24
mrammniemeyer: I think everybody agrees that we are going to change the GUI not to require that15:25
mrammniemeyer: I think the only question is how that happens -- timelines, how steps in that direction get defined, etc15:26
niemeyermramm: i understand that. I'm simply surprised that, given the timelines, it's easier to rebuild watcher.go from the ground up.15:26
mrammniemeyer: Why do you say from the ground up?   Am I missing something about the implementation?15:27
niemeyermramm: None of the logic in state/watcher.go is being used15:27
mrammniemeyer: ok15:32
niemeyermramm, rogpeppe: There's no one dying.. and perhaps what is being one is the best possible way to do things.15:32
mrammthat is much more useful information than anything I've seen so far15:32
mrammalarm bells are less helpful than specifics15:33
niemeyermramm, rogpeppe: But if nothing else, we need to be aware of the reasons for going in that direction, and why doing less would be harder15:33
niemeyermramm: My email was mostly a request for information..15:34
mrammand questions like "hey, is there a reason we couldn't reuse any of the logic in state/watcher?" are much more likely to advance the discussio15:34
niemeyermramm: I assumed that these topics were well covered internally15:34
mrammdiscussion15:34
niemeyermramm: That question happened months ago15:34
niemeyermramm: Either way, I'm sending a mail to canonical-juju15:35
mrammok, what was the answer then?15:35
mrammniemeyer: please do not do that yet15:35
niemeyermramm: It's a sync up mail15:35
mrammniemeyer: please send it to me first15:36
mrammyou can do what you want, of course15:36
mrammbut I think that it would be very valuable to focus this issue on technical discussion15:37
niemeyermramm: Don't worry, it's not a heat-up email.. it's just a way to get a written down plan about where we're headed to15:37
mrammand remove the high-stakes sort of alarm trigger words that have been used thus far15:37
hazmatfwiw i do agree that a summary doc (effectively getting aggregate  unit counts to state up to the service level would be cut out alot of traffic)15:38
mrammmy understanding at this point (not being in all the meetings) is that we all sort of agree on the future15:38
gary_postery15:39
hazmatthere's some concern about the latency for fetching the actual unit once the ui is interactive, ie. pay up front costs, and keep the rest of the traffic async delta15:39
mrammwhere we will have summary documents, and not just a firehose of data15:39
hazmatbut that may have been pushed by some of the zk communication overhead.. even simple things like login where adding multi-second latency due to libzk issues (patches extant).15:40
mrammI think we all agree that being notified of every change to a twenty thousand node nova compute center would be problematic15:40
mrammhazmat: yea, I don't think it makes sense long term for the gui to think that it can effectively keep the entire state in memory...15:41
mrammone of the reasons we went to mongo is that we don't want to have to be able to keep the state in memory on the server -- let alone on somebody's phone ;)15:41
hazmatagreed, there was a notion that it could shift to indexed db and keep only working set in memory.. but yes.. simplicity would be better served by summary15:41
hazmatand invalidation refs15:42
hazmatmramm, html5 apis like indexeddb or even localStorage allow for quite alot of client side state not in mem15:42
mrammhazmat: sure15:43
mrammniemeyer: so, with respect to the current situation -- I'm pretty sure we agree on end-state15:44
mrammniemeyer: the discussion right now is about how to most expediently get there15:44
dimiternhazmat: the only issue with local storage is the quota limit of 5MB (i think at least in chrome, ff maybe as well)15:46
hazmatdimitern, right.. hence indexeddb15:47
dimiternhazmat: there's no quote there?15:47
dimitern*quota15:47
mrammdimitern: hazmat: but let's be clear here, with a reasonable mongo database you *don't* need to keep the entire state in memory for the GUI15:47
hazmatindexeddb and webworkers both have  good support on mobile15:48
hazmatdimitern, 50mb15:48
dimiternmramm: except some of it - basically for performance reasons15:48
mrammsure15:48
mrammsome data needs to be local15:48
mrammbut that is a subset of the whole state15:49
hazmatthe original collection view that the gui was supporting, needed to be able to display effectively all of a service's units with state and ip info on a single view.15:50
hazmatwith dynamic sized units and filtering.. it seems the future designs have moved into a paging / filtering mode15:50
dimiternhazmat: i though you display only services, not individual units15:50
hazmatdimitern, try clicking through a service on the ui.. you get to a service overview with  units, and to a unit details with ability to manipulate a unit (resolved, retry, delete, etc).15:52
dimiternhazmat: right, I see it now15:53
hazmatanyways.. i'm much more confident of paging through a result set of units w/ mongodb and low latency then zk (where each node is at *least* one  round trip)15:55
mrammhazmat: clicing through can query more data right (sorry, was distracted for a bit)16:18
hazmatmramm, yup... but keep in mind we get some pretty bad client physical separation to api servers that also adds to latency.. ie  southamerican client querying to an openstack .. the full push delta work minimized the perceived user latency when the app was loaded, previously it would be like random pauses as you clicked through some pages.16:21
=== teknico_ is now known as teknico
hazmatone of the larger concerns is making sure the client is operating on a correct server side representation when performing actions16:42
hazmat realistically only the server can enforce that16:42
hazmatwhich means the client needs to send revision handles to contexts its operating on16:42
hazmatthere's also one significant api abberation in the juju-cli.. all the others operate on setting state to goal state.. but add-unit operates as a delta16:43
rogpeppehazmat: agreed16:43
rogpeppehazmat: but i'm not sure about the "needs to send revision handles" part16:44
rogpeppehazmat: as long as we have sensible operations and unique handles for entities, i think we're ok16:44
rogpeppehazmat: (we don't currently have the latter, unfortunately)16:44
hazmatrogpeppe, its last write wins then.. two clients writing out to config16:44
rogpeppehazmat: yeah. i think that's reasonable.16:45
niemeyerhazmat, rogpeppe, mramm: So, sync up mail sent..16:47
niemeyerHopefully demoted of emotion and any kind of blame.. just trying to see if we can get a written plan16:49
niemeyerI'm heading off to lunch, back in a bit16:51
mrammniemeyer: have fun at lunch16:53
mrammniemeyer: hopefully we can get down to technical specifics and hammer out anything that needs hammering out16:54
mrammI just noticed that you sent to canonical-juju, that alleviates my concern, I was flipping back and forth between IRC conversations, and mis-read you to say you were going to send a message to canonical-tech16:57
=== deryck is now known as deryck[lunch]
mgzfuuuu18:06
rogpeppedone for the day18:10
rogpeppeg'night all18:11
=== deryck[lunch] is now known as deryck
niemeyermramm: Yeah, certainly not a topic relevant for tech..18:50
benjihi all, I have gone through one review round on https://codereview.appspot.com/7600044/ and now need a second +119:45
benjiby the way, while we're discussing reviews, I have a question: my current understanding that two LGTM reviews (with or without "trivials") are all that are required for approval (after any "trivials" are addressed to the branch author's satisfaction).  Is that the case?19:49
=== BradCrittenden is now known as bac
m_3_thumper_: hey... lp question about moving bugs to new branches if you gotta sec21:05
_thumper_m_3: hey, otp right now21:05
m_3ack21:05
niemeyerbenji: It used to be.. but if someone questions it, that counts too21:36
niemeyerbenji: I mean, two LGTM + 1 "I don't get it" == hold21:37
=== wedgwood is now known as wedgwood_away

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