From e00d4bba5117b19a984140b6fd15f9cfe4b81983 Mon Sep 17 00:00:00 2001 From: Artur Svechnikov Date: Thu, 7 Apr 2016 18:20:51 +0300 Subject: [PATCH] Add possiblity to use generator in environment config It should be possible to use generators in environment config. However validation schema doesn't allow it. Nailgun doesn't contain such scheme because validation take place after all values have been generated Change-Id: Iff2feb7357afff02793deee65b6c65072914739c Closes-Bug: #1557562 --- fuel_plugin_builder/tests/base.py | 11 +++++++++++ fuel_plugin_builder/validators/schemas/base.py | 7 ++++++- 2 files changed, 17 insertions(+), 1 deletion(-) diff --git a/fuel_plugin_builder/tests/base.py b/fuel_plugin_builder/tests/base.py index b1fa858..dbf75aa 100644 --- a/fuel_plugin_builder/tests/base.py +++ b/fuel_plugin_builder/tests/base.py @@ -184,6 +184,17 @@ class BaseValidator(BaseTestCase): "of type 'string', value path 'attributes -> key1 -> type'"): self.validator.check_env_config_attrs() + def test_check_env_config_attrs_generator_value(self, utils_mock): + utils_mock.parse_yaml.return_value = { + 'attributes': { + 'key1': { + 'type': 'hidden', + 'label': '', + 'value': {'generator': 'password'}, + 'weight': 1}}} + + self.validator.check_env_config_attrs() + def test_check_env_config_attrs_restriction_fails(self, utils_mock): utils_mock.parse_yaml.return_value = { 'attributes': { diff --git a/fuel_plugin_builder/validators/schemas/base.py b/fuel_plugin_builder/validators/schemas/base.py index 2e37703..1ad618e 100644 --- a/fuel_plugin_builder/validators/schemas/base.py +++ b/fuel_plugin_builder/validators/schemas/base.py @@ -169,7 +169,12 @@ class BaseSchema(object): 'properties': { 'type': {'type': 'string'}, 'weight': {'type': 'integer'}, - 'value': {'type': ['string', 'boolean']}, + 'value': {'anyOf': [ + {'type': 'string'}, + {'type': 'boolean'}, + {'type': 'object', + 'properties': {'generator': {'type': 'string'}}} + ]}, 'label': {'type': 'string'}, 'restrictions': self.restrictions, 'values': {'type': 'array', 'items':