def _inputs(self): inputs = [] for name, attrs in self._tpl_inputs().items(): log.debug("Input {}: {}".format(name, attrs)) exception.TOSCAException.set_context("input", name) try: input = Input(name, attrs, self.custom_defs) if self.parsed_params and name in self.parsed_params: input.validate(self.parsed_params[name]) else: log.debug("Not found in parsed params: {}".format( self.parsed_params)) default = input.default if default: input.validate(default) if (self.parsed_params and input.name not in self.parsed_params or self.parsed_params is None) and input.required \ and input.default is None: log.error( _('The required parameter %s ' 'is not provided') % input.name) exception.ExceptionCollector.appendException( exception.MissingRequiredParameterError( what='Template', input_name=input.name)) inputs.append(input) except Exception as e: log.error(_("Error in parsing input {}: {}").format(name, e)) if exception.ExceptionCollector.collecting is False: raise e exception.TOSCAException.reset_context() return inputs
def _inputs(self): inputs = [] for name, attrs in self._tpl_inputs().items(): input = Input(name, attrs) if self.parsed_params and name in self.parsed_params: input.validate(self.parsed_params[name]) inputs.append(input) return inputs
def test_built_in_nested_datatype_portdef(self): tpl_snippet = ''' inputs: db_port: type: PortDef description: Port for the MySQL database ''' inputs = yamlparser.simple_parse(tpl_snippet)['inputs'] name, attrs = list(inputs.items())[0] input = Input(name, attrs) self.assertIsNone(input.validate(3360)) try: input.validate(336000) except Exception as err: self.assertTrue(isinstance(err, exception.ValidationError)) self.assertEqual('None: 336000 is out of range (min:1, ' 'max:65535).', err.__str__())
def _inputs(self): inputs = [] for name, attrs in self._tpl_inputs().items(): input = Input(name, attrs) if self.parsed_params and name in self.parsed_params: input.validate(self.parsed_params[name]) else: default = input.default if default: input.validate(default) if (self.parsed_params and input.name not in self.parsed_params or self.parsed_params is None) and input.required \ and input.default is None: log.warning('The required parameter %s ' 'is not provided' % input.name) inputs.append(input) return inputs
def _inputs(self): inputs = [] for name, attrs in self._tpl_inputs().items(): input = Input(name, attrs, self.custom_defs) if self.parsed_params and name in self.parsed_params: input.validate(self.parsed_params[name]) else: default = input.default if default: input.validate(default) if (self.parsed_params and input.name not in self.parsed_params or self.parsed_params is None) and input.required \ and input.default is None: exception.ExceptionCollector.appendException( exception.MissingRequiredParameterError( what='Template', input_name=input.name)) inputs.append(input) return inputs
def _inputs(self): inputs = [] parsed_params = self.parsed_params or {} for name, attrs in self._tpl_inputs().items(): input = Input(name, attrs) if name in parsed_params: input.validate(parsed_params[name]) else: default = input.default if default: input.validate(default) if (input.name not in parsed_params and input.required and input.default is None): exception.ExceptionCollector.appendException( exception.MissingRequiredInputError( what=_('Topology template'), input_name=input.name)) inputs.append(input) return inputs
def test_inputs(self): tpl_snippet = ''' inputs: cpus: type: integer description: Number of CPUs for the server. constraint: - valid_values: [ 1, 2, 4, 8 ] ''' inputs = (toscaparser.utils.yamlparser. simple_parse(tpl_snippet)['inputs']) name, attrs = list(inputs.items())[0] input = Input(name, attrs) try: input.validate() except Exception as err: self.assertTrue(isinstance(err, exception.UnknownFieldError)) self.assertEqual('Input cpus contain(s) unknown field: ' '"constraint", refer to the definition to ' 'verify valid values.', err.__str__())
def _inputs(self): inputs = [] for name, attrs in self._tpl_inputs().items(): input = Input(name, attrs) if self.parsed_params and name in self.parsed_params: input.validate(self.parsed_params[name]) else: default = input.default if default: input.validate(default) if (self.parsed_params and input.name not in self.parsed_params or self.parsed_params is None) and input.required \ and input.default is None: exception.ExceptionCollector.appendException( exception.MissingRequiredParameterError( what='Template', input_name=input.name)) inputs.append(input) return inputs
def test_built_in_nested_datatype_portdef(self): tpl_snippet = ''' inputs: db_port: type: PortDef description: Port for the MySQL database ''' inputs = yamlparser.simple_parse(tpl_snippet)['inputs'] name, attrs = list(inputs.items())[0] input = Input(name, attrs) self.assertIsNone(input.validate(3360)) err = self.assertRaises(exception.ValidationError, input.validate, 336000) self.assertEqual( _('db_port(input): The value "336000" of property "None" is out of ' 'range "(min:1, max:65535)".'), err.__str__())
def test_built_in_nested_datatype_portdef(self): tpl_snippet = ''' inputs: db_port: type: PortDef description: Port for the MySQL database ''' inputs = yamlparser.simple_parse(tpl_snippet)['inputs'] name, attrs = list(inputs.items())[0] input = Input(name, attrs) self.assertIsNone(input.validate(3360)) err = self.assertRaises(exception.ValidationError, input.validate, 336000) self.assertEqual(_('The value "336000" of property "None" is out of ' 'range "(min:1, max:65535)".'), err.__str__())