Merge lp:~frankban/juju-quickstart/optional-fields into lp:juju-quickstart
- optional-fields
- Merge into trunk
Status: | Merged |
---|---|
Merged at revision: | 129 |
Proposed branch: | lp:~frankban/juju-quickstart/optional-fields |
Merge into: | lp:juju-quickstart |
Diff against target: |
293 lines (+73/-35) 4 files modified
quickstart/cli/forms.py (+2/-1) quickstart/models/envs.py (+56/-19) quickstart/tests/models/test_envs.py (+11/-11) tox.ini (+4/-4) |
To merge this branch: | bzr merge lp:~frankban/juju-quickstart/optional-fields |
Related bugs: |
Reviewer | Review Type | Date Requested | Status |
---|---|---|---|
Brad Crittenden (community) | code | Approve | |
Review via email: mp+257913@code.launchpad.net |
Commit message
Description of the change
Update provider fields.
Update the list of fields that quickstart
expects for each provider type. Also make
some OpenStack fields optional
(use-floating-ip, tenant-name and region).
Update the links to the provider documentation
(use jujucharms.com).
Update the jujubundlelib dependency to use the
latest one.
Tests: `make check`.
QA:
- check that the environment editing in the
interactive session looks good
(especially the openstack/azure environments
creation).
- use quickstart as usual
(`devenv/
(for instance) an ec2 or an azure environment.
Francesco Banconi (frankban) wrote : | # |
Brad Crittenden (bac) wrote : | # |
I can no longer login to Reitveld.
Code looks good. QA was fine.
Francesco Banconi (frankban) wrote : | # |
*** Submitted:
Update provider fields.
Update the list of fields that quickstart
expects for each provider type. Also make
some OpenStack fields optional
(use-floating-ip, tenant-name and region).
Update the links to the provider documentation
(use jujucharms.com).
Update the jujubundlelib dependency to use the
latest one.
Tests: `make check`.
QA:
- check that the environment editing in the
interactive session looks good
(especially the openstack/azure environments
creation).
- use quickstart as usual
(`devenv/
(for instance) an ec2 or an azure environment.
Preview Diff
1 | === modified file 'quickstart/cli/forms.py' | |||
2 | --- quickstart/cli/forms.py 2014-01-14 15:50:10 +0000 | |||
3 | +++ quickstart/cli/forms.py 2015-04-30 15:41:36 +0000 | |||
4 | @@ -168,7 +168,8 @@ | |||
5 | 168 | # Unset values are converted to a more convenient value for the | 168 | # Unset values are converted to a more convenient value for the |
6 | 169 | # checkbox (a boolean or a mixed state if allowed by the field). | 169 | # checkbox (a boolean or a mixed state if allowed by the field). |
7 | 170 | value = MIXED if field.allow_mixed else bool(field.default) | 170 | value = MIXED if field.allow_mixed else bool(field.default) |
9 | 171 | label = ('highlight', field.label) | 171 | caption_class = 'highlight' if field.required else 'optional' |
10 | 172 | label = (caption_class, field.label) | ||
11 | 172 | widget = urwid.CheckBox(label, state=value, has_mixed=field.allow_mixed) | 173 | widget = urwid.CheckBox(label, state=value, has_mixed=field.allow_mixed) |
12 | 173 | widgets = [] | 174 | widgets = [] |
13 | 174 | if error: | 175 | if error: |
14 | 175 | 176 | ||
15 | === modified file 'quickstart/models/envs.py' | |||
16 | --- quickstart/models/envs.py 2014-11-13 08:56:19 +0000 | |||
17 | +++ quickstart/models/envs.py 2015-04-30 15:41:36 +0000 | |||
18 | @@ -407,6 +407,12 @@ | |||
19 | 407 | is_default_field = fields.BoolField( | 407 | is_default_field = fields.BoolField( |
20 | 408 | 'is-default', label='default', allow_mixed=False, required=True, | 408 | 'is-default', label='default', allow_mixed=False, required=True, |
21 | 409 | help='make this the default environment') | 409 | help='make this the default environment') |
22 | 410 | image_stream_field = fields.SuggestionsStringField( | ||
23 | 411 | 'image-stream', label='image stream', required=False, | ||
24 | 412 | help='A simplestreams stream to select OS images from. For example ' | ||
25 | 413 | 'daily or released images (or any other stream available on ' | ||
26 | 414 | 'simplestreams).', | ||
27 | 415 | suggestions=['released', 'daily']) | ||
28 | 410 | # Define data structures used as part of the metadata below. | 416 | # Define data structures used as part of the metadata below. |
29 | 411 | ec2_regions = ( | 417 | ec2_regions = ( |
30 | 412 | 'ap-northeast-1', 'ap-southeast-1', 'ap-southeast-2', | 418 | 'ap-northeast-1', 'ap-southeast-1', 'ap-southeast-2', |
31 | @@ -432,7 +438,7 @@ | |||
32 | 432 | '__fallback__': { | 438 | '__fallback__': { |
33 | 433 | 'description': ( | 439 | 'description': ( |
34 | 434 | 'This provider type is not supported by quickstart. ' | 440 | 'This provider type is not supported by quickstart. ' |
36 | 435 | 'See https://juju.ubuntu.com/docs/getting-started.html for ' | 441 | 'See https://jujucharms.com/docs/stable/getting-started for ' |
37 | 436 | 'a description of how to get started with Juju.' | 442 | 'a description of how to get started with Juju.' |
38 | 437 | ), | 443 | ), |
39 | 438 | 'fields': ( | 444 | 'fields': ( |
40 | @@ -451,7 +457,7 @@ | |||
41 | 451 | 'This process requires you to have an Amazon Web Services (AWS) ' | 457 | 'This process requires you to have an Amazon Web Services (AWS) ' |
42 | 452 | 'account. If you have not signed up for one yet, it can obtained ' | 458 | 'account. If you have not signed up for one yet, it can obtained ' |
43 | 453 | 'at http://aws.amazon.com. ' | 459 | 'at http://aws.amazon.com. ' |
45 | 454 | 'See https://juju.ubuntu.com/docs/config-aws.html for more ' | 460 | 'See https://jujucharms.com/docs/stable/config-aws for more ' |
46 | 455 | 'details on the ec2 provider configuration.' | 461 | 'details on the ec2 provider configuration.' |
47 | 456 | ), | 462 | ), |
48 | 457 | 'fields': ( | 463 | 'fields': ( |
49 | @@ -478,6 +484,7 @@ | |||
50 | 478 | fields.ChoiceField( | 484 | fields.ChoiceField( |
51 | 479 | 'region', choices=ec2_regions, default='us-east-1', | 485 | 'region', choices=ec2_regions, default='us-east-1', |
52 | 480 | label='region', required=False, help='the ec2 region to use'), | 486 | label='region', required=False, help='the ec2 region to use'), |
53 | 487 | image_stream_field, | ||
54 | 481 | admin_secret_field, | 488 | admin_secret_field, |
55 | 482 | default_series_field, | 489 | default_series_field, |
56 | 483 | fields.AutoGeneratedStringField( | 490 | fields.AutoGeneratedStringField( |
57 | @@ -492,8 +499,8 @@ | |||
58 | 492 | 'The openstack provider enables you to run Juju on OpenStack ' | 499 | 'The openstack provider enables you to run Juju on OpenStack ' |
59 | 493 | 'private and public clouds. Use this also if you want to ' | 500 | 'private and public clouds. Use this also if you want to ' |
60 | 494 | 'set up Juju on HP Public Cloud. See ' | 501 | 'set up Juju on HP Public Cloud. See ' |
63 | 495 | 'https://juju.ubuntu.com/docs/config-openstack.html and ' | 502 | 'https://jujucharms.com/docs/stable/config-openstack and ' |
64 | 496 | 'https://juju.ubuntu.com/docs/config-hpcloud.html for more ' | 503 | 'https://jujucharms.com/docs/stable/config-hpcloud for more ' |
65 | 497 | 'details on the openstack provider configuration.' | 504 | 'details on the openstack provider configuration.' |
66 | 498 | ), | 505 | ), |
67 | 499 | 'fields': ( | 506 | 'fields': ( |
68 | @@ -506,25 +513,31 @@ | |||
69 | 506 | 'For HP Public Cloud, use the value suggested below:', | 513 | 'For HP Public Cloud, use the value suggested below:', |
70 | 507 | suggestions=['https://region-a.geo-1.identity.hpcloudsvc.com' | 514 | suggestions=['https://region-a.geo-1.identity.hpcloudsvc.com' |
71 | 508 | ':35357/v2.0/']), | 515 | ':35357/v2.0/']), |
77 | 509 | fields.StringField( | 516 | # Optional fields. |
73 | 510 | 'tenant-name', label='tenant name', required=True, | ||
74 | 511 | help='The OpenStack tenant name. For HP Public Cloud, this is ' | ||
75 | 512 | 'listed as the project name on the ' | ||
76 | 513 | 'https://horizon.hpcloud.com/landing/ page.'), | ||
78 | 514 | fields.BoolField( | 517 | fields.BoolField( |
81 | 515 | 'use-floating-ip', label='use floating IP', allow_mixed=False, | 518 | 'use-floating-ip', label='use floating IP', allow_mixed=True, |
82 | 516 | required=True, | 519 | required=False, |
83 | 517 | help='Specifies whether the use of a floating IP address is ' | 520 | help='Specifies whether the use of a floating IP address is ' |
84 | 518 | 'required to give the nodes a public IP address. ' | 521 | 'required to give the nodes a public IP address. ' |
85 | 519 | 'Some installations assign public IP addresses by ' | 522 | 'Some installations assign public IP addresses by ' |
86 | 520 | 'default without requiring a floating IP address. ' | 523 | 'default without requiring a floating IP address. ' |
87 | 521 | 'For HP Public Cloud, floating IP must be activated.'), | 524 | 'For HP Public Cloud, floating IP must be activated.'), |
88 | 525 | fields.BoolField( | ||
89 | 526 | 'use-default-secgroup', label='use default security group', | ||
90 | 527 | allow_mixed=True, required=False, | ||
91 | 528 | help='Specifies whether new machine instances should have the ' | ||
92 | 529 | '"default" OpenStack security group assigned. It ' | ||
93 | 530 | 'defaults to false.'), | ||
94 | 531 | fields.StringField( | ||
95 | 532 | 'tenant-name', label='tenant name', required=False, | ||
96 | 533 | help='The OpenStack tenant name. For HP Public Cloud, this is ' | ||
97 | 534 | 'listed as the project name on the ' | ||
98 | 535 | 'https://horizon.hpcloud.com/landing/ page.'), | ||
99 | 522 | fields.SuggestionsStringField( | 536 | fields.SuggestionsStringField( |
101 | 523 | 'region', label='region', required=True, | 537 | 'region', label='region', required=False, |
102 | 524 | help='The OpenStack region to use. ' | 538 | help='The OpenStack region to use. ' |
103 | 525 | 'For HP Public Cloud, use one of the following:', | 539 | 'For HP Public Cloud, use one of the following:', |
104 | 526 | suggestions=hp_regions), | 540 | suggestions=hp_regions), |
105 | 527 | # Optional fields. | ||
106 | 528 | fields.ChoiceField( | 541 | fields.ChoiceField( |
107 | 529 | 'auth-mode', label='authentication mode', required=False, | 542 | 'auth-mode', label='authentication mode', required=False, |
108 | 530 | default='userpass', choices=('userpass', 'keypair'), | 543 | default='userpass', choices=('userpass', 'keypair'), |
109 | @@ -548,6 +561,19 @@ | |||
110 | 548 | fields.PasswordField( | 561 | fields.PasswordField( |
111 | 549 | 'secret-key', label='secret key', required=False, | 562 | 'secret-key', label='secret key', required=False, |
112 | 550 | help='the secret key to use for the keypair authentication'), | 563 | help='the secret key to use for the keypair authentication'), |
113 | 564 | fields.StringField( | ||
114 | 565 | 'tools-metadata-url', label='tools metadata URL', | ||
115 | 566 | required=False, | ||
116 | 567 | help='The location of the Juju tools and metadata. It ' | ||
117 | 568 | 'defaults to the global public tools metadata location ' | ||
118 | 569 | 'https://streams.canonical.com/tools'), | ||
119 | 570 | fields.StringField( | ||
120 | 571 | 'image-metadata-url', label='image metadata URL', | ||
121 | 572 | required=False, | ||
122 | 573 | help='The location of Ubuntu cloud image metadata. It ' | ||
123 | 574 | 'defaults to the global public image metadata location ' | ||
124 | 575 | 'https://cloud-images.ubuntu.com/releases'), | ||
125 | 576 | image_stream_field, | ||
126 | 551 | fields.AutoGeneratedStringField( | 577 | fields.AutoGeneratedStringField( |
127 | 552 | 'control-bucket', label='control bucket', required=False, | 578 | 'control-bucket', label='control bucket', required=False, |
128 | 553 | help='the globally unique swift bucket name'), | 579 | help='the globally unique swift bucket name'), |
129 | @@ -563,7 +589,7 @@ | |||
130 | 563 | 'It requires you to have an Windows Azure account. If you have ' | 589 | 'It requires you to have an Windows Azure account. If you have ' |
131 | 564 | 'not signed up for one yet, it can obtained at ' | 590 | 'not signed up for one yet, it can obtained at ' |
132 | 565 | 'http://www.windowsazure.com/. See ' | 591 | 'http://www.windowsazure.com/. See ' |
134 | 566 | 'https://juju.ubuntu.com/docs/config-azure.html for more ' | 592 | 'https://jujucharms.com/docs/stable/config-azure for more ' |
135 | 567 | 'details on the azure provider configuration.' | 593 | 'details on the azure provider configuration.' |
136 | 568 | ), | 594 | ), |
137 | 569 | 'fields': ( | 595 | 'fields': ( |
138 | @@ -594,6 +620,7 @@ | |||
139 | 594 | 'location', choices=azure_locations, label='location', | 620 | 'location', choices=azure_locations, label='location', |
140 | 595 | required=True, help='the region to use'), | 621 | required=True, help='the region to use'), |
141 | 596 | # Optional fields. | 622 | # Optional fields. |
142 | 623 | image_stream_field, | ||
143 | 597 | admin_secret_field, | 624 | admin_secret_field, |
144 | 598 | default_series_field, | 625 | default_series_field, |
145 | 599 | is_default_field, | 626 | is_default_field, |
146 | @@ -606,8 +633,8 @@ | |||
147 | 606 | 'This process requires you to have a Joyent account. If you have ' | 633 | 'This process requires you to have a Joyent account. If you have ' |
148 | 607 | 'not signed up for one yet, it can obtained at ' | 634 | 'not signed up for one yet, it can obtained at ' |
149 | 608 | 'http://www.joyent.com/. See ' | 635 | 'http://www.joyent.com/. See ' |
152 | 609 | 'https://juju.ubuntu.com/docs/config-joyent.html for more details ' | 636 | 'https://jujucharms.com/docs/stable/config-joyent for more ' |
153 | 610 | 'on the joyent provider configuration.' | 637 | 'details on the joyent provider configuration.' |
154 | 611 | ), | 638 | ), |
155 | 612 | 'fields': ( | 639 | 'fields': ( |
156 | 613 | provider_field, | 640 | provider_field, |
157 | @@ -666,7 +693,7 @@ | |||
158 | 666 | 'turns your bare metal into an elastic cloud-like resource. ' | 693 | 'turns your bare metal into an elastic cloud-like resource. ' |
159 | 667 | 'Specifically, MAAS allows for services to be deployed to bare ' | 694 | 'Specifically, MAAS allows for services to be deployed to bare ' |
160 | 668 | 'metal via Juju. ' | 695 | 'metal via Juju. ' |
162 | 669 | 'See https://juju.ubuntu.com/docs/config-maas.html and ' | 696 | 'See https://jujucharms.com/docs/stable/config-maas and ' |
163 | 670 | 'http://maas.ubuntu.com/ for more information about MAAS.' | 697 | 'http://maas.ubuntu.com/ for more information about MAAS.' |
164 | 671 | ), | 698 | ), |
165 | 672 | 'fields': ( | 699 | 'fields': ( |
166 | @@ -685,6 +712,16 @@ | |||
167 | 685 | 'drop-down menu that appears when clicking your user ' | 712 | 'drop-down menu that appears when clicking your user ' |
168 | 686 | 'name at the top-right of the page.'), | 713 | 'name at the top-right of the page.'), |
169 | 687 | # Optional fields. | 714 | # Optional fields. |
170 | 715 | fields.BoolField( | ||
171 | 716 | 'disable-network-management', | ||
172 | 717 | label='disable Juju network management', | ||
173 | 718 | allow_mixed=True, required=False, | ||
174 | 719 | help='Enable this when MAAS is managing the bridge and ' | ||
175 | 720 | 'bringing networks up and down. This tells Juju not to ' | ||
176 | 721 | 'create a network bridge or to bring eth0 up and down ' | ||
177 | 722 | 'during the cloud-init install phase. Juju will not make ' | ||
178 | 723 | 'changes to the network configuration when its agents ' | ||
179 | 724 | 'start.'), | ||
180 | 688 | fields.FilePathField( | 725 | fields.FilePathField( |
181 | 689 | 'authorized-keys-path', required=False, | 726 | 'authorized-keys-path', required=False, |
182 | 690 | label='SSH public key file', | 727 | label='SSH public key file', |
183 | @@ -707,7 +744,7 @@ | |||
184 | 707 | 'options. Manual provisioning enables you to run Juju on systems ' | 744 | 'options. Manual provisioning enables you to run Juju on systems ' |
185 | 708 | 'that have a supported operating system installed. You will need ' | 745 | 'that have a supported operating system installed. You will need ' |
186 | 709 | 'to ensure that you have both SSH access and sudo rights. ' | 746 | 'to ensure that you have both SSH access and sudo rights. ' |
188 | 710 | 'See https://juju.ubuntu.com/docs/config-manual.html for more ' | 747 | 'See https://jujucharms.com/docs/stable/config-manual for more ' |
189 | 711 | 'details on the manual provider configuration, including its ' | 748 | 'details on the manual provider configuration, including its ' |
190 | 712 | 'caveats and limitattions.' | 749 | 'caveats and limitattions.' |
191 | 713 | ), | 750 | ), |
192 | @@ -743,7 +780,7 @@ | |||
193 | 743 | 'description': ( | 780 | 'description': ( |
194 | 744 | 'The LXC local provider enables you to run Juju on a single ' | 781 | 'The LXC local provider enables you to run Juju on a single ' |
195 | 745 | 'system like your local computer or a single server. ' | 782 | 'system like your local computer or a single server. ' |
197 | 746 | 'See https://juju.ubuntu.com/docs/config-LXC.html for more ' | 783 | 'See https://jujucharms.com/docs/stable/config-LXC for more ' |
198 | 747 | 'details on the local provider configuration.' | 784 | 'details on the local provider configuration.' |
199 | 748 | ), | 785 | ), |
200 | 749 | 'fields': ( | 786 | 'fields': ( |
201 | 750 | 787 | ||
202 | === modified file 'quickstart/tests/models/test_envs.py' | |||
203 | --- quickstart/tests/models/test_envs.py 2015-02-09 10:38:25 +0000 | |||
204 | +++ quickstart/tests/models/test_envs.py 2015-04-30 15:41:36 +0000 | |||
205 | @@ -712,7 +712,8 @@ | |||
206 | 712 | env_metadata = self.env_type_db['ec2'] | 712 | env_metadata = self.env_type_db['ec2'] |
207 | 713 | expected = [ | 713 | expected = [ |
208 | 714 | 'type', 'name', 'access-key', 'secret-key', 'region', | 714 | 'type', 'name', 'access-key', 'secret-key', 'region', |
210 | 715 | 'admin-secret', 'default-series', 'control-bucket', 'is-default'] | 715 | 'image-stream', 'admin-secret', 'default-series', 'control-bucket', |
211 | 716 | 'is-default'] | ||
212 | 716 | expected_required = [ | 717 | expected_required = [ |
213 | 717 | 'type', 'name', 'access-key', 'secret-key', | 718 | 'type', 'name', 'access-key', 'secret-key', |
214 | 718 | 'is-default'] | 719 | 'is-default'] |
215 | @@ -724,13 +725,12 @@ | |||
216 | 724 | self.assertIn('openstack', self.env_type_db) | 725 | self.assertIn('openstack', self.env_type_db) |
217 | 725 | env_metadata = self.env_type_db['openstack'] | 726 | env_metadata = self.env_type_db['openstack'] |
218 | 726 | expected = [ | 727 | expected = [ |
226 | 727 | 'type', 'name', 'auth-url', 'tenant-name', 'use-floating-ip', | 728 | 'type', 'name', 'auth-url', 'use-floating-ip', |
227 | 728 | 'region', 'auth-mode', 'username', 'password', 'access-key', | 729 | 'use-default-secgroup', 'tenant-name', 'region', 'auth-mode', |
228 | 729 | 'secret-key', 'control-bucket', 'admin-secret', 'default-series', | 730 | 'username', 'password', 'access-key', 'secret-key', |
229 | 730 | 'is-default'] | 731 | 'tools-metadata-url', 'image-metadata-url', 'image-stream', |
230 | 731 | expected_required = [ | 732 | 'control-bucket', 'admin-secret', 'default-series', 'is-default'] |
231 | 732 | 'type', 'name', 'auth-url', 'tenant-name', 'use-floating-ip', | 733 | expected_required = ['type', 'name', 'auth-url', 'is-default'] |
225 | 733 | 'region', 'is-default'] | ||
232 | 734 | self.assert_fields(expected, env_metadata) | 734 | self.assert_fields(expected, env_metadata) |
233 | 735 | self.assert_required_fields(expected_required, env_metadata) | 735 | self.assert_required_fields(expected_required, env_metadata) |
234 | 736 | 736 | ||
235 | @@ -741,7 +741,7 @@ | |||
236 | 741 | expected = [ | 741 | expected = [ |
237 | 742 | 'type', 'name', 'management-subscription-id', | 742 | 'type', 'name', 'management-subscription-id', |
238 | 743 | 'management-certificate-path', 'storage-account-name', 'location', | 743 | 'management-certificate-path', 'storage-account-name', 'location', |
240 | 744 | 'admin-secret', 'default-series', 'is-default'] | 744 | 'image-stream', 'admin-secret', 'default-series', 'is-default'] |
241 | 745 | expected_required = [ | 745 | expected_required = [ |
242 | 746 | 'type', 'name', 'management-subscription-id', | 746 | 'type', 'name', 'management-subscription-id', |
243 | 747 | 'management-certificate-path', 'storage-account-name', 'location', | 747 | 'management-certificate-path', 'storage-account-name', 'location', |
244 | @@ -769,8 +769,8 @@ | |||
245 | 769 | env_metadata = self.env_type_db['maas'] | 769 | env_metadata = self.env_type_db['maas'] |
246 | 770 | expected = [ | 770 | expected = [ |
247 | 771 | 'type', 'name', 'maas-server', 'maas-oauth', | 771 | 'type', 'name', 'maas-server', 'maas-oauth', |
250 | 772 | 'authorized-keys-path', 'admin-secret', 'default-series', | 772 | 'disable-network-management', 'authorized-keys-path', |
251 | 773 | 'is-default'] | 773 | 'admin-secret', 'default-series', 'is-default'] |
252 | 774 | expected_required = [ | 774 | expected_required = [ |
253 | 775 | 'type', 'name', 'maas-server', 'maas-oauth', 'is-default'] | 775 | 'type', 'name', 'maas-server', 'maas-oauth', 'is-default'] |
254 | 776 | self.assert_fields(expected, env_metadata) | 776 | self.assert_fields(expected, env_metadata) |
255 | 777 | 777 | ||
256 | === modified file 'tox.ini' | |||
257 | --- tox.ini 2015-04-28 15:25:14 +0000 | |||
258 | +++ tox.ini 2015-04-30 15:41:36 +0000 | |||
259 | @@ -72,7 +72,7 @@ | |||
260 | 72 | # See https://launchpad.net/~juju/+archive/ubuntu/stable. | 72 | # See https://launchpad.net/~juju/+archive/ubuntu/stable. |
261 | 73 | websocket-client==0.18.0 | 73 | websocket-client==0.18.0 |
262 | 74 | jujuclient==0.50.1 | 74 | jujuclient==0.50.1 |
264 | 75 | jujubundlelib==0.1.5 | 75 | jujubundlelib==0.1.6 |
265 | 76 | urwid==1.2.1 | 76 | urwid==1.2.1 |
266 | 77 | # The distribution PyYAML requirement is used in this case. | 77 | # The distribution PyYAML requirement is used in this case. |
267 | 78 | 78 | ||
268 | @@ -82,7 +82,7 @@ | |||
269 | 82 | # Ubuntu 14.04 (trusty) distro dependencies. | 82 | # Ubuntu 14.04 (trusty) distro dependencies. |
270 | 83 | websocket-client==0.12.0 | 83 | websocket-client==0.12.0 |
271 | 84 | jujuclient==0.17.5 | 84 | jujuclient==0.17.5 |
273 | 85 | jujubundlelib==0.1.5 | 85 | jujubundlelib==0.1.6 |
274 | 86 | PyYAML==3.10 | 86 | PyYAML==3.10 |
275 | 87 | urwid==1.1.1 | 87 | urwid==1.1.1 |
276 | 88 | 88 | ||
277 | @@ -92,7 +92,7 @@ | |||
278 | 92 | # Ubuntu 14.10 (utopic) distro dependencies. | 92 | # Ubuntu 14.10 (utopic) distro dependencies. |
279 | 93 | websocket-client==0.12.0 | 93 | websocket-client==0.12.0 |
280 | 94 | jujuclient==0.17.5 | 94 | jujuclient==0.17.5 |
282 | 95 | jujubundlelib==0.1.5 | 95 | jujubundlelib==0.1.6 |
283 | 96 | PyYAML==3.11 | 96 | PyYAML==3.11 |
284 | 97 | urwid==1.2.1 | 97 | urwid==1.2.1 |
285 | 98 | 98 | ||
286 | @@ -102,7 +102,7 @@ | |||
287 | 102 | # Ubuntu 15.04 (vivid) distro dependencies. | 102 | # Ubuntu 15.04 (vivid) distro dependencies. |
288 | 103 | websocket-client==0.18.0 | 103 | websocket-client==0.18.0 |
289 | 104 | jujuclient==0.18.5 | 104 | jujuclient==0.18.5 |
291 | 105 | jujubundlelib==0.1.5 | 105 | jujubundlelib==0.1.6 |
292 | 106 | PyYAML==3.11 | 106 | PyYAML==3.11 |
293 | 107 | urwid==1.2.1 | 107 | urwid==1.2.1 |
294 | 108 | 108 |
Reviewers: mp+257913_ code.launchpad. net,
Message:
Please take a look.
Description:
Update provider fields.
Update the list of fields that quickstart
expects for each provider type. Also make
some OpenStack fields optional
(use-floating-ip, tenant-name and region).
Update the links to the provider documentation
(use jujucharms.com).
Update the jujubundlelib dependency to use the
latest one.
Tests: `make check`.
QA: bin/juju- quickstart` ), to start
- check that the environment editing in the
interactive session looks good
(especially the openstack/azure environments
creation).
- use quickstart as usual
(`devenv/
(for instance) an ec2 or an azure environment.
https:/ /code.launchpad .net/~frankban/ juju-quickstart /optional- fields/ +merge/ 257913
(do not edit description out of merge proposal)
Please review this at https:/ /codereview. appspot. com/234150043/
Affected files (+75, -35 lines): cli/forms. py models/ envs.py tests/models/ test_envs. py
A [revision details]
M quickstart/
M quickstart/
M quickstart/
M tox.ini