/srv/irclogs.ubuntu.com/2012/10/04/#maas.txt

bigjoolsdamn, need to do something about the slow tests in maasserver00:06
roaksoaxbigjools: alright, all yours:00:07
roaksoaxbigjools: https://code.launchpad.net/~andreserl/maas/maas_ipmi_autodetection/+merge/12791100:08
bigjoolsok00:08
* bigjools slaps apt00:09
roaksoaxalright, I'm off00:09
roaksoaxit is being a long day00:09
roaksoaxttyl00:09
bigjoolscheers00:09
Davieyroaksoax: Oh wait!00:14
smoserbigjools, i was looking at that signal stuff00:19
smoseram i right that WORKING messages just get sent to /dev/null ?00:20
smoseri'm not really here, but our the idea was to have enlistment set up a new user in ipmi00:26
smoserand post that home00:26
smoserbut in enlistment we don't have any creds.00:26
smoserie, in enlist we'd create a temporary user 'maas-commissioning' in the ipmi and a password and such.00:26
smosermaas would then use that creds for commisioning and would wipe it after that.00:26
smoserthat way, you always know that 'maas-commisioning' user is not intended for anything00:27
smoserand can be thrown away.00:27
smoserand after 'accept', its ok to trash the 'maas' user that might have been there.00:27
smoserand now, i'm gone00:27
smosergood night.00:27
bigjoolswe can add power parameters to the enlistment API call00:33
bigjoolsthen you can do what you like00:33
=== matsubara is now known as matsubara-afk
jammatsubara-afk: if you are around, for bug #1061286, what value did you enter into juju? (was it an integer or a decimal)? 'cpu_count' should be an integer, so I'm wondering who is converting it (or maybe you just entered 1.0 yourself)02:19
ubot5Launchpad bug 1061286 in MAAS "juju bootstrap returned ERROR Invalid 'cpu_count' constraint '1.0'" [Critical,Triaged] https://launchpad.net/bugs/106128602:19
roaksoaxbigjools: I addressed smoser's suggedstions, could you please :)? https://code.launchpad.net/~andreserl/maas/maas_ipmi_autodetection/+merge/12791103:19
bigjoolsroaksoax: you might as well land it, I'll approve.  It's hard to make suggestions at this stage because anything I would change would be quite substantial I think.  I don't want to block you.03:24
roaksoaxbigjools: alright, may I ask what you see wrong with it? :)03:27
bigjoolsno tests for starters :)03:33
bigjoolsnothing fundamental, I'd just structure it very differently based on TDD03:33
roaksoaxbigjools: right, but there's things that might be more difficult than others to have tested, maybe this is the case, maybe not03:37
* bigjools → lunch03:37
bigjoolsit's hard time-wise at the moment but we'd be very happy to help with that03:37
jamroaksoax: I think the big thing is that if you refactor into small functions, then you can test the functions in isolation, rather than trying to test one-big-main function.04:25
jambigjools: if you're back from lunch, 'make sampledata' is failing because NodeGroup doesn't match. Was there an obvious change recently to fix that?04:34
jamit appears that the 'master' nodegroup hasn't been defined?04:39
jamthough I can see it... :(04:39
jamso, if I change all of the references to [master] to be 1 (the number of the master nodegroup) it works fine04:47
jamI'm guessing whatever query it is supposed to be doing is querying on the wrong field?04:47
jambigjools: it looks like 'get_by_natural_key' changed from being the nodegroup's name to being the nodegroups UUID, but the sampledata wasn't updated05:20
jamor maybe it has always been uuid, but the uuid used to be 'master' as well?05:22
jamrvba seemed to do that change, I'll try to bring it up with him05:22
bigjoolsjam: yeah it'll be rvb's change05:56
jambigjools: it looks like he did that Sept 10th, seems odd nobody would have noticed since then.05:56
jamShould we be adding 'make sampledata' to the Jenkins run?05:56
bigjoolsjam: we're obviously not depending on sampledata.  Which is good :)05:57
jamwell, *I* use it for manual testing but yeah I agree with the basic premise05:57
jamrvba: can you look at https://code.launchpad.net/~jameinel/maas/sampledata-nodegroup/+merge/12793607:05
jamit seems your NodeGroup changes broke the sampledata code.07:05
rvbajam: ok07:07
jamrvba, allenap: Via the API, how does MAASClient send a list? Do you json.dumps() it and pass it as value=JSON_STR or do you pass it just as value=list and the list get URL encoded into the parameters?07:12
rvbajam: your change seems to be reasonable but nothing should be broken right now: when the sample data is loaded, the uuid of the master node group is 'master'.  It's changed to a proper uuid only when the (master) cluster controller connects to it.  What kind of breakage did you see?07:14
jamrvba: 'make sampledata' for me fails with a NodeGroup matching query does not exist.07:17
rvbajam: on trunk?  I don't get that failure :/07:17
jamrvba: and if I look at bin/database shell I see that the nodegroup has a real UUID07:17
rvbaI see, the master nodegroup uuid has been changed.07:17
jamrvba: how do you make sure the db is fully clean? isn't that what 'make sampledata' is doing?07:17
rvbaAnd you try to reapply the sampledata.07:18
jamI did run 'make distclean' in the middle.07:18
jamrvba: well, this is in a tree that I have done work it and done a run in the past, and I'm trying to bring in new sampledata, yes.07:18
jamI'm fine nuking it07:18
jambut 'make distclean' didn't seem to do that.07:18
rvbaYou should not have to nuke it to load the sampledata.07:20
jamrvba: sure, which is why using 'id' which doesn't change makes it easier :)07:22
rvbaRight, the only problem is that you're now relying on the fact that the master nodegroup has id 1.  That is reasonable but it's still implicit.07:24
rvbaThis nodegroup is created by ensure_master().07:26
w7zjam: I've been doing rm -rf db07:37
jamrvba: well, if you are changing the UUID we can't trust that, and that is the current 'natural' key.07:37
jamw7z: well, with the patch I mentioned, it works whether you rm or not07:38
jamw7z: also, don't you need to kill postgres before you delete the dir?07:38
rvbajam: true, that's why I've approved your branch.07:38
jamrvba: yeah, I would be happy to comment it, but since that isn't possible either :)07:39
jamwell, maybe it is07:39
rvbajam: a better solution would be to have the masternodegroup in the sample data as well with an explicit id=1.07:39
rvbaInstead of relying on ensure_master to create it with the right id.07:40
rvbaBut I'm probably nitpicking here.07:40
bigjoolsjtv: I'm not sure if https://bugs.launchpad.net/maas/+bug/1061409 is the cause of commissioning getting blocked or not, I hack a fix in and it still blocks but I can't tell if it blocks in the same place07:47
ubot5Ubuntu bug 1061409 in MAAS "upload_dhcp_leases runs even when interface is unmanaged" [Critical,Triaged]07:47
bigjoolsoops wrong bug07:47
bigjoolsubot you suck07:47
jtvAhem.  You're blaming the wrong bot.07:48
bigjoolsthat bug is "MAASAPINotFound: Unknown metadata attribute: public-keys during commissioning"07:48
jtvI think the fix would be: if there are no SSH keys, return a success response that does not contain any keys.07:49
jtvThat particular API doesn't use JSON, so AFAICS an empty string would be the appropriate response.07:49
bigjoolsI hacked it to return ""07:50
jtvRight.07:50
jtvSame error, or different one?07:50
bigjoolscommissioning hangs for me still but like I said I can't tell if it's the same :/07:50
jamw7z: there is a bug matsubara just opened about getting a failure trying to commision passing cpu_count07:50
jamI tried it locally, and couldn't reproduce (without juju in the loop.)07:50
jtvIs that the one where cpu_count is 1.0?07:50
jamjtv: yes07:50
jamw7z: can you look into it?07:50
jtvI would guess that's unrelated.07:51
w7zheh... that's interesting07:51
jamw7z: bug #106128607:51
ubot5Launchpad bug 1061286 in MAAS "juju bootstrap returned ERROR Invalid 'cpu_count' constraint '1.0'" [Critical,Triaged] https://launchpad.net/bugs/106128607:51
jamw7z: note that I can try 'masscli api m nodes acquire cpu_count=1.0' and it just tells me there are no nodes to acquire, but doesn't give me an InvalidConstraint failure.07:52
w7zwhat's the least stupid way of fixing that? changing int(n) to int(float(n))?07:52
jamw7z: read the bug07:52
jamdo we want to allow float?07:52
jamif so, do we want to round?07:52
jamwhat should be happening if you pass something like 'abcda'07:53
jamwe want it to fail sanely as much as possible07:53
jamlooking at the report, diogo had a traceback, but it looks like that was just in the log07:53
w7zah, your comments covers some stuff07:53
jamit may not have been reported as anything other than BAD_REQUEST07:53
w7zright, answer to 1) is everything corretly happened07:53
w7zthe juju output is good, and I think the maas log is just being thorough07:54
w7zcan fix in juju maas provider and make maas more liberal07:54
jamw7z: what is weird is that when I use 'maascli' I don't get InvalidConstraint07:54
jamw7z: where did the 1.0 come from? Is that just the default for 'cpu' ?07:55
w7zyup.07:55
jamw7z: which means this is critical to fix, since it breaks everyone :)07:55
w7zit's trivial at least07:56
jtvbigjools: is it possible that you get a traceback on the server if there are no SSH keys *but* the client just shrugs it off and moves on, and then hangs for unrelated reasons, with or without your fix?  The bug as originally reported didn't seem to affect enlistment at all -- it was really just an annoying but otherwise harmless traceback in the server logs.07:57
bigjoolsjtv: that is entirely possible07:57
w7zif asked, I'd have said int('1.0') returned 1...07:57
bigjoolsthe original bug was commissioning too, not enlistment07:57
jtvStrange.  I saw that in the title, but the description said enlistment.07:58
w7zjam: if diogo wants to go again, he can set the cpu constraint to something else... I don't think it gets auto floatified07:58
w7zright, time for me to leave07:58
jtvI thought all numbers got floatified in JS.   :)07:58
jtvJust like in good old Sinclair BASIC.07:58
jtvAnd probably a few others that I didn't bother with as much.07:59
w7zthey do, but fortunately they're porting juju to go, not js :D07:59
bigjoolsjtv: commissioning is grabbing meta data then hanging08:02
bigjoolsuser-data is last thing it grabs08:03
jtvI guess the server logs would tell you whether that succeeded.08:03
bigjoolsthen sits at a login prompt on the console08:03
jtvLogin prompt?  Hmmm08:03
jtvI guess the node's status in the DB stays COMMISSIONING?08:04
bigjoolsyes08:04
bigjoolssomething going wrong in cloud-init I guess08:04
jtvOr the commissioning script?08:04
bigjoolsyeah08:05
allenapjam: Sending a list is the same as sending multiple values in a query string: var=value1, var=value2, etc. Is that what you were after?08:21
jamallenap: right, do I send it as a list, or do I json.dumps it first, sounds like I just send a list08:24
allenapjam: Yeah, just send a list.08:34
allenapjam: Now... I stumbled across something in Piston a while back... it looked like it might be able to accept JSON or YAML in place of multipart/form-data request bodies (pickle too, but they has wisely disabled that).08:35
jammgz: you're at gavins?08:48
jambigjools: hangout URL?08:49
mgzjam: at david's, gavin will be here this afternoon as well08:49
mgzbut I may have trouble getting on hangout08:49
jammgz: want to join up on mumbel?09:02
mgzjup09:02
jammgz: https://code.launchpad.net/~jameinel/maas/tag-updating/+merge/12796209:11
mgzta09:12
Fajkowskyhey guys I am still have problem with my maas and I am maiking fresh instalation of maas. I want make my server work with existing DHCP server on my router, how can I do this?09:14
FajkowskyIn install tutorial is only say how "Set up a fresh DHCP server to work with MAAS."09:14
bigjoolsFajkowsky: you have to set it up so it works for PXE booting09:14
bigjoolsso add next-server and filename settings09:14
bigjoolsnext-server=<your maas server>09:15
bigjoolsfilename=pxelinux.009:15
Fajkowskyso I will have two maas servers?09:15
bigjoolsno09:15
bigjoolsyou need to tell the existing DHCP server to pxe boot via your maas server09:15
Fajkowskymy router will that know?09:16
Fajkowskyok09:16
bigjoolsyou need to configure your routers dhcp settings09:17
bigjoolsmgz: I think you broke juju09:18
bigjoolsjuju deploy doesn't work against maas09:18
Fajkowskyok I try do this09:18
mgzbigjools: see discussion earlier09:21
bigjoolsmgz: on here?09:21
bigjoolsmgz: I don't see any error, it says it was successful but no nodes are allocated at all09:21
mgzdo --constraints="cpu=1"09:22
mgzit's an unfortunate aspect of juju design that errors from deployment don't get reported back to the client in any sane manner09:23
mgzyou should see one from bootstrap though, so I guess you already had an earlier environment bootstrapped?09:23
Fajkowskibigjools: I still don't understand something. How can I add next-server?09:23
bigjoolsmgz: I saw no errors from bootstrap09:24
bigjoolsmgz: deploy just gives me instance-id: pending but I don't see even an "acquire" call in the maas log09:24
mgz...I wonder if that's the same bug then...09:24
bigjoolsFajkowski: I don;'t know, you have to read your router's manual and see if it supports PXE09:25
Fajkowskiok09:25
bigjoolsmgz: indeed.  this is version 0.5.1+bzr566-1 of juju09:25
mgzokay, not bug 1061286 and I claim innocence until proved otherwise :D09:26
ubot5Launchpad bug 1061286 in MAAS "juju bootstrap returned ERROR Invalid 'cpu_count' constraint '1.0'" [Critical,Triaged] https://launchpad.net/bugs/106128609:26
bigjoolsmgz: it's not that one no :)09:26
bigjoolsthis is weird nonetheless09:26
Fajkowskibigjools: But there is option to install on "Existing DHCP server you don't control."09:27
mgzbigjools: so, the steps here are #1 run juju with -v and see if that gives more details09:27
bigjoolsFajkowski: that just means that you have to configure an external DHCP server09:28
mgz#2 use nova client to see if a machine got booted at all09:28
mgz#3 if so, ssh on and look at cloud-init and juju logs in /var/log for clues09:28
bigjoolsmgz: it's not getting anywhere near that far09:29
bigjoolsmgz: there's simply no "acquire" call being passed to MAAS's API09:29
bigjoolsyet juju decides it got allocated a node.  Bizarre.09:30
mgzso, just #1 then.09:30
bigjoolsyup09:30
mgzbut maybe the logging in the maas provider isn't helpful, and you need to hack a little more in09:30
bigjoolspossible yeah :/09:30
bigjoolsbut not sure why this would suddenly break09:30
mgzbigjools: any luck? the juju version you're using does not even have any of the maas provider changes, so I don't have any clever guesses09:43
bigjoolsmgz: yeah I just worked that out.  Not really getting anywhere, so trying from square 109:43
mgzpoke me if I can help with anything09:44
bigjoolsmgz: thanks09:44
jtvReviewers needed!  https://code.launchpad.net/~jtv/maas/bug-1058282-ditch-api/+merge/12795910:28
mgzjtv: the branch name scared me when I got the email, but code looked good :)10:30
jtvmgz: I go for shock value10:31
jtvBOOM!!10:31
mgzjtv: is there a plan on profile name too?10:33
jtvYes.  It'll have to work like juju: there is one, default profile -- until you define a second one and then you must still specify one each time.10:35
mgzjuju does have an envvar to back that up now as well10:35
mgzwhich is less annoying than -e all the time10:35
jtvFunny, that's exactly what I just outlined myself.10:37
jtvBut time is short.10:37
bigjoolsmgz: so, no nearer to finding anything out.  I added full logging on maas and there's no request to even allocate a node!  Yet it thinks it has got one ...10:49
bigjoolsI suspect a nasty juju bug as there's some stale data hanging around somewhere10:49
rvbajtv: could you please have a look at https://code.launchpad.net/~rvb/maas/bug-1061409/+merge/12797910:50
rvbajtv: I'll review the branch you just pupt up for review.10:51
jtvOK10:51
rvbata10:51
jtvMy system's not very responsive at the moment, which may complicate things.10:51
mgzbigjools: and the juju client logging isn't anything useful? I'd add things there10:51
bigjoolsmgz: I gotta try and remember my way around it :(10:52
mgzbigjools: I'd suggest branching lp:juju then adding some log calls in juju/providers/maas/ maas.py and maybe launch.py then `python setup.py install --local`10:55
bigjoolsyep10:57
bigjoolsmgz: .... it's not even calling start_machine .... !11:16
* bigjools boggles11:16
jtvDoes it assume that's already done!?11:17
mgzbigjools: my guess, you have some stale values in the file storage?11:18
bigjoolsmgz: I destroyed env.... still does it.11:18
bigjoolsbut that could be it11:18
mgzwhat does a full list on maas's file-ish backend give?11:18
bigjoolsreluctant to destroy again since it means waiting for a node to install11:18
mgzbecause this seems like a bug that would be worth fixing11:19
mgzdon't destroy, just list the file stuff11:19
bigjoolsjust loads of files from today11:20
bigjoolsmgz: two charm files, bootstrap-verify and provider-state.  Seems normal.11:23
* jtv reboots in hopes of a better system11:24
bigjoolsmgz, how do I get round the contraints bug on bootstrap?11:31
bigjoolsand wb :)11:31
mgzbigjools: so, as I was trying to say before network bounced me, bootstrap-verify and provider-state are what we need to know the contents of11:34
mgzbigjools: so, as I was trying to say before network bounced me, bootstrap-verify and provider-state are what we need to know the contents of11:34
mgzand my constraints work around doesn't work, but I'm submitting a juju fix now that you can pull in11:34
bigjoolsI went back to system juju for now11:34
* bigjools relocates11:36
mgzbigjools: so, inbetween all my dropping there, did you find an answer to your original mystery?11:36
mgzI'm just submitting a juju-side fix now, network-permitting11:37
bigjoolsmgz: no :(11:39
mgz(third attempt) so, as I was trying to say before network bounced me, bootstrap-verify and provider-state are what we need to know the contents of11:41
bigjoolsunfortunately they are no more :(11:44
bigjoolsDaviey: are you currently able to run commissioning successfully?  It is hanging for me.11:51
Davieybigjools: I haven't tried.  Want me to?11:52
jtvAny news on where it hangs?11:53
bigjoolsDaviey: it would be useful to confirm or deny my setup, thanks11:54
bigjoolsDaviey: use latest daily package11:54
bigjoolsjtv: I see metadata requests, then the console hits the login prompt11:54
bigjoolsand that is it11:54
jtvAnd no "signal" call.  :(11:55
Davieybigjools: i can only really test it on garage lab atm, which i'd rather avoid.11:57
bigjoolsDaviey: figures :)11:57
DavieyI'll soon have access to a rig in bluefin11:57
bigjoolsmgz: so even after destroy-environment and wiping all filestorage on maas, it is still failing to acquire a node on deployment !11:59
rbasakroaksoax: please could you take a look at bug 1061547?12:07
ubot5Launchpad bug 1061547 in MAAS "maas-import-squashfs: line 47: RELEASES: unbound variable" [Undecided,New] https://launchpad.net/bugs/106154712:07
jambigjools: I'm ready to start doing the maasserver side of farming work out to celery workers. You mentioned there should be lots of tests to crib from12:30
jamhowever, there is only 1 test that 'uses_rabbit_fixture'12:31
jamand it is disabled because it broke the test suite in other places.12:31
bigjoolscelery fixture12:31
bigjoolsnot rabbit12:31
jambigjools: ah ok, lots of CeleryFixture12:32
bigjools:)12:32
jtvAny reviewers around?  https://code.launchpad.net/~jtv/maas/bug-1058282-ditch-api/+merge/12795912:34
mgzjtv: poking allenap at that now12:35
jamjtv: why 'pardir' repeated, instead of 'dirname()' repeated?12:35
jtvBecause it doesn't expect me to nest.12:36
jtvThanks mgz, but I think jam's already looking12:36
jamtechnically, I think he was looking first :)12:36
bigjoolssmoser: hi - commissioning is currently hanging for me after getting metada, have you seen this?12:37
jamjtv: this does mean that the names people login with potentially collide, doesn't it?12:40
jammaascli $LOGIN do stuff12:40
jamso if we add a module 'foo'12:40
jamand somebody called their login 'foo'12:41
jamit would be ambiguous12:41
jamI'm willing to have people deal with that (or re-add 'api') once we actually support it, though.12:41
jam[You could select non-api via an option instead of an argument, for example]12:41
jam[maascli --mod=api $LOGIN do stuff]12:41
jtvIf we do add another module, api will be the default.  In other words, there'll be some way of selecting another module explicitly if you want one.12:41
jtvIf you look at the MP, it says that "api" is a sensible default even if we add more modules.12:42
rbasakroaksoax: also bug 106157712:42
ubot5Launchpad bug 1061577 in MAAS "IPMI configuration on highbank appears to fail" [Undecided,New] https://launchpad.net/bugs/106157712:43
jtvjam: selecting another module would probably happen through an option.  The fact that we can also come up with wrong ways to do it doesn't affect us much.  :)12:43
jtvThanks jam!12:49
bigjoolsmgz: found the source of the fault in the provisioning agent log: http://pastebin.ubuntu.com/1259905/  NFI why that happens though13:03
mgzah, this looks fun13:04
mgzguess blame ipv6?13:07
mgzerror looks like when trying to resolve the maas api endpoint at any rate13:07
mgzso, try doing that outside of juju, using twisted, see if you can get the same failure13:08
jamrvba, bigjools: So I have a test that properly triggers calling the provisioningserver, however, all my tests are failing while the task code is trying to call back to the API13:14
jam(getting a urllib2.open error)13:14
jamI'm calling NodeGroup.objects.refresh_workers()13:14
jambecause if I don't, I get failures that we don't have credentials to contact the maas_url info13:15
rvbajam: you probably have to patch the method that calls back to the API so that it talks to the test API.13:15
jamrvba: so... how do I actually test that the api calls are valid?13:16
jamif I patch both side13:16
jamthen I'm not actually testing the thing, you know, works13:16
rvbajam: you won't patch it entirely, probably just the url used will be enough.13:16
jamrvba: so there is a test service running?13:16
jamwhat URL do I need to use?13:16
bigjoolsmgz: what makes you say ipv6?13:16
jam(I can certainly set the maas_url to whatever we want)13:17
jamI would have thought the tests were already doing that, in fact.13:17
rvbajam: well, you need to simulate what self.client is doing.13:17
rvbajam: more precisely, patch the thing that calls the API with self.client.13:18
jamrvba: well MAASClient has a different api than self.client13:18
jamspecifically, test.client takes {'op': ...} but MAASClient takes 'op' as a regular argument.13:19
rvbaWhat do you mean 'a regular argument'?13:19
jamrvba: In a test case you do: self.client.get(PATH, {'op': x, arg1: y, ...})13:20
jamin MAASClient you do client.get(PATH, x, arg1=x, arg2=y...)13:20
rvbaMAASDispatcher.dispatch_query looks like it can be patched to use self.client instead of urllib2.Request13:21
rvbadef dispatch_query(self, request_url, headers, method="GET", data=None):13:21
rvbajam: is that enough to get you going?  AFAIK we haven't done that before.  I'm happy to help you with your branch, especially if you have failing tests I can work on.13:23
jamrvba: well lots of things failing because the nodegroup workers can't talk back to the api, but I think I can poke at it for a bit.13:24
rvbaOk, cool.13:24
smoserbigjools, did you get it resolved?13:25
bigjoolssmoser: no :(  got distracted trying to debug juju problems13:25
bigjoolssmoser: I can debug with you now if you can help?13:25
smoserwhat is "hangs"13:25
smoserdo you have any console log ?13:25
bigjoolsit doesn't complete - I see metadata requests, then it gets to the login prompt on the console and that's it13:26
bigjoolsthe other VTs have nothing on them either13:26
jtvDo we still tell the nodes to use the region controller as a log server?  If so, you may find logged information on the server.13:28
bigjoolswe do actually13:29
bigjoolsnot sure it's used during commissioning; at least I can't see any commissioning logs13:31
jtv:/13:31
bigjoolsI will try again13:31
smoserbigjools, sorry for being dense. https://code.launchpad.net/~smoser/maas/preserve-sources-list/+merge/127825/comments/27532813:35
smoser"untick"13:35
smoserbut reguarding login prompt. thats expected.13:35
smoserttyS0 (serial console) will have log13:35
bigjoolssmoser: uncheck13:35
smoseryou can change command line parameters on the kernel to remove ttyS013:35
smoserwhere is "uncheck"13:35
smoseri'm sorry.13:36
smoserits probably obvious.13:36
bigjoolssmoser: click the green "extra options" and it opens up more text13:36
bigjoolsand then uncheck "needs review"13:37
bigjoolsit'll create the MP in WIP status13:37
bigjoolswhich prevents a diff being emailed out, primarily13:37
smoserhm.. wel i actually would have liked ot have the diff mailed out :)13:38
smoserbigjools, primarily i'm interested in comments on the test that is there.13:38
bigjoolssmoser: well you created the MP and then changed it to WIP :)13:38
smoserbigjools, as i didn't want someone to "approve" just yet13:38
bigjoolsok so if you do as I mentioned, changing the status to "ready" later will send the email13:38
bigjoolsanyway13:39
bigjoolsI need to remove ttyS0 then ...13:39
jamrvba: so there is another impedence mismatch. django.test.client.Client.get() returns python objects, while MAASClient.get() returns a string13:40
jamactually, I might be wrong13:41
jamI am wrong13:41
smoserbigjools, i have another solutoin to get some output on a tty13:41
smoserthat i thought of yesterday when diego complained about the same thing.13:42
smoserfwiw, i still thikn 'console=ttyS0' is the right default.13:42
bigjoolssmoser: it seems to have tty1 as default too though13:42
bigjoolsboth, I mean13:42
rvbaYou still might have to change to result of client.get/post so that it matches whaturllib2.urlopen returns.13:42
rvbajam: ^13:42
smoserfor any thing other than 3 systems, ttyS0 has a chance of being logged and remotely viewable, and graphics console has exactly zero percent chance of being logged.13:42
bigjoolsyes13:42
smoserbigjools, right. if there is no ttyS0 device, then kernel goes to tty1.13:43
smoser(and kernel puts kernel messages on both)13:43
smoserbut /dev/console ends up as the last valid entry on the cmdline13:43
smoserand messages from cloud-init are going to /dev/console13:43
jamrvba: yeah, urlopen returns a file-like object that has a .status_code and a .content13:43
jamrvba: but that looks a whole lot like what Client.get returns13:43
rvbaIndeed.13:44
jamI imagine they are both based on Httplib's response object.13:44
bigjoolssmoser: will it rsyslog in commissioning mode?13:44
smoserit does not rsyslog to maas server.13:45
smoserwe could make that happen, but cloud-inti woudl have to read the cmdline params to set up syslog. and it does not support that.13:46
smoserbigjools, theo ther thing we can do is that cloud-init can do python logging13:46
smoserand we can feed it a config file for that13:46
smoservia user-data13:46
smoserthe simpler thing right now is:13:46
smoserhttp://paste.ubuntu.com/1259976/13:46
smoserthat will get you data on tty213:46
smoserwell, more data.13:46
bigjoolsok I'll do that in 5 mins13:47
bigjoolsmgz: so in another twist, I restarted the PA on the ZK node and now it works.  WTF!13:50
mgzo_O13:53
jamrvba: ok, so the return signatures sanely overlap,however the arguments do not.13:54
jamrvba: MAASDispatcher wants 'data' which is already an encoded_multipart_data13:54
jamwhere some arguments may be in the URL13:54
jamand some are in the data itself.13:54
jamso we have to parse everything back out of the data13:55
jamto get it into a form to pass to a Django.Client.get()13:55
jamI think I have to go up a level to MAASClient, and just curry argument parameters.13:55
* rvba has another at MAASDispatcher.13:56
rvbaanother look*13:56
jamrvba: dispatch_query takes a 'data' parameter, which is already encoded as multipart mime13:57
jtv1Are you trying to build a dispatcher based on the django client?13:57
rvbaYep, that's what he's trying to do.13:57
jtv1I tried that once, but the mismatch was great enough to make it a losing proposition.13:57
jamjtv1: the provisioning server needs to talk to the api to get work done13:58
jtv1It does, yes.13:58
rvbaWell, that's basically what you're trying to do now, isn't?13:58
jamAre there credentials I can pass it so it can just do it13:58
jamor do we need to use the testing client and proxy it.13:58
jamI'm thinking to not do the dispatcher, because it has already processed the data too much.13:59
jamHowever, doing it at the MAASClient level looks more sane.13:59
jamAs you have to change some arguments13:59
jambut the data is still in python-object form.13:59
jtv1Time for me to bug out.  See you all tomorrow.14:00
rvbann jtv1.14:00
jtv1nn14:00
bigjoolsnn14:00
bigjoolssmoser: nothing on tty214:01
smoserbigjools, well, i'd ditch the kernel cmdline opt and try again.14:02
smoserie, just console=tty114:02
bigjoolsok14:02
smoserbut if cloud-init got that data, then it really should output something there.14:03
bigjoolssmoser: you won;t believe this14:07
smoseri do not14:07
bigjoolssmoser: it just commissioned ok after removing ttyS014:07
smoserbigjools, not possible.14:07
smoserits a *watched* pot that doesnt boil14:07
bigjoolsI told you you wouldn't :)14:07
smosernot a unwatched pot14:07
bigjoolsis it likely that something is hanging on a non-existent ttyS0?14:08
smoserbigjools, the kernel wrote messages to ttyS014:10
smoserand thought that it was good14:10
smoserenough to assign /dev/console to ttyS014:10
smoserdid you enlist the system?14:10
bigjoolsyes14:11
smoserbecause that does the same thing14:11
bigjoolsso.... wtf is going on14:11
bigjoolsI'll try again with and without14:11
smoserbigjools, here.14:11
smoserso, delete the system14:11
smosermount the ephemeral image loopback14:11
smoseradd a user with sudo and some keys there.14:12
smoserthen ssh into the system and poke around while its haning.14:12
smoseri have been working on a script htat would do the above for you14:12
smoseras it is useful for debug14:12
smoserbut not yet finished.14:12
bigjoolsok14:13
bigjoolsI will do this tomorrow I think.  It's past midnight and I am pretty much about to flake out14:13
jamrvba: so there is one more complication, the code wants to be run on N workers (serially or sequentially is fine), but that means the cached 'nodegroup_uuid' needs to be set N times for the N workers.14:14
jamI might just fake something by patching the task which gets the 'queue' which happens to match the nodegroup_uuid14:15
jamI want to use.14:15
jambut it is... icky14:15
smoserbigjools, thanks. i'll have "backdoor-image" for you then.14:16
rvbajam: or you can call refresh_secrets with the right nodegroup_uuid before each task run.14:17
bigjoolswell I'm just retrying to see if it happens again :)14:17
rvbajam: but that's maybe not possible given the structure of the code you're testing…?14:17
jamrvba: well it is open to question how it should be working, given our earlier discussion.14:17
bigjoolssmoser: but thanks for that, I also wonder if we shouldn't just throw the admin's ssh key on there for enlist/commission anyway?14:17
jamrvba: the only obviously exposed code in Model is NodeGroup.objects.refresh_workers() which refreshes everything.14:18
bigjoolsfwiw with the ttyS0 in, stuff is appearing on tty2 instead of tty114:18
jamthough you can refresh_worker.refresh_worker() directly, I guess14:18
=== dpb_ is now known as Guest91546
smoserbigjools, i'm not opposed to that.14:19
rvbajam: well, everything={'api_credentials', 'maas_url', 'nodegroup_uuid'}14:19
smoserbigjools, but if it doesnt get to the MD, then it still doesnt work14:19
smoser(the adding ssh key)14:19
smoserbigjools, with the tee it should go to both tty2 and /dev/console14:20
smoser(and that log)14:20
bigjoolssmoser: so enlisting with ttyS0 there shows the log on tty2.  when commissioning, it gets as far as starting cloud-init, goes to a login prompt and there's no output anywhere14:21
bigjoolsand on that note, I shall go assume a horizontal position14:22
bigjoolsgood night14:22
smosergood night.14:24
jamrvba: well, I got to the point where I can get 'HttpResponseForbidden' which matches the 'only the actual nodegroup worker can do the work'.14:25
jamso that is ~ good :)14:25
rvbajam: \o/.  We might want to add the little utility you've created to our testing toolkit.14:26
jamrvba: lp:~jameinel/maas/populate-node-rebuilds if you are interested14:29
jamthe change is in 'test_tag.py'14:29
jamclass14:29
jamwhich is actually pretty small14:29
* rvba has a look.14:29
jamthough the 'use the right credentials' is really snuck in there by a magic patch and structuring the request code to set credentials right before the real request.14:29
* jam stops for now, dinner & family time.14:31
roaksoaxquery smoser14:57
roaksoaxerr :)14:57
roaksoaxrbasak: pin14:59
roaksoaxrbasak: ping14:59
rbasakroaksoax: pong, but on a call that's about to start14:59
roaksoaxrbasak: ipmi_si: Could not set up I/O space15:00
roaksoaxrbasak: how much RAM do you have?15:00
rbasakroaksoax: 4G.15:00
rbasakWhich is interesting as it's a 32 bit machine15:01
roaksoaxrbasak: on the arm boards i meant :)15:01
rbasakYeah15:01
rbasakOn the ARM boards :)15:01
roaksoaxrbasak: (you've got nice arm boards :P )15:01
rbasak:-)15:01
roaksoaxrbasak: so if you manually do this modprobe ipmi_msghandler modprobe ipmi_devintf modprobe ipmi_si type=kcs ports=0xca215:02
roaksoaxit fails15:02
roaksoaxrbasak: i'd need physical access to one of those to test TBH15:02
rbasakroaksoax: the third command fails15:03
roaksoaxrbasak: if you do this: modprobe ipmi_si15:03
rbasakroaksoax: that works15:03
rbasakroaksoax: well15:03
rbasakroaksoax: the third command didn't fail at the modprobe. THe modprobe succeeded. "ipmi_si: Could not set up I/O space" comes out of dmesg15:04
rbasakroaksoax: so it probably works a second time as the module is already "loaded"15:04
rbasakrmmod ipmi_si causes a kernel oops15:04
roaksoaxrbasak: so is that message shown also when modprobe without the arguments?15:05
rbasakroaksoax: I'll need to reboot to test again. I'll do that now15:05
rbasakroaksoax: modprobe ipmi_si type=kcs ports=0xca2 produces an error and removing the module then oopses15:20
rbasakroaksoax: but modprobe ipmi_si works fine and rmmod works fine too15:21
rbasakroaksoax: ports=0xca2 probably doesn't make sense on ARM15:21
roaksoaxrbasak: indeed15:21
rbasakroaksoax: can we test behaviour without the parameters?15:21
roaksoaxrbasak: yeah, just remove the parameters from the commissioning script in /etc/maas15:22
roaksoaxrbasak: reenlist and then comission15:22
rbasakroaksoax: just speaking to dannf about this. He says that ipmi_si should autodetect except where ACPI tables are broken, so shouldn't need parameters on Intel either15:22
dannfroaksoax: is there a reason for passing those in general?15:22
dannfseems dangerous imo - i could foresee similar problems on intel that rbasak is seeing on arm15:22
roaksoaxdannf: right, so the testing hardware i'm using doesn't set the port correctly so that's needed otherwise it wouldn't work15:23
roaksoaxdannf: it would be matter of testing it manually15:23
dannfroaksoax: eww - what hw are you using?15:23
roaksoaxdannf: HP Micro servers15:23
dannfreally.. and that's a plug-in card, right?15:24
roaksoaxdannf: yeah, ipmi cards were plugged-in afterwards15:24
dannfroaksoax: sounds like something that should get fixed upstream - though i'm not sure the right way atm...15:25
roaksoaxdannf:i filed a bug about it, and smb said it was more likely to be a buggy BIOS15:25
roaksoaxdannf: and that there's nothing he could do about it15:25
dannfroaksoax: that'd be true it it weren't a plugin card imo - i'm not sure how discovery of plug-in cards should work15:26
rbasakroaksoax: just testing now with ipmi_si parameters dropped. What behaviour should I expect to see?15:26
dannfroaksoax: imo, its probably better to have a modprobe.d/find-ipmi-card.conf on affected machines than passing the module in general - i think more hw will work that way15:26
roaksoaxrbasak: no stacktrace :)15:26
rbasakroaksoax: of course. I was wondering about MAAS power parameters. SHould these end up getting magically set?15:27
roaksoaxrbasak: yes15:27
dannffor example, i think dell machines use a bt interface instead of kcs.. but they may provide both for backwards compat15:27
* dannf thinks we need a pile of weird ipmi machines to test15:27
roaksoaxwe do15:28
roaksoaxDaviey: ^^15:28
roaksoaxmatsubara: do we have intel hardware to test ^^15:28
matsubararoaksoax, intel? AFAICT, all those lenovo machines are intel15:29
DavieyWe know we can't work with everything15:30
roaksoaxmatsubara: can you test the new commissioning stuff? It should be autodetecting IPMI and sending back to MAAS15:30
Davieyand IPMI is a poorly standardised service15:30
Davieywe can only enable hardware we have access to15:30
Daviey.. Canonical Hardware Cert will check this stuff btw15:30
matsubararoaksoax, will do.  maas - 0.1+bzr1139+dfsg-0+1168+116~ppa0~quantal1 should have all the changes, right?15:34
roaksoaxDaviey: ack!15:35
roaksoaxmatsubara: yes should do15:35
matsubaracool15:36
roaksoaxrvba: howdy!! so I have added a dir in src/provisioningserver/power/config/ and I need to source a file on the power scripts15:36
roaksoaxrvba: http://paste.ubuntu.com/1260164/15:36
roaksoaxrvba: but i need a way to determine the location of the config dir automatically, how should that be addressed?15:37
rvbaroaksoax: I think you should add a parameter to the context used when rendering the template.  That parameter will be named 'power_config_path' or something.15:38
rvbaroaksoax: in the python code, you'll use __file__ to compute that path.15:39
rbasakroaksoax: it seems to be better now15:39
rbasakroaksoax: enlistment did nothing, so I had to manually power cycle to get into commissioning15:40
roaksoaxrvba: so look at line 9, that's what I'm adding to the context of the templates15:40
roaksoaxrvba: but I need to determine the path, somehting like you would do to determine the path of the templates15:40
rbasakroaksoax: commissioning seemed to work. I saw Success three times and no stack trace, and it successfully commisioned15:40
roaksoaxrbasak: cool15:40
rbasakroaksoax: power type changed to IPMI, with username of maas and random looking password15:40
roaksoaxrbasak: \o/15:40
rbasakroaksoax: but BMC IP address is 0.0.0.0, so it won't work15:40
rvbaroaksoax: right, that's where you can use __file__.15:40
rbasakroaksoax: is that expected?15:40
rvbaroaksoax: to compute '<CONFIG-DIR>'.15:41
rvbaroaksoax: hold on.15:41
roaksoaxrvba: nope, so that means that your IPMI card didn't receive an IP address15:41
roaksoaxfrom DHCP15:42
rbasakroaksoax: it definitely does have an IP address15:42
rvbarbasak: ^15:42
roaksoax:)15:42
rbasakroaksoax: what do I do in userspace to extract the IP address in the same way that you're doing?15:43
roaksoaxrbasak: bmc-config --checkout | grep IP_Address15:43
roaksoaxrbasak: or bmc-config --checkout --key-pair="Lan_Conf:IP_Address_Source"15:44
roaksoaxerr15:44
roaksoaxrbasak: or bmc-config --checkout --key-pair="Lan_Conf:IP_Address"15:44
roaksoaxrbasak: on the UNBOUND varilable bug, I don't see anything.. (and I thought I had fixed that already) : https://pastebin.canonical.com/75908/15:47
roaksoaxrbasak: are you sure the script is the latest one?15:47
roaksoaxrbasak: did it have an IP address15:47
rbasakroaksoax: for that bug, note that I'm running out of trunk, not packaging15:47
rbasakroaksoax: I noted the trunk revision in the bug15:48
rvbaroaksoax: I think you want to keep all of that on the pserv side: something like (warning, untested code ;)) http://paste.ubuntu.com/1260183/15:48
rbasakdannf: http://paste.ubuntu.com/1260191/15:49
roaksoaxrbasak: ack will further investigate15:50
roaksoaxrbasak: cool thanks15:50
rbasakroaksoax: bmc-config --checkout gives 0.0.0.0, so that'll be where the problem is15:50
roaksoaxrbasak: so that means that IP doesn't have an IP address :(15:51
rbasakroaksoax: it does, because I'm using it15:51
rbasakroaksoax: it's how I see the serial output and power control it. We've been doing that for months :)15:51
rbasakroaksoax: so I presume it's a driver issue15:52
roaksoaxrbasak: indeed15:52
rbasakroaksoax: can we assume this will get fixed? So I'd like to see ipmi_si without parameters if on ARM please15:53
roaksoaxrbasak: i might remove this all together15:54
rbasakOK15:54
roaksoaxrvba: alright, so with your branch I simply reference the config_dir in the template itself and do not add a defualt power_params15:56
rvbaroaksoax: yeah.15:56
roaksoaxrvba: cool thanks15:57
rvbaroaksoax: this way, this stays on the cluster controller side.15:57
rbasakdannf: http://paste.ubuntu.com/1260207/15:58
rbasakroaksoax: in your case, is your BMC set to DHCP?15:59
rbasakDo you see Use_DHCP in your version of my paste above?15:59
roaksoaxrbasak: the scripts sets it to DHCP if it is Static15:59
rbasakroaksoax: OK, but what is your bmc-config --checkout output for that section please, once it is set to DHCP?15:59
roaksoaxrbasak: yes it is exactly that one16:00
rbasakroaksoax: with 0.0.0.0, or with an IP address?16:00
roaksoaxrbasak: IP address16:00
rbasakroaksoax: OK, thanks!16:00
roaksoaxrbasak: it is set to 0.0.0.0 when the card hasn't yet obtained an IP from DHCP16:01
roaksoaxrvba: so is this correct in terms of the templating? http://paste.ubuntu.com/1260213/16:02
rvbaroaksoax: I'm not sure why you need to do "ipmi_config={{ipmi_config}}"…?16:04
rvbaWhy not simply: config={{ipmi_config}}/{{config_dir}}16:05
rvba?16:05
roaksoaxrvba: cool, will do that16:05
dannfrbasak: hrm.. ok, so maas is using the host to configure access to the BMC - and that is also how it figures out the BMC/HOST mapping?16:11
rbasakdannf: that's right16:11
dannfs/that is/is that/16:11
rbasakdannf: each node has separate and independent IPMI settings16:11
flacosteroaksoax, smoser: are we ready to move IPMI auto-configuration to QA, or we are still missing the enlisting piece?16:26
roaksoaxflacoste: it can be moved to QA for commissioning... enlistment is not yet doing anything IPMI related16:27
flacosteroaksoax: so it's not ready for QA then16:27
flacosteroaksoax: we need to be able to control power to go to commissioning16:27
smosermissing enlistment.16:28
smoserwe have no way to post creds in enlistment.16:28
smoserwe'd have to add that to enlist api16:28
roaksoaxyeah16:28
smoserprobaly not hard though i would guess16:28
smoserhm.16:28
roaksoaxflacoste: in order for us to do it we need to be able to send un auth settings during enlistment16:28
roaksoaxflacoste: which maas doesn't yet support16:28
flacostesmoser: so we are still missing the API bit there? i thought bigjools was taking care of this16:28
flacosteor we missed out the hand off yesterday evening on that?16:29
roaksoaxflacoste: we do have it for commissioning as part of the metadata API but not for enlistment16:30
roaksoaxnot for MAAS API16:30
flacosteright, we are missing the enlistment API change16:30
smosercorrect16:30
dannfroaksoax: fyi - got a ping in w/ an hp contact - he said he'd poke the microserver guys about this16:30
flacostervba, allenap: any chance one of you could take care of this to unblock smoser and roaksoax?16:31
roaksoaxdannf: awesome! thank you!16:31
rvbaflacoste: I won't be able to do that right as I have to step out for a few hours.  Can you take care of that allenap?16:37
roaksoaxrvba: the config dir thing breaks a lot of tests :(16:38
rvbaroaksoax: that's surprising.16:46
* rvba has to step out for a few hours.16:46
allenapflacoste, smoser, roaksoax: I'm here for a few minutes now, but I'll be back at ~1900 UTC for longer. What's the problem?17:00
smoserwe want to have enlistment take power_parameters17:00
allenapsmoser: Right, okay.17:01
flacosteallenap: we are going to create a temporary IPMI user during enlistment, so the enlisment API call needs to accept IPMI creds to associate to the node17:02
allenapflacoste, smoser: I've just added a card to the board for that, I'll pick it up later. However, there's an in-review card assigned to bigjools that sounds similar. Do you know anything about that?17:03
rvbaallenap: it's in the done lane I think.17:04
rvbaallenap: "Add power parameter setting to metadata API" ?17:04
rvbaVery similar indeed.17:04
* rvba really steps out now.17:04
flacosteallenap: yep, that was for final IPMI settings after commissioning17:04
smoserrvba, allenap flacoste metadata API is done.17:05
smoserwe need enlistment api17:05
allenapOkay.17:06
roaksoaxallenap: btw... squid-deb-proxy messes up squashfs image installation17:07
roaksoaxallenap: it would have been great to have that tftp fix to avoid having the proxy messing up with us :(17:07
allenaproaksoax: We should not be using tftp for moving such big files. Why/how does squid-deb-proxy affect us?17:19
roaksoaxallenap: it blocks the download17:20
roaksoaxallenap: i'm fixing it in packaging17:20
allenapmatsubara: This one's for you :) https://code.launchpad.net/~allenap/maas/headers-optional/+merge/12807517:21
matsubaraallenap, 121 +        Otherwise otherwise write it raw to stdout.17:25
matsubaraI'm not a reviewer, but it looks good to me :-)17:25
guimalufroaksoax, the maas nodes depends on maas server to boot? becausa I shutdown mass server, and my node can't boot anymore, even if I make hard disk first boot choice.17:53
roaksoaxguimaluf: what's the state of the nodes in MAAS? 'ready'??17:55
guimalufroaksoax, yes17:55
guimalufroaksoax, ready17:55
roaksoaxguimaluf: so no OS is installed :)17:56
guimalufroaksoax, I though MAAS would install a fully OS inside the nodes. It rather only copy the OS every boot time?17:57
guimalufroaksoax, this makes MAAS server a huge single point of failure, right?17:58
roaksoaxguimaluf: maas installs the OS when you *deploy* a node18:00
guimalufroaksoax, so, why I can't boot the node with the maas server off?18:00
roaksoaxguimaluf: becuae ethere's no OS installed18:00
roaksoaxguimaluf: you enlist, you commissioning, and the node is 'Ready' to be deployed18:01
guimalufroaksoax, it has been deployed yet...18:01
roaksoaxguimaluf: once you deploy a node (either from the MAAS WebUI/upcoming CLI or juju) then you will have Ubuntu installed on it18:03
smoserroaksoax, fyi: http://bazaar.launchpad.net/~smoser/+junk/backdoor-image/view/head:/backdoor-image18:15
smoseri've not actually tested that it works. but only that it lookss ane.18:16
roaksoaxcool18:45
roaksoaxmatsubara: have you seen upgrade errors between versions?18:45
roaksoax(as in database errors)18:45
matsubararoaksoax, nope, I'm going to try the upgrade soon once I get the test beds ready18:46
roaksoaxmatsubara: ok, cool. Could you please test this though: 1. install quantal maas archive. 2. upgrade to a newer release, 3. update to an even newer release18:47
roaksoaxmatsubara: i'm seeing failues in 318:47
roaksoaxsmoser: could you please? https://code.launchpad.net/~andreserl/maas/packaging_updates_bzr1170/+merge/128088 thanks :)18:56
matsubararoaksoax, ok19:01
roaksoaxthanks19:08
allenapmatsubara: Good catch. I'll self-review it I think.19:24
allenapjam: Ah, you're around. Want to trade reviews? If you're about to sign off I'll still review yours, and self-review mine.19:40
jamallenap: I can give it a view19:40
jamno guarantees (midnight here) if it is involved.19:40
allenapjam: Ta. https://code.launchpad.net/~allenap/maas/headers-optional/+merge/12807519:40
jamMine is, unfortunately, a bit extensive19:40
allenapjam: No worries. Go to bed; leave mine then.19:41
jamallenap: get_Response_content_type() why indirect via Message? Because you want a ContentType object?19:42
jamvs just the text?19:42
jamit might be clearer if the variable name 'content_type' was distinguished from the object being returned.19:42
jamallenap: otherwise +119:43
allenapjam: Message has some smarts about separating parameters out from the main part of the content-type header, and I couldn't find them stand-alone anywhere.19:44
allenapMessage.__init__() is lightweight, so the overhead is minimal. Granted, it does look odd.19:46
jamallenap: so maybe a comment about it19:47
allenapCool, good idea.19:48
allenapjam: I get a couple of test errors from your branch, http://pastebin.ubuntu.com/1260714/20:08
jamallenap: the first one is because nose is overagressive, if you even think the word 'test' it tries to run it.20:09
jamso I'll try to rename that.20:09
jamThe others are as mentioned in the overview, you have to manually specify that you're going to use tags before you use them, so it can patch out the api for the test.20:10
jamallenap: any ideas how to make that less terrible are very welcome.20:10
jamallenap: I should have a fix for those 3 pushed up as soon as the test suite finishes running here.20:13
allenapjam: `from nose.tools import nottest` gets you a decorator to stop it from dry humping anything with "test" in the name.20:22
jamallenap: thanks for the heads up. it is hard to write 'test infrastructure' code without using the word test.20:23
allenapYeah!20:23
smoserroaksoax, line 83 is strange20:24
smoseryou check an explicit path for something and then invoke it not by its path20:24
roaksoaxsmoser: i'm checking whether it exists or not20:25
roaksoaxsmoser: if invoke-rc.d exists use it20:25
roaksoaxsmoser: that's how everything else was done20:25
smoserthat makes sense, ye. but if you check by explicit path then you should use explicit path.20:25
smoserhascmd() { command -v "$1" >/dev/null 2>&1 };20:26
smoserif hascmd invoke-rc.d; then20:26
smoser invoke-rc.d squid-deb-proxy restart || true20:26
roaksoaxsmoser: right, that would mean refactoring the whole thing :)20:26
smoserfi20:26
smoser(not really refactoring the whole thing)20:26
roaksoaxsmoser: alright, but will try to take care of it later this week (tomorrow)20:26
smoseryou might as well not 'grep -qa' for a string if you'r egoing to conditionally replace20:27
smoserin the sed20:27
roaksoaxsmoser: it is grep -qs20:28
smoser(ie, other than sed not opening RW there is no '#maasurl$" then it does nothing)20:28
smosersed does exactly what you did in the grep20:28
smoseris what i'm saying20:28
smoserjust delete the grep.20:28
roaksoaxsmoser: ah i see20:28
roaksoaxok20:29
smoseri suspect you're missing some characers that could exist in a hostname20:29
smoserat least '-' i think i smissing.20:29
smoserwhats the Pre-Depends for?20:30
roaksoaxsmoser: debian/maintscripts20:31
roaksoaxsmoser: i copied it from a diff cjwatson had20:31
roaksoaxsmoser: is to remove older files that no longer used20:31
roaksoaxrm_conffile20:31
smoserok.20:31
smoserhm.. i'm not allowed to ack this20:32
roaksoaxsmoser: that's weird, you were always :S20:32
smoser(launchapd code reerewers20:32
smoser)20:32
roaksoaxsmoser: right bu you are under maas-maintainers right?20:33
roaksoaxso you should be good20:33
smoserdo we incur a conf-file prompt now if we change 99-maas ever?20:34
smoseri'd think we would.20:34
roaksoaxyes we will20:34
roaksoaxwe need to handle that differently either way20:34
smoserwhy not just write a file in that directory20:35
smoserand remove it20:35
smoserrather than packaging it20:35
smoserconf-file prompts suck.20:35
roaksoaxsmoser: yeah I'm gonna install in /usr/share/maas/confs/ and copy it over and make the modifications20:36
roaksoaxsmoser: i just wanna do all that handling in 1 branch though20:36
allenapjam: Did you look at injecting a custom MAASDispatcher, or patching MAASDispatcher.dispatch_query?20:36
jamallenap: dispatch_query takes a 'data' stream that has already been serialized20:36
smoserroaksoax, well, its better to land that at once than in pieces20:36
jamso I would have had to deserialize it20:36
smoseras you're going to incur conf file pompts twice if you do it twice20:36
jamto hand the python objects over to Django's Client20:36
allenapRight, okay.20:36
roaksoaxsmoser: yeah I'm dealing with a DB upgrade error at the moment20:37
jamallenap: the MAASDjangoTestClient is actually quite small, because the only real difference is 'kwargs' vs '**kwargs' and op being a parameter vs a member of kwargs.20:37
jamthe hard bits are described, 1) do we always inject a MAASDjangoTestClient just in case a test wants to use tags20:38
allenapjam: Yeah, I just wondered if it would have been easier to do. I think the division of responsibilities between MAASClient and MAASDispatcher is not great.20:38
jam2) How do we trick the system into giving a new nodegroup worker when we have a single thread.20:38
jamallenap: yeah, I did try at that level for a while, but it was post-serialized vs pre-serialized data.20:38
smoserroaksoax, so what do you want me to do here.20:40
smoseri'd like to see the sed change at least fixed up.20:40
smoserbut i reallyd ont want 2 separate upgrades to prompt users20:40
roaksoaxsmoser: there's always gonna be upgrades that will prompt users until we have all the config handling fixed20:40
roaksoaxsmoser: conditionally approve it and I'll work on the 99-maas thingy20:42
roaksoaxand update the branch acordingly20:43
roaksoaxsmoser: i updated the branch with the sed thing and the fix for the db upgrade20:43
smoseri did20:44
roaksoaxsmoser: thanks20:44
=== pcarrier_ is now known as pcarrier
smoseranyone else able to review https://code.launchpad.net/~smoser/maas/preserve-sources-list/+merge/12782522:04
smoseri think thats reasonable at this point, and QA tested... so, thats good.22:04

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