Update charm to PY3 only code

This change upgrades the charm to PY3 only mode.
Note the changes to charm-helpers has also been made to support
Apache auditing code in PY3.

Change-Id: Idd347de5818ec57cb05f38170fe0d6536157a0da
This commit is contained in:
Alex Kavanagh 2018-10-02 09:55:35 +01:00
parent f340e2102d
commit eca37a1dad
167 changed files with 153 additions and 97 deletions

View File

@ -1,4 +1,4 @@
#!/usr/bin/python #!/usr/bin/env python3
# #
# Copyright 2016 Canonical Ltd # Copyright 2016 Canonical Ltd
# #
@ -17,10 +17,20 @@
import os import os
import sys import sys
sys.path.append('hooks/') _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.core.hookenv import action_fail from charmhelpers.core.hookenv import action_fail
from horizon_utils import (
from hooks.horizon_utils import (
pause_unit_helper, pause_unit_helper,
resume_unit_helper, resume_unit_helper,
register_configs, register_configs,
@ -29,14 +39,14 @@ from horizon_utils import (
def pause(args): def pause(args):
"""Pause the Ceilometer services. """Pause the Ceilometer services.
@raises Exception should the service fail to stop. :raises: Exception should the service fail to stop.
""" """
pause_unit_helper(register_configs()) pause_unit_helper(register_configs())
def resume(args): def resume(args):
"""Resume the Ceilometer services. """Resume the Ceilometer services.
@raises Exception should the service fail to start.""" :raises: Exception should the service fail to start."""
resume_unit_helper(register_configs()) resume_unit_helper(register_configs())

View File

@ -1,4 +1,4 @@
#!/usr/bin/python #!/usr/bin/env python3
# #
# Copyright 2016 Canonical Ltd # Copyright 2016 Canonical Ltd
# #
@ -14,19 +14,29 @@
# See the License for the specific language governing permissions and # See the License for the specific language governing permissions and
# limitations under the License. # limitations under the License.
import os
import sys import sys
sys.path.append('hooks/') _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.utils import ( from charmhelpers.contrib.openstack.utils import (
do_action_openstack_upgrade, do_action_openstack_upgrade,
) )
from horizon_utils import ( from hooks.horizon_utils import (
do_openstack_upgrade, do_openstack_upgrade,
) )
from horizon_hooks import ( from hooks.horizon_hooks import (
config_changed, config_changed,
CONFIGS, CONFIGS,
) )

View File

@ -1,5 +1,5 @@
repo: https://github.com/juju/charm-helpers repo: https://github.com/juju/charm-helpers
destination: hooks/charmhelpers destination: charmhelpers
include: include:
- core - core
- osplatform - osplatform

View File

@ -14,6 +14,7 @@
import os import os
import re import re
import six
import subprocess import subprocess
@ -95,6 +96,8 @@ class ApacheConfContext(object):
ctxt = settings['hardening'] ctxt = settings['hardening']
out = subprocess.check_output(['apache2', '-v']) out = subprocess.check_output(['apache2', '-v'])
if six.PY3:
out = out.decode('utf-8')
ctxt['apache_version'] = re.search(r'.+version: Apache/(.+?)\s.+', ctxt['apache_version'] = re.search(r'.+version: Apache/(.+?)\s.+',
out).group(1) out).group(1)
ctxt['apache_icondir'] = '/usr/share/apache2/icons/' ctxt['apache_icondir'] = '/usr/share/apache2/icons/'

View File

@ -15,7 +15,7 @@
import re import re
import subprocess import subprocess
from six import string_types import six
from charmhelpers.core.hookenv import ( from charmhelpers.core.hookenv import (
log, log,
@ -35,7 +35,7 @@ class DisabledModuleAudit(BaseAudit):
def __init__(self, modules): def __init__(self, modules):
if modules is None: if modules is None:
self.modules = [] self.modules = []
elif isinstance(modules, string_types): elif isinstance(modules, six.string_types):
self.modules = [modules] self.modules = [modules]
else: else:
self.modules = modules self.modules = modules
@ -69,6 +69,8 @@ class DisabledModuleAudit(BaseAudit):
def _get_loaded_modules(): def _get_loaded_modules():
"""Returns the modules which are enabled in Apache.""" """Returns the modules which are enabled in Apache."""
output = subprocess.check_output(['apache2ctl', '-M']) output = subprocess.check_output(['apache2ctl', '-M'])
if six.PY3:
output = output.decode('utf-8')
modules = [] modules = []
for line in output.splitlines(): for line in output.splitlines():
# Each line of the enabled module output looks like: # Each line of the enabled module output looks like:

Some files were not shown because too many files have changed in this diff Show More