Replace voluptuous with JSONSchema to validate resize action

Now in watcher,both JSONSchema and voluptuous are used to validate
JSON payloads. We want to remove voluptuous and Use JSONSchema
as our only JSON validation tool to keep consistence and also
to make it easier to expose the validation schema through
our API in future work.

In this patch, we replace voluptuous with JSONSchema to validate
the resize action in watcher applier.

Partially Implements: blueprint jsonschema-validation

Change-Id: I0ee4ba010a9f437658af81d5c971449aefc7f9c4
This commit is contained in:
Yumeng_Bao
2017-06-09 11:09:36 +08:00
parent 32dacdca8b
commit e2bf82607e
2 changed files with 33 additions and 33 deletions

View File

@@ -14,9 +14,8 @@
# limitations under the License.
from __future__ import unicode_literals
import jsonschema
import mock
import voluptuous
from watcher.applier.actions import base as baction
from watcher.applier.actions import resize
@@ -69,31 +68,23 @@ class TestResize(base.TestCase):
self.INSTANCE_UUID,
self.action.FLAVOR: None}
self.action.input_parameters = parameters
exc = self.assertRaises(
voluptuous.MultipleInvalid, self.action.validate_parameters)
self.assertEqual([(['flavor'], voluptuous.TypeInvalid)],
[(e.path, type(e)) for e in exc.errors])
self.assertRaises(jsonschema.ValidationError,
self.action.validate_parameters)
def test_parameters_exception_flavor(self):
parameters = {baction.BaseAction.RESOURCE_ID:
self.INSTANCE_UUID,
self.action.FLAVOR: None}
self.action.input_parameters = parameters
exc = self.assertRaises(
voluptuous.MultipleInvalid, self.action.validate_parameters)
self.assertEqual(
[(['flavor'], voluptuous.TypeInvalid)],
[(e.path, type(e)) for e in exc.errors])
self.assertRaises(jsonschema.ValidationError,
self.action.validate_parameters)
def test_parameters_exception_resource_id(self):
parameters = {baction.BaseAction.RESOURCE_ID: "EFEF",
self.action.FLAVOR: 'x1'}
self.action.input_parameters = parameters
exc = self.assertRaises(
voluptuous.MultipleInvalid, self.action.validate_parameters)
self.assertEqual(
[(['resource_id'], voluptuous.Invalid)],
[(e.path, type(e)) for e in exc.errors])
self.assertRaises(jsonschema.ValidationError,
self.action.validate_parameters)
def test_execute_resize(self):
self.r_helper.find_instance.return_value = self.INSTANCE_UUID