/srv/irclogs.ubuntu.com/2013/08/15/#juju-dev.txt

davecheneyhey upgrade-charm --switch works00:10
davecheneythat is awesome00:10
davecheneywallyworld_: was there a command to print the current enviroment ?00:15
davecheneynm, juju switch without a name00:15
wallyworld_yeah00:15
wallyworld_davecheney: how did the hp cloud demo go? well i hope00:16
davecheneywallyworld_: yeah, it's working well00:19
davecheneymarco is demoing juju deployer00:19
wallyworld_great00:19
davecheneyand about to wow them with an import of a whole openstack HA setup00:19
davecheneyentirely hands off00:19
wallyworld_good luck :-)00:19
davecheneywallyworld_: thanks, we've tested this00:19
davecheneywell, at least once00:19
wallyworld_how many machines do you need for openstack HA?00:20
davecheneydozen at least00:21
wallyworld_can't wait till containers are cooked a bit more so we can reduce that00:21
davecheneyman, the lack of the auto layout in the gui is killing us00:22
wallyworld_i thought they were going to work on that?00:22
wallyworld_something was said in oakland anyway00:22
davecheneywallyworld_: yes, i wonder why it hasn't landed00:23
davecheneywallyworld_: have you used upgrade-charm --switch much ?00:23
wallyworld_no, not at all sorry00:24
davecheneyfair enough00:24
wallyworld_is there an issue?00:24
davecheneyi guess that is thumper/rog/fwereade00:24
davecheneywallyworld_: no, it looks like it works00:24
wallyworld_great00:24
davecheneywe didn't relalised it was done00:24
davecheneywhich is good00:24
davecheneybecause it hepls when you need to fix a charm locally00:25
sidneithumper: just as a heads up, i hope you haven't started on the lxc-clone thing discussed at iom, i'm planning to dive down into it tomorrow as soon as my other branch lands.00:54
wallyworld_arosales: not sure if you are around - do you have a preference for juju tools location? perhaps "http://juju.canonical.com/tools" afaiui, we want to avoid using ubuntu in the url? i need to ask IS if they can set up that location00:58
axwwallyworld_: when you have a moment, can you please review this (regarding syslog)? https://codereview.appspot.com/12909044/01:02
axwrsyslog even - apparently you wrote that01:03
wallyworld_sure01:03
axwta01:03
wallyworld_axw: it was written with the understanding that we would not deploy services to the bootstrap node unless in a container. clearly now that we have the --to option, that is no longer true :-/01:04
axwwallyworld_: yeah I figured that was the case01:04
axwmy "solution" is still not perfect even01:04
axwif you have multiple state servers... they're not going to see each others' logs01:04
davecheneywallyworld_: that url looks good01:04
wallyworld_davecheney: ta. afaik, juju.canonical.com doesn't exist yet, so i'll see if IS can set everything up for me01:05
axwdavecheney: heya. I reproduced that line-ending issue on lcy02 yesterday01:05
davecheneyaxw: and I just ran into it on ec201:06
davecheneyit doesn't happen every time .... ?!?01:06
axwdavecheney: seems the rsyslog conf file got mangled, and the "\n" got interpreted01:06
axwah01:06
axwwtf :(01:06
axwdavecheney: if yo utake a look at /etc/rsyslog.d/25-juju.conf, then you'll see a " on its own line01:07
axwit should be up a line, with a literal \n before it01:07
axwI better update the bug that says it works fine on EC2 then01:08
wallyworld_axw: sorry, i marked the merge proposal as not lgtm since there's a cleaner was we can check if a machine is a state server, and we can abstract it behind a method for possible subsequent refactoring when we go to ha01:15
davecheneyurgh, ec2 speed is killing me01:15
axwwallyworld_: nps, thanks for the review01:15
davecheneyjust bootstrapped a machine that had so little io bandwidth it could not unpack the tools01:16
wallyworld_let me know if you have questions01:16
axwwallyworld_: will do, ta01:16
wallyworld_axw: see state/machine.go - it defines the jobs a machine can run and the db document for machine containing the Jobs attr01:17
davecheneyaxw: nice diagnosis01:17
thumpersidnei: it is all yours :-)01:18
axwwallyworld_: I would've done that actually, but Machine isn't exposed to SimpleContext at the moment. I see now there's only one place that NewSimpleContext is called tho, so it's easy enough to pass one through01:18
wallyworld_axw: cool, i didn't really look too much at the surrounding code. i assumed a deployer or whatever would have had access to the machine it was operating on01:19
axwwallyworld_: nope, but it will soon :)  thanks for the comments01:20
wallyworld_np01:20
thumperhi wallyworld_01:24
thumperwallyworld_: how's the world?01:24
wallyworld_g'day01:24
wallyworld_busy01:24
wallyworld_lots of simplestreams stuff swirling around01:24
wallyworld_how was iom? sounds like it was good01:24
* thumper nods01:24
thumperwallyworld_: yeah pretty good01:25
thumperdidn't catch as much flak for the api lateness as i thought we might01:25
wallyworld_:-)01:25
davecheneythumper: thanks for implementing update-charm --switch01:25
wallyworld_thumper: i'm on an ease of use mission, so hopefully soon juju will Just Work better01:25
thumperdavecheney: ah... I didn't01:26
thumperwallyworld_: awesome01:26
wallyworld_lots to do though01:26
thumperwallyworld_: got general agreement between me, jam and fwereade__ around -v meaning verbose, not showlog01:26
wallyworld_\o/01:26
thumperalso, useful output by default01:26
thumperwith -q meaning quiet01:26
wallyworld_thumper: what about recognising that log != cli01:27
thumperyeah, we are going to log into $JUJU_HOME/juju.log (or something) for every command01:27
wallyworld_log should go to file, with different stuff going to stdout for cli feedback01:27
thumperkinda like .bzrlog01:27
thumperwallyworld_: ack01:27
wallyworld_cool, can't wait01:27
davecheneywallyworld_: +101:28
davecheneyif it means we don't have to run the command twice to debug it01:28
davecheneyactually +1 million yen01:28
wallyworld_i would have done it myself if i had the time01:28
thumperwell, we wanted to make sure that we had agreement before starting01:28
thumperso we wouldn't get rebuffed in reviews01:28
wallyworld_yeah, that too01:29
davecheneythumper: wallyworld_ anything that gets most of hte debug shit out of hte logs01:29
wallyworld_my initial email didn;t get much love way back when01:29
davecheneyit's really hard to demo juju and explain what is happening when 1/2 the line is full of shit like file:line etc01:29
thumperdavecheney: ack01:29
wallyworld_yep01:29
davecheneysame goes for the agents01:30
wallyworld_thumper: the ability for a user to define a log config and have that used would be great too01:30
davecheneywhich tend to log most things as debug then at info01:30
davecheneywallyworld_: -1, overengineering01:30
thumperwallyworld_: I have a branch for that01:30
davecheneythere should be one log level01:30
davecheneysilent or not silent01:30
wallyworld_davecheney: disagree01:30
davecheneyanything more than that goes into this log file01:30
thumperdavecheney: there are two users here01:30
thumperdevelopers and users01:30
thumperdevelopers need configurable logging01:30
thumperusers shouldn't have to look at it01:31
thumperever!01:31
wallyworld_what he said01:31
wallyworld_also, as a developer, i might want to configure logging to there is a stdout sink01:31
thumperwhich is why we want useful output by default01:31
thumperand verbose meaning "show me more" not "show me the developer log messages"01:31
davecheneythumper: sounds good to me01:31
davecheneyi never want to know about it01:31
axwdavecheney: "10mbit ethernet is considered high speed in australia"  ;)  I was thinking the same thing, but then remembered there will be other guests01:33
davecheneyaxw: honestly, this is the best we get01:33
axwyeah I know01:34
davecheneythe bigger problem will be their shitful captive wifi portal01:34
davecheneyaxw: wallyworld_ thumper is there a way to show the default constraints ?01:47
davecheneysimilar to juju get $SERVICE01:48
wallyworld_davecheney: you mean the constraints specified on bootstrap i assume, which become the so-called environment constraints01:48
davecheneywallyworld_: yes01:49
wallyworld_i think there may be a get command of some sort, but i've not used it. i'll see if i can find what it may be01:49
davecheneyjuju get-constraints blocks01:50
davecheneyjuju get-constraints $SERVICE returns nothing01:50
wallyworld_get-env constraints  ??01:50
thumperdavecheney: I don't know actuall01:53
thumpery01:53
wallyworld_i looked at the code, get-constraints should be the thing to use01:53
wallyworld_not sure why it is blocking01:53
* thumper tries to remember which nights in oakland were non-claimable01:56
thumperputting in expense reports01:56
davecheneythumper: none of them :)01:58
thumperdavecheney: well, we did have a team dinner didn't we?01:58
* thumper is trying to remember01:59
thumperI remember the go meetup01:59
thumperbut having trouble thinking of other evenings out01:59
thumperexcept for that horrible vegan place01:59
davecheneythumper: the steak house on thursday ?02:00
thumperthursday was the go meetup02:00
davecheneytuesday ?02:00
thumpersounds right, but I'm having a lot of difficulty remembering it02:01
thumperah02:01
thumperkincaids02:01
thumperyes, I remember now02:01
davecheneythumper: i don't think it matters02:01
davecheneyjust make sure the number of days add up to the right number02:01
thumperdavecheney: it matters to me :)02:01
davecheneythumper: it was tuesday02:01
thumperta02:02
axwthat was quick, thanks thumper02:12
thumpernp02:12
thumperI saw it come up02:12
thumperaxw: trivial ones means only one review needed02:12
axwthumper: yup, thank you02:12
thumperactually we have an experiment coming up where we are moving to a "one lgtm needed" for a month02:13
thumperto see how it goes02:13
axwhmmk02:13
thumperaxw: there have been a number of times where good work is blocked on noone around to do a second review02:13
axwI had a change last week where I got a "LGTM, this looks solid" and then a "NOT LGTM this is going to break everything catastrophically" ;)02:13
thumperthe idea is that we'll be doing weekly reviews of modules02:14
thumperaxw: which was that on?02:14
axwthumper: a change to handling of Dying in the uniter/modes code02:14
axwso that a uniter would die if it hadn't started yet02:14
axwI can get the number if you're interested02:14
thumperno, that's fine02:15
thumperaxw: also, technically I should be on-call reviewer today02:16
thumperthis morning was catching up on all the emails02:17
thumpernow expenses etc.02:17
axwthumper: ah yes, what does that mean exactly?02:17
thumpergenerally, that your primary focus should be reviewing others code02:17
thumperand some bug work when not reviewing02:17
thumperif all that is done02:17
thumperthen you can code02:17
axwgotcha02:18
thumperotherwise people tend to prioritise their own work02:18
thumperand no one looks at bugs :)02:18
axwthumper: doesn't mean people are going to call you up out of hours for reviews? :)02:18
axwheh02:18
thumperno02:18
thumper:)02:18
axwthumper: speaking of reviews, did you see my manual provisioner stuff?02:19
axwI'd like to know if I'm on the right track...02:19
thumperaxw: I haven't but I want to look at it02:19
axwthumper: thanks. I have other stuff to carry on with for now02:19
thumperI need to get my wallet for the IOM expenses, but the dog is sleeping in front of the door and I really don't want to wake her up02:20
* thumper nods02:20
axwhehe02:20
axwoops, that change was noise.. state isn't used directly in the code creating the deployer02:36
axwthumper: turns out I should've added that method to state/api/agent/Entity, if anywhere at all02:39
axwthat code seems much more  minimalist than state02:40
axwshould I be leaving it that way, or go ahead and add it in there too?02:40
thumperwhy do you feel it should be moved?02:40
axwno I made a mistake in the first instance; the code I need to update uses api, not state02:41
axwI'm updating jujud to check if it's a state server when creating a deployer context02:42
axwand jujud is working with api/agent Entity objects, rather than state.Machines02:42
thumperah..02:56
thumpermakes sense02:56
thumperwhy does jujud care if it is a state server for the deployer context?02:56
axwthumper: because the deployer needs to not install rsyslog forwarding config if it's on a state server, or we get a feedback loop03:01
axwbug 121114703:02
_mup_Bug #1211147: Deploying service to bootstrap node causes debug-log to spew messages <juju-core:In Progress by axwalk> <https://launchpad.net/bugs/1211147>03:02
axwthumper: thanks for the review comments. I realise it's ugly/messy, was more interested in making sure I wasn't way off with how I understood things should work03:15
* thumper nods03:15
thumperaxw: I think you are kinda there03:15
axwso what's the "manual" provider going to do?03:15
axwnothing?03:15
thumperright03:15
thumpera manual provider isn't really a provider at all03:15
axwit exists just to be referred to?03:15
* thumper nods03:15
axwok03:15
thumpermore importantly, so we can distinguish between environmentally created machines03:16
thumperand ones you have added manually03:16
thumperthe whole "destroy-machine" thing needs thought03:16
axwyeah didn't even touch that yet03:16
thumperit seems that there needs to be a hook inside the machine agent so it can nuke itself03:17
thumperas in, remove the upstart job03:17
thumperand die03:17
thumperright now03:17
thumperwithout any way to discriminate between top level machines03:17
thumperthe environ provider will raise an error03:17
thumperwhen it notices that a "manual" machine needs to die03:17
thumperbecause it can't find it03:17
thumperat least the process will die and restart03:18
arosaleswallyworld_, +1 on juju.canonical.com/tools03:35
wallyworld_arosales: great thanks, will get the ball rolling03:35
arosaleswallyworld_, thanks, are you going to file an RT with IS?03:36
wallyworld_yes03:36
wallyworld_will do it today03:36
arosaleswallyworld_, thank you03:48
wallyworld_np, i'm looking forward to getting this all working03:48
arosaleswallyworld_, ben also reports simple streams for HP and Azure are all set with the SRU for Azure inprogress to enable 12.04 on Azure03:48
arosales+1 on "it just works"03:48
arosales:-)03:48
wallyworld_arosales: so we can theoretically delete the hack up simplestream data i did for hp cloud03:49
wallyworld_i might test that locally03:50
wallyworld_s/might/will03:50
arosales+1 on testing it :-)03:50
arosaleswallyworld_, I think you have access to the sub hp account03:50
wallyworld_yeah, i uploaded new metadata a day or so ago for the demo03:51
arosaleswallyworld_, cool, and thank you03:51
wallyworld_np03:51
wallyworld_hope things are going well for you guys over there03:51
arosalesits marco and dave that are in the trenches in japan03:51
arosalesI am just assisting remotely03:51
wallyworld_ah ok03:52
arosalesbut I hear things are going better now03:52
wallyworld_\o/03:52
arosalesis tim around03:52
arosalesthumper, ?03:52
arosalesthumper, need to confirm your plan/travel for the Brisbane sprint03:53
arosalesemail is also out on that subject03:53
bigjoolso/ arosales03:54
arosalesbigjools, hello03:54
arosalesdavecheney, all going well with the charm shool?03:54
thumperarosales: here04:02
thumperarosales: was having a coffee and some fud04:02
arosalesthumper, umm coffee . . .04:03
thumperarosales: oh yes, as much as davecheney disagrees, I think they'll be fine without me04:03
arosalesthumper, hey I was just going to check if you need to book any travel for the brisbane sprint04:03
thumperarosales: no, no I don't04:03
arosalesthumper, ah, ok04:03
thumper:)04:03
thumperarosales: I should go edit some docs I guess04:03
thumperif the flights were better, it perhaps could have been an option04:04
thumperbut it is another five days away04:04
arosalesah04:04
thumperwhich doesn't gel with the family04:04
thumperI had it calculated for me that i have been away for a total around 8 months since I started with canonical04:05
arosaleswow04:05
arosalesthumper, I updated the ss04:06
davecheneythumper: arosales yup04:06
davecheneywhatever04:06
davecheneyafter this week, I don't think there is anything you four can throw at me04:06
thumperdavecheney: don't worry, you get to see me in October04:07
davecheneythumper: :heart04:07
thumperdavecheney: really, whazzup?04:07
davecheneythumper: this week has been ... trying04:07
arosalesdavecheney, battle hardened04:07
axwwallyworld_: second attempt: https://codereview.appspot.com/1285204404:07
wallyworld_axw: will look soon, just finishing a bit of stuff04:08
axwnps, thanks04:08
bigjoolsthumper, damn, I was looking forward to insulting you in person04:08
thumperbigjools: sorry dude04:08
arosalesbigjools, lol04:08
thumperbigjools: you'll have to wait until next year, or when you're up to travelling again04:08
arosalesbigjools, I don't know thumper seems like a dude not to mess with in person04:08
arosalesprobably safer over IRC04:08
thumperfamily has a trip planned for gold coast next winter04:08
bigjoolsarosales: yes he's good at body checking04:09
thumperbigjools: and foot stomping ;-)04:09
bigjoolsah yes :)04:09
bigjoolsthumper: cool, we could head there too and ruin it for you :)04:09
thumperarosales: just realised that SS is spread sheet, not secret service04:09
arosalesah yes, sorry about that04:10
bigjoolsarosales: I just realised I am going to miss the Monday of the sprint04:10
thumperarosales: did have me wondering why they cared...04:10
bigjoolsbut I was only planning on being there one day anyway04:10
arosalesthumper, lol04:11
arosalesbigjools, well at least you will be able to make it for a few days.04:11
bigjoolsthumper: so anyway yes, I am unlikely to be travelling anywhere for the forseeable future :/04:12
arosalesok fellas I am going to get some sleep.  Have a good day!04:12
axwgood night04:12
arosalesdavecheney, keep rocking the charm school, and may the juju force be with you.04:12
bigjoolsnn arosales04:13
thumperI was considering leaving the office and coming back later for the meeting04:45
thumperbut I can hear the kids not cleaning the kitchen04:45
thumperperhaps I'll just stay here for a bit04:45
=== thumper is now known as thumper-afk
davecheneyhttps://bugs.launchpad.net/juju-core/+bug/121253805:31
_mup_Bug #1212538: cmd/juju: deploy --to a non existent machine fails too late in the process <papercut> <juju-core:New> <https://launchpad.net/bugs/1212538>05:31
davechen2ywhat the heck is --format=constaints ?05:59
davechen2ywhat the heck is --format=constraints ?06:00
davechen2ymmm, love that legacy smell06:01
=== tasdomas_afk is now known as tasdomas
=== thumper-afk is now known as thumper
rogpeppemornin' all07:58
axwmorning rogpeppe07:59
mgzrogpeppe: can you review the trivial https://codereview.appspot.com/12768044/ please?08:41
rogpeppemgz: LGTM09:48
mgzhow go-idomatic would it be to do something like... range over an anon struct, in real code, rather than just for table tests?09:53
mgzit's the closest thing I have to the python idiom of say `for key in ('thing', 'other'): val = getattr(obj, key, None); if val is not None: ...`09:55
fwereadewallyworld_, ping09:58
wallyworld_heya09:58
fwereadewallyworld_, wondering about the deployer syslog change09:59
wallyworld_ah, i did an initial review but forgot to take another look09:59
fwereadewallyworld_, it's not immediately apparent how the unit logs will get to all-machines.log if we just make forwarding contingent on non-state-serveriness09:59
fwereadewallyworld_, but you probably know if/how it will work without me digging ;p10:00
wallyworld_you mean unit logs on state server machines?10:00
fwereadewallyworld_, yeah10:00
wallyworld_i must admit i didn't think that bit through as i was more concerned with stopping the loop10:01
wallyworld_i think it will just be a tweak to the syslog conf when deploying on state server10:01
wallyworld_but i'd have to look at the syslog docs10:02
wallyworld_to see the specs for a "append to file" module10:02
wallyworld_as opposed to a "forward to this port" module that we use now10:03
* wallyworld_ still hates that we support deploying directly to state servers10:03
* fwereade sympathises but doesn't think we can kill it yet10:05
fwereadewallyworld_, hmm, when we get onto the HA work we'll probably have to consider job changes10:06
wallyworld_yeah, likely10:06
fwereadewallyworld_, and we could perhaps then default to creating state server machines without JobHostUnits10:06
fwereadewallyworld_, but then I'm not totally wild about directly exposing machine jobs to the user10:07
fwereadeworth bearing in mid though10:07
wallyworld_when do we expose machine jibs to the usrr?10:07
fwereadewallyworld_, we'd have to if we wanted to keep a path to allow it10:07
wallyworld_sorry, i must have missed something10:08
fwereadewallyworld_, ah sorry10:08
fwereadewallyworld_, I think we have to allow that path, evil and crackful though it may be, to enable cheap operation even without containers10:09
fwereadewallyworld_, if we get containers everywhere the conflict disappears10:09
fwereadewallyworld_, but if we have containers in *most* places I think it'd be ok to disallow units on 0 by default10:09
wallyworld_fwereade: "allow that path" - not quite getting the context10:09
fwereadewallyworld_, allow JHU on machine 010:09
wallyworld_right10:09
fwereadewallyworld_, I think we might be able to gradually restrict it10:10
fwereadewallyworld_, but I suspect it will remain a valid (if distasteful) use case for the forseeable future10:10
wallyworld_well if we can deploy containers to machine 0 easily, then problem solved10:10
fwereadewallyworld_, yeah, but that depends on provider capabilities10:10
wallyworld_yeah, i realise :-(10:11
wallyworld_it was more wishful thinking10:11
rogpeppemgz: i'd need to see the actual code10:11
fwereadewallyworld_, but if we have "enough" container addresability support we might be able to switch off JHU on 0 by default -- but we'd need some way to reenable it in annoying contexts... hence some level of user exposure to machine jobs10:12
wallyworld_well maybe not Jobs per se - just allow users the ability to toggle the capability to host units from a semantic/logical perspective10:13
fwereadewallyworld_, yeah, indeed, I'm just worried that we'll end up with full control of machine jobs in a really ad hoc way10:17
fwereadewallyworld_, I'm just fretting uselessly really )10:17
wallyworld_i think you are - we would never expose jobs directly :-) just the abstract notion of "capability"10:17
mgzrogpeppe: in this case, I think I should actually just reuse an existing struct, and just not append if its lacking a value10:28
rogpeppemgz: i'm afraid i can't provide any useful input when i don't know the context :-)10:28
rogpeppefwereade: chat?10:34
fwereaderogpeppe, I'm starting to think that this connection just straight-up hates hangouts, can we do it by irc perhaps?10:34
rogpeppefwereade: it's just possible that if you *start* a hangout, it might be hosted somewhere more sensible for you10:35
rogpeppefwereade: although that's possibly not how they work at all though10:35
mgzrogpeppe: `bzr diff -c1646 lp:~gz/juju-core/ec2_addresses` then `bzr diff -c1647 lp:~gz/juju-core/ec2_addresses`10:35
mgzdoes gocheck have any composable matchery things10:53
mgz?10:53
mgzto do something like... c.Assert(aStruct, DeepEquals, ....actually, this doesn't make any sense in a go context, the types wouldn't match10:55
mgzthat makes checking a list of structs where you don't care about one field more annoying10:56
mgzall: will miss standup again as it's Thursday in town day11:03
fwereadeso, I'm going to try to join the standup hangout in a mo, but this connection seems to throw a fit whenever I do so11:29
fwereadeso if I'm not there don't wait for me11:29
natefinchrogpeppe, jam: standup?11:33
rogpeppenatefinch: good point11:33
dimiternfwereade, rogpeppe: relation ops https://codereview.appspot.com/1299004311:44
dimiternfwereade, rogpeppe: I forgot KeyRelation() - i'll be adding it11:49
dimiternfwereade: shouldn't I do that?11:58
dimiternrogpeppe, fwereade: poke :)12:19
rogpeppedimitern: i'm on it12:19
dimiternrogpeppe: thanks12:19
rogpeppedimitern: reviewed12:29
dimiternrogpeppe: cheers12:30
dimiternrogpeppe: didn't want to use the struct by value to avoid copying in stateEndpointToParams12:30
dimiternrogpeppe: does that apply?12:30
rogpeppedimitern: no12:31
dimiternrogpeppe: ok12:31
rogpeppedimitern: i mean, it will be copied, but the cost of that is irrelevant12:31
rogpeppedimitern: there's more cost from the allocation12:31
dimiternrogpeppe: :)12:31
dimiternrogpeppe: noted12:31
noodles775natefinch, sidnei: RE bug 1208504, I've got a fix (now that I've got an HP account to test) - it's pretty straight forward. Though unit-testing it is proving a little more difficult (the test double for openstack doesn't seem to have something similar to the ec2 double's SetInitialInstanceState).12:32
_mup_Bug #1208504: "error: no instances found" Post bootstrap on HP Cloud  <papercut> <juju-core:In Progress by michael.nelson> <https://launchpad.net/bugs/1208504>12:32
natefinchnoodles775: ahh, good.12:33
dimiternnoodles775: there is something more powerful in goose: ControlHooks12:36
dimiternnoodles775: take a look at ProcessFunctionHook and how it's used12:36
dimiternnoodles775: it allows you to return anything from a test double's method12:37
noodles775dimitern: hrm, I was looking at RegisterControlPoint but couldn't see how it can be used to change the actual state.12:37
noodles775dimitern: Ah? OK - I could only see how I could return an *error* for any method. Let me look again.12:37
dimiternnoodles775: what do you need? change the state of a started instance?12:37
noodles775dimitern: yep12:38
noodles775dimitern: I'm happy to look again though - I thought the ServiceControl was the only option.12:38
* noodles775 looks.12:38
dimiternnoodles775: in addition to returning the error, you have access to the nova object n12:40
noodles775dimitern: I tried that too (ie. doing sc.(novaservice.Nova) but got impossible type assertion: novaservice.Nova does not implement hook.ServiceControl (RegisterControlPoint method requires pointer receiver)12:42
dimiternnoodles775: try sc.(*novaservice.Nova) perhaps?12:42
* dimitern gtg - be back in a couple of hours12:44
noodles775Thanks dimitern, I'll try that.12:45
dimiternfwereade: one last poke for https://codereview.appspot.com/12990043/12:45
noodles775dimitern: so the conversion works, but there's not much exposed on Nova (like .servers :/). I'll look more closely.12:47
mgznoodles775: what's your current diff, out of curiosity?12:50
rogpeppefwereade: https://docs.google.com/document/d/1NRkTkZiVXcOL7wPQJ8GGxnW3YtPiwRQThTGNNT92HW4/edit?usp=sharing12:51
sidneifwereade: good morning! got a few reviews on https://codereview.appspot.com/12859043/ already, but waiting on your ack before merging12:53
noodles775mgz: https://code.launchpad.net/~michael.nelson/juju-core/1208504-post-bootstrap-hp-no-instances-found-try2/+merge/17989912:53
noodles775mgz: It is also possible to fix it without increasing the shortAttempt, but it would rely on us checking for HP specific status codes (ie. "BUILD(spawning)")12:54
noodles775mgz: For the various HP BUILD states, see http://docs.hpcloud.com/api/compute#ServerStates12:55
rogpeppefwereade: one thing i didn't mention: i was thinking of moving environs/{all,azure,dummy,ec2,local,maas,openstack} to environs/provider as the environs name space is getting really cluttered these days12:55
mgznoodles775: either of those approaches seems fine to me12:56
noodles775mgz: cool, thanks.12:58
fwereaderogpeppe, +1 to that13:30
cruejonesseems there was a juju upgrade in juju/stable today which removed 'juju' cmdline symlink?  anyone else experience this?13:30
fwereadesidnei, hmm, root-disk would make sense if we did make sure to allocate a suitably sized ebs volume for the 0 instance-store cases13:31
fwereadesidnei, but adding that seems likely to be non-trivial13:33
sidneifwereade: i don't understand what you're referring to there? we're using ebs instances and those all have an 8G root disk which can be resized on boot by passing the proper block device mapping.13:34
sidneii man, i don't understand the '0 instance-store' cases13:34
sidneis/man/mean13:34
fwereadesidnei, ah, I see -- but it seems a bit strange to be claiming 8G for every ec2 instance type13:36
fwereadesidnei, the implication is that you can't get anything on ec2 with more than 8G13:36
sidneifwereade: that's currently the case until we change goamz to allow passing a custom block device mapping yes.13:37
fwereadesidnei, ...and while I see your point that that's what you get for the root disk in each case, it rather seems that that is actually nothing to do with instance type13:38
fwereadesidnei, I may be too ec2 focused, but it seems very strange to be presenting (say) an m1.xlarge as having 8G rather than >1T13:38
sidneifwereade: as mentioned in my first reply, this is only for the root disk, not the additional ephemeral disks13:39
fwereadesidnei, OTOH the instance storage available is maybe somewhat irrelevant given that you need to know where it is to make use of it and the average charm does not13:40
fwereadesidnei, I don't suppose you know offhand whether it's possible to map root-disk cleanly to maas? dimitern, mgz, jam?13:41
fwereadeor azure? jtv, rvba?13:41
rvbaHi fwereade.13:41
sidneifwereade: i already added the azure mapping13:42
fwereadesidnei, <313:42
sidneifwereade: since the ebs root device (/dev/sda1) is resizable on boot, a proper follow-up branch would be to set the RootDisk to nil on the instance types and pass through the requested constraint via block device mapping to resize it to the requested size13:42
sidneiso for ec2 all instance types would match, and you would always get the size you requested on the constraint for the root disk13:43
fwereadesidnei, that would be *fantastic* and would basically negate my quibbles; how realistic is it in the near future?13:43
fwereadervba, in fact, you know maas too, right?13:44
sidneifwereade: very realistic, the required changes in goamz seem to be fairly simple to implement.13:44
rvbafwereade: I do, but I confess I'm not entirely sure what you're talking about right now :)13:44
fwereadervba, how trivial is it to ask for a machine with a particular amount of root disk space?13:44
rvbafwereade: the machines is installed using d-i so it's only a matter of passing the right config to d-i.13:45
rvbaI think it's something that smoser talked about a few months ago.13:45
fwereadesidnei, ok, I'll do a quick pass, but I'll be happy on the condition we do get followups addressing that issue13:46
fwereadervba, I don't recall that -- from a juju-core perspective, what would need to be done to hook up a rot-disk constraint for maas?13:46
fwereadeer root-disk13:46
sidneifwereade: ack. my priority list is landing this to unblock webops on openstack, then look at quick lxc-clone in local provider, then return and implement the block device mapping.13:47
fwereadesidnei, that sounds awesome -- would you add a juju-core bug and assign yourself please, so it doesn't get lost?13:48
sidneidefinitely13:48
rvbafwereade: hum, actually i was talking about a slightly different thing: I was talking about configuring d-i so that the partitions follow a certain plan.13:48
fwereadervba, I thought you might be, I didn't quite follow what you said at first :)13:49
rvbafwereade: okay, so the disk size is something that MAAS collects from the lshw output (same as RAM capacity) so it's probably only a matter of exposing that as another available constraint.13:50
fwereadervba, cool, so we can basically make it a straight passthrough13:51
rvbaYes.13:51
sidneihttps://bugs.launchpad.net/juju-core/+bug/121268813:51
_mup_Bug #1212688: ec2: pass root-disk constraint via block device mapping <juju-core:Triaged by sidnei> <https://launchpad.net/bugs/1212688>13:51
fwereadervba, fantastic, tyvm13:51
rvbawelcome13:51
fwereadesidnei, great, thanks13:51
sidneii'll file one about maas too13:52
fwereadesidnei, you read my mind :)13:58
fwereadesidnei, LGTM13:59
fwereadesidnei, thanks very much13:59
sidneii'll sneak in a change to ignore and log root-disk on maas for now, just like it does for cpu-power13:59
sidneii wonder what to do for local provider13:59
mgzsidnei: ignoring there seems sensible as well14:00
sidneiok14:01
sidneiseems local just passes through all constraints without even looking at them14:06
fwereadesidnei, yeah, there'll be more to do wrt containers in general too but I don;t think that needs to be on your plate14:08
sidneifwereade: natefinch had a couple interesting comments on his review, which are mostly stylistic issues, i wonder what is your opinion.14:16
sidneihttps://codereview.appspot.com/12859043/#msg1114:16
mgzsidnei: one final rename in state/machine.go and lgtm.14:17
fwereadesidnei, I'm not too bothered by the overwriting of results on error, IMO any error renders the whole object trash anyway14:17
sidneimgz: ha! good catch.14:18
fwereadesidnei, but, whoops, I completely missed the "" case, and I need to reload state to remember14:18
fwereadejust a mo14:18
mgzfwereade is currently creating a multi-gig swapfile14:19
fwereadesidnei, I think that ""->0 is correct -- the implication is "I don't care" rather than "fall back to environment constraints"14:21
fwereadesidnei, since 0 matches everything it's fine -- in arch, for example, it needs to be handled a little differently but again "" implies "I don't care", overriding whatever env defaults may exist14:22
fwereadesidnei, to fall back you just don;t specify14:22
mgzthe old constraint case was "blah=" meaning "use the default" and "blah=any" meaning "unset the constraint"14:23
mgzso, "mem=" would ask for a machine with 512mb or whatever, and "mem=any" wouldn't check ram at all14:24
fwereademgz, yeah; but IIRC there was general agreement that juju-level defaults were madness and horror, and use of a special string was just too unpleasant14:29
fwereademgz, so essentially the "default" decision is now just left up to the providers14:29
mgzfwereade: indeed14:30
sidneithere were missing tests for rootdisk in findCleanMachineQuery, added those and verified working too.14:31
natefinchfwereade, mgz, sidnei:  maybe change the code to have "" return early, and make it more obvious that it's purposeful?14:37
fwereadenatefinch, mgz, sidnei: not sure it helps a great deal tbh, but happy to follow consensus14:38
natefinchpossibly even with a comment? :)14:38
fwereadenatefinch, mgz, sidnei: a named "doesntMatter" const might be even better14:39
fwereadenatefinch, mgz, sidnei: not that that's a *good* name14:39
fwereadenatefinch, the trouble with a comment vs a name is the necessity of repeating it14:40
natefinchfwereade: yes, a name is as good as a comment. Mostly I just wanted it to be clear that this is the intended effect, and not just happenstance from the way it was written14:41
fwereadenatefinch, +1 indeed14:41
natefinchfwereade: especially because once it's out there, there's going to be 1000 people who have discovered the happenstance and now rely on that functionality14:42
fwereadenatefinch, quite so14:42
natefinchor just one really loud person14:42
natefinchfwereade: do you have a suggestion for a bug for me to work on. The one John mentioned to me yesterday seems taken care of.  I got a bunch of suggestions from arosales, but I'm not really sure on the relative priority of them14:44
fwereadenatefinch, I can *certainly* find you a bug if there's nothing addressability-related you can do with mgz14:44
natefinchfwereade: I'd be happy to help mgz, but it seems it's a little difficult to split off pieces14:47
mgznatefinch: so, we still need to land the remaining ec2 bits14:48
mgzthen do basically the same for azure/maas, which are even simpler14:48
natefinchmgz: I like simple14:50
mgzso, azure is nice and easy, no gwacl changes needed14:53
mgzthe structs built from the xml have some address details in them, that just wants exposing under the Addresses() method as we did for ec214:53
fwereadenatefinch, mgz: excellent14:55
fwereadenatefinch, I have a couple that aren't so simple if mg thinks it's likely that he'll be unable to use yu for a day or 2 at any stage14:56
fwereadenatefinch, but I'd be interested to know arosales' requests, because he should have a good handle on the ones that are really upsetting charmers, and they are an important audience14:57
natefinchfwereade: https://bugs.launchpad.net/juju-core/+bug/121057614:58
_mup_Bug #1210576: Show exposed URL after exposing and on command 'show' <papercut> <juju-core:Triaged> <https://launchpad.net/bugs/1210576>14:58
natefinchfwereade: https://bugs.launchpad.net/juju-core/+bug/120162814:59
natefinchfwereade: https://bugs.launchpad.net/juju-core/+bug/121059314:59
_mup_Bug #1210593: Show the user all current running environments <juju-core:Triaged> <https://launchpad.net/bugs/1210593>14:59
arosalesfwereade, that is the one we discussed at the sprint15:00
mgznatefinch: see RoleInstance in xmlobjects.go in gwacl for starts15:00
fwereadearosales, I think I can split a simple and useful one out of the first one15:00
natefinchmgz: cool.. what branch are you working on, should I just check it out and work on that one as well?15:01
fwereadearosales, `juju <verb-tbd> wordpress/0` => open browser if service exposed/complain if not15:01
fwereadearosales, the wait-for-some-unit-to-be-exposed functionality is a little tricky15:01
mgzniemeyer: thanks for the review15:01
arosalesfwereade, ya the first "juju show" I think has more utility15:02
mgznatefinch: a fresh branch should be the right thing, shouldn't be any conflicts15:02
natefinchmgz: cool15:02
mgznatefinch: I'm going to wrap up the ec2 bits and get them landed15:02
fwereadearosales, listing running environments is a good one, but I think it'll have to wait a bit until rog/ian's work on environments has progressed a little15:02
natefinchmgz: how do I do that branch switching you were doing?15:02
natefinchmgz: bzr help switch was not very helpful :)15:02
mgz`bzr switch trunk` to get you onto trunk again (or create trunk) `bzr pull` for latest code, `bzr switch -b new_feature` to switch to a new feature branch15:03
arosalesfwereade, ack. The thought there was I am a new juju user I tried to deploy a few times in AWS not I am not certina if I have instances spending my money15:03
mgzwhere 'new_feature' is an appropriate name of some kind15:03
fwereadearosales, I think that if I was mistrustful of juju I'd be checking the console directly -- and that environments can be removed from environments.yaml anyway, rendering the functionality incomplete at best -- so I'm not 100% sure of the utility15:05
fwereadearosales, I understand the intent15:05
natefinchmgz: bzr switch trunk says bzr: ERROR: Not a branch: "/home/nate/code/src/launchpad.net/trunk/"   when I do it from code/src/launchpad.net/juju-core (which is targetted at trunk)15:06
fwereadearosales, and hopefully a clear way of listing will land soon15:06
arosalescool, and I saw you mentioned the "show" command may be a bit tricky, but I have _full_ confidence in juju core devs :-)15:06
mgznatefinch: you need a new branch is you're changing the workflow you're using probably15:08
mgz*if15:08
mgzor use -b if you've not switched to that mode yet15:08
mgz`bzr branches` should list several things15:09
mgzif it just says (default) you're not using colocation yet15:09
natefinchmgz: ok, cool, I get it15:11
arosalesmramm, per the cross team meeting seems a lot of folks are hitting https://bugs.launchpad.net/juju-core/+bug/118812615:17
_mup_Bug #1188126: Juju unable to interact consistently with an openstack deployment where tenant has multiple networks configured <canonistack> <openstack> <serverstack> <juju:New> <juju-core:Triaged> <https://launchpad.net/bugs/1188126>15:17
arosalesfwereade ^15:18
fwereadearosales, hmm, thanks for the heads up15:18
arosalesfwereade, issue hit by IS, Server, and Lanscape15:18
fwereadearosales, yeah, there's no way that's wishlist15:19
fwereadearosales, tyvm15:19
arosalesfwereade, could you update the importance?15:19
fwereadearosales, just made it high15:19
arosalesfwereade, thank you15:19
mgzthat bug is too much of a hydra15:19
fwereademgz, I suspect this interacts with what you're doing15:19
mgzeveryone commenting means something else by it15:19
mgzjames' would be fixed by using the neutron api, or fixing openstack to be less insane about how it selects networks, or making cloud-init understand multiple networks15:20
mgzelmo's they worked around by not doing that in the end15:20
mgzand I don't even know what the issue the landscape guys have is really15:21
natefinchthe fix is obviously to have juju disable all networks it isn't using ;)15:21
fwereadehaha15:21
arosalesother juju core bugs that were surfaced in the cross team meeting, fwiw15:23
arosaleshttps://bugs.launchpad.net/juju-core/+bug/117033715:23
_mup_Bug #1170337: maas provider: missing support for maas-specific constraints <openstack> <juju-core:Triaged> <https://launchpad.net/bugs/1170337>15:23
arosalesand15:23
arosaleshttps://bugs.launchpad.net/ubuntu/+source/juju-core/+bug/120087815:23
_mup_Bug #1200878: Upgrade breaks existing pyjuju deployment <apport-collected> <papercut> <regression-release> <saucy> <juju-core:New> <juju-core (Ubuntu):Triaged> <https://launchpad.net/bugs/1200878>15:23
mgzif cloud-init doesn't bring up all networks, we're kinda screwed. with the current changes, we can try multiple addresses, or be smarter at selecting which one to use, but giving they're selected by netron UUID it's a little painfule (and fragile) to do 'correctly' in juju15:23
mgzwe'd need to annotate the addresses in state with their internal id (after querying that over the netron api), and sort the list in the same fashion openstack does when selecting a preferred address15:24
fwereademgz, ouch, that sounds fragile indeed15:25
fwereademgz, how bad would it be to try all of them? it looks like there's a TODO in the code for that already15:26
mgzwe can try all of them, the fun part is then what do we tell charms via the legacy api, which expect one canonical address?15:26
arosalesmgz, (brainstrom) would it be helpful to pass cloud-init a param to init all detected networks?15:26
mgzwe'd need to predetermine which work, and mark some as broken15:27
mgzyeah, cloud-init should learn how to bring up multiple networks15:27
mgzthen you can just select any15:27
* arosales asks smoser in #juju15:28
fwereademgz, or just not record the ones that don;t work?15:29
* dimitern is bacl15:38
dimiternback*15:38
dimiternfwereade: https://codereview.appspot.com/12990043/ please?15:38
fwereadearosales, lp:1200878 is indeed awful15:38
fwereadedimitern, sorry; on that now15:38
arosalesfwereade, ya mramm said there would be a story there. juju-core just needs to communicate what that store is with folks doing packaging (james page) and in general. When the story is ready.15:40
fwereaderogpeppe, dimitern: re the bug above: shouldn't LoadState be detecting pyjuju environments?15:40
rogpeppefwereade: it won't get that far15:40
rogpeppefwereade: it's failing to create the config15:41
dimiternfwereade: yeah, it's more than what danilos did it seems15:41
fwereaderogpeppe, search for "no CA cert"15:41
fwereaderogpeppe, checks in LoadState would let us catch that problem15:42
rogpeppefwereade: hmm, yes, you're absolutely right15:42
fwereaderogpeppe, knowing exactly how to handle it is maybe trickier -- is it reasonable to assume that someone in this situation *must* have juju 0.7 installed15:42
rogpeppefwereade: pyjuju 0.7?15:43
mrammfwereade: arosales: here's the release schedule: https://wiki.ubuntu.com/SaucySalamander/ReleaseSchedule15:43
rogpeppefwereade: is there anything in the py juju state info file that marks it out as py juju ?15:43
mrammwe need to think about what we do for it.   We will have a new cloud archive tools pocket, so I'm not sure exactly how critical it is -- but what we put into Saucy should be pretty stable if we can manage it15:44
hazmatrogpeppe, state info  file?15:44
fwereaderogpeppe, danilos did work to detect exactly this situation15:44
hazmatrogpeppe, the unit state  files are completely different between the two15:44
fwereadehazmat, this is the file in provider storage pointing to the state instance15:44
hazmatfwereade, ah15:44
fwereaderogpeppe, LoadState having to read two things to determine what sort of env it's talking to is fine by me15:45
mrammanyway, thie release stuff is something for us to talk through next week15:45
fwereaderogpeppe, alternatively, just sticking another key in that file would allow us to differentiate going forward15:45
rogpeppehazmat: they're both in the same provider-state file aren't they?15:45
hazmatrogpeppe, they are but they have different keys for state servers15:46
rogpeppehazmat: cool15:46
mgzrogpeppe: can I have a stamp on <https://codereview.appspot.com/12765043/> please? also, I'm assuming the landing process is just lbox submit still?15:46
hazmatrogpeppe, pyjuju uses 'zookeeper-servers', juju-core uses 'state-servers'15:46
rogpeppefwereade: i think it could just look for len(StateInstances) == 015:46
rogpeppefwereade: or, better, StateInstances==nil15:46
rogpeppefwereade: and assume that if that's the case, it's a pyjuju-created file15:46
hazmater... 'state-instances'15:46
rogpeppehazmat: yeah15:47
fwereaderogpeppe, better yet15:47
rogpeppemgz: looking15:47
arosalesmramm, ack. I'll follow up with david c. when he returns.15:48
rogpeppemgz: reviewed15:48
mgzrogpeppe: I also updated the other goamz proposal again, sorry for the bother :)15:49
rogpeppemgz: np15:50
hazmatmgz, its not really about cloud-init understanding the networks afaics, its about juju understanding the right network to use15:50
hazmatafaics15:50
mgzokay, let's go in here :)15:51
mgzhazmat: in james' case, that's true. but the intention of the IS migration was that both addresses would work for a time15:51
mgzthere's nothing on the juju side that I can see we can do to enable that.15:51
hazmathmm.. so there's a net device attached to the instance, with an ip allocated from openstack, but nothing for it on the host since its not configured/up there?15:53
hazmats/host/instance15:53
hazmatyeah. cloud-init doing the net dance sounds sane, but then we come back to juju handling the multiple ip addresses/net devs.. and using the right one for its own usage.15:55
mgzhazmat: yes, that's my understanding from agy's postmortem email to canonistack-announce15:55
fwereadedimitern, reviewed15:57
hazmatre merging to juju-core have the instructions changed from just $ lbox submit15:58
hazmatoh.. tarmac15:59
mgzhazmat: yup, you can use lp:rvsubmit bzr plugin if you like the submitty workflow16:03
rogpeppemgz: reviewed16:04
=== tasdomas is now known as tasdomas_afk
mrammarosales: we should also add curtis from orange squad to the release planning discussion16:09
arosalesmramm, ack16:17
dimiternfwereade: thanks!16:17
rogpeppego doc is going :-( https://codereview.appspot.com/12974043/16:25
rogpeppefwereade: do you have any idea why, in the local provider, environProvider.Open sets AgentVersion in the config?16:27
smosermgz, i'm interested in knowing what the question and solutoin was for networking things.,16:28
fwereaderogpeppe, I *suspect* that it's part of thumper's hackery wrt upload-tools vs sync-tools, but I'm not directly familiar with the code in question16:30
arosalesmgz, smoser is referencing the question I surfaced in regards to bug 1188126 that you and hazmat were discussing ealier16:30
_mup_Bug #1188126: Juju unable to interact consistently with an openstack deployment where tenant has multiple networks configured <canonistack> <openstack> <serverstack> <juju:New> <juju-core:Triaged> <https://launchpad.net/bugs/1188126>16:30
rogpeppefwereade: ah, i thought you were the principal reviewer16:30
rogpeppefwereade: what's the specific hackery you're talking about?16:31
mgzsmoser: the solution for one of those cases, was IS just not doing that for the lcy02 network migration16:31
mgzright, I have to run now I'm afraid16:31
fwereaderogpeppe, he abuses upload-tools pretty badly to mimic sync-tools -- there's some layer breaking around juju bootstrap16:31
fwereaderogpeppe, I managed to convince him it was crazy at iom16:32
* rogpeppe should have spent more time looking at that code16:32
fwereaderogpeppe, but a fix has as usual been put off until it actively hurts us -- it may be you're in that situation now16:32
fwereaderogpeppe, fwiw the motivation for landing it as was was, well, we needed the local provider stat, and the effects seemed to be localized16:36
rogpeppefwereade: yeah, istr that16:36
rogpeppefwereade: i've just realised that if Prepare does all the work, then Bootstrapper is unnecessary. we can just have Prepare(cfg *config.Config) (Environ, error)16:37
fwereaderogpeppe, awesome, ++simplicity16:38
* rogpeppe undoes a load of stuff16:38
* fwereade sympathises16:39
* rogpeppe is actually very happy about that16:41
rogpeppefwereade: how about this as a suggestion: the environment file contains *all* attributes that are not explicitly mentioned in the environments.yaml file (or later, the juju.conf file)?16:52
rogpeppefwereade: hmm, that's simple to implement (and results in a nicely predictable user model - stuff in the home directory is only consulted the first time an environment is prepared) but it will result in more attributes than we strictly need.16:55
dimiternfwereade: updated https://codereview.appspot.com/12990043 - PTAL16:57
fwereaderogpeppe, I'm not immediately keen tbh, I feel like every attribute we put in there that's not strictly necessary is likely to end up a dependency of some sort16:57
fwereadedimitern, looking16:59
rogpeppefwereade: the way i'm seeing it is that the environment file binds the attributes, so that subsequent operations have a consistent view of them, rather than looking around in the home directory for authorized-keys, for example16:59
fwereaderogpeppe, will we ever want to look up authkeys except at bootstrap time?17:00
fwereaderogpeppe, those should be packaged up, sent to the server, and forgotten, I think17:01
rogpeppefwereade: no - quite a few attributes are only useful in the interval between preparation and bootstrap17:01
fwereaderogpeppe, authkeys in particular is not useful *until* bootstrap, is it?17:02
rogpeppefwereade: yeah, but it seems a bit odd to have keys that are bound at different times. perhaps that's just me though. i'm still thinking it over.17:04
fwereaderogpeppe, authkeys is crack anyway17:06
fwereaderogpeppe, if a key represents anything it's a user17:06
fwereaderogpeppe, the only reason it was ever in the environment is because we were trying to get away without a user model :/17:06
rogpeppefwereade: users are often represented by principals a.k.a. private keys17:07
rogpeppefwereade: so authkeys doesn't seem too bad to me17:07
fwereadedimitern, wrt RelationInfo I was just asking whether RelationResult{RelationInfo, Error} might be cleaner -- it's probably not, if it doesn't make you immediately say "YEAH!" then I wouldn't bother17:08
fwereaderogpeppe, I'm not saying we shouldn't have authorized keys -- just that they shouldn't be on the environment17:08
dimiternfwereade: I didn't get what were you referring to as RelationInfo?17:08
fwereaderogpeppe, the env should have users, and those users should themselves have authkeys17:09
rogpeppefwereade: i guess we'll still want to allow ssh access to the bootstrap node17:09
fwereadedimitern, just struct {Key, Id, Endpoints}17:09
fwereaderogpeppe, I can well imagine cases in which you don't want any ssh access enabled anywhere by default17:09
rogpeppefwereade: do you mean "the *state* should have users" ?17:09
dimiternfwereade: ah, there is a RelationInfo in params already, and it's just Key and []Endpoint17:09
dimiternfwereade: used by the allwatcher17:10
rogpeppefwereade: well, that's easy enough to arrange - just provide an invalid authorized key :-)17:10
fwereaderogpeppe, ha, yeah17:10
fwereadedimitern, hmm17:10
fwereadedimitern, I reckon that one ought to have id in there as well, really17:11
dimiternfwereade: I can add it, but I'll need to change a bunch of watcher tests17:11
fwereadedimitern, let's not actually17:12
dimiternfwereade: I'm trying it now17:13
fwereadedimitern, I'm not willing to say "these two things in these two contexts are actually the same" because I think they're probably not -- the uniter has no reason to know the remote endpoint17:13
fwereadedimitern, and while the allwatcher surely should include the relation id, that's not what we're concerned with here17:14
fwereadedimitern, my point about LocalEndpoint is just that there's no reason for the uniter to know what service it's having relations with17:14
fwereadedimitern, so why send that information?17:14
fwereadedimitern, when we call Relation we can trivially find out the service the connected unit is a member of, and get that endpoint directly and send that down alone17:15
fwereadedimitern, am I making any sense there?17:15
dimiternfwereade: sorry, not really17:16
dimiternfwereade: are you saying we don't need a "all endpoints" field at all?17:17
fwereadedimitern, yeah17:17
dimiternfwereade: then, we'll need an Endpoint() call for each service name, right?17:17
fwereadedimitern, then the Relation type we expose to the uniter literally just has an Endpoint(no args) method17:17
fwereadedimitern, because any uniter.Relation only needs to know one, and that's the one the API will be guaranteed to send anyway17:18
dimiternfwereade: how about that case when we call rel.Endpoint(u.unit.ServiceName()) ?17:18
fwereadedimitern, it's always u.unit.ServiceName -- we always know what that is ahead of time17:19
fwereadedimitern, so we just call Endpoint(), and that gives us the only endpoint we have a right to know about17:19
rogpeppedimitern: reviewed17:19
dimiternrogpeppe: cheers17:19
dimiternfwereade: so what do we return on Relation() API call? only endpoints for our unit-tag?17:19
dimiternfwereade: so we need both rel-tag and unit-tag to call the API Relation() methods17:20
fwereadedimitern, that would be reasonable, I think, I had been imagining we could figure it out from knowing the connected entity, but that's probably sleazy/lazy/short-sighted17:22
dimiternfwereade: ok, so I'll define a params.Relations, []params.Relation which has Relation and Unit string fields, expected to be the respective tags17:23
dimiternfwereade: and then I can use the same params type for Enter and LeaveScope, Settings, etc.17:23
fwereadedimitern, that sgtm17:23
dimiternfwereade: ok then17:23
fwereadedimitern, thanks, sorry for the hassle17:23
* fwereade bbl17:25
dimiternrogpeppe, fwereade: updated https://codereview.appspot.com/12990043/ again - I hope this time I managed to do all suggestions18:06
dimiternrogpeppe, fwereade: if it looks ok, I'll land it18:12
sidneiuhm, anyone around for some go advice? niemeyer?20:20
niemeyersidnei: Here.. just a sec.. finishing a meeting20:20
sidneiniemeyer: golxc has a Container interface with Clone(name), now i need to change that to Clone(name string, snapshot boolean, backingStore BackingStore, templateArgs ...string), but i guess to not break bw-compat i would need to create a new interface?20:21
niemeyersidnei: Hmm20:31
niemeyersidnei: There are lots of details around such a change.. hard to give good advice without much info20:31
niemeyersidnei: In general, yes, if you drop a method that satisfies an interface you don't satisfy th einterface anymore20:31
sidneiniemeyer: and i can't add a new method to the same interface as anyone that should be implementing that interface will suddenly not be implementing it anymore right?20:33
niemeyersidnei: Exactly20:42
niemeyersidnei: But that's easy to solve20:42
niemeyersidnei: You can just define another interface that contains the new method20:42
sidneiniemeyer: and embed the old interface?20:49
niemeyersidnei: Not necessarily20:49
niemeyersidnei: If they are alternatives to each other, they can be independent20:49
sidneiuhm, they are not alternatives, the only difference is the new method, all the other existing methods are still required20:50
hallyn_hm, 'juju bootstrap' claims my ec2 environment is already bootstrapped.  (it's not)21:30
thumperhallyn_: it could be that the "special bootstrap file" has been writted to the storage21:31
thumperhallyn_: try destroy-environment then try again?21:31
thumperhallyn_: if it still says it is bootstrapped, then it is probably a bug21:31
thumpercould well be a bug anyway21:31
hallyn_thumper: aaah!  that worked.  where is that special file?21:32
thumperhmm...21:32
* thumper looks at the code21:32
hallyn_thumper: thanks!21:32
niemeyersidnei: Sorry, system crashed badly21:32
hallyn_thumper: no nm, don't waste your time on that right nwo :)21:32
niemeyersidnei: So the old method is required even for those implementing the new method?21:32
sidneiniemeyer: nope, but all the other old methods in the interface are.21:33
thumperhallyn_: "provider-state"21:33
thumperhallyn_: it writes the state instance id there I think21:33
hallyn_thumper: in what dir?  that didn't exist in my ~/.juju21:34
thumperhallyn_: in the root of the private storage I think21:34
hallyn_'the private storage'?21:34
thumperin ec2 speak, the private bucket21:36
thumperwe use "storage" internally21:36
thumperanyone know where we are re ARM versions?21:41
sidneihallyn_: around?22:01
hallyn_sidnei: yup22:02
sidneihallyn_: heya, getting the faster lxc-clone into juju, hitting a small roadblock22:02
sidneihallyn_: http://paste.ubuntu.com/5990680/22:02
hallyn_sidnei: does /var/log/juju exist in the container?22:03
sidneihallyn_: if that's meant to be /var/lib/lxc/sidnei-local-machine-1/delta0/var/log/juju, then no22:04
sidneii guess i should create that in the base template anyway22:04
hallyn_sidnei: in delta0, or in the underlying rootfs (whichever container that comes from)22:04
hallyn_sidnei: what does 'grep rootfs /var/lib/lxc/sidnei-local-machine-1/config' give?22:05
sidneilxc.rootfs = overlayfs:/var/lib/lxc/sidnei-local-precise-template/rootfs:/var/lib/lxc/sidnei-local-machine-1/delta022:05
hallyn_sidnei: ok, then /var/lib/lxc/sidnei-local-precise-template/rootfs/var/log/juju existing would also suffice22:06
hallyn_but yeah you can't mount to a nonexisting dir22:06
sidneihallyn_: ok, trying again.22:06
hallyn_\o22:06
hallyn_haven't had time today, but can't wait to try out the owncloud charm :)22:06
hallyn_(using lxc)22:07
sidneithumper: did you see my question to gustavo above? do you have any ideas?22:15
sidneithumper: need to change the signature of golxc Clone() to pass extra args, but i dont want to break bw compat22:15
thumpersidnei: which one?22:15
thumpersidnei: well, we don't use the Clone method22:16
thumpersidnei: so you won't break juju-core22:16
thumperand I don't know of anyone else using it22:16
thumperso go for it22:16
sidneilol wut22:17
sidneiok22:17
sidneithumper: https://code.launchpad.net/~sidnei/juju-core/lxc-clone-with-overlayfs/ and https://code.launchpad.net/~sidnei/golxc/clone-with-backing-store/ is what i have so far, it's getting pretty far then blowing up in cloud-init: http://paste.ubuntu.com/5990730/22:19
thumpersidnei: what are the bits leading up to that?22:21
sidneithumper: following the steps from smoser, create a base template with no userdata, then lxc-clone with userdata, then lxc-start22:25
thumpersidnei: so not running a juju-command22:25
sidneithumper: yes, as a juju command with the above two branches22:25
sidneiso bootstrap then juju deploy ubuntu22:26
thumpersidnei: well, it looks like the upstart job isn't being created in the userdata22:26
sidneiit should be, i just moved userdata from lxc-start to lxc-clone, without changing anything22:27
sidneithumper: here's the generated userdata: http://paste.ubuntu.com/5990758/22:30
sidneioddly /var/lib/lxc/sidnei-local-machine-1/delta0/etc/init/jujud-machine-1.conf exists22:33
thumpersidnei: hmm, sorry, no idea right now22:34
thumperhmm...22:35
thumperoverlay problem??22:35
sidneimebbe22:35
sidneigoing to try again shortly22:35
sidneiodd, the file is there inside the container after ssh in22:40
sidneibut upstart doesn't know about it22:40
sidneiha, kill -HUP 1 to the rescue22:47
bigjoolsword up22:51
* sidnei waves to bigjools22:51
bigjoolshey sidnei22:52
bigjoolshow's the twins?22:52
sidneibigjools: they're doing great. though staying at home this week because it's freezing cold outside and they were coughing heavily over the weekend, after 2 weeks of antibiotics. :/22:55
sidneiso a little more fun than usual on my afternoons22:55
sidneibigjools: still at the hospital?22:56
thumpersidnei: IIRC I overheard some talk about overlayfs not working well with inotify22:56
bigjoolssidnei: thankfully no22:56
sidneithumper: indeed, smoser on that email thread that you started. this is bound to make things very interesting. i replied.22:57
thumperbigjools: can I get you to boot up your maas?22:57
bigjoolsthumper: sure.  /me needs to get ipmi working on the server node22:58
* thumper pretends to know what bigjools is talking about22:58
sidneibigjools: great to hear you're out22:58
bigjoolsthumper: it would mean I could turn it on without getting out my seat :)22:58
bigjoolssidnei: thanks man22:58
sidneithumper: so kill -HUP 1 does the trick, booted a couple more units without problem22:59
bigjoolsthumper: I need to dist-upgrade my saucy maas server if you're ok with that?23:05
thumperbigjools: yep23:06
bigjoolsok - it will probably take down the appserver briefly23:06
thumperbigjools: if you can tell me when it is up again, that be swell :)23:15
sidneithumper: https://code.launchpad.net/~sidnei/golxc/clone-with-backing-store/+merge/180444 https://code.launchpad.net/~sidnei/juju-core/lxc-clone-with-overlayfs/+merge/180445 both wip, will do more tests tomorrow23:15
thumperkk23:15
bigjoolsthumper: ok23:15
bigjoolsthumper: try in ~15 minutes23:16
bigjoolsor more to the point, ping me if I've not poked you by then23:17
thumperkk23:19
thumperbigjools: says 102 packages can be updated23:32
thumperbigjools: want me to update them?23:32
bigjoolsthumper: it's upgrading already23:32
thumperoh23:32
thumperok23:32
bigjoolsrun top and you will see the disk getting hammered23:32
bigjoolsah the joys of a development release, package upgrade failures23:33
thumper\o/23:38
thumpersystem restart required23:38
thumperwanna bounce it?23:38
thumperbigjools: ^?23:39
bigjoolsthumper: not yet23:40
bigjoolsmysql is stuck23:40
thumperkk23:41
thumperso I should wait before I boot some maas nodes?23:41
bigjoolsthumper: yes, I need to reboot in a moment23:41
thumperkk23:41
* thumper afk for lunch and haircut23:47
bigjoolsthumper: it's up23:50
arosalesany folks know here if juju does a log rotate in 1.13 >23:56
arosalesor should I file a bug23:56
davecheneyarosales: i think it *sohuld* log rotate23:57
davecheneycertainly for all-machines.log23:57
davecheneywallyworld_: committed that23:57
wallyworld_i didn't do the rotation bit23:57
arosalesokay that came up in #juju not sure if it was address in 1.x juju23:57
bigjoolshopefully it's just re-opening the log on a sighup?23:59
davecheneybigjools: doubt it23:59
davecheneydunno what loggo does23:59

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