Remove six
We don't need this in a Python 3-only world. Change-Id: I95ac1e2d63932730206e5290fc38a0b00dad8fb2
This commit is contained in:
parent
7130d65e9e
commit
b5150230ce
@ -18,7 +18,6 @@ import functools
|
||||
import inspect
|
||||
|
||||
from oslo_config import cfg
|
||||
import six
|
||||
|
||||
import docker
|
||||
|
||||
@ -44,7 +43,7 @@ def filter_data(f):
|
||||
obj = new_list
|
||||
if isinstance(obj, dict):
|
||||
for k, v in obj.items():
|
||||
if isinstance(k, six.string_types):
|
||||
if isinstance(k, str):
|
||||
obj[k.lower()] = _filter(v)
|
||||
return obj
|
||||
return _filter(out)
|
||||
@ -76,13 +75,7 @@ class DockerHTTPClient(docker.APIClient):
|
||||
self._setup_decorators()
|
||||
|
||||
def _setup_decorators(self):
|
||||
# NOTE(junbo.li): we need to distinguish class methods types
|
||||
# for py2 and py3, because the concept of 'unbound methods' has
|
||||
# been removed from the python3.x
|
||||
if six.PY3:
|
||||
member_type = inspect.isfunction
|
||||
else:
|
||||
member_type = inspect.ismethod
|
||||
member_type = inspect.isfunction
|
||||
for name, member in inspect.getmembers(self, member_type):
|
||||
if not name.startswith('_'):
|
||||
setattr(self, name, filter_data(member))
|
||||
|
@ -20,7 +20,6 @@ A Docker Hypervisor which allows running Linux Containers instead of VMs.
|
||||
|
||||
import os
|
||||
import shutil
|
||||
import six
|
||||
import socket
|
||||
import time
|
||||
|
||||
@ -234,8 +233,6 @@ class DockerDriver(driver.ComputeDriver):
|
||||
self._stop_firewall(instance, network_info)
|
||||
|
||||
def _encode_utf8(self, value):
|
||||
if six.PY2 and not isinstance(value, six.text_type):
|
||||
value = six.text_type(value)
|
||||
return value.encode('utf-8')
|
||||
|
||||
def _find_container_by_instance(self, instance):
|
||||
|
@ -139,7 +139,6 @@ rfc3986==1.1.0
|
||||
Routes==2.4.1
|
||||
simplegeneric==0.8.1
|
||||
simplejson==3.13.2
|
||||
six==1.10.0
|
||||
smmap2==2.0.3
|
||||
snowballstemmer==1.2.1
|
||||
Sphinx==1.6.2
|
||||
|
@ -36,7 +36,6 @@ os-brick>=2.2.0 # Apache-2.0
|
||||
os-resource-classes>=0.1.0 # Apache-2.0
|
||||
os-traits>=0.15.0 # Apache-2.0
|
||||
os-vif>=1.15.1 # Apache-2.0
|
||||
six>=1.10.0 # MIT
|
||||
SQLAlchemy!=1.1.5,!=1.1.6,!=1.1.7,!=1.1.8,>=1.0.10 # MIT
|
||||
stevedore>=1.20.0 # Apache-2.0
|
||||
docker>=2.4.2 # Apache-2.0
|
||||
|
@ -13,7 +13,6 @@
|
||||
# under the License.
|
||||
|
||||
import operator
|
||||
import six
|
||||
|
||||
import pecan
|
||||
from pecan import rest
|
||||
@ -93,8 +92,7 @@ class ControllerMetaclass(type):
|
||||
cls_dict)
|
||||
|
||||
|
||||
@six.add_metaclass(ControllerMetaclass)
|
||||
class Controller(rest.RestController):
|
||||
class Controller(rest.RestController, metaclass=ControllerMetaclass):
|
||||
"""Base Rest Controller"""
|
||||
|
||||
@pecan.expose('json')
|
||||
|
@ -15,7 +15,6 @@
|
||||
from oslo_log import log as logging
|
||||
from oslo_serialization import jsonutils
|
||||
import pecan
|
||||
import six
|
||||
|
||||
from zun.api.controllers import base
|
||||
from zun.api.controllers import link
|
||||
@ -49,7 +48,7 @@ def check_policy_on_capsule(capsule, action):
|
||||
def check_capsule_template(tpl):
|
||||
# TODO(kevinz): add volume spec check
|
||||
tpl_json = tpl
|
||||
if isinstance(tpl, six.string_types):
|
||||
if isinstance(tpl, str):
|
||||
try:
|
||||
tpl_json = jsonutils.loads(tpl)
|
||||
except Exception as e:
|
||||
@ -478,7 +477,7 @@ class CapsuleController(base.Controller):
|
||||
cinder_api.delete_volume(volume.id)
|
||||
except Exception as exc:
|
||||
LOG.error('Error on deleting volume "%s": %s.',
|
||||
volume.id, six.text_type(exc))
|
||||
volume.id, str(exc))
|
||||
|
||||
# Since the container and capsule database model has been created,
|
||||
# we need to delete them here due to the volume create failed.
|
||||
|
@ -20,7 +20,6 @@ from oslo_log import log as logging
|
||||
from oslo_utils import strutils
|
||||
from oslo_utils import uuidutils
|
||||
import pecan
|
||||
import six
|
||||
|
||||
from zun.api.controllers import base
|
||||
from zun.api.controllers import link
|
||||
@ -258,7 +257,7 @@ class ContainersController(base.Controller):
|
||||
# '"nginx" "-g" "daemon off;"' -> ["nginx", "-g", "daemon off;"]
|
||||
command = container_dict.pop('command', None)
|
||||
if command is not None:
|
||||
if isinstance(command, six.string_types):
|
||||
if isinstance(command, str):
|
||||
command = shlex.split(command)
|
||||
container_dict['command'] = command
|
||||
|
||||
@ -481,7 +480,7 @@ class ContainersController(base.Controller):
|
||||
project_id)
|
||||
total = None
|
||||
try:
|
||||
if isinstance(count_as_dict[res_name], six.integer_types):
|
||||
if isinstance(count_as_dict[res_name], int):
|
||||
total = count_as_dict[res_name] + int(res_delta)
|
||||
else:
|
||||
total = float(count_as_dict[res_name]) + \
|
||||
|
@ -12,8 +12,6 @@
|
||||
# License for the specific language governing permissions and limitations
|
||||
# under the License.
|
||||
|
||||
import six
|
||||
|
||||
from oslo_serialization import jsonutils as json
|
||||
from webob import exc
|
||||
|
||||
@ -64,7 +62,7 @@ class HTTPNotAcceptableAPIVersion(exc.HTTPNotAcceptable):
|
||||
err['links'] = [links]
|
||||
err['title'] = "Requested microversion is unsupported"
|
||||
|
||||
self.app_iter = [six.b(json.dump_as_bytes(err))]
|
||||
self.app_iter = [json.dump_as_bytes(err).encode("latin-1")]
|
||||
self.headers['Content-Length'] = str(len(self.app_iter[0]))
|
||||
|
||||
return super(HTTPNotAcceptableAPIVersion, self).__call__(
|
||||
|
@ -18,8 +18,6 @@ response with one formatted so the client can parse it.
|
||||
Based on pecan.middleware.errordocument
|
||||
"""
|
||||
|
||||
import six
|
||||
|
||||
from oslo_serialization import jsonutils as json
|
||||
from zun.common.i18n import _
|
||||
|
||||
@ -90,7 +88,7 @@ class ParsableErrorMiddleware(object):
|
||||
'links': []
|
||||
})
|
||||
|
||||
body = [six.b(json.dumps({'errors': errs}))]
|
||||
body = [json.dumps({'errors': errs}).encode("latin-1")]
|
||||
|
||||
state['headers'].append(('Content-Type', 'application/json'))
|
||||
state['headers'].append(('Content-Length', str(len(body[0]))))
|
||||
|
@ -11,7 +11,6 @@
|
||||
# under the License.
|
||||
|
||||
import jsonschema
|
||||
import six
|
||||
|
||||
from zun.common import exception
|
||||
from zun.common.i18n import _
|
||||
@ -46,7 +45,7 @@ class SchemaValidator(object):
|
||||
"'%(path)s'. Value: '%(value)s'. %(message)s")
|
||||
detail = detail % {
|
||||
'path': ex.path.pop(), 'value': ex.instance,
|
||||
'message': six.text_type(ex)
|
||||
'message': str(ex)
|
||||
}
|
||||
else:
|
||||
detail = ex.message
|
||||
|
@ -11,6 +11,7 @@
|
||||
# under the License.
|
||||
|
||||
import abc
|
||||
from http import client as httplib
|
||||
import requests
|
||||
import traceback
|
||||
|
||||
@ -18,8 +19,6 @@ from os_vif.objects import base
|
||||
from oslo_config import cfg
|
||||
from oslo_log import log as logging
|
||||
from oslo_serialization import jsonutils
|
||||
import six
|
||||
from six.moves import http_client as httplib
|
||||
|
||||
from zun.common import consts
|
||||
from zun.common import exception
|
||||
@ -30,8 +29,7 @@ LOG = logging.getLogger(__name__)
|
||||
CONF = cfg.CONF
|
||||
|
||||
|
||||
@six.add_metaclass(abc.ABCMeta)
|
||||
class CNIRunner(object):
|
||||
class CNIRunner(object, metaclass=abc.ABCMeta):
|
||||
# TODO(ivc): extend SUPPORTED_VERSIONS and format output based on
|
||||
# requested params.CNI_VERSION and/or params.config.cniVersion
|
||||
VERSION = '0.3.1'
|
||||
|
@ -12,7 +12,6 @@
|
||||
|
||||
import abc
|
||||
import errno
|
||||
import six
|
||||
|
||||
import os_vif
|
||||
from oslo_config import cfg
|
||||
@ -30,8 +29,7 @@ LOG = logging.getLogger(__name__)
|
||||
CONF = cfg.CONF
|
||||
|
||||
|
||||
@six.add_metaclass(abc.ABCMeta)
|
||||
class BaseBindingDriver(object):
|
||||
class BaseBindingDriver(object, metaclass=abc.ABCMeta):
|
||||
"""Interface to attach ports to capsules."""
|
||||
|
||||
@abc.abstractmethod
|
||||
|
@ -12,7 +12,6 @@
|
||||
|
||||
import os
|
||||
import signal
|
||||
import six
|
||||
import sys
|
||||
|
||||
import os_vif
|
||||
@ -32,10 +31,7 @@ _CNI_TIMEOUT = 180
|
||||
|
||||
|
||||
def main():
|
||||
if six.PY3:
|
||||
d = jsonutils.load(sys.stdin.buffer)
|
||||
else:
|
||||
d = jsonutils.load(sys.stdin)
|
||||
d = jsonutils.load(sys.stdin.buffer)
|
||||
cni_conf = utils.CNIConfig(d)
|
||||
args = (['--config-file', cni_conf.zun_conf] if 'zun_conf' in d
|
||||
else [])
|
||||
|
@ -19,12 +19,12 @@ import time
|
||||
import cotyledon
|
||||
import flask
|
||||
from futurist import periodics
|
||||
from http import client as httplib
|
||||
from oslo_concurrency import lockutils
|
||||
from oslo_config import cfg
|
||||
from oslo_log import log as logging
|
||||
from oslo_serialization import jsonutils
|
||||
from pyroute2.ipdb import transactional
|
||||
from six.moves import http_client as httplib
|
||||
|
||||
from zun.cni.plugins import zun_cni_registry
|
||||
from zun.cni import utils as cni_utils
|
||||
|
@ -15,7 +15,6 @@ import functools
|
||||
import copy
|
||||
from oslo_context import context
|
||||
from oslo_utils import timeutils
|
||||
import six
|
||||
|
||||
from zun.common import exception
|
||||
from zun.common import policy
|
||||
@ -69,7 +68,7 @@ class RequestContext(context.RequestContext):
|
||||
|
||||
if not timestamp:
|
||||
timestamp = timeutils.utcnow()
|
||||
if isinstance(timestamp, six.string_types):
|
||||
if isinstance(timestamp, str):
|
||||
timestamp = timeutils.parse_strtime(timestamp)
|
||||
self.timestamp = timestamp
|
||||
|
||||
|
@ -29,7 +29,6 @@ from oslo_log import log as logging
|
||||
from oslo_utils import excutils
|
||||
from oslo_utils import uuidutils
|
||||
import pecan
|
||||
import six
|
||||
from webob import util as woutil
|
||||
|
||||
from zun.common.i18n import _
|
||||
@ -145,7 +144,7 @@ def wrap_pecan_controller_exception(func):
|
||||
'faultcode': 'Server',
|
||||
'status_code': status_code,
|
||||
'title': woutil.status_reasons[status_code],
|
||||
'description': six.text_type(OBFUSCATED_MSG % log_correlation_id),
|
||||
'description': str(OBFUSCATED_MSG % log_correlation_id),
|
||||
}
|
||||
|
||||
def _func_client_error(excp, status_code):
|
||||
@ -154,8 +153,8 @@ def wrap_pecan_controller_exception(func):
|
||||
'faultcode': 'Client',
|
||||
'faultstring': convert_excp_to_err_code(excp.__class__.__name__),
|
||||
'status_code': status_code,
|
||||
'title': six.text_type(excp),
|
||||
'description': six.text_type(excp),
|
||||
'title': str(excp),
|
||||
'description': str(excp),
|
||||
}
|
||||
|
||||
return wrap_controller_exception(func,
|
||||
@ -217,9 +216,7 @@ class ZunException(Exception):
|
||||
super(ZunException, self).__init__(self.message)
|
||||
|
||||
def __str__(self):
|
||||
if six.PY3:
|
||||
return self.message
|
||||
return self.message.encode('utf-8')
|
||||
return self.message
|
||||
|
||||
def __unicode__(self):
|
||||
return self.message
|
||||
@ -228,7 +225,7 @@ class ZunException(Exception):
|
||||
if self.__class__.__name__.endswith('_Remote'):
|
||||
return self.args[0]
|
||||
else:
|
||||
return six.text_type(self)
|
||||
return str(self)
|
||||
|
||||
|
||||
class ObjectNotFound(ZunException):
|
||||
|
@ -17,10 +17,9 @@ The IDs each comprise 12 (lower-case) alphanumeric characters.
|
||||
|
||||
import base64
|
||||
from oslo_utils import uuidutils
|
||||
import struct
|
||||
import uuid
|
||||
|
||||
import six
|
||||
|
||||
from zun.common.i18n import _
|
||||
|
||||
|
||||
@ -31,10 +30,11 @@ def _to_byte_string(value, num_bits):
|
||||
required.
|
||||
"""
|
||||
|
||||
shifts = six.moves.xrange(num_bits - 8, -8, -8)
|
||||
shifts = range(num_bits - 8, -8, -8)
|
||||
byte_at = lambda off: ( # noqa: E731
|
||||
(value >> off if off >= 0 else value << -off) & 0xff)
|
||||
return ''.join(six.int2byte(byte_at(offset)) for offset in shifts)
|
||||
return ''.join(struct.Struct(">B").pack(byte_at(offset))
|
||||
for offset in shifts)
|
||||
|
||||
|
||||
def get_id(source_uuid):
|
||||
@ -43,7 +43,7 @@ def get_id(source_uuid):
|
||||
The supplied UUID must be a version 4 UUID object.
|
||||
"""
|
||||
|
||||
if isinstance(source_uuid, six.string_types):
|
||||
if isinstance(source_uuid, str):
|
||||
source_uuid = uuid.UUID(source_uuid)
|
||||
if source_uuid.version != 4:
|
||||
raise ValueError(_('Invalid UUID version (%d)') % source_uuid.version)
|
||||
@ -52,12 +52,9 @@ def get_id(source_uuid):
|
||||
# (see RFC4122, Section 4.4)
|
||||
random_bytes = _to_byte_string(source_uuid.time, 60)
|
||||
# The first 12 bytes (= 60 bits) of base32-encoded output is our data
|
||||
encoded = base64.b32encode(six.b(random_bytes))[:12]
|
||||
encoded = base64.b32encode(random_bytes.encode("latin-1"))[:12]
|
||||
|
||||
if six.PY3:
|
||||
return encoded.lower().decode('utf-8')
|
||||
else:
|
||||
return encoded.lower()
|
||||
return encoded.lower().decode('utf-8')
|
||||
|
||||
|
||||
def generate_id():
|
||||
|
@ -33,7 +33,6 @@ from oslo_log import log as logging
|
||||
from oslo_utils import excutils
|
||||
from oslo_utils import strutils
|
||||
import pecan
|
||||
import six
|
||||
|
||||
from zun.api import utils as api_utils
|
||||
from zun.common import clients
|
||||
@ -139,7 +138,7 @@ def safe_rstrip(value, chars=None):
|
||||
:return: Stripped value.
|
||||
|
||||
"""
|
||||
if not isinstance(value, six.string_types):
|
||||
if not isinstance(value, str):
|
||||
LOG.warning(
|
||||
"Failed to remove trailing character. Returning original object. "
|
||||
"Supplied object is not a string: %s.", value)
|
||||
@ -227,9 +226,9 @@ def translate_exception(function):
|
||||
return function(self, context, *args, **kwargs)
|
||||
except Exception as e:
|
||||
if not isinstance(e, exception.ZunException):
|
||||
LOG.exception("Unexpected error: %s", six.text_type(e))
|
||||
LOG.exception("Unexpected error: %s", str(e))
|
||||
e = exception.ZunException("Unexpected error: %s"
|
||||
% six.text_type(e))
|
||||
% str(e))
|
||||
raise e
|
||||
raise
|
||||
|
||||
@ -338,7 +337,7 @@ def custom_execute(*cmd, **kwargs):
|
||||
except processutils.ProcessExecutionError as e:
|
||||
sanitized_cmd = strutils.mask_password(' '.join(cmd))
|
||||
raise exception.CommandError(cmd=sanitized_cmd,
|
||||
error=six.text_type(e))
|
||||
error=str(e))
|
||||
|
||||
|
||||
def get_root_helper():
|
||||
@ -670,10 +669,10 @@ def wrap_exception():
|
||||
except exception.DockerError as e:
|
||||
with excutils.save_and_reraise_exception(reraise=False):
|
||||
LOG.error("Error occurred while calling Docker API: %s",
|
||||
six.text_type(e))
|
||||
str(e))
|
||||
except Exception as e:
|
||||
with excutils.save_and_reraise_exception(reraise=False):
|
||||
LOG.exception("Unexpected exception: %s", six.text_type(e))
|
||||
LOG.exception("Unexpected exception: %s", str(e))
|
||||
return decorated_function
|
||||
return helper
|
||||
|
||||
@ -690,7 +689,7 @@ def is_less_than(x, y):
|
||||
|
||||
|
||||
def encode_file_data(data):
|
||||
if six.PY3 and isinstance(data, str):
|
||||
if isinstance(data, str):
|
||||
data = data.encode('utf-8')
|
||||
return base64.b64encode(data).decode('utf-8')
|
||||
|
||||
@ -707,13 +706,10 @@ def strtime(at):
|
||||
return at.strftime("%Y-%m-%dT%H:%M:%S.%f")
|
||||
|
||||
|
||||
if six.PY2:
|
||||
nested_contexts = contextlib.nested
|
||||
else:
|
||||
@contextlib.contextmanager
|
||||
def nested_contexts(*contexts):
|
||||
with contextlib.ExitStack() as stack:
|
||||
yield [stack.enter_context(c) for c in contexts]
|
||||
@contextlib.contextmanager
|
||||
def nested_contexts(*contexts):
|
||||
with contextlib.ExitStack() as stack:
|
||||
yield [stack.enter_context(c) for c in contexts]
|
||||
|
||||
|
||||
def convert_mb_to_ceil_gb(mb_value):
|
||||
|
@ -22,7 +22,6 @@ from oslo_service import periodic_task
|
||||
from oslo_utils import excutils
|
||||
from oslo_utils import timeutils
|
||||
from oslo_utils import uuidutils
|
||||
import six
|
||||
|
||||
from zun.common import consts
|
||||
from zun.common import context
|
||||
@ -165,7 +164,7 @@ class Manager(periodic_task.PeriodicTasks):
|
||||
self._detach_volumes(context, container)
|
||||
except Exception as e:
|
||||
LOG.exception("Failed to detach volumes: %s",
|
||||
six.text_type(e))
|
||||
str(e))
|
||||
|
||||
container.status = consts.ERROR
|
||||
container.status_reason = error
|
||||
@ -322,18 +321,18 @@ class Manager(periodic_task.PeriodicTasks):
|
||||
self.driver.load_image(image['path'])
|
||||
except exception.ImageNotFound as e:
|
||||
with excutils.save_and_reraise_exception():
|
||||
LOG.error(six.text_type(e))
|
||||
self._fail_container(context, container, six.text_type(e))
|
||||
LOG.error(str(e))
|
||||
self._fail_container(context, container, str(e))
|
||||
except exception.DockerError as e:
|
||||
with excutils.save_and_reraise_exception():
|
||||
LOG.error("Error occurred while calling Docker image "
|
||||
"API: %s", six.text_type(e))
|
||||
self._fail_container(context, container, six.text_type(e))
|
||||
"API: %s", str(e))
|
||||
self._fail_container(context, container, str(e))
|
||||
except Exception as e:
|
||||
with excutils.save_and_reraise_exception():
|
||||
LOG.exception("Unexpected exception: %s",
|
||||
six.text_type(e))
|
||||
self._fail_container(context, container, six.text_type(e))
|
||||
str(e))
|
||||
self._fail_container(context, container, str(e))
|
||||
|
||||
container.image_driver = image.get('driver')
|
||||
container.save(context)
|
||||
@ -355,14 +354,14 @@ class Manager(periodic_task.PeriodicTasks):
|
||||
except exception.DockerError as e:
|
||||
with excutils.save_and_reraise_exception():
|
||||
LOG.error("Error occurred while calling Docker create "
|
||||
"API: %s", six.text_type(e))
|
||||
self._fail_container(context, container, six.text_type(e),
|
||||
"API: %s", str(e))
|
||||
self._fail_container(context, container, str(e),
|
||||
unset_host=True)
|
||||
except Exception as e:
|
||||
with excutils.save_and_reraise_exception():
|
||||
LOG.exception("Unexpected exception: %s",
|
||||
six.text_type(e))
|
||||
self._fail_container(context, container, six.text_type(e),
|
||||
str(e))
|
||||
self._fail_container(context, container, str(e),
|
||||
unset_host=True)
|
||||
|
||||
@wrap_container_event(prefix='compute')
|
||||
@ -381,8 +380,8 @@ class Manager(periodic_task.PeriodicTasks):
|
||||
except exception.ResourcesUnavailable as e:
|
||||
with excutils.save_and_reraise_exception():
|
||||
LOG.exception("Container resource claim failed: %s",
|
||||
six.text_type(e))
|
||||
self._fail_container(context, container, six.text_type(e),
|
||||
str(e))
|
||||
self._fail_container(context, container, str(e),
|
||||
unset_host=True)
|
||||
self.reportclient.delete_allocation_for_container(
|
||||
context, container.uuid)
|
||||
@ -417,7 +416,7 @@ class Manager(periodic_task.PeriodicTasks):
|
||||
self._refresh_attached_volumes(requested_volumes, volmap)
|
||||
except Exception as e:
|
||||
with excutils.save_and_reraise_exception():
|
||||
self._fail_container(context, container, six.text_type(e),
|
||||
self._fail_container(context, container, str(e),
|
||||
unset_host=True)
|
||||
|
||||
def _attach_volume(self, context, container, volmap):
|
||||
@ -503,13 +502,13 @@ class Manager(periodic_task.PeriodicTasks):
|
||||
except exception.DockerError as e:
|
||||
with excutils.save_and_reraise_exception():
|
||||
LOG.error("Error occurred while calling Docker start "
|
||||
"API: %s", six.text_type(e))
|
||||
self._fail_container(context, container, six.text_type(e))
|
||||
"API: %s", str(e))
|
||||
self._fail_container(context, container, str(e))
|
||||
except Exception as e:
|
||||
with excutils.save_and_reraise_exception():
|
||||
LOG.exception("Unexpected exception: %s",
|
||||
six.text_type(e))
|
||||
self._fail_container(context, container, six.text_type(e))
|
||||
str(e))
|
||||
self._fail_container(context, container, str(e))
|
||||
|
||||
@translate_exception
|
||||
def container_delete(self, context, container, force=False):
|
||||
@ -533,12 +532,12 @@ class Manager(periodic_task.PeriodicTasks):
|
||||
except exception.DockerError as e:
|
||||
with excutils.save_and_reraise_exception(reraise=reraise):
|
||||
LOG.error("Error occurred while calling Docker "
|
||||
"delete API: %s", six.text_type(e))
|
||||
self._fail_container(context, container, six.text_type(e))
|
||||
"delete API: %s", str(e))
|
||||
self._fail_container(context, container, str(e))
|
||||
except Exception as e:
|
||||
with excutils.save_and_reraise_exception(reraise=reraise):
|
||||
LOG.exception("Unexpected exception: %s", six.text_type(e))
|
||||
self._fail_container(context, container, six.text_type(e))
|
||||
LOG.exception("Unexpected exception: %s", str(e))
|
||||
self._fail_container(context, container, str(e))
|
||||
|
||||
self._detach_volumes(context, container, reraise=reraise)
|
||||
|
||||
@ -602,10 +601,10 @@ class Manager(periodic_task.PeriodicTasks):
|
||||
return container
|
||||
except exception.DockerError as e:
|
||||
LOG.error("Error occurred while calling Docker show API: %s",
|
||||
six.text_type(e))
|
||||
str(e))
|
||||
raise
|
||||
except Exception as e:
|
||||
LOG.exception("Unexpected exception: %s", six.text_type(e))
|
||||
LOG.exception("Unexpected exception: %s", str(e))
|
||||
raise
|
||||
|
||||
@wrap_exception()
|
||||
@ -667,7 +666,7 @@ class Manager(periodic_task.PeriodicTasks):
|
||||
network_info = self._get_network_info(context, container)
|
||||
except Exception as e:
|
||||
with excutils.save_and_reraise_exception():
|
||||
self._fail_container(context, container, six.text_type(e))
|
||||
self._fail_container(context, container, str(e))
|
||||
# NOTE(hongbin): capsule shouldn't reach here
|
||||
if self.driver.check_container_exist(container):
|
||||
for addr in container.addresses.values():
|
||||
@ -682,9 +681,9 @@ class Manager(periodic_task.PeriodicTasks):
|
||||
LOG.error("Rebuild container: %s failed, "
|
||||
"reason of failure is: %s",
|
||||
container.uuid,
|
||||
six.text_type(e))
|
||||
str(e))
|
||||
self._fail_container(context, container,
|
||||
six.text_type(e))
|
||||
str(e))
|
||||
|
||||
try:
|
||||
created_container = self._do_container_create_base(
|
||||
@ -696,7 +695,7 @@ class Manager(periodic_task.PeriodicTasks):
|
||||
with excutils.save_and_reraise_exception():
|
||||
LOG.error("Rebuild container:%s failed, "
|
||||
"reason of failure is: %s", container.uuid, e)
|
||||
self._fail_container(context, container, six.text_type(e))
|
||||
self._fail_container(context, container, str(e))
|
||||
|
||||
LOG.info("rebuild container: %s success", created_container.uuid)
|
||||
if run:
|
||||
@ -793,10 +792,10 @@ class Manager(periodic_task.PeriodicTasks):
|
||||
since=since)
|
||||
except exception.DockerError as e:
|
||||
LOG.error("Error occurred while calling Docker logs API: %s",
|
||||
six.text_type(e))
|
||||
str(e))
|
||||
raise
|
||||
except Exception as e:
|
||||
LOG.exception("Unexpected exception: %s", six.text_type(e))
|
||||
LOG.exception("Unexpected exception: %s", str(e))
|
||||
raise
|
||||
|
||||
@translate_exception
|
||||
@ -826,10 +825,10 @@ class Manager(periodic_task.PeriodicTasks):
|
||||
'token': token}
|
||||
except exception.DockerError as e:
|
||||
LOG.error("Error occurred while calling Docker exec API: %s",
|
||||
six.text_type(e))
|
||||
str(e))
|
||||
raise
|
||||
except Exception as e:
|
||||
LOG.exception("Unexpected exception: %s", six.text_type(e))
|
||||
LOG.exception("Unexpected exception: %s", str(e))
|
||||
raise
|
||||
|
||||
@translate_exception
|
||||
@ -840,10 +839,10 @@ class Manager(periodic_task.PeriodicTasks):
|
||||
return self.driver.execute_resize(exec_id, height, width)
|
||||
except exception.DockerError as e:
|
||||
LOG.error("Error occurred while calling Docker exec API: %s",
|
||||
six.text_type(e))
|
||||
str(e))
|
||||
raise
|
||||
except Exception as e:
|
||||
LOG.exception("Unexpected exception: %s", six.text_type(e))
|
||||
LOG.exception("Unexpected exception: %s", str(e))
|
||||
raise
|
||||
|
||||
@wrap_exception()
|
||||
@ -891,10 +890,10 @@ class Manager(periodic_task.PeriodicTasks):
|
||||
except exception.ResourcesUnavailable as e:
|
||||
with excutils.save_and_reraise_exception():
|
||||
LOG.exception("Update container resource claim failed: %s",
|
||||
six.text_type(e))
|
||||
str(e))
|
||||
except exception.DockerError as e:
|
||||
LOG.error("Error occurred while calling docker API: %s",
|
||||
six.text_type(e))
|
||||
str(e))
|
||||
raise
|
||||
|
||||
@translate_exception
|
||||
@ -911,7 +910,7 @@ class Manager(periodic_task.PeriodicTasks):
|
||||
except Exception as e:
|
||||
LOG.error("Error occurred while calling "
|
||||
"get websocket url function: %s",
|
||||
six.text_type(e))
|
||||
str(e))
|
||||
raise
|
||||
|
||||
@translate_exception
|
||||
@ -924,7 +923,7 @@ class Manager(periodic_task.PeriodicTasks):
|
||||
except exception.DockerError as e:
|
||||
LOG.error("Error occurred while calling docker "
|
||||
"resize API: %s",
|
||||
six.text_type(e))
|
||||
str(e))
|
||||
raise
|
||||
|
||||
@translate_exception
|
||||
@ -936,10 +935,10 @@ class Manager(periodic_task.PeriodicTasks):
|
||||
return self.driver.top(context, container, ps_args)
|
||||
except exception.DockerError as e:
|
||||
LOG.error("Error occurred while calling Docker top API: %s",
|
||||
six.text_type(e))
|
||||
str(e))
|
||||
raise
|
||||
except Exception as e:
|
||||
LOG.exception("Unexpected exception: %s", six.text_type(e))
|
||||
LOG.exception("Unexpected exception: %s", str(e))
|
||||
raise
|
||||
|
||||
@translate_exception
|
||||
@ -954,10 +953,10 @@ class Manager(periodic_task.PeriodicTasks):
|
||||
except exception.DockerError as e:
|
||||
LOG.error(
|
||||
"Error occurred while calling Docker get_archive API: %s",
|
||||
six.text_type(e))
|
||||
str(e))
|
||||
raise
|
||||
except Exception as e:
|
||||
LOG.exception("Unexpected exception: %s", six.text_type(e))
|
||||
LOG.exception("Unexpected exception: %s", str(e))
|
||||
raise
|
||||
|
||||
@translate_exception
|
||||
@ -972,10 +971,10 @@ class Manager(periodic_task.PeriodicTasks):
|
||||
except exception.DockerError as e:
|
||||
LOG.error(
|
||||
"Error occurred while calling Docker put_archive API: %s",
|
||||
six.text_type(e))
|
||||
str(e))
|
||||
raise
|
||||
except Exception as e:
|
||||
LOG.exception("Unexpected exception: %s", six.text_type(e))
|
||||
LOG.exception("Unexpected exception: %s", str(e))
|
||||
raise
|
||||
|
||||
@translate_exception
|
||||
@ -986,10 +985,10 @@ class Manager(periodic_task.PeriodicTasks):
|
||||
return self.driver.stats(context, container)
|
||||
except exception.DockerError as e:
|
||||
LOG.error("Error occurred while calling Docker stats API: %s",
|
||||
six.text_type(e))
|
||||
str(e))
|
||||
raise
|
||||
except Exception as e:
|
||||
LOG.exception("Unexpected exception: %s", six.text_type(e))
|
||||
LOG.exception("Unexpected exception: %s", str(e))
|
||||
raise
|
||||
|
||||
@translate_exception
|
||||
@ -1006,7 +1005,7 @@ class Manager(periodic_task.PeriodicTasks):
|
||||
except exception.DockerError as e:
|
||||
LOG.error("Error occurred while calling glance "
|
||||
"create_image API: %s",
|
||||
six.text_type(e))
|
||||
str(e))
|
||||
|
||||
@utils.synchronized(container.uuid)
|
||||
def do_container_commit():
|
||||
@ -1024,7 +1023,7 @@ class Manager(periodic_task.PeriodicTasks):
|
||||
tag, data, glance.GlanceDriver())
|
||||
except Exception as e:
|
||||
LOG.exception("Unexpected exception while uploading image: %s",
|
||||
six.text_type(e))
|
||||
str(e))
|
||||
# NOTE(hongbin): capsule shouldn't reach here
|
||||
self.driver.delete_committed_image(context, snapshot_image.id,
|
||||
glance.GlanceDriver())
|
||||
@ -1056,7 +1055,7 @@ class Manager(periodic_task.PeriodicTasks):
|
||||
container_image = self.driver.get_image(repository + ':' + tag)
|
||||
except exception.DockerError as e:
|
||||
LOG.error("Error occurred while calling docker commit API: %s",
|
||||
six.text_type(e))
|
||||
str(e))
|
||||
# NOTE(hongbin): capsule shouldn't reach here
|
||||
self.driver.delete_committed_image(context, snapshot_image.id,
|
||||
glance.GlanceDriver())
|
||||
@ -1068,7 +1067,7 @@ class Manager(periodic_task.PeriodicTasks):
|
||||
container = self.driver.unpause(context, container)
|
||||
container.save(context)
|
||||
except Exception as e:
|
||||
LOG.exception("Unexpected exception: %s", six.text_type(e))
|
||||
LOG.exception("Unexpected exception: %s", str(e))
|
||||
|
||||
LOG.debug('Upload image %s to glance', container_image_id)
|
||||
self._do_container_image_upload(context, snapshot_image,
|
||||
@ -1123,15 +1122,15 @@ class Manager(periodic_task.PeriodicTasks):
|
||||
image.size = image_dict['Size']
|
||||
image.save()
|
||||
except exception.ImageNotFound as e:
|
||||
LOG.error(six.text_type(e))
|
||||
LOG.error(str(e))
|
||||
return
|
||||
except exception.DockerError as e:
|
||||
LOG.error("Error occurred while calling Docker image API: %s",
|
||||
six.text_type(e))
|
||||
str(e))
|
||||
raise
|
||||
except Exception as e:
|
||||
LOG.exception("Unexpected exception: %s",
|
||||
six.text_type(e))
|
||||
str(e))
|
||||
raise
|
||||
|
||||
@translate_exception
|
||||
@ -1145,7 +1144,7 @@ class Manager(periodic_task.PeriodicTasks):
|
||||
image_driver_name, exact_match)
|
||||
except Exception as e:
|
||||
LOG.exception("Unexpected exception while searching image: %s",
|
||||
six.text_type(e))
|
||||
str(e))
|
||||
raise
|
||||
|
||||
@periodic_task.periodic_task(run_immediately=True)
|
||||
|
@ -23,7 +23,6 @@ from oslo_log import log as logging
|
||||
from oslo_utils import timeutils
|
||||
from oslo_utils import uuidutils
|
||||
import psutil
|
||||
import six
|
||||
import tenacity
|
||||
|
||||
from zun.common import consts
|
||||
@ -77,7 +76,7 @@ def handle_not_found(e, context, container, do_not_raise=False):
|
||||
container.status = consts.DELETED
|
||||
else:
|
||||
container.status = consts.ERROR
|
||||
container.status_reason = six.text_type(e)
|
||||
container.status_reason = str(e)
|
||||
container.save(context)
|
||||
if do_not_raise:
|
||||
return
|
||||
@ -169,8 +168,8 @@ class DockerDriver(driver.BaseDriver, driver.ContainerDriver,
|
||||
LOG.exception('Unknown exception occurred while '
|
||||
'deleting image %s: %s',
|
||||
img_id,
|
||||
six.text_type(e))
|
||||
raise exception.ZunException(six.text_type(e))
|
||||
str(e))
|
||||
raise exception.ZunException(str(e))
|
||||
|
||||
def images(self, repo, quiet=False):
|
||||
with docker_utils.docker_client() as docker:
|
||||
@ -191,8 +190,8 @@ class DockerDriver(driver.BaseDriver, driver.ContainerDriver,
|
||||
raise
|
||||
except Exception as e:
|
||||
LOG.exception('Unknown exception occurred while loading '
|
||||
'image: %s', six.text_type(e))
|
||||
raise exception.ZunException(six.text_type(e))
|
||||
'image: %s', str(e))
|
||||
raise exception.ZunException(str(e))
|
||||
|
||||
return image, image_loaded
|
||||
|
||||
@ -208,16 +207,16 @@ class DockerDriver(driver.BaseDriver, driver.ContainerDriver,
|
||||
raise
|
||||
except Exception as e:
|
||||
LOG.exception('Unknown exception occurred while searching '
|
||||
'for image: %s', six.text_type(e))
|
||||
raise exception.ZunException(six.text_type(e))
|
||||
'for image: %s', str(e))
|
||||
raise exception.ZunException(str(e))
|
||||
|
||||
def create_image(self, context, image_name, image_driver):
|
||||
try:
|
||||
img = image_driver.create_image(context, image_name)
|
||||
except Exception as e:
|
||||
LOG.exception('Unknown exception occurred while creating '
|
||||
'image: %s', six.text_type(e))
|
||||
raise exception.ZunException(six.text_type(e))
|
||||
'image: %s', str(e))
|
||||
raise exception.ZunException(str(e))
|
||||
return img
|
||||
|
||||
def upload_image_data(self, context, image, image_tag, image_data,
|
||||
@ -234,8 +233,8 @@ class DockerDriver(driver.BaseDriver, driver.ContainerDriver,
|
||||
image_data)
|
||||
except Exception as e:
|
||||
LOG.exception('Unknown exception occurred while uploading '
|
||||
'image: %s', six.text_type(e))
|
||||
raise exception.ZunException(six.text_type(e))
|
||||
'image: %s', str(e))
|
||||
raise exception.ZunException(str(e))
|
||||
return img
|
||||
|
||||
def read_tar_image(self, image):
|
||||
@ -547,7 +546,7 @@ class DockerDriver(driver.BaseDriver, driver.ContainerDriver,
|
||||
container.status = consts.ERROR
|
||||
msg = "No such container: %s in docker" % \
|
||||
(container.container_id)
|
||||
container.status_reason = six.text_type(msg)
|
||||
container.status_reason = str(msg)
|
||||
container.save(context)
|
||||
except Exception as e:
|
||||
LOG.warning("heal container with rebuilding failed, "
|
||||
@ -579,8 +578,8 @@ class DockerDriver(driver.BaseDriver, driver.ContainerDriver,
|
||||
for container in containers
|
||||
if container.container_id}
|
||||
|
||||
for cid in (six.viewkeys(id_to_container_map) &
|
||||
six.viewkeys(id_to_local_container_map)):
|
||||
for cid in (id_to_container_map.keys() &
|
||||
id_to_local_container_map.keys()):
|
||||
container = id_to_container_map[cid]
|
||||
# sync status
|
||||
local_container = id_to_local_container_map[cid]
|
||||
@ -957,7 +956,7 @@ class DockerDriver(driver.BaseDriver, driver.ContainerDriver,
|
||||
stream, stat = docker.get_archive(
|
||||
container.container_id, path)
|
||||
if isinstance(stream, types.GeneratorType):
|
||||
filedata = six.b("").join(stream)
|
||||
filedata = ''.encode("latin-1").join(stream)
|
||||
else:
|
||||
filedata = stream.read()
|
||||
return filedata, stat
|
||||
@ -1028,8 +1027,6 @@ class DockerDriver(driver.BaseDriver, driver.ContainerDriver,
|
||||
return docker.commit(container.container_id, repository, tag)
|
||||
|
||||
def _encode_utf8(self, value):
|
||||
if six.PY2 and not isinstance(value, six.text_type):
|
||||
value = six.text_type(value)
|
||||
return value.encode('utf-8')
|
||||
|
||||
def _get_or_create_docker_network(self, context, network_api,
|
||||
|
@ -45,7 +45,7 @@ def docker_client():
|
||||
**client_kwargs
|
||||
)
|
||||
except errors.APIError as e:
|
||||
desired_exc = exception.DockerError(error_msg=six.text_type(e))
|
||||
desired_exc = exception.DockerError(error_msg=str(e))
|
||||
six.reraise(type(desired_exc), desired_exc, sys.exc_info()[2])
|
||||
|
||||
|
||||
@ -99,5 +99,5 @@ class DockerHTTPClient(docker.APIClient):
|
||||
except errors.APIError as e:
|
||||
if "process not found for container" in str(e):
|
||||
raise exception.Invalid(_(
|
||||
"no such exec instance: %s") % six.text_type(e))
|
||||
"no such exec instance: %s") % str(e))
|
||||
raise
|
||||
|
@ -15,7 +15,6 @@
|
||||
|
||||
from oslo_concurrency import processutils
|
||||
from oslo_serialization import jsonutils
|
||||
import six
|
||||
|
||||
from zun.common import exception
|
||||
from zun.common import utils
|
||||
@ -92,7 +91,7 @@ class Host(object):
|
||||
addresses.append(address)
|
||||
except processutils.ProcessExecutionError as e:
|
||||
raise exception.CommandError(cmd='lspci',
|
||||
error=six.text_type(e))
|
||||
error=str(e))
|
||||
|
||||
pci_info = []
|
||||
for addr in addresses:
|
||||
|
@ -17,7 +17,6 @@ SQLAlchemy models for container service
|
||||
from oslo_db.sqlalchemy import models
|
||||
from oslo_serialization import jsonutils as json
|
||||
from oslo_utils import timeutils
|
||||
import six.moves.urllib.parse as urlparse
|
||||
from sqlalchemy import Boolean
|
||||
from sqlalchemy import Column
|
||||
from sqlalchemy import DateTime
|
||||
@ -33,6 +32,7 @@ from sqlalchemy import sql
|
||||
from sqlalchemy import String
|
||||
from sqlalchemy import Text
|
||||
from sqlalchemy.types import TypeDecorator, TEXT
|
||||
from urllib import parse as urlparse
|
||||
|
||||
from zun.common import consts
|
||||
import zun.conf
|
||||
|
@ -14,8 +14,6 @@
|
||||
# limitations under the License.
|
||||
|
||||
from docker import errors
|
||||
import six
|
||||
|
||||
from oslo_log import log as logging
|
||||
from oslo_utils import excutils
|
||||
|
||||
@ -45,13 +43,13 @@ class DockerDriver(driver.ContainerImageDriver):
|
||||
except errors.ImageNotFound:
|
||||
return
|
||||
except errors.APIError as api_error:
|
||||
raise exception.ZunException(six.text_type(api_error))
|
||||
raise exception.ZunException(str(api_error))
|
||||
except Exception as e:
|
||||
LOG.exception('Unknown exception occurred while deleting '
|
||||
'image %s in glance:%s',
|
||||
img_id,
|
||||
six.text_type(e))
|
||||
raise exception.ZunException(six.text_type(e))
|
||||
str(e))
|
||||
raise exception.ZunException(str(e))
|
||||
|
||||
def _search_image_on_host(self, repo, tag):
|
||||
with docker_utils.docker_client() as docker:
|
||||
@ -82,7 +80,7 @@ class DockerDriver(driver.ContainerImageDriver):
|
||||
try:
|
||||
docker.pull(repo, tag=tag, auth_config=auth_config)
|
||||
except errors.NotFound as e:
|
||||
raise exception.ImageNotFound(message=six.text_type(e))
|
||||
raise exception.ImageNotFound(message=str(e))
|
||||
except errors.APIError:
|
||||
LOG.exception('Error on pulling image')
|
||||
message = _('Error on pulling image: %(repo)s:%(tag)s') % {
|
||||
@ -131,7 +129,7 @@ class DockerDriver(driver.ContainerImageDriver):
|
||||
# TODO(hongbin): search image by both name and tag
|
||||
images = docker.search(image_name)
|
||||
except errors.APIError as api_error:
|
||||
raise exception.ZunException(six.text_type(api_error))
|
||||
raise exception.ZunException(str(api_error))
|
||||
except Exception as e:
|
||||
msg = _('Cannot search image in docker: {0}')
|
||||
raise exception.ZunException(msg.format(e))
|
||||
|
@ -12,7 +12,6 @@
|
||||
# License for the specific language governing permissions and limitations
|
||||
# under the License.
|
||||
|
||||
import six
|
||||
import sys
|
||||
|
||||
from oslo_log import log as logging
|
||||
@ -50,7 +49,7 @@ def load_image_driver(image_driver=None):
|
||||
|
||||
if not isinstance(driver, ContainerImageDriver):
|
||||
raise Exception(_('Expected driver of type: %s') %
|
||||
six.text_type(ContainerImageDriver))
|
||||
str(ContainerImageDriver))
|
||||
|
||||
return driver
|
||||
except Exception:
|
||||
|
@ -12,12 +12,12 @@
|
||||
# limitations under the License.
|
||||
|
||||
import hashlib
|
||||
import io
|
||||
import os
|
||||
import types
|
||||
|
||||
from oslo_log import log as logging
|
||||
from oslo_utils import fileutils
|
||||
import six
|
||||
|
||||
from zun.common import exception
|
||||
from zun.common.i18n import _
|
||||
@ -118,7 +118,7 @@ class GlanceDriver(driver.ContainerImageDriver):
|
||||
try:
|
||||
return utils.find_images(context, repo, tag, exact_match)
|
||||
except Exception as e:
|
||||
raise exception.ZunException(six.text_type(e))
|
||||
raise exception.ZunException(str(e))
|
||||
|
||||
def create_image(self, context, image_name):
|
||||
"""Create an image."""
|
||||
@ -127,7 +127,7 @@ class GlanceDriver(driver.ContainerImageDriver):
|
||||
# Return a created image
|
||||
return utils.create_image(context, image_name)
|
||||
except Exception as e:
|
||||
raise exception.ZunException(six.text_type(e))
|
||||
raise exception.ZunException(str(e))
|
||||
|
||||
def update_image(self, context, img_id, disk_format='qcow2',
|
||||
container_format='docker', tag=None):
|
||||
@ -140,7 +140,7 @@ class GlanceDriver(driver.ContainerImageDriver):
|
||||
return utils.update_image(context, img_id, disk_format,
|
||||
container_format, tags=tags)
|
||||
except Exception as e:
|
||||
raise exception.ZunException(six.text_type(e))
|
||||
raise exception.ZunException(str(e))
|
||||
|
||||
def upload_image_data(self, context, img_id, data):
|
||||
"""Upload an image."""
|
||||
@ -151,12 +151,12 @@ class GlanceDriver(driver.ContainerImageDriver):
|
||||
# returns generator - related bugs [1].
|
||||
# These lines makes image_data readable.
|
||||
# [1] https://bugs.launchpad.net/zun/+bug/1753080
|
||||
data = six.b('').join(data)
|
||||
data = six.BytesIO(data)
|
||||
data = ''.encode("latin-1").join(data)
|
||||
data = io.BytesIO(data)
|
||||
|
||||
return utils.upload_image_data(context, img_id, data)
|
||||
except Exception as e:
|
||||
raise exception.ZunException(six.text_type(e))
|
||||
raise exception.ZunException(str(e))
|
||||
|
||||
def delete_committed_image(self, context, img_id):
|
||||
"""Delete a committed image."""
|
||||
@ -167,8 +167,8 @@ class GlanceDriver(driver.ContainerImageDriver):
|
||||
LOG.exception('Unknown exception occurred while deleting '
|
||||
'image %s in glance: %s',
|
||||
img_id,
|
||||
six.text_type(e))
|
||||
raise exception.ZunException(six.text_type(e))
|
||||
str(e))
|
||||
raise exception.ZunException(str(e))
|
||||
|
||||
def delete_image_tar(self, context, image):
|
||||
"""Delete image tar file that pull from glance"""
|
||||
@ -181,4 +181,4 @@ class GlanceDriver(driver.ContainerImageDriver):
|
||||
os.unlink(tarfile)
|
||||
except Exception as e:
|
||||
LOG.exception('Cannot delete tar file %s', tarfile)
|
||||
raise exception.ZunException(six.text_type(e))
|
||||
raise exception.ZunException(str(e))
|
||||
|
@ -315,7 +315,7 @@ class KuryrNetwork(network.Network):
|
||||
exc_info = sys.exc_info()
|
||||
if e.status_code == 400:
|
||||
raise exception.SecurityGroupCannotBeApplied(
|
||||
six.text_type(e))
|
||||
str(e))
|
||||
else:
|
||||
six.reraise(*exc_info)
|
||||
except Exception:
|
||||
@ -348,7 +348,7 @@ class KuryrNetwork(network.Network):
|
||||
exc_info = sys.exc_info()
|
||||
if e.status_code == 400:
|
||||
raise exception.SecurityGroupCannotBeRemoved(
|
||||
six.text_type(e))
|
||||
str(e))
|
||||
else:
|
||||
six.reraise(*exc_info)
|
||||
except Exception:
|
||||
|
@ -11,7 +11,6 @@
|
||||
# under the License.
|
||||
|
||||
import abc
|
||||
import six
|
||||
|
||||
from stevedore import driver
|
||||
|
||||
@ -32,8 +31,7 @@ def api(*args, **kwargs):
|
||||
return network_api
|
||||
|
||||
|
||||
@six.add_metaclass(abc.ABCMeta)
|
||||
class Network(object):
|
||||
class Network(object, metaclass=abc.ABCMeta):
|
||||
"""The base class that all Network classes should inherit from."""
|
||||
|
||||
def init(self, context, *args, **kwargs):
|
||||
|
@ -18,7 +18,6 @@ from neutronclient.common import exceptions as n_exceptions
|
||||
from neutronclient.neutron import v2_0 as neutronv20
|
||||
from oslo_log import log as logging
|
||||
from oslo_utils import uuidutils
|
||||
import six
|
||||
|
||||
from zun.common import clients
|
||||
from zun.common import consts
|
||||
@ -118,7 +117,7 @@ class NeutronAPI(object):
|
||||
addresses = []
|
||||
for fixed_ip in neutron_port['fixed_ips']:
|
||||
ip_address = fixed_ip['ip_address']
|
||||
ip = ipaddress.ip_address(six.text_type(ip_address))
|
||||
ip = ipaddress.ip_address(str(ip_address))
|
||||
if ip.version == 4:
|
||||
addresses.append({
|
||||
'addr': ip_address,
|
||||
|
@ -15,7 +15,6 @@ import traceback
|
||||
from oslo_log import log as logging
|
||||
from oslo_utils import timeutils
|
||||
from oslo_versionedobjects import fields
|
||||
import six
|
||||
|
||||
from zun.db import api as dbapi
|
||||
from zun.objects import base
|
||||
@ -173,8 +172,8 @@ class ContainerActionEvent(base.ZunPersistentObject, base.ZunObject):
|
||||
def event_finish(cls, context, container_uuid, event_name, exc_val=None,
|
||||
exc_tb=None, want_result=None):
|
||||
if exc_val:
|
||||
exc_val = six.text_type(exc_val)
|
||||
if exc_tb and not isinstance(exc_tb, six.string_types):
|
||||
exc_val = str(exc_val)
|
||||
if exc_tb and not isinstance(exc_tb, str):
|
||||
exc_tb = ''.join(traceback.format_tb(exc_tb))
|
||||
values = cls.pack_action_event_finish(context, container_uuid,
|
||||
event_name, exc_val=exc_val,
|
||||
|
@ -13,7 +13,6 @@
|
||||
from os_vif.objects import vif
|
||||
from oslo_serialization import jsonutils as json
|
||||
from oslo_versionedobjects import fields
|
||||
import six
|
||||
|
||||
from zun.common import consts
|
||||
|
||||
@ -67,7 +66,7 @@ class ListOfIntegersField(fields.AutoTypedField):
|
||||
|
||||
class Json(fields.FieldType):
|
||||
def coerce(self, obj, attr, value):
|
||||
if isinstance(value, six.string_types):
|
||||
if isinstance(value, str):
|
||||
loaded = json.loads(value)
|
||||
return loaded
|
||||
return value
|
||||
|
@ -19,7 +19,6 @@ from oslo_log import log as logging
|
||||
from oslo_serialization import jsonutils
|
||||
from oslo_utils import uuidutils
|
||||
from oslo_versionedobjects import fields
|
||||
import six
|
||||
|
||||
from zun.common import exception
|
||||
from zun.db import api as dbapi
|
||||
@ -134,7 +133,7 @@ class PciDevice(base.ZunPersistentObject, base.ZunObject):
|
||||
# "extra_info" dict:
|
||||
# - "capabilities": dict of (strings/list of strings)
|
||||
extra_info = self.extra_info
|
||||
data = (v if isinstance(v, six.string_types) else
|
||||
data = (v if isinstance(v, str) else
|
||||
jsonutils.dumps(v))
|
||||
extra_info.update({k: data})
|
||||
self.extra_info = extra_info
|
||||
|
@ -17,7 +17,6 @@ import copy
|
||||
|
||||
from oslo_serialization import jsonutils
|
||||
from oslo_versionedobjects import fields
|
||||
import six
|
||||
|
||||
from zun.objects import base
|
||||
|
||||
@ -74,7 +73,7 @@ def from_pci_stats(pci_stats):
|
||||
device pool objects, a simple dict or a list of such dicts.
|
||||
"""
|
||||
pools = []
|
||||
if isinstance(pci_stats, six.string_types):
|
||||
if isinstance(pci_stats, str):
|
||||
try:
|
||||
pci_stats = jsonutils.loads(pci_stats)
|
||||
except (ValueError, TypeError):
|
||||
|
@ -15,8 +15,6 @@ import abc
|
||||
import re
|
||||
import string
|
||||
|
||||
import six
|
||||
|
||||
from zun.common import exception
|
||||
from zun.pci import utils
|
||||
|
||||
@ -46,8 +44,7 @@ def get_pci_dev_info(pci_obj, property, max, hex_value):
|
||||
setattr(pci_obj, property, hex_value % v)
|
||||
|
||||
|
||||
@six.add_metaclass(abc.ABCMeta)
|
||||
class PciAddressSpec(object):
|
||||
class PciAddressSpec(object, metaclass=abc.ABCMeta):
|
||||
"""Abstract class for all PCI address spec styles
|
||||
|
||||
This class checks the address fields of the pci.passthrough_whitelist
|
||||
@ -203,7 +200,7 @@ class WhitelistPciAddress(object):
|
||||
|
||||
def _init_address_fields(self, pci_addr):
|
||||
if not self.is_physical_function:
|
||||
if isinstance(pci_addr, six.string_types):
|
||||
if isinstance(pci_addr, str):
|
||||
self.pci_address_spec = PciAddressGlobSpec(pci_addr)
|
||||
elif isinstance(pci_addr, dict):
|
||||
self.pci_address_spec = PciAddressRegexSpec(pci_addr)
|
||||
|
@ -18,7 +18,6 @@ import copy
|
||||
|
||||
from oslo_config import cfg
|
||||
from oslo_log import log as logging
|
||||
import six
|
||||
|
||||
from zun.common import exception
|
||||
from zun.objects import fields
|
||||
@ -298,10 +297,6 @@ class PciDeviceStats(object):
|
||||
def __eq__(self, other):
|
||||
return self.pools == other.pools
|
||||
|
||||
if six.PY2:
|
||||
def __ne__(self, other):
|
||||
return not (self == other)
|
||||
|
||||
def to_device_pools_obj(self):
|
||||
"""Return the contents of the pools as a PciDevicePoolList object."""
|
||||
stats = [x for x in self]
|
||||
|
@ -27,7 +27,6 @@ from oslo_middleware import request_id
|
||||
from oslo_utils import excutils
|
||||
from oslo_utils import versionutils
|
||||
import retrying
|
||||
import six
|
||||
|
||||
from zun.common import clients
|
||||
from zun.common import context as zun_context
|
||||
@ -2111,7 +2110,7 @@ class SchedulerReportClient(object):
|
||||
global_request_id=context.global_id)
|
||||
except ks_exc.ClientException as ex:
|
||||
LOG.error('Failed to get resource provider by name: %s. Error: %s',
|
||||
name, six.text_type(ex))
|
||||
name, str(ex))
|
||||
raise exception.PlacementAPIConnectFailure()
|
||||
|
||||
if resp.status_code == 200:
|
||||
|
@ -21,14 +21,11 @@ Scheduler base class that all Schedulers should inherit from
|
||||
|
||||
import abc
|
||||
|
||||
import six
|
||||
|
||||
from zun.api import servicegroup
|
||||
from zun import objects
|
||||
|
||||
|
||||
@six.add_metaclass(abc.ABCMeta)
|
||||
class Scheduler(object):
|
||||
class Scheduler(object, metaclass=abc.ABCMeta):
|
||||
"""The base class that all Scheduler classes should inherit from."""
|
||||
|
||||
def __init__(self):
|
||||
|
@ -20,7 +20,7 @@ import re
|
||||
|
||||
import os_resource_classes as orc
|
||||
from oslo_log import log as logging
|
||||
from six.moves.urllib import parse
|
||||
from urllib import parse
|
||||
|
||||
from zun.common import exception
|
||||
import zun.conf
|
||||
|
@ -20,7 +20,7 @@ from unittest import mock
|
||||
from keystonemiddleware import auth_token # noqa
|
||||
import pecan
|
||||
import pecan.testing
|
||||
from six.moves.urllib import parse as urlparse
|
||||
from urllib import parse as urlparse
|
||||
|
||||
from zun.api import hooks
|
||||
import zun.conf
|
||||
|
@ -13,7 +13,6 @@
|
||||
import collections
|
||||
from unittest import mock
|
||||
|
||||
import six
|
||||
from webob import exc
|
||||
|
||||
from zun.api.controllers import base
|
||||
@ -86,8 +85,8 @@ class TestAPIBase(test_base.BaseTestCase):
|
||||
])
|
||||
actual_value = collections.OrderedDict(
|
||||
sorted(test_api.as_dict().items()))
|
||||
self.assertEqual(six.text_type(expected_value),
|
||||
six.text_type(actual_value))
|
||||
self.assertEqual(str(expected_value),
|
||||
str(actual_value))
|
||||
|
||||
|
||||
class TestVersion(test_base.TestCase):
|
||||
|
@ -11,7 +11,6 @@
|
||||
# under the License.
|
||||
|
||||
import collections
|
||||
import six
|
||||
|
||||
from zun.api.controllers import link as link_module
|
||||
from zun.tests import base as test_base
|
||||
@ -29,5 +28,5 @@ class TestLink(test_base.BaseTestCase):
|
||||
('href', 'http://localhost:8080/v1/'),
|
||||
('rel', 'self')
|
||||
])
|
||||
self.assertEqual(six.text_type(expected_value),
|
||||
six.text_type(ordered_link))
|
||||
self.assertEqual(str(expected_value),
|
||||
str(ordered_link))
|
||||
|
@ -15,7 +15,6 @@ from unittest.mock import patch
|
||||
|
||||
from neutronclient.common import exceptions as n_exc
|
||||
from oslo_utils import uuidutils
|
||||
import six
|
||||
from webtest.app import AppError
|
||||
|
||||
from zun.common import exception
|
||||
@ -331,7 +330,7 @@ class TestContainerController(api_base.FunctionalTest):
|
||||
self.assertEqual(1, len(requested_volumes))
|
||||
self.assertEqual(
|
||||
fake_volume_id,
|
||||
six.next(six.itervalues(requested_volumes))[0].cinder_volume_id)
|
||||
next(iter(requested_volumes.values()))[0].cinder_volume_id)
|
||||
exposed_ports = mock_container_create.call_args[0][1].exposed_ports
|
||||
self.assertEqual(2, len(exposed_ports))
|
||||
self.assertIn("80/tcp", exposed_ports)
|
||||
|
@ -13,13 +13,13 @@
|
||||
# License for the specific language governing permissions and limitations
|
||||
# under the License.
|
||||
|
||||
import imp
|
||||
import inspect
|
||||
from unittest import mock
|
||||
|
||||
from oslo_utils import importutils
|
||||
from osprofiler import initializer as profiler_init
|
||||
from osprofiler import opts as profiler_opts
|
||||
import six.moves as six
|
||||
|
||||
from zun.common import profiler
|
||||
from zun import conf
|
||||
@ -39,7 +39,7 @@ class TestProfiler(base.TestCase):
|
||||
for clsname in classes:
|
||||
# give the metaclass and trace_cls() decorator a chance to patch
|
||||
# methods of the classes above
|
||||
six.reload_module(
|
||||
imp.reload(
|
||||
importutils.import_module(clsname.rsplit('.', 1)[0]))
|
||||
cls = importutils.import_class(clsname)
|
||||
|
||||
|
@ -14,8 +14,8 @@
|
||||
|
||||
from unittest import mock
|
||||
|
||||
from io import StringIO
|
||||
from oslo_utils import uuidutils
|
||||
from six import StringIO
|
||||
|
||||
from zun.common import consts
|
||||
from zun.common import exception
|
||||
|
@ -14,7 +14,6 @@ import collections
|
||||
from unittest import mock
|
||||
|
||||
from oslo_config import cfg
|
||||
import six
|
||||
|
||||
from zun.conf import opts
|
||||
from zun.tests import base
|
||||
@ -24,7 +23,7 @@ class ConfTestCase(base.TestCase):
|
||||
|
||||
def test_list_opts(self):
|
||||
for group, opt_list in opts.list_opts():
|
||||
if isinstance(group, six.string_types):
|
||||
if isinstance(group, str):
|
||||
self.assertEqual('DEFAULT', group)
|
||||
else:
|
||||
self.assertIsInstance(group, cfg.OptGroup)
|
||||
|
@ -12,11 +12,11 @@
|
||||
# License for the specific language governing permissions and limitations
|
||||
# under the License.
|
||||
|
||||
import builtins
|
||||
from unittest import mock
|
||||
from unittest.mock import mock_open
|
||||
|
||||
from oslo_serialization import jsonutils
|
||||
import six
|
||||
|
||||
from zun.common import exception
|
||||
from zun.container.os_capability.linux import os_capability_linux
|
||||
@ -68,7 +68,7 @@ class TestOSCapability(base.BaseTestCase):
|
||||
data = ('MemTotal: 3882464 kB\nMemFree: 3514608 kB\n'
|
||||
'MemAvailable: 3556372 kB\n')
|
||||
m_open = mock_open(read_data=data)
|
||||
with mock.patch.object(six.moves.builtins, "open", m_open,
|
||||
with mock.patch.object(builtins, "open", m_open,
|
||||
create=True):
|
||||
output = os_capability_linux.LinuxHost().get_host_mem()
|
||||
used = (3882464 - 3556372)
|
||||
|
@ -13,7 +13,6 @@
|
||||
"""Tests for manipulating compute nodes via the DB API"""
|
||||
|
||||
from oslo_utils import uuidutils
|
||||
import six
|
||||
|
||||
from zun.common import exception
|
||||
import zun.conf
|
||||
@ -68,7 +67,7 @@ class DbComputeNodeTestCase(base.DbTestCase):
|
||||
rp_uuid=uuidutils.generate_uuid(),
|
||||
context=self.context,
|
||||
hostname='node' + str(i))
|
||||
uuids.append(six.text_type(node['uuid']))
|
||||
uuids.append(str(node['uuid']))
|
||||
res = dbapi.list_compute_nodes(self.context)
|
||||
res_uuids = [r.uuid for r in res]
|
||||
self.assertEqual(sorted(uuids), sorted(res_uuids))
|
||||
@ -81,7 +80,7 @@ class DbComputeNodeTestCase(base.DbTestCase):
|
||||
rp_uuid=uuidutils.generate_uuid(),
|
||||
context=self.context,
|
||||
hostname='node' + str(i))
|
||||
uuids.append(six.text_type(node.uuid))
|
||||
uuids.append(str(node.uuid))
|
||||
res = dbapi.list_compute_nodes(self.context, sort_key='uuid')
|
||||
res_uuids = [r.uuid for r in res]
|
||||
self.assertEqual(sorted(uuids), res_uuids)
|
||||
|
@ -13,7 +13,6 @@
|
||||
"""Tests for manipulating Containers via the DB API"""
|
||||
|
||||
from oslo_utils import uuidutils
|
||||
import six
|
||||
|
||||
from zun.common import consts
|
||||
from zun.common import exception
|
||||
@ -115,7 +114,7 @@ class DbContainerTestCase(base.DbTestCase):
|
||||
uuid=uuidutils.generate_uuid(),
|
||||
context=self.context,
|
||||
name='container' + str(i))
|
||||
uuids.append(six.text_type(container['uuid']))
|
||||
uuids.append(str(container['uuid']))
|
||||
res = dbapi.list_containers(self.context, consts.TYPE_CONTAINER)
|
||||
res_uuids = [r.uuid for r in res]
|
||||
self.assertEqual(sorted(uuids), sorted(res_uuids))
|
||||
@ -127,7 +126,7 @@ class DbContainerTestCase(base.DbTestCase):
|
||||
uuid=uuidutils.generate_uuid(),
|
||||
context=self.context,
|
||||
name='container' + str(i))
|
||||
uuids.append(six.text_type(container.uuid))
|
||||
uuids.append(str(container.uuid))
|
||||
res = dbapi.list_containers(
|
||||
self.context, consts.TYPE_CONTAINER, sort_key='uuid')
|
||||
res_uuids = [r.uuid for r in res]
|
||||
|
@ -11,7 +11,6 @@
|
||||
# under the License.
|
||||
|
||||
from oslo_utils import uuidutils
|
||||
import six
|
||||
|
||||
from zun.common import exception
|
||||
import zun.conf
|
||||
@ -47,7 +46,7 @@ class DbExecInstanceTestCase(base.DbTestCase):
|
||||
context=self.context,
|
||||
container_id=1,
|
||||
exec_id=uuidutils.generate_uuid())
|
||||
exec_ids.append(six.text_type(exec_inst['exec_id']))
|
||||
exec_ids.append(str(exec_inst['exec_id']))
|
||||
res = dbapi.list_exec_instances(self.context)
|
||||
res_exec_ids = [r.exec_id for r in res]
|
||||
self.assertEqual(sorted(exec_ids), sorted(res_exec_ids))
|
||||
@ -60,7 +59,7 @@ class DbExecInstanceTestCase(base.DbTestCase):
|
||||
context=self.context,
|
||||
container_id=1,
|
||||
exec_id=uuidutils.generate_uuid())
|
||||
exec_ids.append(six.text_type(exec_inst['exec_id']))
|
||||
exec_ids.append(str(exec_inst['exec_id']))
|
||||
res = dbapi.list_exec_instances(self.context, sort_key='exec_id')
|
||||
res_exec_ids = [r.exec_id for r in res]
|
||||
self.assertEqual(sorted(exec_ids), res_exec_ids)
|
||||
|
@ -13,7 +13,6 @@
|
||||
"""Tests for manipulating Images via the DB API"""
|
||||
|
||||
from oslo_utils import uuidutils
|
||||
import six
|
||||
|
||||
from zun.common import exception
|
||||
from zun.tests.unit.db import base
|
||||
@ -73,7 +72,7 @@ class DbImageTestCase(base.DbTestCase):
|
||||
for i in range(1, 6):
|
||||
image = utils.create_test_image(
|
||||
context=self.context, repo="testrepo" + str(i))
|
||||
uuids.append(six.text_type(image['uuid']))
|
||||
uuids.append(str(image['uuid']))
|
||||
res = self.dbapi.list_images(self.context)
|
||||
res_uuids = [r.uuid for r in res]
|
||||
self.assertEqual(sorted(uuids), sorted(res_uuids))
|
||||
@ -84,7 +83,7 @@ class DbImageTestCase(base.DbTestCase):
|
||||
image = utils.create_test_image(
|
||||
context=self.context, uuid=uuidutils.generate_uuid(),
|
||||
repo="testrepo" + str(i))
|
||||
uuids.append(six.text_type(image.uuid))
|
||||
uuids.append(str(image.uuid))
|
||||
res = self.dbapi.list_images(self.context, sort_key='uuid')
|
||||
res_uuids = [r.uuid for r in res]
|
||||
self.assertEqual(sorted(uuids), res_uuids)
|
||||
|
@ -11,7 +11,6 @@
|
||||
# under the License.
|
||||
|
||||
from oslo_utils import uuidutils
|
||||
import six
|
||||
|
||||
from zun.common import exception
|
||||
import zun.conf
|
||||
@ -49,7 +48,7 @@ class DbNetworkTestCase(base.DbTestCase):
|
||||
context=self.context,
|
||||
neutron_net_id=uuidutils.generate_uuid(),
|
||||
name='network' + str(i))
|
||||
uuids.append(six.text_type(network['uuid']))
|
||||
uuids.append(str(network['uuid']))
|
||||
res = dbapi.list_networks(self.context)
|
||||
res_uuids = [r.uuid for r in res]
|
||||
self.assertEqual(sorted(uuids), sorted(res_uuids))
|
||||
|
@ -11,7 +11,6 @@
|
||||
# under the License.
|
||||
|
||||
from oslo_utils import uuidutils
|
||||
import six
|
||||
|
||||
from zun.common import exception
|
||||
import zun.conf
|
||||
@ -88,7 +87,7 @@ class DbRegistryTestCase(base.DbTestCase):
|
||||
context=self.context,
|
||||
name='registry' + str(i),
|
||||
password=password)
|
||||
uuids.append(six.text_type(registry['uuid']))
|
||||
uuids.append(str(registry['uuid']))
|
||||
res = dbapi.list_registries(self.context)
|
||||
res_uuids = [r.uuid for r in res]
|
||||
self.assertEqual(sorted(uuids), sorted(res_uuids))
|
||||
@ -102,7 +101,7 @@ class DbRegistryTestCase(base.DbTestCase):
|
||||
uuid=uuidutils.generate_uuid(),
|
||||
context=self.context,
|
||||
name='registry' + str(i))
|
||||
uuids.append(six.text_type(registry.uuid))
|
||||
uuids.append(str(registry.uuid))
|
||||
res = dbapi.list_registries(self.context, sort_key='uuid')
|
||||
res_uuids = [r.uuid for r in res]
|
||||
self.assertEqual(sorted(uuids), res_uuids)
|
||||
|
@ -11,8 +11,8 @@
|
||||
# under the License.
|
||||
|
||||
"""Tests for manipulating resource classes via the DB API"""
|
||||
|
||||
from oslo_utils import uuidutils
|
||||
import six
|
||||
|
||||
from zun.common import exception
|
||||
import zun.conf
|
||||
@ -63,7 +63,7 @@ class DbResourceClassTestCase(base.DbTestCase):
|
||||
context=self.context,
|
||||
uuid=uuidutils.generate_uuid(),
|
||||
name='class' + str(i))
|
||||
names.append(six.text_type(resource['name']))
|
||||
names.append(str(resource['name']))
|
||||
res = dbapi.list_resource_classes(self.context)
|
||||
res_names = [r.name for r in res]
|
||||
self.assertEqual(sorted(names), sorted(res_names))
|
||||
@ -75,7 +75,7 @@ class DbResourceClassTestCase(base.DbTestCase):
|
||||
context=self.context,
|
||||
uuid=uuidutils.generate_uuid(),
|
||||
name='class' + str(i))
|
||||
names.append(six.text_type(resource.name))
|
||||
names.append(str(resource.name))
|
||||
res = dbapi.list_resource_classes(self.context, sort_key='name')
|
||||
res_names = [r.name for r in res]
|
||||
self.assertEqual(sorted(names), res_names)
|
||||
|
@ -13,7 +13,6 @@
|
||||
"""Tests for manipulating resource providers via the DB API"""
|
||||
|
||||
from oslo_utils import uuidutils
|
||||
import six
|
||||
|
||||
from zun.common import exception
|
||||
import zun.conf
|
||||
@ -67,7 +66,7 @@ class DbResourceProviderTestCase(base.DbTestCase):
|
||||
uuid=uuidutils.generate_uuid(),
|
||||
context=self.context,
|
||||
name='provider' + str(i))
|
||||
uuids.append(six.text_type(provider['uuid']))
|
||||
uuids.append(str(provider['uuid']))
|
||||
res = dbapi.list_resource_providers(self.context)
|
||||
res_uuids = [r.uuid for r in res]
|
||||
self.assertEqual(sorted(uuids), sorted(res_uuids))
|
||||
@ -79,7 +78,7 @@ class DbResourceProviderTestCase(base.DbTestCase):
|
||||
uuid=uuidutils.generate_uuid(),
|
||||
context=self.context,
|
||||
name='provider' + str(i))
|
||||
uuids.append(six.text_type(provider.uuid))
|
||||
uuids.append(str(provider.uuid))
|
||||
res = dbapi.list_resource_providers(self.context, sort_key='uuid')
|
||||
res_uuids = [r.uuid for r in res]
|
||||
self.assertEqual(sorted(uuids), res_uuids)
|
||||
|
@ -11,7 +11,6 @@
|
||||
# under the License.
|
||||
|
||||
from oslo_utils import uuidutils
|
||||
import six
|
||||
|
||||
from zun.common import exception
|
||||
import zun.conf
|
||||
@ -61,7 +60,7 @@ class DbVolumeMappingTestCase(base.DbTestCase):
|
||||
uuid=uuidutils.generate_uuid(),
|
||||
volume_id=volume.id,
|
||||
context=self.context)
|
||||
uuids.append(six.text_type(volume_mapping['uuid']))
|
||||
uuids.append(str(volume_mapping['uuid']))
|
||||
res = dbapi.list_volume_mappings(self.context)
|
||||
res_uuids = [r.uuid for r in res]
|
||||
self.assertEqual(sorted(uuids), sorted(res_uuids))
|
||||
@ -76,7 +75,7 @@ class DbVolumeMappingTestCase(base.DbTestCase):
|
||||
uuid=uuidutils.generate_uuid(),
|
||||
volume_id=volume.id,
|
||||
context=self.context)
|
||||
uuids.append(six.text_type(volume_mapping.uuid))
|
||||
uuids.append(str(volume_mapping.uuid))
|
||||
res = dbapi.list_volume_mappings(self.context, sort_key='uuid')
|
||||
res_uuids = [r.uuid for r in res]
|
||||
self.assertEqual(sorted(uuids), res_uuids)
|
||||
|
@ -14,8 +14,6 @@
|
||||
|
||||
from unittest import mock
|
||||
|
||||
import six
|
||||
|
||||
from zun.common import exception
|
||||
from zun.pci import devspec
|
||||
from zun.tests import base
|
||||
@ -211,7 +209,7 @@ class PciAddressTestCase(base.TestCase):
|
||||
exc = self.assertRaises(exception.PciConfigInvalidWhitelist,
|
||||
devspec.PciDeviceSpec, pci_info)
|
||||
msg = ('Invalid PCI devices Whitelist config invalid func 12:6')
|
||||
self.assertEqual(msg, six.text_type(exc))
|
||||
self.assertEqual(msg, str(exc))
|
||||
|
||||
def test_max_func(self):
|
||||
pci_info = {"address": "0000:0a:00.%s" % (devspec.MAX_FUNC + 1),
|
||||
@ -220,7 +218,7 @@ class PciAddressTestCase(base.TestCase):
|
||||
devspec.PciDeviceSpec, pci_info)
|
||||
msg = ('Invalid PCI devices Whitelist config invalid func %x'
|
||||
% (devspec.MAX_FUNC + 1))
|
||||
self.assertEqual(msg, six.text_type(exc))
|
||||
self.assertEqual(msg, str(exc))
|
||||
|
||||
def test_max_domain(self):
|
||||
pci_info = {"address": "%x:0a:00.5" % (devspec.MAX_DOMAIN + 1),
|
||||
@ -229,7 +227,7 @@ class PciAddressTestCase(base.TestCase):
|
||||
devspec.PciDeviceSpec, pci_info)
|
||||
msg = ('Invalid PCI devices Whitelist config invalid domain %x'
|
||||
% (devspec.MAX_DOMAIN + 1))
|
||||
self.assertEqual(msg, six.text_type(exc))
|
||||
self.assertEqual(msg, str(exc))
|
||||
|
||||
def test_max_bus(self):
|
||||
pci_info = {"address": "0000:%x:00.5" % (devspec.MAX_BUS + 1),
|
||||
@ -238,7 +236,7 @@ class PciAddressTestCase(base.TestCase):
|
||||
devspec.PciDeviceSpec, pci_info)
|
||||
msg = ('Invalid PCI devices Whitelist config invalid bus %x'
|
||||
% (devspec.MAX_BUS + 1))
|
||||
self.assertEqual(msg, six.text_type(exc))
|
||||
self.assertEqual(msg, str(exc))
|
||||
|
||||
def test_max_slot(self):
|
||||
pci_info = {"address": "0000:0a:%x.5" % (devspec.MAX_SLOT + 1),
|
||||
@ -247,7 +245,7 @@ class PciAddressTestCase(base.TestCase):
|
||||
devspec.PciDeviceSpec, pci_info)
|
||||
msg = ('Invalid PCI devices Whitelist config invalid slot %x'
|
||||
% (devspec.MAX_SLOT + 1))
|
||||
self.assertEqual(msg, six.text_type(exc))
|
||||
self.assertEqual(msg, str(exc))
|
||||
|
||||
def test_address_is_undefined(self):
|
||||
pci_info = {"vendor_id": "8086", "product_id": "5057"}
|
||||
@ -381,7 +379,7 @@ class PciDevSpecTestCase(base.TestCase):
|
||||
exc = self.assertRaises(exception.PciConfigInvalidWhitelist,
|
||||
devspec.PciDeviceSpec, pci_info)
|
||||
self.assertEqual("Invalid PCI devices Whitelist config "
|
||||
"invalid vendor_id 80860", six.text_type(exc))
|
||||
"invalid vendor_id 80860", str(exc))
|
||||
|
||||
def test_invalid_product_id(self):
|
||||
pci_info = {"vendor_id": "8086", "address": "*: *: *.5",
|
||||
@ -395,7 +393,7 @@ class PciDevSpecTestCase(base.TestCase):
|
||||
exc = self.assertRaises(exception.PciConfigInvalidWhitelist,
|
||||
devspec.PciDeviceSpec, pci_info)
|
||||
self.assertEqual("Invalid PCI devices Whitelist config "
|
||||
"invalid product_id 50570", six.text_type(exc))
|
||||
"invalid product_id 50570", str(exc))
|
||||
|
||||
def test_devname_and_address(self):
|
||||
pci_info = {"devname": "eth0", "vendor_id": "8086",
|
||||
|
@ -14,12 +14,12 @@
|
||||
# License for the specific language governing permissions and limitations
|
||||
# under the License.
|
||||
|
||||
import builtins
|
||||
import glob
|
||||
import os
|
||||
from unittest import mock
|
||||
|
||||
import fixtures
|
||||
from six.moves import builtins
|
||||
|
||||
from zun.common import exception
|
||||
from zun.pci import utils
|
||||
|
@ -9,6 +9,7 @@
|
||||
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
|
||||
# License for the specific language governing permissions and limitations
|
||||
# under the License.
|
||||
|
||||
import copy
|
||||
import time
|
||||
from unittest import mock
|
||||
@ -18,8 +19,7 @@ from keystoneauth1 import exceptions as ks_exc
|
||||
import os_resource_classes as orc
|
||||
from oslo_serialization import jsonutils
|
||||
from oslo_utils.fixture import uuidsentinel as uuids
|
||||
import six
|
||||
from six.moves.urllib import parse
|
||||
from urllib import parse
|
||||
|
||||
from zun.common import context
|
||||
from zun.common import exception
|
||||
@ -3363,7 +3363,7 @@ class TestAllocations(SchedulerReportClientTestCase):
|
||||
exception.AllocationUpdateFailed,
|
||||
self._test_remove_res_from_alloc, current_allocations,
|
||||
resources_to_remove, None)
|
||||
self.assertIn('The allocation is empty', six.text_type(ex))
|
||||
self.assertIn('The allocation is empty', str(ex))
|
||||
|
||||
@mock.patch("zun.scheduler.client.report.SchedulerReportClient.put")
|
||||
@mock.patch("zun.scheduler.client.report.SchedulerReportClient.get")
|
||||
@ -3400,7 +3400,7 @@ class TestAllocations(SchedulerReportClientTestCase):
|
||||
current_allocations, resources_to_remove, None)
|
||||
self.assertIn(
|
||||
"Key 'VCPU' is missing from the allocation",
|
||||
six.text_type(ex))
|
||||
str(ex))
|
||||
|
||||
def test_remove_res_from_alloc_missing_rp(self):
|
||||
current_allocations = {
|
||||
@ -3427,7 +3427,7 @@ class TestAllocations(SchedulerReportClientTestCase):
|
||||
current_allocations, resources_to_remove, None)
|
||||
self.assertIn(
|
||||
"Key '%s' is missing from the allocation" % uuids.other_rp,
|
||||
six.text_type(ex))
|
||||
str(ex))
|
||||
|
||||
def test_remove_res_from_alloc_not_enough_resource_to_remove(self):
|
||||
current_allocations = {
|
||||
@ -3457,7 +3457,7 @@ class TestAllocations(SchedulerReportClientTestCase):
|
||||
'provider to remove 400 amount of NET_BW_EGR_KILOBIT_PER_SEC '
|
||||
'resources' %
|
||||
uuids.rp1,
|
||||
six.text_type(ex))
|
||||
str(ex))
|
||||
|
||||
@mock.patch('time.sleep', new=mock.Mock())
|
||||
@mock.patch("zun.scheduler.client.report.SchedulerReportClient.put")
|
||||
@ -3585,7 +3585,7 @@ class TestAllocations(SchedulerReportClientTestCase):
|
||||
self.context, uuids.consumer_uuid, resources_to_remove)
|
||||
self.assertIn(
|
||||
'due to multiple successive generation conflicts',
|
||||
six.text_type(ex))
|
||||
str(ex))
|
||||
|
||||
get_call = mock.call(
|
||||
'/allocations/%s' % uuids.consumer_uuid, version='1.28',
|
||||
|
@ -10,8 +10,6 @@
|
||||
# License for the specific language governing permissions and limitations
|
||||
# under the License.
|
||||
|
||||
import six
|
||||
|
||||
from cinderclient import exceptions as cinder_exception
|
||||
from oslo_log import log as logging
|
||||
from oslo_utils import excutils
|
||||
@ -87,7 +85,7 @@ class CinderAPI(object):
|
||||
'connection.',
|
||||
{'vol': volume_id,
|
||||
'host': connector.get('host'),
|
||||
'msg': six.text_type(ex),
|
||||
'msg': str(ex),
|
||||
'code': ex.code})
|
||||
try:
|
||||
self.terminate_connection(volume_id, connector)
|
||||
@ -100,7 +98,7 @@ class CinderAPI(object):
|
||||
'Code: %(code)s.',
|
||||
{'vol': volume_id,
|
||||
'host': connector.get('host'),
|
||||
'msg': six.text_type(exc),
|
||||
'msg': str(exc),
|
||||
'code': (exc.code
|
||||
if hasattr(exc, 'code') else None)})
|
||||
|
||||
|
@ -10,8 +10,6 @@
|
||||
# License for the specific language governing permissions and limitations
|
||||
# under the License.
|
||||
|
||||
import six
|
||||
|
||||
from cinderclient import exceptions as cinder_exception
|
||||
from os_brick import exception as os_brick_exception
|
||||
from os_brick.initiator import connector as brick_connector
|
||||
@ -155,7 +153,7 @@ class CinderWorkflow(object):
|
||||
self.cinder_api.begin_detaching(volume_id)
|
||||
except cinder_exception.BadRequest as e:
|
||||
raise exception.Invalid(_("Invalid volume: %s") %
|
||||
six.text_type(e))
|
||||
str(e))
|
||||
|
||||
conn_info = jsonutils.loads(volmap.connection_info)
|
||||
if not self._volume_connection_keep(context, volume_id):
|
||||
@ -187,4 +185,4 @@ class CinderWorkflow(object):
|
||||
self.cinder_api.delete_volume(volume_id)
|
||||
except cinder_exception as e:
|
||||
raise exception.Invalid(_("Delete Volume failed: %s") %
|
||||
six.text_type(e))
|
||||
str(e))
|
||||
|
@ -13,7 +13,6 @@
|
||||
import abc
|
||||
import functools
|
||||
import shutil
|
||||
import six
|
||||
|
||||
from oslo_log import log as logging
|
||||
from oslo_utils import excutils
|
||||
@ -63,8 +62,7 @@ def validate_volume_provider(supported_providers):
|
||||
return decorator
|
||||
|
||||
|
||||
@six.add_metaclass(abc.ABCMeta)
|
||||
class VolumeDriver(object):
|
||||
class VolumeDriver(object, metaclass=abc.ABCMeta):
|
||||
"""The base class that all Volume classes should inherit from."""
|
||||
|
||||
def attach(self, *args, **kwargs):
|
||||
|
@ -26,8 +26,7 @@ import time
|
||||
import docker
|
||||
from oslo_log import log as logging
|
||||
from oslo_utils import uuidutils
|
||||
import six
|
||||
import six.moves.urllib.parse as urlparse
|
||||
from urllib import parse as urlparse
|
||||
import websockify
|
||||
|
||||
from zun.common import context
|
||||
@ -121,7 +120,7 @@ class ZunProxyRequestHandlerBase(object):
|
||||
'host': self.server.target_host,
|
||||
'port': self.server.target_port})
|
||||
raise self.CClose(1000, "Target closed")
|
||||
if isinstance(buf, six.string_types):
|
||||
if isinstance(buf, str):
|
||||
buf = buf.encode()
|
||||
self.cqueue.append(buf)
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user