From 7ea0be57de5082189c736680a9412d411e850ed6 Mon Sep 17 00:00:00 2001 From: Alex Kavanagh Date: Wed, 13 Mar 2019 12:29:17 +0000 Subject: [PATCH] Convert the charm to Python 3 Change-Id: I8c8df27be189098be363d0ea125f86e59fdbb020 --- .zuul.yaml | 3 +-- actions/actions.py | 16 ++++++++++++++-- charm-helpers-hooks.yaml | 2 +- .../charmhelpers => charmhelpers}/__init__.py | 0 .../cli/__init__.py | 0 .../cli/benchmark.py | 0 .../cli/commands.py | 0 .../cli/hookenv.py | 0 .../charmhelpers => charmhelpers}/cli/host.py | 0 .../cli/unitdata.py | 0 .../contrib/__init__.py | 0 .../contrib/charmsupport/__init__.py | 0 .../contrib/charmsupport/nrpe.py | 0 .../contrib/charmsupport/volumes.py | 0 .../contrib/hahelpers/__init__.py | 0 .../contrib/hahelpers/apache.py | 0 .../contrib/hahelpers/cluster.py | 0 .../contrib/network/__init__.py | 0 .../contrib/network/ip.py | 0 .../contrib/openstack/__init__.py | 0 .../contrib/openstack/alternatives.py | 0 .../contrib/openstack/amulet/__init__.py | 0 .../contrib/openstack/amulet/deployment.py | 0 .../contrib/openstack/amulet/utils.py | 0 .../contrib/openstack/audits/__init__.py | 0 .../audits/openstack_security_guide.py | 0 .../contrib/openstack/cert_utils.py | 0 .../contrib/openstack/context.py | 0 .../contrib/openstack/exceptions.py | 0 .../contrib/openstack/files/__init__.py | 0 .../contrib/openstack/files/check_haproxy.sh | 0 .../files/check_haproxy_queue_depth.sh | 0 .../contrib/openstack/ha/__init__.py | 0 .../contrib/openstack/ha/utils.py | 0 .../contrib/openstack/ip.py | 0 .../contrib/openstack/keystone.py | 0 .../contrib/openstack/neutron.py | 0 .../contrib/openstack/ssh_migrations.py | 0 .../contrib/openstack/templates/__init__.py | 0 .../contrib/openstack/templates/ceph.conf | 0 .../contrib/openstack/templates/git.upstart | 0 .../contrib/openstack/templates/haproxy.cfg | 0 .../openstack/templates/memcached.conf | 0 .../templates/openstack_https_frontend | 0 .../templates/openstack_https_frontend.conf | 0 .../templates/section-keystone-authtoken | 0 .../section-keystone-authtoken-legacy | 0 .../section-keystone-authtoken-mitaka | 0 .../openstack/templates/section-oslo-cache | 0 .../templates/section-oslo-messaging-rabbit | 0 .../templates/section-oslo-middleware | 0 .../templates/section-oslo-notifications | 0 .../openstack/templates/section-rabbitmq-oslo | 0 .../openstack/templates/section-zeromq | 0 .../templates/wsgi-openstack-api.conf | 0 .../templates/wsgi-openstack-metadata.conf | 0 .../contrib/openstack/templating.py | 0 .../contrib/openstack/utils.py | 0 .../contrib/openstack/vaultlocker.py | 0 .../contrib/python.py | 0 .../contrib/storage/__init__.py | 0 .../contrib/storage/linux/__init__.py | 0 .../contrib/storage/linux/bcache.py | 0 .../contrib/storage/linux/ceph.py | 0 .../contrib/storage/linux/loopback.py | 0 .../contrib/storage/linux/lvm.py | 0 .../contrib/storage/linux/utils.py | 0 .../core/__init__.py | 0 .../core/decorators.py | 0 .../core/files.py | 0 .../core/fstab.py | 0 .../core/hookenv.py | 0 .../core/host.py | 0 .../core/host_factory/__init__.py | 0 .../core/host_factory/centos.py | 0 .../core/host_factory/ubuntu.py | 0 .../core/hugepage.py | 0 .../core/kernel.py | 0 .../core/kernel_factory/__init__.py | 0 .../core/kernel_factory/centos.py | 0 .../core/kernel_factory/ubuntu.py | 0 .../core/services/__init__.py | 0 .../core/services/base.py | 0 .../core/services/helpers.py | 0 .../core/strutils.py | 0 .../core/sysctl.py | 0 .../core/templating.py | 0 .../core/unitdata.py | 0 .../fetch/__init__.py | 0 .../fetch/archiveurl.py | 0 .../fetch/bzrurl.py | 0 .../fetch/centos.py | 0 .../fetch/giturl.py | 0 .../fetch/python/__init__.py | 0 .../fetch/python/debug.py | 0 .../fetch/python/packages.py | 0 .../fetch/python/rpdb.py | 0 .../fetch/python/version.py | 0 .../fetch/snap.py | 0 .../fetch/ubuntu.py | 0 .../osplatform.py | 0 hooks/ceilometer_contexts.py | 2 +- hooks/ceilometer_hooks.py | 18 ++++++++++++++++-- hooks/ceilometer_utils.py | 2 +- hooks/install | 2 +- tox.ini | 7 +------ unit_tests/__init__.py | 19 +++++++++++++++++-- unit_tests/test_utils.py | 4 ++-- 108 files changed, 55 insertions(+), 20 deletions(-) rename {hooks/charmhelpers => charmhelpers}/__init__.py (100%) rename {hooks/charmhelpers => charmhelpers}/cli/__init__.py (100%) rename {hooks/charmhelpers => charmhelpers}/cli/benchmark.py (100%) rename {hooks/charmhelpers => charmhelpers}/cli/commands.py (100%) rename {hooks/charmhelpers => charmhelpers}/cli/hookenv.py (100%) rename {hooks/charmhelpers => charmhelpers}/cli/host.py (100%) rename {hooks/charmhelpers => charmhelpers}/cli/unitdata.py (100%) rename {hooks/charmhelpers => charmhelpers}/contrib/__init__.py (100%) rename {hooks/charmhelpers => charmhelpers}/contrib/charmsupport/__init__.py (100%) rename {hooks/charmhelpers => charmhelpers}/contrib/charmsupport/nrpe.py (100%) rename {hooks/charmhelpers => charmhelpers}/contrib/charmsupport/volumes.py (100%) rename {hooks/charmhelpers => charmhelpers}/contrib/hahelpers/__init__.py (100%) rename {hooks/charmhelpers => charmhelpers}/contrib/hahelpers/apache.py (100%) rename {hooks/charmhelpers => charmhelpers}/contrib/hahelpers/cluster.py (100%) rename {hooks/charmhelpers => charmhelpers}/contrib/network/__init__.py (100%) rename {hooks/charmhelpers => charmhelpers}/contrib/network/ip.py (100%) rename {hooks/charmhelpers => charmhelpers}/contrib/openstack/__init__.py (100%) rename {hooks/charmhelpers => charmhelpers}/contrib/openstack/alternatives.py (100%) rename {hooks/charmhelpers => charmhelpers}/contrib/openstack/amulet/__init__.py (100%) rename {hooks/charmhelpers => charmhelpers}/contrib/openstack/amulet/deployment.py (100%) rename {hooks/charmhelpers => charmhelpers}/contrib/openstack/amulet/utils.py (100%) rename {hooks/charmhelpers => charmhelpers}/contrib/openstack/audits/__init__.py (100%) rename {hooks/charmhelpers => charmhelpers}/contrib/openstack/audits/openstack_security_guide.py (100%) rename {hooks/charmhelpers => charmhelpers}/contrib/openstack/cert_utils.py (100%) rename {hooks/charmhelpers => charmhelpers}/contrib/openstack/context.py (100%) rename {hooks/charmhelpers => charmhelpers}/contrib/openstack/exceptions.py (100%) rename {hooks/charmhelpers => charmhelpers}/contrib/openstack/files/__init__.py (100%) rename {hooks/charmhelpers => charmhelpers}/contrib/openstack/files/check_haproxy.sh (100%) rename {hooks/charmhelpers => charmhelpers}/contrib/openstack/files/check_haproxy_queue_depth.sh (100%) rename {hooks/charmhelpers => charmhelpers}/contrib/openstack/ha/__init__.py (100%) rename {hooks/charmhelpers => charmhelpers}/contrib/openstack/ha/utils.py (100%) rename {hooks/charmhelpers => charmhelpers}/contrib/openstack/ip.py (100%) rename {hooks/charmhelpers => charmhelpers}/contrib/openstack/keystone.py (100%) rename {hooks/charmhelpers => charmhelpers}/contrib/openstack/neutron.py (100%) rename {hooks/charmhelpers => charmhelpers}/contrib/openstack/ssh_migrations.py (100%) rename {hooks/charmhelpers => charmhelpers}/contrib/openstack/templates/__init__.py (100%) rename {hooks/charmhelpers => charmhelpers}/contrib/openstack/templates/ceph.conf (100%) rename {hooks/charmhelpers => charmhelpers}/contrib/openstack/templates/git.upstart (100%) rename {hooks/charmhelpers => charmhelpers}/contrib/openstack/templates/haproxy.cfg (100%) rename {hooks/charmhelpers => charmhelpers}/contrib/openstack/templates/memcached.conf (100%) rename {hooks/charmhelpers => charmhelpers}/contrib/openstack/templates/openstack_https_frontend (100%) rename {hooks/charmhelpers => charmhelpers}/contrib/openstack/templates/openstack_https_frontend.conf (100%) rename {hooks/charmhelpers => charmhelpers}/contrib/openstack/templates/section-keystone-authtoken (100%) rename {hooks/charmhelpers => charmhelpers}/contrib/openstack/templates/section-keystone-authtoken-legacy (100%) rename {hooks/charmhelpers => charmhelpers}/contrib/openstack/templates/section-keystone-authtoken-mitaka (100%) rename {hooks/charmhelpers => charmhelpers}/contrib/openstack/templates/section-oslo-cache (100%) rename {hooks/charmhelpers => charmhelpers}/contrib/openstack/templates/section-oslo-messaging-rabbit (100%) rename {hooks/charmhelpers => charmhelpers}/contrib/openstack/templates/section-oslo-middleware (100%) rename {hooks/charmhelpers => charmhelpers}/contrib/openstack/templates/section-oslo-notifications (100%) rename {hooks/charmhelpers => charmhelpers}/contrib/openstack/templates/section-rabbitmq-oslo (100%) rename {hooks/charmhelpers => charmhelpers}/contrib/openstack/templates/section-zeromq (100%) rename {hooks/charmhelpers => charmhelpers}/contrib/openstack/templates/wsgi-openstack-api.conf (100%) rename {hooks/charmhelpers => charmhelpers}/contrib/openstack/templates/wsgi-openstack-metadata.conf (100%) rename {hooks/charmhelpers => charmhelpers}/contrib/openstack/templating.py (100%) rename {hooks/charmhelpers => charmhelpers}/contrib/openstack/utils.py (100%) rename {hooks/charmhelpers => charmhelpers}/contrib/openstack/vaultlocker.py (100%) rename {hooks/charmhelpers => charmhelpers}/contrib/python.py (100%) rename {hooks/charmhelpers => charmhelpers}/contrib/storage/__init__.py (100%) rename {hooks/charmhelpers => charmhelpers}/contrib/storage/linux/__init__.py (100%) rename {hooks/charmhelpers => charmhelpers}/contrib/storage/linux/bcache.py (100%) rename {hooks/charmhelpers => charmhelpers}/contrib/storage/linux/ceph.py (100%) rename {hooks/charmhelpers => charmhelpers}/contrib/storage/linux/loopback.py (100%) rename {hooks/charmhelpers => charmhelpers}/contrib/storage/linux/lvm.py (100%) rename {hooks/charmhelpers => charmhelpers}/contrib/storage/linux/utils.py (100%) rename {hooks/charmhelpers => charmhelpers}/core/__init__.py (100%) rename {hooks/charmhelpers => charmhelpers}/core/decorators.py (100%) rename {hooks/charmhelpers => charmhelpers}/core/files.py (100%) rename {hooks/charmhelpers => charmhelpers}/core/fstab.py (100%) rename {hooks/charmhelpers => charmhelpers}/core/hookenv.py (100%) rename {hooks/charmhelpers => charmhelpers}/core/host.py (100%) rename {hooks/charmhelpers => charmhelpers}/core/host_factory/__init__.py (100%) rename {hooks/charmhelpers => charmhelpers}/core/host_factory/centos.py (100%) rename {hooks/charmhelpers => charmhelpers}/core/host_factory/ubuntu.py (100%) rename {hooks/charmhelpers => charmhelpers}/core/hugepage.py (100%) rename {hooks/charmhelpers => charmhelpers}/core/kernel.py (100%) rename {hooks/charmhelpers => charmhelpers}/core/kernel_factory/__init__.py (100%) rename {hooks/charmhelpers => charmhelpers}/core/kernel_factory/centos.py (100%) rename {hooks/charmhelpers => charmhelpers}/core/kernel_factory/ubuntu.py (100%) rename {hooks/charmhelpers => charmhelpers}/core/services/__init__.py (100%) rename {hooks/charmhelpers => charmhelpers}/core/services/base.py (100%) rename {hooks/charmhelpers => charmhelpers}/core/services/helpers.py (100%) rename {hooks/charmhelpers => charmhelpers}/core/strutils.py (100%) rename {hooks/charmhelpers => charmhelpers}/core/sysctl.py (100%) rename {hooks/charmhelpers => charmhelpers}/core/templating.py (100%) rename {hooks/charmhelpers => charmhelpers}/core/unitdata.py (100%) rename {hooks/charmhelpers => charmhelpers}/fetch/__init__.py (100%) rename {hooks/charmhelpers => charmhelpers}/fetch/archiveurl.py (100%) rename {hooks/charmhelpers => charmhelpers}/fetch/bzrurl.py (100%) rename {hooks/charmhelpers => charmhelpers}/fetch/centos.py (100%) rename {hooks/charmhelpers => charmhelpers}/fetch/giturl.py (100%) rename {hooks/charmhelpers => charmhelpers}/fetch/python/__init__.py (100%) rename {hooks/charmhelpers => charmhelpers}/fetch/python/debug.py (100%) rename {hooks/charmhelpers => charmhelpers}/fetch/python/packages.py (100%) rename {hooks/charmhelpers => charmhelpers}/fetch/python/rpdb.py (100%) rename {hooks/charmhelpers => charmhelpers}/fetch/python/version.py (100%) rename {hooks/charmhelpers => charmhelpers}/fetch/snap.py (100%) rename {hooks/charmhelpers => charmhelpers}/fetch/ubuntu.py (100%) rename {hooks/charmhelpers => charmhelpers}/osplatform.py (100%) diff --git a/.zuul.yaml b/.zuul.yaml index aa9c508..7051aee 100644 --- a/.zuul.yaml +++ b/.zuul.yaml @@ -1,4 +1,3 @@ - project: templates: - - python-charm-jobs - - openstack-python35-jobs-nonvoting + - python35-charm-jobs diff --git a/actions/actions.py b/actions/actions.py index ee6a76b..6a10442 100755 --- a/actions/actions.py +++ b/actions/actions.py @@ -1,4 +1,4 @@ -#!/usr/bin/python +#!/usr/bin/env python3 # # Copyright 2016 Canonical Ltd # @@ -17,7 +17,19 @@ import os import sys -sys.path.append('hooks/') + +_path = os.path.dirname(os.path.realpath(__file__)) +_hooks = os.path.abspath(os.path.join(_path, '../hooks')) +_root = os.path.abspath(os.path.join(_path, '..')) + + +def _add_path(path): + if path not in sys.path: + sys.path.insert(1, path) + +_add_path(_hooks) +_add_path(_root) + from charmhelpers.core.hookenv import action_fail from ceilometer_utils import ( diff --git a/charm-helpers-hooks.yaml b/charm-helpers-hooks.yaml index d09a47d..58e70d1 100644 --- a/charm-helpers-hooks.yaml +++ b/charm-helpers-hooks.yaml @@ -1,5 +1,5 @@ repo: https://github.com/juju/charm-helpers -destination: hooks/charmhelpers +destination: charmhelpers include: - core - osplatform diff --git a/hooks/charmhelpers/__init__.py b/charmhelpers/__init__.py similarity index 100% rename from hooks/charmhelpers/__init__.py rename to charmhelpers/__init__.py diff --git a/hooks/charmhelpers/cli/__init__.py b/charmhelpers/cli/__init__.py similarity index 100% rename from hooks/charmhelpers/cli/__init__.py rename to charmhelpers/cli/__init__.py diff --git a/hooks/charmhelpers/cli/benchmark.py b/charmhelpers/cli/benchmark.py similarity index 100% rename from hooks/charmhelpers/cli/benchmark.py rename to charmhelpers/cli/benchmark.py diff --git a/hooks/charmhelpers/cli/commands.py b/charmhelpers/cli/commands.py similarity index 100% rename from hooks/charmhelpers/cli/commands.py rename to charmhelpers/cli/commands.py diff --git a/hooks/charmhelpers/cli/hookenv.py b/charmhelpers/cli/hookenv.py similarity index 100% rename from hooks/charmhelpers/cli/hookenv.py rename to charmhelpers/cli/hookenv.py diff --git a/hooks/charmhelpers/cli/host.py b/charmhelpers/cli/host.py similarity index 100% rename from hooks/charmhelpers/cli/host.py rename to charmhelpers/cli/host.py diff --git a/hooks/charmhelpers/cli/unitdata.py b/charmhelpers/cli/unitdata.py similarity index 100% rename from hooks/charmhelpers/cli/unitdata.py rename to charmhelpers/cli/unitdata.py diff --git a/hooks/charmhelpers/contrib/__init__.py b/charmhelpers/contrib/__init__.py similarity index 100% rename from hooks/charmhelpers/contrib/__init__.py rename to charmhelpers/contrib/__init__.py diff --git a/hooks/charmhelpers/contrib/charmsupport/__init__.py b/charmhelpers/contrib/charmsupport/__init__.py similarity index 100% rename from hooks/charmhelpers/contrib/charmsupport/__init__.py rename to charmhelpers/contrib/charmsupport/__init__.py diff --git a/hooks/charmhelpers/contrib/charmsupport/nrpe.py b/charmhelpers/contrib/charmsupport/nrpe.py similarity index 100% rename from hooks/charmhelpers/contrib/charmsupport/nrpe.py rename to charmhelpers/contrib/charmsupport/nrpe.py diff --git a/hooks/charmhelpers/contrib/charmsupport/volumes.py b/charmhelpers/contrib/charmsupport/volumes.py similarity index 100% rename from hooks/charmhelpers/contrib/charmsupport/volumes.py rename to charmhelpers/contrib/charmsupport/volumes.py diff --git a/hooks/charmhelpers/contrib/hahelpers/__init__.py b/charmhelpers/contrib/hahelpers/__init__.py similarity index 100% rename from hooks/charmhelpers/contrib/hahelpers/__init__.py rename to charmhelpers/contrib/hahelpers/__init__.py diff --git a/hooks/charmhelpers/contrib/hahelpers/apache.py b/charmhelpers/contrib/hahelpers/apache.py similarity index 100% rename from hooks/charmhelpers/contrib/hahelpers/apache.py rename to charmhelpers/contrib/hahelpers/apache.py diff --git a/hooks/charmhelpers/contrib/hahelpers/cluster.py b/charmhelpers/contrib/hahelpers/cluster.py similarity index 100% rename from hooks/charmhelpers/contrib/hahelpers/cluster.py rename to charmhelpers/contrib/hahelpers/cluster.py diff --git a/hooks/charmhelpers/contrib/network/__init__.py b/charmhelpers/contrib/network/__init__.py similarity index 100% rename from hooks/charmhelpers/contrib/network/__init__.py rename to charmhelpers/contrib/network/__init__.py diff --git a/hooks/charmhelpers/contrib/network/ip.py b/charmhelpers/contrib/network/ip.py similarity index 100% rename from hooks/charmhelpers/contrib/network/ip.py rename to charmhelpers/contrib/network/ip.py diff --git a/hooks/charmhelpers/contrib/openstack/__init__.py b/charmhelpers/contrib/openstack/__init__.py similarity index 100% rename from hooks/charmhelpers/contrib/openstack/__init__.py rename to charmhelpers/contrib/openstack/__init__.py diff --git a/hooks/charmhelpers/contrib/openstack/alternatives.py b/charmhelpers/contrib/openstack/alternatives.py similarity index 100% rename from hooks/charmhelpers/contrib/openstack/alternatives.py rename to charmhelpers/contrib/openstack/alternatives.py diff --git a/hooks/charmhelpers/contrib/openstack/amulet/__init__.py b/charmhelpers/contrib/openstack/amulet/__init__.py similarity index 100% rename from hooks/charmhelpers/contrib/openstack/amulet/__init__.py rename to charmhelpers/contrib/openstack/amulet/__init__.py diff --git a/hooks/charmhelpers/contrib/openstack/amulet/deployment.py b/charmhelpers/contrib/openstack/amulet/deployment.py similarity index 100% rename from hooks/charmhelpers/contrib/openstack/amulet/deployment.py rename to charmhelpers/contrib/openstack/amulet/deployment.py diff --git a/hooks/charmhelpers/contrib/openstack/amulet/utils.py b/charmhelpers/contrib/openstack/amulet/utils.py similarity index 100% rename from hooks/charmhelpers/contrib/openstack/amulet/utils.py rename to charmhelpers/contrib/openstack/amulet/utils.py diff --git a/hooks/charmhelpers/contrib/openstack/audits/__init__.py b/charmhelpers/contrib/openstack/audits/__init__.py similarity index 100% rename from hooks/charmhelpers/contrib/openstack/audits/__init__.py rename to charmhelpers/contrib/openstack/audits/__init__.py diff --git a/hooks/charmhelpers/contrib/openstack/audits/openstack_security_guide.py b/charmhelpers/contrib/openstack/audits/openstack_security_guide.py similarity index 100% rename from hooks/charmhelpers/contrib/openstack/audits/openstack_security_guide.py rename to charmhelpers/contrib/openstack/audits/openstack_security_guide.py diff --git a/hooks/charmhelpers/contrib/openstack/cert_utils.py b/charmhelpers/contrib/openstack/cert_utils.py similarity index 100% rename from hooks/charmhelpers/contrib/openstack/cert_utils.py rename to charmhelpers/contrib/openstack/cert_utils.py diff --git a/hooks/charmhelpers/contrib/openstack/context.py b/charmhelpers/contrib/openstack/context.py similarity index 100% rename from hooks/charmhelpers/contrib/openstack/context.py rename to charmhelpers/contrib/openstack/context.py diff --git a/hooks/charmhelpers/contrib/openstack/exceptions.py b/charmhelpers/contrib/openstack/exceptions.py similarity index 100% rename from hooks/charmhelpers/contrib/openstack/exceptions.py rename to charmhelpers/contrib/openstack/exceptions.py diff --git a/hooks/charmhelpers/contrib/openstack/files/__init__.py b/charmhelpers/contrib/openstack/files/__init__.py similarity index 100% rename from hooks/charmhelpers/contrib/openstack/files/__init__.py rename to charmhelpers/contrib/openstack/files/__init__.py diff --git a/hooks/charmhelpers/contrib/openstack/files/check_haproxy.sh b/charmhelpers/contrib/openstack/files/check_haproxy.sh similarity index 100% rename from hooks/charmhelpers/contrib/openstack/files/check_haproxy.sh rename to charmhelpers/contrib/openstack/files/check_haproxy.sh diff --git a/hooks/charmhelpers/contrib/openstack/files/check_haproxy_queue_depth.sh b/charmhelpers/contrib/openstack/files/check_haproxy_queue_depth.sh similarity index 100% rename from hooks/charmhelpers/contrib/openstack/files/check_haproxy_queue_depth.sh rename to charmhelpers/contrib/openstack/files/check_haproxy_queue_depth.sh diff --git a/hooks/charmhelpers/contrib/openstack/ha/__init__.py b/charmhelpers/contrib/openstack/ha/__init__.py similarity index 100% rename from hooks/charmhelpers/contrib/openstack/ha/__init__.py rename to charmhelpers/contrib/openstack/ha/__init__.py diff --git a/hooks/charmhelpers/contrib/openstack/ha/utils.py b/charmhelpers/contrib/openstack/ha/utils.py similarity index 100% rename from hooks/charmhelpers/contrib/openstack/ha/utils.py rename to charmhelpers/contrib/openstack/ha/utils.py diff --git a/hooks/charmhelpers/contrib/openstack/ip.py b/charmhelpers/contrib/openstack/ip.py similarity index 100% rename from hooks/charmhelpers/contrib/openstack/ip.py rename to charmhelpers/contrib/openstack/ip.py diff --git a/hooks/charmhelpers/contrib/openstack/keystone.py b/charmhelpers/contrib/openstack/keystone.py similarity index 100% rename from hooks/charmhelpers/contrib/openstack/keystone.py rename to charmhelpers/contrib/openstack/keystone.py diff --git a/hooks/charmhelpers/contrib/openstack/neutron.py b/charmhelpers/contrib/openstack/neutron.py similarity index 100% rename from hooks/charmhelpers/contrib/openstack/neutron.py rename to charmhelpers/contrib/openstack/neutron.py diff --git a/hooks/charmhelpers/contrib/openstack/ssh_migrations.py b/charmhelpers/contrib/openstack/ssh_migrations.py similarity index 100% rename from hooks/charmhelpers/contrib/openstack/ssh_migrations.py rename to charmhelpers/contrib/openstack/ssh_migrations.py diff --git a/hooks/charmhelpers/contrib/openstack/templates/__init__.py b/charmhelpers/contrib/openstack/templates/__init__.py similarity index 100% rename from hooks/charmhelpers/contrib/openstack/templates/__init__.py rename to charmhelpers/contrib/openstack/templates/__init__.py diff --git a/hooks/charmhelpers/contrib/openstack/templates/ceph.conf b/charmhelpers/contrib/openstack/templates/ceph.conf similarity index 100% rename from hooks/charmhelpers/contrib/openstack/templates/ceph.conf rename to charmhelpers/contrib/openstack/templates/ceph.conf diff --git a/hooks/charmhelpers/contrib/openstack/templates/git.upstart b/charmhelpers/contrib/openstack/templates/git.upstart similarity index 100% rename from hooks/charmhelpers/contrib/openstack/templates/git.upstart rename to charmhelpers/contrib/openstack/templates/git.upstart diff --git a/hooks/charmhelpers/contrib/openstack/templates/haproxy.cfg b/charmhelpers/contrib/openstack/templates/haproxy.cfg similarity index 100% rename from hooks/charmhelpers/contrib/openstack/templates/haproxy.cfg rename to charmhelpers/contrib/openstack/templates/haproxy.cfg diff --git a/hooks/charmhelpers/contrib/openstack/templates/memcached.conf b/charmhelpers/contrib/openstack/templates/memcached.conf similarity index 100% rename from hooks/charmhelpers/contrib/openstack/templates/memcached.conf rename to charmhelpers/contrib/openstack/templates/memcached.conf diff --git a/hooks/charmhelpers/contrib/openstack/templates/openstack_https_frontend b/charmhelpers/contrib/openstack/templates/openstack_https_frontend similarity index 100% rename from hooks/charmhelpers/contrib/openstack/templates/openstack_https_frontend rename to charmhelpers/contrib/openstack/templates/openstack_https_frontend diff --git a/hooks/charmhelpers/contrib/openstack/templates/openstack_https_frontend.conf b/charmhelpers/contrib/openstack/templates/openstack_https_frontend.conf similarity index 100% rename from hooks/charmhelpers/contrib/openstack/templates/openstack_https_frontend.conf rename to charmhelpers/contrib/openstack/templates/openstack_https_frontend.conf diff --git a/hooks/charmhelpers/contrib/openstack/templates/section-keystone-authtoken b/charmhelpers/contrib/openstack/templates/section-keystone-authtoken similarity index 100% rename from hooks/charmhelpers/contrib/openstack/templates/section-keystone-authtoken rename to charmhelpers/contrib/openstack/templates/section-keystone-authtoken diff --git a/hooks/charmhelpers/contrib/openstack/templates/section-keystone-authtoken-legacy b/charmhelpers/contrib/openstack/templates/section-keystone-authtoken-legacy similarity index 100% rename from hooks/charmhelpers/contrib/openstack/templates/section-keystone-authtoken-legacy rename to charmhelpers/contrib/openstack/templates/section-keystone-authtoken-legacy diff --git a/hooks/charmhelpers/contrib/openstack/templates/section-keystone-authtoken-mitaka b/charmhelpers/contrib/openstack/templates/section-keystone-authtoken-mitaka similarity index 100% rename from hooks/charmhelpers/contrib/openstack/templates/section-keystone-authtoken-mitaka rename to charmhelpers/contrib/openstack/templates/section-keystone-authtoken-mitaka diff --git a/hooks/charmhelpers/contrib/openstack/templates/section-oslo-cache b/charmhelpers/contrib/openstack/templates/section-oslo-cache similarity index 100% rename from hooks/charmhelpers/contrib/openstack/templates/section-oslo-cache rename to charmhelpers/contrib/openstack/templates/section-oslo-cache diff --git a/hooks/charmhelpers/contrib/openstack/templates/section-oslo-messaging-rabbit b/charmhelpers/contrib/openstack/templates/section-oslo-messaging-rabbit similarity index 100% rename from hooks/charmhelpers/contrib/openstack/templates/section-oslo-messaging-rabbit rename to charmhelpers/contrib/openstack/templates/section-oslo-messaging-rabbit diff --git a/hooks/charmhelpers/contrib/openstack/templates/section-oslo-middleware b/charmhelpers/contrib/openstack/templates/section-oslo-middleware similarity index 100% rename from hooks/charmhelpers/contrib/openstack/templates/section-oslo-middleware rename to charmhelpers/contrib/openstack/templates/section-oslo-middleware diff --git a/hooks/charmhelpers/contrib/openstack/templates/section-oslo-notifications b/charmhelpers/contrib/openstack/templates/section-oslo-notifications similarity index 100% rename from hooks/charmhelpers/contrib/openstack/templates/section-oslo-notifications rename to charmhelpers/contrib/openstack/templates/section-oslo-notifications diff --git a/hooks/charmhelpers/contrib/openstack/templates/section-rabbitmq-oslo b/charmhelpers/contrib/openstack/templates/section-rabbitmq-oslo similarity index 100% rename from hooks/charmhelpers/contrib/openstack/templates/section-rabbitmq-oslo rename to charmhelpers/contrib/openstack/templates/section-rabbitmq-oslo diff --git a/hooks/charmhelpers/contrib/openstack/templates/section-zeromq b/charmhelpers/contrib/openstack/templates/section-zeromq similarity index 100% rename from hooks/charmhelpers/contrib/openstack/templates/section-zeromq rename to charmhelpers/contrib/openstack/templates/section-zeromq diff --git a/hooks/charmhelpers/contrib/openstack/templates/wsgi-openstack-api.conf b/charmhelpers/contrib/openstack/templates/wsgi-openstack-api.conf similarity index 100% rename from hooks/charmhelpers/contrib/openstack/templates/wsgi-openstack-api.conf rename to charmhelpers/contrib/openstack/templates/wsgi-openstack-api.conf diff --git a/hooks/charmhelpers/contrib/openstack/templates/wsgi-openstack-metadata.conf b/charmhelpers/contrib/openstack/templates/wsgi-openstack-metadata.conf similarity index 100% rename from hooks/charmhelpers/contrib/openstack/templates/wsgi-openstack-metadata.conf rename to charmhelpers/contrib/openstack/templates/wsgi-openstack-metadata.conf diff --git a/hooks/charmhelpers/contrib/openstack/templating.py b/charmhelpers/contrib/openstack/templating.py similarity index 100% rename from hooks/charmhelpers/contrib/openstack/templating.py rename to charmhelpers/contrib/openstack/templating.py diff --git a/hooks/charmhelpers/contrib/openstack/utils.py b/charmhelpers/contrib/openstack/utils.py similarity index 100% rename from hooks/charmhelpers/contrib/openstack/utils.py rename to charmhelpers/contrib/openstack/utils.py diff --git a/hooks/charmhelpers/contrib/openstack/vaultlocker.py b/charmhelpers/contrib/openstack/vaultlocker.py similarity index 100% rename from hooks/charmhelpers/contrib/openstack/vaultlocker.py rename to charmhelpers/contrib/openstack/vaultlocker.py diff --git a/hooks/charmhelpers/contrib/python.py b/charmhelpers/contrib/python.py similarity index 100% rename from hooks/charmhelpers/contrib/python.py rename to charmhelpers/contrib/python.py diff --git a/hooks/charmhelpers/contrib/storage/__init__.py b/charmhelpers/contrib/storage/__init__.py similarity index 100% rename from hooks/charmhelpers/contrib/storage/__init__.py rename to charmhelpers/contrib/storage/__init__.py diff --git a/hooks/charmhelpers/contrib/storage/linux/__init__.py b/charmhelpers/contrib/storage/linux/__init__.py similarity index 100% rename from hooks/charmhelpers/contrib/storage/linux/__init__.py rename to charmhelpers/contrib/storage/linux/__init__.py diff --git a/hooks/charmhelpers/contrib/storage/linux/bcache.py b/charmhelpers/contrib/storage/linux/bcache.py similarity index 100% rename from hooks/charmhelpers/contrib/storage/linux/bcache.py rename to charmhelpers/contrib/storage/linux/bcache.py diff --git a/hooks/charmhelpers/contrib/storage/linux/ceph.py b/charmhelpers/contrib/storage/linux/ceph.py similarity index 100% rename from hooks/charmhelpers/contrib/storage/linux/ceph.py rename to charmhelpers/contrib/storage/linux/ceph.py diff --git a/hooks/charmhelpers/contrib/storage/linux/loopback.py b/charmhelpers/contrib/storage/linux/loopback.py similarity index 100% rename from hooks/charmhelpers/contrib/storage/linux/loopback.py rename to charmhelpers/contrib/storage/linux/loopback.py diff --git a/hooks/charmhelpers/contrib/storage/linux/lvm.py b/charmhelpers/contrib/storage/linux/lvm.py similarity index 100% rename from hooks/charmhelpers/contrib/storage/linux/lvm.py rename to charmhelpers/contrib/storage/linux/lvm.py diff --git a/hooks/charmhelpers/contrib/storage/linux/utils.py b/charmhelpers/contrib/storage/linux/utils.py similarity index 100% rename from hooks/charmhelpers/contrib/storage/linux/utils.py rename to charmhelpers/contrib/storage/linux/utils.py diff --git a/hooks/charmhelpers/core/__init__.py b/charmhelpers/core/__init__.py similarity index 100% rename from hooks/charmhelpers/core/__init__.py rename to charmhelpers/core/__init__.py diff --git a/hooks/charmhelpers/core/decorators.py b/charmhelpers/core/decorators.py similarity index 100% rename from hooks/charmhelpers/core/decorators.py rename to charmhelpers/core/decorators.py diff --git a/hooks/charmhelpers/core/files.py b/charmhelpers/core/files.py similarity index 100% rename from hooks/charmhelpers/core/files.py rename to charmhelpers/core/files.py diff --git a/hooks/charmhelpers/core/fstab.py b/charmhelpers/core/fstab.py similarity index 100% rename from hooks/charmhelpers/core/fstab.py rename to charmhelpers/core/fstab.py diff --git a/hooks/charmhelpers/core/hookenv.py b/charmhelpers/core/hookenv.py similarity index 100% rename from hooks/charmhelpers/core/hookenv.py rename to charmhelpers/core/hookenv.py diff --git a/hooks/charmhelpers/core/host.py b/charmhelpers/core/host.py similarity index 100% rename from hooks/charmhelpers/core/host.py rename to charmhelpers/core/host.py diff --git a/hooks/charmhelpers/core/host_factory/__init__.py b/charmhelpers/core/host_factory/__init__.py similarity index 100% rename from hooks/charmhelpers/core/host_factory/__init__.py rename to charmhelpers/core/host_factory/__init__.py diff --git a/hooks/charmhelpers/core/host_factory/centos.py b/charmhelpers/core/host_factory/centos.py similarity index 100% rename from hooks/charmhelpers/core/host_factory/centos.py rename to charmhelpers/core/host_factory/centos.py diff --git a/hooks/charmhelpers/core/host_factory/ubuntu.py b/charmhelpers/core/host_factory/ubuntu.py similarity index 100% rename from hooks/charmhelpers/core/host_factory/ubuntu.py rename to charmhelpers/core/host_factory/ubuntu.py diff --git a/hooks/charmhelpers/core/hugepage.py b/charmhelpers/core/hugepage.py similarity index 100% rename from hooks/charmhelpers/core/hugepage.py rename to charmhelpers/core/hugepage.py diff --git a/hooks/charmhelpers/core/kernel.py b/charmhelpers/core/kernel.py similarity index 100% rename from hooks/charmhelpers/core/kernel.py rename to charmhelpers/core/kernel.py diff --git a/hooks/charmhelpers/core/kernel_factory/__init__.py b/charmhelpers/core/kernel_factory/__init__.py similarity index 100% rename from hooks/charmhelpers/core/kernel_factory/__init__.py rename to charmhelpers/core/kernel_factory/__init__.py diff --git a/hooks/charmhelpers/core/kernel_factory/centos.py b/charmhelpers/core/kernel_factory/centos.py similarity index 100% rename from hooks/charmhelpers/core/kernel_factory/centos.py rename to charmhelpers/core/kernel_factory/centos.py diff --git a/hooks/charmhelpers/core/kernel_factory/ubuntu.py b/charmhelpers/core/kernel_factory/ubuntu.py similarity index 100% rename from hooks/charmhelpers/core/kernel_factory/ubuntu.py rename to charmhelpers/core/kernel_factory/ubuntu.py diff --git a/hooks/charmhelpers/core/services/__init__.py b/charmhelpers/core/services/__init__.py similarity index 100% rename from hooks/charmhelpers/core/services/__init__.py rename to charmhelpers/core/services/__init__.py diff --git a/hooks/charmhelpers/core/services/base.py b/charmhelpers/core/services/base.py similarity index 100% rename from hooks/charmhelpers/core/services/base.py rename to charmhelpers/core/services/base.py diff --git a/hooks/charmhelpers/core/services/helpers.py b/charmhelpers/core/services/helpers.py similarity index 100% rename from hooks/charmhelpers/core/services/helpers.py rename to charmhelpers/core/services/helpers.py diff --git a/hooks/charmhelpers/core/strutils.py b/charmhelpers/core/strutils.py similarity index 100% rename from hooks/charmhelpers/core/strutils.py rename to charmhelpers/core/strutils.py diff --git a/hooks/charmhelpers/core/sysctl.py b/charmhelpers/core/sysctl.py similarity index 100% rename from hooks/charmhelpers/core/sysctl.py rename to charmhelpers/core/sysctl.py diff --git a/hooks/charmhelpers/core/templating.py b/charmhelpers/core/templating.py similarity index 100% rename from hooks/charmhelpers/core/templating.py rename to charmhelpers/core/templating.py diff --git a/hooks/charmhelpers/core/unitdata.py b/charmhelpers/core/unitdata.py similarity index 100% rename from hooks/charmhelpers/core/unitdata.py rename to charmhelpers/core/unitdata.py diff --git a/hooks/charmhelpers/fetch/__init__.py b/charmhelpers/fetch/__init__.py similarity index 100% rename from hooks/charmhelpers/fetch/__init__.py rename to charmhelpers/fetch/__init__.py diff --git a/hooks/charmhelpers/fetch/archiveurl.py b/charmhelpers/fetch/archiveurl.py similarity index 100% rename from hooks/charmhelpers/fetch/archiveurl.py rename to charmhelpers/fetch/archiveurl.py diff --git a/hooks/charmhelpers/fetch/bzrurl.py b/charmhelpers/fetch/bzrurl.py similarity index 100% rename from hooks/charmhelpers/fetch/bzrurl.py rename to charmhelpers/fetch/bzrurl.py diff --git a/hooks/charmhelpers/fetch/centos.py b/charmhelpers/fetch/centos.py similarity index 100% rename from hooks/charmhelpers/fetch/centos.py rename to charmhelpers/fetch/centos.py diff --git a/hooks/charmhelpers/fetch/giturl.py b/charmhelpers/fetch/giturl.py similarity index 100% rename from hooks/charmhelpers/fetch/giturl.py rename to charmhelpers/fetch/giturl.py diff --git a/hooks/charmhelpers/fetch/python/__init__.py b/charmhelpers/fetch/python/__init__.py similarity index 100% rename from hooks/charmhelpers/fetch/python/__init__.py rename to charmhelpers/fetch/python/__init__.py diff --git a/hooks/charmhelpers/fetch/python/debug.py b/charmhelpers/fetch/python/debug.py similarity index 100% rename from hooks/charmhelpers/fetch/python/debug.py rename to charmhelpers/fetch/python/debug.py diff --git a/hooks/charmhelpers/fetch/python/packages.py b/charmhelpers/fetch/python/packages.py similarity index 100% rename from hooks/charmhelpers/fetch/python/packages.py rename to charmhelpers/fetch/python/packages.py diff --git a/hooks/charmhelpers/fetch/python/rpdb.py b/charmhelpers/fetch/python/rpdb.py similarity index 100% rename from hooks/charmhelpers/fetch/python/rpdb.py rename to charmhelpers/fetch/python/rpdb.py diff --git a/hooks/charmhelpers/fetch/python/version.py b/charmhelpers/fetch/python/version.py similarity index 100% rename from hooks/charmhelpers/fetch/python/version.py rename to charmhelpers/fetch/python/version.py diff --git a/hooks/charmhelpers/fetch/snap.py b/charmhelpers/fetch/snap.py similarity index 100% rename from hooks/charmhelpers/fetch/snap.py rename to charmhelpers/fetch/snap.py diff --git a/hooks/charmhelpers/fetch/ubuntu.py b/charmhelpers/fetch/ubuntu.py similarity index 100% rename from hooks/charmhelpers/fetch/ubuntu.py rename to charmhelpers/fetch/ubuntu.py diff --git a/hooks/charmhelpers/osplatform.py b/charmhelpers/osplatform.py similarity index 100% rename from hooks/charmhelpers/osplatform.py rename to charmhelpers/osplatform.py diff --git a/hooks/ceilometer_contexts.py b/hooks/ceilometer_contexts.py index ec88fc8..e83dacd 100644 --- a/hooks/ceilometer_contexts.py +++ b/hooks/ceilometer_contexts.py @@ -78,7 +78,7 @@ class CeilometerServiceContext(OSContextGenerator): if conf.get('rabbit_ssl_ca') is not None: ca_path = os.path.join( self.ssl_dir, 'rabbit-client-ca.pem') - with open(ca_path, 'w') as fh: + with open(ca_path, 'wt') as fh: fh.write(base64.b64decode(conf['rabbit_ssl_ca'])) conf['rabbit_ssl_ca'] = ca_path return conf diff --git a/hooks/ceilometer_hooks.py b/hooks/ceilometer_hooks.py index c698398..a14ac11 100755 --- a/hooks/ceilometer_hooks.py +++ b/hooks/ceilometer_hooks.py @@ -1,4 +1,4 @@ -#!/usr/bin/python +#!/usr/bin/env python3 # # Copyright 2016 Canonical Ltd # @@ -14,8 +14,22 @@ # See the License for the specific language governing permissions and # limitations under the License. -import sys import json +import os +import sys + +_path = os.path.dirname(os.path.realpath(__file__)) +_root = os.path.abspath(os.path.join(_path, '..')) + + +def _add_path(path): + if path not in sys.path: + sys.path.insert(1, path) + + +_add_path(_root) + + from charmhelpers.fetch import ( apt_install, filter_installed_packages, apt_update diff --git a/hooks/ceilometer_utils.py b/hooks/ceilometer_utils.py index c04339e..e7ea5ef 100644 --- a/hooks/ceilometer_utils.py +++ b/hooks/ceilometer_utils.py @@ -193,7 +193,7 @@ def restart_map(): release = (get_os_codename_package('ceilometer-common', fatal=False) or 'icehouse') _map = {} - for f, ctxt in CONFIG_FILES.iteritems(): + for f, ctxt in CONFIG_FILES.items(): svcs = [] for svc in ctxt['services']: svcs.append(svc) diff --git a/hooks/install b/hooks/install index e37fd94..5ebd6c4 100755 --- a/hooks/install +++ b/hooks/install @@ -9,7 +9,7 @@ check_and_install() { fi } -PYTHON="python" +PYTHON="python3" for dep in ${DEPS[@]}; do check_and_install ${PYTHON} ${dep} diff --git a/tox.ini b/tox.ini index 5786385..5fa77cd 100644 --- a/tox.ini +++ b/tox.ini @@ -2,7 +2,7 @@ # This file is managed centrally by release-tools and should not be modified # within individual charm repos. [tox] -envlist = pep8,py27 +envlist = pep8,py3{5,6} skipsdist = True [testenv] @@ -16,11 +16,6 @@ commands = stestr run {posargs} whitelist_externals = juju passenv = HOME TERM AMULET_* CS_API_* -[testenv:py27] -basepython = python2.7 -deps = -r{toxinidir}/requirements.txt - -r{toxinidir}/test-requirements.txt - [testenv:py35] basepython = python3.5 deps = -r{toxinidir}/requirements.txt diff --git a/unit_tests/__init__.py b/unit_tests/__init__.py index 6c9ae40..a682374 100644 --- a/unit_tests/__init__.py +++ b/unit_tests/__init__.py @@ -12,6 +12,21 @@ # See the License for the specific language governing permissions and # limitations under the License. +import os import sys -sys.path.append('actions') -sys.path.append('hooks') + +_path = os.path.dirname(os.path.realpath(__file__)) +_actions = os.path.abspath(os.path.join(_path, '../actions')) +_hooks = os.path.abspath(os.path.join(_path, '../hooks')) +_charmhelpers = os.path.abspath(os.path.join(_path, '../charmhelpers')) +_unit_tests = os.path.abspath(os.path.join(_path, '../unit_tests')) + + +def _add_path(path): + if path not in sys.path: + sys.path.insert(1, path) + +_add_path(_actions) +_add_path(_hooks) +_add_path(_charmhelpers) +_add_path(_unit_tests) diff --git a/unit_tests/test_utils.py b/unit_tests/test_utils.py index 64f4de6..deb5206 100644 --- a/unit_tests/test_utils.py +++ b/unit_tests/test_utils.py @@ -30,7 +30,7 @@ def mock_open(filename, contents=None): return io.StringIO(contents) else: return open(*args) - with patch('__builtin__.open', mock_file): + with patch('builtins.open', mock_file): yield @@ -63,7 +63,7 @@ def get_default_config(): ''' default_config = {} config = load_config() - for k, v in config.iteritems(): + for k, v in config.items(): if 'default' in v: default_config[k] = v['default'] else: