Addresses glance/+spec/i18n
Added gettext.install to glance endpoints, setup.py, and run_tests.py. Wrapped all exceptions in common/exception.py with gettext. Included fix for bug lp:823676. Change-Id: Ied4381e1676227afea857acd01f4754e6a181106
This commit is contained in:
parent
de78df9020
commit
8a33e24311
@ -23,6 +23,7 @@ stored in one or more Glance nodes.
|
|||||||
"""
|
"""
|
||||||
|
|
||||||
import functools
|
import functools
|
||||||
|
import gettext
|
||||||
import optparse
|
import optparse
|
||||||
import os
|
import os
|
||||||
import re
|
import re
|
||||||
@ -37,6 +38,8 @@ possible_topdir = os.path.normpath(os.path.join(os.path.abspath(sys.argv[0]),
|
|||||||
if os.path.exists(os.path.join(possible_topdir, 'glance', '__init__.py')):
|
if os.path.exists(os.path.join(possible_topdir, 'glance', '__init__.py')):
|
||||||
sys.path.insert(0, possible_topdir)
|
sys.path.insert(0, possible_topdir)
|
||||||
|
|
||||||
|
gettext.install('glance', unicode=1)
|
||||||
|
|
||||||
from glance import client as glance_client
|
from glance import client as glance_client
|
||||||
from glance import version
|
from glance import version
|
||||||
from glance.common import exception
|
from glance.common import exception
|
||||||
|
@ -22,6 +22,7 @@
|
|||||||
Glance API Server
|
Glance API Server
|
||||||
"""
|
"""
|
||||||
|
|
||||||
|
import gettext
|
||||||
import optparse
|
import optparse
|
||||||
import os
|
import os
|
||||||
import sys
|
import sys
|
||||||
@ -34,6 +35,8 @@ possible_topdir = os.path.normpath(os.path.join(os.path.abspath(sys.argv[0]),
|
|||||||
if os.path.exists(os.path.join(possible_topdir, 'glance', '__init__.py')):
|
if os.path.exists(os.path.join(possible_topdir, 'glance', '__init__.py')):
|
||||||
sys.path.insert(0, possible_topdir)
|
sys.path.insert(0, possible_topdir)
|
||||||
|
|
||||||
|
gettext.install('glance', unicode=1)
|
||||||
|
|
||||||
from glance import version
|
from glance import version
|
||||||
from glance.common import config
|
from glance.common import config
|
||||||
from glance.common import wsgi
|
from glance.common import wsgi
|
||||||
|
@ -24,6 +24,7 @@ Glance Image Cache Pre-fetcher
|
|||||||
This is meant to be run as a periodic task from cron.
|
This is meant to be run as a periodic task from cron.
|
||||||
"""
|
"""
|
||||||
|
|
||||||
|
import gettext
|
||||||
import optparse
|
import optparse
|
||||||
import os
|
import os
|
||||||
import sys
|
import sys
|
||||||
@ -36,6 +37,8 @@ possible_topdir = os.path.normpath(os.path.join(os.path.abspath(sys.argv[0]),
|
|||||||
if os.path.exists(os.path.join(possible_topdir, 'glance', '__init__.py')):
|
if os.path.exists(os.path.join(possible_topdir, 'glance', '__init__.py')):
|
||||||
sys.path.insert(0, possible_topdir)
|
sys.path.insert(0, possible_topdir)
|
||||||
|
|
||||||
|
gettext.install('glance', unicode=1)
|
||||||
|
|
||||||
from glance import version
|
from glance import version
|
||||||
from glance.common import config
|
from glance.common import config
|
||||||
from glance.common import wsgi
|
from glance.common import wsgi
|
||||||
|
@ -24,6 +24,7 @@ Glance Image Cache Pruner
|
|||||||
This is meant to be run as a periodic task, perhaps every half-hour.
|
This is meant to be run as a periodic task, perhaps every half-hour.
|
||||||
"""
|
"""
|
||||||
|
|
||||||
|
import gettext
|
||||||
import optparse
|
import optparse
|
||||||
import os
|
import os
|
||||||
import sys
|
import sys
|
||||||
@ -36,6 +37,8 @@ possible_topdir = os.path.normpath(os.path.join(os.path.abspath(sys.argv[0]),
|
|||||||
if os.path.exists(os.path.join(possible_topdir, 'glance', '__init__.py')):
|
if os.path.exists(os.path.join(possible_topdir, 'glance', '__init__.py')):
|
||||||
sys.path.insert(0, possible_topdir)
|
sys.path.insert(0, possible_topdir)
|
||||||
|
|
||||||
|
gettext.install('glance', unicode=1)
|
||||||
|
|
||||||
from glance import version
|
from glance import version
|
||||||
from glance.common import config
|
from glance.common import config
|
||||||
from glance.common import wsgi
|
from glance.common import wsgi
|
||||||
|
@ -32,6 +32,7 @@ Also, if an incomplete image hangs around past the image_cache_stall_timeout
|
|||||||
period, we automatically sweep it up.
|
period, we automatically sweep it up.
|
||||||
"""
|
"""
|
||||||
|
|
||||||
|
import gettext
|
||||||
import optparse
|
import optparse
|
||||||
import os
|
import os
|
||||||
import sys
|
import sys
|
||||||
@ -44,6 +45,8 @@ possible_topdir = os.path.normpath(os.path.join(os.path.abspath(sys.argv[0]),
|
|||||||
if os.path.exists(os.path.join(possible_topdir, 'glance', '__init__.py')):
|
if os.path.exists(os.path.join(possible_topdir, 'glance', '__init__.py')):
|
||||||
sys.path.insert(0, possible_topdir)
|
sys.path.insert(0, possible_topdir)
|
||||||
|
|
||||||
|
gettext.install('glance', unicode=1)
|
||||||
|
|
||||||
from glance import version
|
from glance import version
|
||||||
from glance.common import config
|
from glance.common import config
|
||||||
from glance.common import wsgi
|
from glance.common import wsgi
|
||||||
|
@ -24,6 +24,7 @@ Thanks for some of the code, Swifties ;)
|
|||||||
from __future__ import with_statement
|
from __future__ import with_statement
|
||||||
|
|
||||||
import errno
|
import errno
|
||||||
|
import gettext
|
||||||
import os
|
import os
|
||||||
import optparse
|
import optparse
|
||||||
import resource
|
import resource
|
||||||
@ -39,6 +40,8 @@ possible_topdir = os.path.normpath(os.path.join(os.path.abspath(sys.argv[0]),
|
|||||||
if os.path.exists(os.path.join(possible_topdir, 'glance', '__init__.py')):
|
if os.path.exists(os.path.join(possible_topdir, 'glance', '__init__.py')):
|
||||||
sys.path.insert(0, possible_topdir)
|
sys.path.insert(0, possible_topdir)
|
||||||
|
|
||||||
|
gettext.install('glance', unicode=1)
|
||||||
|
|
||||||
from glance import version
|
from glance import version
|
||||||
from glance.common import config
|
from glance.common import config
|
||||||
|
|
||||||
|
@ -26,6 +26,7 @@ Glance Management Utility
|
|||||||
# Perhaps for consistency with Nova, we would then rename glance-admin ->
|
# Perhaps for consistency with Nova, we would then rename glance-admin ->
|
||||||
# glance-manage (or the other way around)
|
# glance-manage (or the other way around)
|
||||||
|
|
||||||
|
import gettext
|
||||||
import optparse
|
import optparse
|
||||||
import os
|
import os
|
||||||
import sys
|
import sys
|
||||||
@ -38,6 +39,8 @@ possible_topdir = os.path.normpath(os.path.join(os.path.abspath(sys.argv[0]),
|
|||||||
if os.path.exists(os.path.join(possible_topdir, 'glance', '__init__.py')):
|
if os.path.exists(os.path.join(possible_topdir, 'glance', '__init__.py')):
|
||||||
sys.path.insert(0, possible_topdir)
|
sys.path.insert(0, possible_topdir)
|
||||||
|
|
||||||
|
gettext.install('glance', unicode=1)
|
||||||
|
|
||||||
from glance import version as glance_version
|
from glance import version as glance_version
|
||||||
from glance.common import config
|
from glance.common import config
|
||||||
from glance.common import exception
|
from glance.common import exception
|
||||||
|
@ -22,6 +22,7 @@
|
|||||||
Reference implementation server for Glance Registry
|
Reference implementation server for Glance Registry
|
||||||
"""
|
"""
|
||||||
|
|
||||||
|
import gettext
|
||||||
import optparse
|
import optparse
|
||||||
import os
|
import os
|
||||||
import sys
|
import sys
|
||||||
@ -34,6 +35,8 @@ possible_topdir = os.path.normpath(os.path.join(os.path.abspath(sys.argv[0]),
|
|||||||
if os.path.exists(os.path.join(possible_topdir, 'glance', '__init__.py')):
|
if os.path.exists(os.path.join(possible_topdir, 'glance', '__init__.py')):
|
||||||
sys.path.insert(0, possible_topdir)
|
sys.path.insert(0, possible_topdir)
|
||||||
|
|
||||||
|
gettext.install('glance', unicode=1)
|
||||||
|
|
||||||
from glance import version
|
from glance import version
|
||||||
from glance.common import config
|
from glance.common import config
|
||||||
from glance.common import wsgi
|
from glance.common import wsgi
|
||||||
|
@ -20,6 +20,7 @@
|
|||||||
Glance Scrub Service
|
Glance Scrub Service
|
||||||
"""
|
"""
|
||||||
|
|
||||||
|
import gettext
|
||||||
import optparse
|
import optparse
|
||||||
import os
|
import os
|
||||||
import sys
|
import sys
|
||||||
@ -32,6 +33,8 @@ possible_topdir = os.path.normpath(os.path.join(os.path.abspath(sys.argv[0]),
|
|||||||
if os.path.exists(os.path.join(possible_topdir, 'glance', '__init__.py')):
|
if os.path.exists(os.path.join(possible_topdir, 'glance', '__init__.py')):
|
||||||
sys.path.insert(0, possible_topdir)
|
sys.path.insert(0, possible_topdir)
|
||||||
|
|
||||||
|
gettext.install('glance', unicode=1)
|
||||||
|
|
||||||
from glance import version
|
from glance import version
|
||||||
from glance.common import config
|
from glance.common import config
|
||||||
from glance.store import scrubber
|
from glance.store import scrubber
|
||||||
|
@ -47,6 +47,7 @@ Usage
|
|||||||
# FIXME(sirp): This can be merged into glance-admin when that becomes
|
# FIXME(sirp): This can be merged into glance-admin when that becomes
|
||||||
# available
|
# available
|
||||||
import argparse
|
import argparse
|
||||||
|
import gettext
|
||||||
import pprint
|
import pprint
|
||||||
import os
|
import os
|
||||||
import sys
|
import sys
|
||||||
@ -59,6 +60,8 @@ possible_topdir = os.path.normpath(os.path.join(os.path.abspath(sys.argv[0]),
|
|||||||
if os.path.exists(os.path.join(possible_topdir, 'glance', '__init__.py')):
|
if os.path.exists(os.path.join(possible_topdir, 'glance', '__init__.py')):
|
||||||
sys.path.insert(0, possible_topdir)
|
sys.path.insert(0, possible_topdir)
|
||||||
|
|
||||||
|
gettext.install('glance', unicode=1)
|
||||||
|
|
||||||
from glance.client import Client
|
from glance.client import Client
|
||||||
from glance.registry.db.api import DISK_FORMATS, CONTAINER_FORMATS
|
from glance.registry.db.api import DISK_FORMATS, CONTAINER_FORMATS
|
||||||
|
|
||||||
|
@ -33,8 +33,8 @@ class ProcessExecutionError(IOError):
|
|||||||
description = "Unexpected error while running command."
|
description = "Unexpected error while running command."
|
||||||
if exit_code is None:
|
if exit_code is None:
|
||||||
exit_code = '-'
|
exit_code = '-'
|
||||||
message = "%s\nCommand: %s\nExit code: %s\nStdout: %r\nStderr: %r" % (
|
message = _("%s\nCommand: %s\nExit code: %s\nStdout: %r\nStderr: %r")\
|
||||||
description, cmd, exit_code, stdout, stderr)
|
% (description, cmd, exit_code, stdout, stderr)
|
||||||
IOError.__init__(self, message)
|
IOError.__init__(self, message)
|
||||||
|
|
||||||
|
|
||||||
@ -56,7 +56,7 @@ class NotFound(Error):
|
|||||||
|
|
||||||
class UnknownScheme(Error):
|
class UnknownScheme(Error):
|
||||||
|
|
||||||
msg = "Unknown scheme '%s' found in URI"
|
msg = _("Unknown scheme '%s' found in URI")
|
||||||
|
|
||||||
def __init__(self, scheme):
|
def __init__(self, scheme):
|
||||||
msg = self.__class__.msg % scheme
|
msg = self.__class__.msg % scheme
|
||||||
@ -65,7 +65,7 @@ class UnknownScheme(Error):
|
|||||||
|
|
||||||
class BadStoreUri(Error):
|
class BadStoreUri(Error):
|
||||||
|
|
||||||
msg = "The Store URI %s was malformed. Reason: %s"
|
msg = _("The Store URI %s was malformed. Reason: %s")
|
||||||
|
|
||||||
def __init__(self, uri, reason):
|
def __init__(self, uri, reason):
|
||||||
msg = self.__class__.msg % (uri, reason)
|
msg = self.__class__.msg % (uri, reason)
|
||||||
@ -129,7 +129,7 @@ class GlanceException(Exception):
|
|||||||
a 'message' property. That message will get printf'd
|
a 'message' property. That message will get printf'd
|
||||||
with the keyword arguments provided to the constructor.
|
with the keyword arguments provided to the constructor.
|
||||||
"""
|
"""
|
||||||
message = "An unknown exception occurred"
|
message = _("An unknown exception occurred")
|
||||||
|
|
||||||
def __init__(self, **kwargs):
|
def __init__(self, **kwargs):
|
||||||
try:
|
try:
|
||||||
@ -144,18 +144,18 @@ class GlanceException(Exception):
|
|||||||
|
|
||||||
|
|
||||||
class InvalidContentType(GlanceException):
|
class InvalidContentType(GlanceException):
|
||||||
message = "Invalid content type %(content_type)s"
|
message = _("Invalid content type %(content_type)s")
|
||||||
|
|
||||||
|
|
||||||
class BadStoreConfiguration(GlanceException):
|
class BadStoreConfiguration(GlanceException):
|
||||||
message = ("Store %(store_name)s could not be configured correctly. "
|
message = _("Store %(store_name)s could not be configured correctly. "
|
||||||
"Reason: %(reason)s")
|
"Reason: %(reason)s")
|
||||||
|
|
||||||
|
|
||||||
class StoreDeleteNotSupported(GlanceException):
|
class StoreDeleteNotSupported(GlanceException):
|
||||||
message = ("Deleting images from this store is not supported.")
|
message = _("Deleting images from this store is not supported.")
|
||||||
|
|
||||||
|
|
||||||
class StoreAddDisabled(GlanceException):
|
class StoreAddDisabled(GlanceException):
|
||||||
message = ("Configuration for store failed. Adding images to this "
|
message = _("Configuration for store failed. Adding images to this "
|
||||||
"store is disabled.")
|
"store is disabled.")
|
||||||
|
@ -57,6 +57,8 @@ import os
|
|||||||
import unittest
|
import unittest
|
||||||
import sys
|
import sys
|
||||||
|
|
||||||
|
gettext.install('glance', unicode=1)
|
||||||
|
|
||||||
from nose import config
|
from nose import config
|
||||||
from nose import result
|
from nose import result
|
||||||
from nose import core
|
from nose import core
|
||||||
|
19
setup.py
19
setup.py
@ -14,12 +14,28 @@
|
|||||||
# See the License for the specific language governing permissions and
|
# See the License for the specific language governing permissions and
|
||||||
# limitations under the License.
|
# limitations under the License.
|
||||||
|
|
||||||
|
import gettext
|
||||||
import os
|
import os
|
||||||
import subprocess
|
import subprocess
|
||||||
|
|
||||||
from setuptools import setup, find_packages
|
from setuptools import setup, find_packages
|
||||||
from setuptools.command.sdist import sdist
|
from setuptools.command.sdist import sdist
|
||||||
|
|
||||||
|
# In order to run the i18n commands for compiling and
|
||||||
|
# installing message catalogs, we use DistUtilsExtra.
|
||||||
|
# Don't make this a hard requirement, but warn that
|
||||||
|
# i18n commands won't be available if DistUtilsExtra is
|
||||||
|
# not installed...
|
||||||
|
try:
|
||||||
|
from DistUtilsExtra.auto import setup
|
||||||
|
except ImportError:
|
||||||
|
from setuptools import setup
|
||||||
|
print "Warning: DistUtilsExtra required to use i18n builders. "
|
||||||
|
print "To build glance with support for message catalogs, you need "
|
||||||
|
print " https://launchpad.net/python-distutils-extra >= 2.18"
|
||||||
|
|
||||||
|
gettext.install('glance', unicode=1)
|
||||||
|
|
||||||
from glance import version
|
from glance import version
|
||||||
|
|
||||||
|
|
||||||
@ -110,4 +126,5 @@ setup(
|
|||||||
'bin/glance-manage',
|
'bin/glance-manage',
|
||||||
'bin/glance-registry',
|
'bin/glance-registry',
|
||||||
'bin/glance-scrubber',
|
'bin/glance-scrubber',
|
||||||
'bin/glance-upload'])
|
'bin/glance-upload'],
|
||||||
|
py_modules=[])
|
||||||
|
Loading…
Reference in New Issue
Block a user