__init__.py (ec2-api-14.0.1) | : | __init__.py (ec2-api-15.0.0) | ||
---|---|---|---|---|
skipping to change at line 31 | skipping to change at line 31 | |||
import botocore | import botocore | |||
from keystoneauth1 import session as keystone_session | from keystoneauth1 import session as keystone_session | |||
from keystoneclient import access as keystone_access | from keystoneclient import access as keystone_access | |||
from keystoneclient.auth.identity import access as keystone_identity_access | from keystoneclient.auth.identity import access as keystone_identity_access | |||
from oslo_config import cfg | from oslo_config import cfg | |||
from oslo_context import context as common_context | from oslo_context import context as common_context | |||
from oslo_log import log as logging | from oslo_log import log as logging | |||
from oslo_serialization import jsonutils | from oslo_serialization import jsonutils | |||
from oslo_utils import timeutils | from oslo_utils import timeutils | |||
import requests | import requests | |||
import six | ||||
import webob | import webob | |||
import webob.dec | import webob.dec | |||
import webob.exc | import webob.exc | |||
from ec2api.api import apirequest | from ec2api.api import apirequest | |||
from ec2api.api import ec2utils | from ec2api.api import ec2utils | |||
from ec2api.api import faults | from ec2api.api import faults | |||
from ec2api import clients | from ec2api import clients | |||
from ec2api import context | from ec2api import context | |||
from ec2api import exception | from ec2api import exception | |||
skipping to change at line 341 | skipping to change at line 340 | |||
request_id = context.request_id | request_id = context.request_id | |||
log_msg_args = { | log_msg_args = { | |||
'ex_name': type(ex).__name__, | 'ex_name': type(ex).__name__, | |||
'ex_str': ex | 'ex_str': ex | |||
} | } | |||
log_fun(log_msg % log_msg_args, context=context, exc_info=exc_info) | log_fun(log_msg % log_msg_args, context=context, exc_info=exc_info) | |||
if unexpected and status >= 500: | if unexpected and status >= 500: | |||
message = _('Unknown error occurred.') | message = _('Unknown error occurred.') | |||
elif getattr(ex, 'message', None): | elif getattr(ex, 'message', None): | |||
message = six.text_type(ex.message) | message = str(ex.message) | |||
elif ex.args and any(arg for arg in ex.args): | elif ex.args and any(arg for arg in ex.args): | |||
message = " ".join(map(six.text_type, ex.args)) | message = " ".join(map(str, ex.args)) | |||
else: | else: | |||
message = six.text_type(ex) | message = str(ex) | |||
if unexpected: | if unexpected: | |||
# Log filtered environment for unexpected errors. | # Log filtered environment for unexpected errors. | |||
env = req.environ.copy() | env = req.environ.copy() | |||
for k in list(env.keys()): | for k in list(env.keys()): | |||
if not isinstance(env[k], six.string_types): | if not isinstance(env[k], str): | |||
env.pop(k) | env.pop(k) | |||
log_fun(_('Environment: %s') % jsonutils.dumps(env)) | log_fun(_('Environment: %s') % jsonutils.dumps(env)) | |||
return faults.ec2_error_response(request_id, code, message, status=status) | return faults.ec2_error_response(request_id, code, message, status=status) | |||
class Executor(wsgi.Application): | class Executor(wsgi.Application): | |||
"""Execute an EC2 API request. | """Execute an EC2 API request. | |||
Executes 'ec2.action', passing 'ec2api.context' and | Executes 'ec2.action', passing 'ec2api.context' and | |||
'ec2.action_args' (all variables in WSGI environ.) Returns an XML | 'ec2.action_args' (all variables in WSGI environ.) Returns an XML | |||
skipping to change at line 389 | skipping to change at line 388 | |||
LOG.exception("Exception from remote server") | LOG.exception("Exception from remote server") | |||
return faults.ec2_error_response( | return faults.ec2_error_response( | |||
context.request_id, code, message, status=status) | context.request_id, code, message, status=status) | |||
except Exception as ex: | except Exception as ex: | |||
return ec2_error_ex( | return ec2_error_ex( | |||
ex, req, unexpected=not isinstance(ex, exception.EC2Exception)) | ex, req, unexpected=not isinstance(ex, exception.EC2Exception)) | |||
else: | else: | |||
resp = webob.Response() | resp = webob.Response() | |||
resp.status = 200 | resp.status = 200 | |||
resp.headers['Content-Type'] = 'text/xml' | resp.headers['Content-Type'] = 'text/xml' | |||
resp.body = six.binary_type(result) | resp.body = bytes(result) | |||
return resp | return resp | |||
End of changes. 6 change blocks. | ||||
6 lines changed or deleted | 5 lines changed or added |