[00:10] davecheney: r u moaning or is it exclamation? [00:19] * hatch pokes his head in [00:20] marcoceppi: that sounds very odd, can you file an issue with steps to reproduce? [00:21] anastasiamac: 10:52 < marcoceppi> i just realized this whole demo is borked because cabs can't speak 2.0 api [00:21] marcoceppi: is this with juju 2.0 or 1.2x? === lazyPower_ is now known as lazyPower === lazyPower is now known as lazypwr [01:02] it's okay, i've become a reluctant expert at demo magic, all is well rick_h__ davecheney [01:02] hatch: I can actually reproduce it in 1.25 and released juju gui [01:02] as well as 2.0 and ~juju/juju-gui [01:02] marcoceppi: yay a repruducable bug :D [01:02] huzzah! [01:02] marcoceppi: if you are able to create an issue for it now, I can probably get someone on it tonight [01:04] (which would be my preference) :D [01:05] hatch: I have to deploy another service [01:06] marcoceppi: I just mean file an issue on github with steps for us to reproduce it === lazypwr is now known as lazyPower [01:33] marcoceppi: glad to hear it [01:33] marcoceppi: how did it go? [01:33] rick_h__: great [01:33] marcoceppi: <3 === lazyPower is now known as lazypwr === lazypwr is now known as lazyPower [07:33] Bug #1553059 opened: Help output when killing a `shared model` is incorrect === lazyPower is now known as lazypwr [09:59] dimitern: frobware: dooferlad: grabbing coffee [09:59] didn't see the time [09:59] be there in 5, sorry [09:59] voidspace, np, omw as well [10:03] right, omw [11:12] voidspace, would particularly appreciate your thoughts on http://reviews.vapour.ws/r/4060/ [11:45] fwereade, cheers btw! I'm having a look and so far it looks great [12:04] fwereade, you've got a review [12:08] fwereade: ok [12:27] fwereade: you've added discoverSpacesComplete as a gate.Lock, but it doesn't appear to be used [12:27] fwereade: is it just there as a reminder, or can it be removed [12:27] voidspace, ...well spotted, that was left over from before [12:27] voidspace, thanks [12:28] fwereade: and TestSpaceDiscoveryRuns is not yet written I assume... [12:29] voidspace, yeah, the trouble there is that the existing tests use patched constructors which don't really work for dep engine workers [12:29] fwereade: will you leave the unlocker in the discoverspaces.Config definition [12:29] voidspace, I should probably just hack a quick patched-ctor test back in and move on, and worry about integrating everything together [12:30] voidspace, I thought I would, since I have tests both with and without it -- easy to drop if we don't need it, but I'd already written the code [12:30] yep [12:30] cool [12:37] fwereade: worker changes look good to me [12:44] fwereade: heh, moving ConvertSpaceName will conflict with my current branch that moves it to network package [12:44] fwereade: ah well... [12:45] it's going away altogether soon as well. [12:48] voidspace, cool [12:51] fwereade: yeah, all LGTM except the unwritten test and the left over gate [12:51] fwereade: thanks for your work here [12:57] voidspace, np, thanks [13:10] mgz: yo! === rogpeppe2 is now known as rogpeppe [13:10] mgz: why can't I copy a bzr repo from one place to another and have it work? [13:10] rogpeppe: hey [13:10] mgz: i get "No repository present" [13:10] did yoy not take the .bzr dir with the repo? [13:11] mgz: i did [13:11] mgz: there's no difference between the dirs (according to diff -r) [13:11] do `bzr info -v` will tell you where it is [13:11] bzr: bzr: ERROR: No repository present: "file:///home/rog/tomb/" [13:11] right, so where was the original? [13:12] mgz: in ~/src/go/launchpad.net/tomb [13:12] mgz: ah! [13:13] the other thing is, you can bzr push from the original location to... more things than you'd expect from other vscs, works to filesystem at least [13:13] mgz: i think it must be a cobzr artifact [13:14] mgz: i don't have the problem if i branch directly from lp [13:14] mgz: odd [13:14] rogpeppe: yeah, and you can copy the whole dir structure without needing bzr and that will work too [13:15] mgz: that's what i did [13:15] mgz: and was expecting to work [13:15] mgz: but i needed to run bzr on the result [13:15] mgz: (to update deps) [13:16] rogpeppe: but if the repo is at say, ~/src/go and the branch is at ~/src/go/launchpad.net/tomb you didn't take the actualy revision history [13:16] mgz: no, the repo is in the tomb dir [13:16] but I'm not sure how cobzr confuses things exactly [13:18] mgz: neither me [13:18] mgz: i'm assuming it has an abs path somewhere [13:21] mgz: hmm, no, i'm still seeing the issue [13:22] mgz: have you got a moment or two to join a hangout? [13:22] mgz: 'cos i'm probably being totally stupid [13:23] rogpeppe: sure [13:24] hm, though if you can just suse a fresh branch that would be fine === lazypwr is now known as lazyPower === lazyPower is now known as lazypwr === lazypwr is now known as lazyPower [15:24] frobware, dooferlad, voidspace, please have a look at http://reviews.vapour.ws/r/4064/ when you can [15:27] dimitern: swap: http://reviews.vapour.ws/r/4002/ [15:28] dooferlad, looking [15:29] dimitern: thanks :-) [15:36] dimitern: were you trying to find out the maximum length of a go function name? [15:36] lol [15:36] TestAddLinkLayerDevicesRefusesToAddContainerChildDeviceWithNonBridgeParent seems to be winning. [15:36] ericsnow: natefinch: don't forget to complete your self-reviews + 360s by today [15:36] lol [15:36] dooferlad, yeah, that's the 3rd edition of the name, used to be longer :) [15:37] dimitern: well, if we didn't use CamelCase it wouldn't fit on a screen [15:37] TestAddLinkLayerDevicesParentNameAsGlobalKeyFailsForContainerIfParentMissing [15:37] k [15:38] katco: yep [15:44] frobware: ping? [15:52] ericsnow, katco: so, all the helpers for uploading bytes are in the csclient code, probably because UploadCharm etc exist only in csclient. For now I'm just going to put the meat of UploadResource in csclient and lightly wrap it in CharmStore, unless you have another suggestion? [15:53] natefinch: i think that's fine, but want ericsnow to weigh in as he and wallyworld continued discussing after i had EOD. [15:53] natefinch: i think wallyworld's main point was just to use the same wrapper that the rest of core code was using [15:54] natefinch: annnd i think ericsnow just answered your question in email :) [15:54] natefinch: Ian and I never actually got back together; I had to go before he had time [15:56] ericsnow: ok [15:58] ericsnow: I think we have to include the filename is resource POST (UploadResource), since the charmstore is going to do the same extension matching as the controller [15:58] ericsnow: I presume that'll just be another query parameter [15:59] natefinch: we'll want to check with the UI team on that; they may not feel the need to be as careful about matching the file types [15:59] ericsnow: I asked rick_h__ yesterday and he said we want to do it :) [15:59] natefinch: regarding code in charmrepo/csclient that we may need, we'll need to wrap those in the charmrepo package [16:00] natefinch: k [16:01] natefinch: I just sent a reply to that email about charmrepo.CharmStore vs. csclient.Client, explaining the intended design a bit more clearly (hopefully :)) [16:01] ericsnow: btw, just edited your Resources in the Charm Store doc... upload charm uses hash=foo for the has, so I changed our hash param name to match [16:01] frobware, dimitern: https://plus.google.com/hangouts/_/canonical.com/juju-spaces [16:02] natefinch: thanks for syncing that up with prior art :) [16:03] dimitern: frobware: spaces meeting? === JoseeAntonioR is now known as jose [16:12] voidspace, uh sorry, omw [16:12] dimitern: we stopped. [16:12] dooferlad, why so? [16:12] dimitern: you and frobware weren't there. voidspace and I didn't have anything to report. [16:12] thedac, ping [16:13] dimitern: hey [16:13] thedac, hey, sorry I got distracted - we should do a quick sync up though, if you don't mind [16:14] dimitern: Would you be available at the bottom of the hour? [16:14] I jumped into another meeting :) [16:14] thedac, yes, let's do it then [16:14] sounds good. See you then. [16:14] cheers [16:18] ericsnow: what should upload resource return? The revision? [16:18] natefinch: yep [16:28] dooferlad, you have a review [16:29] dimitern: thanks. Nearly done with yours. [16:29] dimitern: I am on the hangout now, whenever you are free. [16:29] dooferlad, quite a few issues I'm afraid, but let me know what you think [16:29] thedac, omw === lazyPower is now known as lazypwr [16:31] natefinch: did that make sense about charmrepo.Client vs. csclient.Client? [16:33] * natefinch rereads [16:33] dimitern, thedac: apologies for missing the call - I have water pouring out of my ceiling(s). :( [16:34] ericsnow: yeah, that's pretty much how I was thinking of it... though sometimes there's not much high level logic to put in charmstore :) [16:34] dimitern, thedac: scrolling back - is the meeting on now? [16:34] frobware, yep [16:35] frobware: it is [16:35] natefinch: yeah, that was my objection...which would perhaps be more relevant if we were writing this new :) [16:36] frobware, are you coming as we're about to wrap up? [16:37] dimitern: yes, omw. === lazypwr is now known as lazyPower === lazyPower is now known as lazypwr [16:48] ericsnow: the spec has PUT /id/resources/name/?hash=foo&filename=bar ... just checking that the slash after name is intentional [16:49] natefinch: not intentional [16:49] ericsnow: ok [16:49] ericsnow: good to know :) [16:49] natefinch: (copy and paste error) :) [16:50] ericsnow: I'm not exactly sure how much it matters, but since I have to either type it or not, I might as well ask :) [16:50] natefinch: note that I also added size as a query arg [16:51] ericsnow: do we need size? we have the hash, so we can verify the contents === lazypwr is now known as lazyPower [16:51] natefinch: ericsnow: was just thinking the same thing [16:51] oh, and we already put size in Content-Length [16:52] natefinch: ah okay [17:02] frobware: you around? [17:07] cherylj: yes [17:08] Bug #1553272 opened: help text for destroy-model needs improving [17:08] frobware: I opened up bug 1553017 for the xenial deployment issues [17:08] Bug #1553017: Unable to deploy xenial on MAAS / resolv.conf not populated [17:08] cherylj: yes, noticed this morning, thx. [17:09] smoser put in a workaround that I will try with your patch for bug 1550306 [17:09] Bug #1550306: 1.25.3 can't bootstrap xenial environments [17:09] frobware: one thing I did see, though, that seems to be unique to your patch for that bug ^^ [17:10] When I deployed to that node that had 2 NICs set up for testing bug 1549545 [17:10] Bug #1549545: Bundle deploys fail at lxc-start when bridge br-eth1 is created [17:10] I couldn't juju ssh into it [17:10] I could ssh directly to the IP [17:10] and all the agents were running fime [17:10] fine [17:11] but just running juju ssh 1 didn't work [17:11] (i'm rebootstrapping after verifying that it worked properly with 1.25 tip, and will get you the error message then) [17:13] cherylj: and the one thing is? [17:13] I can't juju ssh into the node [17:13] seems to only happen when I run with your patch for bug 1550306 [17:14] juju ssh 1 [17:14] Warning: Permanently added '192.168.100.150' (ECDSA) to the list of known hosts. [17:14] ssh_exchange_identification: Connection closed by remote host [17:14] cherylj: dns issue. [17:14] possibly [17:15] cherylj: did you just apt-get update to get smosers changes? [17:15] from machine 0? [17:15] cherylj: can we HO - might go a bit quicker. [17:16] on the maas-controller? [17:16] sure [17:16] https://plus.google.com/hangouts/_/canonical.com/cheryl-jennings?authuser=0 [17:17] Bug #1553272 changed: help text for destroy-model needs improving [17:23] Bug #1553272 opened: help text for destroy-model needs improving [17:28] ericsnow: if you have a little time, sanity check my function signatures? don't need a full review yet, just want to make sure we're on the same page. https://github.com/juju/charmrepo/pull/65/files [17:28] natefinch: k === natefinch is now known as natefinch-lunch [17:44] ericsnow: natefinch-lunch: rogpeppe is going to give us some reviews on our 1-pager [17:44] katco: k [17:47] natefinch-lunch: I left a few comments on that PR. [17:49] * katco lunches [17:53] ericsnow: if you upload a new charm revision, does it have any resources by default, or do you have to put all the resources every time you upload a new charm? [17:53] katco: ^ [17:54] rogpeppe: they get associated when you publish [17:54] ericsnow: so resources aren't associated with a particular charm revision when you upload them? [17:54] rogpeppe: correct [17:55] ericsnow: it might be worth mentioning that in the API docs [17:55] rogpeppe: a resource revision may be associated with more than one charm revision [17:55] ericsnow: so unpublished charms can't have any resources? [17:56] katco: ^^^ [17:56] rogpeppe: I don't see why not, but the only mechanism we have to tie resource revisions to a charm revision is publishing [17:56] ericsnow: that's my point [17:57] ericsnow: just checking [17:57] ericsnow: and can you "re-publish" the same charm revision several times with different resources? [17:57] rogpeppe: yep [17:58] ericsnow: so that means that if you deploy (say) wordpress-4, you won't necessarily get the same thing each time? [17:58] ericsnow: even though you've specified the revision exactly [17:58] rogpeppe: unfortunately yeah (this is a discussion we've had a bunch of times :/ ) [17:59] ericsnow: that does seem bad [17:59] rogpeppe: there's now a problematic implicit charm revision tuple (rev, res 1 rev, ...) [17:59] ericsnow: that skuppers reproducible charm deployment [18:00] rogpeppe: we could discuss this with rick_h__ again... [18:00] rogpeppe: I agree that it is a potential problem for that use case [18:00] ericsnow: that's really important, i think [18:01] jcastro: you got opinions on this jorge? [18:01] rick_h__: we should make sure this is settled ^^^ [18:01] ericsnow: looking, otp atm but we'll see [18:01] rick_h__: np [18:02] rogpeppe: thanks for taking a look, BTW [18:02] ericsnow: np. i've been meaning to do it for ages, sorry. [18:06] rogpeppe: it seems like the alternative is to make that implicit charm revision explicit: i.e. introduce a charm super-revision that maps to the revision tuple and use that to identify a charm "configuration" (poor name, I know) [18:06] ericsnow: yes [18:06] I am firmly in the reproduceability camp. marcoceppi ^^ wdyt [18:06] rogpeppe: but then we'd have 2 different charm revisions, which is confusing [18:06] ericsnow: well, they're really different charms [18:07] ericsnow: if you consider that a charm is really that tuple of stuff [18:07] wait [18:07] rogpeppe: depends on if by "charm" you mean the archive or the archive + resources [18:08] ericsnow: well, for the purposes of deployment it's gotta mean the latter [18:08] rogpeppe: unless we have clear and distinct language for the two, this is going to confuse people [18:08] rogpeppe: oh, I agree [18:08] ericsnow: as the resources influence the behaviour of the charm [18:09] ericsnow rogpeppe I agree with jcastro - the entire point of that revision is it's a moment in time that can be reproduced. If we're breaking that now it's not a good thing for the ecosystem [18:09] rogpeppe: so "charm revision" would mean different things in different contexts [18:09] marcoceppi: i thought you'd say that :) [18:09] ericsnow: well, it's a good question [18:09] ericsnow: are resources specified in the charm metadata? [18:10] rogpeppe: yep [18:10] ericsnow: so really, like bundles, it should be an error to upload a charm without some resources in place [18:10] ok so when the resource needs to be revved the charm metadata needs to change right? [18:10] jcastro: i hope not [18:10] jcastro: no [18:11] jcastro: resource revision is tracked in the store not in the charm [18:11] ack [18:11] Bug #1553292 opened: TestGoroutineProfile dial unix : no such file or directory [18:11] jcastro: the *definition* of the resource is provided in the charm metadata [18:11] jcastro: the problem is, you can rev charms and resources independantly of each other. So you could have resource+1 assocated to an existing charm which is technically a different experience [18:11] jcastro: the resource file is on top of that [18:11] so in a way, it might make sense to specify a charm's associated resources at charm archive upload time [18:12] rogpeppe: there's a chicken-and-egg problem though, no? [18:12] ericsnow: well yeah [18:12] rogpeppe: resources should not exist without the related charm [18:12] ericsnow: :) [18:13] rogpeppe ericsnow it seems to me, if you rev a resource version, it should artificially rev the charm version. Since "resource-upgrades" invoke a charm-upgrade it would solidify that story. [18:13] marcoceppi: we had discussed that, but I don't recall why we didn't pursue it [18:14] here's another possibility: a POST to /$id/bindresources will create a new charm id with some specified resources associated with the given charm id [18:15] and you ensure that you can't publish a charm to any channel unless all its resources have been bound [18:15] ericsnow rogpeppe we could track the charm version as `cs:[~user]/series/charm-ver+resource_ver` cs:~marcoceppi/trusty/wordpress-12+2` [18:15] or with a hash, I feel they're underutilized in the charm url schema wordpress-12#2 ;) [18:15] marcoceppi: wouldn't it have to be wordpress-32+resource1:4+resource2:3 ? [18:15] rogpeppe: requiring all resources be there is already a requirement [18:16] oh, yeah :\ [18:16] ericsnow: ok, but currently publishing doesn't create a new revno [18:16] rogpeppe: unless you considering a bundling of resources a version of that charm's resources [18:16] marcoceppi, rogpeppe: yeah, this is a hairy mess [18:16] ericsnow: i'm proposing a primitive separate from publishing that makes a new revno [18:16] rogpeppe: right, that is one of the sticky points [18:16] ericsnow: and you can then publish that [18:17] ericsnow: so any revno always specifies an exact (charm, resources) tuple [18:17] rogpeppe: the question is, how to charmers and admins communicate about charm revisions? [18:17] rogpeppe: you'd still want to talk about the revision of a charm archive, right? [18:18] ericsnow: i dunno [18:18] ericsnow: maybe; although a hash is just as useful tbh [18:18] rogpeppe: agreed [18:18] ericsnow: or a commit number [18:19] ericsnow: charm revisions are pretty arbitrary tbh [18:19] rogpeppe: but then we're changing the meaning of "charm revision" in a way that may confuse users [18:19] ericsnow: welcome to the brave new world of resources :) [18:19] rogpeppe: exactly [18:20] ericsnow: but in other ways, we're keeping the important thing about charm revisions - if you specify a charm revision, you know what you're getting [18:20] rogpeppe: this is why we've had this same discussion several times already. :/ [18:20] rogpeppe: right, I agree that is the important part [18:20] rogpeppe: also, for charms without resources the meaning of "charm revision" will be the same [18:20] ericsnow: i think that this is less confusing to the real users, and charm authors won't take long to catch up [18:21] ericsnow: yes it will [18:21] ericsnow: it just means that the second part of the tuple is always constant [18:21] s/second/resources/ [18:23] rogpeppe: how about we always tie resources to a charm [archive] revision when we upload them, then other charm revisions may use existing resource revisions [18:23] rogpeppe: the we don't need to add another API endpoint [18:24] ericsnow: how do you make a new charm revision with a different set of resources without uploading the archive again? [18:24] rogpeppe: publish will require that the charm entity have all it's resources set [18:25] ericsnow: that doesn't answer the question AFAICS [18:26] ericsnow: if i've uploaded a charm and specified the resources to associate with it, and then i want to make a new revision associated with new resources, without uploading the same archive again, how can I do that? [18:26] rogpeppe: hmm, you specify the resource revision explicitly during "upload"? "publish" will support associating them, but that doesn't help with development charms, etc. [18:27] rogpeppe: Perhaps you're right then about having an explicit endpoint for tying charm to resource revs [18:27] ericsnow, marcoceppi, jcastro: unfortunately i have to go now [18:27] it's been a useful discussion, thanks [18:28] rogpeppe: also, upload should be smart enough that it doesn't actually upload a resource blob that it already has (it should re-use the matching resource revision) [18:28] rogpeppe: thanks for bringing it up! [18:29] Bug #1553298 opened: TestCloudInitWithGUI cannot fetch Juju GUI: cannot read Juju GUI archive: open \\gui.tar.bz2 on windows [18:29] Bug #1553299 opened: TestCloudInitWithGUI cannot open posix paths on windows [18:29] Bug #1553303 opened: TestCloudInitWithGUIError cannot open posix path on windows === natefinch-lunch is now known as natefinch [18:41] Bug #1553308 opened: Windows and Centos: Panic: unknown OS for series: "wily" [18:50] bye all [18:50] have a good weekend [18:50] ericsnow: did you get a chance to peek at my PR? Like I said I don't need a detailed review, as long as I'm basically in the right ballpark [18:51] natefinch: yeah, I left comments [18:51] ericsnow: oh, huh, I expected it to refresh when I went from code to comments, but I guess it doesn't. Thanks [19:00] ericsnow: in your comment, you say I'm missing the resoucre revision... do you mean on the arguments to upload? Can you specify the revision number when you upload a resource? [19:00] re: https://github.com/juju/charmrepo/pull/65#discussion_r55062391 [19:02] natefinch: the comment relates to the last line in the snippet, not the first :) [19:02] natefinch: GH code review, FTW [19:02] ericsnow: oh, yeah, that makes much more sense [19:03] ericsnow: yeah, GH code reviews, huzzah [19:05] Bug #1553320 opened: TestBootstrapGUIErrorInvalidVersion os.ProcessState exit status 2 [19:05] Bug #1553322 opened: TestBootstrapGUIErrorUnexpectedArchive os.ProcessState exit status 2 on centos [19:08] ericsnow: natefinch katco did you all want to chat? [19:08] rick_h__: sure [19:08] https://plus.google.com/hangouts/_/canonical.com/moonstone?authuser=1 [19:08] brt [19:16] marcoceppi: jcastro: want to join us? ^^^ [19:32] marcoceppi: we need you ^^ [20:09] jcastro: marcoceppi: ty for your input [20:11] <3 [20:41] Bug #1553347 opened: juju bootstrap currently taking longer than 30mins [20:44] jcastro, what are you loving? I missed it? [20:44] alexisb: just some love passing between teams [20:44] Bug #1553347 changed: juju bootstrap currently taking longer than 30mins [20:45] katco: around when you get time. Can you also link me to the kanban board you use please so I can prep? [20:52] rick_h__ https://canonical.leankit.com/Boards/View/114568542#workflow-view [20:52] ty natefinch [20:53] Bug #1553347 opened: juju bootstrap currently taking longer than 30mins [21:16] rick_h__: hey sorry, was talking things through with the team. available now if you are [21:17] katco: np, otp atm but will ping when off [21:17] rick_h__: ok sounds good. give me a chance to make more tea :) [21:45] katco: free now [21:46] how bout your tea? [21:46] rick_h__: going to get it now :) [21:46] rick_h__: meet in moonstone? [21:46] katco: link me please? [21:46] google chrome won't autocomplete on moonstone for me yet, must not have used it enough times :) [21:46] rick_h__: haha https://plus.google.com/hangouts/_/canonical.com/moonstone?authuser=1