Hi
I am playing around with .aurora files and am facing an issue when I am
using a class hierarchy with the base class derived from Struct, as follows:
The good case:
class Profile(Struct):
environment = Required(String)
name = Default(String, 'test_app')
PRODUCTION = Profile(environment = 'prod', name = 'my_profile_app')
In this case, I have value populated in the following Mustache variables
(which is fine):
a) {{profile.environment}} = 'prod'
b) {{profile.name}} = 'my_profile_app'
Now, I add the following class that inherits from the base class Profile:
class DerivedProfile(Profile):
mz_name = Default(String, 'my_derived_profile_app')
and modify PRODUCTION as:
PRODUCTION = DerivedProfile(environment = 'prod', name = 'my_profile_app')
In this case, {{profile.mz_name}} is reported as invalid or as an"unbound
variable" (output of aurora inspect below). Is this supported via Pystachio
templating, ie. create a class hierarchy and ensure that I have access to
the Mustache variables. Any quick pointers before I get into the details?
My use case is that I want to have a base class with all my common
attributes for all my apps, and a derived class for each app that handles
app specific attributes.
Thanks
Anindya
Following is output of aurora inspect:
Traceback (most recent call last):
File
"/usr/local/bin/aurora/.deps/twitter.common.app-0.1.0-py2.6.egg/twitter/common/app/application.py",
line 738, in _wrap_method
return_code = method()
File
"/usr/local/bin/aurora/.deps/twitter.common.app-0.1.0-py2.6.egg/twitter/common/app/application.py",
line 760, in <lambda>
main = lambda: main_method(*args, **kwargs)
File "/usr/local/bin/aurora/apache/aurora/client/base.py", line 74, in
wrapped_function
return fn(*args)
File "/usr/local/bin/aurora/apache/aurora/client/commands/core.py", line
273, in inspect
job_thrift = config.job()
File "/usr/local/bin/aurora/apache/aurora/config/__init__.py", line 198,
in job
raise self.InvalidConfig(str(e))
InvalidConfig: The configuration was invalid: Config contains unbound
variables: {{profile.mz_name}}