Merge lp:~milo/linaro-image-tools/disable-automount into lp:linaro-image-tools/11.11

Proposed by Milo Casagrande
Status: Merged
Approved by: James Tunnicliffe
Approved revision: 616
Merged at revision: 616
Proposed branch: lp:~milo/linaro-image-tools/disable-automount
Merge into: lp:linaro-image-tools/11.11
Diff against target: 108 lines (+57/-1)
3 files modified
linaro-android-media-create (+7/-1)
linaro-media-create (+7/-0)
linaro_image_tools/utils.py (+43/-0)
To merge this branch: bzr merge lp:~milo/linaro-image-tools/disable-automount
Reviewer Review Type Date Requested Status
James Tunnicliffe Pending
Review via email: mp+156794@code.launchpad.net

Commit message

Disable automount, and enable it at exit.

Description of the change

As said on bug 1034853, this branch adds dconf calls in order to disable
and re-enable back automount options.

Before running the commands, a check is performed for the dconf command to
be installed.

To post a comment you must log in.
Revision history for this message
James Tunnicliffe (dooferlad) wrote :

Looks good.

Unfortunate that we have so many PEP8 problems under the version shipping with Ubuntu 12.10. Will submit a patch.

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1=== modified file 'linaro-android-media-create'
2--- linaro-android-media-create 2013-01-30 11:28:51 +0000
3+++ linaro-android-media-create 2013-04-03 10:16:21 +0000
4@@ -44,7 +44,9 @@
5 additional_android_option_checks,
6 andorid_hwpack_in_boot_tarball,
7 ensure_command,
8- get_logger
9+ get_logger,
10+ disable_automount,
11+ enable_automount,
12 )
13
14
15@@ -117,6 +119,10 @@
16
17 ensure_required_commands(args)
18
19+ # Do this by default, disable automount options and re-enable them at exit.
20+ disable_automount()
21+ atexit.register(enable_automount)
22+
23 media = Media(args.device)
24 if media.is_block_device:
25 if not confirm_device_selection_and_ensure_it_is_ready(args.device):
26
27=== modified file 'linaro-media-create'
28--- linaro-media-create 2013-02-25 18:18:09 +0000
29+++ linaro-media-create 2013-04-03 10:16:21 +0000
30@@ -57,6 +57,9 @@
31 path_in_tarfile_exists,
32 prep_media_path,
33 get_logger,
34+ UnableToFindPackageProvidingCommand,
35+ disable_automount,
36+ enable_automount,
37 )
38
39 # Just define the global variables
40@@ -136,6 +139,10 @@
41 logger.error(e.value)
42 sys.exit(1)
43
44+ # Do this by default, disable automount options and re-enable them at exit.
45+ disable_automount()
46+ atexit.register(enable_automount)
47+
48 board_config = get_board_config(args.dev)
49 board_config.set_metadata(args.hwpacks, args.bootloader, args.dev)
50 board_config.add_boot_args(args.extra_boot_args)
51
52=== modified file 'linaro_image_tools/utils.py'
53--- linaro_image_tools/utils.py 2013-02-25 18:18:09 +0000
54+++ linaro_image_tools/utils.py 2013-04-03 10:16:21 +0000
55@@ -35,6 +35,10 @@
56 # The name of the hwpack file found in the boot tarball.
57 HWPACK_NAME = "config"
58
59+# dconf keys to disable automount options.
60+AUTOMOUNT_DCONF_KEY = '/org/gnome/desktop/media-handling/automount'
61+AUTOMOUNT_OPEN_DCONF_KEYU = '/org/gnome/desktop/media-handling/automount-open'
62+
63
64 # try_import was copied from python-testtools 0.9.12 and was originally
65 # licensed under a MIT-style license but relicensed under the GPL in Linaro
66@@ -406,3 +410,42 @@
67
68 logger.addHandler(ch)
69 return logger
70+
71+
72+def disable_automount():
73+ """Disables the desktop environment automount option.
74+
75+ This will work only under GNOME with dconf installed.
76+ """
77+ logger = logging.getLogger(DEFAULT_LOGGER_NAME)
78+
79+ if has_command('dconf'):
80+ logger.info("Disabling desktop environment automount option.")
81+ try:
82+ cmd_runner.run(
83+ ['dconf', 'write', AUTOMOUNT_DCONF_KEY, 'false'],
84+ stdout=open('/dev/null', 'w')).wait()
85+ cmd_runner.run(
86+ ['dconf', 'write', AUTOMOUNT_OPEN_DCONF_KEYU, 'false'],
87+ stdout=open('/dev/null', 'w')).wait()
88+ except cmd_runner.SubcommandNonZeroReturnValue:
89+ logger.error("Error disabling desktop environemnt automount.")
90+
91+
92+def enable_automount():
93+ """Re-enables back the desktop environment automount option.
94+
95+ This will work only under GNOME with dconf installed. It should be run
96+ as an atexit function.
97+ """
98+ logger = logging.getLogger(DEFAULT_LOGGER_NAME)
99+ if has_command('dconf'):
100+ try:
101+ cmd_runner.run(
102+ ['dconf', 'write', AUTOMOUNT_DCONF_KEY, 'true'],
103+ stdout=open('/dev/null', 'w')).wait()
104+ cmd_runner.run(
105+ ['dconf', 'write', AUTOMOUNT_OPEN_DCONF_KEYU, 'true'],
106+ stdout=open('/dev/null', 'w')).wait()
107+ except cmd_runner.SubcommandNonZeroReturnValue:
108+ logger.error("Error enabling back desktop environemnt automount.")

Subscribers

People subscribed via source and target branches