Setup translation for octavia

This patch sets up octavia for translations.
It also includes some additional pep8 tests borrowed from neutron
that will be used in the future (tempest idempotent ids and policy.json)

Change-Id: Ia70506fa8cfdbcea7cc67b940761365093e94f2b
Michael Johnson 7 years ago
parent 547d03ae25
commit ad828709a7

@ -0,0 +1,2 @@
[python: **.py]

@ -75,3 +75,17 @@ oslo.config.opts =
octavia = octavia.opts:list_opts
tempest.test_plugins =
octavia = octavia.tests.tempest.plugin:OctaviaTempestPlugin
directory = octavia/locale
domain = octavia
domain = octavia
output_dir = octavia/locale
input_file = octavia/locale/octavia.pot
keywords = _ gettext ngettext l_ lazy_gettext
mapping_file = babel.cfg
output_file = octavia/locale/octavia.pot

@ -0,0 +1,68 @@
#! /bin/sh
# Copyright (C) 2014 VA Linux Systems Japan K.K.
# Copyright (C) 2014 YAMAMOTO Takashi <yamamoto at valinux co jp>
# All Rights Reserved.
# Licensed under the Apache License, Version 2.0 (the "License"); you may
# not use this file except in compliance with the License. You may obtain
# a copy of the License at
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
# License for the specific language governing permissions and limitations
# under the License.
TMPDIR=`mktemp -d /tmp/${0##*/}.XXXXXX` || exit 1
export TMPDIR
trap "rm -rf $TMPDIR" EXIT
check_pot_files_errors () {
find octavia -type f -regex '.*\.pot?' \
-print0|xargs -0 -n 1 --no-run-if-empty msgfmt \
--check-format -o /dev/null
if [ "$?" -ne 0 ]; then
echo "PO files syntax is not correct!" >>$FAILURES
check_identical_policy_files () {
# For unit tests, we maintain their own policy.json file to make test suite
# independent of whether it's executed from the octavia source tree or from
# site-packages installation path. We don't want two copies of the same
# file to diverge, so checking that they are identical
diff etc/policy.json octavia/tests/etc/policy.json 2>&1 > /dev/null
if [ "$?" -ne 0 ]; then
echo "policy.json files must be identical!" >>$FAILURES
check_no_duplicate_api_test_idempotent_ids() {
# For API tests, an idempotent ID is assigned to each single API test,
# those IDs should be unique
output=$(check-uuid --package octavia.tests.tempest)
if [ "$?" -ne 0 ]; then
echo "There are duplicate idempotent ids in the API tests" >>$FAILURES
echo "please, assign unique uuids to each API test:" >>$FAILURES
echo "$output" >>$FAILURES
# Add your checks here...
# TODO(johnsom) Uncomment when we have policies to test
# check_identical_policy_files
# TODO(johnsom) Uncomment when we have idempotent ids
# check_no_duplicate_api_test_idempotent_ids
# Fail, if there are emitted failures
if [ -f $FAILURES ]; then
exit 1

@ -59,9 +59,13 @@ commands = flake8
# Run security linter
bandit -r octavia -ll -ii -x octavia/tests
# Make sure specs follow our template
# Make sure specs follow our template
find . -type f -name "*.pyc" -delete
python -m unittest specs-tests.test_titles
sh ./tools/
whitelist_externals =
commands =