Ejemplo n.º 1
0
 def test_restart_map(self):
     ex_map = OrderedDict([
         ('/etc/openstack-dashboard/local_settings.py',
          ['apache2', 'memcached']),
         ('/etc/apache2/conf.d/openstack-dashboard.conf',
          ['apache2', 'memcached']),
         ('/etc/apache2/conf-available/openstack-dashboard.conf',
          ['apache2', 'memcached']),
         ('/etc/apache2/sites-available/default-ssl',
          ['apache2', 'memcached']),
         ('/etc/apache2/sites-available/default-ssl.conf',
          ['apache2', 'memcached']),
         ('/etc/apache2/sites-available/default',
          ['apache2', 'memcached']),
         ('/etc/apache2/sites-available/000-default.conf',
          ['apache2', 'memcached']),
         ('/etc/apache2/ports.conf',
          ['apache2', 'memcached']),
         ('/etc/haproxy/haproxy.cfg',
          ['haproxy']),
         ('/usr/share/openstack-dashboard/openstack_dashboard/enabled/'
          '_40_router.py',
          ['apache2', 'memcached']),
         ('/usr/share/openstack-dashboard/openstack_dashboard/conf/'
          'keystonev3_policy.json',
          ['apache2', 'memcached']),
     ])
     self.assertEqual(horizon_utils.restart_map(), ex_map)
 def test_restart_map(self):
     ex_map = OrderedDict([
         ('/etc/openstack-dashboard/local_settings.py', ['apache2']),
         ('/etc/apache2/conf.d/openstack-dashboard.conf', ['apache2']),
         ('/etc/apache2/conf-available/openstack-dashboard.conf',
          ['apache2']),
         ('/etc/apache2/sites-available/default-ssl', ['apache2']),
         ('/etc/apache2/sites-available/default', ['apache2']),
         ('/etc/apache2/ports.conf', ['apache2']),
         ('/etc/haproxy/haproxy.cfg', ['haproxy']),
     ])
     self.assertEquals(horizon_utils.restart_map(), ex_map)
from charmhelpers.contrib.hahelpers.cluster import get_hacluster_config
from charmhelpers.payload.execd import execd_preinstall

hooks = Hooks()
CONFIGS = register_configs()


@hooks.hook('install')
def install():
    configure_installation_source(config('openstack-origin'))
    apt_update(fatal=True)
    apt_install(filter_installed_packages(PACKAGES), fatal=True)


@hooks.hook('upgrade-charm')
@restart_on_change(restart_map())
def upgrade_charm():
    execd_preinstall()
    apt_install(filter_installed_packages(PACKAGES), fatal=True)
    CONFIGS.write_all()


@hooks.hook('config-changed')
@restart_on_change(restart_map())
def config_changed():
    # Ensure default role changes are propagated to keystone
    for relid in relation_ids('identity-service'):
        keystone_joined(relid)
    enable_ssl()
    if openstack_upgrade_available('openstack-dashboard'):
        do_openstack_upgrade(configs=CONFIGS)
# python-apt is not installed as part of test-requirements but is imported by
# some charmhelpers modules so create a fake import.
sys.modules['apt'] = MagicMock()

import horizon_utils as utils
_register_configs = utils.register_configs
utils.register_configs = MagicMock()

with patch('charmhelpers.contrib.hardening.harden.harden') as mock_dec:
    mock_dec.side_effect = (lambda *dargs, **dkwargs: lambda f: lambda *args,
                            **kwargs: f(*args, **kwargs))

    import horizon_hooks as hooks

RESTART_MAP = utils.restart_map()
utils.register_configs = _register_configs

from charmhelpers.contrib.hahelpers.cluster import HAIncompleteConfig

TO_PATCH = [
    'config',
    'relation_set',
    'relation_get',
    'configure_installation_source',
    'apt_update',
    'apt_install',
    'filter_installed_packages',
    'open_port',
    'CONFIGS',
    'get_hacluster_config',
    if CompareOpenStackReleases(_os_release) < 'icehouse':
        packages += ['nodejs', 'node-less']
    if lsb_release()['DISTRIB_CODENAME'] == 'precise':
        # Explicitly upgrade python-six Bug#1420708
        apt_install('python-six', fatal=True)
    packages = filter_installed_packages(packages)
    if packages:
        status_set('maintenance', 'Installing packages')
        apt_install(packages, fatal=True)

    status_set('maintenance', 'Git install')
    git_install(config('openstack-origin-git'))


@hooks.hook('upgrade-charm')
@restart_on_change(restart_map(), stopstart=True, sleep=3)
@harden()
def upgrade_charm():
    execd_preinstall()
    apt_install(filter_installed_packages(determine_packages()), fatal=True)
    update_nrpe_config()
    CONFIGS.write_all()


@hooks.hook('config-changed')
@restart_on_change(restart_map(), stopstart=True, sleep=3)
@harden()
def config_changed():
    if config('prefer-ipv6'):
        setup_ipv6()
        localhost = 'ip6-localhost'
# python-apt is not installed as part of test-requirements but is imported by
# some charmhelpers modules so create a fake import.
sys.modules['apt'] = MagicMock()

import horizon_utils as utils
_register_configs = utils.register_configs
utils.register_configs = MagicMock()

with patch('charmhelpers.contrib.hardening.harden.harden') as mock_dec:
    mock_dec.side_effect = (lambda *dargs, **dkwargs: lambda f:
                            lambda *args, **kwargs: f(*args, **kwargs))

    import horizon_hooks as hooks

RESTART_MAP = utils.restart_map()
utils.register_configs = _register_configs

from charmhelpers.contrib.hahelpers.cluster import HAIncompleteConfig

TO_PATCH = [
    'config',
    'relation_set',
    'relation_get',
    'configure_installation_source',
    'apt_update',
    'apt_install',
    'filter_installed_packages',
    'open_port',
    'CONFIGS',
    'get_hacluster_config',
    packages = determine_packages()
    if os_release('openstack-dashboard') < 'icehouse':
        packages += ['nodejs', 'node-less']
    if lsb_release()['DISTRIB_CODENAME'] == 'precise':
        # Explicitly upgrade python-six Bug#1420708
        apt_install('python-six', fatal=True)
    packages = filter_installed_packages(packages)
    if packages:
        status_set('maintenance', 'Installing packages')
        apt_install(packages, fatal=True)

    git_install(config('openstack-origin-git'))


@hooks.hook('upgrade-charm')
@restart_on_change(restart_map(), stopstart=True, sleep=3)
@harden()
def upgrade_charm():
    execd_preinstall()
    apt_install(filter_installed_packages(determine_packages()), fatal=True)
    update_nrpe_config()
    CONFIGS.write_all()


@hooks.hook('config-changed')
@restart_on_change(restart_map(), stopstart=True, sleep=3)
@harden()
def config_changed():
    if config('prefer-ipv6'):
        setup_ipv6()
        localhost = 'ip6-localhost'