summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorZuul <zuul@review.opendev.org>2019-08-28 01:54:40 +0000
committerGerrit Code Review <review@openstack.org>2019-08-28 01:54:40 +0000
commit259e0f6f093ec5397a778bd485379e2532b4cc5f (patch)
treeadf2ba5bf278ff133bd015dc041a66424645d23e
parent2ee891ddfc647907957ab51fbf225d9c0783eeaf (diff)
parent7b9a752eb09083f8171c6ccfa3870bdc8032613d (diff)
downloadtrove-259e0f6f093ec5397a778bd485379e2532b4cc5f.tar.gz
Merge "Support python3 in guest agent"
-rwxr-xr-xcontrib/trove-guestagent2
-rwxr-xr-xintegration/scripts/files/elements/ubuntu-guest/install.d/15-trove-dep16
-rw-r--r--trove/guestagent/guest_log.py2
-rw-r--r--trove/guestagent/pkg.py7
-rw-r--r--trove/guestagent/strategies/replication/mysql_gtid.py5
5 files changed, 17 insertions, 15 deletions
diff --git a/contrib/trove-guestagent b/contrib/trove-guestagent
index 18d7e142..21938b16 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 0d0059a8..7a0430e1 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 b7b4ab58..c91db986 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 4938eebb..981879a2 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 8097f1ac..ce008dce 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(