30 from ec2
import lookup
31 from ec2.error
import AuthFailure, InvalidAction, MissingParameter
36 def __init__(self, status, routine_name, routine_args=None):
42 return "'%s' raised by '%s(%s)'" % \
50 def __init__(self, parameters, cluster_manager):
61 def __new__(cls, parameters, cluster_manager):
64 action = parameters[
'Action']
66 raise MissingParameter(parameter=
'Action')
69 for concrete_class
in cls.__subclasses__():
70 if concrete_class.__name__ == action:
74 raise InvalidAction(action=action)
77 action = super(Action, cls).
__new__(concrete_class, parameters, cluster_manager)
80 def _get_template(self):
81 name =
'%s.xml' % self.parameters.get(
'Action')
82 return lookup.get_template(name)
93 context = self._execute()
or {}
94 except CLMException, error:
95 if error.status ==
'user_get':
99 response = template.render(**context)