create_connection fails to create a valid connection
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
| Checkbox |
Medium
|
Unassigned |
Bug Description
Tested on a Precise system, installed from alternate image dated 20120127.2, checkbox versions:
ii checkbox 0.13.1~ppa8.12.04 System testing application
ii checkbox-
ii checkbox-
ii checkbox-gtk 0.13.1~ppa8.12.04 GTK interface for checkbox
Steps to reproduce:
1- sudo -i
2- export $WPA_BG_
3- export $WPA_BG_
4- /usr/share/
5- Confirm that a connection file was created in /etc/NetworkMan
6- nmcli con list
Expected result:
- The connection I created should be on the list
Actual result:
It's not :(
NAME UUID TYPE TIMESTAMP-REAL
Wired connection 1 f7809f45-
Note that the same procedure, run on an 11.10 system, works just fine and nmcli con list shows the created connection. I can even actually enable it with nmcli con up id !
My guess is that Precise requires some additional data in the created connection file, without which it doesn't even consider it as valid. So maybe comparing a networkmanager-
Related branches
- Marc Tardif (community): Approve on 2012-01-30
-
Diff: 44 lines (+6/-4)2 files modifieddebian/changelog (+3/-1)
scripts/create_connection (+3/-3)
- Mathieu Trudel-Lapierre: Needs Fixing on 2012-02-07
-
Diff: 471232 lines (+252651/-169867)158 files modifiedbin/checkbox-cli (+1/-1)
bin/checkbox-gtk (+1/-1)
bin/checkbox-urwid (+1/-1)
checkbox/lib/config.py (+3/-1)
checkbox/lib/template_i18n.py (+2/-1)
checkbox/parsers/submission.py (+8/-4)
checkbox/user_interface.py (+1/-1)
checkbox_gtk/gtk_interface.py (+8/-3)
data/whitelists/default.whitelist (+47/-21)
debian/changelog (+89/-1)
debian/checkbox-cli.postinst (+1/-0)
debian/checkbox-gtk.postinst (+1/-0)
debian/checkbox-urwid.postinst (+1/-0)
debian/control (+14/-36)
debian/hwtest-cli.postinst (+0/-6)
debian/hwtest-gtk.postinst (+0/-6)
debian/hwtest.postinst (+0/-6)
debian/hwtest.postrm (+0/-26)
debian/po/de.po (+3/-4)
debian/po/en_AU.po (+3/-4)
debian/po/en_GB.po (+4/-5)
debian/po/es.po (+5/-5)
debian/po/fr.po (+3/-4)
debian/po/he.po (+3/-4)
debian/po/hu.po (+3/-4)
debian/po/it.po (+3/-4)
debian/po/ja.po (+6/-10)
debian/po/nl.po (+3/-4)
debian/po/pl.po (+3/-4)
debian/po/pt_BR.po (+3/-4)
debian/po/ro.po (+3/-4)
debian/po/ru.po (+3/-4)
debian/po/zh_TW.po (+4/-7)
debian/rules (+3/-7)
install/config (+4/-5)
install/postinst (+17/-21)
jobs/audio.txt.in (+9/-12)
jobs/bluetooth.txt.in (+6/-14)
jobs/camera.txt.in (+1/-17)
jobs/firewire.txt.in (+32/-7)
jobs/graphics.txt.in (+18/-26)
jobs/keys.txt.in (+5/-9)
jobs/local.txt.in (+1/-1)
jobs/mediacard.txt.in (+318/-158)
jobs/memory.txt.in (+5/-10)
jobs/miscellanea.txt.in (+4/-5)
jobs/monitor.txt.in (+6/-0)
jobs/networking.txt.in (+11/-2)
jobs/optical.txt.in (+1/-2)
jobs/panel_clock_test.txt.in (+1/-1)
jobs/resource.txt.in (+9/-0)
jobs/suspend.txt.in (+69/-26)
jobs/usb.txt.in (+34/-17)
jobs/user_apps.txt.in (+2/-2)
jobs/wireless.txt.in (+62/-0)
plugins/apport_prompt.py (+4/-3)
plugins/backend_info.py (+10/-0)
plugins/intro_prompt.py (+7/-5)
plugins/jobs_prompt.py (+17/-5)
plugins/launchpad_report.py (+2/-1)
plugins/recover_prompt.py (+4/-2)
plugins/shell_test.py (+1/-1)
po/POTFILES.in (+2/-0)
po/ace.po (+2170/-1770)
po/af.po (+2164/-1770)
po/am.po (+2185/-1770)
po/ar.po (+2472/-2020)
po/ast.po (+3969/-2264)
po/be.po (+3927/-1931)
po/bg.po (+2819/-2045)
po/bn.po (+2942/-1956)
po/bo.po (+2245/-1778)
po/br.po (+2339/-1806)
po/bs.po (+3856/-2116)
po/ca.po (+3234/-2211)
po/ca@valencia.po (+2964/-1997)
po/checkbox.pot (+2147/-1763)
po/ckb.po (+2192/-1774)
po/cs.po (+3938/-2404)
po/cy.po (+2156/-1771)
po/da.po (+3571/-2266)
po/de.po (+5006/-2478)
po/dv.po (+2151/-1769)
po/el.po (+4319/-2105)
po/en_AU.po (+4874/-2289)
po/en_CA.po (+2560/-1864)
po/en_GB.po (+4974/-2336)
po/eo.po (+3109/-2165)
po/es.po (+4248/-2325)
po/et.po (+2236/-1791)
po/eu.po (+2323/-1796)
po/fa.po (+2151/-1769)
po/fi.po (+3351/-2252)
po/fr.po (+4114/-2246)
po/gd.po (+2125/-1739)
po/gl.po (+3802/-2056)
po/he.po (+2902/-2070)
po/hi.po (+2659/-1837)
po/hr.po (+2330/-1797)
po/hu.po (+3822/-2253)
po/hy.po (+2151/-1769)
po/id.po (+2295/-1892)
po/is.po (+2208/-1871)
po/it.po (+3970/-2446)
po/ja.po (+3387/-1984)
po/jbo.po (+2151/-1769)
po/ka.po (+2172/-1796)
po/kk.po (+2236/-1778)
po/km.po (+2151/-1769)
po/kn.po (+2176/-1770)
po/ko.po (+2712/-1858)
po/ku.po (+2167/-1770)
po/ky.po (+2151/-1769)
po/lt.po (+2333/-1776)
po/lv.po (+3318/-1899)
po/mk.po (+2250/-1891)
po/ml.po (+2160/-1769)
po/mr.po (+2163/-1769)
po/ms.po (+4978/-2213)
po/my.po (+2243/-1791)
po/nb.po (+2525/-1996)
po/nds.po (+2151/-1769)
po/ne.po (+2226/-1778)
po/nl.po (+4474/-2368)
po/nn.po (+2173/-1770)
po/oc.po (+2934/-1897)
po/pl.po (+3634/-2303)
po/pt.po (+3426/-2151)
po/pt_BR.po (+4988/-2313)
po/ro.po (+2809/-2049)
po/ru.po (+5108/-2399)
po/si.po (+2163/-1769)
po/sk.po (+2668/-2068)
po/sl.po (+3771/-2194)
po/sq.po (+3610/-1890)
po/sr.po (+3716/-2188)
po/sv.po (+3762/-2302)
po/ta.po (+2161/-1770)
po/te.po (+2160/-1769)
po/th.po (+2359/-1938)
po/tr.po (+3467/-2112)
po/ug.po (+3820/-2051)
po/uk.po (+2656/-1998)
po/ur.po (+2151/-1769)
po/vi.po (+2629/-1875)
po/zh_CN.po (+2970/-1990)
po/zh_HK.po (+2731/-1958)
po/zh_TW.po (+2718/-1901)
scripts/camera_test (+4/-30)
scripts/compiz-check (+0/-968)
scripts/connect_wireless (+1/-1)
scripts/cpu_offlining (+2/-2)
scripts/cpu_topology (+3/-3)
scripts/removable_storage_test (+60/-59)
scripts/run_compiz_check (+0/-27)
scripts/sleep_test (+4/-37)
scripts/watch_command (+0/-159)
setup.py (+4/-3)
- Daniel Manrique (community): Resubmit on 2012-02-10
- Mathieu Trudel-Lapierre: Needs Fixing on 2012-02-10
-
Diff: 484189 lines (+265504/-169975)174 files modifiedbin/checkbox-cli (+1/-1)
bin/checkbox-gtk (+1/-1)
bin/checkbox-urwid (+1/-1)
checkbox/lib/config.py (+3/-1)
checkbox/lib/template_i18n.py (+2/-1)
checkbox/parsers/submission.py (+8/-4)
checkbox/user_interface.py (+1/-1)
checkbox_gtk/gtk_interface.py (+8/-3)
data/whitelists/default.whitelist (+47/-21)
debian/changelog (+94/-1)
debian/checkbox-cli.postinst (+1/-0)
debian/checkbox-gtk.postinst (+1/-0)
debian/checkbox-urwid.postinst (+1/-0)
debian/control (+6/-38)
debian/hwtest-cli.postinst (+0/-6)
debian/hwtest-gtk.postinst (+0/-6)
debian/hwtest.postinst (+0/-6)
debian/hwtest.postrm (+0/-26)
debian/po/de.po (+3/-4)
debian/po/en_AU.po (+3/-4)
debian/po/en_GB.po (+4/-5)
debian/po/es.po (+5/-5)
debian/po/fr.po (+3/-4)
debian/po/he.po (+3/-4)
debian/po/hu.po (+3/-4)
debian/po/it.po (+3/-4)
debian/po/ja.po (+6/-10)
debian/po/nl.po (+3/-4)
debian/po/pl.po (+3/-4)
debian/po/pt_BR.po (+3/-4)
debian/po/ro.po (+3/-4)
debian/po/ru.po (+3/-4)
debian/po/uk.po (+118/-0)
debian/po/zh_TW.po (+4/-7)
debian/rules (+0/-6)
debian/source/format (+1/-0)
install/config (+4/-5)
install/postinst (+17/-21)
jobs/audio.txt.in (+9/-12)
jobs/bluetooth.txt.in (+6/-14)
jobs/camera.txt.in (+1/-17)
jobs/firewire.txt.in (+32/-7)
jobs/graphics.txt.in (+18/-26)
jobs/keys.txt.in (+5/-9)
jobs/local.txt.in (+1/-1)
jobs/mediacard.txt.in (+318/-158)
jobs/memory.txt.in (+5/-10)
jobs/miscellanea.txt.in (+4/-5)
jobs/monitor.txt.in (+6/-0)
jobs/networking.txt.in (+11/-2)
jobs/optical.txt.in (+1/-2)
jobs/panel_clock_test.txt.in (+1/-1)
jobs/resource.txt.in (+9/-0)
jobs/suspend.txt.in (+69/-26)
jobs/usb.txt.in (+34/-17)
jobs/user_apps.txt.in (+2/-2)
jobs/wireless.txt.in (+62/-0)
plugins/apport_prompt.py (+4/-3)
plugins/backend_info.py (+10/-0)
plugins/intro_prompt.py (+7/-5)
plugins/jobs_prompt.py (+17/-5)
plugins/launchpad_report.py (+2/-1)
plugins/recover_prompt.py (+4/-2)
plugins/shell_test.py (+1/-1)
po/POTFILES.in (+2/-0)
po/ace.po (+2170/-1770)
po/af.po (+2164/-1770)
po/am.po (+2185/-1770)
po/ar.po (+2472/-2020)
po/ast.po (+3969/-2264)
po/be.po (+3927/-1931)
po/bg.po (+2819/-2045)
po/bn.po (+2942/-1956)
po/bo.po (+2245/-1778)
po/br.po (+2339/-1806)
po/bs.po (+3856/-2116)
po/ca.po (+3234/-2211)
po/ca@valencia.po (+2964/-1997)
po/checkbox.pot (+2147/-1763)
po/ckb.po (+2192/-1774)
po/cs.po (+3938/-2404)
po/cy.po (+2156/-1771)
po/da.po (+3571/-2266)
po/de.po (+5006/-2478)
po/dv.po (+2151/-1769)
po/el.po (+4319/-2105)
po/en_AU.po (+4874/-2289)
po/en_CA.po (+2560/-1864)
po/en_GB.po (+4974/-2336)
po/eo.po (+3109/-2165)
po/es.po (+4248/-2325)
po/et.po (+2236/-1791)
po/eu.po (+2323/-1796)
po/fa.po (+2151/-1769)
po/fi.po (+3351/-2252)
po/fr.po (+4114/-2246)
po/ga.po (+2992/-0)
po/gd.po (+2125/-1739)
po/gl.po (+3802/-2056)
po/he.po (+2902/-2070)
po/hi.po (+2659/-1837)
po/hr.po (+2330/-1797)
po/hu.po (+3822/-2253)
po/hy.po (+2151/-1769)
po/id.po (+2295/-1892)
po/is.po (+2208/-1871)
po/it.po (+3970/-2446)
po/ja.po (+3387/-1984)
po/jbo.po (+2151/-1769)
po/ka.po (+2172/-1796)
po/kk.po (+2236/-1778)
po/km.po (+2151/-1769)
po/kn.po (+2176/-1770)
po/ko.po (+2712/-1858)
po/ku.po (+2167/-1770)
po/ky.po (+2151/-1769)
po/lt.po (+2333/-1776)
po/lv.po (+3318/-1899)
po/mk.po (+2250/-1891)
po/ml.po (+2160/-1769)
po/mr.po (+2163/-1769)
po/ms.po (+4978/-2213)
po/my.po (+2243/-1791)
po/nb.po (+2525/-1996)
po/nds.po (+2151/-1769)
po/ne.po (+2226/-1778)
po/nl.po (+4474/-2368)
po/nn.po (+2173/-1770)
po/oc.po (+2934/-1897)
po/pl.po (+3634/-2303)
po/ps.po (+2992/-0)
po/pt.po (+3426/-2151)
po/pt_BR.po (+4988/-2313)
po/ro.po (+2809/-2049)
po/ru.po (+5108/-2399)
po/shn.po (+2992/-0)
po/si.po (+2163/-1769)
po/sk.po (+2668/-2068)
po/sl.po (+3771/-2194)
po/sq.po (+3610/-1890)
po/sr.po (+3716/-2188)
po/sv.po (+3762/-2302)
po/ta.po (+2161/-1770)
po/te.po (+2160/-1769)
po/th.po (+2359/-1938)
po/tr.po (+3467/-2112)
po/ug.po (+3820/-2051)
po/uk.po (+2656/-1998)
po/ur.po (+2151/-1769)
po/uz.po (+2992/-0)
po/vi.po (+2629/-1875)
po/zh_CN.po (+2970/-1990)
po/zh_HK.po (+2731/-1958)
po/zh_TW.po (+2718/-1901)
scripts/audio_settings (+108/-0)
scripts/camera_test (+4/-30)
scripts/check_is_laptop (+29/-0)
scripts/compiz-check (+0/-968)
scripts/connect_wireless (+1/-1)
scripts/cpu_offlining (+2/-2)
scripts/cpu_topology (+3/-3)
scripts/create_connection (+132/-0)
scripts/media_keys_test (+275/-0)
scripts/memory_compare (+25/-0)
scripts/network_device_info (+24/-0)
scripts/network_test (+0/-24)
scripts/network_wait (+20/-0)
scripts/removable_storage_test (+144/-0)
scripts/removable_storage_watcher (+77/-0)
scripts/run_compiz_check (+0/-27)
scripts/sleep_test (+4/-37)
scripts/usb_test (+0/-143)
scripts/watch_command (+0/-159)
setup.py (+2/-2)
Daniel Manrique (roadmr) wrote : | #1 |
Changed in checkbox: | |
importance: | Undecided → Medium |
status: | New → Triaged |
Daniel Manrique (roadmr) wrote : | #2 |
OK, so it looks like create-connection was doing the right thing by trying to fetch the HWADDR field using this command:
nmcli -f GENERAL dev list | grep 802-11-wireless -A 2 | awk '/HWADDR/ {print $2}'
on Oneiric (sans the awk bit) it responds:
GENERAL.TYPE: 802-11-wireless
GENERAL.DRIVER: brcmsmac
GENERAL.HWADDR: 00:1B:B1:4C:90:F4
Note the HWADDR field.
However, on Precise it says:
GENERAL.TYPE: 802-11-wireless
GENERAL.VENDOR: Atheros Communications Inc.
GENERAL.PRODUCT: AR928X Wireless Network Adapter (PCI-Express)
Thus no HWADDR and the invalid field is generated :( It looks like the HWADDR line is a bit further down in the output. So ways to fix this:
1- change -A 2 to -A 4. This feels a bit brittle and if the ordering of fields changes again, we will experience the same problem.
2- Specify a device for which to obtain data, thus eliminating the possibility of multiple HWADDR fields (which I guess is why -A is being used to control the grep context). However this requires knowing the interface name. Something like this works :
nmcli -f GENERAL dev list iface wlan0 | awk '/HWADDR/ {print $2}'
However one simple fix suggested by cyphermox is that the mac-address field can be blank and things appear to work well. So I'll propose a "failsafe" where, if the MAC address is blank, that line won't get output to the config file.
Changed in checkbox: | |
status: | Triaged → Fix Committed |
Changed in checkbox: | |
status: | Fix Committed → Fix Released |
OK, I figured out the problem here.
This is the 802-11-wireless section for the NM-generated connection file:
[802-11-wireless] cert-n- wpa 00:26:B6: DC:46:73 802-11- wireless- security
ssid=ubuntu-
mode=infrastructure
mac-address=
security=
This is the same section for the connection file generated by create_connection:
[802-11-wireless] cert-bg- wpa
ssid=ubuntu-
mode=infrastructure
mac-address=
security= 802-11- wireless- security
The extra blank line leads me to believe our script is inserting a \n (which is apparently part of an empty string) as the MAC address. Now, NetworkManager on Precise seems to dislike the empty mac-address attribute, and so the connection gets ignored. If I remove the mac-address line altogether, the connection becomes visible in nmcli con list and can be enabled with nmcli con up.
So we'd need to either fill in the mac address (if it can be obtained somehow), or skip that line altogether. Bottom line, Network Manager in Precise doesn't like empty attributes :)
Setting as Triaged with importance: Medium.