/srv/irclogs.ubuntu.com/2012/06/15/#maas.txt

kurt_bigjools: not to sound silly, but I've not really worked with bz.  Is there a howto somewhere on how I would install this?01:49
bigjoolsbz?01:50
kurt_https://wiki.ubuntu.com/Bzr01:50
kurt_reading about it now...01:50
bigjoolsapt-get install bzr01:51
bigjoolsbzr checkout --lightweight lp:maas01:51
bigjoolsis all you need01:51
kurt_thnx, will try that...01:51
bigjoolsactually01:52
kurt_?01:52
bigjoolsbzr checkout --lightweight lp:maas/1.001:53
bigjoolsyou don't want trunk01:53
kurt_eh, too late...01:53
bigjoolsheh01:53
kurt_can I stop in the middle?01:53
bigjoolswell it might work, try it out01:53
kurt_lol01:53
bigjoolsjust don't run the dev version, it'll conflict with installed packages01:53
bigjoolsbut the vdenv stuff should be ok01:54
kurt_it appears to have installed - is there an easy way of removing/reversing that install?01:54
kurt_ok, it didn't install, just create the folder branch02:04
bigjoolsit's just creating a dir for you, remove it if you don't want it02:18
jtvroaksoax, smoser: bigjools & I would like to know how the nodes obtain their ephemeral images.  Cobbler provides those over iscsi?02:58
kurt_but what's the trick to getting the components in place after you have the directory?03:00
roaksoaxjtv: its all PXE03:01
jtvroaksoax: but that's not a transport mechanism — how do the nodes obtain the images?03:02
roaksoaxjtv: yes iscsi. So cobbler ismply profives the kernel and initrd but the images are accessed via iscsi03:05
roaksoaxjtv: howeveer, a cobbler profile is the one who has the information about where it is located03:05
roaksoaxjtv: that's a kernel argument passed to the pxe file03:05
roaksoaxjtv: you guys also need to make sure it that users can pass custom kernel parameters03:06
jtvOne thing at a time though… we're in the process of replacing cobbler, so we need to know how we will provide the images to the nodes without cobbler.03:07
roaksoaxjtv: cobbler doesn't really provide the images. We simply tell the kernel on the PXE file where to obtain the image from03:08
bigjoolswhat is the option that tells it?03:10
* jtv strides out for urgent coffee03:12
* roaksoax expanding03:12
bigjoolsis it set in the preseed that it gets from the url specified on the cmd line?03:15
roaksoaxgive me a sec please03:15
bigjoolsok :)03:15
roaksoaxbigjools: http://pastebin.ubuntu.com/1041810/03:25
roaksoaxjtv: http://pastebin.ubuntu.com/1041810/03:26
roaksoaxjtv: i meant to write this as a response to your email03:26
kurt_bigjools:  from our earlier conversation - what gets the bzr components in to place?03:26
bigjoolskurt_: what do you mean bzr components?03:27
bigjoolsby*03:27
kurt_I now have a "1.0" directory in my home directory03:27
kurt_it has a lot of sub directories03:27
bigjoolsinside there you'll see a vdenv/03:27
kurt_how do I know where to install things?03:27
bigjoolslook at it's README03:28
bigjoolsits03:28
bigjoolsdon't necessarily run it blindly until you understand what it's doing03:28
kurt_I did - as I recall it gave the basic install process for maas. i'll look again03:28
bigjoolskurt_: wrong readme03:28
bigjoolslook in *vdenv*03:28
kurt_kk03:29
bigjoolsyou're not installing maas, just using still in the source to set up VMs03:29
bigjoolss/still/stuff/03:29
bigjoolsroaksoax: can you explain more about iscsi?03:30
roaksoaxbigjools: in short, maas-import-ephemerals sets up iscsi.03:30
bigjoolsis it a local daemon?03:31
roaksoaxbigjools: yeah, it is tgtd running on the maas server03:31
bigjoolsah03:31
roaksoaxbigjools: so the only thing needed is that we are able to tell what kernel arguments to use in the PXE file03:31
roaksoaxbigjools: are you guys using the concept of "profiles" "systems" or anything similar?03:32
bigjoolsno03:32
bigjoolsnot yet anyway :)03:32
roaksoaxbigjools: I could expand on how everything works for you guys to have a better view of what's happening with cobbler03:32
bigjoolswe're trying to understand the process and see what works best03:32
bigjoolsone of the nasty things about cobbler is that it needs to keep syncing its DB03:33
bigjoolsnow, I'm trying to remember how juju selects a different profile03:34
roaksoaxbigjools: it doesn't03:35
bigjoolspreseed, I mean, sorry03:36
roaksoaxbigjools: it doesn't03:36
bigjools:)03:36
roaksoaxbigjools: there's 1 preseed for enlistment. 1. for commissioning. 1. for deployments03:37
bigjoolsso all the deployment preseeds have the juju stuff at the bottom?03:37
roaksoaxbigjools: no, there is one "snippet" that sources form a ks_meta variable (kickstart meta data variable). This snippet is maas_preseed and is sourced on the commissioning and the installation preseed03:39
bigjoolsah right that was it03:39
roaksoaxso the maas_preseed content is given by MAAS to cobbler in base64, and it's being decoded when the preseed is being obtained03:40
bigjoolsit all comes back to me now03:41
roaksoaxbigjools: hheh03:42
bigjoolsthanks roaksoax03:42
roaksoaxbigjools: anyways, I'll try to exapnd more on the whole process tomorrow.03:42
roaksoaxi'm off to bed03:42
roaksoaxhave a good one03:42
bigjoolsroaksoax: sleep well - we'll trudge on03:42
jtv1bigjools: wip branch → https://code.launchpad.net/~jtv/maas/import-to-tftp/+merge/11045104:33
bigjoolsjtv1: ok - late lunch here, back in a bit04:39
jtv1ack04:39
jtv1Hmm where should I put tests for my shell scripts?05:57
bigjoolsjtv1: why bash and not python?06:09
* bigjools just got back06:09
jtv1Turned out things stayed relatively simple after all.06:09
jtv1I figured for this, shell had relatively little overhead to get to a working script.06:10
jtv1Cyclomatic complexity is low.06:11
bigjoolsfairy muff06:12
bigjoolsjtv1: does cobbler cope with the race condition?06:34
bigjoolsdon't think it does does it?06:34
jtv1Well it may just be restricted in its concurrency enough…  Really don't know.06:34
=== jtv1 is now known as jtv
bigjoolsjtv: well, ISTM that it can't know if something is booting when the files are replaced06:35
jtvMaybe not — but that's not really needed anyway.06:35
bigjoolsmebbe06:36
jtvThere's always tricks like adding a serial number to the directory name, so actual contents never change once created.06:36
jtv(And then you can delete anything that's not the latest and also old enough that nobody should be booting from it any more)06:36
jtvBasically MVCC much like postgres does.06:38
bigjoolsfuture work I guess06:39
jtvIndeed.  And we can do that in two phases:06:41
jtv1. Fix the actual problem by storing each image in a separate directory.06:41
jtv2. Offline GC wants disks actually start filling up.  :)06:41
jtvs/wants/once/06:41
bigjoolsjtv: so I think the script looks ok enough but as you say it'd be nice to know it works06:48
jtvbigjools: it's really deafeningly simple, because it does not deal with ephemeral images, nor with preseeds.06:49
bigjoolsfamous last words06:49
jtvIt downloads the pxelinux.0 for each architecture's latest release, and the linux & initrd.gz for each release, for each architecture.06:50
jtvAnd insofar as there are any changes, those are moved into the TFTP tree according to the filesystem layout I documented.06:50
jtvAFAICT the only reason why preseeds are mentioned at all in the existing script is that they need to be defined with the Cobbler profile.  We can bypass that completely because that information comes from the database.  Nothing to do with providing images.06:55
jtvOh FIDDLESTICKS07:00
jtvSeriously, wget, SERIOUSLY?07:00
jtvYou do all this stuff and then “file://” URLs are too hard for you?07:00
bigjoolsheh07:00
jtvNOT FUNNY07:00
jtvThis undermines my test pretty thoroughly.07:02
jtvAnd why?  Why?07:03
jtvDon't answer that.  I know: because nobody ever tests this kind of code.07:03
jtvGrrr.  I need to rethink this.07:05
bigjoolsheh07:10
bigjoolsright.  Morning rvba!  And, good night everyone.07:10
rvba\o bigjools.07:11
rvbaHi jtv.07:11
rvbajtv: time for a tiny review? https://code.launchpad.net/~rvb/maas/bug-1013275/+merge/11047507:12
ubot5`Ubuntu bug 110475 in mozilla-thunderbird (Ubuntu) "“TB crash”" [High,Invalid]07:12
jtvGood morning rvba07:13
jtvSure, I'll take it07:13
jtvrvba: done07:16
rvbata07:19
jtvrvba: maybe you can give me some feedback on this idea.  In order to test my download script (replacement for maas-import-isos, basically) I want to pass wget a file:// url.  The test shouldn't download from the real Ubuntu servers, obviously.07:25
jtvBut guess what: wget does not support file://!07:25
jtvI'm thinking, I could make it work if I insert a fake wget in the path that just links to curl.07:26
jtvOh blast, no, I'm passing other options to wget.  :-(07:26
jtvHmm...  Maybe I can work around that.07:30
rvbaOr you can use the http fixture to create a temporary http server.07:31
rvbajtv: from maastesting.httpd import HTTPServerFixture07:33
jtvSeems a bit heavyweight…07:33
jtvThere.  I've got an easy way to make it use curl instead.07:35
jtvBy the way, I guess we should document our dependency on distro-info.07:36
rvbaHow will you manage to deal with the arguments you pass to wget?07:36
rvbaWhen we will introduce the dependency, we definitely will.07:36
jtvWe've been using distro-info for some time now.07:37
rvbaOh, right in scripts/maas-import-isos.07:37
jtvYup.07:37
jtvI just added it to the hacking doc.07:37
rvbaCool.  I filled a bug about using it to list the supported distros inside MAAS, I thought you were talking about that.07:38
jtvNo, just the script.07:38
jtvMy own script uses it as well.07:39
jtvIn particular, my script uses it to get the current Ubuntu release.07:39
jtv(In addition to the list of releases, of course).07:39
rvbaBy the way, this script also sets up the profiles in cobbler.  I suppose you're simply dropping that right?07:43
jtvYes.07:43
jtvWell, actually dropping it will be a separate step, of course.07:43
jtvBut I'm not re-creating it.07:43
rvbaSure, good.07:43
jtvThe profile creation does one other thing that I don't do: store preseeds.  We do that from the database.07:43
jtvNot a job for a download script.07:44
rvbaRight, Gavin and I are working on that.07:44
rvbaWe're not sure we will need to add the notion of 'profile' right now.  So we will create something simple to get started and then we will iterate on that.07:44
jtvMakes sense.  My guess is we'll need _something_ that's similar to a profile, but it's hard to say now where all the parts will come together.07:45
rvbaExactly.07:45
rvbaWe will start by generating preseed files "on the fly" given the proper arguments (node, release, type of preseed {commissioning, etc}).07:46
jtvOn node status change, I guess?07:47
jtv(BTW bear in mind that we may not know which of its MAC addresses a node will use during pxe boot)07:48
rvbaNo, really "on the fly", so it will be generated when we will need it.07:48
jtvDoesn't that usually coincide with node status changes?07:51
rvbaWell, we will add a way to actually see the preseed file in the UI.  This is not linked to the status being changed.07:52
rvbaBut obviously, we will expose that on the metadata API too.07:52
jtvYou're probably aware, but just in case: you can now access the metadata for any given node, in dev/demo mode.07:53
rvbaYep, I've seen this.07:55
Davieyczajkowski: hola08:04
czajkowskiDaviey: care to reply to maas mail with some suggested faq08:05
czajkowski:)08:05
Davieyczajkowski: nah08:05
Davieybut thanks for the offer.08:05
jtvYou know?  This is what I'm here for.08:12
jtvThe love.08:12
czajkowskijtv: he's a charmer !08:13
jtvczajkowski: whatever you do, don't fall for his smooth manners.08:13
Daviey:D08:14
Davieyczajkowski: i will. i'm pulling your chain.08:14
jtvYou “yank” someone's chain, or “pull” their legs.  Pick one.08:15
jtvBecause otherwise, it sounds suspiciously like you're trying to flush czajkowski down the toilet.08:15
Davieyjtv: aww, the key is to not specifically identify the meaning.08:17
* jtv mumbles something about coding style08:17
Davieylol08:17
Davieyjtv: Which successes did you have overnight?08:18
jtvThat's a rather personal question.08:19
czajkowskijtv: hah08:19
Davieyjtv: Over MY night, your morning :)08:19
jtvBut hey, I don't have Daviey's smooth manners do I?08:19
Daviey<-- smooth to the core.08:19
jtvOh, THAT night.08:19
jtvWell, I have a working download script for the regular (install) initrd/kernels.08:20
Daviey\o/08:20
jtvI'm working up tests to run it through its paces; just got the first one passing.08:20
jtvSo I seem to be on the right track as far as that is concerned.08:20
Davieyjtv: and it injects them where?08:21
jtvInjects what where?08:21
Davieyjtv: it downloads them.. but stores them where?08:21
jtvIn /var/lib/tftpboot/ according to the documented directory structure.08:22
jtvNot the test, of course; that downloads from a local temporary directory and stores to a local temporary directory.08:23
jtvDaviey: https://code.launchpad.net/~jtv/maas/import-to-tftp/+merge/11045108:24
jtvHope you'll find it easy to follow, as shell script goes.08:24
Davieyjtv: I thought it was going to be stored in something like /var/lib/maas/XXX/, and generate /var/lib/tftpboot/ structure as a separate step?08:24
jtvArguably — but the intermediate step is in a temp directory.08:24
Davieyjtv: ok, looks neat :)08:25
jtvIf downloading a kernel fails it won't leave you with an updated initrd.gz that doesn't match your remaining old kernel, if that's what you mean.08:26
Davieyjtv: side note, we need to make sure that we can support importing, without having internet access aswell.08:26
jtvThe archive URL is configurable.08:26
jtvAlso, download failures on pxelinux.0 are ignored.08:27
Davieyjtv: it's more a case of, i can see /var/lib/tftpboot getting inconsistent, so being able to regenerate based on what maas already knows is useful IMO08:27
Davieybut yes, this is a good first step in that direction08:27
jtvWell this is only for downloads.  Generating files is a whole other step.08:27
Davieyright08:27
Davieysounds good :)08:27
Davieyi'll stop distracting you now.08:28
Daviey:)08:28
jtv:)08:28
jtvGot a call coming up anyway08:28
Davieyjtv: My intent is Tues and Thurs, others by need.  You can see too much of eachother, right.08:28
jtvQuite08:29
jtvBy the way, Daviey, has anyone tried the new random-node metadata access yet to your knowledge?09:35
Davieyjtv: random node?09:48
DavieySorry, can you remind me what this is?09:48
jtvDaviey: where you get access to any node's metadata.09:50
jtvPerhaps I should say arbitrary.09:50
jtvBut we accept the word in Random Access Memory…09:50
Davieyahh09:51
Davieyi see.. i explored it myself.. but not used it in anger as yet09:52
jtvWell if the exploration turned up no problems, then I'll call that a success at least as far as it goes.09:52
Davieyjtv: \o/09:52
DavieyAlways good to end the week with noted success.09:53
jtvWell I'm quite happy already that I've finally got a new download script up for review!09:55
* jtv stretches legs09:57
Daviey\o/10:10
=== matsubara is now known as matsubara-lunch
rvbaDaviey: sure.10:18
Davieyrvba / allenap: Do you have a list of deps you still need from pypi?10:19
Davieythe correct fix should really be to package them up IMO10:20
DavieyAlternatively, our brothers in openstack-ci have a local pypi mirror for the deps they need.  That is another alternative.10:20
rvbaDaviey: allenap will confirm that but for some reason, python bootstrap.py insists on downloading stuff.  stuff=zc.buildout.  Installing the package does not solve the problem.10:21
Davieyi *love* buildout.. it does so much for us. :)10:22
rvbaDaviey: is it easy to spoof pypi.python.org to localhost?10:26
allenaprvba: We can point buildout/distribute wherever we want.10:28
allenaprvba, Daviey: I thought of just putting the packages in my public_html on people.c.c.10:28
allenapAs an experiment.10:28
rvbaallenap: the problem is the 'python bootstrap.py' run right?10:28
allenaprvba: The problem is everything :)10:29
allenaprvba: I /think/ we can address that, but we also need the deps for after that.10:29
rvbaallenap: putting the deps in ~/.buildout should be enough for "after that".10:30
allenaprvba: Okay. We need to store those deps somewhere. What we use for Jenkins we should also use for ourselves, don't you think?10:31
rvbaallenap: well, since all of us have internet access the current situation works fine for us.  If we need to hack something real quick to get Jenkins to work then it's fine by me.10:33
allenaprvba: Okay, deal. We figure out the zc.buildout thing, then hack the cache for Jenkins.10:33
allenapAs in zc.buildout gets a proper fix, Jenkins gets duct tape?10:33
rvbaallenap: WFM :)10:34
rvbaallenap: I like Daviey's idea of spoofing pypi.python.org.  But I'm not sure what it means exactly.10:37
allenaprvba: Using lp:~allenap/maas/effing-download-cache, http_proxy=http://localhost:1234 make build --> http://pastebin.ubuntu.com/1042191/ (i.e. it tries to download zc.buildout, fails, but then builds *fine*, pos)10:39
rvbaallenap: well, if matsubara-lunch can try that on the Jenkins box and it works, then \o/.10:43
allenaprvba: It's caused by the index.obtain(...) line in bootstrap.py.10:44
=== matsubara-lunch is now known as matsubara
matsubaraallenap, rvba: doesn't seem to work11:04
matsubaraallenap, rvba https://pastebin.canonical.com/68213/11:06
Davieyrvba: I mean having a fake pypi mirror, that is bascially all11:08
Davieyrvba: see, this is what openstack does http://pypi.openstack.org/11:08
Davieymirror of the tar packages they care for.11:08
allenapmatsubara: lp:~allenap/maas/effing-download-cache now has a fix for the always-downloading-zc.buildout problem. Can you try populating ~/.buildout/cache/dist (I can get you content here if you don't have any somewhere), then try building this branch?11:15
matsubaraallenap, https://pastebin.canonical.com/68214/ that's the content of the cache/dist dir11:17
matsubaraallenap, still got the MissingDistribution11:18
matsubaraah the problem is that the cache in the jenkins machine is missing psycopg11:29
allenapmatsubara: I'm going out now, but I'll be back later. I've added virtualenv support to effing-download-cache, which allows us to install buildout without using its ungood bootstrap.py script.11:44
rvbamatsubara: allenap is the real specialist here but I'm back from lunch and ready to help you if I can.11:49
matsubararvba, cool. I was uploading the files to the cache and now am re-running make build12:20
matsubararvba, looks like make build worked this time when I updated the cache (without updating the branch with the latest changes from allenap)12:57
rvbamatsubara: \o/.12:58
allenapmatsubara: \o/13:06
allenapmatsubara: Which changes, if any, did you get from my branch? I'll get them reviewed and landed.13:07
matsubaraallenap, rvba: oh, sorry!!! I ran the make build in the wrong terminal and of course, locally, it just work! (/me is embarrassed)13:07
* matsubara fetches brown paper bag13:08
allenapHaha :)13:08
rvba:)13:08
matsubaraallenap, rvba: make build is now complaining it can't find lxml: MissingDistribution: Couldn't find a distribution for 'lxml==2.3.2'.13:21
allenapmatsubara: Ah, that has to be installed on the system.13:21
matsubarabut that's installed as a package. shouldn't it fallback to the system one rather than trying to download one or use from the cache?13:21
matsubaraunless...13:21
matsubaraii  python-lxml    2.3-0.1build1  pythonic binding for the libxml2 and libxslt13:22
matsubaragrrrr13:22
matsubarathe system one is old!13:22
matsubaraNo LSB modules are available.13:22
matsubaraDistributor ID: Ubuntu13:22
matsubaraDescription:    Ubuntu 11.1013:22
matsubaraRelease:        11.1013:22
matsubaraCodename:       oneiric13:22
matsubaraargh, jenkins machine is running oneiric13:22
rvba!13:22
allenapOh dear god.13:22
matsubaraI think we have a bigger issue now13:22
allenapHaha :)13:22
rvbaIndeed :(13:22
matsubaraok, I'll have to talk to Larry about this. there are too many things running on that machine for me to just dist-upgrade. I'll let you know through the list. sorry about the confusion13:23
allenapmatsubara: Good luck! :)13:24
matsubarathanks :-)13:24
allenapmatsubara: A schroot would work.13:24
matsubarahmmm that's a good idea. Any good docs to set that up? Maybe I can setup a schroot and a exclusive node to run MAAS on without the need to update the whole OS of the Jenkins master13:25
matsubaraok, I'll sort it out with Larry as I'll definitely will need help. If I can't get done this today, I'll email the list an update13:26
matsubaraand if you have a good doc about the schroot let me know13:26
allenapmatsubara: https://dev.launchpad.net/Running/Schroot is a doc I followed one. The man page is really good too.13:31
allenaps/one/once/13:31
matsubaracool. thanks!13:40
jtvI'm off.  nn everyone!13:46
allenaprvba: Got time for a review? https://code.launchpad.net/~allenap/maas/effing-download-cache/+merge/11053414:10
rvbaallenap: sure.14:10
allenapThanks!14:12
rvbaroaksoax: Hi Andres, I've got a question for you.  I'm working on the preseed snippets/template and I notice that the variables are indicated by a '$' sign (e.g. $http_port).  That's all right but now, in a snippet (maas_proxy to be precise), I've found a different syntax: "d-i     mirror/http/proxy string http://@@server@@:8000/".  Would you know why we have a different syntax here?15:10
rvbaroaksoax: I suspect this means that this is interpolated at a later stage (i.e. not during the preseed generation).  Am I right?15:11
roaksoaxrvba: yeah, it seemed to me as they first used @@server@@ but then changed to use $15:12
rvbaroaksoax: Ah ok.15:14
rvbaThanks.15:14
roaksoaxrvba: although, it also seems that @@server@@ is a global variable, while '$' is a local variable, per system, profile, distro etc15:15
rvbaroaksoax: oh, I think it's only a funky cobbler extension to Cheetah templates.  I just spotted http://paste.ubuntu.com/1042515/ in cobbler/templar.py.15:19
roaksoaxI see15:28
roaksoaxyeah it is a funky thing indeed15:28
=== matsubara is now known as matsubara-afk

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