/srv/irclogs.ubuntu.com/2012/09/12/#maas.txt

smoserhere now roaksoax00:31
jtvbigjools: I guess my fix for bug 1049407 should go into two branches now?02:33
ubot5Launchpad bug 1049407 in MAAS "DHCP next-server set incorrectly on multi-homed hosts" [Critical,In progress] https://launchpad.net/bugs/104940702:33
bigjoolsjtv: how's that?02:33
bigjoolsoh you mean backport02:33
bigjoolsyes02:33
jtvYou couldn't have waited half a lousy day with that branch, could you?  :)02:33
bigjoolsjtv: well the part that lets you set a maas-facing url needs to go in both02:34
bigjoolsanything to do with dhcp only in the backport branch02:34
bigjoolssince rvb is doing a generic solution for 12.1002:34
jtvWhat solution is that?02:34
bigjoolsjtv: I *could* have :)02:34
jtvGrrrr02:34
bigjoolsthe cluster enlistment process will detect all interfaces on the cluster host and ask the admin to pick one02:35
jtvShouldn't that become the setting for the maas-facing URL then?02:35
bigjoolsno02:35
bigjoolscluster vs region here remember02:35
jtvOh, you mean because the node won't be talking to the region controller anyway?02:36
bigjoolsthese are completely different things we're talking abouty02:37
bigjoolsthe master worker (aka master cluster) can make assumptions that it can use the maas-facing address's interface02:37
bigjoolsremote clusters need to be explicitly set up02:37
jtvWell either way, I think get_maas_facing_server_address() needs to make use of a different setting — and that should be the whole of the fix to this particular problem.  So I don't foresee any changes that would not be suitable for trunk.02:40
jtvAlthough I do think there are more places where we should explicitly use the maas-facing address.02:44
jamjtv: https://code.launchpad.net/~jtv/maas/bug-1049407/+merge/123891 seems incomplete07:37
ubot5Ubuntu bug 123891 in firefox (Ubuntu) "No spelling suggestions on right click" [Undecided,Invalid]07:37
jamit only has comment changes07:37
jtvjam: looking07:38
jtvjam: you mean the MP where the commit message says, “There were no changes to make, but I found some comments that could be clearer.”  Right?  :-)07:39
jamjtv : I skipped to the 'pre implementation with Julian' which made me think there were actual changes.07:40
jamNot sure why you would need a preimpl for comment only.  But hey, +1 from me :)07:40
jtvThe pre-imp had to establish that no changes were needed!  Thanks.07:40
jamjtv: I read it from the email07:40
jamnot the Commit message07:40
jambut just the Description07:40
jamapparently Commit Message doesn't get sent via email07:40
jamwhich is why I didn't see it.07:41
jtv:(07:41
jtvThe latest wisdom is that the commit message should be descriptive.07:41
jamI agree it should be descriptive07:41
jamI'm not sure that the LP infrastructure handles it properly07:41
jamI tend to review via email07:41
jamI'll try to be on the lookout for it.07:41
bigjoolscommit message doesn't get sent if put on at the MP creation time07:42
jtvSorry about that.  Maybe I should just say "see commit message" in the description to avoid these mistakes.  Copying the commit message seems wrong.07:42
bigjools:(07:42
jamjtv: that probably would help while we transition, at least.07:43
jambigjools: I see this is a known issue: https://bugs.launchpad.net/launchpad/+bug/101729307:49
ubot5Ubuntu bug 1017293 in Launchpad itself "Commit message is not shown on the initial merge proposal email" [High,Triaged]07:49
bigjoolsjam: yeah look who filed it :)08:03
jamyeah, I saw that08:10
bigjoolsjam, jelmer, mgz https://plus.google.com/hangouts/_/b97be36d9d774b00fb757d4aea1e57f788c80227?hl=en-GB08:48
bigjoolsback later09:08
allenapbigjools: I have to go out. We did a catch-up yesterday, so can we postpone today's?09:16
jamjtv: i'm happy to continue chatting, I just didn't want to tie up both teams09:22
jtvfair enough!09:22
jtvI was just saying: somebody might have implemented auto-tuning for either data store.09:22
bigjoolsallenap: yeah find09:41
bigjoolsfine*09:41
mgzand again today, yeay buildout...12:04
mgzDownload error on http://www.liucougar.net/blog/nose-subunit: [Errno -2] Name or service not known -- Some packages may not be found!12:04
mgzjtv: have made the tweaks you suggested in the review12:09
roaksoaxjtv: around?12:22
roaksoaxrvba: howdy! So while I was talking to smoser yesterday I think we've reached a concensus on how the release should be implmeneted12:23
roaksoaxrvba: so, we will have default_commissioning_release and default_install_release. We will keep the os_release attribute until the "instace" approach/table exists. The release will be set on start() and switched back to default on stop()12:24
roaksoaxrvba: we will obtain the release with get_install_release and we will set it with set_install_release. That way, once the instances approach smoser was mentioned exists, we can simply replace the get_install_release more easily and ditch the set_install_release12:25
roaksoaxrvba: thoughts?12:25
roaksoaxsmoser: agreed?^^12:25
smoserits reasonable. although you can just use a getter and setter (rather than get_install_release and set_install_release but do whatever is done in MAAS).12:47
roaksoaxsmoser: alright, cool then13:05
smoserroaksoax, is maas uninstallable right now ?13:33
smoserhttp://paste.ubuntu.com/1200553/13:33
roaksoaxsmoser: where are you installing from? daily?13:34
smoserhttp://paste.ubuntu.com/1200556/13:34
roaksoaxsmoser: it shouldn't be...13:35
roaksoaxsmoser: do you have maas already installed?13:35
rvbaroaksoax: hey13:36
smoserit says Installed: none13:36
rvbaroaksoax: "and switched back to default on stop()" you mean switched back to None don't you?13:36
rvbaroaksoax: in the approach you describe, node.os_release will be used to store the current release for a running instance right?13:36
roaksoaxrvba: yes. So it will have its default, say precise, but if on start we pass quantal, it should be updated. on stop, it should be rolled back to precise (or the default)13:37
roaksoaxrvba: btw... http://pastebin.ubuntu.com/1200559/13:39
rvbaroaksoax: before the instance is even started, what will the os_release field contain?13:40
roaksoaxrvba: the one being set as default13:40
roaksoaxrvba: the config default13:40
rvbaroaksoax: specific to this node?13:40
roaksoaxrvba: global one13:40
roaksoaxrvba: all nodes iwll be enlisted and set a default release13:41
roaksoaxrvba: so if through the api a node is requested and no release is specified,it will use the default. If a release is specified, it will use that specified release13:41
roaksoaxrvba: any ideas on the pastebin?13:42
rvbaroaksoax: that API behavior seems fine to me but since we don't what to support setting a release to be used at the node level before deploy-time, I suggest having that field None when the node is not yet deployed.13:43
rvbaroaksoax: let me have a look.13:43
rvbaroaksoax: yes, apparently there is a bug in South and it believes that the nodegroup.uuid field is new and that's not the case.  I'll fix that soon but in the meantime: select 2, enter the empty string, then, in the created file, edit out the two lines (one in forward() and one in backward()) which talk about that uuid.13:45
roaksoaxrvba: cool thanks13:46
roaksoaxsmoser: package doesn't seem broken to me btw13:52
smoserhm.13:52
roaksoaxrvba: so where is it, or how is it that the WebUI starts a node?14:10
roaksoaxif it doens't use the API for that14:10
rvbaroaksoax: let me check14:11
rvbaroaksoax: have a look at src/maasserver/node_action.py:StartNode14:11
roaksoaxrvba: btw.. there's no way to test the start and stop of a node through the api right?14:18
roaksoaxas in, actually test it14:18
roaksoax(manually)14:18
rvbaroaksoax: src/maasserver/api.py:NodeHandler.start14:19
roaksoaxrvba: right, but what I mean, is there a CLI ?14:19
roaksoaxrvba: that doesn't involve me hacking around to get it to work14:19
rvbaroaksoax: not yet, the CLI is coming up, allenap is working on it atm.14:20
roaksoaxok cool14:20
roaksoaxallenap: does your cli already start nodes?14:20
rvbaroaksoax: the CLI will expose all the API methods.14:20
allenaproaksoax: It will, but doesn't yet.14:20
roaksoaxallenap: ok thanks14:21
roaksoaxrvba: so we can handle the selection of release once the cli is in place cause we also need the same for juju14:21
roaksoaxrvba: so can can I get the state of a node object?14:27
roaksoaxrvba: self.status?14:28
roaksoaxerr node.status?14:28
rvbaroaksoax: yes14:28
smoserroaksoax, it most certainly seems to me that maas in arhcive is uninstallable14:48
roaksoaxsmoser: why would it be uninstallable if the only change on ubuntu2 against ubuntu1 is simply a change within a file14:50
smoserit seems python-twisted is currently uninstallable14:51
roaksoaxsmoser: ahh then that's the problem14:51
mgzdon't we have archive testing to prevent that kind of thing... :P14:51
roaksoaxrvba: so, on the model, we should not set a default for os_release then?14:54
roaksoaxrvba: so instead of :14:54
roaksoaxos_release = CharField( max_length=10, choices=UBUNTU_RELEASE_CHOICES, null=True, blank=True, default=UBUNTU_RELEASE.default)14:54
roaksoaxleave it as :14:54
roaksoaxos_release = CharField( max_length=10, choices=UBUNTU_RELEASE_CHOICES, null=True, blank=True)14:54
roaksoax?14:54
rvbaroaksoax: well, I think we should set a default of None.  This will indicate that, when a node is created, there is no running ubuntu installation on it.14:55
roaksoaxrvba: ok cool14:56
roaksoaxrvba: ok so, so far this looks like this: http://paste.ubuntu.com/1200725/15:22
rvbaroaksoax: you got me confused a bit I must say :).  Is node.os_release used to : a) store the release which is going to be installed when that node will get deployed or b) store the deployed release when this node will get deployed?15:29
roaksoaxrvba: a&b. It will store the release the node will be deployed with if different from the default one15:30
roaksoaxrvba: if no release is specified, then it will use the default15:30
roaksoax(still need to change get_install_release)15:30
rvbaroaksoax: then consider this: a node has os_release='quantal' and the default is 'precise'.15:31
roaksoaxrvba: it will deploy quantal15:31
rvbaroaksoax: if someone deploys that node with an APi call and specifies release=precise.15:31
roaksoaxrvba: it will install precise15:32
rvbaroaksoax: then node.os_release will be changed to precise right?15:32
roaksoaxrvba: yes15:32
roaksoaxrvba: that part hasn't been coded yet as I'd like to have the CLI in place first15:32
rvbaAnd now, let's say the nodes gets 'released' or undeployed.15:32
roaksoaxrvba: os_release will be changed back to None15:32
rvbaHow do you restore the original setting of 'quantal' ?15:32
roaksoaxrvba: initially it will have None, unless you change that on the WebUI15:33
rvbaroaksoax: so let's say someone changed that to quantal, you want to restore that when the node is released, even if it was deployed with another release right?15:34
roaksoaxrvba: so let me put it some other way15:34
roaksoaxrvba: case 1: node.os_release is None default is precise after enlistment/commissioning15:35
roaksoaxrvba: on install if quantal is specified, then it will deploy quantal, node.os_release will be set to 'quantal'15:35
roaksoaxrvba: on release. node.os_release will be set back to None15:35
rvbaThat makes perfect sense.15:36
roaksoaxso if we deploy that node again and we don't specify the release, then it will deploy the default15:36
roaksoaxrvba: now, we have to consider a second case15:36
roaksoaxrvba: Case 2: node.os_release is None, default is precise.15:36
roaksoaxbefore we deploy, I go to the WEbUI and I change from "Default Ubuntu Release" to Quantal, and save15:36
roaksoaxnode.os_release will be 'quantal'15:37
roaksoaxrvba: so I go to the cli, and deploy *without* specifying a release15:37
roaksoaxit will deploy 'quantal'15:37
roaksoaxrvba: now, when I release, it will be set back to None15:37
roaksoaxhowever, if on CLI i deploy specifying 'precise', it will install precise instead of the preivoulsy saved value15:38
roaksoaxwhich was quantal15:38
roaksoaxon release, it will be set back to none15:38
roaksoaxrvba: doing this gives us the flexibility of being able to temporarily set a particular release for a node15:38
rvbaroaksoax: ok, so node.os_release is used to track the release of a running instance.  When a node is not deployed, node.os_release is None.15:38
roaksoaxrvba: exactly15:39
rvbaroaksoax: ok, makes perfect sense to me then.15:40
roaksoaxawesome then15:44
guimalufdam! when I'm installing a new node I'm get this : Configuring 'network-preseed' failed with error code 1; I've not change anything with networks config to stop working!15:47
guimalufI've restarted squid-deb-proxy but with no success15:48
jtvAny reviewers in the house?  I'm EOD, but I still have some reviews up from yesterday that I'm quite eager to get some progress on.16:00
jtvThis is the oldest, which the others are based on: https://code.launchpad.net/~jtv/maas/bug-1025582-model/+merge/12367916:01
ubot5Ubuntu bug 123679 in gnome-media (Ubuntu) "gnome-volume-control crashed with SIGSEGV" [Medium,Invalid]16:01
* roaksoax brb16:06
allenaprvba: Regarding _API_DOC, I fear one of us is losing their mind. http://pastebin.ubuntu.com/1200807/ is a snippet of what's in trunk. It looks like the docs are cached fine, but never actually used.16:21
rvbaallenap: haha, you're right.  I misread what you were saying :)16:22
allenaprvba: Phew :) I know it's not important, but it's one of those things that I couldn't let go of.16:23
guimalufplease I need help, my maas server stop working out of nothing! I'm getting the following error in node syslog and in cobbler. maybe they are correlated http://pastebin.ubuntu.com/1200818/16:31
=== matsubara is now known as matsubara-lunch
roaksoaxrvba: rvba still around?17:37
roaksoaxallenap: still around?18:19
allenaproaksoax: I'll be back in ~1h.18:19
roaksoaxallenap: ok, thanks18:19
=== matsubara-lunch is now known as matsubara
allenaproaksoax: Hi, back sooner than I expected. What's up?18:46
roaksoaxallenap: I forgot :)18:46
roaksoaxallenap: ah yes, I remember now18:47
allenapguimaluf: Something going into your preseed file has non-ASCII characters in it. Can you think of what that might be?18:48
roaksoaxallenap: so, I'm lookat at src/maasserver/api.py:start18:48
roaksoaxallenap: nodes = Node.objects.start_nodes18:48
roaksoaxallenap: 'nodes' contains only 1 node, or will /can contain several nodes?18:49
allenaproaksoax: Yes, only one node. That start method is part of NodeHandler, so the context is a single node. However, we ought to have a start method on NodesHandler (note the plural) that will let us call start_nodes with more than one node.18:50
roaksoaxallenap: right, so I were to pass the release as part of the request to start()18:51
allenapIn general, we ought to think of the plural case always before the singular, but iirc the Juju machine provider interface expected to call start on one machine at a time, so that's what ended up getting written.18:51
roaksoaxallenap: do you think it should be done in start(), or in start_nodes()?18:52
roaksoaxallenap: such as: http://paste.ubuntu.com/1201070/18:52
allenaproaksoax: I think that start() should be for *only* turning the power on, not for accepting user data. acquire() should accept user data, or there should be a separate way to set user data. I think start() has been wrongly overloaded here.18:53
roaksoaxallenap: right, that's a separate issue though :)18:54
roaksoaxallenap: anyways, that makes sense?18:55
roaksoaxallenap: though, note that for juju, acquire means "give me a system", and start means "start the acquired system with XYZ"18:56
roaksoaxallenap: so in the api, the start() servers for that18:57
allenaproaksoax: Yes... your change adds to the things we have to change (it's fine otherwise). The problem is, as we change the API, we will have to change the Juju machine provider too, meaning more coding, reviews, etc. Right now it's more important to get the public face of the API correct than it is to add these features.18:57
roaksoaxserves*18:57
roaksoaxallenap: agreed18:57
allenapCool.18:57
roaksoaxallenap: ok so, in start() how can I set the a value for that particular node given that it doens't have the node instance18:58
allenaproaksoax: You have the system_id for the Node, so you can get it.18:59
allenaproaksoax: Look in the release method just below.18:59
roaksoaxallenap: so siumilar to this then? http://paste.ubuntu.com/1201090/19:02
roaksoaxallenap: or more complete:19:03
allenaproaksoax: Yep. The release arg in the call to start_nodes isn't needed any more though.19:03
roaksoaxhttp://paste.ubuntu.com/1201093/19:03
roaksoaxallenap: http://paste.ubuntu.com/1201100/19:04
roaksoaxallenap: right, but start will reiceive the release to use from juju, and then it should say "the release for the node we are about to start is XYZ"19:04
roaksoaxwhich is what I'm trying to do19:04
allenaproaksoax: I don't understand that.19:05
roaksoaxallenap: so juju will pass a request to maas19:05
roaksoaxwhich will contain the release to use for that partcular request19:06
roaksoaxthen the start() method needs to set the release being passed to the node19:06
roaksoaxso that's why I need to get the node, set the correct release for that node19:06
allenapJuju pseudo-does: acquire(some_constraints), start(user_data, os_release)19:08
allenapIsn't that it?19:08
roaksoaxallenap: right, but a release won't be a constraint19:08
roaksoaxallenap: because a node can be used with X release or Y release19:08
roaksoaxallenap: we are treating this as an Instance approach19:09
allenapI still don't understand why we need to set the release on the Node *and* pass it to start_nodes.19:09
roaksoaxallenap: we do *not* need to pass it to start_nodes19:09
roaksoaxallenap: we only need to set it for the node in question19:09
allenaproaksoax: Ah, okay. Line 17 was passing it to start_nodes, wasn't it?19:10
allenapIn the earlier diff.19:10
allenapYeah.19:10
roaksoaxallenap: ah yeah, forgot to strip that out :)19:11
roaksoaxsorry :)19:11
allenapNo worries, I think we were going round in circles a bit there.19:11
allenapAh, right, start() accepts *optional* user_data and release. So, it can be used as just power control, but if those parameters are provided then it sets them before issuing a power-on (via start_nodes).19:12
allenapSo, the public-face of the API is actually okay. I don't think I have any concerns about that any more.19:13
allenapFwiw, passing the release in as a constraint isn't a crazy thing to do; some hardware may not be able to run some releases. For now I guess we can leave it as is.19:13
roaksoaxcool19:31
allenaproaksoax: By the way, I'm going to start using commandant in trunk soon (so, Quantal only). I'm just bundling it in the source tree, but do you think you'll have time to package it? There is already a package at https://launchpad.net/~jkakar/+archive/commandant which can be used as a basic, and it's a very simple Python package.19:32
allenaps/basic/basis/19:32
roaksoaxallenap: sure, can you remind me tomorrow ?19:33
allenaproaksoax: I think you've already asked me to do that twice :)19:35
roaksoaxallenap: hehe yeah :) i added it to my todo19:36
allenapThanks.19:36
Davieyallenap: do we need to package commandant ?19:41
Davieyhah.. i see you are talking about it already19:41
Davieyroaksoax: once you upload it, can you ping me for a NEW review please?19:42
roaksoaxDaviey: sure19:42
allenapDaviey: Heh, nothing gets by you :) Thanks.19:44
Davieyallenap: i just saw the MP :)20:10
roaksoaxyay support for ubuntu releaes work with juju tooo20:45
roaksoaxyaay20:45
Davieywoot21:17
=== matsubara is now known as matsubara-afk
allenapDoes anyone know how to get into the Jenkins machine that runs maas's tests?22:44
allenapPerhaps don't tell me in public though :)22:45

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