Add config validation for default_data
It is a little difficult to set up default_data.json for users, and we already have the corresponding schema in the code. JSON-Schema outputs useful error message when users misconfigures some items. So this patch makes the schema validation enabled for default_data. Change-Id: Id0efae913c202a30476d73a3821711c5250fcfee
This commit is contained in:
		| @@ -6,6 +6,7 @@ pbr>=2.0.0 # Apache-2.0 | |||||||
| Babel>=2.3.4 # BSD | Babel>=2.3.4 # BSD | ||||||
| Flask!=0.11,<1.0,>=0.10 # BSD | Flask!=0.11,<1.0,>=0.10 # BSD | ||||||
| iso8601>=0.1.11 # MIT | iso8601>=0.1.11 # MIT | ||||||
|  | jsonschema>=2.0.0,<3.0.0,!=2.5.0 # MIT | ||||||
| oslo.config>=3.22.0 # Apache-2.0 | oslo.config>=3.22.0 # Apache-2.0 | ||||||
| oslo.i18n>=2.1.0 # Apache-2.0 | oslo.i18n>=2.1.0 # Apache-2.0 | ||||||
| oslo.log>=3.22.0 # Apache-2.0 | oslo.log>=3.22.0 # Apache-2.0 | ||||||
|   | |||||||
| @@ -15,6 +15,7 @@ | |||||||
|  |  | ||||||
| import itertools | import itertools | ||||||
|  |  | ||||||
|  | import jsonschema | ||||||
| from oslo_config import cfg | from oslo_config import cfg | ||||||
| from oslo_log import log as logging | from oslo_log import log as logging | ||||||
| import psutil | import psutil | ||||||
| @@ -32,6 +33,7 @@ from stackalytics.processor import mps | |||||||
| from stackalytics.processor import rcs | from stackalytics.processor import rcs | ||||||
| from stackalytics.processor import record_processor | from stackalytics.processor import record_processor | ||||||
| from stackalytics.processor import runtime_storage | from stackalytics.processor import runtime_storage | ||||||
|  | from stackalytics.processor import schema | ||||||
| from stackalytics.processor import utils | from stackalytics.processor import utils | ||||||
| from stackalytics.processor import vcs | from stackalytics.processor import vcs | ||||||
| from stackalytics.processor import zanata | from stackalytics.processor import zanata | ||||||
| @@ -316,6 +318,12 @@ def main(): | |||||||
|         LOG.critical('Unable to load default data') |         LOG.critical('Unable to load default data') | ||||||
|         return not 0 |         return not 0 | ||||||
|  |  | ||||||
|  |     try: | ||||||
|  |         jsonschema.validate(default_data, schema.default_data) | ||||||
|  |     except jsonschema.ValidationError as e: | ||||||
|  |         LOG.critical('The default data is invalid: %s' % e) | ||||||
|  |         return not 0 | ||||||
|  |  | ||||||
|     default_data_processor.process(runtime_storage_inst, |     default_data_processor.process(runtime_storage_inst, | ||||||
|                                    default_data, |                                    default_data, | ||||||
|                                    CONF.driverlog_data_uri) |                                    CONF.driverlog_data_uri) | ||||||
|   | |||||||
| @@ -6,7 +6,6 @@ | |||||||
| hacking!=0.13.0,<0.14,>=0.12.0 # Apache-2.0 | hacking!=0.13.0,<0.14,>=0.12.0 # Apache-2.0 | ||||||
| coverage>=4.0 # Apache-2.0 | coverage>=4.0 # Apache-2.0 | ||||||
| fixtures>=3.0.0 # Apache-2.0/BSD | fixtures>=3.0.0 # Apache-2.0/BSD | ||||||
| jsonschema!=2.5.0,<3.0.0,>=2.0.0 # MIT |  | ||||||
| mock>=2.0 # BSD | mock>=2.0 # BSD | ||||||
| python-subunit>=0.0.18 # Apache-2.0/BSD | python-subunit>=0.0.18 # Apache-2.0/BSD | ||||||
| sphinx>=1.5.1 # BSD | sphinx>=1.5.1 # BSD | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user
	 Ken'ichi Ohmichi
					Ken'ichi Ohmichi