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

bodie_if anyone can give me some insight here, it would be really helpful00:16
bodie_http://paste.ubuntu.com/7569460/00:16
bodie_the value is being retrieved from the db, after being serialized into it from a nested map[interface{}]interface{}00:17
bodie_the bit responsible for writing it to the db is here: http://bazaar.launchpad.net/~binary132/juju-core/charm-interface-actions/view/head:/state/state.go#L51100:20
bodie_this bit in particular threw me for a loop:00:24
bodie_map[string]interface {}{"<interface {} Value>":"foo.bz2"}00:24
bodie_it seems like perhaps it needs to be coerced to a map[interface{}]interface{} when being serialized?00:24
=== vladk|offline is now known as vladk
jammorning all05:54
wallyworldhi05:55
wallyworldquiet today with nz folks missing and andrew05:56
jamwallyworld: I thought you were sick05:57
jamI mean, I know you're always *sick*, but I thought you were sick-sick today :)05:57
wallyworldjam: i am. so i'm a little slower05:58
jamI just didn't expect you to be hanging out in IRC during your recovery05:58
wallyworldwell, there's lots to get done05:58
wallyworldthe github cutover has been on my mind  - i need to catch up with martin a bit later05:59
jamwallyworld: did I miss the doc which describes how we're actually going to land things?06:00
wallyworldjam: no, still wip, will be out today06:00
vladkjam: morning06:03
jammorning vladk, just switching to the hangout now06:03
dimiternmorning all06:18
wallyworldmorning06:23
jamwallyworld: just thinking about it, is the intent to get 1.18 into github as well?06:57
jamor are we just doing trunk and future releases?06:57
jamdimitern: morning. I'm around if you're up for starting our 1:1 a bit early06:58
wallyworldjam: sec, otp will talk soon06:58
jamwallyworld: also, just to queue up things, we are failing to just bump the version to 1.19.4, https://code.launchpad.net/~sinzui/juju-core/inc-1.19.4/+merge/22157006:59
jamany ideas there?06:59
dimiternjam, i'm here, we can finish earlier as well07:06
=== rogpeppe1 is now known as rogpeppe
wallyworldjam: sorry, was dealing with a crisis at home. there were no plans o do 1.18 as well, just trunk onwards07:41
=== vladk is now known as vladk|offline
wallyworldjam: saw the 1.19.4 bug. there were 2 raised, one about tools on utopic and failing tests. i fixed that one but was delaying the 1.19.4 one till i talked to tim07:42
wallyworldjam: with the ec2 root disk fix, i was hoping that since 1.20 was out soon, we could not worry about 1.18. but can do 1.18 if needed07:46
jamwallyworld: I believe 1.18 is going to be the version we can get into trusty for quite some time08:10
jamso it is stays quite relevant08:10
wallyworldjam: ok, i'll bACKPORT08:10
wallyworldbloody capslock08:11
=== Ursinha-afk is now known as Ursinha
=== Ursinha is now known as Ursinha-afk
=== vladk|offline is now known as vladk
voidspacemorning all08:39
TheMuevoidspace: morning08:47
jammorning voidspace08:56
mgzwallyworld: are you feeling up to standup?09:00
wallyworldsure09:00
wallyworldsorry, was just finishing dinner :-)09:00
jammgz, wallyworld: as long as he can do it laying flat on his back09:00
mgzwas worried you might be ill in bed till I saw you chatting with jam earlier :)09:01
dimiternWTF is github.com/binary132/gojsonschema ??09:02
dimiternare we adding random github dependencies now just like that?09:02
dimiternI though we're supposed to bring/fork third parties into github.com/juju/ when using them?09:03
mgzdimitern: we can move it into juju09:04
dimiternmgz, there should be some agreement and a policy how to deal with these09:04
jamdimitern: mgz: fwiw, I'd rather link upstream as much as we can and use dependencies.tsv to ensure their correctness, rather than fork things and not give "credit" to upstream authors.09:12
dimiternjam, and fork if the upstream breaks our stuff?09:14
jamdimitern: well again, we're pinned to an exact rev09:15
jamwith deps09:15
jambut yes, if they are egregious, then we fork09:15
dimiternah, right09:19
jamdimitern: we all have actual copies of the history because of how git works, so if they ever just get deleted, we can always recreate them09:23
dimiternjam, modern technology hey :)09:27
mgzso, this is already an our-fork of the project as bodie needed to fix stuff, but I'm also happy with it being in his namespace due to the wonders of dvcs09:30
dimiternfwereade, jam, vladk, networks= constraint only https://codereview.appspot.com/93670046 as requested (cmd/juju changes in a follow-up)09:32
dimiternplease take a look09:32
dimiternjam, mgz, can you rename a branch and repropose it as new?09:35
mgzdimitern: you caaan...09:37
mgzeasiest just to push from old location to new09:37
dimiternmgz, but how about the working dir? what bzr commands to use?09:38
mgzdimitern: which of the methods are you using?09:39
mgzprobably just when on that branch, `bzr switch -b new_name; bzr rmbranch old_name`09:39
dimiternmgz, hmm.. will it keep my pipeline intact?09:39
mgzdimitern: that is a good question I am not willing to answer :)09:40
mgzfind aaron :)09:40
dimiternmgz, ok, i'll just stick with the obsolete name then :) too much trouble09:40
voidspaceI'd love a go debugger right now09:53
dimiternvoidspace, have you checked this http://golang.org/doc/gdb ?09:56
voidspacedimitern: I haven't09:58
voidspacedimitern: hmmm09:59
=== vladk is now known as vladk|offline
jamvladk|offline: standup?10:46
=== vladk|offline is now known as vladk
jamvladk: welcome back. Standup?10:47
voidspaceah, that foxed me - replicaset Initiate logging is going to cloud-init.log not all-machines.log10:47
jamvoidspace: ah, because it is driven by "jujud bootstrap-state" ?10:48
voidspacejam: something like that (I wasn't aware of bootstrap-state specifically)10:49
voidspacejam: it's setting up the mongo server, so I guess it's needed before jujud can do *anything useful*10:49
jamyeah, though I wouldn't be terribly miffed if it also logged to machine-0.log which would get it into all-machines.log10:49
voidspaceright10:50
voidspaceit would have saved me twenty minutes of working out why my logging didn't appear to do anything :-)10:50
perrito666good morning everyone10:56
voidspaceperrito666: morning10:56
jammorning perrito66610:56
voidspaceso, on my local machine it is 9 seconds after Initiate that replSetStatus is able to return a successful status11:06
perrito666jam: so you made my sunday interesting with your email :p11:10
jammight as well keep every day exciting, why should weekends be different11:12
jamperrito666: ^^ :)11:13
voidspacewhereas asking for the config returns immediately even if initiate is still in process - I wonder if that can still be slower on some machines11:13
=== vladk is now known as vladk|offline
perrito666jam: I was reasonably far from a computer irc-able :p I had my head on that the rest of the day :p11:14
dimiternfwereade, when you have 15m today me and vladk (possibly jam as well) want to have a quick g+ with you re what networking-related stuff to add to hardwareCharateristics (if any)11:14
fwereadedimitern, I think I can do that now if you're free11:15
fwereadedimitern, I'm not sure if it's going to be the hc *document* itself -- mainly because I worry that network capabilities are potentially mutable, or at least more so than "normal" hc, although what happens when someone hot-swaps hardware?11:17
jamhttps://plus.google.com/hangouts/_/canonical.com/juju-sapphire ?11:17
fwereadedimitern, nonetheless I think what we need to store is "all *accessible* networks"11:18
jamdimitern: vladk|offline: care to join us?11:20
=== vladk|offline is now known as vladk
=== vladk is now known as vladk|offline
=== vladk|offline is now known as vladk
perrito666jam: lemme know when you are free for a moment please, so we can have a chat re the issue of localhost bein priorized11:29
rogpeppeanyone care to do a fairly trivial review, factoring some logsuite functionality out of juju-core? https://github.com/juju/testing/pull/8/files11:31
jamperrito666: I seem to have abit of time while this meeting comes together11:34
jamwhat's up?11:34
perrito666well, I read all of your comments, your main concern seems to be that I might (and most likely will) break the order of the addresses which are not localhost, right?ç11:35
jamright11:36
natefinchseems like the answer is not to sort, just extract localhost from the slice if it exists and connect there first11:37
jamsince sort.sort is not stable11:37
jamyeah11:37
perrito666the fun thing here is, I had done just that to begin, but it looked uglier than sorting .. :)11:38
jamI feel a little bit that if localhost is in the list, you shouldn't actually try to connect to anythingelse.11:38
jamis there a reason we allow fallbacks ?11:38
* perrito666 thinks11:40
perrito666It made sense to me because I am the one adding localhost there in the first place (actually I might) but I see no reason why localhost should not work in that case, since I am using the set up port11:41
natefinchit's a good point... we should probably only connect to localhost if it exists.11:43
jamnatefinch: it seems like just a good way to accidentally connect to something not localhost and then think that you're also a master, etc.11:43
natefinchthat's a very good point11:44
perrito666I wonder, is it possible for that list to contain more than one localhost?11:44
perrito666localhost address that is11:44
natefinchwith different ports?   Shouldn't be11:45
perrito666ok then, refactor it is... how do I handle re-proposing someting?11:47
jamperrito666: don't, start a new branch11:47
perrito666jam: ok11:47
natefinchhave you merged it already?11:47
perrito666natefinch: yup, I fixed your and waynes suggestions and that gave me a couple of lgtms11:49
voidspacenatefinch: morning11:49
voidspacenatefinch: care to take a look at this11:49
voidspacenatefinch: https://codereview.appspot.com/10480004311:50
voidspacethis waits for *up to* five seconds for a successful replicaset config - even if the Initiate call errors out11:50
natefinchperrito666: that's totally fine... just was going to say that if you hadn't merged it, you could edit on the branch, but since you have, just make a new branch with the fix11:50
voidspacenatefinch: on my machine it can take 9 seconds before we get a successful *status* after calling Initiate11:50
voidspacewhich is why I went with config - because waiting for status would slow down cloud-init on all machines11:51
voidspace(state servers)11:51
voidspaceon the other hand they can't do anything useful until the replica set is fully initiatlized, so maybe it doesn't matter11:51
voidspace*wouldn't matter11:51
natefinchvoidspace: won't this only wait a max of 5 seconds, though?11:52
voidspacenatefinch: I'm waiting for config not for status11:52
voidspacenatefinch: I didn't wait for status because that would take longer11:52
natefinchoh right, ok11:52
voidspaceif this doesn't work then maybe we need to wait for status11:52
voidspaceand if that doesn't work I suggest giving up for now...11:52
voidspacenatefinch: all tests pass with this change11:54
perrito666voidspace: didnt all test pass without it too? (in machines other than CI)11:55
voidspaceperrito666: yes... what I mean is that I have run all the tests to check I didn't break anything...11:55
voidspaceperrito666: well, didn't break anything covered by tests anyway11:56
* voidspace lunch12:03
jamnatefinch: did you want to do a catchup 1:1 now?12:18
dimiternfwereade, cheers, thanks12:19
natefinchjam: I'm probably going to get interrupted any minute, so probably not. We should probably reschedule this in general to a couple hours earlier when I'm more likely to be baby free12:20
rogpeppedimitern, voidspace, natefinch, jam, fwereade: any chance of a review of this, please? i've got a juju-core branch waiting on it. https://github.com/juju/testing/pull/8/files12:20
jamwell, I had 1hr ago free, but you weren't online yet, (after our standup, so not guaranteed), but I also have a gap 2 hours earlier if you can make that time12:21
natefinch2 hours earlier is fine, I'm usually online then, just sometimes hiding ;)12:21
jamrogpeppe: I thought splitting something out into juju/$PACKAGE meant that it should actually be independent of juju core stuff12:22
jamit feels odd to have JUJU_LOGGING_CONFIG in there12:22
rogpeppejam: i wondered about that12:22
rogpeppejam: i figured JUJU doesn't necessarily imply juju-core12:23
rogpeppejam: and it is in juju/testing12:23
rogpeppe jam: but i'm happy to rename it anything you choose :-)12:23
jamSo at least, my understanding was that stuff under "github.com/juju/*" should hopefully be applicable to 3rd parties that want to use them, otherwise why split it out12:24
jamthough I realize the new store changes will be something that is still very Juju related that wants a separate copy12:24
jamTEST_LOGGING_CONFIG seems a good fit, though.12:24
rogpeppejam: ok, TEST_LOGGING_CONFIG it is12:29
=== vladk is now known as vladk|offline
jamdimitern: have you had any chance to think about ipv6 stuff ?12:35
jamthat sounds like work that we need to be scoping early this week.12:35
fwereadejam, dimitern: +1 to that12:36
dimiternjam, i'm reading the wiki today as i code12:43
dimiternjam, sgtm, i'll have more insight tomorrow i guess12:43
=== vladk|offline is now known as vladk
rogpeppeanother fairly trivial review, please; update golxc to avoid using the (now deleted) testing/logging package: https://codereview.appspot.com/10378004313:36
rogpeppedimitern, jam, voidspace, fwereade: ^13:36
jamI thought golxc already had thta13:36
jamrogpeppe: rev 9 of golxc has "Replace LoggingSuite with IsolationSuite"13:37
rogpeppejam: oh13:38
rogpeppejam: i guess i didn't try bzr pull13:38
rogpeppejam: thanks13:40
voidspacefwereade: so mocking CurrentConfig directly isn't possible13:43
voidspacefwereade: I assume you want me to add an extra level of indirection to make it testable13:43
voidspacefurther complicated by the fact that *all* replicaset tests Initiate already13:44
voidspacebut I can workaround that13:44
voidspacefwereade: replicaset_test.go is already a whitebox test (in the replicaset package)14:01
voidspacefwereade: so ok to just use: var getCurrentConfig = CurrentConfig14:01
voidspacefwereade: to permit mocking?14:01
fwereadevoidspace, works for me14:01
voidspacefwereade: cool, reproprosing shortly14:02
natefinchvoidspace: yeah  (you'll find most of my tests are in the same package as the stuff they're testing)14:02
natefinchvoidspace: standup14:02
voidspacevoidspace: omw14:02
dimiternvladk, reviewed14:17
dimiternfwereade, a quick look at https://codereview.appspot.com/93670046/ - network constraints?14:18
fwereadedimitern, I'm in meeting mode for the rest of the pm, make sure perrito666 takes a look, I will try to swing by and add my opinions in the evening14:18
dimiternfwereade, ok, sure14:19
dimiternperrito666, PTAL then ^^ :)14:19
perrito666dimitern: looking14:20
=== andreas__ is now known as ahasenack
dimiternperrito666, thanks14:24
perrito666dimitern: I am sure you have a very good reason for it, but why ^? :)14:24
dimiternperrito666, ;)14:25
dimiternperrito666, for the CL or for the "thanks" ?14:25
perrito666dimitern: for the use of "^"14:25
dimiternperrito666, ah, sorry - I meant "look at the previous lines"14:26
perrito666dimitern: I meant for the ^ as the "exclude" prefix14:27
dimiternperrito666, or you mean in constraints? someone suggested to use it instead of "!" to play nice with bash14:27
=== vladk is now known as vladk|offline
perrito666dimitern: I think the ideal would be "-" but that would break anything most likely14:30
dimiternperrito666, yes, we use "-" in tags14:34
bodie_anyone have some input on how to properly serialize a nested map[interface{}]interface{}?14:37
bodie_I think it's serializing as {"<interface {} Value>":"foo.bz2"} instead of the full map, though I could be retrieving it wrong14:37
bodie_er, for use with mongo14:38
bodie_if not, I'll just head to the documentation, but if there's a quick answer to short-circuit that, it would be much appreciated14:39
natefinchbodie_: not sure why it's not serializing correctly. However, I'm wondering why you have a map with interface{} as keys?14:41
bodie_well, the top level is a map[string]interface{} -- however, the depth of that map is unknown until runtime, at which point it's deserialized from YAML14:42
bodie_therefore, since the values (of type interface{}) can themselves be keys of a deeper map...14:42
bodie_you end up with a map[i{}]i{}14:43
natefinchI sort of understand....sort of14:45
bodie_natefinch, the actionspecs key here has a list of values, which are themselves keys14:46
bodie_https://codereview.appspot.com/9454004414:46
bodie_I mean uhh... maps14:47
bodie_the values are maps14:47
bodie_which contain keys with maps as values14:47
bodie_so it's not as complicated looking as it sounds14:47
bodie_but, I'm not seeing how to coerce it into a usable format for bson serialization14:48
perrito666dimitern: I reviewed your patch, sorry if the commends sound harsh, I lack a bit of polite English, read them as if I was saying them with a smile14:48
perrito666bbiab14:48
natefinchbodie_: I'm just worried that if you make map[interface{}] then people can put stuff in the value that isn't a valid map key.... like another map14:49
natefinchwhich will only blow up at runtime14:49
bodie_yeah, that's probably why it doesn't work, heh14:49
natefinchhttp://play.golang.org/p/mk3tZ4NCUF14:49
bodie_I've been pushing for us to make it a map[string]JsonSchemaDoc or simply map[string]string and serialize to JSON-Schema at runtime14:49
bodie_because, we DO know that the values are serializable to J-S-docs, we check that at time of deserialization14:50
jcw4bodie_, natefinch even without that, I still don't see any place where the key has to be an interface{}14:50
bodie_(so that probably also answers your question -- we do a validity check immediately after deserializing from YAML)14:50
jcw4the keys, AFAICT, are always string14:50
bodie_the keys are, yes, but the values themselves can be maps14:51
bodie_with string keys14:51
natefinchright, but that means you should have map[string]interface{}14:51
jcw4right, so where does map[interface{}]interface{} come from?14:51
bodie_the top level is map[string]interface{} because it could have values which are themselves maps14:51
jcw4right,14:52
bodie_so, those are of type interface{} as far as we know14:52
jcw4any value with a map type would still be map[string]interace{}14:52
bodie_but they could be the keys of maps14:52
bodie_okay14:52
natefinchbut if they're a key, they're a string, so you can convert them to a string first14:52
jcw4no, the value would be a map[string]interface{}14:53
jcw4not a list of keys14:53
bodie_right14:53
jcw4bodie_: there's never a time that there will be a value of type map[interface{}]interface{}14:54
jcw4bodie_: it will be an interface{} until you figure out if its a map, in which case you'd cast it to a map[string]interface{}14:55
bodie_okay, which means that when I serialize it, I need to step through the top-level map recursively re-casting its children into map[string]interface{}'s if they are such?14:57
bodie_and then iterating into them14:57
jcw4bodie_: hmm, actually I think when you serialize them it takes care of that...14:58
bodie_that's what I thought, too.... :)14:58
natefinchmost of this stuff should be taken care of for you14:58
bodie_right, I'm sure I'm just missing some detail14:59
dimiternperrito666, thanks14:59
jcw4bodie_: looking at that MR I would first change all your map[interface{}]interface{} lines to map[string]interface{}14:59
rogpeppecan anyone remember the usual dance for updating a dependency in the 'bot?14:59
jcw4bodie_: then starting from there we can figure out other serialization issues14:59
bodie_looks like this technique (map[interface{}]interface{}) is already being used in several other place15:02
bodie_s*15:02
bodie_charm/meta15:02
natefinchif other people jumped off a bridge, would you? ;)15:04
bodie_hehe15:04
bodie_here we are15:05
bodie_http://paste.ubuntu.com/7573584/15:05
bodie_so, "outfile" is a map[string]interface{}15:05
bodie_I conformed my test to the obtained result, but maybe that's where I need to look closer15:06
bodie_http://paste.ubuntu.com/7573598/15:07
bodie_so, this is being deserialized by goyaml in this function: http://bazaar.launchpad.net/~binary132/juju-core/charm-interface-actions/view/head:/charm/actions.go#L3715:08
bodie_"ReadActionsYaml"15:08
sinzuinatefinch, jam, fwereade : CI is blocked by https://bugs.launchpad.net/juju-core/+bug/132507415:08
_mup_Bug #1325074: Juju version cannot be set to 1.19.4 <packaging> <juju-core:Triaged> <https://launchpad.net/bugs/1325074>15:08
sinzui^ the test suite knows we cannot replace a published version of juju. So when devel gets updates, 1.19.3 is built, it is rejected because 1.19.3 really exists.15:09
sinzuiThe unit tests are not affected by this, just the substrate and function tests15:10
jcw4bodie_: is this code all pushed up to your branch?15:11
bodie_yeah15:11
bodie_lp:binary132/juju-core/charm-interface-actions15:12
jcw4bodie_: so, you're seeing that the goyaml deserializer is returning a type map[interface{}]interface{} ?15:12
bodie_that appears to be what's happening, yeah15:12
bodie_I think I should have caught this before it hit the DB -- I think adding an extra check to charm_test might help, here15:14
jcw4bodie_: before it hit the DB?15:15
bodie_right, my issue was that I was retrieving an unexpected <Value: ...> from the database15:16
bodie_instead of a map15:16
jcw4bodie_: hmm, I didn't see any mongo access in that MR, do you mean Charm YAML?15:17
bodie_I added some stuff to state/State.AddCharm15:18
bodie_just a minor bit for including ch.Actions() in the cdoc15:18
jcw4bodie_: oh, in a previous MR?15:18
bodie_no, in charm-interface-actions15:18
bodie_http://bazaar.launchpad.net/~binary132/juju-core/charm-interface-actions/view/head:/state/state.go#L51115:18
jcw4bodie_: hmm, not in the MR then okay..  I was looking there while I was waiting for the branch15:19
bodie_https://code.launchpad.net/~binary132/juju-core/charm-interface-actions/+merge/221595 line 351?15:20
bodie_or uh, right, the MR15:20
bodie_https://codereview.appspot.com/99640044/patch/20001/3001515:20
bodie_no biggie15:21
bodie_anyway, I think I can catch it before that in charm_test15:21
bodie_pushing up a change15:22
jcw4bodie_: yeah.  Which test is failing in your branch though... I'm not seeing the error you pasted15:22
jcw4bodie_: (doh) forgot to switch branches15:23
bodie_that revision probably has its own problems, I just pushed the test breakage back into the charm package15:24
bodie_https://codereview.appspot.com/9964004415:24
jcw4bodie_: so when you use map[interface{}]interface{} in the test it passes...15:27
bodie_right15:27
jcw4bodie_: where is the issue outside the test when you use that?15:27
bodie_state/charm_test/TestCharm line 5315:28
bodie_54*15:29
bodie_the error is now charm/charm_test.go:77: invalid operation: f.Actions().ActionSpecs["snapshot"].Params["outfile"]["description"] (index of type interface {})15:33
bodie_Params is a map[string]interface{}15:33
jcw4bodie_: i see15:33
bodie_so, I need to cast it before checking, I suppose15:33
bodie_Panic: interface conversion: interface is map[interface {}]interface {}, not map[string]interface {}15:40
bodie_I'm still of the opinion that storing the JsonSchemaDocs as raw strings would be much simpler15:40
jcw4bodie_: yeah, that's an mgz and fwereade discussion.15:41
bodie_yep15:41
voidspacefwereade: natefinch: mp updated16:03
voidspacehttps://code.launchpad.net/~mfoord/juju-core/slow-replset/+merge/22170916:03
voidspacefwereade: natefinch: still waiting for lbox to do it's thing for the CL to update16:04
voidspacefwereade: note that after discussion with natefinch we switched to waiting for a successful replicaset status check rather than a config check16:04
voidspacethis is slightly slower, but safer and more likely to actually fix the CI problem16:04
voidspaceand CL updated too16:07
voidspacehttps://codereview.appspot.com/10480004316:07
=== hatch__ is now known as hatch
natefinchvoidspace: LGTM16:24
voidspacenatefinch: cool, let's land it and see if it fixes the problem16:28
voidspacenatefinch: if not I suggest we back it out because of the extra slowdown it causes16:28
=== vladk|offline is now known as vladk
perrito666back16:36
voidspacenatefinch: I'm hoping this change makes replicasets more reliable for tests too16:37
voidspacenatefinch: trying it now16:37
voidspacenatefinch: hmmm... well, a bit more reliable16:38
voidspacenatefinch: still some panics16:38
mgzfwereade: do you have github permissions to creat juju/core?16:39
mgzI seem not to.16:39
fwereadehuh, I think you should16:40
fwereademgz, what description would you like? :)16:40
mgz"Preliminary version, do not use yet" (I assume we can change that tomorrow :)16:41
fwereademgz, created :)16:42
mgzthanks!16:42
* fwereade has to go to the shops, bbiab, maybe16:42
voidspacesinzui: can you kick of a precise-amd64 bootstrap test16:50
voidspacesinzui: the last run was revision 281416:50
voidspacehttp://juju-ci.vapour.ws:8080/job/local-deploy-precise-amd64/16:50
sinzuivoidspace, no16:50
voidspacesinzui: is this the build problem you emailed about?16:50
sinzuivoidspace, since the juju version was not updated to 1.19.4, it is not possible to test new revisions16:51
voidspacesinzui: right :-/16:51
sinzuiwohttps://bugs.launchpad.net/juju-core/+bug/132507416:51
_mup_Bug #1325074: Juju version cannot be set to 1.19.4 <packaging> <juju-core:Triaged> <https://launchpad.net/bugs/1325074>16:51
voidspacesinzui: we think we might have fixed the precise problem, we'll have to wait to see I guess16:51
sinzuivoidspace, I honstley have been trying. I in in a utopic instance right now forcing the build steps to give me something to test16:51
voidspacesinzui: :-(16:52
voidspaceis anyone looking at this?16:52
voidspaceI'm ten minutes before EOD I'm afraid16:52
voidspaceand it's krav maga tonight16:52
sinzuivoidspace, I don't think anyone is, sorry16:52
sinzuivoidspace, I have talked to a few devs, but no one has a clue16:53
* sinzui ponders the consequences of hacking the juju version just before the tarball is built16:54
* sinzui think unit tests fail (good), but substrate tests will run16:55
natefinchmgz: can we just call it "juju"?16:58
voidspaceright, off to krav maga17:03
voidspaceprobably back on later though17:03
voidspacesee  you all17:03
voidspaceEOD17:03
mgznatefinch: wha?17:03
mgzI was told core. There was a thread a while back and I thought that was the outcome of it.17:04
natefinchmgz: hmm, I must have missed that thread17:19
cmarshazmat, jam I'm going to tackle LP: #1183309, per https://bugs.launchpad.net/juju-core/+bug/1183309/comments/7. sound good?17:40
_mup_Bug #1183309: destroy-service should have a force option <destroy-service> <ui> <usability> <workflow> <juju-core:In Progress by cmars> <https://launchpad.net/bugs/1183309>17:40
_mup_Bug #1183309: destroy-service should have a force option <destroy-service> <ui> <usability> <workflow> <juju-core:In Progress by cmars> <https://launchpad.net/bugs/1183309>17:40
jamcmars: make sure you sync with fwereade because he felt destroy-service —force was a Won't Fix17:41
cmarsjam, will do, thanks17:41
jcw4bodie_:  so bson (mgo\bson) doesn't know how to serialize map[interface{}]interface{}17:49
bodie_I figured that was it17:49
bodie_so I guess we need to look at how gojsonschema is representing it in memory17:50
bodie_I think it does a recursion17:50
bodie_in fact I'm certain it does17:50
jcw4well our tests indicated it was map[interface{}]interface{}... we know that Params will be a map[string](map[string]string)17:50
bodie_that's not necessarily true17:51
bodie_first of all, Params can definitely have simple string values17:51
bodie_http://paste.ubuntu.com/7574011/17:51
mgzjcw4: it seems like you should be able to write a pretty simple function that takes your map[string]interface{} and gives back usable bson17:51
bodie_secondly, it could have more deeply nested maps17:52
jcw4bodie_: so Params is 100% free form, constrained only by a jsonschema?17:52
jcw4mgz: map[string]interface{} is okay with bson17:52
jcw4it's map[interface{}]interface{} that bson chokes on17:52
mgzwell, taking that then17:53
bodie_mgz, do you know offhand whether encoding/json can?17:53
bodie_cause if we can encode it as a JSON literal, it should be simple to transform that into a bson literal suitable for direct storage17:54
bodie_without having to store the raw string17:54
bodie_but, I guess jcw4 is on the money with the assessment that the interface{} keys are the issue17:55
jcw4play.golang.org can't do imports...17:55
bodie_william mentioned we could use juju/schema to enforce String or MapString types17:56
bodie_s/MapString/stringMap17:56
jcw4http://paste.ubunut.com/757459517:56
jcw4http://paste.ubuntu.com/7574595   damnig17:56
wwitzel3perrito666: thanks for the review17:57
natefinchmgz: I looked back at the thread where we talked about the name, I think we were hoping for canonical/juju, but couldn't get canonical.   I think otherwise, we didn't really come to a consensus.  There is definitely a lot of previous art for using github.com/team/project   .... when looking at our list of repos, you'll see "testing" "errgo" "loggo" ... and "core".  Except core is not a thing (arguably testing is a bad name17:57
natefinch too).17:57
perrito666wwitzel3: my pleasure17:59
bodie_ha, that's so annoying that someone has already taken "canonical"17:59
perrito666(also my duty today :p)17:59
bodie_his account has also been inactive for at least a year or so18:00
bodie_make that 4 years18:00
perrito666bodie_: freenode?18:01
bodie_oh, my bad, I was thinking of Github.  I'll shut up now ^_^18:01
bodie_oh, since Nate had said github.com/team/project18:01
bodie_someone is parked on github.com/canonical, but his account has been inactive for 4 years18:02
jcw4bodie_: mgz, fwereade ... we know the params *passed in* when invoking an action can be arbitrary,  constrained by a jsonschema; but *declaring* the params in the actions.yaml seems like it will always be of a fixed structure?18:03
bodie_JSON-Schema is quite flexible18:03
jcw4bodie_: no disagreement there18:04
bodie_http://json-schema.org/example2.html18:04
jcw4bodie_: but actions.yaml is merely declaring the possible params, and providing a schema for what the value of those params could be18:04
jcw4but the name, description, and even default value isn't defined by that schema18:04
jcw4the schema we're referencing validates the value of the named parameter18:05
bodie_actions.yaml is being deserialized into a document which must be JSON-schema18:05
bodie_that's the only constraint as far as I'm aware18:06
jcw4bodie_: the point of json schema is to validate input to the api18:06
jcw4which 99% of the time is not from the actions.yaml file18:06
jcw4we're confusing declaring the action with invoking the action18:07
bodie_I'm not following your argument, actions.yaml does nothing but define the JSON-Schema which the Action arguments must be validated against18:07
bodie_Actions will therefore accept any JSON which conforms to the JSON-Schema defined in actions.yaml18:07
jcw4bodie_: you're saying that actions.yaml itself is the json schema?18:08
bodie_precisely18:08
bodie_of course, it doesn't have to itself be JSON, though it could since YAML can be constrained to conform to JSON18:08
bodie_it is simply deserialized into a JSON document which must conform to JSON-Schema v418:08
bodie_or uh18:09
jcw4bodie_: so the "name", "description", and "default" keys are json schema keys?18:09
bodie_right, everything under params is JSON-schema18:09
bodie_so Actions could actually also have other Actions-related metadata18:09
bodie_whereas Actions.ActionSpecs is technically a map[string]JsonSchemaDoc18:09
bodie_or uh18:09
bodie_map[string]ActionSpec18:10
bodie_where ActionSpec contains potential metadata, AND a JSON-Schema document18:10
bodie_sorry, I'm sure that's very muddled in translation to english18:10
perrito666ok, my brain just segfaulted18:10
perrito666I just bzr git pushed18:10
jcw4bodie_: #jujuskunkworks?18:11
bodie_yeah18:11
natefinchperrito666: haha18:12
natefinchperrito666: sometimes I juju push... which works about as well18:24
perrito666I am so tempted to create plugin for git and bzr that are forgiving on my brain short circuits18:25
perrito666sweet, natefinch did you see https://codereview.appspot.com/99670044/ ?18:26
natefinchperrito666: yeah, I was trying to talk to fwereade about it.  I was wondering if we're really interested in writing bulk api calls for calls that can't be bulk right now.  I don't know what a bulk call for ensure availability would look like.  We don't have multiple environments on a state server currently.18:28
bodie_does anyone know offhand where an example of juju-schema usage would be found?  (I'll be doing a little looking myself starting now, but any pointers are appreciated :) )18:49
perrito666natefinch: when is it fall over there?18:57
* perrito666 gets promissed a feature for his phone that he has been waiting for years18:57
natefinchperrito666: heh.... it's fall in like october18:58
perrito666bu18:58
natefinchperrito666: I take it you're watching the Apple stuff today?  Is it widgets or custom keyboard or something else?  those were the two that struck me as big18:59
natefinch(I'm just looking at a summary of a live blog, not actually paying that much attention)18:59
perrito666natefinch: I am listening to it, I had to get the mac with safari to get the vid to run so I just let it run on bg while I code18:59
natefinchhaha18:59
perrito666natefinch: but no, the ability to answer phone calls and use sms on the computer19:00
natefinchoh, neat19:00
perrito666natefinch: since the first time I saw an iphone I wondered what was the goal of paying a fortune for a phone+computer that are made by the same manufacturer and cannot do anything more complex than copy music from one to the other19:01
natefinchhaha19:05
perrito666mm /testing/base.go:26: undefined: "github.com/juju/testing".LoggingSuite20:05
perrito666what makes the dependencies go unclean?20:08
natefinchperrito666: generally it's that juju-core updates and the external repo doesn't, or vice versa20:17
perrito666natefinch: mm, apparently I have conflicts :|20:17
perrito666strange20:20
perrito666godeps ux is.... nil20:26
natefinchyeah20:28
natefinchI wish we'd drop it in favor of versioned branches20:29
perrito666natefinch: I would be fine if it just did git/bzr pull by itself20:30
natefinchperrito666: yeah, the problem is that in order to be fully functional, it would have to basically replicate the whole of go get20:32
perrito666natefinch: well, I could do another go lazytool in bash :p but you condemn bash tools for go20:33
perrito666:20:33
perrito666:p20:33
natefinchhaha20:33
natefinchperrito666: you should send a patch in for godeps20:34
thumperfwereade: morning20:58
thumperfwereade: around?20:58
thumperoh for the love of all things...20:59
thumperwhy do people feel the need to write code where they have to repeat themselves21:00
thumpera lot...21:00
perrito666hey, hey would someone ptal https://codereview.appspot.com/10382004421:00
perrito666thumper: ?21:00
thumperhi perrito66621:01
perrito666thumper: good mornight21:01
thumperah crap...21:01
thumperjust remembered that I have to call the school to tell them daughter is at home...21:01
perrito666thumper: wont they notice? :p21:01
thumperperrito666: sure... but this is to say that I know ...21:02
perrito666heh, here they check every day and at the end of each month ask you if you where aware the days they where not there :p less than ideal21:02
thumperjust had a mind blank on my own home phone number21:04
perrito666home phone, are you from the past?21:04
* perrito666 misses having a home phone, but is not willing to wait 3-6 months for it21:05
thumperperrito666: will localhost ever be in the list more than once?21:06
waigani thunderbird just crashed with the amount of emails I have to catch up on21:07
waiganimorning menn0, thumper :)21:08
thumperwaigani: morning21:08
menn0morning waigani21:08
thumperwaigani, menn0: fyi, I'm working on adding display name hand doing more hacking elsewhere to make that happen than I was entirely comfortable with21:09
thumperI want you two to review it later21:09
menn0thumper: np21:09
waiganithumper: display name hand? what is that?21:16
thumpers/hand/and/21:16
thumpertypo21:16
=== vladk is now known as vladk|offline
thumpermenn0: did you have a branch changing --password on user add?21:35
menn0thumper: yes. that was merged some time ago21:42
thumpermenn0: ta21:43
sinzuithumper, I fixed the bug21:48
thumpersinzui: yeah, I saw after I sent the email21:48
sinzuithumper, I found your constant in versions.go, I decide we can have upto 1.19.9 before we need to hack again21:48
* thumper nods21:49
voidspaceso my fix for precise-amd64 failed, but the error message is different21:49
sinzuithumper, It was obvious to fix when I had a break from the code. Friday was too chaotic for me21:49
sinzuivoidspace, I think it has changed, yes21:49
voidspacesinzui: trying on my precise box now on the off chance I can reproduce, but I'll dig into it anyway21:50
voidspacesinzui: glad you managed to get CI working again, thanks21:50
sinzuivoidspace, is this a timeout issue? Can I change a config to extend the timeout to 10 minutes?21:50
voidspacesinzui: I don't think so - the session is *immediately* saying it has already been closed21:51
sinzuiwallyworld, CI has blessed 1.18.4 trunk. I will release it tomorrow unless you want me to delay. I see one bug in progress.21:52
alexisbalright folks, juju is last, if you have a twitter account and a few minutes vote! : http://ibmappthrowdown.tumblr.com/21:52
alexisbsinzui, fyi wallyworld is suppose to be out sick today21:52
jcw4alexisb: how many votes do you get... I already voted once21:52
alexisb10 I think21:53
jcw4woo hoo21:53
alexisbyou just have to change the first part of the message21:53
sinzuiwallyworld, since 1.18.2 doesn't support utopic, I cloudn't deploy or provision a utopic slave to test. I had to manually install all the test resources to verify that utopic can be a deploy target. Oh the irony.21:53
voidspaceI've voted from my twitter accounts21:54
sinzuialexisb, damn, I will find axwalk later and ask about his plans21:58
jcw4alexisb: well, six is about all I can comfortably inflict on my twitter friends21:59
voidspacenaturally bootstrap succeeds on my precise machine22:00
alexisb:)22:01
alexisbfar enough jcw422:01
alexisbfair22:01
jcw4:)22:01
sinzuivoidspace, is your machine lxc or vm?22:01
voidspacesinzui: it's a VM22:02
thumpermwhudson: I think you have spoiled me22:02
thumpermwhudson: now I get angry looking at terrible tests22:02
mwhudsonthumper: happy to help!22:02
mwhudsonalso i mostly got that way from talking to jml, so blame him!22:03
voidspaceanyone know what sort of time axw is likely to be around?22:16
mwhudsonvoidspace: he's perth, isn't he?22:21
voidspacemwhudson: I believe so22:21
mwhudsonso utc+7 so it's only like 5 am for him now22:21
mwhudsonso probably another 3-4 hours?22:21
mwhudsonoh no, utc+822:22
voidspaceheh, yeah - 6:21am22:22
mwhudsonoh heh, WA stopped doing dst in 200922:22
mgzanyone know who's admin on the juju team on github? william was earlier, but I need someone to grant me rights so I can push a branch22:31
mgzalexisb: ^halp22:31
wallyworldsinzui: i am fixing backporting the fix fromtrunk now22:44
wallyworldshould be done real soon now22:44
mgzwallyworld: do you have admin on github.com/juju ?22:53
wallyworldmgz: let me check22:54
mgzI need to push my import up there to switch the bot over22:54
wallyworldmgz: i added you as an owner of juju22:58
wallyworldmgz: what do you think about it being juju/juju ?22:58
mgzwallyworld: thanks, pushing22:59
wallyworldi can see the point22:59
mgzwallyworld: I don't really have an opinon, which is why I just did what was suggested22:59
mgzI'm fine with whichever name people want22:59
wallyworldthumper: do you have a strong opinion? github.com/juju/juju-core perhaps?23:02
thumperwallyworld: not especially23:02
thumpermenn0, waigani: with  you in a minute23:02
mgzwallyworld, okay, repo up and job swaitched23:03
menn0thumper: np23:03
mgzemailing instructions23:03
wallyworldmgz: i can see that core may be suboptimal if people fork. can we make it juju-core?23:03
wallyworldmgz: awesome23:03
wallyworlddid you get the tarmac integration sorted?23:03
mgzdiscussed using other non-ec2 clouds with sinzui, seems hp would be the best switch23:04
mgzbut want to try a couple more things on ec223:04
sebas5384cmars: ping23:06
cmarshi sebas538423:07
cmarswhat's up?23:07
sebas5384hey!23:07
sebas5384i did the -i parameter to specify the interface (at least i think i did hehe)23:08
sebas5384but i don't know how to test23:08
cmarsoh cool23:08
sebas5384i run the the make restore install23:08
sebas5384but it always get stuck in some build23:08
sebas5384if you can guide me to test it cmars :)23:08
wallyworldmgz: ok, so long as we get to the point where we migrate and the landing is reliable :-)23:09
cmarssebas5384, can you push your changes up to your branch, so i can try it?23:09
sebas5384cmars: yes!23:10
sebas5384cmars: when its there i notice you23:11
sebas5384cmars: https://github.com/sebas5384/juju-nat/tree/local-provider-support23:20
* cmars takes a look23:21
sinzuiThe windows builder and test has gone tits up23:24
sinzuiI need to build a new one before to retest 1.18.4 for release tonight23:25
perrito666thumper: ping me when you are back plz23:32
thumperperrito666: back and off calls now23:33
perrito666I saw your comment, how do you suggest that port to be set?23:33
thumperthere are other examples in the code23:33
* thumper looks for one23:34
thumperperrito666: launchpad.net/juju-core/charm/testing/mockstore.go:23:34
thumperperrito666: line 5923:34
thumperperrito666: effectively ask for port 0, and then look at what it gave you23:34
perrito666I see, thank you23:37
cmarssebas5384, commented23:38
sebas5384cmars: yeah! i sow thanks23:39
sebas5384cmars: but can you help me on how to test it?23:39
wallyworldsinzui: that 1.18.4 bug is now fix committed23:40
sebas5384i will make the changes cmars23:40
cmarssebas5384, sadly, i do not have unit tests. we're in the awkward position of manually testing the thing, unf23:40
sinzuiwallyworld, fab, now I need to just build a replacement windows instance to test it23:41
wallyworldjoy23:41
cmarssebas5384, shame on me... i'll add an issue to make some proper unit tests. juju-core has some nice testing infrastructure, which will help23:41
cmarsin the meantime, manual testing will have to suffice23:41
sebas5384nice!23:42
sebas5384yeah!23:42
sebas5384but how?23:42
sebas5384hehe i don't know how to build it and use it23:42
cmarssebas5384, i'll note the pull req23:43
cmarsor the branch, rathetr23:43
sebas5384thanks cmars o/23:45
sinzuiwallyworld, I think 1.18.4 will have a good ride through CI. My new win machine works. It was the machine that failed to start and caused the curse of the last revision23:51
* wallyworld crosses fingers23:52
sinzuiwallyworld, CI won't get to the stable revision for about 90 minutes though23:52
wallyworldo23:52
wallyworldk23:52
* thumper goes to hit some things...23:52
sinzuihmm. CI now take 2h10m to test everything23:55
* sinzui ponders parallel builds in ci3.523:55

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