def test_register_configs_post_install(self, renderer,
                                        swift, rsync, server):
     swift.return_value = 'swift_context'
     rsync.return_value = 'rsync_context'
     server.return_value = 'swift_server_context'
     self.get_os_codename_package.return_value = 'grizzly'
     configs = MagicMock()
     configs.register = MagicMock()
     renderer.return_value = configs
     swift_utils.register_configs()
     renderer.assert_called_with(templates_dir=swift_utils.TEMPLATES,
                                 openstack_release='grizzly')
     ex = [
         call('/etc/swift/swift.conf', ['swift_server_context']),
         call('/etc/rsyncd.conf', ['rsync_context']),
         call('/etc/swift/account-server.conf', ['swift_context']),
         call('/etc/swift/object-server.conf', ['swift_context']),
         call('/etc/swift/container-server.conf', ['swift_context'])
     ]
     self.assertEquals(ex, configs.register.call_args_list)
 def test_register_configs_pre_install(self, renderer):
     self.get_os_codename_package.return_value = None
     swift_utils.register_configs()
     renderer.assert_called_with(templates_dir=swift_utils.TEMPLATES,
                                 openstack_release='essex')
    fetch_swift_rings,
    register_configs,
    save_script_rc,
    setup_storage,
)

from charmhelpers.core.hookenv import Hooks, UnregisteredHookError, config, log, relation_get, relation_set

from charmhelpers.fetch import apt_install, apt_update
from charmhelpers.core.host import restart_on_change
from charmhelpers.payload.execd import execd_preinstall

from charmhelpers.contrib.openstack.utils import configure_installation_source, openstack_upgrade_available

hooks = Hooks()
CONFIGS = register_configs()


@hooks.hook()
def install():
    execd_preinstall()
    configure_installation_source(config("openstack-origin"))
    apt_update()
    apt_install(PACKAGES, fatal=True)
    setup_storage()
    ensure_swift_directories()


@hooks.hook("config-changed")
@restart_on_change(RESTART_MAP)
def config_changed():