Merge lp:~ltrager/maas/lp1654412_2.1 into lp:maas/2.1

Proposed by Lee Trager
Status: Merged
Approved by: Lee Trager
Approved revision: no longer in the source branch.
Merged at revision: 5578
Proposed branch: lp:~ltrager/maas/lp1654412_2.1
Merge into: lp:maas/2.1
Diff against target: 81 lines (+32/-7)
3 files modified
docs/changelog.rst (+2/-0)
src/maasserver/utils/osystems.py (+9/-5)
src/maasserver/utils/tests/test_osystems.py (+21/-2)
To merge this branch: bzr merge lp:~ltrager/maas/lp1654412_2.1
Reviewer Review Type Date Requested Status
Lee Trager (community) Approve
Review via email: mp+314457@code.launchpad.net

Commit message

Backport r5631 from trunk: Properly set the kflavor when validating an edge kernel.

To post a comment you must log in.
Revision history for this message
Lee Trager (ltrager) wrote :
review: Approve

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1=== modified file 'docs/changelog.rst'
2--- docs/changelog.rst 2017-01-10 02:36:23 +0000
3+++ docs/changelog.rst 2017-01-10 17:59:22 +0000
4@@ -42,6 +42,8 @@
5
6 LP: #1654450 MAAS shouldn't show newer kernels when edge kernels are added
7
8+LP: #1654412 Unable to set edge kernel as the min_hwe_kernel and deploy with the default kernel
9+
10 2.1.2
11 =====
12
13
14=== modified file 'src/maasserver/utils/osystems.py'
15--- src/maasserver/utils/osystems.py 2017-01-10 02:36:23 +0000
16+++ src/maasserver/utils/osystems.py 2017-01-10 17:59:22 +0000
17@@ -446,11 +446,15 @@
18 (hwe_kernel, min_hwe_kernel))
19 return hwe_kernel
20 elif(min_hwe_kernel and validate_kernel_str(min_hwe_kernel)):
21- kernel_parts = min_hwe_kernel.split('-')
22- if len(kernel_parts) == 2:
23- kflavor = 'generic'
24- else:
25- kflavor = kernel_parts[2]
26+ # Determine what kflavor is being used by check against a list of
27+ # known kflavors.
28+ valid_kflavors = {
29+ br.kflavor for br in BootResource.objects.exclude(kflavor=None)}
30+ kflavor = 'generic'
31+ for kernel_part in min_hwe_kernel.split('-'):
32+ if kernel_part in valid_kflavors:
33+ kflavor = kernel_part
34+ break
35 usable_kernels = BootResource.objects.get_usable_hwe_kernels(
36 os_release, arch, kflavor)
37 for i in usable_kernels:
38
39=== modified file 'src/maasserver/utils/tests/test_osystems.py'
40--- src/maasserver/utils/tests/test_osystems.py 2017-01-10 02:36:23 +0000
41+++ src/maasserver/utils/tests/test_osystems.py 2017-01-10 17:59:22 +0000
42@@ -1,4 +1,4 @@
43-# Copyright 2014-2016 Canonical Ltd. This software is licensed under the
44+# Copyright 2014-2017 Canonical Ltd. This software is licensed under the
45 # GNU Affero General Public License version 3 (see the file LICENSE).
46
47 """Tests for `maasserver.utils.osystems`."""
48@@ -41,7 +41,10 @@
49 validate_min_hwe_kernel,
50 validate_osystem_and_distro_series,
51 )
52-from maastesting.matchers import MockAnyCall
53+from maastesting.matchers import (
54+ MockAnyCall,
55+ MockCalledOnceWith,
56+)
57
58
59 class TestOsystems(MAASServerTestCase):
60@@ -581,6 +584,22 @@
61 mock_get_config, MockAnyCall('commissioning_distro_series'))
62 self.assertEqual('hwe-v', kernel)
63
64+ def test_validate_hwe_kern_sets_hwe_kern_to_min_hwe_kern_for_edge(self):
65+ # Regression test for LP:1654412
66+ mock_get_usable_hwe_kernels = self.patch(
67+ BootResource.objects, 'get_usable_hwe_kernels')
68+ mock_get_usable_hwe_kernels.return_value = (
69+ 'hwe-16.04', 'hwe-16.04-edge')
70+ arch = factory.make_name('arch')
71+
72+ kernel = validate_hwe_kernel(
73+ None, 'hwe-16.04-edge', '%s/generic' % arch, 'ubuntu', 'xenial')
74+
75+ self.assertEquals('hwe-16.04-edge', kernel)
76+ self.assertThat(
77+ mock_get_usable_hwe_kernels,
78+ MockCalledOnceWith('ubuntu/xenial', arch, 'generic'))
79+
80
81 class TestValidateMinHweKernel(MAASServerTestCase):
82

Subscribers

People subscribed via source and target branches

to all changes: