← Back to team overview

launchpad-reviewers team mailing list archive

[Merge] lp:~smoser/maas/ipmi-locate-fallback into lp:maas

 

Scott Moser has proposed merging lp:~smoser/maas/ipmi-locate-fallback into lp:maas.

Commit message:
if ipmi-locate fails, but /dev/ipmi[0-9] exists continue down ipmi path

on quantal, the version of ipmi-locate in freeipmi (1.1.5-3ubuntu2) was
failing to locate ipmi on armhf boards. ipmi-locate did produce a postive
result on precise (0.8.12-3ubuntu1).

This works around that, and continues down the path if the /dev/ipmi
device is present.

Also, added here is a 'udevadm settle', which is really required any time
you load a module to prevent a race condition before attempting to access
the named device.

It would seem likelyhood of false positive here is very small, and at
this point it would seem that the end result would be a node enlisted
with empty power settings.

Requested reviews:
  MAAS Maintainers (maas-maintainers)
Related bugs:
  Bug #1065499 in MAAS: "Power parameters fail to get set when using Quantal ephemerals"
  https://bugs.launchpad.net/maas/+bug/1065499

For more details, see:
https://code.launchpad.net/~smoser/maas/ipmi-locate-fallback/+merge/129202

if ipmi-locate fails, but /dev/ipmi[0-9] exists continue down ipmi path

on quantal, the version of ipmi-locate in freeipmi (1.1.5-3ubuntu2) was
failing to locate ipmi on armhf boards.  ipmi-locate did produce a postive
result on precise (0.8.12-3ubuntu1).

This works around that, and continues down the path if the /dev/ipmi
device is present.

Also, added here is a 'udevadm settle', which is really required any time
you load a module to prevent a race condition before attempting to access
the named device.

It would seem likelyhood of false positive here is very small, and at
this point it would seem that the end result would be a node enlisted
with empty power settings.

-- 
https://code.launchpad.net/~smoser/maas/ipmi-locate-fallback/+merge/129202
Your team MAAS Maintainers is requested to review the proposed merge of lp:~smoser/maas/ipmi-locate-fallback into lp:maas.
=== modified file 'contrib/preseeds_v2/enlist_userdata'
--- contrib/preseeds_v2/enlist_userdata	2012-10-11 08:58:04 +0000
+++ contrib/preseeds_v2/enlist_userdata	2012-10-11 14:01:22 +0000
@@ -28,6 +28,7 @@
       modprobe ipmi_msghandler
       modprobe ipmi_devintf
       modprobe ipmi_si ${IPMI_SI_PARAMS}
+      udevadm settle
    }
 
    add_bin() {
@@ -62,6 +63,7 @@
    #!/usr/bin/python
    import os
    import commands
+   import glob
    import re
    import string
    import random
@@ -74,6 +76,9 @@
        show_re = re.compile('(IPMI\ Version:) (\d\.\d)')
        res = show_re.search(output)
        if res == None:
+           found = glob.glob("/dev/ipmi[0-9]")
+           if len(found):
+               return (True, "UNKNOWN: %s" % " ".join(found))
            return (False, "")
        return (True, res.group(2))
 

=== modified file 'etc/maas/commissioning-user-data'
--- etc/maas/commissioning-user-data	2012-10-10 14:05:51 +0000
+++ etc/maas/commissioning-user-data	2012-10-11 14:01:22 +0000
@@ -189,6 +189,7 @@
    modprobe ipmi_msghandler
    modprobe ipmi_devintf
    modprobe ipmi_si ${IPMI_SI_PARAMS}
+   udevadm settle
 }
 
 ### begin writing files ###
@@ -220,6 +221,7 @@
 #!/usr/bin/python
 import os
 import commands
+import glob
 import re
 import string
 import random
@@ -231,6 +233,9 @@
     show_re = re.compile('(IPMI\ Version:) (\d\.\d)')
     res = show_re.search(output)
     if res == None:
+        found = glob.glob("/dev/ipmi[0-9]")
+        if len(found):
+            return (True, "UNKNOWN: %s" % " ".join(found))
         return (False, "")
     return (True, res.group(2))
 


Follow ups