[08:55] <rog> mornin'
[09:09] <koolhead11> hi all
[09:12] <mpl> 'lo rog, koolhead11
[09:13] <koolhead11> how are you mpl
[09:17] <mpl> fine enough, thank you.
[09:27] <sanderj> Do anyone know if the juju openstack version have a webinterface for managing vm's? something like horizon?
[09:28] <koolhead11> sanderj: no it does not
[09:29] <sanderj> :(
[09:32] <koolhead11> sanderj: horizon is too new and because of rapid development packaging it becomes difficult. am sure once Essex comes you will have it all :D
[09:33] <uksysadmin> you promise koolhead11 ? ;-)
[09:34] <TeTeT> I thought dashboard is the openstack web management console?
[09:42] <sanderj> koolhead11, will it be horizon which will be the userinterface?
[09:51] <uksysadmin> sanderj, Horizon is the Web UI of choice for managing a private OpenStack cloud environment
[09:52] <uksysadmin> there are alternatives though
[09:52] <uksysadmin> that one is one of the projects under the OpenStack banner though
[09:53] <koolhead11> uksysadmin: +1 :D
[09:54] <uksysadmin> I use Hybridfox under Firefox - nice way of managing multiple clouds (although there is no direct connection between your private and public cloud per se)
[09:55] <uksysadmin> It isn't closely knitted to OpenStack though like Horizon - but functional enough if you manage a small private OpenStack cloud and a small amount of public instances
[09:55]  * koolhead11 smiles
[09:56] <sanderj> I've tried to set up horizon, without luck.
[09:56] <uksysadmin> it is a pain in the ass - in fact I've just posed a q in #openstack on the best way of installing it
[09:56] <sanderj> Unable to log in, just get directed to some nova url
[09:56] <uksysadmin> currently it seems the best way is manually through bzr
[09:57] <koolhead11> uksysadmin: horizon is back on bazar?
[09:57] <uksysadmin> sanderj, iirc there is some issue with authentication - something to do with deprecated auth
[09:57] <uksysadmin> I thought it always was, koolhead11 ?
[09:58] <koolhead11> uksysadmin: no they moved everything to github
[09:58] <uksysadmin> ah - its in git - not bzr
[09:58] <koolhead11> uksysadmin: you have to select correct branch
[09:58] <koolhead11> :P
[09:58] <uksysadmin> there's a fine art in selecting the correct branch
[09:58] <uksysadmin> the point is that it shouldn't be hard
[09:59] <koolhead11> hmm, i am not touching horizaon now
[09:59] <koolhead11> waiting for essex
[09:59] <koolhead11> :P
[10:00] <uksysadmin> yeah I gave up too
[10:00] <uksysadmin> its good for showing demos to team leads and C level execs though - they expect nice interfaces
[10:03] <sanderj> Yeah.. That's why I want it up and running..
[10:04] <sanderj> uksysadmin, in which component is it an issue with authentication?
[10:05] <uksysadmin> There was something I needed to change in /etc/nova/api-paste.ini
[10:05] <uksysadmin> see the NOTE sections
[10:05] <koolhead11> you need keystone running too
[10:05] <uksysadmin> BUT - I've not looked at Horizon for a while
[10:06] <sanderj> I got keystone running
[10:07] <sanderj> which horizon branch should I select?
[10:08] <koolhead11> diablo/stable
[10:12] <TeTeT> is horizon sort of the middleware below dashboard?
[10:13] <koolhead11> :P
[10:13] <koolhead11> dashboard to horizon
[10:13] <koolhead11> TeTeT: no they have renamed
[10:13] <TeTeT> ah, thx koolhead11
[10:17] <sanderj> koolhead11, I choose nova trunk
[10:17] <sanderj> We're not running diablo
[10:23] <niemeyer> Yo all!
[10:24] <koolhead11> hola niemeyer
[10:24] <koolhead11> sanderj: you can use the stackx code than
[10:24] <koolhead11> uksysadmin: is it called stackx or what
[10:25] <uksysadmin> what's stackx?
[10:26] <koolhead11> uksysadmin: i think that bash script for rackers for one step install
[10:26] <uksysadmin> thought this was a juju channel? bash scripts not needed! ;-)
[10:43] <rog> niemeyer: hi!
[10:44] <niemeyer> rog: Hey!
[10:44] <niemeyer> rog: Good timing.. looking at cloudinit right now
[10:45] <rog> niemeyer: cool.
[10:45] <rog> niemeyer:  if you could have a look at go-juju-ec2-operations that would be nice too...
[10:47] <niemeyer> rog: Yeah, I'll clean everything up today
[10:48] <rog> niemeyer: BTW i'm not quite sure how i managed all.bash to appear twice
[10:49] <rog> niemeyer: i muddled up something and confused lbox i think
[10:49] <niemeyer> rog: I was curious as well, but not a big deal
[10:49] <niemeyer> rog: submit works, btw
[10:49] <niemeyer> rog: Not sure if you've seen the announcement
[10:50] <rog> niemeyer: yes. i'm just updating now.
[10:53] <rog> niemeyer: BTW i think perhaps -prep=false should be -mail=false. i.e. the mail should only be done when you explicitly ask for it
[10:53] <niemeyer> rog: I think "lbox propose" should actually propose
[10:54] <rog> niemeyer: lbox propose -cr -for x -mail
[10:54] <rog> reads well to me
[10:54] <niemeyer> rog: It reads well, but "lbox propose" should actually propose
[10:54] <rog> niemeyer: ... unless you use -prep ?
[10:54] <niemeyer> rog: Yep.. then you said "I'm just preparing for now" explicitly
[10:55] <rog> niemeyer: in my workflow, i *always* prepare before mailing
[10:55] <niemeyer> rog: It's easier to code than lbox prepare-proposal
[10:55] <niemeyer> rog: That sounds fine
[10:55] <rog> niemeyer: so it's nicer to have the default being the thing that doesn't do anything non-retractable
[10:56] <rog> niemeyer: it's fine, i can always hack my local version :-)
[10:56] <niemeyer> rog: Your default and my default differ.. there's no way out..
[10:56] <rog> niemeyer: i guess i'm just used to the way that Go's "hg change" etc work
[10:57] <niemeyer> rog: Yeah, that's probably it
[10:58] <rog> niemeyer: but i do think the principle of making the default action the least drastic is a good one in general.
[11:01] <niemeyer> rog: There's nothing drastic about making a propose command propose..
[11:02] <rog> niemeyer: sending mail can be drastic!
[11:02] <niemeyer> rog: You're going to the quotes page for that one :-)
[11:03] <rog> niemeyer: in Go code reviews, the number of times i did "hg change" then "hg mail" immediately without another "hg upload" is pretty small
[11:04] <rog> niemeyer: it's nice to see exactly *what* you're proposing before actually making the proposal
[11:04] <niemeyer> rog: That sounds completely fine. I'm not trying to change your workflow in any way. Please feel free to create local "rog-propose" commands.
[11:05] <rog> fair 'nuff
[11:06] <niemeyer> rog: Many people review their changes before they commit locally, for instance.
[11:06] <rog> niemeyer: i do that too, but there's nothing quite like seeing the final thing
[11:07] <rog> niemeyer: (given the number of heuristics in lbox...)
[11:07] <niemeyer> rog: Piece by piece, creating change logs that show the evolution towards the solution.
[11:11] <rog> niemeyer: i agree entirely. my remarks are about notifying people at the right moment, not hiding change logs.
[11:12] <niemeyer> rog: That's cool.. I'm not trying to convince you. Just explaining the other side of the picture.
[11:12] <niemeyer> rog: My key point is that "lbox propose" should propose. That's all.
[11:12]  * nijaba waves from rainy paris
[11:13] <niemeyer> nijaba: Hey man
[11:15] <nijaba> SpamapS: marcoceppi: would love to get a review on my merge proposal for roundcube.  Now with ssl cert copied via scp in peer relation
[11:16] <nijaba> niemeyer: how are you doing? as you can see, I am thanking juju for giving me something to do while it's raining outside.
[11:58] <niemeyer> nijaba: Hah, neat :)
[11:58] <niemeyer> niemeyer: Pretty good here..
[11:58] <niemeyer> nijaba: Pretty good here..
[11:59] <niemeyer> nijaba: Trying to catch up after being away for a few days
[11:59] <niemeyer> rog: One review out
[12:08] <rog> niemeyer: the comments of the form "// apt_update_upgrade" refer to the cloudinit file that the option was taken from.
[12:09] <rog> niemeyer: they're there to facilitate cross-checking with the original source.
[12:13] <TheMue> rog: Could you please send the dependency graph we spoke about to me? Thx.
[12:15] <rog> TheMue: just looking for it...
[12:16] <rog> TheMue: http://paste.ubuntu.com/768876/
[12:17] <rog> TheMue: it's a little idiosyncratic
[12:17] <rog> TheMue: the script that generated it is at the top
[12:18] <niemeyer> rog: Ok, can you please drop the comments?
[12:18] <niemeyer> rog: now that you have the code?
[12:18] <niemeyer> rog: It doesn't make sense for a reader, and they'll likely be wrong in a bit, even if they are right today
[12:20] <TheMue> TheMue: Thx, so the modules on the left depend on the modules right of them?
[12:21] <rog> niemeyer: i'd like to drop them, but i fear that when i come back to add some more options, i won't remember which ones have been done. would it make more sense if they were file names (more obvious that they referred directly to the cloudinit source, which is organised in that particular modular way)
[12:21] <rog> TheMue: yes
[12:22] <niemeyer> rog: The name of the option is in the Go code.. how would you forget?
[12:23] <rog> TheMue: BTW if you want to massage the script (i built it up incrementally), you should know that "9 sed" refers to the plan9port version of sed, which understand egrep-style regexps
[12:24] <rog> niemeyer: yeah, grep "option" should be sufficient, i guess
[12:27] <niemeyer> rog: Now that TheMue has some free cycles, it would be nice to get started on the state logic front
[12:28] <niemeyer> rog: I'm trying to recall the details of our conversation at UDS, but I don't have full clarity
[12:28] <niemeyer> rog: Maybe we can recover that conversation together
[12:29] <rog> niemeyer: i don't remember that much either!
[12:29] <niemeyer> rog: So let's figure the approach again.. this time it should be easier
[12:30] <niemeyer> rog, TheMue: Google+?
[12:30] <rog> niemeyer: hangout?
[12:30] <niemeyer> rog: Yeah
[12:30] <rog> niemeyer: i'd like to quickly finish these updates to cloudinit, if that's ok
[12:31] <TheMue> niemeyer: I would have to do some preparations before hangout.
[12:31] <niemeyer> rog: Ok, please ping when you're ready then
[12:31] <niemeyer> TheMue: Sounds good
[12:32] <niemeyer> rog: Btw, I think we should rename the juju directory/package to "environ"
[12:32] <rog> niemeyer: i'm not sure.
[12:32] <niemeyer> rog: Everything in the repository is juju.. juju/go/juju is confusing, and incorrect
[12:32] <rog> niemeyer: i think using "juju" as a package identifier works well
[12:33] <rog> niemeyer: i think eventually it will be launchpad.net/juju
[12:33] <niemeyer> rog: It doesn't to me.. everything in there is juju
[12:33] <niemeyer> rog: Precisely.. it will be launchpad.net/juju/{log,charm,...}
[12:34] <niemeyer> rog: now we'll build state
[12:34] <rog> niemeyer: yes, but this is the code environment, and in go code, seeing juju.EnvironProvider works well
[12:34] <niemeyer> rog: the things under the juju directory are about the environments
[12:34] <rog> environ is a very generic name for a package
[12:34] <niemeyer> rog: Again.. it makes sense for _everything_ to be under juju.
[12:34] <rog> niemeyer: i'd thought of that package as the way in for all the top level juju entry pointer
[12:35] <rog> niemeyer: e.g. deploy, add unit, etc
[12:35] <niemeyer> juju.Log, juju.Charm, ...
[12:35] <rog> juju.Log can be used like usual log. "charm" is sufficiently distinctive in itself
[12:35] <niemeyer> rog: environ too
[12:35] <niemeyer> rog: It's completely analogous
[12:36] <rog> niemeyer: "environ" is a highly generic name, used in many places besides juju
[12:36] <rog> and juju is nice and short
[12:36] <niemeyer> rog: it is.. juju.Charm is nice too :)
[12:36] <rog> niemeyer: i think it makes sense to have at least one package with the "juju" identifier
[12:37] <niemeyer> rog: Heh
[12:37] <rog> niemeyer: and given that this is the central place, why not this one?
[12:39] <TheMue> I would like a package below "juju" for each major entity or service. Importing "launchpad.net/juju/envronment" seem ok for me.
[12:39] <TheMue> Here the env gets its context by the containment in the juju package.
[12:41] <TheMue> So, changed place and took headset
[12:42] <niemeyer> rog: I don't buy the "we _need_ a package with this name" argument
[12:42] <rog> TheMue: in my plan, the juju package is not only about the environment, it's also about control of juju.
[12:42] <niemeyer> rog: That won't work.. we'll have a state package now, that is unrelated to the environment
[12:43] <niemeyer> rog: and that's where good part of the "control" will lie
[12:43] <TheMue> rog: I would only place a juju command inside this package.
[12:44] <rog> niemeyer: i was thinking (as we discussed before i think) that the juju package would encapsulate an API interface to the "control" commands
[12:44] <rog> niemeyer: so you could do: e, err := juju.Open("myenviron"); e.Deploy("wordpress")
[12:45] <niemeyer> rog: I'm not sure.. that's exactly the conversation we're supposed to have
[12:45] <rog> niemeyer: ah, i thought we were going to talk about the nitty-gritty of state updating
[12:45] <niemeyer> rog: That sounds interesting, but the bulk of the environments implementation do not have to be within a juju package
[12:45] <niemeyer> rog: and it is now
[12:46] <niemeyer> rog: I'm happy to have the juju package as the entry point
[12:46] <niemeyer> rog: That's not what it is today
[12:46] <rog> niemeyer: ok. that depends on whether we manage to factor it out without circular dependencies.
[12:47] <niemeyer> rog: There's no reason to have circular dependencies if juju is only the entry point
[12:48] <TheMue> Right now I don't see them too.
[12:48] <niemeyer> rog: But I guess we're in agreement.. I'm happy to have juju, and happy to have entry points there.. let's just move the bulk of the environment implementation in its own package under what we today have as go/
[12:48] <niemeyer> rog: In the future, we move go/juju/* onto go/, and rename go/ to juju/
[12:49] <TheMue> juju as a starter, additionally there will be some foundation packages like environment or misc utilities and then the service packages
[12:49] <niemeyer> rog: Sounds good?
[12:50] <rog> niemeyer: my reluctance, i think, is that there's hardly anything to the environ package. it's essentially just a couple of type definitions and a registry hook.
[12:50] <rog> niemeyer: i don't know that it deserves its own package
[12:51] <niemeyer> rog: Check out the log package..
[12:51] <rog> niemeyer: that's different - it needs to be its own package to avoid circular dependencies
[12:52] <rog> niemeyer: i'm not dead set against the idea, BTW. i'm just not sure about it.
[12:53] <niemeyer> rog: So you're happy to have a package named log with two functions, but don't want to have an environment-specific package with hundreds of lines and multiple subpackages?  The reasoning is pretty weak.
[12:54] <TheMue> I only can get it if I would say, juju IS our environment.
[12:55] <niemeyer> TheMue: Everything there is juju.. the "go/" thing in the path makes this point less clear, but it's there just because we can't own the main namespace today
[12:55] <TheMue> From this point of view all environment logic for sure could be inside juju
[12:56] <niemeyer> TheMue: Again, everything is inside juju..
[12:56] <TheMue> niemeyer: I know, but the environment.yaml is the local starting point
[12:56] <niemeyer> TheMue: It's juju/charm, juju/log, juju/schema, etc
[12:56] <niemeyer> TheMue: This isn't clear because we have a go/ prefix in the way, but that's how the package is intended to be used for real
[12:57] <rog> i guess i don't believe that just because something *can* be factored out means that it *should* be factored out
[12:57] <TheMue> TheMue: I know, I only tryed to understand rogs motivation
[12:57] <niemeyer> rog: I'm not suggesting to factor anything out.. I'm saying the package is clearly misnamed.
[12:57] <niemeyer> But I'll stop arguing now and will do something more relevant
[12:58] <rog> at the moment, because it's early stages, all there is in the juju package is the environment, so it looks like it's misnamed, i think.
[12:58] <TheMue> niemeyer: Btw, what is schema? The juju environment schema?
[12:58] <niemeyer> TheMue: bzr branch lp:juju/go ls go/schema
[12:58] <niemeyer> TheMue: bzr branch lp:juju/go; ls go/schema
[12:58] <TheMue> niemeyer: No, wrong question, I got it here.
[12:59] <TheMue> niemeyer: I asked for the semantics, because w/o context schema is as meaningless as yaml or xml) as file extension.
[12:59] <niemeyer> rog: No, there's a lot in the juju package.. there's juju/schema, juju/log, juju/charm, juju/environs, juju/state, ...
[13:00] <TheMue> niemeyer: So, which schema is schema?
[13:00] <rog> niemeyer: aren't those all separate packages?
[13:00] <rog> niemeyer: just as io/ioutil is a separate package to io
[13:00] <TheMue> rog: I would say so, as I understand niemeyer
[13:01] <niemeyer> rog: Yes, they are, and each encapsulate a well defined part of the problem that juju solves. I'm fine with your idea of using juju as an entry point, but now that I agreed with you you're changing the argument so we continue to disagree..
[13:01] <TheMue> rog: And that's looking fine to me
[13:01] <rog> niemeyer: i don't want to disagree!
[13:02] <rog> niemeyer: i just think that the entry points and the environment stuff can live in the same package
[13:02] <niemeyer> rog: So stop doing so.. you want juju as an entry point.. let's do this, and let's keep implementation details of environments clearly organized in their own package. Best of both worlds
[13:04] <rog> niemeyer: won't that mean that anyone that actually wants to use the juju API will have to import both juju/environ (to read the environment) and juju/control (to actually do anything)?
[13:04] <niemeyer> rog: Open dummyprovider_test.go and tell me with a straight face that this pertains to a top-level package.
[13:04] <rog> s/juju\/control/juju/
[13:05] <niemeyer> rog: Why? func Open(name) *environ.Environ ?
[13:08] <rog> niemeyer: yeah that would probably do the trick
[13:08] <rog> niemeyer: sorry for my reluctance - it just shifted my world view :-)
[13:08] <TheMue> Do we have an outline about the contents and the structure of the API?
[13:09] <niemeyer> rog: Well, no need to be sorry.. no feelings hurt. I'd rather having you arguing than having you silent. :-)
[13:10] <niemeyer> TheMue: We have an evolving idea about that
[13:10] <niemeyer> TheMue: We debated some high-level approaches about how to move forward in terms of the state integration at UDS
[13:10] <TheMue> niemeyer: Any kind of living wiki document to collect the ideas?
[13:10] <niemeyer> TheMue: No.. the living collection of ideas is the code base
[13:10] <TheMue> *sigh*
[13:10] <niemeyer> TheMue: ?
[13:11] <niemeyer> TheMue: Go has very good ways to define APIs, document them, and read that documentation
[13:11] <mpl> niemeyer: just curious, have you ever gotten any complaint from other users in the channel that you were flooding it?
[13:11] <niemeyer> TheMue: If we have ideas about how APIs should look like, the code base is a _much_ better place to put that documentation than any wiki
[13:12] <niemeyer> TheMue: rog has added a full skeleton of the environment API, despite it being pretty much unimplemented
[13:12] <rog> TheMue: i've done a few forward-looking ideas for how i imagine some things looking
[13:12] <TheMue> I surely see the importance of code. But especially when designing an API I like a good doc of the evolution so that anyone can not only see how it has been done but also why it has been done this way.
[13:12] <niemeyer> TheMue: Again, this is a great idea!
[13:12] <niemeyer> TheMue: And the code is the place to put it
[13:13] <TheMue> It can be created in parallel and doesn't has to be a novel.
[13:13] <niemeyer> TheMue: You seem to see the code as a poor place for documentation.. we disagree in that regard
[13:13] <rog> TheMue: at this point, i think the most important thing is how the API looks
[13:13] <TheMue> Yep, we do
[13:13] <TheMue> It is the most important, here we do agree
[13:14] <rog> TheMue: that is, how the types are named, and what the entry points look like
[13:15] <rog> TheMue: if you've been following the recent Go activity, you'll see that much of the stuff has been proposed in the form of godoc output
[13:15] <rog> TheMue: i thought it worked pretty well
[13:15] <TheMue> rog: Yep, it's most important how it looks. It's good for the user.
[13:16] <rog> TheMue: and it means that when you come to actually implement stuff, you just need to fill in the bodies of the types and functions
[13:16] <TheMue> rog: But for the maintainer some infos about the motivation for decisions are helpful too.
[13:17] <niemeyer> The "code" is where the project really lives.. around it we have revisioning of content, static analysis of names, reviewing workflows, automatic documentation generation, etc etc.
[13:17] <rog> TheMue: i think that can go in the code too.
[13:17] <TheMue> rog: I'm not only talking about implementing s/w the first time but also maintin it the whole lifecycle
[13:17] <rog> TheMue: me too.
[13:17] <niemeyer> and me too
[13:17] <niemeyer> Even more important in maintenance, in fact
[13:17] <rog> TheMue: documentation external to the code always lags...
[13:18] <niemeyer> Code documentation far from code == quick bitrot
[13:18] <niemeyer> rog++
[13:18] <mpl> yep
[13:19] <TheMue> Don't get me wrong, I want both. I can show you 20yrs code of mine with good comenting and naming.
[13:19] <rog> which isn't to say that there shoudn't be some explanatory comments in the code about some particular decisions, if they're not obvious
[13:19] <rog> the nice thing about proposing stuff with a Go API is that it keeps things concrete
[13:20]  * niemeyer perceives ethos in the rhetoric..
[13:20] <rog> where several paragraphs of text can be very ambiguous
[13:22] <niemeyer> FWIW, I'd laugh (or cry) about my code from 20 years ago
[13:24] <rog> TheMue: here's my original skeleton API (well out of date now) but if you look in juju/conn.go, the commented-out method give an idea for where i was aiming: lp:~rogpeppe/juju/go-too-much-too-soon
[13:25] <rog> i'm still using some small pieces of code i wrote 20 years ago...
[13:26] <TheMue> Hehe, just digged around in some Pascal code from 1990. Looked neat.
[13:27] <rog> TheMue: the thing is, we're not redesigning juju - we're specifying the API and the internal structure. the design already exists and is implemented. so design documents aren't really appropriate here IMHO.
[13:27] <TheMue> Hmm, I need a shortcut to checkout links from here in XChat directly into my project directory ...
[13:31] <TheMue> So, in only few words, how will our API look? One major type providing many methods? Is this an interface and do we work with factories? Can the user expect transactional behavior (or at least a searialization of jobs)? Or do we have many small types the API user instantiaties on his own?
[13:31] <niemeyer> rog: Very good point.. high-level (non-code) design documents are here: http://juju.ubuntu.com/docs
[13:31] <niemeyer> TheMue: In only a few words? It will look great! ;-)
[13:32] <TheMue> niemeyer: h5
[13:32] <TheMue> Gooooood answer
[13:33] <niemeyer> TheMue: More seriously, the domain space is fairly intricate.. such statements ("we'll use factories") are a solution in search of a problem. We'll try to do the inverse.. understand the problem and then figure how to best design the solution.
[13:35] <TheMue> niemeyer: I know, has only been an example question regarding a design principle of e.g. separating service interfaces and providers handled in a kind of internal container (goroutine able to encabsulate jobs performin on those services).
[13:36] <niemeyer> TheMue: Again, all of those things are solutions in search of a problem.. one can't tell whether something is appropriate in isolation of the actual problem being solved.
[13:37] <rog> TheMue: i try to start from "this is the API i want to provide", then move to "how can i implement that API"
[13:38] <rog> TheMue: luckily in this case, the problem itself is already specified (otherwise i'd start there)
[13:38] <niemeyer> TheMue: Depending on what we're trying to accomplish, we can go in one direction or the other
[13:38] <rog> TheMue, niemeyer: i've done most of the cloudinit changes. am ready for G+.
[13:38] <niemeyer> rog: Kind of.. there are open problems in terms of API organization that we're trying to solve as well
[13:39] <rog> niemeyer: it might be useful to make a list of some of the most pertinent of those problems.
[13:39] <TheMue> This API organization is what I want to see. In a higher level than code, but less than a novel.
[13:40] <TheMue> rog: YES!
[13:40] <niemeyer> rog: I've been doing that.. but you're already aware of them in the context we're debating
[13:40] <TheMue> rog: That's the doc I'm referring to. A list of what we want to provide which evolve into how we do it.
[13:40] <rog> TheMue: method stubs work well. no bodies necessary, but a type signature and a comment.
[13:40] <niemeyer> rog: or were, anyway
[13:40] <rog> lol
[13:41] <rog> maybe i am.
[13:42] <niemeyer> rog, TheMue: Invite sent
[13:45] <rog> niemeyer: one mo, i'm just being banished upstairs
[14:32]  * hazmat yawns and digs into reviews
[14:36] <jcastro> SpamapS: Hey so in your review of limesurvey I like how you tested the haproxy bits.
[14:36] <jcastro> SpamapS: can I get a blog post out of that? I'd like a post highlighting that you can just add proxy things to charms and that we like that because it let's you addunit something fierce.
[15:37] <mchenetz> currently building py27-txzookeeper for juju port on mac… Next we will see if the juju port command will work. ;-)
[15:38] <hazmat> mcclurmc, :-)
[15:38] <hazmat> ugh.. keep doing that
[15:38] <hazmat> mchenetz, cool, i'm curious to see how it goes, i've got an old mac pro i can setup if something needs debugging
[15:39] <mchenetz> no prob… I think i can handle the debugging. If i can't i will let you know. Thanks
[15:39] <mchenetz> I will right some instructions up if it works
[15:39] <hazmat> mchenetz, awesome
[15:39] <hazmat> robbiew, thanks for posting the lisa keynote talk, interesting stuff .. http://www.youtube.com/watch?v=3KpPBnEtRj4
[15:40] <hazmat> pretty high level stuff
[15:40] <robbiew> hazmat: np...I missed Wednesday and was just looking to see which videos had been posted...luckily this one was
[16:05] <robbiew> m_3: ping
[16:06] <m_3> robbiew: yo
[16:06] <m_3> g+?
[16:06] <robbiew> m_3: yup
[16:09] <robbiew> m_3: invite sent...I think
[16:09] <m_3> doh... from me too just now... lemme look for ytours
[16:10]  * koolhead11 wondering if robbiew going 4 hangout. :P
[16:20] <rog> niemeyer: http://paste.ubuntu.com/769110/
[16:27] <mpl> hazmat: the most interesting part was at 1h06m20s :)
[16:29] <rog> niemeyer: any way i can reset the CL state, or do i have to create a new CL?
[16:34] <niemeyer> rog: Yo
[16:34] <rog> niemeyer: hiya
[16:35] <niemeyer> rog: Let me check that paste
[16:35] <niemeyer> rog: Curious
[16:37] <mchenetz> I think i am going to create a macport repo on one of my servers for Juju so that other people will not have to go through what i am going through...
[16:38] <niemeyer> rog: So, do you have any idea of what was the story there?
[16:38] <niemeyer> rog: The file definitely looked weird.. I'm not sure about where to start looking
[16:39] <rog> niemeyer: i think the sequence went something like this:
[16:39] <rog> niemeyer: the wrong version of all.bash went in initially
[16:39] <rog> niemeyer: i changed it. i might even have done bzr rm all.bash
[16:39] <rog> niemeyer: then i added it again
[16:40] <rog> oh, somewhere in the middle, it went wrong, so i couldn't view anything on the web site ("CL is uploading" or something like that)
[16:40] <rog> and then somehow i got it back again
[16:40] <rog> but... with two all.bash files visible
[16:41] <rog> niemeyer: sorry it's not a very reproducible scenario
[16:41] <niemeyer> rog: Ok, no worrie
[16:41] <niemeyer> s
[16:41] <rog> niemeyer: but currently i can't upload my changes, so the CL is stalled
[16:41] <niemeyer> rog: Can you please retry with -debug?
[16:42] <SpamapS> jcastro: ack.. in the server team meeting right now..
[16:43] <rog> !
[16:43] <rog> it's worked now
[16:43] <rog> niemeyer: dunno what went right this time
[16:44] <rog> niemeyer: BTW, i'm not sure what to do about all the comments for the various options
[16:44] <niemeyer> rog: Have you touched the branch in any way in between? (commit/whatever)
[16:45] <niemeyer> rog: let's figure what the options do.. smoser can help us
[16:45] <rog> niemeyer: nope
[16:45] <rog> niemeyer: i could make a guess at the docs but, yeah, some knowledgable help would be good
[16:47] <smoser> what options are you talking about, negronjl
[16:47] <smoser> oops
[16:47] <smoser> niemeyer,
[16:47] <rog> smoser: cloud-init options
[16:47] <rog> smoser: https://codereview.appspot.com/5444043/diff/20003/cloudinit/options.go
[16:48] <smoser> which options? most options for cloud-config are documented at http://bazaar.launchpad.net/~cloud-init-dev/cloud-init/trunk/view/head:/doc/examples/cloud-config.txt
[16:48] <niemeyer> Sweet!
[16:48] <rog> smoser: "user" ?
[16:49] <rog> smoser: thanks BTW
[16:49] <smoser> thats the 'user' that things are done to (like ssh-import-id, other stuff... its assumed that that user already exists in the image)
[16:50] <smoser> ie, 'ubuntu'
[16:53] <rog> smoser: hmm. i'm trying to think of a good way to phrase that.
[16:53] <rog> smoser: "SetUser sets the user that things are done to" doesn't quite get there for me :-)
[16:54] <smoser> many cloud-config things operate on a user account.
[16:54] <rog> smoser: "SetUser sets the remote user name that will be used"?
[16:54] <smoser> (import keys being the most obvious)
[16:54] <rog> smoser: is it essentially just setting the home directory?
[16:54] <smoser> they read the cloud-config user 'user' for which user to operate on
[16:54] <rog> smoser: or do some things set uid to the user too?
[16:55] <rog> smoser: yeah, i've seen a few get_cfg_option_str(cfg,"user","ubuntu")
[16:57] <smoser> its possible they get the uid for the user and use it, but i'm not usre.
[16:58] <niemeyer> New #juju-dev channel, for low-level development-related topics
[16:59] <rog> smoser: yeah, byobu does sudo user.
[17:00] <rog> (whatever byobu is :-])
[17:01] <rog> smoser: "SetUser sets the user name used for byobu, set_passwords, ssh_import_id and ssh_import_id"?
[17:01] <niemeyer> rog: byoby == screen with a configuration file from Dustin
[17:02] <rog> (maybe enumerating the various things that uses it is easier that trying to say what it is)
[17:05] <hazmat> next version of byobu is tmux based
[17:05] <hazmat> quite nice actually
[17:05] <hazmat> er.. i guess it supports both, but i tried out the tmux version
[17:06] <rog> the docs say of apt-mirror, "Add apt repositories" but it only has one string argument
[17:06] <rog> is the URL point to a list of apt repositories?
[17:07] <rog> s/is/does/
[17:07] <rog> smoser: what does apt_old_mirror do?
[17:09] <rog> darn it, i've got to go
[17:09] <rog> smoser: thanks for the help.
[17:10] <rog> anyone: feel free to add any docs to the above page (https://codereview.appspot.com/5444043/diff/20003/cloudinit/options.go) by double-clicking on a line
[17:11] <rog> see y'all tomorrow
[17:12] <niemeyer> rog: Have a good evening
[17:13] <hazmat> bcsaller, jimbaker, fwereade standup?
[17:35] <hazmat> bcsaller re standalone needs review,  https://code.launchpad.net/~hazmat/juju/upgrade-config-defaults/+merge/84710
[17:47] <SpamapS> new charm-tools/charm-helpers uploaded to precise.. now with unit tests.. w00t. :)
[17:56] <m_3> SpamapS: thanks
[18:51] <marcoceppi> SpamapS: woo \o/
[19:03] <mchenetz> Finally got juju working on OSX, using Port, Brew and PIP… It was hard and it was ugly… I am going to work on fixing the port file and maybe even create a brew repo
[19:03] <SpamapS> except.. the tests fail on the buildds.. hrm
[19:04] <m_3> mchenetz: +1 for a brew repo
[19:05] <mchenetz> m_3: I like brew a lot better and i think it already had a lot of the dependencies… So, i think it would be the way to go...
[19:06] <m_3> much easier to publish and maintain imo... just pull requests
[19:06] <mchenetz> I haven't looked into it. But that is always what i hear. I will be looking at it shortly. :-)
[19:07]  * m_3 will have to break out the old osx drive for his mbp to test
[19:10] <mchenetz> okay, after all of that… during bootstrap: ERROR, no module named apt… hehe it's not linux
[19:12] <mchenetz> Now to look at the juju code
[19:19] <mchenetz> Okay, so this seems to be a local provider issue under pkg.py
[19:19] <mchenetz> I think we could do a little magic to use brew or something else in the pkg.py script
[19:22] <mchenetz> okay, so now i am thinking that a standardized repo for juju is quite important. We need to have similar packages for osx and linux. So someone, maybe me, needs to start a  repo that includes the packages required to allow the charms to function correctly
[19:24] <nijaba> SpamapS: marcoceppi: I would really appreciate if one of you would have time to review my mess :)
[19:24]  * SpamapS points nijaba to m_3
[19:24] <marcoceppi> nijaba: I'm a bit strapped this week between deadlines and "in-laws" visiting
[19:24] <SpamapS> nijaba: I'm way behind on other things today.. but m_3 might have a few moments to poke at it.
[19:25] <nijaba> marcoceppi: SpamapS: ok, understood, specially for the inlaws ;)
[19:25] <SpamapS> mchenetz: by packages, do you mean ports or brew or something else?
[19:26] <mchenetz> I am thinking brew for osx… But, i am starting to thing that it might be good if juju had it's own package repo
[19:27] <jcastro> mchenetz: I would be in favor of anything that improves our story on osx.
[19:27] <jcastro> that would be a really great contribution
[19:28] <mchenetz> I am trying to think about the best way to do it. It could just be that the scripts call apt on ubuntu and brew on osx… However, i think there needs to be a standard and there may need to be repos setup for compatibility with juju (missing files)
[19:31] <mchenetz> The only advantage to Juju having it's own package management is that other flavors of linux could theoretically be brought into the fold because it wouldn't rely on a certain package distribution method
[19:37] <mchenetz> just thinking out loud here: Naming of packages may become an issue with different package management software (e.g. apt and brew). They may not be called the same thing in both repos so there may need to be provision for different package names dependant on architecture.
[19:44] <marcoceppi> mchenetz: The systems's package manager could be made available in an environment variable, say "SYSTEM_PKG_MGR" so charms could be setup to swtich between them. But I'm also just thinking outloud. It's easy enough to create a charm as it is. So for those running charms on different systems they could fork a charm from the charm store, modify the few lines about apt-get * and then deploy
[19:46] <mchenetz> marcoceppi: I agree… The just have to know that in order for it to be cross platform, a package needs to be available in both repos. This may require custom repos if one or the other does not contain those files.
[19:48] <marcoceppi> mchenetz: I think what will likely happen is a distribution setting up it's own charm store, Juju is _technically_ cross platform, but there is no guarantee for a charm to be cross platform. That would be way too much work up front for a charm author. So, if a charm isn't written for your distribution, you can always just write one :)
[19:48] <marcoceppi> Though, just talking out loud.
[19:49] <mchenetz> But, actually, once juju is installed, it will most likely be  a linux container. So, it is just the initial setup of juju that could require additional packages. :-)
[19:50] <mchenetz> Which brings me back to… I still think Vagrant would be very beneficial to integrate into juju… I may work on that too. It does not seem like it would take to much
[19:53] <mchenetz> marcoceppi: The only reason why it's not truly cross platform compatible right now (That i can see) is that it needs some programming logic in the local provider section to not only use apt, but brew or macport
[20:10] <m_3> nijaba: I'll look at what you have in the queue
[20:26] <hazmat> mchenetz, not worthwhile to support local provider
[20:26] <hazmat> mchenetz, that code shouldn't be imported if its not being used in the config
[20:27] <mchenetz> hazmat: What do you mean not worthwhile? We should use something else?
[20:27] <hazmat> local provider is using linux only tech, a vagrant provider is significantly heavier weight, but would definitely be of use to osx
[20:27] <mchenetz> hazmat: maybe i will start working on a Vagrant povider
[20:28] <hazmat> mchenetz, yeah, not worthwhile as it in won't work, and if its going their is going to be a virtualbox provider its a separate provider
[20:28] <hazmat> its not really vagrant, its just talking to virtualbox api, all vagrant really is a some policies around a virtualbox api wrapper
[20:28] <m_3> scripts really, right?
[20:29] <hazmat> mchenetz, the virtualbox sdk has a control console in python that i found helpful when trying to understand the api
[20:29] <mchenetz> hazmat: i will take a look at the virtualbox sdk… i just have to think of some of the features i liked in Vagrant and see what would be good to add to Juju
[20:30] <hazmat> mchenetz, cool, i'd be interested in hearing what those are or feel free to file a bug report
[20:31] <mchenetz> hazmat: no prob… I am going to start to outline it
[20:33] <hazmat> mchenetz, fwiw.. i filed a bug 826498 about vbox/osx a while working on the local provider impl
[20:33] <_mup_> Bug #826498: virtualbox machine provider for osx local dev <juju:New> < https://launchpad.net/bugs/826498 >
[20:33] <mchenetz> hazmat: i will check it out
[20:36] <mchenetz> Wow you can do quite a bit with their sdk.
[20:47] <nijaba> m_3: thanks a lot.  Would like to know if I am going the right way before I start on something else :)
[20:49] <mchenetz> This is probably good to look at for virtual box integration as it is programmed in Python: http://code.google.com/p/vboxweb/
[20:53] <_mup_> juju/sshclient-refactor r432 committed by kapil.thangavelu@canonical.com
[20:53] <_mup_> merge latest robust-zk-connect from jim
[20:53] <_mup_> juju/sshclient-refactor r433 committed by kapil.thangavelu@canonical.com
[20:53] <_mup_> merge trunk
[22:51] <negronjl> SpamapS, m_3, hazmat:  Do you guys know how to get the unit name ( ie: mongodb/3, mongodb/2, etc. ) from within either the install hook or any of the relation-* hooks?  I need that information sometimes and have no idea how to get that information.
[22:52] <tekonivelo> hi
[22:52] <SpamapS> negronjl: JUJU_UNIT_NAME ? I seem to recall needing it in a few places too.
[22:52] <negronjl> SpamapS: is that an environment variable ?
[22:52] <SpamapS> negronjl: yeah, I use it in ceph a lot
[22:52] <negronjl> SpamapS: thanks ... I'll try that out
[22:53] <tekonivelo> juju deploy is spawning me new machines on AWS EC2. But i'm on el chéapo free AWS t1.macro plan, so i would like to have everything on the one machine
[22:54] <robbiew> tekonivelo: right now that feature isn't available, however we are in the process of adding it for the 12.04 release.
[22:54] <tekonivelo> robbiew: ok
[22:54] <robbiew> if you are just playing with juju, may I suggest the local option?
[22:54] <SpamapS> tekonivelo: you can spawn your own t1.micro, and use the 'local' provider...
[22:55] <tekonivelo> robbiew: so it's not a completely out-of-the-model -idea in juju?
[22:55] <SpamapS> tekonivelo: but the 700MB of RAM is not going to be enough to do much at all.
[22:55] <robbiew> tekonivelo:  nope...especially because we leverage juju in ubuntu orchestra for bare metal deployments
[22:56] <robbiew> where you will surely want more than one thing on a machine ;)
[22:56] <SpamapS> tekonivelo: https://juju.ubuntu.com/docs/provider-configuration-local.html
[22:57] <tekonivelo> thanks!
[22:58] <tekonivelo> i'll continue my adventures in juju-land :)
[22:58] <tekonivelo> thanks, the "the ancients of juju" :)
[22:58] <tekonivelo> sorry "the justified ancients of juju" ;)
[23:01] <m_3> nijaba: ping