Merge ~cgrabowski/maas:windows_and_esxi_do_not_require_base_image into maas:master

Proposed by Christian Grabowski
Status: Merged
Approved by: Christian Grabowski
Approved revision: 111f8801ed829d40237ed577b4bcf05e8cc1ef5d
Merge reported by: MAAS Lander
Merged at revision: not available
Proposed branch: ~cgrabowski/maas:windows_and_esxi_do_not_require_base_image
Merge into: maas:master
Diff against target: 74 lines (+52/-0)
2 files modified
src/maasserver/forms/__init__.py (+4/-0)
src/maasserver/forms/tests/test_bootresource.py (+48/-0)
Reviewer Review Type Date Requested Status
MAAS Lander Approve
Alexsander de Souza Approve
Review via email: mp+409297@code.launchpad.net

Commit message

exclude windows and esxi images from base_image form validation

To post a comment you must log in.
Revision history for this message
MAAS Lander (maas-lander) wrote :

UNIT TESTS
-b windows_and_esxi_do_not_require_base_image lp:~cgrabowski/maas/+git/maas into -b master lp:~maas-committers/maas

STATUS: FAILED
LOG: http://maas-ci.internal:8080/job/maas/job/branch-tester/11109/console
COMMIT: 1ead2ebf29ca85a0e69162f1c90e88a09ff0be56

review: Needs Fixing
Revision history for this message
Alexsander de Souza (alexsander-souza) wrote :

won't this conflict with centOS and RHEL images ?

review: Needs Information
Revision history for this message
Christian Grabowski (cgrabowski) wrote :

> won't this conflict with centOS and RHEL images ?
CentOS requires base_image, as it is one of the builtin reserved OS's, but I do think RHEL needs to be excluded as well.

111f880... by Christian Grabowski

just check if boot resource is not custom

Revision history for this message
Alexsander de Souza (alexsander-souza) wrote :

LGTM

review: Approve
Revision history for this message
MAAS Lander (maas-lander) wrote :

UNIT TESTS
-b windows_and_esxi_do_not_require_base_image lp:~cgrabowski/maas/+git/maas into -b master lp:~maas-committers/maas

STATUS: SUCCESS
COMMIT: 55c6174cbcd2babac1001c351e70ed30a4efac5f

review: Approve
Revision history for this message
MAAS Lander (maas-lander) wrote :

UNIT TESTS
-b windows_and_esxi_do_not_require_base_image lp:~cgrabowski/maas/+git/maas into -b master lp:~maas-committers/maas

STATUS: FAILED
LOG: http://maas-ci.internal:8080/job/maas/job/branch-tester/11112/console
COMMIT: 473f301e9b4b65ce704e858ca2a0a2c4c4daa02b

review: Needs Fixing
Revision history for this message
MAAS Lander (maas-lander) wrote :

UNIT TESTS
-b windows_and_esxi_do_not_require_base_image lp:~cgrabowski/maas/+git/maas into -b master lp:~maas-committers/maas

STATUS: SUCCESS
COMMIT: 111f8801ed829d40237ed577b4bcf05e8cc1ef5d

review: Approve

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1diff --git a/src/maasserver/forms/__init__.py b/src/maasserver/forms/__init__.py
2index ae43336..d88c443 100644
3--- a/src/maasserver/forms/__init__.py
4+++ b/src/maasserver/forms/__init__.py
5@@ -2515,6 +2515,10 @@ class BootResourceForm(MAASModelForm):
6 in order to minimize possible incompatibilities during install and post-deployment
7 """
8
9+ split_name = self.data.get("name", "").split("/")
10+ if len(split_name) > 1 and split_name[0] != "custom":
11+ return ""
12+
13 try:
14 base_osystem, base_version = self._get_base_image_info()
15 except ValueError:
16diff --git a/src/maasserver/forms/tests/test_bootresource.py b/src/maasserver/forms/tests/test_bootresource.py
17index 7e321b5..e8aaeec 100644
18--- a/src/maasserver/forms/tests/test_bootresource.py
19+++ b/src/maasserver/forms/tests/test_bootresource.py
20@@ -183,6 +183,54 @@ class TestBootResourceForm(MAASServerTestCase):
21 form = BootResourceForm(data=data, files={"content": uploaded_file})
22 self.assertFalse(form.is_valid())
23
24+ def test_windows_does_not_require_base_image(self):
25+ name = "windows/%s" % factory.make_name("name")
26+ upload_type, filetype = self.pick_filetype()
27+ size = random.randint(1024, 2048)
28+ content = factory.make_string(size).encode("utf-8")
29+ upload_name = factory.make_name("filename")
30+ uploaded_file = SimpleUploadedFile(content=content, name=upload_name)
31+ data = {
32+ "name": name,
33+ "title": factory.make_name("title"),
34+ "architecture": make_usable_architecture(self),
35+ "filetype": upload_type,
36+ }
37+ form = BootResourceForm(data=data, files={"content": uploaded_file})
38+ self.assertTrue(form.is_valid())
39+
40+ def test_esxi_does_not_require_base_image(self):
41+ name = "esxi/%s" % factory.make_name("name")
42+ upload_type, filetype = self.pick_filetype()
43+ size = random.randint(1024, 2048)
44+ content = factory.make_string(size).encode("utf-8")
45+ upload_name = factory.make_name("filename")
46+ uploaded_file = SimpleUploadedFile(content=content, name=upload_name)
47+ data = {
48+ "name": name,
49+ "title": factory.make_name("title"),
50+ "architecture": make_usable_architecture(self),
51+ "filetype": upload_type,
52+ }
53+ form = BootResourceForm(data=data, files={"content": uploaded_file})
54+ self.assertTrue(form.is_valid())
55+
56+ def test_rhel_does_not_require_base_image(self):
57+ name = "rhel/%s" % factory.make_name("name")
58+ upload_type, filetype = self.pick_filetype()
59+ size = random.randint(1024, 2048)
60+ content = factory.make_string(size).encode("utf-8")
61+ upload_name = factory.make_name("filename")
62+ uploaded_file = SimpleUploadedFile(content=content, name=upload_name)
63+ data = {
64+ "name": name,
65+ "title": factory.make_name("title"),
66+ "architecture": make_usable_architecture(self),
67+ "filetype": upload_type,
68+ }
69+ form = BootResourceForm(data=data, files={"content": uploaded_file})
70+ self.assertTrue(form.is_valid())
71+
72 def test_validates_custom_image_base_os(self):
73 name = "custom/%s" % factory.make_name("name")
74 upload_type, filetype = self.pick_filetype()

Subscribers

People subscribed via source and target branches