/srv/irclogs.ubuntu.com/2014/03/27/#juju-dev.txt

davecheneyniemeyer: did you get a new one ?00:05
davecheneywith the new keyboard ?00:05
niemeyerNo, still the old one.. but the keys fail every once in a while00:05
davecheneyniemeyer: this may be of use, http://www.sadtrombone.com/00:05
niemeyerAfter spanking them hard enough, they seem to get back in shape00:06
davecheney+1, good advice00:06
davecheneythumper: i have a problem00:07
davecheneythumper: https://bugs.launchpad.net/juju-core/+bug/129811500:07
_mup_Bug #1298115: utils/ssh: test failures <ppc64el> <juju-core:Triaged> <https://launchpad.net/bugs/1298115>00:07
davecheneyuses a map to collect up the options when forming the command00:07
davecheneyso the results are00:07
davecheney1. always correct00:07
davecheney2. random00:08
davecheneythis is, IMO a bug in the test00:08
davecheneyI can do00:08
davecheney1. change to test to look for the specific arguments, rather than assert the string is exactly the same00:08
davecheney2. change the code to not use a map and enforce ordering00:08
davecheney2. is more work, and feels wrong as thre is no requirement for the order of arguments to be stable00:09
davecheney1. will probable make the test a bit messier00:09
wwitzel3thumper: I am now (re 3 hours ago)00:16
wwitzel3thumper: you still want me to take a look at bug 1297899 , I will add it to my task list for first thing in the morning.00:21
_mup_Bug #1297899: Libvirt machines deployed with MAAS and Precise is only able to successfully boot once <maas-provider> <juju-core:Triaged> <https://launchpad.net/bugs/1297899>00:21
thumperwwitzel3: that would be really helpful00:23
thumperas I don't have vmaas set up00:23
thumperit could be any one of the moving parts00:23
thumperdavecheney: I'd suggest check with axw when he starts shortly00:24
thumperdavecheney: as he was the author of said test00:24
bodie_sent an email to juju-dev@ -- if anyone can spare some cpu shares it would be most welcome :)00:24
wwitzel3thumper: yep, np00:24
bodie_whenever convenient00:24
davecheneythumper: right00:24
* davecheney goes to do something else00:24
thumperbodie_: yeah, just saw it00:25
thumperbodie_: we have a team meeting tonight, I'll whack it on the agenda there too :-)00:25
bodie_thanks! hope it's not too verbose, I did my best to chop out the fat00:27
bodie_I'm used to an environment where nothing longer than 5 bullet points gets read00:27
bodie_(where no bullet points have line wrap)00:27
thumperheh00:28
davecheneybodie_: what is an Action ?00:50
davecheneysinzui: how many cpu's does the landing bot have ?00:56
bodie_davecheney, an Action is a charm-defined um, action, such as snapshot for a MySQL service01:01
axwwallyworld: re SupportedArchitectures01:10
axwIf you can never upload the tools for a different arch, then FindInstanceTools will never be able to find them, right?01:10
wallyworldaxw: sec, otp01:10
axwadd-machine ssh:... still relies on FindInstanceTools01:10
axwok01:10
* thumper is back again02:02
bodie_I'm not sure, I was thinking of it as an API endpoint to run the Command on the client02:09
bodie_I don't understand how hooks are put together yet, I was focused on breaking down the command line syntax just to hopefully add a command we could test out02:11
axwwallyworld: raised #1298159, let me know if you've got too much on and I can take it02:33
_mup_Bug #1298159: manual: SupportedArchitecture restricts add-machine to same arch as bootstrap-host <manual-provider> <juju-core:Triaged by wallyworld> <https://launchpad.net/bugs/1298159>02:33
=== Ursinha is now known as Ursinha-afk
=== Ursinha-afk is now known as Ursinha
axwwallyworld: I'm just gonna do it, it's more important than the azure stuff03:04
axw(unless you're already doing it)03:04
wallyworldaxw: ah sorry, i replied and didn't hit enter cause i'm on another call, that woud be great03:04
wallyworldsorry about that03:04
axwwallyworld: no worries03:05
davecheneyaxw: thanks for taking a look at the ssh failures03:26
axwdavecheney: nps03:26
=== vladk|offline is now known as vladk
dimiternmorning all07:30
=== vladk is now known as vladk|offline
wallyworldarosales: hiya, I sent an email about the joyent provider. we're having our weekly meeting in a few hours where we can discuss. let me know if you want input (or you could even tag along on the meeting if you needed to)08:00
arosaleswallyworld: hello08:01
wallyworldhi08:01
arosalesI would love to attend the meeting but probably won't be awake enough to attend.08:02
arosalesI'll take a look at your mail.08:02
wallyworldok. meeting starts in 2 hours08:02
wallyworldraise any concerns and i'l pass them on08:02
arosaleswallyworld: you work on picking up the joyent provider work is very appreciated08:05
arosalesodd you ran into a quota issue08:05
wallyworldnp, sorry i haven't had a lot of time this week to start earlier, i've been swamped08:05
arosalesgood to hear bootstrap worked though08:06
wallyworldarosales: i didn't look closely - it may have been a rate limit exceeded issue08:06
arosaleswallyworld: no worries, I appreciate you picking up this extra task with your already full workload08:06
arosaleswallyworld: you using my account or curtis?08:06
wallyworldyours08:06
arosalesok, I'll see if there are any account settings, but I didn't see any  . . .08:07
wallyworldnp. i've been called to dinner, bbiab08:07
arosaleswallyworld: do you have 2 instances currently running in joyent?08:08
arosaleswallyworld: I'll leave those two running (they do look like juju instances), but if you could destroy so they are not racking up $$$ before you leave that would be great.08:15
=== vladk|offline is now known as vladk
dimiternvladk, hey08:17
vladkdimitern: good morning08:17
dimiternvladk, morning08:17
dimiternvladk, how is that card ("Update ec2/openstack/etc provisioners to fail requests with StartInstanceParams.Network set.") going ?08:18
dimiternvladk, would you like to do some pairing on it?08:18
vladkdimitern: I didn't have much time for it08:19
vladkMostly I worked on installing MAAS over VirtualBox08:19
dimiternvladk, did you manage ok?08:19
vladkI stuck with 'juju bootstrap' for maas, can't understand what ssh key I shoud configure on cluster controller08:20
dimiternvladk, I installed maas on precise with libvirt/kvm08:20
wallyworldarosales: i'll destroy08:20
arosaleswallyworld: thanks I didn't want to disrupt any debugging08:20
vladkI am working on daemon, that converts Wake-On-Lan packets to virtualbox start command08:20
dimiternvladk, so inside the maas web ui there's a preferences page where you can generate an api key and import your ssh keys08:20
dimiternvladk, doesn't vbox support WoL already?08:21
dimiternvladk, that's why I decided to use libvirt - maas has support for controlling kvm vms with virsh directly08:21
dimiternand works quite well08:22
dimiternnow i'm installing a new maas on trusty, in order to get vlan support (v1.5 r1961 or later)08:22
vladkvbox doesn't support WoL, but I write a daemon on Go, that listen vboxnet0 interface and starts VirtualBox images. This daemon is running on VirtualBox host08:22
dimiternvladk, nice! :)08:22
vladkI know about virsh, but it works only on Linux host, but I am still on MacOS08:23
dimiternvladk, you should get ubuntu ;)08:23
vladkI have installed ubuntu on macbook, and it surprisingly installed without problems, but I need time to be accustomed to new shortcuts and software.08:25
dimiternyeah, ubuntu works very well on mac books08:25
vladkAbout trusty, I failed to install maas on it, I got a lot of error on celeryd, that it could not connect to rabbitmq, so I switched to saucy.08:28
dimiternyeah, but we need maas on trusty which supports vlans08:29
dimiternother versions are too old08:29
vladkdimitern: we may use saucy for cluster controller and trusty for nodes08:32
dimiternvladk, we need a trusty region controller, the nodes do not matter - the RC is where the web ui and the maas api is (hence vlans support)08:33
jamdimitern, vladk: there is a PPA here: https://launchpad.net/~maas-maintainers/+archive/dailybuilds/+packages which has the updated versions of maas (I believe), but I do believe it only has a new-enough MaaS for the vlan work if you use trusty.08:34
bigjoolsif you don't want quite the bleeding edge there is daily-qa-ok as well08:34
vladkdimitern: if I select 'Create a new MAAS on this server' during installation, what do I get on that host? region-controller or cluster-controller or both?08:34
jamdimitern: actually, https://launchpad.net/~maas-maintainers/+archive/daily-qa-ok08:35
dimiternjam, yeah i talked with bigjools and rvba about that08:35
jambigjools: thanks, I just saw that while poking around08:35
bigjoolsjam: yeah it would be better for you at the moment08:35
dimiternvladk, you get both08:36
dimiternvladk, to install only one or the other you'll need to install manually maas-region-controller or maas-cluster-controller (maas package includes both)08:36
dimiternjam, well, i'm half-way there with the installation anyway08:37
jamvladk, dimitern: you always need both, I would install both of them on the main machine.08:38
jamThe cluster-controller is about scale-out08:38
jamso region is the overarching one, and clusters are groups of machines08:38
jambut you'd only have 2 cluster-controllers if you had, say, >1000 machines.08:38
vladkdimitern, jam: do I need a separate machine for juju? or I can install juju on maas host?08:42
jamyou need a separate VM for the Juju state server (machine-0)08:42
jamMaaS doesn't let you put workloads on the MaaS host.08:43
vladkjam: Should 'juju state server' be inside or outside of MAAS cluster?08:45
dimiternvladk, when you run juju bootstrap in a maas environment, juju asks maas for a new node (one of the Ready ones), where juju will install the state server09:04
dimiternvladk, so strictly speaking the juju state server is inside the maas cluster (as in on the same network), but not on the cluster machine itself (on one of the enlisted nodes)09:05
voidspacemorning all09:23
dimiternvoidspace, hiya09:23
voidspacedimitern: o/09:25
wwitzel3hello09:36
voidspacewwitzel3: morning09:38
rogpepperoll up, roll up, meeting limit approaching fast!10:00
rogpeppefwereade, dimitern: ^10:00
dimiternrogpeppe, cheers10:01
rogpeppevoidspace: meeting?10:01
thumperjam, voidspace: meeting time10:02
thumperwaigani: meeting10:02
waiganithumper: grrr, it keeps trying to log me in with my OTHER google account10:02
wwitzel3thumper: I looked at bug 1297899 this morning, I can replicate it with 1.17.2, but not with trunk. So I was going to try it with latest stable release to see if the fix can just be recommend the user upgrade.10:04
_mup_Bug #1297899: Libvirt machines deployed with MAAS and Precise is only able to successfully boot once <maas-provider> <juju-core:Triaged by wwitzel3> <https://launchpad.net/bugs/1297899>10:04
vladk can't connect juju-core-team call: This video call is full10:12
jam1vladk: yeah, we hit 15 today10:13
jam1have to get in early :)10:13
jam1vladk: https://docs.google.com/a/canonical.com/document/d/1eeHzbtyt_4dlKQMof-vRfplMWMrClBx32k6BFI-77MI/edit# is the doc we use each week to bring up stuff to talk as the whole team10:20
vladkI tried to install MAAS from the latest Trusty daily build and stuck again with MAAS web-UI:10:22
vladkI have a lot of messages in /var/log/maas/celery-region.log:10:22
vladkERROR/MainProcess] consumer: Cannot connect to amqp://maas_workers@10.0.1.198:5672//maas_workers: [Errno 104] Connection reset by peer.10:22
vladkDoes anyone know how to overcome it?10:22
jam1vladk: you can go to #maas and speak with rvba or allenap there10:23
jam1they are usually quite helpful10:23
jam1they lurk here too, but topic wise it makes more sense to ask there.10:23
rvbavladk: Looks like the rabbitmq server is down/not working.  Can you have a look at the logs?10:25
vladkrvba: rabbitmq is running, but probably not properly initialized, I don't see any vhosts and users on it10:29
rvbavladk: That's not right, you should see a maas user at least.  That's all created when the package gets installed.10:29
vladkrvba: I see maas user in Linux (although without /home/maas directory), but I don't see maas user in rabbitmqctl10:30
vladkrvba: the first mention of maas in rabbit@core.log is: "AMQPLAIN login refused: user 'maas_longpoll' - invalid credentials"10:33
rvbahum…10:33
rvbaSame problem, the 'maas_longpoll' hasn't been created.10:34
vladkfound in /var/log/installer/syslog: in-target: Creating user "maas_longpoll" ...10:35
vladkin-target: Error: unable to connect to node rabbit@core: nodedown10:35
rvbaInteresting, looks like rabbitmq was down when the MAAS package was being installed.10:36
rvbaalexisb: ^10:36
rvbaalexisb: err, sorry10:36
rvbaallenap: ^10:36
allenapAh, that would explain it.10:37
allenapCould it be a race during installation? Rabbit’s not started by the time MAAS tries to create the user?10:37
vladkrvba, alexisb, allenap: part of /var/log/installation/syslog: http://pastebin.ubuntu.com/7162005/10:39
allenapvladk: Is policy-rc.d something you’ve installed?10:47
vladkallenap: I do the installation of MAAS on VirtualBox. Nothing special. I have a description here: https://docs.google.com/a/canonical.com/document/d/1oK80_jjPAD2BCwhNcFv9v_szkG1CE2AHy05BMjQfIeY/edit?usp=sharing10:50
vladkallenap: I don't have any problems with Saucy, but with Trusty this is persistent issue10:51
rogpeppeaxw: perhaps we could have a chat after this meeting about HA stuff, if you have a little time?10:57
rvbavladk: Doing an install on canonistack now… you've installed 1.5+bzr2153+2177+253~ppa0~ubuntu14.04.1 correct?10:57
axwrogpeppe: bad time, sorry - need to get dinner on and so on10:57
axwrogpeppe: maybe later on10:57
allenapvladk: Essentially policy-rc.d seems to be blocking the correct operation of maas-region-controller’s postinst.10:57
rogpeppeaxw: sure10:58
rogpeppeaxw: let us know when might be a good time10:58
axwI will come back a bit later if I can10:58
allenapvladk: Unfortunately, the postinst explicitly ignores failure when trying to restart rabbitmq-server.10:58
voidspacerogpeppe: coffee and stuff - but my branch is nearly ready for review10:58
rogpeppevoidspace: lovely stuff10:59
vladkrvba: I take the latest trusty-server iso image from ubuntu site, my full installation/syslog: http://pastebin.ubuntu.com/7162080/10:59
voidspacerogpeppe: one more test (for the auto creating of the document - which as you suspected did fix the issue)10:59
rogpeppevoidspace: grand10:59
vladkallenap: ^10:59
voidspacerogpeppe: so I'll write the test and then wang the branch up for review10:59
jam1natefinch: I'm about half way through the review of your EnsureMongoServer patch10:59
rogpeppevoidspace: i'll grab some breakfast, then join the standup hangout10:59
voidspacerogpeppe: cool, see you there in a few minutes10:59
rvbavladk: okay, you're installing the trusty package from the main archive.11:00
natefinchjam1: good, we're still cleamimg it up a bit, but generally should be reviewable.  there's still a few failing tests.11:00
rvbavladk: this part doesn't look good. We're not 100% sure but we think it's what's causing the failure http://paste.ubuntu.com/7162104/11:05
mgzso... do I reboot for a proper shell, or keep working audio... I should really work out what the sound issue under ubuntu is11:08
vladkrvba, allenap: so the question should be redirected to ubuntu installer team?11:09
rvbavladk: the server team can probably help you with that indeed.  Let me just finish my test first (I'm installing the same package on a canonistack instance).11:10
perrito666bbl11:11
rvbavladk: it's taking forever… canonistack is so slow these days.11:16
mgzwallyworld: have you pushed your joyent branch up to launchpad?11:18
wallyworldmgz: not yet, give me a minute11:18
mgzta11:19
natefinchwwitzel3: do you have instructions for local maas?11:19
wwitzel3natefinch: ish .. yes11:19
wwitzel3natefinch: I can walk you through and shore up the docunentation for it while we do it, that will help11:20
wwitzel3natefinch: I've done it so many times now it doesn't take very long11:20
allenapvladk: Possibly. The policy-rc.d stuff seems to be preventing maas-region-controller from installing properly, but because it’s explicit ignoring failures when restarting rabbit, and because it’s shell which invites poor error handling, it proceeds regardless, and it’s only discovered later. We could say that maas-region-controller conflicts with11:20
allenapwhatever’s providing policy-rc.d, or we could work with policy-rc.d to enable whatever maas has to do.11:20
allenapvladk: I’m not familiar with policy-rc.d so I can’t say which is the best option.11:21
natefinchwwitzel3: yeah, cool.  can you put them in a google doc?  easiest way to share and edit stuff.11:21
allenapvladk: I’ll talk to roaksoax when he’s available; he knows a lot more about how maas is packaged than I do.11:21
wallyworldmgz: lp:~wallyworld/juju-core/joyent-provider-instance     wip, tests don't pass, won't compile without changes pushed also to github/joyent/gocommon and github/joyent/gosign11:22
wwitzel3natefinch: yep, what I most have documented is specific to VirtualBox but I switch recently to libvirt so I could take advantage of the virsh power stuff11:22
wwitzel3natefinch: which is what I don't have documented11:22
natefinchwwitzel3: is libvert better?  I've never used it11:23
mgzwallyworld: thanks, the gojoyent library split was one of the things I was concerned about with the landing11:23
wallyworldmgz: so i'll have to write tests for the libs and do git hub pull requests. even though tests don't pass, the code did bootstrap a real instance11:24
wwitzel3natefinch: well MAAS has native support for it as a power type, so that makes it better, less hand waving to get a VM to boot at the right time.11:24
dimiternnatefinch, vladk, wwitzel3, here's my step by step notes for installing maas on libvirt locally: http://paste.ubuntu.com/7162174/11:26
natefinchdimitern: step 0 needs some work ;)11:28
dimiternnatefinch, yeah :) so you need https://help.ubuntu.com/community/KVM/Installation11:29
wwitzel3dimitern, natefinch: yeah, those instructions for libvirt are exactly what I did11:32
natefinchwwitzel3, dimitern: nice11:33
wwitzel3dimitern, natefinch: only step I did you don't mention is I added an internal domain "my.maas" and added the maas controller to my list of nameservers in resolvconf11:33
vladkdimitern: you trick is to not install MAAS directly from installer11:34
natefinchgotta go help w/ kids, I'll be back in an hour or so11:34
wwitzel3dimitern: oh and I added an upstream dns server11:34
wwitzel3dimitern: oh, I can just downloaded a trusty ISO and installed maas, I didn't do the install/apt-get/upgrade steps11:35
wwitzel3dimitern: so slightly different starting steps, but it all works the same :)11:36
mgzwallyworld: short-term workaround for your github pull issue11:38
mgzwallyworld: you can always just update dependencies.tsv to point to github branches in your own namespace11:39
wallyworldmgz: that's not a bad idea11:39
mgzthat lets you land the branch, now, without blocking11:39
wallyworldmgz: i need to get a bunch of tests passing though and write new onces11:39
mgzI suggest this, as the alternative is I land the older branch... which depends on lp:gojoyent, which then gets pulled out again when you land the further changes11:40
mgzwhich would be somewhat annoying for everyone11:40
wallyworldmgz: since i'm now storing the joyent private key in env config11:40
dimiternwwitzel3, yeah, I couldn't find trusty iso offhand11:40
wallyworldmgz: if we re going ti github, may as well link to those versions of the libs11:40
mgz(and generates conflicts, most likely)11:41
voidspacerogpeppe: you don't appear to be in either hangout (neither juju-core nor juju-core-team)11:43
rogpeppevoidspace: weird, i'm sitting in *a* hangout :-)11:44
voidspacehah11:44
voidspacegood old google+11:44
voidspacewhat's the name (from the url)?11:44
voidspaceI can try again11:44
rogpeppevoidspace: https://plus.google.com/hangouts/_/calendar/Y2Fub25pY2FsLmNvbV9pYTY3ZTFhN2hqbTFlNnMzcjJsaWQ5bmhzNEBncm91cC5jYWxlbmRhci5nb29nbGUuY29t.mf0d8r5pfb44m16v9b2n5i29ig?authuser=111:44
voidspacerogpeppe: the orb, banco de gaia11:51
voidspacerogpeppe: look for "little fluffy clouds"11:52
voidspacerogpeppe: Adventures Beyond the Ultraworld11:53
voidspacerogpeppe: Flaming Lips, Yoshimi Battles the Pink Robots11:54
wwitzel3are we saying real things?11:54
voidspacerogpeppe: Jonathan Coulton11:54
voidspacerogpeppe: look for the mandelbrot song11:54
voidspacerogpeppe: garfunkel and oates - pregnant women are smug11:54
=== marcoceppi is now known as marco_traveling
voidspacerogpeppe: The Streets "Original Pirate Material"11:56
rogpeppevoidspace: TestOpenCreatesStateServersDoc12:17
voidspacehttps://codereview.appspot.com/8144004312:34
voidspacesimple review for someone12:34
voidspacerogpeppe: ^12:34
rogpeppevoidspace: LGTM, but perhaps dimitern or fwereade or jam1 might want to take a look12:38
voidspacerogpeppe: I've pushed the additional comment you suggested12:39
rogpeppevoidspace: ta12:39
axwrogpeppe: don't think I can do a hangout tonight, but I will be around IRC for a while12:40
jam1voidspace: what is Key in this context (other than the contents of Keyfile) ?12:40
axw(if that's useful...)12:40
rogpeppeaxw: that's fine12:40
jam1Private Key for the Certificate?12:40
dimiternvoidspace, why not use environ global key to set the stateserverinfo ?12:40
jam1Maybe PrivateKey is a clearer spelling?12:40
voidspacejam1: it is the same Key as stateServerKey from configInternal12:40
rogpeppejam1: sgtm12:40
dimiternvoidspace, once we have multiple environments it will become a problem12:40
rogpeppedimitern: there are other docs in the same collection12:41
dimiternrogpeppe, what other docs?12:41
voidspacejam1: do we have more than one key in the context of state serving?12:41
rogpeppedimitern: stateserverinfo and apihostports12:41
jam1voidspace: rogpeppe: Since this *is* exposed in the API, and we don't want to change APIs when they are public, can we just expose KeyFile, or possible call in MongoKey ?12:41
jam1Rather than a comment about wanting it in the future?12:41
dimiternrogpeppe, so shouldn't the state server info be linked to the environment?12:42
rogpeppejam1: sure, that's reasonable12:42
jam1I guess it isn't in API just yet12:42
voidspacerogpeppe: jam1: do we have that information easily available at the point we want to use it/12:42
rogpeppedimitern: every single other collection has a problem if we're going to store multiple environments12:42
voidspacerogpeppe: jam1: it wasn't accessible on the config structs passed round when bootstrapping happens12:42
rogpeppedimitern: using environGlobalKey doesn't help12:42
bodie_morning all12:42
jam1Given lines like this: +err := st.stateServers.Find(bson.D{{"_id", stateServingInfoKey}}).One(&info)12:42
rogpeppebodie_: hiya12:42
jam1we probably want to be careful what we call a "Key"d12:43
rogpeppejam1: the API will come very soon12:43
jam1since stateServingInfoKey is a index entry?12:43
jam1aka, nothing like the public/private key strings12:43
voidspacejam1: rogpeppe: I'm happy to change Key to PrivateKey12:43
rogpeppeyeah, PrivateKey sgtm12:43
rogpeppedimitern: we *could* potentially have a separate collection for every singleton document, but that seems like it's unnecessary work12:44
dimiternrogpeppe, just sayin'..12:44
rogpeppedimitern: currently every document in every collection is implicitly linked to the environment12:45
dimiternrogpeppe, except for these which are linked to an environment12:46
jam1rogpeppe: given that it is just the value "e"12:46
dimiternrogpeppe, annotations, constraints, settings12:46
jam1dimitern: ^^12:46
jam1./state/environ.go:16:const environGlobalKey = "e"12:46
dimiternjam1, I know, but it can be different in the future12:46
dimiternjam1, e#uuid12:46
jam1dimitern: well, we'd certainly have to restructure things and make it attributes of a State object, rather than global consts/vars12:47
dimiternjam1, +1 on that12:48
jam1rogpeppe: voidspace: So I happen to not like our current pattern of creating yet-another-collection whenever we have 1 doc worth of stuff to write, but it is the pattern so far.12:48
voidspacejam1: bikeshedding on name for "KeyFile" - rogpeppe is suggesting "SharedSecret"12:49
axwfwereade: re proxy-ssh, what do you mean by "can we instead just refuse it and error out" in the local provider code?12:49
jam1voidspace: I'd probably still want to put Mongo in there12:49
jam1to distinguish what we're sharing the secret about12:49
jam1or at least, DBSharedSecret12:49
rogpeppejam1: well, all this info is for running mongo12:50
rogpeppejam1: i guess we could put Mongo in front of every field12:50
jam1rogpeppe: technically APIPort isn't12:50
rogpeppejam1: good point.12:50
voidspaceDBSharedSecret sounds good12:50
voidspacemongo should be an implementation detail12:50
jam1voidspace: I think rog has a point that most of it is about the DB already12:50
voidspaceok, so back to SharedSecret12:51
jam1Cert happens to be used both ways, right?12:51
rogpeppejam1: i think just SharedSecret should be ok12:51
jam1it is the Mongo TLS Cert and the API TLS Cert12:51
rogpeppejam1: it doesn't actually matter that much how it's used12:51
rogpeppejam1: yes12:51
natefinchjam1: the Mongo KeyFile is just a shared password, really12:51
rogpeppenatefinch: yeah, hence my SharedSecret suggestion12:52
voidspacenaming things is the *perfect* topic for bike shedding :-)12:52
jam1voidspace: https://codereview.appspot.com/81440043/12:52
jam1reviewd12:52
natefinchrogpeppe: yeah that seems fine if we want to avoid referencing mongo12:52
jam1voidspace: naming is one of the 3 unsolved problems, right?12:52
voidspacecool, I'm just running tests before pushing the name change12:52
voidspacejam1: hah right12:52
voidspacethe 2 hard problems in computer science12:52
rogpeppecache invalidation?12:52
voidspacecache invalidation, off by one errors and naming things12:52
natefinch4 things\: naming, cache invalidation and off by one errors12:53
voidspaceThere are 10 types of people in the world12:53
sinzuicmars, are bug 1290824 and bug 1290828 fix committed?12:53
voidspaceThose who understand binary, those who don't and those who were expecting a joke about trinary12:53
_mup_Bug #1290824: juju should ask the charm store to decide the default series for a charm <juju-core:In Progress by cmars> <https://launchpad.net/bugs/1290824>12:53
_mup_Bug #1290828: charm-store should be able to map "foo" into "cs:precise/foo" <juju-core:In Progress by cmars> <https://launchpad.net/bugs/1290828>12:53
natefinchI love nerd jokes12:53
bodie_btw, appreciate seeing good responses to my email.  thanks all12:54
voidspaceMy favourite nerd joke, not computer related12:54
voidspaceHeisenberg is driving along the freeway and happens to be speeding12:54
bodie_heheh12:54
voidspaceA traffic cop spots him and flags him down12:54
voidspaceThe cop walks up to the car and gets Heisenberg to wind down the windo12:54
voidspace*window12:54
voidspace"Do you know how fast you were going?" the cop asks12:54
voidspace"No" replies Heisenberg, "but I know exactly where I am"12:55
bodie_I like the one about one Newton per square meter12:56
voidspacethat's funny12:56
bodie_and my delivery is terrible, but I suspected the audience would already know the content...12:56
voidspacepossibly not, it was new to me a few days ago12:56
bodie_why use a copy when a reference will do?12:56
bodie_:)12:57
voidspaceI like the "infitinte mathmeticians walk into a bar. The first one asks for half a pint, the second for a quarter, the third for an eighth and so on"12:57
voidspaceThe barman pours a pint and tells them to sort it out amongst themselves...12:57
voidspaceAnd on that note, coffee...12:58
bodie_lol12:59
bodie_a pint of coffee13:02
sinzuidavecheney, I don't know about the landing bot. CI's unit tests are run with 2cpu machines except for arm64 which has 413:03
fwereadeaxw, that's in Prepare, right? I'd just like to check that nobody sets a bad value without being warned -- I'd be fine with overwriting it if we output that we;re doing so13:04
axwfwereade: ok13:05
axwfwereade: I would normally, I just didn't in this case because there's no reason for a user setting it in the first place13:05
axwbut I can do that13:05
axwfwereade: is there a better way to do this? feels slightly awkward putting it in the config13:06
axwfwereade: especially if it means going to the API for config ...13:06
fwereadeaxw, I felt awkward about that too13:06
axwjust didn't want to do the dreaded env.Type() == "local"13:06
fwereadeaxw, but it *is* I think config, it can reasonably vary for different environments even against the same provider at times13:06
fwereadeaxw, +100 to avoiding that, yeah13:07
perrito666what is the difference between _test.go and _whitebox_test.go ?13:07
fwereadeperrito666, the _whitebox_ ones are in-package13:08
fwereadeperrito666, ie `package foo` not `package foo_test`13:08
fwereadeperrito666, they don't get compiled into proper builds because their names end in _test.go13:09
fwereadeperrito666, but they get all sorts ofinadvisable access to packageinternals13:09
natefinchperrito666: _whitebox isn't a Go thing, it's just a visual indicator for us.   _test.go is the magic that makes them only compiled during go test13:09
fwereadenatefinch, perrito666: I suspect there may be a couple named _internal_test.go13:10
natefinchfwereade, perrito666 : I've only seen _whitebox in a few places... it's something I'd rather avoid, since it seems to just add visual noise.  I don't think it really matters that much if tests are internal or not13:10
natefinchfwereade: I much prefer internal tests anyway, because you can make the tests a lot more focused, so when something breaks, it's more obvious where the breaks are, rather than having to trace through reams and reams of code13:11
fwereadenatefinch, well, it's inevitably testing the implementation not the interface, to some degree at least, and is therefore a bit nasty and makes things harder to change13:12
fwereadenatefinch, so I'd prefer tests in general to be in a different package to the code13:12
fwereadenatefinch, but if they have to be, I also rather agree it's not *that* big a deal if a few internal tests really help13:13
fwereadenatefinch, I'm not sure the _whitebox_ bit is that justifiable but it's quite nice to have them flagged a bit more obviously13:14
fwereadethe eye tends to slide right over foo vs foo_test13:14
wwitzel3whitebox tests just lead you down a path of pain and heartache, that said, in a pinch, it sure is nice having access to all those internals ;)13:15
natefinchfwereade: I'm the opposite.  testing the implementation is the only thing you're ever testing.  and tests with smaller scope are easier to fix when implementations change.  rather than monstrous system tests that blow up with weird errors.13:15
fwereadenatefinch, the answer there is smaller packages imo13:16
wwitzel3natefinch: well you don't need system level tests to properly exercise a specific unit with a blackbox test, if you do, then the code is too tighly coupled13:16
fwereadenatefinch, and you *are* indeed always testing the implementation, butneglecting to test it via its interface discards one of the real benefits of testing -- that your code, through having to satisfy two clients, ends up better factored13:17
natefinchpackages inevitably depend on one another in annoying ways.  Go is great at unit tests because of interfaces... ub-13:17
fwereadenatefinch, it's definitely hard to take a pre-existing monster package and break it into two... often you actually need to break it into 6 or 713:18
fwereadenatefinch, in order to actually untangle the dependencies13:18
wwitzel3natefinch, fwereade, with respect to refactoring, I find whitebox tests are almost counter productive to those efforts13:20
natefinchfwereade: but if your monster package breaks things down into small sub-functions that work over interfaces, it's very easy to write tests for the sub-functions to make sure they're doing the right thing.  You also want an overall test.... but when something changes, you'll get two failures - the huge blackbox test, and a tiny whitebox test that says "expected empty id, got nil id"13:20
fwereadenatefinch, but that way you have a whole bunch of little implementations, which by necessity are exported and thus have the potential for some semblance of useful encapsulation13:20
fwereadewwitzel3, strongly agree13:20
mgzdimitern: is there anything you need review for atm? I also have some of the vlan setup info if you're interested13:21
bodie_hmmm13:22
bodie_testazureprovider failed13:22
bodie_http://paste.ubuntu.com/7162678/13:23
fwereadenatefinch, and if you're doing nice interfaces in-package, you may as well expose them13:23
bodie_is this a known issue?13:23
wwitzel3natefinch: also, hangout? :)13:23
natefinchwwitzel3: sure13:23
fwereadebodie_, https://bugs.launchpad.net/juju-core/+bug/122390113:24
_mup_Bug #1223901: provider/azure: tests are racy <race-condition> <test-failure> <juju-core:Triaged> <https://launchpad.net/bugs/1223901>13:24
bodie_ah13:24
bodie_looks like maybe more gwacl stuff13:26
dimiternmgz, I've just managed to create a maas node with a vlan and another network13:26
dimiternmgz, now I know how we need to set them up I think13:27
fwereadebodie_, most likely, that stuff was developed under some degree of time pressure13:27
mgzdimitern: ace. putting the details from maas in /etc/network/interfaces, or via the commandline calls?13:27
dimiternmgz, tried both13:28
mgzdimitern: the one fun part will be how we integrate this with containers13:28
dimiternmgz, so we need the "vlan" package for the vconfig command and also to modprobe 8021q before doing it13:28
dimiternmgz, yeah.. well I'll try some containers + bridging13:28
axwbodie_ fwereade : that's nothing new, it's an intermittent failure13:30
mgzthe tricky bit being, currently we just let the container come up on the maas dhcp and ask for an address itself13:30
axwther'es a bug for it somewhere13:30
mgzaxw: yeah, fwereade linked the bug13:30
axwoops13:30
axwso he did13:30
axwthis will be fixed when I land my changes13:31
mgzaxw: you are a secret star13:31
axwmgz: not really, I just made the code that pretends to be parallel serial :)13:31
axwthere's this concurrency control in there that doesn't work in practice because the azure API doesn't like it13:32
voidspaceFAIL: replicaset_test.go:150: MongoSuite.TestAddRemoveSet13:32
voidspaceknown flakey test?13:32
bodie_axw, yay13:32
voidspaceI'll look to see if there's a bug for it already13:32
axwvoidspace: is it failing to find a server?13:33
axwif so, yeah13:33
voidspaceaxw: yeah "no reachable servers"13:33
=== vladk is now known as vladk|offline
axwfwereade: I can't check if the user has explicitly set proxy-ssh=true without changing the default13:41
axwcurrently defaults to true for all providers13:41
=== mgz is now known as _mgz
perrito666hey, could anyone try to bootstrap amazon with trunk?14:12
natefinchperrito666: trying now... what problem are you seeing?14:15
mgzperrito666: can you pastebin your bootstrap log with --debug passed?14:16
perrito666mgz: re-running14:20
perrito666natefinch: I was getting an error: error: flag provided but not defined: --instance-id14:21
voidspacerogpeppe: I just used string(existingByteArray) and []bytes(existingString)14:21
rogpeppevoidspace: sgtm14:22
voidspacerogpeppe: I'm concerned that this will use runes rather than encoded bytes14:22
rogpeppevoidspace: nope14:22
voidspacerogpeppe: but assuming ascii only they're the same anyway, right?14:22
rogpeppevoidspace: it doesn't do any rune-related convesions14:22
=== vladk|offline is now known as vladk
rogpeppevoidspace: but they're ascii only anyway, yeah14:22
natefinchperrito666: that was happening to rogpeppe the other day.  Make sure you clean out your $GOPATH/pkg directory, and make sure trunk is up to daye14:22
voidspace[]byte(string) will return an array of runes (code points) won't it?14:22
rogpeppevoidspace: no14:22
rogpeppevoidspace: []rune(string) will14:22
voidspaceok, so utf-8 encoded bytes then?14:23
rogpeppevoidspace: []byte(string(x)) is a noop if x is []byte14:23
natefinchperrito666: also run godep dependencies.tsv from launchpad.net/juju-core and make sure it doesn't say anything is out of date14:23
rogpeppevoidspace: yeah, by convention14:23
natefinchperrito666: it just bootstrapped fine for me14:23
voidspacerogpeppe: right. If you get bytes out of a string there has to be *some* encoding used14:23
rogpeppeperrito666: i've seen that recently. i think it probably means you're not using the --upload-tools argument to juju bootstrap14:24
natefinchperrito666: sorry, that should be godeps not godep14:24
perrito666natefinch: thank you, something must be dirty on my env14:24
rogpeppevoidspace: "\xff\xfe\xfd\x00" is a perfectly valid string (even though it's not valid utf8)14:24
perrito666rogpeppe: thank you too :)14:24
mrammwho from core can be at the cross team and represent our status on HA?14:24
rogpeppemramm: i can do that14:25
voidspacerogpeppe: is it a valid Unicode string14:25
rogpeppevoidspace: nope14:25
voidspacerogpeppe: the word "valid" means something14:25
mrammlikewise who from core can be at the cross team meeting and represent our status on VLAN support?14:25
voidspacerogpeppe: so the type string in Go must mean something then14:25
rogpeppevoidspace: well, a go string is just a bundle of bytes14:25
voidspacerogpeppe: is a Go string just a sequence of code points?14:25
voidspaceright, but what do the bytes mean (i.e. what encoding)14:25
rogpeppevoidspace: not code points, bytes14:25
mrammdimitern: can you be there to talk about vlan?14:25
voidspacerogpeppe: ok, but what do the bytes represent14:25
natefinchperrito666: oh yeah, don't forget --upload-tools when you bootstrap using development code14:26
voidspacerogpeppe: that's what an encoding is14:26
rogpeppevoidspace: whatever you want them to :-)14:26
voidspacerogpeppe: a mapping of bytes to meaning14:26
natefinchvoidspace: UTF814:26
voidspacenatefinch: thank you14:26
rogpeppevoidspace: you can impose an encoding if you want to14:26
rogpeppevoidspace: (and by convention, that encoding is utf8)14:26
voidspaceok14:26
rogpeppevoidspace: and some primitives in the language assume that14:27
voidspaceso the string type is really just an immutable bytes type14:27
rogpeppevoidspace: yup14:27
voidspaceyuck14:27
dimiterndimitern, xteam meeting?14:27
dimitern:)14:27
rogpeppevoidspace: it's actually quite clean14:27
dimiternmramm, that is ^^14:27
voidspacethat's the Python 2 string type14:27
rogpeppemramm: when is it?14:27
dimiternmramm, i can do it14:27
mrammin 3 min14:27
rogpeppemramm: link?14:27
mrammjust added you to the invite14:27
natefinchvoidspace: you can get codepoints using the unicode package14:27
voidspaceand as soon as you do anything non-trivial with text it puts the bugs in obscure places14:27
mrammon the phones14:27
voidspacenatefinch: yep, that's pretty much the Python 2 way as well14:28
mrammtoo many people for a hangout now days14:28
voidspaceUnicode as bolted on optional extra14:28
voidspace*sigh* :-)14:28
rogpeppevoidspace: if you go the other way, then your core language is as enormous as unicode itself14:28
natefinchvoidspace: the only time it's a problem is if you expect the length of a string to be the number of characters14:28
natefinchvoidspace: which is a case of "don't do that"14:28
voidspaceor you need to care about the encoding of the bytes14:28
voidspaceand the bytes came into the app at a different point14:28
voidspaceor you need to combine strings from different sources14:29
natefinchvoidspace: also, don't do that.  Just use UTF8 everywhere14:29
rogpeppevoidspace: conventions work pretty well. you convert at the boundaries of the system14:29
natefinch^^14:29
natefinchexactly14:29
voidspacerogpeppe: I've worked with Unicode a reasonable amount14:29
voidspaceeven written articles on it :-)14:29
voidspaceremembering to convert at the boundaries works, right up until it doesn't14:30
voidspacesame with "assume everything is UTF8"14:30
rogpeppevoidspace: there are some pretty good packages for working with unicode in go14:30
dimiternmramm, sorry, I don't know how to join14:30
voidspacesure, I believe you14:30
dimiternmramm, there's no g+ link14:30
mrammdimitern: right it is a conference call14:30
rogpeppemramm: i haven't seen an invite yet14:30
voidspacerogpeppe: I've worked with languages that are Unicode by default for text (and *force* you to do the conversion at the boundaries) and those that don't14:30
voidspacerogpeppe: and you have to think a bit more with the former, but it avoids a lot of pain14:31
dimiternmramm, I've never heard of these - how to join?14:31
voidspaceright, lunch14:31
rogpeppemramm: which normalisation form do you decide on?14:31
mgzdimitern: you can ring an actual phone number14:31
rogpeppeooh, retro14:31
mgzthere are details on the wiki14:31
natefinchlol14:31
mrammjust pasted them over to dimitern14:31
voidspacerogpeppe: NFC or NFD of course14:35
voidspaceunicode isn't perfect, but it's better than the alternative14:35
mgzNFC is such a great answer14:35
mgzyou can't tell if they don't know, or have made the best choice14:36
voidspaceapparently the correct answer is "neither or both"14:38
voidspacehttp://scripts.sil.org/cms/scripts/page.php?item_id=NFC_vs_NFD14:38
voidspace"The problem is that the question is not reasonable, and points to a misunderstanding of Unicode."14:40
rogpeppevoidspace: http://godoc.org/code.google.com/p/go.text/unicode/norm14:41
voidspacerogpeppe: mojibake14:43
rogpeppevoidspace: usually better than random crashes14:44
mgzsinzui: are you aware of anyone reportinga bug that lxc containers on maas don't work with trusty?14:53
sinzuimgz, is this what you are thinking about https://bugs.launchpad.net/juju-core/+bug/127192314:54
_mup_Bug #1271923: using lxc containers with maas provider always default to series of host service unit <lxc> <maas-provider> <juju-core:Triaged> <https://launchpad.net/bugs/1271923>14:54
mgzsinzui: aha! no, but that *would* mask the bug14:55
mgz...maybe14:55
sinzuimgz, that is the only lxc/maas bug14:56
mgzI'll poke a little further, thanks!14:56
evI didn't get a chance to ask before I had to drop off the cross-team call, but on the point of retrying provisioning in the face of transient errors14:59
ev(https://bugs.launchpad.net/juju-core/+bug/1227450)14:59
_mup_Bug #1227450: juju does not retry provisioning against transient provider errors <charmers> <landscape> <juju-core:Triaged by wallyworld> <https://launchpad.net/bugs/1227450>14:59
evcould you not query the provider for the api limit and only hit it below that rate?15:00
evopenstack seems to have this option: http://docs.openstack.org/api/openstack-compute/2/content/Rate_Limits-d1e862.html15:00
mgzev: the goose code does... sort of do that already15:00
evooh, magic rune15:01
evgrepping through tip and reading up15:01
evthanks mgz15:01
evalso, any chance on getting movement on cleaning up security groups and floating ips in a coming release?15:01
mgzthe issue is we only retry 3 times, and without much backoff,15:01
evwe have to tidy up after each deployment as we quickly run out of them on HP Cloud15:01
evah right15:02
mgzand juju-core, when startinga bunch of things in parallel isn't polite about it,15:02
evyeah15:02
mgzso, it's likely that goose gets hammered with more things than even its retry code can help with15:02
mgzwhat's landed in trunk should unblock you guys on borked environments, because you can just run the deployer script,15:02
mgzthen do `juju retry-provisioning` if things have gone wrong, rather than tearing the lot down and going from the start15:03
mgzand we'll gradually improve on not getting into that state in the first place15:03
evis there any way of knowing that it failed because of API limits specifically, short of grepping the output of juju status for "API limit" ?15:05
evjust trying to think of what we put in our juju-deployer wrapper for this15:05
natefinchnothing like a load of 5.9.... #thanksgoogletalkplugin15:05
mgzyes, and making juju-core understand the 503 would also mean the provisioner could automatically try again a bit later15:06
rogpeppewwitzel3: i'm looking at your problem now, BTW15:06
mgzev: as a workaround for you guys, it would be reasonable to just look for status: error in the yaml and call the retry command15:07
bodie_pinged Actions thread back15:08
bodie_thanks for all the talky talky :)15:08
evso that call was quite specific to juju development. Do we have any kind of call set up for people developing solutions on top of juju? Just a place for sharing best practices, that sort of thing.15:15
mgzev: no, but that would probably make sense. the current call is far too large really, for just a people-giving-feedback-to-juju-core, and covers a bunch more sutff15:19
mgzmramm may have opinions. it's still good for us to hear about what you guys are struggling with on juju day to day though :)15:19
evopinions on how to structure a separate call?15:20
mgzyeah.15:20
evI think it'd make sense to have a juju-core representative on the call15:20
evso you guys can gauge whats plaguing your consumers15:20
dimiternmgz, this is what we need to enable a vlan in a maas node: http://paste.ubuntu.com/7163250/15:21
evbut I was thinking people from ~canonical-ci-engineering, ~canonical-ci, ~canonical-losas, ~oem-solutions-releng, etc15:22
mgzdimitern: so, that's doing a bunch of things twice. the do-it-now commands could be omitted, as we're probably doing ifdown/ifup anyway15:22
dimiternmgz, we want them to appear after reboot as well, right?15:23
dimiternmgz, and we want them immediately as well15:23
evmramm: what do you think?15:23
=== Ursinha is now known as Ursinha-afk
mgzright, so we just do the adding to /etc/network/interfaces (.d ideally), and not the vconfig, for instance15:24
mgzand just take that interface down and put it back up again to pick up the new config15:24
mgzas we currently do for the bridge config15:24
mgz...one fun part: we do bridge config in cloud-init - which is earlier than we can make an api call to maas to get the vlan details15:25
mgzso, we either do the network setup in two steps, or fiddle with when the existing bridge setup happens15:26
dimiternmgz, vconfig is needed to create the vlan15:26
mgzdimitern: right at that moment, yeah, but setting it up in /etc/network is equivalent15:27
dimiternmgz, well, I suppose we can generate the right commands in cloud-init, incl. the data we get from maas (the provisioner can prepare that)15:27
mgzright, that's one option, if the provisioner can get the right networks out of maas early enough to pass the details it15:28
mgz*in15:28
mgzI'm not sure we can15:28
mgzbecause we ask maas to do the provisioning for us, which is picking the machine *and* giving it the boot details15:29
dimiternmgz, why not? we can ask "give me the networks for this machine" after we do acquireNode15:29
mgzwe don't know what machine we got before we need to give it the cloud-config stuff15:29
mgziirc15:29
dimiterni'll have to look into that some more15:29
mgzdimitern: actually, maybe it works, we might have an interval where we have the machine identified, before we finish off StartInstance15:30
dimiternmgz, it my experiments with maas-cli you do know what instance you'll be starting after you acquire it with a set of networks15:32
mgzdimitern: maybe that's the best option then, doing bridge and vlan seperately scares me a bit15:32
dimiternmgz, lxc+bridging+vlans, now that's scary :)15:33
=== Ursinha-afk is now known as Ursinha
mrammev: mgz: I am supportive of a second call, or a restructuring of the cross-team call15:46
mrammI think we should setup a one-off-call to go over the current ideas15:47
mrammand then from there we can figure out what makes sense as a standing thing15:47
mrammjcastro: do you think you can help get that setup?15:48
jcastroyeah15:53
jcastroev, we have a charmers call weekly where we talk about juju consumption rather than core stuff, you're more than welcome, we have a bunch of new people so we're always swapping tips15:54
jcastroev, I can also have our dudes spin up your team if you'd like16:03
jcastrogive you a condensed best practice dump16:03
wwitzel3natefinch: just merged some changes from rogpeppe and pushed them up16:16
natefinchwwitzel3: sweet16:31
=== vladk is now known as vladk|offline
voidspacerogpeppe: state/api/machiner.go ? (place for the StateServingInfo api)16:49
voidspaceah, that's the client side16:49
rogpeppevoidspace: state/api/agent i think16:49
voidspacerogpeppe: cool, thanks16:49
sinzuiperrito666, We don't use --upload-tools in testing, there is alos talk of removing the feature.16:51
perrito666sinzui: well to be honest I did not have to use it a couple of revisions back16:52
sinzuiperrito666, If --upload-tools is required, then should this be documented with backup and restore...you cannot backup and restore unless you use upload-tool (a developer hack)16:52
perrito666sinzui: regardles, using an older rev the thing runs well even without upload-tools16:53
sinzuiperrito666, then maybe that is part of the bug. We expect enterprise users to use streams, and if not a a public cloud, their own stream defined in the tools-metadata-url16:53
sinzuiperrito666, okay, I think we do have a regression then, Streams are not being honoured it seems16:54
jam1alexisb: looks like I just missed you and natefinch, sorry I didn't make it in time16:55
alexisbno worries16:56
alexisbnatefinch can follow up with you16:57
natefinchjam1: you only missed us by seconds :)  I'm back in the hangout if you want to talk that way.16:57
sinzuiperrito666, I suspect that if you called juju sync-tools ENV, then ran the test, it might pass also16:57
perrito666sinzui: queued to the test run marathon I am having17:01
perrito666it is very unfortunate that I got to fix the two bugs that where impeding my test to run and none of those was the one breaking your side :(17:03
evjcastro: yes please. Does it have people from the teams I mentioned?17:04
evdoes it have juju-core people for "this is burning us badly"?17:04
jcastroit could, can you jet me a mail? I can set this up but I am currently putting out 2 fires17:05
=== vladk|offline is now known as vladk
perrito666sinzui: -r2488 works out of the box here (with the tools-metadata-url: you suggested)17:17
voidspacerogpeppe: AuthEnvironManager did you say?17:28
=== vladk is now known as vladk|offline
rogpeppevoidspace: yeah17:29
voidspacerogpeppe: cool17:29
voidspacethanks17:29
sinzuiperrito666, I am releasing r2498 as 1.17.7. Since CI is setup largely as end users might use it. I cannot say the feature works.17:36
perrito666sinzui: off course, I was not trying to imply that, I was just thinking out loud17:37
sinzuiperrito666, Maybe I can get abentley to try the script. He knows the test infrastructure and he might see a problem with the test17:39
perrito666sinzui: please do, I am pretty sure now that there is something I need to set up in my env to replicate your failure, yet I cant get  exactly what it is17:40
sinzuiperrito666, you didn't need to call sync-tools?17:40
perrito666sinzui: nope17:40
perrito666I just bzr revert -r2488; go install ./...; juju destroy-environment amazon; ./backup_restore_juju.py $GOPATH/bin/ amazon17:41
perrito666sinzui: previously I had deleted all binaries and pkgs17:42
perrito666and that (ok, there was a cd to your test repo in the middle of that) but you get the point17:42
sinzuiperrito666, and $GOPATH/bin is in the from of the $PATH?17:43
perrito666sinzui: yes, I exported PATH explicitly before running17:43
sinzuiThat all sounds correct.17:44
* sinzui ponders tainted control-buckets17:44
perrito666I have what looks pretty much as a fresh starting user, that is why I am a bit puzzled on why is it not failing just like jenkins17:47
=== marco_traveling is now known as marcoceppi
natefinchwwitzel3: sorry, long call with John & Alexis, and now I need to drop my car off at the garage.  Back in not too long I hope.18:01
rogpeppewwitzel3: i bet you're getting test failures in testOpenAPIState18:10
rogpeppevoidspace: am enjoying the lips18:14
voidspacerogpeppe: yeah, they're good18:22
rogpeppeyay, cmd/jujud test pass18:25
rogpeppetests18:25
voidspacerogpeppe: you there?18:25
rogpeppevoidspace: yup18:26
voidspacerogpeppe: can you hear me?18:26
rogpeppevoidspace: i'm in the hangout and there are two instances of you, but they're unresponsive18:26
rogpeppevoidspace: nope18:26
voidspaceah, maybe the hangout has crashed18:27
rogpeppevoidspace: i was chucked out briefly a while ago. might be something to do with that18:27
voidspaceI'll leave and reenter18:27
voidspaceg'bye all18:33
voidspaceEOD18:33
voidspaceg'night18:34
natefinchwwitzel3, rogpeppe back now18:52
=== vladk|offline is now known as vladk
perrito666ok EOD for me, shout me via mail if you need me18:58
wwitzel3natefinch: ok18:58
rogpeppenatefinch, wwitzel3: i'm ducking out of the call for a little bit. ping me if you need me.19:03
natefinchrogpeppe: ok, no prob19:04
wwitzel3rogpeppe: oh right, sorry :)19:04
perrito666sinzui: hey, CI actually "worked"I just saw a merge proposal fixing that ssh issue, you always see the same public address error bc the error is very poorly handled19:25
rogpeppefwereade: you're not around atm by any chance?19:26
sinzuiperrito666, damn it. you are right. I has worked once: http://ec2-54-84-137-170.compute-1.amazonaws.com:8080/job/functional-backup-restore-devel/19:28
perrito666sinzui: https://codereview.appspot.com/81180043/patch/1/1000219:28
perrito666sinzui: the link you just send me is not the one you wanted to sen me?19:29
sinzuiperrito666, From the history of jobs r2497 passed on its 3rd try r2798 never passed19:30
perrito666ah yes19:30
sinzuir2499 is testing now19:30
perrito666sinzui: the thing is19:30
perrito666there is a portion of the code that does a lot of things yet when it fails it is always hidden by the same error19:31
perrito666which is the one we are seeing since the beginning of thi bug19:31
sinzuiI suspected as much. Obviously we have a public address, but juju uses that general error to say it could not connect19:32
sinzuiI wonder if the test is more reliable with hp?19:32
perrito666sinzui: the current error is with ssh, there was an ad hoc implementation of ssh and I switched to use the default one, but apparently the default one was broken short after19:33
sinzui2497 is the rev that fixes it too19:34
sinzuiperrito666, I changed the test to use Hp next time. If the current run fails, the next 3 tries will be in another cloud19:36
sinzuidamn, and try 2 did fail19:37
=== Ursinha is now known as Ursinha-afk
rogpeppea review of this branch would be appreciated. https://codereview.appspot.com/81570043/19:44
perrito666sinzui: makes no sense, 2497, which introduced changes worked, then it doesn't but the code is not even near that19:45
perrito666bbl19:47
=== Ursinha-afk is now known as Ursinha
rogpeppedoes anyone else see a test failure in trunk, in agent/mongo19:55
rogpeppe?19:55
sinzuinatefinch, do you have a few minutes to review an inc to trunk's version? https://codereview.appspot.com/8158004319:56
wwitzel3rogpeppe: nope, not for me here19:56
rogpeppewwitzel3: looks like a test isolation issue19:56
natefinchsinzui: I hope I'm never too busy to review a 2 character change :)  LGTM19:57
wwitzel3rogpeppe: it passes for me running the whole suite as well as just in agent/mongo19:57
wwitzel3rogpeppe: is there a specific test you want me to try?19:58
rogpeppewwitzel3: if it passes for you, that's fine. i'm just proposing a fix19:58
rogpeppewwitzel3, natefinch: i'd appreciate a review of this trivial fix: https://codereview.appspot.com/8129004520:02
wwitzel3rogpeppe: looking20:03
wwitzel3rogpeppe: we already do this in our branch actually20:04
rogpeppewwitzel3: right, but this breaks trunk, so should go in soon20:05
wwitzel3rogpeppe: http://bazaar.launchpad.net/~wwitzel3/juju-core/030-MA-HA/view/head:/agent/mongo/mongo_test.go#L3420:06
wwitzel3rogpeppe: ok, sure20:06
rogpeppewwitzel3: i prefer your version20:06
rogpeppewwitzel3: i'll go with that20:06
wwitzel3rogpeppe: k20:07
rogpeppewwitzel3: PTAL https://codereview.appspot.com/8129004520:10
wwitzel3rogpeppe: LGTM20:12
fwereaderogpeppe, I sort of am, but am not at my highest functioning20:13
rogpeppefwereade: i've refactored the agent config in the least invasive way i can think of that still gives us some reasonable behaviour in jujud20:14
rogpeppefwereade: i'd very much appreciate your opinion when you think you can muster a look20:14
rogpeppefwereade: https://codereview.appspot.com/81570043/20:14
rogpeppefwereade: it's on the critical path for HA20:14
rogpeppenatefinch, wwitzel3: i'd appreciate a review of this branch at some point - it's what i've done today: https://codereview.appspot.com/8157004320:21
wwitzel3rogpeppe: yeah, I've added it to my list, I will give it a thorough look20:23
rogpeppewwitzel3: thanks a lot20:24
natefinchrogpeppe: me too20:25
wwitzel3EOD for me20:35
=== vladk is now known as vladk|offline
rogpeppeme too20:43
rogpeppelong past it20:43
rogpeppeg'night all20:43
natefinchnight rog20:44
=== vladk|offline is now known as vladk
=== vladk is now known as vladk|offline
fwereaderogpeppe, that's very nice, nearly an LGTM straight off21:21
fwereadethis is not to say others should not also look at it21:21
hatchis there a way to ping the env to see if a charm url has been loaded programatically21:43
hatchbasically the deployer needs to check to see if a local charm has been uploaded already21:43
davecheneyhatch: hmm21:47
hatchI'm at a total loss after banging on it for a couple hours so open to anything at this point :)21:47
davecheneycharms only get up loaded if they are deployed21:47
davecheneythose two actions are not seperate21:48
hatchahh but they are now with the ability to upload local charms via the GUI21:48
davecheneymaybe upgrade-charm has somethign useful21:48
davecheneyhatch: ok, i'm probably out of date21:48
davecheneyand I bet you can keep uploading the sme charm rev over and over21:48
hatchit auto increments the revno21:48
davecheneybut that isn't what you want21:49
davecheneythe depliyed has to create charms in the storage at exact renos21:49
hatchwell not really - the user is dragging and dropping charms into the env in the gui, then deploying a bundle21:49
hatchso the deployer needs to deploy those 'local' charms21:49
davecheneyhatch: i dunno if I can help21:50
hatchmaybe I just skip the check and deploy21:50
davecheneyi'm just guessing at this point21:50
hatchit's entirely possible what I'm looking for doesn't exist21:50
hatchthanks for the help davecheney I'll skip the check for now and just attempt deployment21:52
davecheneyhatch: sounds like a good first step21:57
davecheneysinzui: congrats on 1.17.721:59
davecheneywill that be the point at which 1.18.0 is branched ?22:00
davecheneyi saw there was a 1.17.8 milestone22:00
sinzuiThanks. Maybe. If interesting and stable fixes land over the next few days, I will use it22:00
sinzuiThere is a store compatibility and maas lxc issue that were raise a few hours ago22:01
sinzuidavecheney, I think 1.18.0 will trunk + a few more revs22:01
davecheneysinzui: ok22:01
fwereadehatch, there's a CharmInfo method on Client?22:03
fwereadehatch, it looks a bit odd, though, it returns something from api not params -- not a big deal from your perspective though, right?22:05
=== hatch__ is now known as hatch
perrito666sinzui: hey, still here?22:15
sinzuiperrito666, I am22:16
perrito666does jenkins just merge rev after rev and run the same test? (I am trying to find out what was broken when)22:17
sinzuino22:17
sinzuiperrito666, it tests the entire release. tarball, package, publication of tools, installation, then tests they work in each cloud then tests arch/series/function nuances22:19
sinzuihttps://docs.google.com/a/canonical.com/document/d/1ZQIJL2YNAYpDHDO4g3kwcq8tHTR8ax6L15xhAXELngc/edit22:19
perrito666sinzui: thanks, ill read22:19
perrito666hey guys, how do I make juju not required --upload-tools ?22:48
davecheneyperrito666: if you are building juju from source, this is required22:48
davecheneyas the versino of your local build will not match that of any published tools22:48
sinzuiperrito666, 1. make your own stream data, 2, push it to a public site22:57
* sinzui looks for fragment22:57
sinzuiperrito666, look at the generate_streams() function in http://bazaar.launchpad.net/~juju-qa/juju-core/ci-cd-scripts2/view/head:/assemble-public-tools.bash22:58
sinzuiThe summary is create the dir structure, copy your test tools into releases, then run metadata22:59
sinzuiperrito666, oh, but you need to make your tool by taring the jujud with the right name.23:00
sinzuiperrito666, That step is in the archive_tools function...in the most complicated way It could be written23:00
sinzuiperrito666, just cd the the bin dir and tar it with the series and arch of your test machine23:01
perrito666sinzui: thank you23:01
perrito666:) I am so taking a beer from whoever broke that fix :p23:01
sinzuiperrito666, You can put the whole tree from tools/ in a bucket in a cloud, or on a website. I push a tree here a few weeks ago for an example: http://people.canonical.com/~curtis/juju-dist/tools/23:02
sinzuiperrito666, BTW, these steps are not common knowledge. I need to find time to make a script for a developer or devops to publish a few select tools for testing or private cloud use23:03
perrito666sinzui: well if all that will give me a copy of what i being tested, then here I go23:05
hazmathatch there is no useful charm api, and local charms can't be checked to see if they are already uploaded23:22
hazmatsince the env arbitrarily rewrites the revision23:22
davecheneyslow ppc is slow23:24
davecheneytrying to get a cleaner test run so I know where to focus today23:24
davecheneyhatch: oh poop23:24
davecheneyhazmat: even23:25
hatchlol23:25
hatch:)23:25
hazmat:-)23:25
davecheneyhazmat: hatch that does sound like something that should be addressed23:25
hazmathatch, sent email re that issue23:25
davecheneyhazmat: good man23:25
hazmatdavecheney, yes.. list charms, delete charm23:25
hazmatwhere delete only works if unused23:25
hatchdavecheney is this re the question I asked before?23:25
davecheneyhazmat: i was going to ask, but i'll ask a differnt way23:25
davecheneyhazmat: charms are put into 'storage'23:25
davecheneyright23:25
hazmatdavecheney, please do.. i sent email privately23:25
hatchsorry my client dc'd for whatever reason23:25
davecheneylike tools23:25
hatchmay I be cc'd on said email?23:26
hazmathatch, check your inbox23:26
davecheneyhazmat: doesn't storage provide apis to list charms23:26
hazmatdavecheney, don't really need to clean storage :-).. its polite.. but simply  wipe the ref in db23:26
davecheneyalbeit not very conventienlyt23:26
hazmatdavecheney, doesn't matter23:26
hazmatdavecheney, its in state23:26
* hatch hits refresh a lot23:26
hazmatdavecheney, we have storage link in state..23:26
hatchnothing23:26
hatch:)23:26
davecheneyhazmat: ah yes, we store that metadata in state23:26
hazmatdavecheney, yeah.. else we'd never find  a charm23:27
davecheneyhazmat: in that case, there needs to be something added to the API server23:27
* hazmat nods23:27
davecheneyhatch: whelp, there is you answer23:27
hazmatdavecheney, yes.. list charms, delete charm23:27
hatchdavecheney lol *sadface*23:27
hatchohh hazmat  u sent to personal email :)23:28
hazmatdoh..23:28
hatchsorry missed that23:28
hazmatunintended.. was first completion i saw23:28
hatchno problem, thanks for commenting - I have hacked on the deployer to 'skip' all checks but it appears that there is no way via the CLI to deploy a charm that's already uploaded as well23:28
hatchI was going to confirm this tomorrow but this may be a blocker regardless23:29
hazmathatch, no.. juju cli does not support deploying local charms that don't exist23:29
hatchyeah darn, the api does because we deploy via path in the gui through the rpc call23:29
hazmathatch, and those checks are important to deployer, it wants to verify config/relations before arbitrarily modifying an env23:29
hatchright23:29
hatchthis was supposed to be a quick fix - turns out it's quite an architectural change to how the deployer and possibly the cli's deploy command operates23:30
hazmathatch, correct.. deployer still has pyjuju support23:30
hatchnot in my fork...tehe23:31
hatch:P23:31
hatchbut yeah ok thanks for clearing this up23:31
hazmatand supports old version of juju-core23:31
hazmathatch, ^ which don't support charms via api23:31
hazmathatch, there is no stable version of juju with  local charms via api afaik23:31
sarnoldany suggestions for a go-capable cscope replacement? :) I'd like something that can find call sites, not just definitions; ctags is only providing definitions...23:31
hatchyeah - I hacked all of that stuff apart to make it get to the cli in the guiserver but then I think it totally falls apart23:32
hazmathatch, once 1.18 / 1.20  whatever its called gets into trusty.. i'll drop pyjuju support in deployer and move to api only usage there as well23:33
hatchhazmat sounds good - so should I file this bug on the deployer project for that time?23:33
davecheneySHIT23:45
davecheney-juju.log WARNING23:45
davecheneyisn't know to all packages23:45
davecheneydamnit23:45

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