api: Set min, maxItems for server_group.policies field
As noted inline, the 'policies' field may be a list but it expects one of two items. Change-Id: I34c68df1e6330dab1524aa0abec733610211a407 Signed-off-by: Stephen Finucane <stephenfin@redhat.com> Closes-Bug: #1894966
This commit is contained in:
parent
2c66962c7a
commit
32c43fc801
@ -11,6 +11,7 @@
|
||||
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
|
||||
# License for the specific language governing permissions and limitations
|
||||
# under the License.
|
||||
|
||||
import copy
|
||||
|
||||
from nova.api.validation import parameter_types
|
||||
@ -27,15 +28,18 @@ create = {
|
||||
'name': parameter_types.name,
|
||||
'policies': {
|
||||
# This allows only a single item and it must be one of the
|
||||
# enumerated values. So this is really just a single string
|
||||
# value, but for legacy reasons is an array. We could
|
||||
# probably change the type from array to string with a
|
||||
# microversion at some point but it's very low priority.
|
||||
# enumerated values. It's changed to a single string value
|
||||
# in 2.64.
|
||||
'type': 'array',
|
||||
'items': [{
|
||||
'type': 'string',
|
||||
'enum': ['anti-affinity', 'affinity']}],
|
||||
'items': [
|
||||
{
|
||||
'type': 'string',
|
||||
'enum': ['anti-affinity', 'affinity'],
|
||||
},
|
||||
],
|
||||
'uniqueItems': True,
|
||||
'minItems': 1,
|
||||
'maxItems': 1,
|
||||
'additionalItems': False,
|
||||
}
|
||||
},
|
||||
|
@ -37,5 +37,4 @@ class TestCreateServerGroupWithEmptyPolicies(
|
||||
client.OpenStackApiException,
|
||||
self.api.post_server_groups,
|
||||
{'name': 'test group', 'policies': []})
|
||||
# FIXME(stephenfin): This should not be a 500 error
|
||||
self.assertEqual(500, exc.response.status_code)
|
||||
self.assertEqual(400, exc.response.status_code)
|
||||
|
10
releasenotes/notes/bug-1894966-d25c12b1320cb910.yaml
Normal file
10
releasenotes/notes/bug-1894966-d25c12b1320cb910.yaml
Normal file
@ -0,0 +1,10 @@
|
||||
---
|
||||
fixes:
|
||||
- |
|
||||
Resolved an issue whereby providing an empty list for the ``policies``
|
||||
field in the request body of the ``POST /os-server-groups`` API would
|
||||
result in a server error. This only affects the 2.1 to 2.63 microversions,
|
||||
as the 2.64 microversion replaces the ``policies`` list field with a
|
||||
``policy`` string field. See `bug #1894966`__ for more information.
|
||||
|
||||
.. __: https://bugs.launchpad.net/nova/+bug/1894966
|
Loading…
Reference in New Issue
Block a user