/srv/irclogs.ubuntu.com/2015/06/24/#juju-dev.txt

anastasiamacthumper: re chairs... it makes sense now why u r advocating standing tables :D00:04
anastasiamacdesks even00:04
anastasiamacmenn0: tyvm for looking :)00:13
anastasiamacmenn0: it's still WIP but I have added a li'l detail to description :)00:13
davecheneythumper: http://paste.ubuntu.com/11765246/00:32
davecheneydown to three races00:32
davecheneyone is trivial00:32
davecheneythe other two are more complicated to fix00:32
davecheneyactually, its probaly 400:32
davecheney2 are simple00:32
davecheneynope, the last one is the gocheck issue00:33
davecheneyso, 1 simple, 3 hard00:33
davecheneyurgh00:33
davecheneyi can't cannot00:33
davecheneycount00:33
davecheneyshort versoin, there are less races today00:33
davecheneysome are easy to fix00:33
davecheneysome are hard00:33
davecheneythere are less than yesterday00:33
mwhudsonand more than tomorrow?00:36
menn0anastasiamac: thanks. i've decided to be more picky about that when doing reviews00:38
anastasiamacmenn0: \o/00:39
mupBug #1468153 opened: Charms with storage don't use cloud-native default if size is specified, but provider is omitted <storage> <juju-core:Triaged> <https://launchpad.net/bugs/1468153>01:28
thumperdavecheney: I guess that's good01:31
mupBug #1468153 changed: Charms with storage don't use cloud-native default if size is specified, but provider is omitted <storage> <juju-core:Triaged> <https://launchpad.net/bugs/1468153>01:34
mupBug #1464356 opened: TestCloudInit fails <ci> <gccgo> <regression> <test-failure> <windows> <juju-core:In Progress by thumper> <juju-core 1.24:Fix Committed by thumper> <https://launchpad.net/bugs/1464356>01:40
mupBug #1468153 opened: Charms with storage don't use cloud-native default if size is specified, but provider is omitted <storage> <juju-core:Triaged> <https://launchpad.net/bugs/1468153>01:40
axwwallyworld: updated http://reviews.vapour.ws/r/1994/, PTAL01:45
wallyworldsure01:45
wallyworldaxw: just to check, as well as  TestRemoveLastVolumeAttachment where we check Dead, there's also a TestRemoveNotLastVolumeAttachment where we assert that the volume is not cleaned up?01:50
axwwallyworld: we can't do shared storage yet, so no01:51
wallyworldok01:51
wallyworldlgtm01:52
axwthanks01:52
thumperaxw: seen bug 1466167 ?01:54
mupBug #1466167: debug-hooks no longer works with 1.24-beta6 <debug-hooks> <regression> <juju-core:Triaged> <juju-core 1.24:Triaged> <https://launchpad.net/bugs/1466167>01:54
thumperaxw: I was thinking that this was fixed now01:54
axwthumper: hrm, I tested debug-hooks after my latest change to jujuc01:55
* axw tests again01:55
axwthumper: oh this was fixed when waigani reverted an older change01:55
thumperaxw: I have had reports that it broke again...01:55
axwstatus just needs to be updated. will do that01:55
* thumper shrugs01:55
axwI'll test again anyway01:55
thumperthanks01:55
thumper1.24 and master if you can01:56
thumperthen just update the bug01:56
axwsure01:56
thumperI thought you had fixed it01:56
thumperbut then someone said it was broken "again"01:56
thumperand I wasn't sure how soon again was01:56
thumperaxw: thanks for double checking thought, I appreciate it01:56
axwthumper: no worries01:57
thumperhazaar !! \o/01:57
thumpermy ci blocker fix landed in 1.,24 and just now, master01:57
* thumper crosses fingers for a blessing01:57
thumpermenn0: I'll update both jes-cli and db-log with master now that the ci bugs *should* be fixed01:58
thumperhmm...01:59
* thumper needs caffeine01:59
menn0thumper: awesome01:59
axwthumper: all good, updated the bug02:09
thumperaxw: awesome, thanks02:09
* thumper goes to turn on the coffee machine02:15
menn0thumper: thanks for the reviews02:47
thumpernp02:47
* thumper is looking at what appears to be an intermittent failure02:48
thumperWT actual F?02:49
* thumper sighs02:50
thumperlabix.org/v2/mgo/socket.go:285 is the only place this error text exists02:50
thumperwhich is in the Close() method02:50
thumperso... how did this test fail with that? http://juju-ci.vapour.ws:8080/job/github-merge-juju/3768/console02:51
thumperpasses here 40 times in a row02:51
thumperwhat would close it?02:51
thumperI don't see anything that would close it...02:52
thumperbah humbug02:52
natefinchthumper: I've seen that before, though not recently... I forget now what was causing it.02:53
thumpernatefinch: hmm...02:55
=== kadams54 is now known as kadams54-away
natefinchthumper: google says gustavo said this about it at one point: "if a machine is explicitly removed02:56
natefinchfrom a replica set, mgo will proactively close any open sockets to02:56
natefinchprevent errors from happening due to logic that stays running with a02:56
natefinchserver that isn't updating."02:56
natefinchfrom the same thread, the guy who was hitting this problem: "when this was happening, we were hitting our file descriptor limit"02:57
thumperthis use case doesn't touch any of that AFICT02:57
thumperhuh02:57
thumperinteresting02:57
natefinchIt sounds like there's no one specific reason that it can happen03:00
axwwallyworld: there was just one bug that affects 1.24, I've put up a PR. the other issues are only to do with destroying storage, so just on master03:02
wallyworldty, looking03:02
wallyworldaxw: lgtm03:04
axwwallyworld: cheers03:05
mupBug #1467973 changed: uploadSuite.TearDownTest Fails <ci> <intermittent-failure> <unit-tests> <juju-core:Invalid> <juju-core 1.24:Invalid> <https://launchpad.net/bugs/1467973>03:11
natefinchgood old sudo wget | sh03:15
natefincher | sudo sh  whatever you know what I mean03:16
thumpermeh03:33
* thumper jumps through the hoops to get a win2012 server kvm env to test windows test03:33
thumperdamn gready install, wants at least 12.5 gig disk03:43
mupBug #1466011 changed: apiserver tests fail on windows <ci> <regression> <test-failure> <windows> <juju-core:Fix Released by dave-cheney> <https://launchpad.net/bugs/1466011>03:44
mupBug #1468166 opened: serviceManagerSuite.TestCreate <blocker> <ci> <regression> <test-failure> <juju-core:Incomplete> <juju-core 1.24:Triaged> <https://launchpad.net/bugs/1468166>03:44
davecheneythumper: do you have a second, well more like 10 mins, for a discussion on a race fix ?04:02
thumperyeah...04:03
thumperdavecheney: hangout choice?04:04
davecheney1:1 ?04:04
davecheneythumper: http://paste.ubuntu.com/11765877/04:04
thumperdavecheney: http://wiki.cloudbase.it/juju-testing04:27
davecheneythumper: r u doing the standing desk ?04:28
mupBug #1438951 changed: destroy-enviroment --force destroy all aws instances <destroy-environment> <ec2-provider> <juju-core:Expired> <https://launchpad.net/bugs/1438951>04:29
thumperdavecheney: yeah04:30
davecheneyi moved my 'desk' down to the lounge room table now I'm on my own for two weeks04:30
davecheneydoes that count ?04:30
thumperwell... are you standing up?04:33
davecheneyi have to stand up to go downstairs04:35
davecheneythis is undeniable04:35
mupBug #1438951 opened: destroy-enviroment --force destroy all aws instances <destroy-environment> <ec2-provider> <juju-core:Expired> <https://launchpad.net/bugs/1438951>04:44
davecheneythumper: this race is really worrying04:51
davecheneyi think i need to bug it04:51
thumperoh... kay...04:52
davecheneyhttp://paste.ubuntu.com/11766040/04:52
davecheneythis code alters the config value04:52
davecheneywhich is really worrying04:53
davecheneybecause the watcher fires to indicate st.EnviroConfig() has been updated04:53
davecheneybut that is then passed to environ.New()04:53
davecheneywhich _alters_ the config object04:53
davecheneyeven if thee was a copy returned from st.EnviornConfig(), which there is not04:53
davecheneythis is still bonkers04:53
mupBug #1438951 changed: destroy-enviroment --force destroy all aws instances <destroy-environment> <ec2-provider> <juju-core:Triaged> <https://launchpad.net/bugs/1438951>04:56
* davecheney assumes the foetal position04:58
mupBug #1438951 opened: destroy-enviroment --force destroy all aws instances <destroy-environment> <ec2-provider> <juju-core:Triaged> <https://launchpad.net/bugs/1438951>04:59
davecheneyAAAAAAAAAAAAAAAARGH05:03
davecheneyhttp://paste.ubuntu.com/11766069/05:03
davecheneywatching for the environ config _and_ trying to retrieve the _current_ config at the same time will DEADLOCK05:03
thumperwallyworld, axw, davecheney: anyone... http://reviews.vapour.ws/r/2015/05:06
* davecheney looking05:07
davecheneyLGTM05:07
thumpercheers05:07
davecheneythat was pretty simple05:08
thumperthis only compiles and runs on windows05:08
thumperdavecheney: yeah05:08
thumpermost of the effort was in setting up the machine to test in05:08
davecheneythe log would say something like, check failed func(xx32842342) not comparable05:08
thumper    c.Assert(s.getPasswd.Calls, gc.HasLen, 1)05:11
thumper... obtained func() []testing.StubCall = (func() []testing.StubCall)(0x43f760)05:11
thumper... n int = 105:11
thumper... obtained value type has no length05:11
thumperanyway, master doesn't have this problem05:11
thumperjust 1.2405:11
davecheneyyeah, what you said05:12
thumpersinzui: fix submitted05:16
* thumper goes to start dinner05:16
mupBug #1468166 changed: serviceManagerSuite.TestCreate <blocker> <ci> <regression> <test-failure> <juju-core:Invalid> <juju-core 1.24:In Progress by thumper> <https://launchpad.net/bugs/1468166>05:17
=== brandon is now known as Guest50566
=== Guest50566 is now known as web
mupBug #1468187 opened: Juju on Fedora <juju-core:New> <https://launchpad.net/bugs/1468187>05:47
mupBug #1468188 opened: environs/config: Validate mutates the config passed to it <juju-core:New> <https://launchpad.net/bugs/1468188>05:47
mupBug #1468223 opened: failed units fail to fail and fail to die <juju-core:New> <https://launchpad.net/bugs/1468223>08:23
dimiternvoidspace, TheMue, jam, fwereade, standup?09:01
jamdimitern: brt, got logged out of google09:02
mupBug #1468349 opened: discoverySuite.TestDiscoverServiceLocalHost: invalid series for wily <test-failure> <unit-tests> <wily> <juju-core:Triaged> <https://launchpad.net/bugs/1468349>13:06
mupBug #1468349 changed: discoverySuite.TestDiscoverServiceLocalHost: invalid series for wily <test-failure> <unit-tests> <wily> <juju-core:Triaged> <https://launchpad.net/bugs/1468349>13:15
mupBug #1468349 opened: discoverySuite.TestDiscoverServiceLocalHost: invalid series for wily <test-failure> <unit-tests> <wily> <juju-core:Triaged> <https://launchpad.net/bugs/1468349>13:27
mupBug # opened: 1468354, 1468355, 1468357, 146835913:36
mupBug #1468365 opened: internal compiler error: fault <ci> <intermittent-failure> <juju-core:Incomplete> <juju-core 1.24:Triaged> <https://launchpad.net/bugs/1468365>13:48
mupBug #1468365 changed: internal compiler error: fault <ci> <intermittent-failure> <juju-core:Incomplete> <juju-core 1.24:Triaged> <https://launchpad.net/bugs/1468365>14:00
mupBug #1468365 opened: internal compiler error: fault <ci> <intermittent-failure> <juju-core:Incomplete> <juju-core 1.24:Triaged> <https://launchpad.net/bugs/1468365>14:06
mupBug #1468369 opened: TestBootstrapNoToolsDevelopmentConfig fails <ci> <intermittent-failure> <test-failure> <juju-core:Triaged> <https://launchpad.net/bugs/1468369>14:06
mupBug #1468369 changed: TestBootstrapNoToolsDevelopmentConfig fails <ci> <intermittent-failure> <test-failure> <juju-core:Triaged> <https://launchpad.net/bugs/1468369>14:09
mupBug #1468369 opened: TestBootstrapNoToolsDevelopmentConfig fails <ci> <intermittent-failure> <test-failure> <juju-core:Triaged> <https://launchpad.net/bugs/1468369>14:18
natefinchericsnow: this is what we get back from docker inspect... thoughts on what we should include in our status string?  http://pastebin.ubuntu.com/11768085/14:55
ericsnowId14:55
ericsnownatefinch: wish it was shorter14:55
natefinchericsnow: yes but, status14:55
ericsnownatefinch: oh, right14:55
ericsnownatefinch: something derived from State14:56
natefinchericsnow: and this is where I want to be able to return structured data as state ;)14:56
natefincher status14:56
ericsnownatefinch: I'm not sure that exposing that whole thing to users when they call juju status is the right thing to do14:57
natefinchericsnow: not the whole thing, but like one of the statuses (running, etc) and maybe the PID and error if not empty14:57
ericsnownatefinch: wwitzel3 et al. would probably have better insight into that though14:58
ericsnownatefinch: you may have a point (PID would be nice in status)14:58
ericsnownatefinch: let's get some feedback from wwitzel3, whit, etc.14:59
mupBug #1464356 changed: TestCloudInit fails <ci> <gccgo> <regression> <test-failure> <windows> <juju-core:Fix Released by thumper> <juju-core 1.24:Fix Released by thumper> <https://launchpad.net/bugs/1464356>15:03
natefinchericsnow: I think the "Name" can be used instead of the UUID...15:05
natefinchericsnow: in this case it's /dreamy_ptolemy15:06
ericsnownatefinch: as long as it's unique we don't care :)15:06
natefinchericsnow: just might be more user friendly15:06
ericsnownatefinch: my preference is certainly toward user-friendly15:06
natefinchericsnow: and I'm pretty sure it is unique per host machine15:06
ericsnownatefinch: sounds good15:06
mupBug #1464356 opened: TestCloudInit fails <ci> <gccgo> <regression> <test-failure> <windows> <juju-core:Fix Released by thumper> <juju-core 1.24:Fix Released by thumper> <https://launchpad.net/bugs/1464356>15:15
mupBug #1464356 changed: TestCloudInit fails <ci> <gccgo> <regression> <test-failure> <windows> <juju-core:Fix Released by thumper> <juju-core 1.24:Fix Released by thumper> <https://launchpad.net/bugs/1464356>15:24
katcoericsnow: http://reviews.vapour.ws/r/2020/16:03
ericsnowkatco: will review16:03
natefinchaww man, there's some benefits to docker being a Go project, on the help for "docker inspect": --format=""    Format the output using the given go template.16:06
natefinchactually, not sure how useful that is in practice, but it *seems*  cool16:07
natefinchericsnow: charm.Process has a name, should I be setting the docker name to that?  Is it guaranteed to be unique?  I notice that validate requires it to be non-empty... docker will generate its own name for the container if you don't give it one16:19
ericsnownatefinch: What happens if you try to launch more than one docker with the same name?16:21
natefinchericsnow: it'll probably fail.  The name is supposed to be a unique identifier.  I can try and see what happens16:21
ericsnownatefinch: could the plugin append some unique suffix to the proc name?16:22
ericsnownatefinch: actually, for now we could just use the proc name16:23
natefinchericsnow: sure.... or maybe we could just allow name to be empty and let the plugin give it a name16:23
ericsnownatefinch: let's not go there for now :)16:23
natefinchericsnow: so for right now we just use whatever we're given and if there's a collision, we return an error and say "don't do that"?16:24
ericsnownatefinch: exactly16:24
natefinchericsnow: k16:24
natefinchericsnow: what's "Type"?16:24
ericsnownatefinch: the plugin name16:25
ericsnownatefinch: e.g. "docker"16:25
natefinchericsnow: oh, ok, so the plugin itself can probably ignore that ;)16:25
ericsnownatefinch: (a plugin could support more than one type)16:25
ericsnownatefinch: sure16:25
ericsnownatefinch: I suppose the plugin could fail if there's an unexpected type, but that really shouldn't be a factor16:26
ericsnownatefinch: (in Juju anyway)16:26
natefinchericsnow: TypeOptions is just arguments to be given to the executable?16:27
ericsnownatefinch: pretty much16:27
natefinchericsnow: I'm not really sure how to translate a map to a list of strings... maybe it would be better if that were just a slice of strings?16:27
natefinchericsnow: for example, if you wanted to pass just "-d" or something16:28
ericsnownatefinch: "--<opt>=<val>"?16:28
ericsnownatefinch: I expect you'll have to loop over the map and use a switch inside to compose the arg list16:29
natefinchericsnow: is there some reason we can't just make it a list of arguments?  That seems like the most direct way to get arguments into the command line16:29
natefinchericsnow: I don't really want to have to parse a map and try to guess what people mean.16:31
ericsnownatefinch: I'm not sure here16:32
ericsnownatefinch: I see what you mean, but I'm trying to remember why we went with a map16:32
katcoericsnow: natefinch: haven't followed this conversation too closely, but would the flag package be helpful here?16:33
ericsnowkatco: unfortuantely no16:34
natefinchkatco: not really... this is like the opposite of that16:34
natefinchkatco: I need the unflag package :)16:34
katconatefinch: ah, taking a list of args and passing them to the command line as flags?16:34
ericsnowkatco: yep16:35
katcoericsnow: natefinch: i may have something, gimme a few mins16:36
natefinchkatco: it would work fine as []string, but ericsnow is trying to remember why they made it a map16:36
natefinchkatco: I actually think a []string is much more intuitive and less error prone16:36
natefinchI man, that's what the CLI expects, what exec.Command expects, etc16:38
katcoericsnow: natefinch: http://play.golang.org/p/CDP_7MagHH16:40
ericsnowkatco: using the flag package is way overkill here16:40
ericsnowkatco: the data is originating in the charm's metadata.yaml16:41
ericsnowkatco: (or similarly formatted at the CLI)16:41
katcoericsnow: hm. can you elaborate on why? it seems to do what you need in a few lines of code and is robust16:42
natefinchericsnow: maybe it's a map so you can override things?16:42
ericsnownatefinch: that works just as well with a list of strings16:42
ericsnownatefinch: I think we used a map for reasons that no longer apply16:43
natefinchkatco: it's specified as a map in the yaml, and needs to be a []string for exec.Command16:44
natefinchkatco: except that it doesn't really need to be a map in the yaml16:44
ericsnowkatco: YAML -> flags -> JSON (YAML) -> string vs. YAML -> []string -> YAML -> string16:44
katconatefinch: ah, i misunderstood. https://github.com/juju/juju/blob/feature-proc-mgmt/process/env.go#L36-L38 ?16:45
natefinchkatco: https://github.com/juju/charm/blob/v5/process.go#L2316:46
ericsnownatefinch: however, with a map you avoid the ambiguity of duplicates and you lose any expectation of ordering16:46
natefinchericsnow: uh... ordering can matter and duplicates can be valid16:46
natefinchericsnow: that's just reasons not to use a map :)16:46
ericsnownatefinch: there are several dedicated fields in charm.Process which are translated into args by the plugin16:46
natefinchericsnow: yep16:47
ericsnownatefinch: I would not expect ordering to matter, but if it does then yeah, a map won't work16:47
ericsnownatefinch: and yeah duplicates should be respected16:48
ericsnownatefinch: so I'm pretty much convinced :)16:48
ericsnownatefinch: how do we resolve the dedicated fields with order?  put them first?16:49
natefinchericsnow: *shrug* charms will need to know how to use their respective plugin16:49
natefinchericsnow: hopefully order won't matter16:49
ericsnownatefinch: the plugin has to decide where to stick those values16:50
natefinchericsnow: yes... generally the only time order matters is at the very end, like grepping multiple files, the files all go at the end16:51
natefinchericsnow: unless we just let them specify the entire arg list, there's no much we can do about ordering16:51
ericsnownatefinch: at least in the case of those dedicated fields16:52
natefinchericsnow: right16:52
natefinchericsnow: FWIW, the docker plugin won't have a problem with ordering... only the command is order dependent, so it's easy enough to put that in the right spot16:52
ericsnownatefinch: we could, as a rule, always put them at the front of the option list (unless they are args)16:52
ericsnownatefinch: with args they already have a specific order16:53
natefinchericsnow: right, so once we switch TypeOptions to a []string, I think we're done16:53
ericsnownatefinch: k16:53
natefinch(and call we call it Args, since that's what it is?)16:53
ericsnownatefinch: please leave it TypeOptions16:53
natefinchericsnow: as a charm author, TypeOptions does not sounds like "arguments to pass to the thing you're running"16:54
ericsnownatefinch: it's the options for the process type16:54
rogpeppeanyone else seen this error? (local provider, juju-core tip or close to it):16:55
rogpeppe%  juju deploy -e local wordpress16:55
rogpeppeERROR cannot retrieve charm "cs:trusty/wordpress-2": cannot get archive: Get https://api.jujucharms.com/charmstore/v4/trusty/wordpress-2/archive: dial tcp: lookup api.jujucharms.com on [::1]:53: read udp [::1]:35163->[::1]:53: read: connection refused16:55
rogpeppei can get the URL just fine from my regular command line16:55
katcoericsnow: natefinch: http://reviews.vapour.ws/r/2022/16:55
ericsnowkatco: dang it16:56
natefinchericsnow: I often find that the doc comment is revealing when looking at naming things.  The doc comment says "TypeOptions is a map of arguments for the process type"16:56
ericsnownatefinch: that's what I just said :)16:57
natefinchkatco: use jc.SameContents16:57
ericsnowkatco, natefinch: yes, please :)16:57
natefinchkatco: it does slice comparison that ignores order16:57
katconatefinch: cool, changing it16:57
natefinchericsnow: if there's a better word for describing the thing in the comments, that's probably the word you should use for the name.  // Args is a map of arguments for the process type16:58
natefinch(except, now it's a list, of course)16:59
natefinchericsnow: I think the fact that I had to ask you what it was is kind of telling.  If it was called "arguments" or "args" I don't think I would have had to ask.16:59
ericsnownatefinch: TypeArgs vs. TypeOptions?  Not much of a difference there16:59
katcoericsnow: natefinch: http://reviews.vapour.ws/r/2022/17:00
ericsnownatefinch: just Args (or Options) is too vague17:00
natefinchericsnow: why type?  the type is Docker or SystemD or Rocket.  The args are for whatever CLI command you're running....  but I'm not sure how to name that17:01
natefinchClientArgs?17:01
ericsnownatefinch: they are options for use by the type17:02
ericsnownatefinch: the plugin is responsible for interpreting their meaning and translating that into the CLI args17:02
natefinchericsnow: ok... let's roll back.  It sounds like these might not always be a direct mapping to CLI args. That might be my misunderstand17:03
natefinching17:04
natefinchericsnow: so, like, this could just be "other stuff you need to specify but that we can't forsee for every plugin, so here's map, use that"17:04
ericsnownatefinch: yep17:05
natefinchericsnow: ok, sorry, that was my misunderstanding17:05
natefinchericsnow: so this requires some shared knowledge between plugin and charm on what the values in the map mean... and that's fine.17:06
ericsnownatefinch: the options should still map pretty closely to the args the plugin will use17:06
natefinchericsnow: ideally, yes, so that it's easier to understand how to set the options.17:07
ericsnownatefinch: yep17:09
natefinchericsnow: I think it might just call it Options, then.  It's options for the process, the fact that it applies to the process type is implicit.  And I don't think I'd use "arguments" in the comment, because that makes it sound like CLI arguments, and they're almost certainly not a 1:1 mapping (if they were, you could just use a []string and specify CLI arguments directly)17:09
ericsnownatefinch: we call it TypeOptions because it does not contain any other options (e.g. things used by Juju)17:09
ericsnownatefinch: "explicit is better than implicit"17:10
katcoerr... on build bot: "fatal: unable to access 'https://gopkg.in/mgo.v2/': Could not resolve host: gopkg.in"17:10
natefinchericsnow: but they're options for this specific process. Another process of the same type might have different options.  So they're options for this process.  Yes, they're type-dependent, so but so is the command and image etc17:11
ericsnownatefinch: yeah, but other parts of charm.Process are not type-dependent17:12
natefinchkatco: http://downforeveryoneorjustme.com/gopkg.in17:12
ericsnownatefinch: and they are specific to that process because that charm.Process{} is specific to that processs :)17:12
katconatefinch: gustavo has an official uptime link: http://stats.pingdom.com/r29i3cfl66c017:12
natefinchericsnow: the *process* itself is type dependent17:13
ericsnownatefinch: exactly17:13
katconatefinch: looks like it was a blip on our end17:13
natefinchericsnow: so my point is, type is redundant. The whole struct is type dependent.17:13
ericsnownatefinch: not the whole struct17:14
natefinchericsnow: it is. You're passing it to a specific plugin for that type.  The way "port" is interpreted is type-dependent17:15
natefinchericsnow: can we at least change "arguments" to "options" in the comment?17:15
ericsnownatefinch: sure17:16
natefinchericsnow: in my mind arguments == CLI and that is not necessarily the case17:16
ericsnownatefinch: to me, in this context, they mean exactly the same thing17:16
ericsnownatefinch: but I see what you mean17:16
natefinchericsnow: but that's because you wrote it and you know what you mean.  To someone else, they have to figure out what you mean17:16
ericsnownatefinch: :)17:16
katconatefinch: hmm... arguments get passed to functions as well17:17
natefinchkatco: but in this case, this is all stuff that corresponds to how the plugin will launch a process, which is almost certainly via a CLI (I suppose it could be an API of some sort... but I'm guessing it'll usually be a CLI)17:18
natefinchericsnow: It seems like it could be "PluginOptions"  .  "type" to me, is an ID.  You can't have options for an ID.  The plugin and the process both have a type, and that's "docker".  But the options are for the Plugin.  Docker itself won't know how to translate that map.17:22
ericsnownatefinch: the fact that we are using plugins is an implementation detail17:23
ericsnownatefinch: you could just as well call it TypeHandlerOptions17:23
katcoericsnow: natefinch let's not bike shed this too much longer plx17:23
natefinchkatco: I wouldn't if it weren't for the fact that it's not changeable later17:23
natefinchkatco: this defines the API between Juju and the plugin17:23
natefinchand the charm17:24
katconatefinch: until this feature is live, can't it be changed17:24
katco?17:24
natefinchkatco: yes, true17:24
natefinchericsnow: how about this... leave the field name and just change the argument to "TypeOptions is a map of options for the process type handler."?17:25
natefinchs/argument/comment17:26
ericsnownatefinch: sounds good17:27
natefinchericsnow: awesome.   Periwinkle blue it is.17:27
ericsnownatefinch: lol17:28
ericsnownatefinch: hey, I thought you said Bullwinkle!17:28
natefinchToo late!17:28
katcoericsnow: i'm about ready to pair up once you review that branch17:28
ericsnowkatco: k17:29
katconatefinch: feel free as well: http://reviews.vapour.ws/r/2020/17:29
natefinchkatco, ericsnow: what's up with the panics, anyway?17:31
ericsnownatefinch: who's panicking?17:31
natefinchericsnow: there's some // TODO(ericsnow)  return an error instead17:32
katconatefinch: just following the pattern; i just don't think we've defined the error path instead17:32
natefinchericsnow: in registerHookContextCommands17:32
katconatefinch: it's not intended to stay that way obviously17:32
natefinchkatco: obv, just wondering what's up17:32
katconatefinch: incremental progress, that's what's up ;)17:32
natefinchoh... is this that stuff that gets called from Init() so panics aren't the end of the world?17:33
katconatefinch: correct17:34
natefinchok.. I get it17:34
katconatefinch: this is the very tip top of the chain.17:34
katconatefinch: but my larger point is: this is the way it is because it doesn't matter right now. we can define a better way later17:34
katcobrb tea17:35
=== kadams54 is now known as kadams54-away
=== kadams54-away is now known as kadams54
katcoericsnow: moonstone?17:59
=== kadams54 is now known as kadams54-away
natefinchericsnow, katco: FYI docker's launch and status pretty much working with all options etc.  Destroy will be trivial too.  Still need tests... gotta run for a little bit, will be on later this afternoon and then more tonight.18:16
=== natefinch is now known as natefinch-afk
ericsnownatefinch-afk: sweet!18:16
=== kadams54-away is now known as kadams54
=== kadams54 is now known as kadams54-away
sinzuikatco Do you have a minute to review http://reviews.vapour.ws/r/2023/19:22
katcosinzui: tal19:22
katcosinzui: sorry, not sure if you saw: ship it!19:26
sinzuikatco: I did :)19:27
katcosinzui: k :p19:27
=== kadams54 is now known as kadams54-away
=== kadams54-away is now known as kadams54
=== natefinch-afk is now known as natefinch
natefinchericsnow: should destroy remove the volumes associated with the container?20:25
katconatefinch: i don't think so20:34
natefinchkatco: k20:35
katconatefinch: http://reviews.vapour.ws/r/2018/diff/# read the description20:36
natefinchkatco: kk20:40
=== kadams54 is now known as kadams54-away
natefinchericsnow: what's command for?20:47
natefinchericsnow: (on charm.Process) .... is that like the docker command to run (i.e. docker run <container> <command>?20:47
ericsnownatefinch: the command to pass to docker (etc.)20:47
ericsnownatefinch: yep20:47
natefinchericsnow: hmm... that probably needs to be a []string then...   for example, if you pass "sleep 30" as the command, then docker tries to run "sleep 30" as the command name20:50
natefinch(and says there's no command called "sleep 30")20:50
ericsnownatefinch: then perhaps the plugin should address splitting the string for the user20:51
natefinchericsnow: that's incredibly tricky  what if command is 'cowsay "howdy there!"` ?  what quoting scheme do we use, bash, or someting else?20:57
natefinchericsnow: there's a reason exec.Command requires the user to split up the args :)20:58
* thumper shakes his fist at shitty tests20:58
natefinchericsnow: seems trivial to have the user write Command: [ "cowsay", "howdy there!"]   rather than Command: "cowsay 'howdy there!'"20:59
natefinchericsnow: and a lot less error prone20:59
ericsnownatefinch: what do docker commands normally look like?21:00
natefinchericsnow: docker run container cowsay "howdy there!"21:00
natefinchericsnow: if Command is just a []string, then I can just do args = append(args, process.Command...) at the end... otherwise I have to get fancy and tricky and assume I know how the user expects their command string to get split up21:11
natefinchkatco, ericsnow: I gotta make dinner, but I'll be back in a little less than 4 hours.... I can make progress even if we don't figure out the command stuff... plenty of tests to write of the rest of the code.21:15
=== natefinch is now known as natefinch-afk
ericsnownatefinch-afk: yeah, let's discuss the command stuff tomorrow21:16
davecheneyPASS: pinger_test.go:131: mongoPingerSuite.TestAgentConnectionsShutDownWhenStateDies    30.481s21:28
davecheneythumper21:29
davecheneyexactly 30 seconds to run this test21:29
* davecheney sharpens knife21:29
davecheneythumper: sorry, can you resend21:36
davecheneybasically nothing is working today21:36
ericsnowaxw: in case you didn't notice, I fixed the PR links in RB (for new PRs) :)21:37
davecheneyericsnow: thanks21:38
davecheneythat was super annoying21:39
ericsnowdavecheney: agreed21:39
ericsnowdavecheney: sorry it took so long to get a round tuit21:39
davecheneys'ok21:39
davecheneyfixed now21:39
katcothumper: for serious, i would love to see coupling of commits/branches <--> bugs21:52
axwericsnow: I did, thanks very much22:51
thumperdavecheney: http://reviews.vapour.ws/r/2024/diff/#23:06
thumperOMG running tests in the win2012 virtual server is SSLLLOOOOWWWW.....23:15
perrito666thumper: really? It didnt seem that slower23:34

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