Why is this a "bad error"? (it might be raw but I argue that for this kind of error, you want the error to be as precise as possible and re-writing it somehow might hide details useful to fix the problem).
Now, about the error itself:
Here is the snippet that errors:
"""
power_addr = "esx://%s@%s/?no_verify=1" % (power_user, power_address)"
try:
power_control_virsh( {{repr(power_addr).decode("ascii") | safe}},
""""
As you can see the last line is a *tempita expression*. The process goes like this: render tempita templace -> execute bash template (which, in turn, runs the Python code inside it).
So, the part that fails is the rendering of the tempita template. At this stage, power_addr isn't defined. You need to put the definition of 'power_addr' in the tempita template itself (for instance by using http://pythonpaste.org/tempita/#python-blocks).
Why is this a "bad error"? (it might be raw but I argue that for this kind of error, you want the error to be as precise as possible and re-writing it somehow might hide details useful to fix the problem).
Now, about the error itself: %s@%s/? no_verify= 1" % (power_user, power_address)" control_ virsh(
{{repr( power_addr) .decode( "ascii" ) | safe}},
Here is the snippet that errors:
"""
power_addr = "esx://
try:
power_
""""
As you can see the last line is a *tempita expression*. The process goes like this: render tempita templace -> execute bash template (which, in turn, runs the Python code inside it).
So, the part that fails is the rendering of the tempita template. At this stage, power_addr isn't defined. You need to put the definition of 'power_addr' in the tempita template itself (for instance by using http:// pythonpaste. org/tempita/ #python- blocks).