Merge lp:~bladernr/checkbox/1186259-virtualization-fix into lp:checkbox

Proposed by Jeff Lane 
Status: Merged
Approved by: Daniel Manrique
Approved revision: 2152
Merged at revision: 2152
Proposed branch: lp:~bladernr/checkbox/1186259-virtualization-fix
Merge into: lp:checkbox
Diff against target: 89 lines (+31/-12)
2 files modified
debian/changelog (+4/-1)
scripts/virtualization (+27/-11)
To merge this branch: bzr merge lp:~bladernr/checkbox/1186259-virtualization-fix
Reviewer Review Type Date Requested Status
Daniel Manrique (community) Approve
Review via email: mp+166898@code.launchpad.net

Description of the change

virtualization script no longer chokes when image: is emtpy in the config file, meaning you can actually use hte script in an offline setting. Added some additional error handling to more explicitly trap errors.

To post a comment you must log in.
Revision history for this message
Daniel Manrique (roadmr) wrote :

Looks good. Thanks!

review: Approve

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1=== modified file 'debian/changelog'
2--- debian/changelog 2013-05-31 15:07:02 +0000
3+++ debian/changelog 2013-05-31 21:09:35 +0000
4@@ -1,6 +1,9 @@
5 checkbox (0.16.4) saucy; urgency=low
6
7- * Incremented version
8+ [ Jeff Lane ]
9+ * scripts/virtualization: script no longer fails when trying to cast an
10+ empty timeout setting in config file to int(). Added additional error
11+ handling. (LP: #1186259)
12
13 -- Brendan Donegan <brendan.donegan@canonical.com> Fri, 31 May 2013 16:04:42 +0100
14
15
16=== modified file 'scripts/virtualization'
17--- scripts/virtualization 2013-04-08 23:02:04 +0000
18+++ scripts/virtualization 2013-05-31 21:09:35 +0000
19@@ -168,6 +168,7 @@
20
21
22 def start(self):
23+ logging.debug('Starting KVM Test')
24 status = 1
25 # Create temp directory:
26
27@@ -176,6 +177,7 @@
28
29 os.chdir(temp_dir)
30 if self.image is None:
31+ logging.debug('No image specified, downloading one now.')
32 # Download cloud image
33 self.image = self.download_image()
34
35@@ -219,17 +221,26 @@
36
37 try:
38 config.readfp(open(config_file))
39- timeout = int(config.get("KVM", "timeout"))
40- image = config.get("KVM", "image")
41 except IOError:
42 logging.warn("No config file found")
43- except Exception as exception:
44- logging.warn(exception)
45+ else:
46+ try:
47+ timeout = int(config.get("KVM", "timeout"))
48+ except ValueError:
49+ logging.exception('Invalid or Empty timeout in config file. '
50+ 'Falling back to default')
51+ except configparser.NoSectionError as e:
52+ logging.exception(e)
53+
54+ try:
55+ image = config.get("KVM", "image")
56+ except configparser.NoSectionError:
57+ logging.exception('Invalid or Empty image in config file.')
58
59+ if timeout == "":
60+ timeout = args.timeout
61 if image == "":
62 image = args.image
63- if timeout == "":
64- timeout = args.timeout
65
66 kvm_test = KVMTest(image, timeout)
67 result = kvm_test.start()
68@@ -259,11 +270,16 @@
69 kvm_test_parser.set_defaults(func=test_kvm)
70
71 args = parser.parse_args()
72-
73- if args.debug:
74- logging.basicConfig(level=logging.DEBUG)
75-
76- args.func(args)
77+
78+ try:
79+ if args.debug:
80+ logging.basicConfig(level=logging.DEBUG)
81+ except AttributeError:
82+ pass #avoids exception when trying to run without specifying 'kvm'
83+ try:
84+ args.func(args)
85+ except AttributeError:
86+ parser.error('Must specify a test type')
87
88 if __name__ == "__main__":
89 main()

Subscribers

People subscribed via source and target branches