diff --git a/contrib/trove-guestagent b/contrib/trove-guestagent index 18d7e142a9..21938b160a 100755 --- a/contrib/trove-guestagent +++ b/contrib/trove-guestagent @@ -1,4 +1,4 @@ -#!/usr/bin/python +#!/usr/bin/python3 # Copyright 2011 OpenStack Foundation # All Rights Reserved. diff --git a/integration/scripts/files/elements/ubuntu-guest/install.d/15-trove-dep b/integration/scripts/files/elements/ubuntu-guest/install.d/15-trove-dep index 0d0059a8f4..7a0430e1c1 100755 --- a/integration/scripts/files/elements/ubuntu-guest/install.d/15-trove-dep +++ b/integration/scripts/files/elements/ubuntu-guest/install.d/15-trove-dep @@ -7,13 +7,9 @@ set -e set -o xtrace export DEBIAN_FRONTEND=noninteractive -apt-get --allow-unauthenticated -y install python-dev libxml2-dev libxslt1-dev python-setuptools \ - libffi-dev libssl-dev \ - python-pip python-sqlalchemy python-lxml \ - python-routes python-eventlet python-webob \ - python-pastedeploy python-paste python-netaddr \ - python-httplib2 python-iso8601 python-pexpect python-mysqldb python-migrate - +apt-get --allow-unauthenticated -y install \ + libxml2-dev libxslt1-dev libffi-dev libssl-dev libyaml-dev \ + python3 python3-dev python3-pip python3-sqlalchemy python3-setuptools # pick up the requirements file left for us by # extra-data.d/15-reddwarf-dep @@ -25,8 +21,10 @@ if [ -f ${TMP_HOOKS_DIR}/upper-constraints.txt ]; then UPPER_CONSTRAINTS=" -c ${TMP_HOOKS_DIR}/upper-constraints.txt" fi -pip2 install -q --upgrade -r ${TMP_HOOKS_DIR}/requirements.txt ${UPPER_CONSTRAINTS} +pip3 install pip==9.0.3 +pip3 install wheel +pip3 install --upgrade -r ${TMP_HOOKS_DIR}/requirements.txt ${UPPER_CONSTRAINTS} echo "diagnostic pip freeze output follows" -pip2 freeze +pip3 freeze echo "diagnostic pip freeze output above" diff --git a/trove/guestagent/guest_log.py b/trove/guestagent/guest_log.py index b7b4ab5879..c91db986db 100644 --- a/trove/guestagent/guest_log.py +++ b/trove/guestagent/guest_log.py @@ -294,7 +294,7 @@ class GuestLog(object): return True def _update_log_header_digest(self, log_file): - with open(log_file, 'r') as log: + with open(log_file, 'rb') as log: self._header_digest = hashlib.md5(log.readline()).hexdigest() def _get_headers(self): diff --git a/trove/guestagent/pkg.py b/trove/guestagent/pkg.py index 4938eebb2e..981879a2e8 100644 --- a/trove/guestagent/pkg.py +++ b/trove/guestagent/pkg.py @@ -22,7 +22,9 @@ import subprocess from tempfile import NamedTemporaryFile from oslo_log import log as logging +from oslo_utils import encodeutils import pexpect +import six from trove.common import exception from trove.common.exception import ProcessExecutionError @@ -50,9 +52,10 @@ def getoutput(*cmd): stderr=subprocess.STDOUT) except OSError: # ignore errors like program not found - return b'' + return six.text_type("") + stdout = proc.communicate()[0] - return stdout + return encodeutils.safe_decode(stdout) class PkgAdminLockError(exception.TroveError): diff --git a/trove/guestagent/strategies/replication/mysql_gtid.py b/trove/guestagent/strategies/replication/mysql_gtid.py index 8097f1aca4..ce008dce30 100644 --- a/trove/guestagent/strategies/replication/mysql_gtid.py +++ b/trove/guestagent/strategies/replication/mysql_gtid.py @@ -14,6 +14,7 @@ # under the License. # from oslo_log import log as logging +from oslo_utils import encodeutils from trove.common import exception from trove.common.i18n import _ @@ -71,8 +72,8 @@ class MysqlGTIDReplication(mysql_base.MysqlReplicationBase): LOG.info("Reading last master GTID from %s", INFO_FILE) try: with open(INFO_FILE, 'rb') as f: - row = f.read().split('\t') - return row[2] + row = f.read().split(b'\t') + return encodeutils.safe_decode(row[2]) except (IOError, IndexError) as ex: LOG.exception(ex) raise self.UnableToDetermineLastMasterGTID(