<bigjools> I am trying to be constructive on the review but you're going to 
hate me, sorry :(
<roaksoax> hehe :)

Did you guys have any pre-implementation chat with one of us before starting 
this?  I can't approve this as it stands for quite a few fundamental 
architectural reasons, and also it's an 1100+ line diff without a single test 
change.  I did previously say I won't accept any more branches that have 
untested code, especially untested walls of shell :(

More below.

25      === added file 'contrib/preseeds_v2/preseed_xinstall'
26      --- contrib/preseeds_v2/preseed_xinstall        1970-01-01 00:00:00 
+0000
27      +++ contrib/preseeds_v2/preseed_xinstall        2013-04-17 16:47:25 
+0000
[snip]
36      +preseed = 
subprocess.check_output(["/usr/share/maas/xinstall/make-userdata-maas",
37      +    "--apt-proxy="+proxy,
38      +    "--dpkg-selections="+preseed_data,
39      +    "--finished-url="+node_disable_pxe_url,
40      +    "--finished-url-data="+node_disable_pxe_data,
41      +    
"http://"+cluster_host+"/MAAS/static/images/"+node.architecture+"/"+node.distro_series+"/xinstall/root.tar.gz";,
42      +    "/dev/sda"])
43      +}}
44      +{{preseed}}

This scares the bejesus out of me.  This is just a workaround so that the shell 
script make-userdata-maas can be used instead of doing it properly in Python, 
and tested.  It has completely sidestepped all of the code that exists already 
in src/maasserver/preseed.py and src/maasserver/compose_preseed.py that 
calculates preseed_data based on the node state.

It is extremely fragile and it is likely to break, horribly, in many ways, as 
soon as someone changes anything elsewhere.

At the very least, this template should not be calling out to the shell script. 
 If you can't re-write it in Python and test it in the time available, it 
should be called from the existing Python code that generates preseeds and 
returned in preseed_data for the template.  It can then be tested so we know 
the right preseed is getting returned for FPI.


1045    === modified file 'src/maasserver/api.py'
1061    === modified file 'src/maasserver/models/nodegroup.py'
1077    === modified file 'src/maasserver/preseed.py'
1096    === modified file 'src/provisioningserver/kernel_opts.py'
1135    === modified file 'src/provisioningserver/pxe/install_image.py'

The changes in all these files need tests.  I expect some tests are broken as a 
result but I can't run the test suite at the moment as I get this:

$ make build
bin/buildout install database
Traceback (most recent call last):
  File "bin/buildout", line 5, in <module>
    from pkg_resources import load_entry_point
  File 
"/home/ed/canonical/maas/sandbox/local/lib/python2.7/site-packages/distribute-0.6.24-py2.7.egg/pkg_resources.py",
 line 16, in <module>
    import sys, os, zipimport, time, re, imp, types
  File "/home/ed/canonical/maas/sandbox/lib/python2.7/re.py", line 105, in 
<module>
    import sre_compile
  File "/home/ed/canonical/maas/sandbox/lib/python2.7/sre_compile.py", line 14, 
in <module>
    import sre_parse
  File "/home/ed/canonical/maas/sandbox/lib/python2.7/sre_parse.py", line 17, 
in <module>
    from sre_constants import *
  File "/home/ed/canonical/maas/sandbox/lib/python2.7/sre_constants.py", line 
18, in <module>
    from _sre import MAXREPEAT
ImportError: cannot import name MAXREPEAT

1109    === added file 'src/provisioningserver/pxe/config.xinstall.template'
1110    --- src/provisioningserver/pxe/config.xinstall.template 1970-01-01 
00:00:00 +0000
1111    +++ src/provisioningserver/pxe/config.xinstall.template 2013-04-17 
16:47:25 +0000
[snip]
1119    +LABEL amd64
1120    +  SAY Booting (amd64) under MAAS direction...
[snip]
1127    +LABEL i386
1128    +  SAY Booting (i386) under MAAS direction...

Don't bother with both SAY commands, they get parsed and executed before 
choosing the LABEL so both get printed.  You could fix the existing templates 
too.

I have not reviewed the changes in the contrib/ directory, shell is not my 
expertise.  Also, no tests :(

I realise that you need to get *something* in raring before FF tomorrow.  
Last-minute rushed changes are never good, but if you can at least add tests 
and make the change to the preseed template as I suggested then this could land 
with a view to improving more later.

J
-- 
https://code.launchpad.net/~andreserl/maas/trunk-fpi/+merge/152039
Your team Launchpad code reviewers is requested to review the proposed merge of 
lp:~andreserl/maas/trunk-fpi into lp:maas.

_______________________________________________
Mailing list: https://launchpad.net/~launchpad-reviewers
Post to     : [email protected]
Unsubscribe : https://launchpad.net/~launchpad-reviewers
More help   : https://help.launchpad.net/ListHelp

Reply via email to