From 9802731e585f646f36d28fa2b96b791293656ae6 Mon Sep 17 00:00:00 2001 From: Alex Kavanagh Date: Wed, 30 Jan 2019 12:14:23 +0000 Subject: [PATCH] Migrate charm to python3 only runtime Change-Id: I921f3e2fc8250ca7250ca7dfc47e12644ce4ef98 --- .zuul.yaml | 3 +- 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/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/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-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/__init__.py | 0 .../contrib/python/packages.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/snap.py | 0 .../fetch/ubuntu.py | 0 .../osplatform.py | 0 .../payload/__init__.py | 0 .../payload/execd.py | 0 hooks/cinder_hooks.py | 92 +++++++++++-------- hooks/cinder_utils.py | 33 +++---- hooks/install | 2 +- tests/basic_deployment.py | 6 ++ tox.ini | 3 +- unit_tests/__init__.py | 18 +++- unit_tests/test_cinder_hooks.py | 7 +- unit_tests/test_utils.py | 2 +- 100 files changed, 97 insertions(+), 71 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/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/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-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/__init__.py (100%) rename {hooks/charmhelpers => charmhelpers}/contrib/python/packages.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/snap.py (100%) rename {hooks/charmhelpers => charmhelpers}/fetch/ubuntu.py (100%) rename {hooks/charmhelpers => charmhelpers}/osplatform.py (100%) rename {hooks/charmhelpers => charmhelpers}/payload/__init__.py (100%) rename {hooks/charmhelpers => charmhelpers}/payload/execd.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/charm-helpers-hooks.yaml b/charm-helpers-hooks.yaml index b6b53a8..13f4e22 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/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/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-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/__init__.py b/charmhelpers/contrib/python/__init__.py similarity index 100% rename from hooks/charmhelpers/contrib/python/__init__.py rename to charmhelpers/contrib/python/__init__.py diff --git a/hooks/charmhelpers/contrib/python/packages.py b/charmhelpers/contrib/python/packages.py similarity index 100% rename from hooks/charmhelpers/contrib/python/packages.py rename to charmhelpers/contrib/python/packages.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/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/charmhelpers/payload/__init__.py b/charmhelpers/payload/__init__.py similarity index 100% rename from hooks/charmhelpers/payload/__init__.py rename to charmhelpers/payload/__init__.py diff --git a/hooks/charmhelpers/payload/execd.py b/charmhelpers/payload/execd.py similarity index 100% rename from hooks/charmhelpers/payload/execd.py rename to charmhelpers/payload/execd.py diff --git a/hooks/cinder_hooks.py b/hooks/cinder_hooks.py index a1f4f62..600eee1 100755 --- a/hooks/cinder_hooks.py +++ b/hooks/cinder_hooks.py @@ -1,4 +1,4 @@ -#!/usr/bin/python +#!/usr/bin/env python3 # # Copyright 2016 Canonical Ltd # @@ -14,60 +14,72 @@ # See the License for the specific language governing permissions and # limitations under the License. +import json import os import sys -import json import uuid -from cinder_utils import ( - register_configs, - restart_map, - scrub_old_style_ceph, - PACKAGES, - REQUIRED_INTERFACES, - VERSION_PACKAGE, - CEPH_CONF, -) -from cinder_contexts import ( - CephSubordinateContext, - ceph_config_file, -) -from charmhelpers.contrib.openstack.context import CephContext +_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.contrib.openstack.alternatives import remove_alternative +from charmhelpers.contrib.openstack.context import CephContext +from charmhelpers.contrib.openstack.utils import ( + clear_unit_paused, + clear_unit_upgrading, + os_application_version_set, + set_os_workload_status, + set_unit_paused, + set_unit_upgrading, +) +from charmhelpers.contrib.storage.linux.ceph import ( + CephBrokerRq, + delete_keyring, + ensure_ceph_keyring, + is_request_complete, + send_request_if_needed, +) from charmhelpers.core.hookenv import ( - Hooks, - UnregisteredHookError, config, - service_name, - relation_set, - relation_ids, - status_set, - log, + Hooks, + is_leader, leader_get, leader_set, - is_leader, + log, + relation_ids, + relation_set, + service_name, + status_set, + UnregisteredHookError, ) -from charmhelpers.fetch import apt_install, apt_update from charmhelpers.core.host import ( restart_on_change, service_restart, ) -from charmhelpers.contrib.openstack.alternatives import remove_alternative -from charmhelpers.contrib.storage.linux.ceph import ( - send_request_if_needed, - is_request_complete, - ensure_ceph_keyring, - CephBrokerRq, - delete_keyring, -) +from charmhelpers.fetch import apt_install, apt_update from charmhelpers.payload.execd import execd_preinstall -from charmhelpers.contrib.openstack.utils import ( - set_os_workload_status, - os_application_version_set, - set_unit_paused, - set_unit_upgrading, - clear_unit_paused, - clear_unit_upgrading, + +from cinder_contexts import ( + ceph_config_file, + CephSubordinateContext, +) +from cinder_utils import ( + CEPH_CONF, + PACKAGES, + register_configs, + REQUIRED_INTERFACES, + restart_map, + scrub_old_style_ceph, + VERSION_PACKAGE, ) diff --git a/hooks/cinder_utils.py b/hooks/cinder_utils.py index 40cbbfd..234b9a7 100644 --- a/hooks/cinder_utils.py +++ b/hooks/cinder_utils.py @@ -12,31 +12,22 @@ # See the License for the specific language governing permissions and # limitations under the License. -from __future__ import print_function - import os import re - from collections import OrderedDict from tempfile import NamedTemporaryFile - +from charmhelpers.contrib.openstack import ( + context, + templating, +) +from charmhelpers.contrib.openstack.alternatives import install_alternative +from charmhelpers.contrib.openstack.utils import get_os_codename_package from charmhelpers.core.hookenv import ( + hook_name, relation_ids, service_name, - hook_name, ) - -from charmhelpers.contrib.openstack import ( - templating, - context, -) - -from charmhelpers.contrib.openstack.utils import ( - get_os_codename_package, -) - -from charmhelpers.contrib.openstack.alternatives import install_alternative from charmhelpers.core.host import mkdir @@ -89,7 +80,7 @@ def register_configs(): # lower priority that both of these but thats OK if not os.path.exists(ceph_config_file()): # touch file for pre-templated generation - open(ceph_config_file(), 'w').close() + open(ceph_config_file(), 'wt').close() install_alternative(os.path.basename(CEPH_CONF), CEPH_CONF, ceph_config_file()) CONFIG_FILES[ceph_config_file()] = { @@ -113,7 +104,7 @@ def restart_map(): that should be restarted when file changes. ''' _map = [] - for f, ctxt in CONFIG_FILES.iteritems(): + for f, ctxt in CONFIG_FILES.items(): svcs = [] for svc in ctxt['services']: svcs.append(svc) @@ -130,11 +121,11 @@ def scrub_old_style_ceph(): # NOTE: purge any CEPH_ARGS data from /etc/environment env_file = '/etc/environment' ceph_match = re.compile("^CEPH_ARGS.*").search - with open(env_file, 'r') as input_file: - with NamedTemporaryFile(mode='w', + with open(env_file, 'rt') as input_file: + with NamedTemporaryFile(mode='wt', delete=False, dir=os.path.dirname(env_file)) as outfile: for line in input_file: if not ceph_match(line): print(line, end='', file=outfile) - os.rename(outfile.name, input_file.name) + os.rename(outfile.name, input_file.name) diff --git a/hooks/install b/hooks/install index 29ff689..50b8cad 100755 --- a/hooks/install +++ b/hooks/install @@ -11,7 +11,7 @@ check_and_install() { fi } -PYTHON="python" +PYTHON="python3" for dep in ${DEPS[@]}; do check_and_install ${PYTHON} ${dep} diff --git a/tests/basic_deployment.py b/tests/basic_deployment.py index 35f7af8..b006df8 100644 --- a/tests/basic_deployment.py +++ b/tests/basic_deployment.py @@ -730,6 +730,12 @@ class CinderCephBasicDeployment(OpenStackAmuletDeployment): def test_500_ceph_alternatives_cleanup(self): """Check ceph alternatives are removed when ceph-mon relation is broken""" + # Skip this test if release is less than xenial_ocata as in that case + # cinder HAS a relation with ceph directly and this test would fail + if self._get_openstack_release() < self.xenial_ocata: + u.log.debug("No checking 500 ceph alternatives as " + "/etc/ceph/ceph.conf will exist.") + return u.log.debug('Checking ceph alternatives are removed ' 'upon broken ceph-mon relation') ceph_dir = self.cinder_ceph_sentry.directory_listing('/etc/ceph') diff --git a/tox.ini b/tox.ini index 0b72fa9..1457901 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] @@ -20,6 +20,7 @@ passenv = HOME TERM AMULET_* CS_API_* basepython = python2.7 deps = -r{toxinidir}/requirements.txt -r{toxinidir}/test-requirements.txt +commands = /bin/true [testenv:py35] basepython = python3.5 diff --git a/unit_tests/__init__.py b/unit_tests/__init__.py index b7fe4e1..a682374 100644 --- a/unit_tests/__init__.py +++ b/unit_tests/__init__.py @@ -12,5 +12,21 @@ # See the License for the specific language governing permissions and # limitations under the License. +import os import sys -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_cinder_hooks.py b/unit_tests/test_cinder_hooks.py index 7b77220..0f3a454 100644 --- a/unit_tests/test_cinder_hooks.py +++ b/unit_tests/test_cinder_hooks.py @@ -168,12 +168,13 @@ class TestCinderHooks(CharmTestCase): def test_ceph_broken(self, mock_config): self.CONFIGS.complete_contexts.return_value = ['ceph'] self.service_name.return_value = 'cinder-ceph' - hooks.hooks.execute(['hooks/ceph-relation-changed']) - hooks.hooks.execute(['hooks/ceph-relation-broken']) + with patch.object(hooks, 'CEPH_CONF', new="/some/random/file"): + hooks.hooks.execute(['hooks/ceph-relation-changed']) + hooks.hooks.execute(['hooks/ceph-relation-broken']) self.delete_keyring.assert_called_with(service='cinder-ceph') self.assertTrue(self.CONFIGS.write_all.called) self.remove_alternative.assert_called_with( - os.path.basename(self.CEPH_CONF), + os.path.basename("/some/random/file"), self.ceph_config_file()) @patch('charmhelpers.core.hookenv.config') diff --git a/unit_tests/test_utils.py b/unit_tests/test_utils.py index a9ce5f7..bef5ab4 100644 --- a/unit_tests/test_utils.py +++ b/unit_tests/test_utils.py @@ -49,7 +49,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: