layer-basic does not support centos7

Bug #1696311 reported by john
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
Charm Helpers
New
Undecided
Unassigned

Bug Description

when trying to deploy 2.1.2 charm in centos7. layer-basic calls apt-get instead of yum.

when trying to run charm on centos7 - error is found in leader-elect - basic.py

unit-rac-master-0: 23:21:46 DEBUG juju.worker.uniter [AGENT-STATUS] executing: running leader-elected hook
unit-rac-master-0: 23:21:46 INFO unit.rac-master/0.leader-elected Traceback (most recent call last):
unit-rac-master-0: 23:21:46 INFO unit.rac-master/0.leader-elected File "/var/lib/juju/agents/unit-rac-master-0/charm/hooks/leader-elected", line 8, in <module>
unit-rac-master-0: 23:21:46 INFO unit.rac-master/0.leader-elected basic.bootstrap_charm_deps()
unit-rac-master-0: 23:21:46 INFO unit.rac-master/0.leader-elected File "lib/charms/layer/basic.py", line 55, in bootstrap_charm_deps
unit-rac-master-0: 23:21:46 INFO unit.rac-master/0.leader-elected 'python3-dev',
unit-rac-master-0: 23:21:46 INFO unit.rac-master/0.leader-elected File "lib/charms/layer/basic.py", line 163, in apt_install
unit-rac-master-0: 23:21:46 INFO unit.rac-master/0.leader-elected check_call(cmd + packages, env=env)
unit-rac-master-0: 23:21:46 INFO unit.rac-master/0.leader-elected File "/usr/lib64/python3.4/subprocess.py", line 553, in check_call
unit-rac-master-0: 23:21:46 INFO unit.rac-master/0.leader-elected retcode = call(*popenargs, **kwargs)
unit-rac-master-0: 23:21:46 INFO unit.rac-master/0.leader-elected File "/usr/lib64/python3.4/subprocess.py", line 534, in call
unit-rac-master-0: 23:21:46 INFO unit.rac-master/0.leader-elected with Popen(*popenargs, **kwargs) as p:
unit-rac-master-0: 23:21:46 INFO unit.rac-master/0.leader-elected File "/usr/lib64/python3.4/subprocess.py", line 856, in __init__
unit-rac-master-0: 23:21:46 INFO unit.rac-master/0.leader-elected restore_signals, start_new_session)
unit-rac-master-0: 23:21:46 INFO unit.rac-master/0.leader-elected File "/usr/lib64/python3.4/subprocess.py", line 1460, in _execute_child
unit-rac-master-0: 23:21:46 INFO unit.rac-master/0.leader-elected raise child_exception_type(errno_num, err_msg)
unit-rac-master-0: 23:21:46 INFO unit.rac-master/0.leader-elected FileNotFoundError: [Errno 2] No such file or directory: 'apt-get'
unit-rac-master-0: 23:21:46 ERROR juju.worker.uniter.operation hook "leader-elected" failed: exit status 1
unit-rac-master-0: 23:21:46 DEBUG juju.worker.uniter.operation lock released

solution would be to check for OS centos7 in basic.py and call yum in apt-get routine.

def apt_install(packages):
"""
Install apt packages.

This ensures a consistent set of options that are often missed but
should really be set.
"""
if isinstance(packages, (str, bytes)):
    packages = [packages]

env = os.environ.copy()

if 'DEBIAN_FRONTEND' not in env:
    env['DEBIAN_FRONTEND'] = 'noninteractive'

cmd = ['apt-get',
       '--option=Dpkg::Options::=--force-confold',
       '--assume-yes',
       'install']
for attempt in range(3):
    try:
        check_call(cmd + packages, env=env)
    except CalledProcessError:
        if attempt == 2: # third attempt
            raise
        sleep(5)
    else:
        break

John A Meinel (jameinel)
affects: juju-core → charm-helpers
Revision history for this message
Adam Collard (adam-collard) wrote :

Filed in GitHub (where layer-basic is maintained) in https://github.com/juju-solutions/layer-basic/issues/99

To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.