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
Ejemplo n.º 2
0
 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
Ejemplo n.º 3
0
 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
Ejemplo n.º 4
0
 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__())
Ejemplo n.º 5
0
    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
Ejemplo n.º 6
0
    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
Ejemplo n.º 7
0
    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__())
Ejemplo n.º 9
0
    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
Ejemplo n.º 10
0
 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__())
Ejemplo n.º 11
0
 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__())