Merge lp:~rvb/maas/improv-settings into lp:~maas-committers/maas/trunk

Proposed by Raphaël Badin
Status: Merged
Approved by: Andres Rodriguez
Approved revision: no longer in the source branch.
Merged at revision: 1093
Proposed branch: lp:~rvb/maas/improv-settings
Merge into: lp:~maas-committers/maas/trunk
Diff against target: 150 lines (+45/-17)
4 files modified
src/maasserver/forms.py (+8/-0)
src/maasserver/models/config.py (+1/-1)
src/maasserver/templates/maasserver/settings.html (+3/-0)
src/maasserver/tests/test_views_settings.py (+33/-16)
To merge this branch: bzr merge lp:~rvb/maas/improv-settings
Reviewer Review Type Date Requested Status
Andres Rodriguez (community) Approve
Launchpad code reviewers Pending
Review via email: mp+126689@code.launchpad.net

Commit message

This branch adds the ability to change the value of the config settings default_distro_series and commissioning_distro_series on the settings page.

Description of the change

This branch adds the ability to change the value of the config settings default_distro_series and commissioning_distro_series on the settings page.

To post a comment you must log in.
Revision history for this message
Andres Rodriguez (andreserl) wrote :

Looks good to me.

review: Approve

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1=== modified file 'src/maasserver/forms.py'
2--- src/maasserver/forms.py 2012-09-26 16:30:00 +0000
3+++ src/maasserver/forms.py 2012-09-27 14:13:24 +0000
4@@ -576,6 +576,10 @@
5 after_commissioning = forms.ChoiceField(
6 choices=NODE_AFTER_COMMISSIONING_ACTION_CHOICES,
7 label="After commissioning")
8+ commissioning_distro_series = forms.ChoiceField(
9+ choices=DISTRO_SERIES_CHOICES, required=False,
10+ label="Default distro series used for commissioning",
11+ error_messages={'invalid_choice': INVALID_DISTRO_SERIES_MESSAGE})
12
13
14 class UbuntuForm(ConfigForm):
15@@ -583,6 +587,10 @@
16 fallback_master_archive = forms.BooleanField(
17 label="Fallback to Ubuntu master archive",
18 required=False)
19+ default_distro_series = forms.ChoiceField(
20+ choices=DISTRO_SERIES_CHOICES, required=False,
21+ label="Default distro series used for deployment",
22+ error_messages={'invalid_choice': INVALID_DISTRO_SERIES_MESSAGE})
23 keep_mirror_list_uptodate = forms.BooleanField(
24 label="Keep mirror list up to date",
25 required=False)
26
27=== modified file 'src/maasserver/models/config.py'
28--- src/maasserver/models/config.py 2012-09-19 14:07:52 +0000
29+++ src/maasserver/models/config.py 2012-09-27 14:13:24 +0000
30@@ -51,9 +51,9 @@
31 # Network section configuration.
32 'maas_name': gethostname(),
33 'enlistment_domain': b'local',
34- ## /settings
35 'default_distro_series': DISTRO_SERIES.precise,
36 'commissioning_distro_series': DISTRO_SERIES.precise,
37+ ## /settings
38 }
39
40
41
42=== modified file 'src/maasserver/templates/maasserver/settings.html'
43--- src/maasserver/templates/maasserver/settings.html 2012-08-03 16:36:26 +0000
44+++ src/maasserver/templates/maasserver/settings.html 2012-09-27 14:13:24 +0000
45@@ -90,6 +90,9 @@
46 {% with field=ubuntu_form.update_from %}
47 {% include "maasserver/form_field.html" %}
48 {% endwith %}
49+ {% with field=ubuntu_form.default_distro_series %}
50+ {% include "maasserver/form_field.html" %}
51+ {% endwith %}
52 <li>
53 <label>Custom archives</label>
54 <a href="{% url "settings-add-archive" %}">
55
56=== modified file 'src/maasserver/tests/test_views_settings.py'
57--- src/maasserver/tests/test_views_settings.py 2012-09-18 16:36:51 +0000
58+++ src/maasserver/tests/test_views_settings.py 2012-09-27 14:13:24 +0000
59@@ -18,7 +18,10 @@
60 from django.contrib.auth.models import User
61 from django.core.urlresolvers import reverse
62 from lxml.html import fromstring
63-from maasserver.enum import NODE_AFTER_COMMISSIONING_ACTION
64+from maasserver.enum import (
65+ DISTRO_SERIES,
66+ NODE_AFTER_COMMISSIONING_ACTION,
67+ )
68 from maasserver.models import (
69 Config,
70 UserProfile,
71@@ -96,6 +99,7 @@
72 new_after_commissioning = factory.getRandomEnum(
73 NODE_AFTER_COMMISSIONING_ACTION)
74 new_check_compatibility = factory.getRandomBoolean()
75+ new_commissioning_distro_series = factory.getRandomEnum(DISTRO_SERIES)
76 response = self.client.post(
77 '/settings/',
78 get_prefixed_form_data(
79@@ -103,15 +107,22 @@
80 data={
81 'after_commissioning': new_after_commissioning,
82 'check_compatibility': new_check_compatibility,
83+ 'commissioning_distro_series':
84+ new_commissioning_distro_series,
85 }))
86
87 self.assertEqual(httplib.FOUND, response.status_code)
88 self.assertEqual(
89- new_after_commissioning,
90- Config.objects.get_config('after_commissioning'))
91- self.assertEqual(
92- new_check_compatibility,
93- Config.objects.get_config('check_compatibility'))
94+ (
95+ new_after_commissioning,
96+ new_check_compatibility,
97+ new_commissioning_distro_series,
98+ ),
99+ (
100+ Config.objects.get_config('after_commissioning'),
101+ Config.objects.get_config('check_compatibility'),
102+ Config.objects.get_config('commissioning_distro_series'),
103+ ))
104
105 def test_settings_ubuntu_POST(self):
106 new_fallback_master_archive = factory.getRandomBoolean()
107@@ -119,6 +130,7 @@
108 new_fetch_new_releases = factory.getRandomBoolean()
109 choices = Config.objects.get_config('update_from_choice')
110 new_update_from = factory.getRandomChoice(choices)
111+ new_default_distro_series = factory.getRandomEnum(DISTRO_SERIES)
112 response = self.client.post(
113 '/settings/',
114 get_prefixed_form_data(
115@@ -128,20 +140,25 @@
116 'keep_mirror_list_uptodate': new_keep_mirror_list_uptodate,
117 'fetch_new_releases': new_fetch_new_releases,
118 'update_from': new_update_from,
119+ 'default_distro_series': new_default_distro_series,
120 }))
121
122 self.assertEqual(httplib.FOUND, response.status_code)
123 self.assertEqual(
124- new_fallback_master_archive,
125- Config.objects.get_config('fallback_master_archive'))
126- self.assertEqual(
127- new_keep_mirror_list_uptodate,
128- Config.objects.get_config('keep_mirror_list_uptodate'))
129- self.assertEqual(
130- new_fetch_new_releases,
131- Config.objects.get_config('fetch_new_releases'))
132- self.assertEqual(
133- new_update_from, Config.objects.get_config('update_from'))
134+ (
135+ new_fallback_master_archive,
136+ new_keep_mirror_list_uptodate,
137+ new_fetch_new_releases,
138+ new_update_from,
139+ new_default_distro_series,
140+ ),
141+ (
142+ Config.objects.get_config('fallback_master_archive'),
143+ Config.objects.get_config('keep_mirror_list_uptodate'),
144+ Config.objects.get_config('fetch_new_releases'),
145+ Config.objects.get_config('update_from'),
146+ Config.objects.get_config('default_distro_series'),
147+ ))
148
149 def test_settings_add_archive_POST(self):
150 choices = Config.objects.get_config('update_from_choice')