/srv/irclogs.ubuntu.com/2014/07/15/#maas.txt

=== Guest14971 is now known as wallyworld
=== CyberJacob|Away is now known as CyberJacob
rvbabigjools: did you QA the fix for https://bugs.launchpad.net/maas/+bug/1341001? (I can help with that if you didn't)07:01
ubot5Ubuntu bug 1341001 in MAAS 1.6 "maas.tgt not rewritten on 1.5 -> 1.6 cluster upgrade" [Critical,Triaged]07:01
bigjoolsrvba: I did not07:01
bigjoolsbit sidetracked by other stuff today07:02
rvbaOkay, I'll do it now.07:02
=== CyberJacob is now known as CyberJacob|Away
bigjoolseasy review karma: https://code.launchpad.net/~julian-edwards/maas/cluster-task--report-last-import-time/+merge/22678207:40
rvbabigjools: approved07:44
bigjoolsrvba: thanks07:44
bigjools"make lint" always makes me chuckle07:46
rvbaallenap: hi, I see you've changed the RPC stuff so that exceptions are properly propagated.08:18
rvbajtv: I'm still in the process of making sure it's repeatable but when I tried upgrading my 1.5.2 installation to trunk I got: http://paste.ubuntu.com/7797346/.  Any idea where this is coming from?08:20
jtvrvba: yes, that's a known bug — fix is in review.08:21
rvbaAh okay.  Ta.08:21
jtvbigjools: I replied to your review.08:21
rvbaallenap: the error I'm getting on the cluster when a NoSuchNode is raised on the Region looks like this: 'Node with system_id=Node with system_id=unknown-system-id-dPaTUv could not be found. could not be found.'08:22
rvbaallenap: Looks like the code from paste.ubuntu.com/7797390/ is "applied" twice or something.08:22
allenaprvba: Ah, that’ll be because you’ve customised __init__ to munge the message.08:22
rvbaallenap: I see, the error is "recreated" on the other side…08:23
rvbaRight?08:23
allenaprvba: Yep.08:23
allenaprvba: You could instead customise __str__ (and __unicode__).08:24
rvbaallenap: that's precisely what I'm trying now :).08:24
rvbajtv: lp:~jtv/maas/bug-1340896 is the branch that fixes the upgrade problem right?08:57
jtvYes.08:58
jtvSee the bug.08:58
jtvYou might actually have insights useful for the review discussion.08:59
rvbaOkay, I'll look at it in a bit.  I'm in the middle of doing some QA now and I'd like to get that sorted first…08:59
rvbajtv: got the same upgrade problem with the fixes from that branch :/09:04
jtvHrrrh!?09:06
rvbaIt's possible that my installation is broken… I've been fighting with it all morning.09:07
jtvThen maybe we need 3 migrations after all...09:07
jtvBut I did make it go through the migrations forwards and backwards with cluster interfaces present.09:07
jtv(And I observed the changes in an SQL shell)09:07
* rvba switches to maas/1.609:09
rvbajtv: happy to do some more testing later (and have a look at that branch/bug) but right now, I just want to get through with the QA.09:10
* rvba backports fix.09:10
jtvrvba: right 1.6 doesn't have those schema changes, so the problem won't happen there.09:11
rvbaYep, that's why I'm using it.09:11
jtvOK09:12
jtvWould love to hear more if you run into that migration problem again — I did a similar experiment here and didn't have the problem.09:13
bigjoolsrvba: did you look at why CI is failing?09:15
rvbabigjools: no; still busy QAing the fix for https://bugs.launchpad.net/maas/+bug/134100109:15
ubot5Ubuntu bug 1341001 in MAAS 1.6 "maas.tgt not rewritten on 1.5 -> 1.6 cluster upgrade" [Critical,Triaged]09:15
rvbabigjools: error installing: http://paste.ubuntu.com/7797564/09:16
bigjoolsrvba: looks like a dependent package is broken09:17
bigjoolsvery hard to see which one though09:18
=== CyberJacob|Away is now known as CyberJacob
rvbabigjools: job #215 failed with the error I pasted above.  job #214 failed because the cluster didn't connect to the region (I'm assuming this is somehow related to the problems Jeroen is working on);  but the dependent packages were exactly the same in the two runs.09:21
bigjoolsrvba: could have been an upload in the interim.  Is this utopic or trusty?  they both fail09:22
rvbabigjools: utopic.  Like I said, I retrieve the list of the packages that have been installed and there is no difference.09:22
bigjoolsrvba: same versions?09:23
rvbaYes09:23
bigjoolsok09:23
bigjoolsweird then09:23
bigjoolsvery weird09:23
rvbaI'm diffing the lines:09:23
rvbaGet:1 http://archive.ubuntu.com/ubuntu/ utopic/main libc-bin amd64 2.19-4ubuntu1 [1169 kB]09:23
rvba09:23
bigjoolsk09:23
rvbaI'm running a test on 1.6 (topic-adt-maas-manual).09:24
rvbabigjools: the failure of the trusty job is different.  That job uses Trusty.  Seems like revision 2290 of lp:maas/1.5 broke the build (unless it's spurious).09:26
rvbabigjools: 2290 is the backport of the nonce stuff.09:27
bigjoolsrvba: fuck09:27
rvbabigjools: I started another job, just to make sure the failure is consistent.09:27
bigjoolsok thanks09:28
bigjoolsback it out if it fails again09:28
rvbak09:28
rvbabigjools: allenap: fwiw there is a card on the board (in the robustness lane) for the "Move power-related tasks over to twisted" task.09:30
rvbaAnd no, I'm not insisting ;).09:30
bigjoolsit'll need breaking down, but that's ok09:30
rvbabigjools: QA ok for the fix for https://bugs.launchpad.net/maas/+bug/134100109:32
ubot5Ubuntu bug 1341001 in MAAS 1.6 "maas.tgt not rewritten on 1.5 -> 1.6 cluster upgrade" [Critical,Triaged]09:32
rvbabigjools: hum, the precise job also failed and the MAAS version didn't change.  Something might be wrong with the lab itself.09:37
bigjoolsrvba: yeah, that would be my next suspect09:38
rvbabigjools: I'm backporting the fix for https://bugs.launchpad.net/maas/+bug/1341001 to 1.609:41
ubot5Ubuntu bug 1341001 in MAAS 1.6 "maas.tgt not rewritten on 1.5 -> 1.6 cluster upgrade" [Critical,Triaged]09:41
bigjoolsrvba: thank you09:41
bigjoolsyou're too kind :)09:41
rvbaallenap: I still get the repeated exception message when I customize __str__/__unicode__ on my exception class.10:29
allenaprvba: Can you show me the code?10:29
rvbaallenap: just one sec…10:32
rvbaallenap: http://paste.ubuntu.com/7797848/10:34
rvbaallenap: http://paste.ubuntu.com/7797873/ wqorks10:35
rvbaworks*10:35
allenaprvba: Intriguing. I like the alternative constructor pattern. (Though don’t inherit from BaseException.)10:36
rvbaallenap: right (I got rid of BaseException)10:36
rvbaallenap: where in the code does the exception recreation happen?10:39
allenaprvba: See eb_massage_error in MAAS, or _massageError in amp.py.10:42
rvbaallenap: I'm confused, why is this in src/provisioningserver/rpc/testing/__init__.py ?  i.e. in what seem to be a testing utility?10:43
rvbaseems*10:43
allenaprvba: Because it’s a testing utility that avoids mimics a remote call without having to do messy stuff with sockets and suchlike.10:45
allenaps/avoids /10:46
rvbaallenap: but outside of testing, the error is also recreated on the caller's side right?10:46
allenaprvba: Yes. eb_massage_error is meant to make call_responder behave more like a real RPC call.10:47
=== CyberJacob is now known as CyberJacob|Away
rvbaallenap: all right.  It feels a bit weird that we have to manually recreate that behavior in testing but okay..10:48
rvbabigjools: the 1.5 (trusty) job passed.  It was indeed a problem with a node, the nonce stuff is okay.10:52
bigjoolscool10:53
bigjoolsthanks for checking it out10:53
rvbaI'm running all the other jobs now.10:53
rvbaA run with 1.6 is in progress now.10:54
rvbaIf this one passes, it will be time to release another beta package.10:54
=== SolutionL is now known as Solution-X
bigjoolslet me know11:21
=== CyberJacob|Away is now known as CyberJacob
rvbabigjools: test passed (revision 2534 on lp:maas/1.6).11:43
bigjoolsthanks11:45
jtvTrusty CI is better now.11:47
jtvOh, that's 1.5.  :(11:47
jtvThe failure has changed.  Could it be that the CI needs to refresh its knowledge of the API?11:51
jtvBut then why did previous updates to the NGI succeed?11:59
jtvAhh, no, it didn't.12:01
rvbajtv: looks like it's the parsing of MAAS' output that failed.12:02
rvbajtv: no, I'm wrong, it's related to the recent addition of the NGI's name.12:03
jtvYes.  Question is, how?12:06
jtvThe API doesn't expect values for all of the form fields, does it?12:06
rvbaDepends on the form that handles the data.12:07
jtvThe field is taken directly from the model, and it's blank=True null=False.12:08
jtvThe form's cleaning provides a value if it's blank.12:09
jtvOr at least, that's the theory.12:09
jtvThe parsing fails because _set_up_dhcp needs to check manually for an error return from _run_maas_cli, and doesn't.12:11
jtvIt receives error output and assumes it gets usable json.12:11
rvbaRight.12:12
jtvThe only hint we get from the CLI is "name" — which we don't specify, so that's why I wonder if there's a problem with that.12:12
jtvI'm going to see if I can reproduce the problem with a simple API/CLI update.12:14
rvbaShould do the trick.12:14
=== CyberJacob is now known as CyberJacob|Away
jtvSeems to work on the API...  :/12:23
jtvclass Action(Command):12:31
jtv    uri = property(lambda self: self.handler["uri"])12:31
jtv    def __call__(self, options):12:31
jtv        uri = self.uri.format(**vars(options))12:31
jtv^ This is why we don't want code to be clever or "use the language to its full."12:32
jtvThat last assignment is the source of the error.12:32
jtvWhoopee, right?12:32
rvbaWhat's 'options'?12:34
jtvParameter to __call__.12:34
rvbaNo shit :)12:34
jtvIf you want to know more, and so do I, let's ask allenap...12:35
rvbaheh12:35
* allenap reads backwards12:36
jtvallenap: the main thing is that bit of code (class Action(Command):) from the CLI.12:37
allenapjtv: What’s going wrong?12:37
jtvKeyError.12:37
jtvIn that self.uri.format line.12:38
allenapjtv: Is it saying which key is missing?12:39
jtvYes.  It's ‘name’.12:39
allenapSo that’s something in the URI template that Django/Piston generates.12:40
jtvWhere do they get the information for generating that URI template?12:40
allenapIt comes from the Piston handler class.12:41
allenapresource_uri_template12:41
jtvThen I think understanding dawns.12:41
allenapSee describe_handler in maasserver.apidoc.12:41
jtvThe CLI call isn't passing the name field, which is supposed to go in the URL path.12:42
allenapjtv: That implies that the CLI doesn’t know the name field is required. I think that parameters can be declared, but they need to be part of the URL path that a Django/Piston handler is registered with, or something like that.12:46
allenapWhich it should be :-/12:47
jtvThe CLI doesn't know that the name field is _not_ required.  :(12:47
jtvSo the URI template says "give me <name> here" and the CLI code tries to take <name> from its parameters dict, which doesn't have it.12:48
allenapjtv: What does the URL look like?12:49
jtvhttp://localhost:5240/api/1.0/nodegroups/{uuid}/interfaces/{name}/12:50
allenapjtv: Why is the name optional?12:50
allenapWhat behaviour does that produce?12:50
allenapWithout the {name} filled in, I think that should resolve to the NodeGroupInterfacesHandler. With {name} it should resolve to NodeGroupInterfaceHandler, i.e. the singular.12:52
jtvThe URL used to have the network interface name in it.  That's been changed to be the cluster interface name.12:52
jtvSo the request doesn't need to pass ‘name’ as a field, only as part of the URL.12:52
allenapjtv: Can you paste the error for me? I don’t have the CI email any more :-/12:55
jtvNo point.  You get less useful information than this.12:57
jtvThe problem is that the CLI takes the positional URL parameters by name instead of positionally.12:58
jtvNo idea how to fix that.  :(12:58
allenapjtv: Maybe the CI script needs to do `maas refresh` to get updated API descriptions?13:00
rvbaallenap: the CI use a new VM instance (to install MAAS) for each run.13:01
jtvallenap: no, a refresh doesn't do it.  The problem is that the CLI takes the positional parameters from the dict of keyword arguments — which I suppose also spells trouble for any case where an identifying field is editable.13:09
allenapjtv: Do you have some instructions so that I can reproduce this?13:19
jtvallenap: ./bin/maas <profile> node-group-interface update <uuid> <name>13:20
jtvProduces: ./bin/maas: error: u'name'13:20
jtvDebugging shows that it's a KeyError while attempting to format that URI.13:21
jtvTo add to the fun, passing ‘name’ as a named parameter doesn't help.13:23
allenapjtv: It also believes that the name is required for bin/maas <profile> node-group-interface read13:27
jtvDuh.13:28
jtvThe problem is that the CLI code passes that parameter around by name, instead of positionally.13:28
allenapjtv: NodeGroupInterfaceHandler.resource_uri is still returning ‘interface’ as a parameter. Not sure if that would explain everything, but it’s worth giving a go.13:30
* allenap gives it a go.13:30
jtvPassing name and interface both doesn't change it for me.  :(13:31
allenaphttps://www.irccloud.com/pastebin/vlInRrAc13:32
allenapjtv: ^ try applying that, restarting, refreshing the cli.13:32
matsubaraallenap, jtv: fwiw, I filed https://bugs.launchpad.net/maas/+bug/1342117 for the cryptic error: u'name' failure13:43
ubot5Ubuntu bug 1342117 in MAAS "CLI command to set up node-group-interface fails with /usr/lib/python2.7/dist-packages/maascli/__main__.py: error: u'name'" [Critical,Triaged]13:43
jtvThanks matsubara. We're just looking into it.13:43
matsubarajtv, yep, I saw the backlog. Thanks. (And thanks for fixing the other nodegroup crash!)13:44
jtvallenap: your paste (with a refresh) fixes the problem!14:03
jtvI thought that part where these methods substitute a fixed string was only there for documentation..?14:04
allenapjtv: There’s still an oddity where `… node-group-interfaces list` requires a `uuid` argument. I think NodeGroupInterfacesHandler.resource_uri needs adjusting.14:05
allenapjtv: Nope, waste not want not: it was repurposed for driving the CLI too :)14:06
allenapjtv: Actually, and I don’t know why, NodeGroupInterfaces.list() takes a uuid argument, which I think it probably shouldn’t.14:07
=== CyberJacob|Away is now known as CyberJacob
jtvallenap: IIRC NodeGroupInterfaces.list lists the cluster interfaces for one cluster — and so you need to tell it which cluster.14:58
jtvExceedingly small branch for review: https://code.launchpad.net/~jtv/maas/ngi-name-ci-breakage/+merge/22685915:09
=== lutostag_ is now known as lutostag
=== Solution-X is now known as Solution-X|AFK
=== sputnik1_ is now known as sputnik13net
=== roadmr is now known as roadmr_afk
=== CyberJacob is now known as CyberJacob|Away
=== roadmr_afk is now known as roadmr
=== CyberJacob|Away is now known as CyberJacob
=== matsubara is now known as matsubara-afk
=== CyberJacob is now known as CyberJacob|Away
=== matsubara-afk is now known as matsubara
=== CyberJacob|Away is now known as CyberJacob
dergrunepunkthi, I'm using maas + juju + virsh, installed as the doc said and it's working21:26
dergrunepunktI have the nodes installed and when they boot they show as "enlisted-node-XXX"21:27
dergrunepunktbut I cant get juju to do the bootstrap21:27
dergrunepunktbecause every time I run "juju boostrap" it starts a VM and the operating system installation runs again21:28
dergrunepunktwhat I am doing wrong?21:28
schegi_hi out there, have a maas lxc related question can someone help??21:42
rbasakschegi_: nobody will know until you actually ask your question21:46
schegi_thought it was more juju related, bootstraped a maas environemt and was wondering how to define the bridge device which is used if an service is deployed in a container.21:48
schegi_asked in the juju channel21:48
dergrunepunkt_why maas keeps reinstalling a node?22:11
=== jfarschman is now known as MilesDenver
=== CyberJacob is now known as CyberJacob|Away

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