Comment 6 for bug 1620696

Revision history for this message
Michele Baldessari (michele) wrote :

So if I dump the arguments in heat/engine/cfn/functions.py where it fails:
class Join(function.Function):
...
         try:
             self._delim, self._strings = self.args
         except ValueError:
+ with open("/tmp/test", "w") as f:
+ for i in args:
+ f.write("Arg: %s\n" % i)
+
             raise ValueError(_('Incorrect arguments to "%(fn_name)s" '
                                'should be: %(example)s') % fmt_data)

I see the following:
Arg: ,
Arg: <heat.engine.hot.functions.GetAtt {get_attr: [u'ControllerServiceChain', u'role_data', u'service_names']} -> None>
Arg: <heat.engine.hot.functions.GetAtt {get_attr: [u'ComputeServiceChain', u'role_data', u'service_names']} -> None>
Arg: <heat.engine.hot.functions.GetAtt {get_attr: [u'BlockStorageServiceChain', u'role_data', u'service_names']} -> None>
Arg: <heat.engine.hot.functions.GetAtt {get_attr: [u'ObjectStorageServiceChain', u'role_data', u'service_names']} -> None>
Arg: <heat.engine.hot.functions.GetAtt {get_attr: [u'CephStorageServiceChain', u'role_data', u'service_names']} -> None>

So it seems those functions return None and this confuses the function?