diff --git a/files/apts/general b/files/apts/general index c308c466e3..3fe7863de2 100644 --- a/files/apts/general +++ b/files/apts/general @@ -27,3 +27,4 @@ bc libyaml-dev libffi-dev libssl-dev # for pyOpenSSL +gettext # used for compiling message catalogs diff --git a/files/rpms/general b/files/rpms/general index 7a35961bc2..d4a9fcba55 100644 --- a/files/rpms/general +++ b/files/rpms/general @@ -26,6 +26,7 @@ wget which bc libyaml-devel +gettext # used for compiling message catalogs # [1] : some of installed tools have unversioned dependencies on this, # but others have versioned (<=0.7). So if a later version (0.7.1) diff --git a/lib/horizon b/lib/horizon index 755be18f3c..0213948633 100644 --- a/lib/horizon +++ b/lib/horizon @@ -84,6 +84,14 @@ function cleanup_horizon { # configure_horizon() - Set config files, create data dirs, etc function configure_horizon { setup_develop $HORIZON_DIR + + # Compile message catalogs. + # Horizon is installed as develop mode, so we can compile here. + # Message catalog compilation is handled by Django admin script, + # so compiling them after the installation avoids Django installation twice. + cd $HORIZON_DIR + ./run_tests.sh -N --compilemessages + cd - } # init_horizon() - Initialize databases, etc. @@ -138,6 +146,13 @@ function init_horizon { # install_django_openstack_auth() - Collect source and prepare function install_django_openstack_auth { git_clone $HORIZONAUTH_REPO $HORIZONAUTH_DIR $HORIZONAUTH_BRANCH + + # Compile message catalogs before installation + _prepare_message_catalog_compilation + cd $HORIZONAUTH_DIR + python setup.py compile_catalog + cd - + setup_install $HORIZONAUTH_DIR } @@ -160,6 +175,13 @@ function stop_horizon { stop_apache_server } +# NOTE: It can be moved to common functions, but it is only used by compilation +# of django_openstack_auth catalogs at the moment. +function _prepare_message_catalog_compilation { + local babel_package=$(grep ^Babel $REQUIREMENTS_DIR/global-requirements.txt) + pip_install "$babel_package" +} + # Restore xtrace $XTRACE