Replace voluptuous with JSONSchema to validate nop 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 nop action in watcher applier.

Partially Implements: blueprint jsonschema-validation

Change-Id: Idf42b3359c36ac9480bd1f1bdd31e756214628ef
This commit is contained in:
Yumeng_Bao 2017-06-09 12:01:23 +08:00 committed by Yumeng Bao
parent 01e865edbf
commit 69730d80b2
1 changed files with 18 additions and 6 deletions

View File

@ -17,9 +17,8 @@
# limitations under the License.
#
import jsonschema
from oslo_log import log
import six
import voluptuous
from watcher.applier.actions import base
@ -43,10 +42,23 @@ class Nop(base.BaseAction):
@property
def schema(self):
return voluptuous.Schema({
voluptuous.Required(self.MESSAGE): voluptuous.Any(
voluptuous.Any(*six.string_types), None)
})
return {
'type': 'object',
'properties': {
'message': {
'type': ['string', 'null']
}
},
'required': ['message'],
'additionalProperties': False,
}
def validate_parameters(self):
try:
jsonschema.validate(self.input_parameters, self.schema)
return True
except jsonschema.ValidationError as e:
raise e
@property
def message(self):