/srv/irclogs.ubuntu.com/2015/03/13/#juju-dev.txt

axwwallyworld: just making a cup of tea, will be a few minutes late01:57
wallyworldsure02:01
axwthumper: what's next-release? was that just to not disrupt 1.23?03:06
thumperaxw: yep03:06
thumpera feature branch03:06
thumperso we weren't holding many branches open against master03:07
axwokey dokey03:07
axwoh balls, I didn't realise trunk was unblocked03:07
thumperaxw: we are trialing a number of feature branches, and will report more in nuremburg03:07
axwthumper: cool. trunk blocking kinda screws everyone atm03:07
thumperagreed03:07
tasdomasmorning05:30
wallyworld_axw: i found the correct appamor profile to use to allow mounting loop devices http://reviews.vapour.ws/r/1154/07:58
axwwallyworld_: https://help.ubuntu.com/lts/serverguide/lxc.html#lxc-apparmor -- still unsafe, and I still don't think we should enable this unless it's requested08:01
wallyworld_axw: that web page is out of date - ls /etc/apparmor.d/lxc/ shows the mount profile08:03
axwwallyworld_: the comments in the file line up with the commentary on the page - what is out of date?08:04
wallyworld_i guess we can only add the extra config if needed for storage. but, we would then nt be able to hogsmash a new unit with storage onto a container08:04
wallyworld_axw: i didn't see the lxc-container-default-with-mounting profile mentioned08:05
wallyworld_only lxc-container-default-with-nesting08:05
axwwallyworld_: "Another profile shipped with lxc allows containers to mount block filesystem types like ext4. This can be useful in some cases like maas provisioning, but is deemed generally unsafe since the superblock handlers in the kernel have not been audited for safe handling of untrusted input."08:06
wallyworld_axw: hmmm, ok, i wonder hen the auditing might occur. i guess then we only enable the extra config if needed for storage08:08
wallyworld_but no hogsmash08:08
axwwallyworld_: can't do placement yet anyway08:15
axwI suppose we could with containers08:15
axwnon-existing containers that is08:15
dooferladmornin' o/09:00
dimiternmorning dooferlad09:00
dimiterndooferlad, I've seen your PR - am I correct to assume the order of (application of) the iptables rules do not matter?09:01
dooferladdimitern: indeed. They are all inserted rat the top of the table, so since they are all above reject rules, order doesn't matter.09:02
TheMuemorning o/09:03
dimiterndooferlad, good :) because using a map was the first red light for me - how about go1.3+ and gccgo map ordering :)09:03
dimiternTheMue, morning09:03
dimiterndooferlad, clever tests though - never using more than 1 element in the maps during tests09:04
dooferladdimitern: that was indeed on my mind.09:04
dimiterndavechen1y, are you about?09:10
davechen1ywhat's up ?09:11
dimiterndavechen1y, re this review http://reviews.vapour.ws/r/1150/09:11
dimiterndavechen1y, this fixes a regression on maas after the introduction of addressable containers (lxc) for ec2 and maas09:12
dimiterndavechen1y, windows support was not even on my agenda tbh09:12
dimiterndavechen1y, were they running before on windows?09:13
davechen1ydimitern: no idea09:13
davechen1yit is not clear what we're supposed to do about windows09:13
dimiterndavechen1y, right, but I think we should fix it on ubuntu where it's supposed to work, then we can add it to the list of things to enable on windows09:14
davechen1ydimitern: feel free to land it09:14
dimiterndavechen1y, ok, all add a comment, thanks09:14
davechen1yok09:15
dimiterndooferlad, you have a review09:21
dooferladdimitern: thanks09:21
dimiternTheMue, so you have your maas cluster controller running?09:27
TheMuedimitern: yes, only getting a weird apache error message (will now set the server name explicitely) and I'm currently adding a 2nd eth for a private network09:28
dimiternTheMue, that's just a warning - you can ignore it09:29
TheMuedimitern: yeah, but I dislike it :)09:29
dimiternTheMue, yeah, you'll need to setup both DHCP and static ranges for the internal network and leave the other one unmanaged09:30
dimiternTheMue, ok :)09:30
TheMuedimitern: do you have a good doc for dhcp conf when creating a vmaas?09:30
dimiternTheMue, why do you need to change the conf directly?09:31
TheMuedimitern: my eth0 has a static address here in my net, so that I can reach it09:31
TheMuedimitern: I only interpreted your hint as if I would have to do ;)09:31
dimiternTheMue, ah, no - you can configure all via the maas web ui - Clusters - edit interfaces09:32
TheMuedimitern: already wondered, because that's how I got the maas docs too09:32
dimiternTheMue, you'll probably need to enable ip_forwarding on the cluster and add a SNAT iptables rule so the machines behind maas on the internal network can reach outside09:33
dimiternTheMue, and on the other side - e.g. your machine you'll need a static route for the internal network pointing to your maas's eth0 address (the one you can reach from your machine)09:34
* fwereade out at laura's school for a bit09:34
natefinchParamsStateServingInfoToStateStateServingInfo .... really?09:35
TheMuenatefinch: Java came to Go09:35
natefinchIt has state in the name THREE TIMES09:36
TheMuedimitern: oh how I like this09:36
=== axw_ is now known as axw
davecheneynatefinch: now you know how I feel09:36
TheMuedimitern: "virtual metal" as a service! what.is.virtual.metal? :/09:37
wallyworld_axw: i'm off to soccer, have a revised lxc config branch almost ready, uses a StorageConfig arg similar to NetworkConfig, can be extended to do what's needed for host loop etc as needed; just need to finish tests, will propose when i get home later09:37
natefinchdavecheney: yep09:37
TheMuenatefinch: you know it's created with the ParamsStateServingInfoToStateStateServingInfoFactory and can be simulated by the ParamsStateServingInfoToStateStateServingInfoMock09:38
dimiternTheMue, it's stuff from fairy tales :)09:38
dimiternadamantium09:38
TheMuenatefinch: that's state-of-the-art *scnr*09:38
axwwallyworld_: cool, thanks. enjoy09:39
TheMuedimitern: *lol*09:39
* TheMue needs another cup of coffee09:39
dimiternwe could call it AaaS09:39
dimiternadamantium as a service09:40
natefinchanything you could possibly pronounce as ass is probably not a good acronym09:40
dimitern:D09:40
* dimitern has 335MB of logs from the yesterdays automated tests on MAAS and EC2 with containers09:42
TheMuedimitern: and that's only because you compressed them *g*09:43
dimiternTheMue, not even :) - full 5h of testing at TRACE level09:44
dimitern16 separate environments09:44
dimiterna hefty $4.68 bill in EC209:45
* TheMue sees dimitern creating a data warehouse for log analyzing09:45
TheMuea DWaaS09:45
dimiternTheMue, yeah - running hadoop nodes doing rgrep ERROR09:45
dimiternvoidspace, hey there09:46
TheMuedimitern: you need a filtered logging, only keeping stuff you're interested in and throwing away the rest09:46
mattywTheMue, you available for a review?09:46
jamespagedimitern, do you know who's working on the systemd support in juju?09:47
TheMuemattyw: shure, it's my job today09:47
dimiternvoidspace, let's have a chat after standup for the release of addresses worker09:47
dimiternjamespage, yes, ericsnow mostly09:47
* fwereade out for a while at laura's school09:47
jamespagedimitern, what tz is he in?09:47
dimiternjamespage, -7 I believe09:48
dimiternjamespage, what's up?09:48
jamespagedimitern, I was wondering what state I could expect vivid support to be in in master and whether any other branches needed testing09:49
jamespagedimitern, we're busted on vivid testing right now so have a direct interest in seeing this land asap09:49
dimiternjamespage, AFAIK systemd support has landed and for vivid we no longer have an exception to run it with upstart09:50
dimiternjamespage, but it's only in 1.23 and master09:50
jamespagedimitern, hmm - yeah - still non-functional - tested yesterday09:50
jamespagethe cloud-config that gets generated for instance creation still does "start jujud-XXX"09:50
jamespagewhich is upstart specific09:50
dimiternjamespage, hmm right - is that 1.22.0 ?09:51
jamespageno from master branch with locally built copy09:51
dimiternjamespage, ok, so it sounds not so complete as I thought09:51
dimiternjamespage, I'd suggest to write a mail to ericsnow  cc alexisb about this09:52
jamespagedimitern, I'll retest early next week with a clean master (currently have leader election merged as well)09:52
jamespageand report back09:52
dimiternjamespage, cheers09:52
mattywdavecheney, you still around?09:54
davecheneywhats up ?09:54
voidspacedimitern: yep09:59
voidspacedimitern: although I think the high level details are reasonably clear10:00
dimiternvoidspace, that's great :) i've started adding tasks to this new feature card I assigned to you10:00
voidspacedimitern: yeah, I saw :-)10:01
voidspacedimitern: thanks10:01
natefinchrogpeppe: where's the code that adds the new mongo admin users when we run ensure-availability?10:02
dimiterndooferlad, standup?10:03
rogpeppenatefinch: i don't think any users are added, are they10:03
natefinchrogpeppe: system.users gets a user per state machine10:03
natefinchrogpeppe: brb10:03
natefinchrogpeppe: system.users has the admin user and then one user per state machine.  no big deal if you don't remember this stuff offhand, I know it's been a year since we worked on it10:19
rogpeppenatefinch: i think users are added when machines are added10:20
natefinchrogpeppe: ahh, I see what it is, I was looking for EnsureAdminUser, but most places just call SetAdminMongoPassword10:29
dimiternvoidspace, ok I'm done adding tasks - I think I mentioned everything relevant in the feature card10:43
voidspacedimitern: great, thanks10:46
natefinchI think I need to alias 'exit' to 'echo "dude, you're on you're on machine already"'10:59
natefinchs/on/own10:59
dimiternnatefinch, I have a custom bash prompt - not for that, but it helps in this case11:00
natefinchdimitern: i do too.. but I do exit <enter> exit <enter> ... really fast, and sometimes do one too many11:01
dimiternnatefinch, :) ctrl+d is too easy11:02
natefinchdimitern: yeah, I've done that by accident before too  whose bright idea was it to make a hotkey to close a window that could easily be typoed from ctrl+c ? :/11:03
dimitern:)11:04
natefinch(and ctrl+s, ctrl+x ctrl+f etc)11:04
perrito666I used to have a terminal (I think was konsole) where you could setup different background colors depending on the host11:05
dimiternlooking at the wear patterns on my keyboard ctrl+A, S, C and lastly D I use most of the time -my  emacs habits haven't causes X to wear off too much yet11:06
perrito666dimitern: and ctrl?11:08
dimiternperrito666, left one is still barely readable, right one a lot more11:08
dimiternbut oh boy! cursor keys - all but right are long gone11:09
perrito666lol. I tink excepting for my thinkpad, which is my spare machine, I hardly have a computer long enough to wear out anythin other than space bar11:11
perrito666although I do use an external kb11:12
perrito666whose wear pattern makes no sense, since I use it in english but is a spanish kb11:12
dimitern:)11:19
* TheMue steps out for a moment, bbiab12:54
sinzuinatefinch, mgz: do either of you have a minute for http://reviews.vapour.ws/r/1157/13:19
mgz_sinzui: on it13:20
mgz_sinzui: lgtm13:21
sinzuithank you mgz13:21
perrito666meh, I keep writting workflow instead of worload13:38
jw4oh, yeah... everytime I need to write worload I accidentally type workflow too... what is worload?13:40
perrito666:p13:40
perrito666Workload13:40
jw4hehe13:40
dimiternjw4, I have the same issue typing attempty vs. attempt14:00
natefinchI have the same problem with serve vs. server14:01
natefinchI can't type serve without typing server and deleting the r14:01
ericsnowdooferlad: you still have questions about juju systemd support?14:03
dooferladericsnow: I didn't think I had any to start with14:03
jw4it's funny how our brains store patterns14:04
ericsnowdooferlad: oh, wrong person :)14:04
dooferlad:-)14:04
bodie_how do I land a bugfix for 1.23?  I have an open bug.14:04
mgz_bodie_: propose a merge against the 1.23 branch? or do you mean more, what's the overall procedure?14:06
ericsnowjamespage: you have questions about juju and systemd?14:06
jamespagehi ericsnow14:06
bodie_mgz_, derp, of course14:06
jamespageericsnow, indeed I do - vivid has now switched to systemd by default including cloud images and I wanted to get our vivid testing restarted asap for openstack14:07
jamespageericsnow, do you have a branch for juju thatwe can test with?14:07
ericsnowjamespage: master :)14:07
jamespageericsnow, ok testing now - but I had probs two days ago :-)14:07
bodie_mgz_, but yeah, what more is needed once I get LGTM?  I'd simply $$merge$$ it, right?14:07
ericsnowjamespage: we landed the last of the systemd support Tuesday-ish14:08
bodie_then mark the bug submitted?14:08
jamespageericsnow, awesome - we may have missed that as we are working on a branch for leadership election right now14:08
mgz_bodie_: yup14:08
jamespageI did rebase so hopefully we're good14:08
ericsnowjamespage: it's totally conceivable there are issues14:08
ericsnowjamespage: I tested juju on systemd (vivid) before landing, but I'm sure I missed something14:09
ericsnowjamespage: if you run juju (e.g. bootstrap) with --debug you should see DEBUG messages saying which init systemd juju discovered14:10
jamespageericsnow, ok so it works - I think I must have tested prior to re-basing14:10
ericsnowjamespage: yay14:10
ericsnowjamespage: thanks for taking it for a spin14:10
ericsnowjamespage: the alternative is to run vivid with upstart (not hard) temporarily but that's not ideal14:11
jamespageericsnow, nah and thats backwards looking...14:11
ericsnowjamespage: :)14:11
bodie_mgz_, I already landed the bugfix in master.  can I just $$merge$$ the PR for 1.23?  or do I need to get LGTM on it?  it's identical to what I already got LGTM'd yesterday14:15
mgz_bodie_: no, you'll probably need to actually cherrypick14:16
mgz_it's a different branch target14:16
mgz_github may let you propose again targettting a different branch, I've not tried14:17
bodie_yeah, that's what I just did14:17
mgz_but you do need a new mp at least14:17
axw_wallyworld_: I'm too tired to review for reals, will take another look on the weekend. feel free to get others' opinion on juju-dev about lxc security14:24
wallyworld_axw_: no worries, i'm almost finished adding the loop mount config14:26
wallyworld_i'll propose tomorrow14:26
wallyworld_axw_: i explicitly allow the default loop devices, i think that will do for now as per my comments on the review14:26
ericsnowaxw_, wallyworld_: yikes! still up?  have a good weekend :)14:28
wallyworld_ericsnow: yeah, about to head off, tired14:28
sinzuinatefinch, dimitern, I just reported bug 1431888. I need to know if juju has a regression or a requirement change so that we get the functional-restricted-network test14:28
mupBug #1431888: Juju cannot be deployed on a restricted network <ci> <deploy> <network> <regression> <juju-core:Triaged> <https://launchpad.net/bugs/1431888>14:28
dimiternsinzui, yeah, I was looking at that but couldn't off hand tell what's the problem14:30
dimiternsinzui, since the CA has landed we do modify a few iptables rules and routes14:30
dimiternsinzui, if the job drops or removes them it won't work with containers14:31
sinzuidimitern, we are just testing that we can bootstrap and deploy two services that don't have external requirements14:32
sinzuiWe know from 25 other tests that juju can bootstrap and deploy fine.14:32
dimiternsinzui, I'm looking at the prep steps the job does from the logs14:33
dimiternsinzui, and trying to understand what's the issue - so that's a local environment14:34
dimitern?14:34
sinzuidimitern, this is one of our oldest tests. it is ugly. the interesting bits are at line 100+ http://bazaar.launchpad.net/~juju-qa/juju-ci-tools/trunk/view/head:/test-restricted-network14:34
dimiternsinzui, can you perhaps add a few things to the job - "ip link", "ip route", "ip addr", before and after the prep steps - to see how's the NICs, routes and addresses14:38
dimiternconfigured14:38
mupBug #1431888 was opened: Juju cannot be deployed on a restricted network <ci> <deploy> <network> <regression> <juju-core:Triaged> <https://launchpad.net/bugs/1431888>14:38
sinzuidimitern, I can. you want this just before it calls juju bootstrap?14:38
dimiternsinzui, yes - before trying to change any networking stuff (e.g. around line 100) and just before bootstrap14:41
dimiternsinzui, while you're at it - in case of an error also dump these before exit 114:42
dimiternsinzui, it will also be really useful for debugging if you can extract the logs for the host and containers - like you do for other local env tests15:01
sinzuidimitern, that is challenging15:01
dimiternsinzui, why?15:02
sinzuidimitern, the test isn't in our slaves15:02
dimiternsinzui, you mean you can't get the logs off that machine?15:03
redelmannHi!15:07
mupBug #1431918 was opened: gce minDiskSize incorrect <juju-core:New> <https://launchpad.net/bugs/1431918>15:08
redelmannsomeboy know what happend to "juju actions", im using "juju 1.22-beta4-trusty-amd64"15:11
natefinchbodie_, jw4: ^^15:11
redelmannand the "actions option does not exist15:11
bodie_redelmann, try `JUJU_DEV_FEATURE_FLAGS=actions juju action help`15:16
bodie_sorry15:17
bodie_JUJU_DEV_FEATURE_FLAG15:17
bodie_jw4, I thought it was FLAGS?  the Juju Doc site shows it as FLAG15:17
bodie_anywho, try that15:17
jw4bodie_: I think your quotes are wrong15:18
jw4JUJU_DEV_FEATURE_FLAG='action' juju action help15:18
natefinchJUJU_DEV_FEATURE_FLAGS=action juju action help15:19
natefinch(just tried it)15:19
jw4bodie_: oh; my mistake I see what you were doing15:19
sinzuidimitern, it is in an ec2 instance, but i have a plan. put termination protection on the instance when I see the instance spin up. Then we can claim logs15:19
jw4natefinch: sounds like we need to fix the doc15:19
natefinchjw4: yep, FLAG definitely does not work15:19
dimiternsinzui, good plan, let me know when you have the logs please15:19
wwitzel3port of gce fix to 1.23 http://reviews.vapour.ws/r/1161/ if someone can ptal15:24
redelmannbodie_ thank15:24
bodie_redelmann, that work for ya?15:25
redelmannbodie_, JUJU_DEV_FEATURE_FLAGS=action juju action help is working ;)15:25
voidspacedimitern: ping15:25
voidspacenatefinch: you can probably help :-)15:26
bodie_redelmann, good.  :)15:26
voidspacenatefinch: dimitern: cancel that ping15:28
voidspacefound what I was looking for15:28
natefinchprocrastination pays off again!15:29
voidspace:-)15:29
bodie_I landed my bugfix in 1.23.  Do I now mark the bug "released" rather than committed as usual?15:33
perrito666bodie_: committed I would say15:34
perrito666released is not released until we release15:34
bodie_that's what I thought.  just making sure :)15:35
mupBug #1431612 changed: Action defaults don't work for nil params <actions> <defaults> <juju-core:Fix Released by binary132> <https://launchpad.net/bugs/1431612>15:38
mupBug #1431612 was opened: Action defaults don't work for nil params <actions> <defaults> <juju-core:Fix Released by binary132> <https://launchpad.net/bugs/1431612>15:44
mupBug #1431612 changed: Action defaults don't work for nil params <actions> <defaults> <juju-core:Fix Released by binary132> <https://launchpad.net/bugs/1431612>15:50
voidspaceTheMue: when you have time: http://reviews.vapour.ws/r/1160/15:55
TheMuevoidspace: I'm looking. just booted my first maas node on vmware *yeehaw*15:56
voidspaceTheMue: awesome15:57
TheMuevoidspace: only don't know how to log in *lol*15:57
voidspaceTheMue: upgrade step is written, just looking at a test15:57
voidspaceTheMue: hah15:57
voidspaceTheMue: you have to set a secret in the config I believe and use that as password15:57
voidspaceor something like that...15:58
* fwereade out for a bit15:58
voidspaceTheMue: this is the upgrade step, WIP, FWIW, YMMV: https://github.com/voidspace/juju/compare/address-life...voidspace:address-life-upgrade15:59
TheMuevoidspace: will take a look after review16:00
voidspaceTheMue: It's a WIP, it can wait until the test is done16:00
voidspaceTheMue: just wanted to prove it's on the way...16:00
TheMuegood16:00
TheMuevoidspace: reviewed16:04
voidspaceTheMue: thanks, I'll make that change16:04
TheMuevoidspace: thx16:04
TheMuevoidspace: the upgrade stuff looks fine so far too16:05
voidspaceTheMue: I'm wondering how to test16:05
voidspaceTheMue: I think I have to manually insert some ip address records without a Life field16:05
voidspaceTheMue: and then check that the upgrade step adds them16:05
voidspaceTheMue: (plus a test for idempotency for records with an existing Life field)16:06
TheMuevoidspace: hmm, I once had an upgrade too. have to see how I've done it16:06
voidspaceTheMue: that means manually constructing bson.M{...} for the address recoreds16:06
voidspacewhich is easy but tedious16:06
voidspaceor create some records, delete the Life field...16:06
voidspacethat's probably quicker (and more future proof) but weirder16:07
voidspace(future proof against future schema changes that would also have to be made in the manual bson.M records16:07
voidspacealthough we shouldn't have to future proof an upgrade step16:07
TheMuevoidspace: I have to admit we only tested that it is called (the upgrade function)16:09
voidspacemaybe just a manual test...16:09
voidspace:-)16:09
TheMuevoidspace: see http://reviews.vapour.ws/r/253/diff/#16:09
voidspaceTheMue: there are changes in state/upgrades_test.go16:10
voidspaceTheMue: and that test runs MigrateJobManageNetworking16:11
TheMuevoidspace: oh, eh, yeah. too quickly scrolled to the bottom16:12
voidspaceTheMue: but you're adding to a set rather than adding a new field16:13
voidspaceand you manually set the jobs of the machines you add before migrating16:14
voidspacewhereas if I create new IPAddresses in the test they'll *have* the new field16:14
voidspaceI'll think about it16:14
voidspace:-)16:14
TheMuevoidspace: testing upgrade is *ugly*, indeed16:18
dimiternvoidspace, since you've already sent the 1835 for merging, I'd ask you to address my review comments in a follow-up16:23
voidspaceah16:28
voidspacedimitern: ok16:28
voidspacedimitern: I can do that in the upgrade setp16:28
voidspace*step16:28
voidspacedimitern: why do we now need Refresh?16:29
voidspacedimitern: is it part of the interface?16:29
voidspaceI know what it does16:29
voidspacebut we only need it where we need retries16:29
voidspacethe other comments are easy enough to address16:29
voidspaceand if the answer is "we might need it", then can't it wait until we *do* need it? (like Destroy)16:30
dimiternvoidspace, it's part of the interface16:30
voidspaceheh, that was the answer I was hoping you wouldn't give16:30
voidspaceok16:31
perrito666hey, I need to be OoO for a moment, ill be back in about two hs16:32
dimiternvoidspace, :)16:32
=== kadams54 is now known as kadams54-away
fwereadeis anyone free to be hassled for a round of reviews? I'd like to land a few that all feed into one, so I can get a ~clean diff on that one without forcing the others into a sequence they don't have to be in16:52
jw4fwereade: I'll be out for a couple hours but when I get back I'd be happy to16:54
=== kadams54-away is now known as kadams54
dimiternsinzui, I've commented on the restricted network bug17:35
dimiternsinzui, can you perhaps give me access to that machine after it has failed?17:35
sinzuidimitern, I can17:36
marcoceppidimitern: thanks for the PR17:48
dimiternmarcoceppi, np :) I like the tool very much17:50
mupBug #1326355 changed: network-bridge doesn't work on trusty Ubuntu installed from scratch <addressability> <local-provider> <lxc> <network> <juju-core:Won't Fix> <https://launchpad.net/bugs/1326355>17:57
sinzuidimitern, ha ha, since the test breaks networking, we cannot get into the machine after the test starts18:04
sinzuidimitern, I will try to change the test to either revert the network on failure, or just get the logs18:04
dimiternsinzui, ok, sounds good - add the iptables-save dump to the logs as well please18:06
dimiternas commented on the bug18:06
voidspacedimitern: ping18:14
dimiternvoidspace, pong18:14
voidspacedimitern: on isDeadDoc and handling the case where the address was already removed18:14
voidspacedimitern: your comment says "handle the case where the unit was removed already"18:14
voidspacedimitern: I assume you mean addres18:14
voidspacedimitern: I've been looking at unit.Remove18:15
voidspacedimitern: adding the isDeadDoc assert is trivial obviously18:15
voidspacedimitern: but it's not clear from Remove what code that handles it is18:15
voidspacedimitern: unless it's the code doing the Refresh - in which case it *looks* to me like it just ignores that error18:16
voidspacedimitern: and if this is the case I wonder how that is different from not having the assert18:16
dimiternvoidspace, yeah - s/unit/address/ there in that comment18:16
voidspacedimitern: and if it's not correct I'd like to be corrected18:16
dimiternvoidspace, so the isDeadDoc assert will cause the remove op to fail if the record is not dead18:16
voidspaceah, right - the Refresh handles not found, which is different18:17
dimiternvoidspace, yeah18:17
voidspacewe already check Life before performing the remove - so the assert *can't* fail of course18:17
dimiternvoidspace, that's why refresh() is needed18:18
voidspaceah - so "handle the case where the unit was removed already" is a *separate* issue - not related18:18
voidspacedimitern: they can't go from Dead to NotDead18:18
voidspacedimitern: so I still say it can't fail18:18
dimiternvoidspace, add asserts, and if they fail - refresh your local copy of the doc (which is obviously stale at this point) and retry - if needed18:18
ericsnowcmars: could you take a look at http://reviews.vapour.ws/r/1162/?18:18
ericsnowcmars: it should be pretty straight-forward18:18
voidspacedimitern: but the only assert [you want me to add] can't fail...18:19
dimiternvoidspace, my point is you should *not* rely on the local copy of the doc (inside the state.IPAddress) when taking decisions whether to remove a doc or update it18:19
voidspacedimitern: we've just fetched it - and if life is Dead it can't go back18:20
dimiternvoidspace, because it's possible that data is stale or somebody else changed the same doc your local copy was taken from18:20
voidspacedimitern: and if it's *not* Dead we'll bail before getting to that assert18:20
voidspacedimitern: so in this case I *don't* think that's possible18:20
dimiternvoidspace, where is that you just fetched it?18:21
voidspacedimitern: prior to calling Remove18:21
voidspacedimitern: we only Remove in one place and we fetch all addresses for a container and Remove them18:21
voidspacedimitern: in the future we'll fetch all dying ones and Remove them18:21
dimiternvoidspace, that's different - that's up to how the test is setup, I'm talking about the implementation18:21
voidspacedimitern: so am I18:21
voidspacedimitern: the actual use of Remove18:21
voidspacenot the testing of it18:21
voidspacedimitern: and as I said, if the local copy doesn't have a Life == Dead we bail before the assert18:22
voidspacedimitern: and if the Life  of the local copy is Dead then there is no change anyone else can or will make to change that18:22
dimiternvoidspace, not true18:22
voidspacedimitern: under what circumstances do you imagine an address going from Dead to NotDead?18:23
dimiternvoidspace, imagine this case: i0 := st.IPAddress(x), i1 := st.IPAddress(x); i1.EnsureDead(), i1.Remove() , i0.EnsureDead()18:24
dimiternvoidspace, what happens?18:24
cmarsericsnow, looking18:25
voidspacedimitern: the isAliveDoc assert in EnsureDead fails18:25
dimiternvoidspace, and we're ignoring it and setting the local Life to Dead18:25
voidspacedimitern: there's an early return before setting local life to Dead18:26
dimiternvoidspace, actually I'm not sure if it will even fail with ErrAborted18:27
dimiternvoidspace, if the doc is gone18:27
voidspacedimitern: so you're saying asserts about a field will *succeed* if the doc doesn't exist at all18:27
voidspacedimitern: that sounds unlikely and horrible if true18:28
dimiternvoidspace, I'm not saying that, I have to check if it is18:28
voidspace:-)18:28
dimiternvoidspace, ok, I still think isDeadDoc should be added on Remove18:29
dimiternvoidspace, but I've totally missed that now we have Life, a few other methods need to change to account for that18:30
voidspacedimitern: do you want to add more review comments?18:31
voidspacedimitern: I'm going jogging anyway18:31
dimiternvoidspace, e.g. SetState and AllocateTo18:31
dimiternvoidspace, I will yeah18:31
voidspacedimitern: yeah, ok18:31
voidspacedimitern: an assert on a doc that doesn't exist fails18:32
voidspacedimitern: and now you can't call Remove twice on an IPAddress - isDeadDoc now fails the second time18:32
dimiternvoidspace, yeah, that's why it needs to call refresh on ErrAborted, and if it's not found - return nil, as in other cases18:33
voidspacedimitern: ok18:33
dimiternvoidspace, thanks for confirming about the assert18:33
=== kadams54 is now known as kadams54-away
redelmannwhy when i try debug-hooks "JUJU_CONTEXT_ID" is not set?19:24
redelmannim doing something wrong?19:24
redelmannex: config-get ->>  "JUJU_CONTEXT_ID" is not set19:25
redelmanninside tmux: juju debug-hooks rabbitmq-server/0 amqp-relation-changed19:25
natefinchredelmann: note that after you do debug-hooks, you then have to do a juju resolved --retry from another terminal, to get the hook to rerun, so the debug hook will hook19:26
natefinchthen your debug hook terminal will dump you into the right directory with all the right environment variables set etc19:27
ericsnowcmars: I've replied to your review comment; did the code otherwise look okay?19:46
redelmannnatefinch, but unit is not in error state19:46
redelmannnatefinch, so it say: ERROR unit "rabbitmq-server/0" is not in an error state19:46
redelmannnatefinch, i just need to do a "get-config" to see what is this charm given to my charm19:47
natefinchredelmann: ahh, debug-hooks only works if the hook is in an error state... this is usually easy to do, you can add a "return 1" or similar to the top of hook script so that it automatically errors out19:47
redelmannnatefinch, but i deploy rabbitmq from online charm19:48
redelmannnatefinch, s i have to download the charm and edit the hook?19:48
redelmannnatefinch, too complicate just to know what get-config "send"19:49
natefinchredelmann: you can still edit the hook script on the unit19:49
mupBug #1215579 changed: Address changes should be propagated to relations <addressability> <network> <reliability> <juju-core:Fix Released> <https://launchpad.net/bugs/1215579>19:51
redelmannnatefinch, that's true19:51
redelmannnatefinch, second day playing with juju19:51
natefinchredelmann: so, you can deploy the normal rabbitmq charm, then ssh into the unit (do juju ssh <machine number>), then go to the service's hooks directory on that machine (/var/lib/juju/agents/unit-rabbitmq-0/charm/hooks) and  edit the hooks19:53
natefinchredelmann: no problem... it's a bit of a learning curve at first19:53
natefinchrick_h_: does the gui show all the config data that a charm sets?19:54
redelmannnatefinch, thank!19:54
* natefinch should really use the gui more often19:54
rick_h_natefinch: it shows all defined in metadata.yaml yes19:54
rick_h_err config.yaml19:54
natefinchoh yeah, config.yaml19:54
rick_h_e.g. https://demo.jujucharms.com/precise/juju-gui-108/#configuration19:55
natefinchredelmann: the charm will have a config.yaml you can look at, which should define all the properties it sets... or you can use the gui to go look at them19:55
natefinchredelmann: https://api.jujucharms.com/v4/trusty/rabbitmq-server-26/archive/config.yaml19:57
redelmannnatefinch, but i need relation variables19:57
redelmannnatefinch, when i create a relation whit my charm, rabbitmq is not given to me her addres19:58
rick_h_redelmann: you've fallen into a little bit of a hole there. Relations are meant to be quite flexible and aren't that well document. The only relation currently really well documented is the mysql one as a first stab at it. https://jujucharms.com/docs/interface-mysql19:59
redelmannnatefinch, address/hostname/whatever19:59
rick_h_redelmann: it's something we're working on trying to improve because it can be frustrating when trying to relate to a new service19:59
rick_h_redelmann: the best thing we suggest at the moment is to look at other services that talk to that service or to check out what the service does in the hooks for joining the relation.19:59
redelmannrick_h_, ok, thank, im going to look in another charms20:01
redelmannrick_h_,i already try: hookenv.relation_get("host"), hookenv.relation_get("hostname")20:02
rick_h_redelmann: yea, so looking at the charm the amqp relation is in line 110 of https://api.jujucharms.com/v4/trusty/rabbitmq-server-26/archive/hooks/rabbitmq_server_relations.py20:02
rick_h_redelmann: which sets up a bunch of stuff in relatoin_settings. You should be able to dump out everything in that I'd think. /me is trying to see20:03
redelmannrick_h_, for what can i see "hostname" should do the trick!20:04
rick_h_redelmann: woot!20:05
redelmannrick_h_, nothing20:05
rick_h_boooo20:06
redelmannrick_h_, i was trynig to retrive hostname from rabbitmq charm, but was my problem20:06
redelmannrick_h_, hookenv.relation_get("hostname") is working as expected20:07
rick_h_redelmann: ah ok cool20:07
redelmannrick_h_, but my template was wrong20:07
redelmannrick_h_, thank for the help!20:08
rick_h_redelmann: np, sorry for the trouble. It's definitely a weak point we're got our eye on20:08
rick_h_redelmann: thanks for pushing through it20:08
ericsnowcmars: thanks for the review20:52
mupBug #1431685 was opened: juju nova-compute charm not enabling live-migration via tcp with auth set to none <juju-core:New> <https://launchpad.net/bugs/1431685>21:24
=== kadams54-away is now known as kadams54
=== kadams54 is now known as kadams54-away
fwereadeif anyone's on, I'd love a second opinion on http://reviews.vapour.ws/r/1151/23:32
jw4I recently created a bash script to display all your branches (local and remote) sorted by last commit date, and colorized to make finding recent work across remotes easy23:37
jw4now I can't get my link to paste! :)   hand typed:  https://gist.github.com/johnweldon/0a9ee3c9406fab2ac93b23:39
jw4fwereade: looking... shouldn't you be sleeping?23:40
fwereadejw4, ehh, soon23:40
fwereadejw4, I want to get a bunch of these landed so I can propose what I have that works and has hooks and proper tests and everything, but depends on too much still in review for a nice diff without hassle23:41
jw4fwereade: yeah, makes sense.  I actually wrote my little git tool (^^) so that I could add your repo as a remote and find the branches you've been working on recently :)23:42
alexisbfwereade, dude what time is it for you man?23:42
jw4fwereade: quarter til 2?23:42
jw4oh, quarter to one23:43
jw4(DST screws me up even worse now !)23:43
fwereadeyeah, only quarter to 123:43
fwereadeif I can propose that last branch I'll feel like I've done the week23:44
jw4fwereade: reading that Raft doc you recommended is helping me review your changes ;)23:50
alexisbfwereade, I can put I ship it on it if that helps :)23:51
jw4fwereade: non-graduated second opinion :shipit:23:59

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