summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--.gitignore1
-rw-r--r--doc/source/_templates/.placeholder0
-rw-r--r--doc/source/_theme/layout.html83
-rw-r--r--doc/source/_theme/theme.conf4
-rw-r--r--doc/source/architecture.rst2
-rw-r--r--doc/source/conf.py20
-rw-r--r--doc/source/man/keystone-all.rst2
-rw-r--r--doc/source/man/keystone-manage.rst2
-rw-r--r--keystone/assignment/backends/kvs.py2
-rw-r--r--keystone/assignment/backends/ldap.py2
-rw-r--r--keystone/assignment/backends/sql.py27
-rw-r--r--keystone/assignment/core.py15
-rw-r--r--keystone/common/dependency.py43
-rw-r--r--keystone/common/logging.py4
-rw-r--r--keystone/common/wsgi.py5
-rw-r--r--keystone/contrib/ec2/core.py4
-rw-r--r--keystone/identity/backends/kvs.py2
-rw-r--r--keystone/identity/backends/ldap.py12
-rw-r--r--keystone/identity/backends/pam.py2
-rw-r--r--keystone/identity/backends/sql.py4
-rw-r--r--keystone/identity/controllers.py10
-rw-r--r--keystone/identity/core.py10
-rw-r--r--keystone/locale/bg_BG/LC_MESSAGES/keystone.po366
-rw-r--r--keystone/locale/bs/LC_MESSAGES/keystone.po848
-rw-r--r--keystone/locale/ca/LC_MESSAGES/keystone.po368
-rw-r--r--keystone/locale/cs/LC_MESSAGES/keystone.po366
-rw-r--r--keystone/locale/da/LC_MESSAGES/keystone.po366
-rw-r--r--keystone/locale/de/LC_MESSAGES/keystone.po380
-rw-r--r--keystone/locale/en_AU/LC_MESSAGES/keystone.po847
-rw-r--r--keystone/locale/en_GB/LC_MESSAGES/keystone.po847
-rw-r--r--keystone/locale/en_US/LC_MESSAGES/keystone.po847
-rw-r--r--keystone/locale/es/LC_MESSAGES/keystone.po381
-rw-r--r--keystone/locale/fi_FI/LC_MESSAGES/keystone.po366
-rw-r--r--keystone/locale/fr/LC_MESSAGES/keystone.po366
-rw-r--r--keystone/locale/hr/LC_MESSAGES/keystone.po848
-rw-r--r--keystone/locale/hu/LC_MESSAGES/keystone.po368
-rw-r--r--keystone/locale/id/LC_MESSAGES/keystone.po847
-rw-r--r--keystone/locale/it/LC_MESSAGES/keystone.po381
-rw-r--r--keystone/locale/it_IT/LC_MESSAGES/keystone.po847
-rw-r--r--keystone/locale/ja/LC_MESSAGES/keystone.po368
-rw-r--r--keystone/locale/ka_GE/LC_MESSAGES/keystone.po366
-rw-r--r--keystone/locale/keystone.pot359
-rw-r--r--keystone/locale/ko/LC_MESSAGES/keystone.po847
-rw-r--r--keystone/locale/ko_KR/LC_MESSAGES/keystone.po366
-rw-r--r--keystone/locale/ms/LC_MESSAGES/keystone.po847
-rw-r--r--keystone/locale/nb/LC_MESSAGES/keystone.po847
-rw-r--r--keystone/locale/nl_NL/LC_MESSAGES/keystone.po847
-rw-r--r--keystone/locale/pl_PL/LC_MESSAGES/keystone.po366
-rw-r--r--keystone/locale/pt/LC_MESSAGES/keystone.po847
-rw-r--r--keystone/locale/pt_BR/LC_MESSAGES/keystone.po366
-rw-r--r--keystone/locale/ro/LC_MESSAGES/keystone.po366
-rw-r--r--keystone/locale/ru/LC_MESSAGES/keystone.po366
-rw-r--r--keystone/locale/ru_RU/LC_MESSAGES/keystone.po848
-rw-r--r--keystone/locale/sl_SI/LC_MESSAGES/keystone.po366
-rw-r--r--keystone/locale/sw_KE/LC_MESSAGES/keystone.po847
-rw-r--r--keystone/locale/tl/LC_MESSAGES/keystone.po847
-rw-r--r--keystone/locale/tr_TR/LC_MESSAGES/keystone.po847
-rw-r--r--keystone/locale/uk/LC_MESSAGES/keystone.po848
-rw-r--r--keystone/locale/vi_VN/LC_MESSAGES/keystone.po366
-rw-r--r--keystone/locale/zh_CN/LC_MESSAGES/keystone.po378
-rw-r--r--keystone/locale/zh_HK/LC_MESSAGES/keystone.po847
-rw-r--r--keystone/locale/zh_TW/LC_MESSAGES/keystone.po378
-rw-r--r--keystone/service.py13
-rw-r--r--keystone/test.py31
-rw-r--r--keystone/token/controllers.py10
-rw-r--r--keystone/token/providers/uuid.py4
-rw-r--r--keystone/trust/controllers.py18
-rw-r--r--test-requirements.txt3
-rw-r--r--tests/test_auth.py4
-rw-r--r--tests/test_backend.py32
-rw-r--r--tests/test_backend_sql.py2
-rw-r--r--tests/test_injection.py44
-rw-r--r--tests/test_keystoneclient.py17
-rw-r--r--tests/test_token_provider.py1
-rw-r--r--tests/test_v3.py3
-rw-r--r--tests/test_v3_identity.py32
-rw-r--r--tests/test_wsgi.py4
77 files changed, 22420 insertions, 1423 deletions
diff --git a/.gitignore b/.gitignore
index 5cce17d6..d4915b0b 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,5 +1,6 @@
*.pyc
*.swp
+*.egg/
vendor
.ksl-venv
.venv
diff --git a/doc/source/_templates/.placeholder b/doc/source/_templates/.placeholder
deleted file mode 100644
index e69de29b..00000000
--- a/doc/source/_templates/.placeholder
+++ /dev/null
diff --git a/doc/source/_theme/layout.html b/doc/source/_theme/layout.html
deleted file mode 100644
index 750b7822..00000000
--- a/doc/source/_theme/layout.html
+++ /dev/null
@@ -1,83 +0,0 @@
-{% extends "basic/layout.html" %}
-{% set css_files = css_files + ['_static/tweaks.css'] %}
-{% set script_files = script_files + ['_static/jquery.tweet.js'] %}
-
-{%- macro sidebar() %}
- {%- if not embedded %}{% if not theme_nosidebar|tobool %}
- <div class="sphinxsidebar">
- <div class="sphinxsidebarwrapper">
- {%- block sidebarlogo %}
- {%- if logo %}
- <p class="logo"><a href="{{ pathto(master_doc) }}">
- <img class="logo" src="{{ pathto('_static/' + logo, 1) }}" alt="Logo"/>
- </a></p>
- {%- endif %}
- {%- endblock %}
- {%- block sidebartoc %}
- {%- if display_toc %}
- <h3><a href="{{ pathto(master_doc) }}">{{ _('Table Of Contents') }}</a></h3>
- {{ toc }}
- {%- endif %}
- {%- endblock %}
- {%- block sidebarrel %}
- {%- if prev %}
- <h4>{{ _('Previous topic') }}</h4>
- <p class="topless"><a href="{{ prev.link|e }}"
- title="{{ _('previous chapter') }}">{{ prev.title }}</a></p>
- {%- endif %}
- {%- if next %}
- <h4>{{ _('Next topic') }}</h4>
- <p class="topless"><a href="{{ next.link|e }}"
- title="{{ _('next chapter') }}">{{ next.title }}</a></p>
- {%- endif %}
- {%- endblock %}
- {%- block sidebarsourcelink %}
- {%- if show_source and has_source and sourcename %}
- <h3>{{ _('This Page') }}</h3>
- <ul class="this-page-menu">
- <li><a href="{{ pathto('_sources/' + sourcename, true)|e }}"
- rel="nofollow">{{ _('Show Source') }}</a></li>
- </ul>
- {%- endif %}
- {%- endblock %}
- {%- if customsidebar %}
- {% include customsidebar %}
- {%- endif %}
- {%- block sidebarsearch %}
- {%- if pagename != "search" %}
- <div id="searchbox" style="display: none">
- <h3>{{ _('Quick search') }}</h3>
- <form class="search" action="{{ pathto('search') }}" method="get">
- <input type="text" name="q" size="18" />
- <input type="submit" value="{{ _('Go') }}" />
- <input type="hidden" name="check_keywords" value="yes" />
- <input type="hidden" name="area" value="default" />
- </form>
- <p class="searchtip" style="font-size: 90%">
- {{ _('Enter search terms or a module, class or function name.') }}
- </p>
- </div>
- <script type="text/javascript">$('#searchbox').show(0);</script>
- {%- endif %}
- {%- endblock %}
- </div>
- </div>
- {%- endif %}{% endif %}
-{%- endmacro %}
-
-{% block relbar1 %}{% endblock relbar1 %}
-
-{% block header %}
- <div id="header">
- <h1 id="logo"><a href="http://www.openstack.org/">OpenStack</a></h1>
- <ul id="navigation">
- <li><a href="http://www.openstack.org/" title="Go to the Home page" class="link">Home</a></li>
- <li><a href="http://www.openstack.org/projects/" title="Go to the OpenStack Projects page">Projects</a></li>
- <li><a href="http://www.openstack.org/user-stories/" title="Go to the User Stories page" class="link">User Stories</a></li>
- <li><a href="http://www.openstack.org/community/" title="Go to the Community page" class="link">Community</a></li>
- <li><a href="http://www.openstack.org/blog/" title="Go to the OpenStack Blog">Blog</a></li>
- <li><a href="http://wiki.openstack.org/" title="Go to the OpenStack Wiki">Wiki</a></li>
- <li><a href="http://docs.openstack.org/" title="Go to OpenStack Documentation" class="current">Documentation</a></li>
- </ul>
- </div>
-{% endblock %} \ No newline at end of file
diff --git a/doc/source/_theme/theme.conf b/doc/source/_theme/theme.conf
deleted file mode 100644
index 1cc40044..00000000
--- a/doc/source/_theme/theme.conf
+++ /dev/null
@@ -1,4 +0,0 @@
-[theme]
-inherit = basic
-stylesheet = nature.css
-pygments_style = tango
diff --git a/doc/source/architecture.rst b/doc/source/architecture.rst
index 7ffaea4b..c3ddf0ce 100644
--- a/doc/source/architecture.rst
+++ b/doc/source/architecture.rst
@@ -178,7 +178,7 @@ interpolation)::
LDAP Backend
------------
-The LDAP backend stored Users and Tenents in separate Subtrees. Roles are recorded
+The LDAP backend stored Users and Tenants in separate Subtrees. Roles are recorded
as entries under the Tenants.
diff --git a/doc/source/conf.py b/doc/source/conf.py
index 293edf44..cd585d68 100644
--- a/doc/source/conf.py
+++ b/doc/source/conf.py
@@ -28,21 +28,19 @@ sys.path.insert(0, os.path.abspath('../..'))
# Add any Sphinx extension module names here, as strings. They can be
# extensions coming with Sphinx (named 'sphinx.ext.*') or your custom
# ones.
-#extensions = ['sphinx.ext.autodoc', 'sphinx.ext.intersphinx',
-# 'sphinx.ext.todo', 'sphinx.ext.coverage']
extensions = ['sphinx.ext.autodoc',
'sphinx.ext.todo',
- # 'sphinx.ect.intersphinx',
- 'sphinx.ext.coverage']
+ 'sphinx.ext.coverage',
+ 'oslo.sphinx',
+ ]
todo_include_todos = True
# Add any paths that contain templates here, relative to this directory.
-templates_path = []
-if os.getenv('HUDSON_PUBLISH_DOCS'):
- templates_path = ['_ga', '_templates']
-else:
- templates_path = ['_templates']
+# if os.getenv('HUDSON_PUBLISH_DOCS'):
+# templates_path = ['_ga', '_templates']
+# else:
+# templates_path = ['_templates']
# The suffix of source filenames.
source_suffix = '.rst'
@@ -109,8 +107,8 @@ man_pages = [
# The theme to use for HTML and HTML Help pages. See the documentation for
# a list of builtin themes.
-html_theme_path = ["."]
-html_theme = '_theme'
+# html_theme_path = ["."]
+# html_theme = '_theme'
# Theme options are theme-specific and customize the look and feel of a theme
# further. For a list of options available for each theme, see the
diff --git a/doc/source/man/keystone-all.rst b/doc/source/man/keystone-all.rst
index 9b0859d9..76d5ab1f 100644
--- a/doc/source/man/keystone-all.rst
+++ b/doc/source/man/keystone-all.rst
@@ -6,7 +6,7 @@ keystone-all
Keystone Startup Command
------------------------
-:Author: openstack@lists.launchpad.net
+:Author: openstack@lists.openstack.org
:Date: 2010-11-16
:Copyright: OpenStack LLC
:Version: 2012.1
diff --git a/doc/source/man/keystone-manage.rst b/doc/source/man/keystone-manage.rst
index 84a3ec9f..1da4b40a 100644
--- a/doc/source/man/keystone-manage.rst
+++ b/doc/source/man/keystone-manage.rst
@@ -6,7 +6,7 @@ keystone-manage
Keystone Management Utility
---------------------------
-:Author: openstack@lists.launchpad.net
+:Author: openstack@lists.openstack.org
:Date: 2010-11-16
:Copyright: OpenStack LLC
:Version: 2012.1
diff --git a/keystone/assignment/backends/kvs.py b/keystone/assignment/backends/kvs.py
index 4dfd908f..30d7b2eb 100644
--- a/keystone/assignment/backends/kvs.py
+++ b/keystone/assignment/backends/kvs.py
@@ -16,11 +16,13 @@
from keystone import assignment
from keystone import clean
+from keystone.common import dependency
from keystone.common import kvs
from keystone import exception
from keystone import identity
+@dependency.requires('identity_api')
class Assignment(kvs.Base, assignment.Driver):
def __init__(self):
super(Assignment, self).__init__()
diff --git a/keystone/assignment/backends/ldap.py b/keystone/assignment/backends/ldap.py
index f8c81eae..9b273e40 100644
--- a/keystone/assignment/backends/ldap.py
+++ b/keystone/assignment/backends/ldap.py
@@ -21,6 +21,7 @@ import ldap as ldap
from keystone import assignment
from keystone import clean
+from keystone.common import dependency
from keystone.common import ldap as common_ldap
from keystone.common import logging
from keystone.common import models
@@ -39,6 +40,7 @@ DEFAULT_DOMAIN = {
}
+@dependency.requires('identity_api')
class Assignment(assignment.Driver):
def __init__(self):
super(Assignment, self).__init__()
diff --git a/keystone/assignment/backends/sql.py b/keystone/assignment/backends/sql.py
index 5ec435ff..cd2a0a5c 100644
--- a/keystone/assignment/backends/sql.py
+++ b/keystone/assignment/backends/sql.py
@@ -16,15 +16,14 @@
from keystone import assignment
from keystone import clean
+from keystone.common import dependency
from keystone.common import sql
from keystone.common.sql import migration
from keystone import exception
+@dependency.requires('identity_api')
class Assignment(sql.Base, assignment.Driver):
- def __init__(self):
- super(Assignment, self).__init__()
- self.identity_api = None
# Internal interface to manage the database
def db_sync(self, version=None):
@@ -657,9 +656,10 @@ class Domain(sql.ModelBase, sql.DictBase):
__tablename__ = 'domain'
attributes = ['id', 'name', 'enabled']
id = sql.Column(sql.String(64), primary_key=True)
- name = sql.Column(sql.String(64), unique=True, nullable=False)
- enabled = sql.Column(sql.Boolean, default=True)
+ name = sql.Column(sql.String(64), nullable=False)
+ enabled = sql.Column(sql.Boolean, default=True, nullable=False)
extra = sql.Column(sql.JsonBlob())
+ __table_args__ = (sql.UniqueConstraint('name'), {})
class Project(sql.ModelBase, sql.DictBase):
@@ -681,8 +681,9 @@ class Role(sql.ModelBase, sql.DictBase):
__tablename__ = 'role'
attributes = ['id', 'name']
id = sql.Column(sql.String(64), primary_key=True)
- name = sql.Column(sql.String(64), unique=True, nullable=False)
+ name = sql.Column(sql.String(255), nullable=False)
extra = sql.Column(sql.JsonBlob())
+ __table_args__ = (sql.UniqueConstraint('name'), {})
class BaseGrant(sql.DictBase):
@@ -720,9 +721,8 @@ class BaseGrant(sql.DictBase):
class UserProjectGrant(sql.ModelBase, BaseGrant):
__tablename__ = 'user_project_metadata'
- user_id = sql.Column(sql.String(64),
- primary_key=True)
- project_id = sql.Column(sql.String(64),
+ user_id = sql.Column(sql.String(64), primary_key=True)
+ project_id = sql.Column(sql.String(64), sql.ForeignKey('project.id'),
primary_key=True)
data = sql.Column(sql.JsonBlob())
@@ -730,19 +730,22 @@ class UserProjectGrant(sql.ModelBase, BaseGrant):
class UserDomainGrant(sql.ModelBase, BaseGrant):
__tablename__ = 'user_domain_metadata'
user_id = sql.Column(sql.String(64), primary_key=True)
- domain_id = sql.Column(sql.String(64), primary_key=True)
+ domain_id = sql.Column(sql.String(64), sql.ForeignKey('domain.id'),
+ primary_key=True)
data = sql.Column(sql.JsonBlob())
class GroupProjectGrant(sql.ModelBase, BaseGrant):
__tablename__ = 'group_project_metadata'
group_id = sql.Column(sql.String(64), primary_key=True)
- project_id = sql.Column(sql.String(64), primary_key=True)
+ project_id = sql.Column(sql.String(64), sql.ForeignKey('project.id'),
+ primary_key=True)
data = sql.Column(sql.JsonBlob())
class GroupDomainGrant(sql.ModelBase, BaseGrant):
__tablename__ = 'group_domain_metadata'
group_id = sql.Column(sql.String(64), primary_key=True)
- domain_id = sql.Column(sql.String(64), primary_key=True)
+ domain_id = sql.Column(sql.String(64), sql.ForeignKey('domain.id'),
+ primary_key=True)
data = sql.Column(sql.JsonBlob())
diff --git a/keystone/assignment/core.py b/keystone/assignment/core.py
index b71e2a18..64edb3fa 100644
--- a/keystone/assignment/core.py
+++ b/keystone/assignment/core.py
@@ -35,6 +35,7 @@ DEFAULT_DOMAIN = {'description':
@dependency.provider('assignment_api')
+@dependency.requires('identity_api')
class Manager(manager.Manager):
"""Default pivot point for the Assignment backend.
@@ -45,18 +46,14 @@ class Manager(manager.Manager):
api object by both managers.
"""
- def __init__(self, identity_api=None):
- if identity_api is None:
- from keystone import identity
- identity_api = identity.Manager(self)
-
+ def __init__(self):
assignment_driver = CONF.assignment.driver
+
if assignment_driver is None:
- assignment_driver = identity_api.default_assignment_driver()
+ identity_driver = dependency.REGISTRY['identity_api'].driver
+ assignment_driver = identity_driver.default_assignment_driver()
+
super(Manager, self).__init__(assignment_driver)
- self.driver.identity_api = identity_api
- self.identity_api = identity_api
- self.identity_api.assignment_api = self
def get_roles_for_user_and_project(self, user_id, tenant_id):
"""Get the roles associated with a user within given project.
diff --git a/keystone/common/dependency.py b/keystone/common/dependency.py
index dc3e4ac4..a640031d 100644
--- a/keystone/common/dependency.py
+++ b/keystone/common/dependency.py
@@ -16,6 +16,8 @@
REGISTRY = {}
+_future_dependencies = {}
+
class UnresolvableDependencyException(Exception):
def __init__(self, name):
@@ -32,6 +34,8 @@ def provider(name):
init(self, *args, **kwargs)
REGISTRY[name] = self
+ resolve_future_dependencies(name)
+
return __wrapped_init__
cls.__init__ = wrapped(cls.__init__)
@@ -48,7 +52,13 @@ def requires(*dependencies):
for dependency in self._dependencies:
if dependency not in REGISTRY:
- raise UnresolvableDependencyException(dependency)
+ if dependency in _future_dependencies:
+ _future_dependencies[dependency] += [self]
+ else:
+ _future_dependencies[dependency] = [self]
+
+ continue
+
setattr(self, dependency, REGISTRY[dependency])
def wrapped(cls):
@@ -65,3 +75,34 @@ def requires(*dependencies):
return cls
return wrapped
+
+
+def resolve_future_dependencies(provider_name=None):
+ if provider_name:
+ targets = _future_dependencies.pop(provider_name, [])
+
+ for target in targets:
+ setattr(target, provider_name, REGISTRY[provider_name])
+
+ return
+
+ try:
+ for dependency, targets in _future_dependencies.iteritems():
+ if dependency not in REGISTRY:
+ raise UnresolvableDependencyException(dependency)
+
+ for target in targets:
+ setattr(target, dependency, REGISTRY[dependency])
+ finally:
+ _future_dependencies.clear()
+
+
+def reset():
+ """Reset the registry of providers.
+
+ This is useful for unit testing to ensure that tests don't use providers
+ from previous tests.
+ """
+
+ REGISTRY.clear()
+ _future_dependencies.clear()
diff --git a/keystone/common/logging.py b/keystone/common/logging.py
index 8c036f02..d221edb7 100644
--- a/keystone/common/logging.py
+++ b/keystone/common/logging.py
@@ -23,7 +23,6 @@ import logging
import logging.config
import logging.handlers
import pprint
-import traceback
# A list of things we want to replicate from logging.
@@ -78,8 +77,7 @@ def fail_gracefully(f):
try:
return f(*args, **kw)
except Exception as e:
- # tracebacks are kept in the debug log
- logging.debug(traceback.format_exc(e))
+ logging.debug(e, exc_info=True)
# exception message is printed to all logs
logging.critical(e)
diff --git a/keystone/common/wsgi.py b/keystone/common/wsgi.py
index 381f1ff0..f47cde13 100644
--- a/keystone/common/wsgi.py
+++ b/keystone/common/wsgi.py
@@ -203,7 +203,7 @@ class BaseApplication(object):
class Application(BaseApplication):
- @webob.dec.wsgify
+ @webob.dec.wsgify(RequestClass=Request)
def __call__(self, req):
arg_dict = req.environ['wsgiorg.routing_args'][1]
action = arg_dict.pop('action')
@@ -283,8 +283,7 @@ class Application(BaseApplication):
def assert_admin(self, context):
if not context['is_admin']:
try:
- user_token_ref = self.token_api.get_token(
- token_id=context['token_id'])
+ user_token_ref = self.token_api.get_token(context['token_id'])
except exception.TokenNotFound as e:
raise exception.Unauthorized(e)
diff --git a/keystone/contrib/ec2/core.py b/keystone/contrib/ec2/core.py
index adba7e74..8f72e431 100644
--- a/keystone/contrib/ec2/core.py
+++ b/keystone/contrib/ec2/core.py
@@ -188,9 +188,7 @@ class Ec2Controller(controller.V2Controller):
for role_id in roles]
catalog_ref = self.catalog_api.get_catalog(
- user_id=user_ref['id'],
- tenant_id=tenant_ref['id'],
- metadata=metadata_ref)
+ user_ref['id'], tenant_ref['id'], metadata_ref)
auth_token_data = dict(user=user_ref,
tenant=tenant_ref,
diff --git a/keystone/identity/backends/kvs.py b/keystone/identity/backends/kvs.py
index 83535108..0323d3d0 100644
--- a/keystone/identity/backends/kvs.py
+++ b/keystone/identity/backends/kvs.py
@@ -28,7 +28,7 @@ class Identity(kvs.Base, identity.Driver):
return "keystone.assignment.backends.kvs.Assignment"
# Public interface
- def authenticate(self, user_id=None, password=None):
+ def authenticate(self, user_id, password):
user_ref = None
try:
user_ref = self._get_user(user_id)
diff --git a/keystone/identity/backends/ldap.py b/keystone/identity/backends/ldap.py
index 7f5cedc3..91ea1e41 100644
--- a/keystone/identity/backends/ldap.py
+++ b/keystone/identity/backends/ldap.py
@@ -19,6 +19,7 @@ import uuid
import ldap
from keystone import clean
+from keystone.common import dependency
from keystone.common import ldap as common_ldap
from keystone.common import logging
from keystone.common import models
@@ -38,6 +39,7 @@ DEFAULT_DOMAIN = {
}
+@dependency.requires('assignment_api')
class Identity(identity.Driver):
def __init__(self):
super(Identity, self).__init__()
@@ -52,7 +54,7 @@ class Identity(identity.Driver):
def create_project(self, project_id, project):
return self.assignment_api.create_project(project_id, project)
- def authenticate(self, user_id=None, password=None):
+ def authenticate(self, user_id, password):
try:
user_ref = self._get_user(user_id)
except exception.UserNotFound:
@@ -77,7 +79,8 @@ class Identity(identity.Driver):
return self.assignment_api._set_default_domain(ref)
def list_users(self):
- return self.assignment_api._set_default_domain(self.user.get_all())
+ return (self.assignment_api._set_default_domain
+ (self.user.get_all_filtered()))
def get_user_by_name(self, user_name, domain_id):
self.assignment_api._validate_default_domain_id(domain_id)
@@ -181,7 +184,7 @@ class Identity(identity.Driver):
for user_dn in self.group.list_group_users(group_id):
user_id = self.user._dn_to_id(user_dn)
try:
- users.append(self.user.get(user_id))
+ users.append(self.user.get_filtered(user_id))
except exception.UserNotFound:
LOG.debug(_("Group member '%(user_dn)s' not found in"
" '%(group_id)s'. The user should be removed"
@@ -264,6 +267,9 @@ class UserApi(common_ldap.EnabledEmuMixIn, common_ldap.BaseLdap):
user = self.get(user_id)
return identity.filter_user(user)
+ def get_all_filtered(self):
+ return [identity.filter_user(user) for user in self.get_all()]
+
class GroupApi(common_ldap.BaseLdap):
DEFAULT_OU = 'ou=UserGroups'
diff --git a/keystone/identity/backends/pam.py b/keystone/identity/backends/pam.py
index 5cfa5b16..2a6ee621 100644
--- a/keystone/identity/backends/pam.py
+++ b/keystone/identity/backends/pam.py
@@ -58,7 +58,7 @@ class PamIdentity(identity.Driver):
Tenant is always the same as User, root user has admin role.
"""
- def authenticate(self, user_id=None, password=None):
+ def authenticate(self, user_id, password):
auth = pam.authenticate if pam else PAM_authenticate
if not auth(user_id, password):
raise AssertionError('Invalid user / password')
diff --git a/keystone/identity/backends/sql.py b/keystone/identity/backends/sql.py
index 2c00088e..bff41106 100644
--- a/keystone/identity/backends/sql.py
+++ b/keystone/identity/backends/sql.py
@@ -14,6 +14,7 @@
# License for the specific language governing permissions and limitations
# under the License.
+from keystone.common import dependency
from keystone.common import sql
from keystone.common.sql import migration
from keystone.common import utils
@@ -61,6 +62,7 @@ class UserGroupMembership(sql.ModelBase, sql.DictBase):
primary_key=True)
+@dependency.requires('assignment_api')
class Identity(sql.Base, identity.Driver):
def default_assignment_driver(self):
return "keystone.assignment.backends.sql.Assignment"
@@ -84,7 +86,7 @@ class Identity(sql.Base, identity.Driver):
return utils.check_password(password, user_ref.password)
# Identity interface
- def authenticate(self, user_id=None, password=None):
+ def authenticate(self, user_id, password):
session = self.get_session()
user_ref = None
try:
diff --git a/keystone/identity/controllers.py b/keystone/identity/controllers.py
index 12fb8145..7ca1f8bf 100644
--- a/keystone/identity/controllers.py
+++ b/keystone/identity/controllers.py
@@ -403,6 +403,8 @@ class DomainV3(controller.V3Controller):
@controller.protected
def create_domain(self, context, domain):
+ self._require_attribute(domain, 'name')
+
ref = self._assign_unique_id(self._normalize_dict(domain))
ref = self.identity_api.create_domain(ref['id'], ref)
return DomainV3.wrap_member(context, ref)
@@ -544,6 +546,8 @@ class ProjectV3(controller.V3Controller):
@controller.protected
def create_project(self, context, project):
+ self._require_attribute(project, 'name')
+
ref = self._assign_unique_id(self._normalize_dict(project))
ref = self._normalize_domain_id(context, ref)
ref = self.identity_api.create_project(ref['id'], ref)
@@ -592,6 +596,8 @@ class UserV3(controller.V3Controller):
@controller.protected
def create_user(self, context, user):
+ self._require_attribute(user, 'name')
+
ref = self._assign_unique_id(self._normalize_dict(user))
ref = self._normalize_domain_id(context, ref)
ref = self.identity_api.create_user(ref['id'], ref)
@@ -663,6 +669,8 @@ class GroupV3(controller.V3Controller):
@controller.protected
def create_group(self, context, group):
+ self._require_attribute(group, 'name')
+
ref = self._assign_unique_id(self._normalize_dict(group))
ref = self._normalize_domain_id(context, ref)
ref = self.identity_api.create_group(ref['id'], ref)
@@ -713,6 +721,8 @@ class RoleV3(controller.V3Controller):
@controller.protected
def create_role(self, context, role):
+ self._require_attribute(role, 'name')
+
ref = self._assign_unique_id(self._normalize_dict(role))
ref = self.identity_api.create_role(ref['id'], ref)
return RoleV3.wrap_member(context, ref)
diff --git a/keystone/identity/core.py b/keystone/identity/core.py
index b3efc0a7..b2b3eaf0 100644
--- a/keystone/identity/core.py
+++ b/keystone/identity/core.py
@@ -16,7 +16,6 @@
"""Main entry point into the Identity service."""
-from keystone import assignment
from keystone import clean
from keystone.common import dependency
from keystone.common import logging
@@ -53,6 +52,7 @@ def filter_user(user_ref):
@dependency.provider('identity_api')
+@dependency.requires('assignment_api')
class Manager(manager.Manager):
"""Default pivot point for the Identity backend.
@@ -61,12 +61,8 @@ class Manager(manager.Manager):
"""
- def __init__(self, assignment_api=None):
+ def __init__(self):
super(Manager, self).__init__(CONF.identity.driver)
- if assignment_api is None:
- assignment_api = assignment.Manager(self)
- self.assignment_api = assignment_api
- self.driver.assignment_api = assignment_api
def create_user(self, user_id, user_ref):
user = user_ref.copy()
@@ -216,7 +212,7 @@ class Manager(manager.Manager):
class Driver(object):
"""Interface description for an Identity driver."""
- def authenticate_user(self, user_id, password):
+ def authenticate(self, user_id, password):
"""Authenticate a given user and password.
:returns: user_ref
:raises: AssertionError
diff --git a/keystone/locale/bg_BG/LC_MESSAGES/keystone.po b/keystone/locale/bg_BG/LC_MESSAGES/keystone.po
index ef61d876..c6890424 100644
--- a/keystone/locale/bg_BG/LC_MESSAGES/keystone.po
+++ b/keystone/locale/bg_BG/LC_MESSAGES/keystone.po
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Keystone\n"
"Report-Msgid-Bugs-To: https://bugs.launchpad.net/keystone\n"
-"POT-Creation-Date: 2013-07-11 17:05+0000\n"
+"POT-Creation-Date: 2013-08-02 17:05+0000\n"
"PO-Revision-Date: 2013-05-17 16:06+0000\n"
"Last-Translator: openstackjenkins <jenkins@openstack.org>\n"
"Language-Team: Bulgarian (Bulgaria) "
@@ -16,7 +16,7 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"Generated-By: Babel 0.9.6\n"
+"Generated-By: Babel 1.3\n"
#: keystone/clean.py:23
#, python-format
@@ -38,78 +38,224 @@ msgstr ""
msgid "%(property_name)s is not a %(display_expected_type)s"
msgstr ""
-#: keystone/test.py:106
+#: keystone/exception.py:48
+msgid "missing exception kwargs (programmer error)"
+msgstr ""
+
+#: keystone/exception.py:65
+#, python-format
+msgid ""
+"Expecting to find %(attribute)s in %(target)s. The server could not "
+"comply with the request since it is either malformed or otherwise "
+"incorrect. The client is assumed to be in error."
+msgstr ""
+
+#: keystone/exception.py:74
+#, python-format
+msgid ""
+"String length exceeded.The length of string '%(string)s' exceeded the "
+"limit of column %(type)s(CHAR(%(length)d))."
+msgstr ""
+
+#: keystone/exception.py:80
+#, python-format
+msgid ""
+"Request attribute %(attribute)s must be less than or equal to %(size)i. "
+"The server could not comply with the request because the attribute size "
+"is invalid (too large). The client is assumed to be in error."
+msgstr ""
+
+#: keystone/exception.py:101
+msgid "The request you have made requires authentication."
+msgstr ""
+
+#: keystone/exception.py:107
+msgid "Authentication plugin error."
+msgstr ""
+
+#: keystone/exception.py:115
+msgid "Attempted to authenticate with an unsupported method."
+msgstr ""
+
+#: keystone/exception.py:123
+msgid "Additional authentications steps required."
+msgstr ""
+
+#: keystone/exception.py:131
+msgid "You are not authorized to perform the requested action."
+msgstr ""
+
+#: keystone/exception.py:138
+#, python-format
+msgid "You are not authorized to perform the requested action, %(action)s."
+msgstr ""
+
+#: keystone/exception.py:143
+#, python-format
+msgid "Could not find, %(target)s."
+msgstr ""
+
+#: keystone/exception.py:149
+#, python-format
+msgid "Could not find endpoint, %(endpoint_id)s."
+msgstr ""
+
+#: keystone/exception.py:156
+msgid "An unhandled exception has occurred: Could not find metadata."
+msgstr ""
+
+#: keystone/exception.py:161
+#, python-format
+msgid "Could not find policy, %(policy_id)s."
+msgstr ""
+
+#: keystone/exception.py:165
+#, python-format
+msgid "Could not find role, %(role_id)s."
+msgstr ""
+
+#: keystone/exception.py:169
+#, python-format
+msgid "Could not find service, %(service_id)s."
+msgstr ""
+
+#: keystone/exception.py:173
+#, python-format
+msgid "Could not find domain, %(domain_id)s."
+msgstr ""
+
+#: keystone/exception.py:177
+#, python-format
+msgid "Could not find project, %(project_id)s."
+msgstr ""
+
+#: keystone/exception.py:181
+#, python-format
+msgid "Could not find token, %(token_id)s."
+msgstr ""
+
+#: keystone/exception.py:185
+#, python-format
+msgid "Could not find user, %(user_id)s."
+msgstr ""
+
+#: keystone/exception.py:189
+#, python-format
+msgid "Could not find group, %(group_id)s."
+msgstr ""
+
+#: keystone/exception.py:193
+#, python-format
+msgid "Could not find trust, %(trust_id)s."
+msgstr ""
+
+#: keystone/exception.py:197
+#, python-format
+msgid "Could not find credential, %(credential_id)s."
+msgstr ""
+
+#: keystone/exception.py:201
+#, python-format
+msgid "Could not find version, %(version)s."
+msgstr ""
+
+#: keystone/exception.py:205
+#, python-format
+msgid "Conflict occurred attempting to store %(type)s. %(details)s"
+msgstr ""
+
+#: keystone/exception.py:212
+msgid "Request is too large."
+msgstr ""
+
+#: keystone/exception.py:218
+#, python-format
+msgid ""
+"An unexpected error prevented the server from fulfilling your request. "
+"%(exception)s"
+msgstr ""
+
+#: keystone/exception.py:225
+#, python-format
+msgid "Malformed endpoint URL (%(endpoint)s), see ERROR log for details."
+msgstr ""
+
+#: keystone/exception.py:230
+msgid "The action you have requested has not been implemented."
+msgstr ""
+
+#: keystone/exception.py:237
+#, python-format
+msgid "The Keystone paste configuration file %(config_file)s could not be found."
+msgstr ""
+
+#: keystone/test.py:117
#, python-format
msgid "Failed to checkout %s"
msgstr ""
-#: keystone/assignment/backends/ldap.py:110
+#: keystone/assignment/core.py:529
#, python-format
msgid "Expected dict or list: %s"
msgstr ""
-#: keystone/assignment/backends/ldap.py:456
-#: keystone/identity/backends/ldap.py:433
+#: keystone/assignment/backends/kvs.py:138
+#: keystone/assignment/backends/sql.py:285
#, python-format
-msgid "Role %s not found"
+msgid "Cannot remove role that has not been granted, %s"
msgstr ""
-#: keystone/assignment/backends/sql.py:244
+#: keystone/assignment/backends/ldap.py:418
#, python-format
-msgid "Cannot remove role that has not been granted, %s"
+msgid "Role %s not found"
msgstr ""
-#: keystone/auth/controllers.py:72
+#: keystone/assignment/backends/sql.py:114
+msgid "Inherited roles can only be assigned to domains"
+msgstr ""
+
+#: keystone/auth/controllers.py:71
#, python-format
msgid "Project is disabled: %s"
msgstr ""
-#: keystone/auth/controllers.py:78 keystone/auth/plugins/password.py:38
+#: keystone/auth/controllers.py:77 keystone/auth/plugins/password.py:38
#, python-format
msgid "Domain is disabled: %s"
msgstr ""
-#: keystone/auth/controllers.py:84 keystone/auth/plugins/password.py:44
+#: keystone/auth/controllers.py:83 keystone/auth/plugins/password.py:44
#, python-format
msgid "User is disabled: %s"
msgstr ""
-#: keystone/auth/controllers.py:259
+#: keystone/auth/controllers.py:262
msgid "Scoping to both domain and project is not allowed"
msgstr ""
-#: keystone/auth/controllers.py:262
+#: keystone/auth/controllers.py:265
msgid "Scoping to both domain and trust is not allowed"
msgstr ""
-#: keystone/auth/controllers.py:265
+#: keystone/auth/controllers.py:268
msgid "Scoping to both project and trust is not allowed"
msgstr ""
-#: keystone/auth/controllers.py:325
-#, python-format
-msgid "Unable to lookup user %s"
-msgstr ""
-
-#: keystone/auth/controllers.py:355
+#: keystone/auth/controllers.py:353
msgid "User not found"
msgstr ""
-#: keystone/auth/token_factory.py:79
-msgid "User have no access to project"
-msgstr ""
-
-#: keystone/auth/token_factory.py:94
-msgid "User have no access to domain"
+#: keystone/auth/plugins/external.py:36 keystone/auth/plugins/external.py:66
+msgid "No authenticated user"
msgstr ""
-#: keystone/auth/token_factory.py:311 keystone/token/controllers.py:119
-msgid "Unable to sign token."
+#: keystone/auth/plugins/external.py:49 keystone/auth/plugins/external.py:86
+#, python-format
+msgid "Unable to lookup user %s"
msgstr ""
-#: keystone/auth/token_factory.py:314 keystone/token/controllers.py:122
-#, python-format
-msgid "Invalid value for token_format: %s. Allowed values are PKI or UUID."
+#: keystone/auth/plugins/password.py:112
+msgid "Invalid username or password"
msgstr ""
#: keystone/catalog/core.py:38
@@ -170,32 +316,32 @@ msgstr ""
msgid "RBAC: Invalid token"
msgstr ""
-#: keystone/common/controller.py:35 keystone/common/controller.py:56
+#: keystone/common/controller.py:39 keystone/common/controller.py:60
msgid "RBAC: Invalid user"
msgstr ""
-#: keystone/common/controller.py:41
+#: keystone/common/controller.py:45
msgid "RBAC: Proceeding without project"
msgstr ""
-#: keystone/common/controller.py:61
+#: keystone/common/controller.py:65
msgid "RBAC: Proceeding without tenant"
msgstr ""
-#: keystone/common/controller.py:91 keystone/common/controller.py:142
+#: keystone/common/controller.py:95 keystone/common/controller.py:146
msgid "RBAC: Bypassing authorization"
msgstr ""
-#: keystone/common/controller.py:100 keystone/common/controller.py:140
+#: keystone/common/controller.py:104 keystone/common/controller.py:144
msgid "RBAC: Authorization granted"
msgstr ""
-#: keystone/common/controller.py:130
+#: keystone/common/controller.py:134
#, python-format
msgid "RBAC: Adding query filter params (%s)"
msgstr ""
-#: keystone/common/controller.py:318
+#: keystone/common/controller.py:322
msgid "Invalid token in normalize_domain_id"
msgstr ""
@@ -206,17 +352,48 @@ msgid ""
"listening on that port."
msgstr ""
-#: keystone/common/wsgi.py:162
+#: keystone/common/wsgi.py:95
+msgid "No bind information present in token"
+msgstr ""
+
+#: keystone/common/wsgi.py:99
+#, python-format
+msgid "Named bind mode %s not in bind information"
+msgstr ""
+
+#: keystone/common/wsgi.py:105
+msgid "Kerberos credentials required and not present"
+msgstr ""
+
+#: keystone/common/wsgi.py:109
+msgid "Kerberos credentials do not match those in bind"
+msgstr ""
+
+#: keystone/common/wsgi.py:112
+msgid "Kerberos bind authentication successful"
+msgstr ""
+
+#: keystone/common/wsgi.py:115
+#, python-format
+msgid "Ignoring unknown bind for permissive mode: {%(bind_type)s: %(identifier)s}"
+msgstr ""
+
+#: keystone/common/wsgi.py:119
+#, python-format
+msgid "Couldn't verify unknown bind: {%(bind_type)s: %(identifier)s}"
+msgstr ""
+
+#: keystone/common/wsgi.py:211
#, python-format
msgid "arg_dict: %s"
msgstr ""
-#: keystone/common/wsgi.py:188
+#: keystone/common/wsgi.py:243
#, python-format
msgid "Authorization failed. %(exception)s from %(remote_addr)s"
msgstr ""
-#: keystone/common/wsgi.py:431
+#: keystone/common/wsgi.py:487
msgid "The resource could not be found."
msgstr ""
@@ -457,11 +634,11 @@ msgstr ""
msgid "Search scope %s not implemented."
msgstr ""
-#: keystone/common/sql/core.py:126
+#: keystone/common/sql/core.py:119
msgid "Global engine callback raised."
msgstr ""
-#: keystone/common/sql/core.py:240
+#: keystone/common/sql/core.py:233
#, python-format
msgid "Got mysql server has gone away: %s"
msgstr ""
@@ -510,7 +687,7 @@ msgstr ""
msgid "Creating ec2 cred for user %(user_id)s and tenant %(tenant_id)s"
msgstr ""
-#: keystone/identity/controllers.py:878
+#: keystone/identity/controllers.py:952
#, python-format
msgid ""
"Group %(group)s not found for role-assignment - %(target)s with Role: "
@@ -521,18 +698,18 @@ msgstr ""
msgid "User not found in group"
msgstr ""
-#: keystone/identity/backends/ldap.py:192
+#: keystone/identity/backends/ldap.py:189
#, python-format
msgid ""
"Group member '%(user_dn)s' not found in '%(group_id)s'. The user should "
"be removed from the group. The user will be ignored."
msgstr ""
-#: keystone/identity/backends/ldap.py:621
+#: keystone/identity/backends/ldap.py:334
msgid "Changing Name not supported by LDAP"
msgstr ""
-#: keystone/identity/backends/ldap.py:634
+#: keystone/identity/backends/ldap.py:347
#, python-format
msgid "User %(user_id)s is already a member of group %(group_id)s"
msgstr ""
@@ -552,26 +729,56 @@ msgstr ""
msgid "Failed to understand rule %(rule)r"
msgstr ""
+#: keystone/openstack/common/crypto/utils.py:29
+msgid "An unknown error occurred in crypto utils."
+msgstr ""
+
+#: keystone/openstack/common/crypto/utils.py:36
+#, python-format
+msgid "Block size of %(given)d is too big, max = %(maximum)d"
+msgstr ""
+
+#: keystone/openstack/common/crypto/utils.py:45
+#, python-format
+msgid "Length of %(given)d is too long, max = %(maximum)d"
+msgstr ""
+
#: keystone/policy/backends/rules.py:93
#, python-format
msgid "enforce %(action)s: %(credentials)s"
msgstr ""
-#: keystone/token/controllers.py:396
+#: keystone/token/controllers.py:378
#, python-format
msgid "User %(u_id)s is unauthorized for tenant %(t_id)s"
msgstr ""
-#: keystone/token/controllers.py:413 keystone/token/controllers.py:416
+#: keystone/token/controllers.py:395 keystone/token/controllers.py:398
msgid "Token does not belong to specified tenant."
msgstr ""
-#: keystone/token/controllers.py:423
-msgid "Non-default domain is not supported"
+#: keystone/token/provider.py:76
+msgid ""
+"keystone.conf [signing] token_format (deprecated) conflicts with "
+"keystone.conf [token] provider"
msgstr ""
-#: keystone/token/controllers.py:431
-msgid "Domain scoped token is not supported"
+#: keystone/token/provider.py:84
+msgid ""
+"keystone.conf [signing] token_format is deprecated in favor of "
+"keystone.conf [token] provider"
+msgstr ""
+
+#: keystone/token/provider.py:94
+msgid ""
+"Unrecognized keystone.conf [signing] token_format: expected either 'UUID'"
+" or 'PKI'"
+msgstr ""
+
+#: keystone/token/backends/kvs.py:37
+msgid ""
+"kvs token backend is DEPRECATED. Use keystone.token.backends.sql or "
+"keystone.token.backend.memcache instead."
msgstr ""
#: keystone/token/backends/memcache.py:144
@@ -596,3 +803,54 @@ msgstr ""
msgid "Unable to add token to revocation list."
msgstr ""
+#: keystone/token/providers/pki.py:43
+msgid "Unable to sign token."
+msgstr ""
+
+#: keystone/token/providers/uuid.py:193
+msgid "Trustor is disabled."
+msgstr ""
+
+#: keystone/token/providers/uuid.py:238
+msgid "Trustee has no delegated roles."
+msgstr ""
+
+#: keystone/token/providers/uuid.py:247
+#, python-format
+msgid "User %(user_id)s has no access to project %(project_id)s"
+msgstr ""
+
+#: keystone/token/providers/uuid.py:252
+#, python-format
+msgid "User %(user_id)s has no access to domain %(domain_id)s"
+msgstr ""
+
+#: keystone/token/providers/uuid.py:303
+msgid "User is not a trustee."
+msgstr ""
+
+#: keystone/token/providers/uuid.py:457
+msgid "Non-default domain is not supported"
+msgstr ""
+
+#: keystone/token/providers/uuid.py:465
+msgid "Domain scoped token is not supported"
+msgstr ""
+
+#: keystone/token/providers/uuid.py:528
+msgid "Failed to validate token"
+msgstr ""
+
+#: keystone/token/providers/uuid.py:566 keystone/token/providers/uuid.py:576
+msgid "Failed to verify token"
+msgstr ""
+
+#~ msgid "User have no access to project"
+#~ msgstr ""
+
+#~ msgid "User have no access to domain"
+#~ msgstr ""
+
+#~ msgid "Invalid value for token_format: %s. Allowed values are PKI or UUID."
+#~ msgstr ""
+
diff --git a/keystone/locale/bs/LC_MESSAGES/keystone.po b/keystone/locale/bs/LC_MESSAGES/keystone.po
new file mode 100644
index 00000000..8aee9ca5
--- /dev/null
+++ b/keystone/locale/bs/LC_MESSAGES/keystone.po
@@ -0,0 +1,848 @@
+# Bosnian translations for keystone.
+# Copyright (C) 2013 ORGANIZATION
+# This file is distributed under the same license as the keystone project.
+#
+# Translators:
+msgid ""
+msgstr ""
+"Project-Id-Version: Keystone\n"
+"Report-Msgid-Bugs-To: https://bugs.launchpad.net/keystone\n"
+"POT-Creation-Date: 2013-08-02 17:05+0000\n"
+"PO-Revision-Date: 2013-07-29 22:01+0000\n"
+"Last-Translator: openstackjenkins <jenkins@openstack.org>\n"
+"Language-Team: Bosnian "
+"(http://www.transifex.com/projects/p/openstack/language/bs/)\n"
+"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && "
+"n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2)\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=utf-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Generated-By: Babel 1.3\n"
+
+#: keystone/clean.py:23
+#, python-format
+msgid "%s cannot be empty."
+msgstr ""
+
+#: keystone/clean.py:25
+#, python-format
+msgid "%(property_name)s cannot be less than %(min_length)s characters."
+msgstr ""
+
+#: keystone/clean.py:29
+#, python-format
+msgid "%(property_name)s should not be greater than %(max_length)s characters."
+msgstr ""
+
+#: keystone/clean.py:36
+#, python-format
+msgid "%(property_name)s is not a %(display_expected_type)s"
+msgstr ""
+
+#: keystone/exception.py:48
+msgid "missing exception kwargs (programmer error)"
+msgstr ""
+
+#: keystone/exception.py:65
+#, python-format
+msgid ""
+"Expecting to find %(attribute)s in %(target)s. The server could not "
+"comply with the request since it is either malformed or otherwise "
+"incorrect. The client is assumed to be in error."
+msgstr ""
+
+#: keystone/exception.py:74
+#, python-format
+msgid ""
+"String length exceeded.The length of string '%(string)s' exceeded the "
+"limit of column %(type)s(CHAR(%(length)d))."
+msgstr ""
+
+#: keystone/exception.py:80
+#, python-format
+msgid ""
+"Request attribute %(attribute)s must be less than or equal to %(size)i. "
+"The server could not comply with the request because the attribute size "
+"is invalid (too large). The client is assumed to be in error."
+msgstr ""
+
+#: keystone/exception.py:101
+msgid "The request you have made requires authentication."
+msgstr ""
+
+#: keystone/exception.py:107
+msgid "Authentication plugin error."
+msgstr ""
+
+#: keystone/exception.py:115
+msgid "Attempted to authenticate with an unsupported method."
+msgstr ""
+
+#: keystone/exception.py:123
+msgid "Additional authentications steps required."
+msgstr ""
+
+#: keystone/exception.py:131
+msgid "You are not authorized to perform the requested action."
+msgstr ""
+
+#: keystone/exception.py:138
+#, python-format
+msgid "You are not authorized to perform the requested action, %(action)s."
+msgstr ""
+
+#: keystone/exception.py:143
+#, python-format
+msgid "Could not find, %(target)s."
+msgstr ""
+
+#: keystone/exception.py:149
+#, python-format
+msgid "Could not find endpoint, %(endpoint_id)s."
+msgstr ""
+
+#: keystone/exception.py:156
+msgid "An unhandled exception has occurred: Could not find metadata."
+msgstr ""
+
+#: keystone/exception.py:161
+#, python-format
+msgid "Could not find policy, %(policy_id)s."
+msgstr ""
+
+#: keystone/exception.py:165
+#, python-format
+msgid "Could not find role, %(role_id)s."
+msgstr ""
+
+#: keystone/exception.py:169
+#, python-format
+msgid "Could not find service, %(service_id)s."
+msgstr ""
+
+#: keystone/exception.py:173
+#, python-format
+msgid "Could not find domain, %(domain_id)s."
+msgstr ""
+
+#: keystone/exception.py:177
+#, python-format
+msgid "Could not find project, %(project_id)s."
+msgstr ""
+
+#: keystone/exception.py:181
+#, python-format
+msgid "Could not find token, %(token_id)s."
+msgstr ""
+
+#: keystone/exception.py:185
+#, python-format
+msgid "Could not find user, %(user_id)s."
+msgstr ""
+
+#: keystone/exception.py:189
+#, python-format
+msgid "Could not find group, %(group_id)s."
+msgstr ""
+
+#: keystone/exception.py:193
+#, python-format
+msgid "Could not find trust, %(trust_id)s."
+msgstr ""
+
+#: keystone/exception.py:197
+#, python-format
+msgid "Could not find credential, %(credential_id)s."
+msgstr ""
+
+#: keystone/exception.py:201
+#, python-format
+msgid "Could not find version, %(version)s."
+msgstr ""
+
+#: keystone/exception.py:205
+#, python-format
+msgid "Conflict occurred attempting to store %(type)s. %(details)s"
+msgstr ""
+
+#: keystone/exception.py:212
+msgid "Request is too large."
+msgstr ""
+
+#: keystone/exception.py:218
+#, python-format
+msgid ""
+"An unexpected error prevented the server from fulfilling your request. "
+"%(exception)s"
+msgstr ""
+
+#: keystone/exception.py:225
+#, python-format
+msgid "Malformed endpoint URL (%(endpoint)s), see ERROR log for details."
+msgstr ""
+
+#: keystone/exception.py:230
+msgid "The action you have requested has not been implemented."
+msgstr ""
+
+#: keystone/exception.py:237
+#, python-format
+msgid "The Keystone paste configuration file %(config_file)s could not be found."
+msgstr ""
+
+#: keystone/test.py:117
+#, python-format
+msgid "Failed to checkout %s"
+msgstr ""
+
+#: keystone/assignment/core.py:529
+#, python-format
+msgid "Expected dict or list: %s"
+msgstr ""
+
+#: keystone/assignment/backends/kvs.py:138
+#: keystone/assignment/backends/sql.py:285
+#, python-format
+msgid "Cannot remove role that has not been granted, %s"
+msgstr ""
+
+#: keystone/assignment/backends/ldap.py:418
+#, python-format
+msgid "Role %s not found"
+msgstr ""
+
+#: keystone/assignment/backends/sql.py:114
+msgid "Inherited roles can only be assigned to domains"
+msgstr ""
+
+#: keystone/auth/controllers.py:71
+#, python-format
+msgid "Project is disabled: %s"
+msgstr ""
+
+#: keystone/auth/controllers.py:77 keystone/auth/plugins/password.py:38
+#, python-format
+msgid "Domain is disabled: %s"
+msgstr ""
+
+#: keystone/auth/controllers.py:83 keystone/auth/plugins/password.py:44
+#, python-format
+msgid "User is disabled: %s"
+msgstr ""
+
+#: keystone/auth/controllers.py:262
+msgid "Scoping to both domain and project is not allowed"
+msgstr ""
+
+#: keystone/auth/controllers.py:265
+msgid "Scoping to both domain and trust is not allowed"
+msgstr ""
+
+#: keystone/auth/controllers.py:268
+msgid "Scoping to both project and trust is not allowed"
+msgstr ""
+
+#: keystone/auth/controllers.py:353
+msgid "User not found"
+msgstr ""
+
+#: keystone/auth/plugins/external.py:36 keystone/auth/plugins/external.py:66
+msgid "No authenticated user"
+msgstr ""
+
+#: keystone/auth/plugins/external.py:49 keystone/auth/plugins/external.py:86
+#, python-format
+msgid "Unable to lookup user %s"
+msgstr ""
+
+#: keystone/auth/plugins/password.py:112
+msgid "Invalid username or password"
+msgstr ""
+
+#: keystone/catalog/core.py:38
+#, python-format
+msgid "Malformed endpoint %(url)s - unknown key %(keyerror)s"
+msgstr ""
+
+#: keystone/catalog/core.py:43
+#, python-format
+msgid ""
+"Malformed endpoint %(url)s - unknown key %(keyerror)s(are you missing "
+"brackets ?)"
+msgstr ""
+
+#: keystone/catalog/core.py:49
+#, python-format
+msgid ""
+"Malformed endpoint %s - incomplete format (are you "
+"missing a type notifier ?)"
+msgstr ""
+
+#: keystone/catalog/backends/templated.py:109
+#, python-format
+msgid "Unable to open template file %s"
+msgstr ""
+
+#: keystone/common/cms.py:26
+#, python-format
+msgid "Verify error: %s"
+msgstr ""
+
+#: keystone/common/cms.py:118
+msgid ""
+"Signing error: Unable to load certificate - ensure you've configured PKI "
+"with 'keystone-manage pki_setup'"
+msgstr ""
+
+#: keystone/common/cms.py:122
+#, python-format
+msgid "Signing error: %s"
+msgstr ""
+
+#: keystone/common/config.py:89
+#, python-format
+msgid "Unable to locate specified logging config file: %s"
+msgstr ""
+
+#: keystone/common/config.py:107
+msgid "Invalid syslog facility"
+msgstr ""
+
+#: keystone/common/controller.py:18
+#, python-format
+msgid "RBAC: Authorizing %(action)s(%(kwargs)s)"
+msgstr ""
+
+#: keystone/common/controller.py:25
+msgid "RBAC: Invalid token"
+msgstr ""
+
+#: keystone/common/controller.py:39 keystone/common/controller.py:60
+msgid "RBAC: Invalid user"
+msgstr ""
+
+#: keystone/common/controller.py:45
+msgid "RBAC: Proceeding without project"
+msgstr ""
+
+#: keystone/common/controller.py:65
+msgid "RBAC: Proceeding without tenant"
+msgstr ""
+
+#: keystone/common/controller.py:95 keystone/common/controller.py:146
+msgid "RBAC: Bypassing authorization"
+msgstr ""
+
+#: keystone/common/controller.py:104 keystone/common/controller.py:144
+msgid "RBAC: Authorization granted"
+msgstr ""
+
+#: keystone/common/controller.py:134
+#, python-format
+msgid "RBAC: Adding query filter params (%s)"
+msgstr ""
+
+#: keystone/common/controller.py:322
+msgid "Invalid token in normalize_domain_id"
+msgstr ""
+
+#: keystone/common/utils.py:233
+msgid ""
+"Error setting up the debug environment. Verify that the option --debug-"
+"url has the format <host>:<port> and that a debugger processes is "
+"listening on that port."
+msgstr ""
+
+#: keystone/common/wsgi.py:95
+msgid "No bind information present in token"
+msgstr ""
+
+#: keystone/common/wsgi.py:99
+#, python-format
+msgid "Named bind mode %s not in bind information"
+msgstr ""
+
+#: keystone/common/wsgi.py:105
+msgid "Kerberos credentials required and not present"
+msgstr ""
+
+#: keystone/common/wsgi.py:109
+msgid "Kerberos credentials do not match those in bind"
+msgstr ""
+
+#: keystone/common/wsgi.py:112
+msgid "Kerberos bind authentication successful"
+msgstr ""
+
+#: keystone/common/wsgi.py:115
+#, python-format
+msgid "Ignoring unknown bind for permissive mode: {%(bind_type)s: %(identifier)s}"
+msgstr ""
+
+#: keystone/common/wsgi.py:119
+#, python-format
+msgid "Couldn't verify unknown bind: {%(bind_type)s: %(identifier)s}"
+msgstr ""
+
+#: keystone/common/wsgi.py:211
+#, python-format
+msgid "arg_dict: %s"
+msgstr ""
+
+#: keystone/common/wsgi.py:243
+#, python-format
+msgid "Authorization failed. %(exception)s from %(remote_addr)s"
+msgstr ""
+
+#: keystone/common/wsgi.py:487
+msgid "The resource could not be found."
+msgstr ""
+
+#: keystone/common/environment/__init__.py:37
+#, python-format
+msgid "Environment configured as: %s"
+msgstr ""
+
+#: keystone/common/environment/eventlet_server.py:51
+#, python-format
+msgid "Starting %(arg0)s on %(host)s:%(port)s"
+msgstr ""
+
+#: keystone/common/environment/eventlet_server.py:113
+msgid "Server error"
+msgstr ""
+
+#: keystone/common/ldap/core.py:79
+#, python-format
+msgid "Invalid LDAP deref option: %s. Choose one of: "
+msgstr ""
+
+#: keystone/common/ldap/core.py:87
+#, python-format
+msgid "Invalid LDAP TLS certs option: %(option). Choose one of: %(options)s"
+msgstr ""
+
+#: keystone/common/ldap/core.py:99
+#, python-format
+msgid "Invalid LDAP scope: %(scope)s. Choose one of: %(options)s"
+msgstr ""
+
+#: keystone/common/ldap/core.py:189
+#, python-format
+msgid ""
+"Invalid additional attribute mapping: \"%s\". Format must be "
+"<ldap_attribute>:<keystone_attribute>"
+msgstr ""
+
+#: keystone/common/ldap/core.py:195
+#, python-format
+msgid ""
+"Invalid additional attribute mapping: \"%(item)s\". Value "
+"\"%(attr_map)s\" must use one of %(keys)s."
+msgstr ""
+
+#: keystone/common/ldap/core.py:279 keystone/identity/backends/kvs.py:177
+#: keystone/identity/backends/kvs.py:205
+#, python-format
+msgid "Duplicate name, %s."
+msgstr ""
+
+#: keystone/common/ldap/core.py:289 keystone/identity/backends/kvs.py:170
+#, python-format
+msgid "Duplicate ID, %s."
+msgstr ""
+
+#: keystone/common/ldap/core.py:294
+#, python-format
+msgid "LDAP %s create"
+msgstr ""
+
+#: keystone/common/ldap/core.py:372
+#, python-format
+msgid "LDAP %s update"
+msgstr ""
+
+#: keystone/common/ldap/core.py:405
+#, python-format
+msgid "LDAP %s delete"
+msgstr ""
+
+#: keystone/common/ldap/core.py:430
+#, python-format
+msgid "LDAP init: url=%s"
+msgstr ""
+
+#: keystone/common/ldap/core.py:431
+#, python-format
+msgid ""
+"LDAP init: use_tls=%(use_tls)s\n"
+"tls_cacertfile=%(tls_cacertfile)s\n"
+"tls_cacertdir=%(tls_cacertdir)s\n"
+"tls_req_cert=%(tls_req_cert)s\n"
+"tls_avail=%(tls_avail)s\n"
+msgstr ""
+
+#: keystone/common/ldap/core.py:450
+msgid "Invalid TLS / LDAPS combination"
+msgstr ""
+
+#: keystone/common/ldap/core.py:454
+#, python-format
+msgid "Invalid LDAP TLS_AVAIL option: %s. TLS not available"
+msgstr ""
+
+#: keystone/common/ldap/core.py:464
+#, python-format
+msgid "tls_cacertfile %s not found or is not a file"
+msgstr ""
+
+#: keystone/common/ldap/core.py:476
+#, python-format
+msgid "tls_cacertdir %s not found or is not a directory"
+msgstr ""
+
+#: keystone/common/ldap/core.py:483
+#, python-format
+msgid "LDAP TLS: invalid TLS_REQUIRE_CERT Option=%s"
+msgstr ""
+
+#: keystone/common/ldap/core.py:497
+#, python-format
+msgid "LDAP bind: dn=%s"
+msgstr ""
+
+#: keystone/common/ldap/core.py:508
+#, python-format
+msgid "LDAP add: dn=%(dn)s, attrs=%(attrs)s"
+msgstr ""
+
+#: keystone/common/ldap/core.py:514
+#, python-format
+msgid ""
+"LDAP search: dn=%(dn)s, scope=%(scope)s, query=%(query)s, "
+"attrs=%(attrlist)s"
+msgstr ""
+
+#: keystone/common/ldap/core.py:567
+msgid ""
+"LDAP Server does not support paging. Disable paging in keystone.conf to "
+"avoid this message."
+msgstr ""
+
+#: keystone/common/ldap/core.py:584
+#, python-format
+msgid "LDAP modify: dn=%(dn)s, modlist=%(modlist)s"
+msgstr ""
+
+#: keystone/common/ldap/core.py:590
+#, python-format
+msgid "LDAP delete: dn=%s"
+msgstr ""
+
+#: keystone/common/ldap/core.py:595
+#, python-format
+msgid "LDAP delete_ext: dn=%(dn)s, serverctrls=%(serverctrls)s"
+msgstr ""
+
+#: keystone/common/ldap/fakeldap.py:146
+#, python-format
+msgid "FakeLdap initialize url=%s"
+msgstr ""
+
+#: keystone/common/ldap/fakeldap.py:156
+#, python-format
+msgid "FakeLdap bind dn=%s"
+msgstr ""
+
+#: keystone/common/ldap/fakeldap.py:163
+#, python-format
+msgid "FakeLdap bind fail: dn=%s not found"
+msgstr ""
+
+#: keystone/common/ldap/fakeldap.py:170
+#, python-format
+msgid "FakeLdap bind fail: password for dn=%s not found"
+msgstr ""
+
+#: keystone/common/ldap/fakeldap.py:175
+#, python-format
+msgid "FakeLdap bind fail: password for dn=%s does not match"
+msgstr ""
+
+#: keystone/common/ldap/fakeldap.py:190
+#, python-format
+msgid "FakeLdap add item: dn=%(dn)s, attrs=%(attrs)s"
+msgstr ""
+
+#: keystone/common/ldap/fakeldap.py:193
+#, python-format
+msgid "FakeLdap add item failed: dn=%s is already in store."
+msgstr ""
+
+#: keystone/common/ldap/fakeldap.py:207 keystone/common/ldap/fakeldap.py:221
+#, python-format
+msgid "FakeLdap delete item: dn=%s"
+msgstr ""
+
+#: keystone/common/ldap/fakeldap.py:211 keystone/common/ldap/fakeldap.py:225
+#, python-format
+msgid "FakeLdap delete item failed: dn=%s not found."
+msgstr ""
+
+#: keystone/common/ldap/fakeldap.py:240
+#, python-format
+msgid "FakeLdap modify item: dn=%(dn)s attrs=%(attrs)s"
+msgstr ""
+
+#: keystone/common/ldap/fakeldap.py:245
+#, python-format
+msgid "FakeLdap modify item failed: dn=%s not found."
+msgstr ""
+
+#: keystone/common/ldap/fakeldap.py:262
+#, python-format
+msgid "FakeLdap modify item failed: item has no attribute \"%s\" to delete"
+msgstr ""
+
+#: keystone/common/ldap/fakeldap.py:273
+#, python-format
+msgid ""
+"FakeLdap modify item failed: item has no attribute \"%(k)s\" with value "
+"\"%(v)s\" to delete"
+msgstr ""
+
+#: keystone/common/ldap/fakeldap.py:279
+#, python-format
+msgid "FakeLdap modify item failed: unknown command %s"
+msgstr ""
+
+#: keystone/common/ldap/fakeldap.py:281
+#, python-format
+msgid "modify_s action %s not implemented"
+msgstr ""
+
+#: keystone/common/ldap/fakeldap.py:300
+#, python-format
+msgid "FakeLdap search at dn=%(dn)s scope=%(scope)s query=%(query)s"
+msgstr ""
+
+#: keystone/common/ldap/fakeldap.py:306
+msgid "FakeLdap search fail: dn not found for SCOPE_BASE"
+msgstr ""
+
+#: keystone/common/ldap/fakeldap.py:320
+#, python-format
+msgid "Search scope %s not implemented."
+msgstr ""
+
+#: keystone/common/sql/core.py:119
+msgid "Global engine callback raised."
+msgstr ""
+
+#: keystone/common/sql/core.py:233
+#, python-format
+msgid "Got mysql server has gone away: %s"
+msgstr ""
+
+#: keystone/common/sql/legacy.py:188
+#, python-format
+msgid "Cannot migrate EC2 credential: %s"
+msgstr ""
+
+#: keystone/common/sql/migration.py:47
+msgid "version should be an integer"
+msgstr ""
+
+#: keystone/common/sql/nova.py:65
+#, python-format
+msgid "Create tenant %s"
+msgstr ""
+
+#: keystone/common/sql/nova.py:82
+#, python-format
+msgid "Create user %s"
+msgstr ""
+
+#: keystone/common/sql/nova.py:91
+#, python-format
+msgid "Add user %(user_id)s to tenant %(tenant_id)s"
+msgstr ""
+
+#: keystone/common/sql/nova.py:100
+#, python-format
+msgid "Ignoring existing role %s"
+msgstr ""
+
+#: keystone/common/sql/nova.py:107
+#, python-format
+msgid "Create role %s"
+msgstr ""
+
+#: keystone/common/sql/nova.py:117
+#, python-format
+msgid "Assign role %(role_id)s to user %(user_id)s on tenant %(tenant_id)s"
+msgstr ""
+
+#: keystone/common/sql/nova.py:136
+#, python-format
+msgid "Creating ec2 cred for user %(user_id)s and tenant %(tenant_id)s"
+msgstr ""
+
+#: keystone/identity/controllers.py:952
+#, python-format
+msgid ""
+"Group %(group)s not found for role-assignment - %(target)s with Role: "
+"%(role)s"
+msgstr ""
+
+#: keystone/identity/backends/kvs.py:126 keystone/identity/backends/kvs.py:135
+msgid "User not found in group"
+msgstr ""
+
+#: keystone/identity/backends/ldap.py:189
+#, python-format
+msgid ""
+"Group member '%(user_dn)s' not found in '%(group_id)s'. The user should "
+"be removed from the group. The user will be ignored."
+msgstr ""
+
+#: keystone/identity/backends/ldap.py:334
+msgid "Changing Name not supported by LDAP"
+msgstr ""
+
+#: keystone/identity/backends/ldap.py:347
+#, python-format
+msgid "User %(user_id)s is already a member of group %(group_id)s"
+msgstr ""
+
+#: keystone/openstack/common/policy.py:394
+#, python-format
+msgid "Failed to understand rule %(rule)s"
+msgstr ""
+
+#: keystone/openstack/common/policy.py:404
+#, python-format
+msgid "No handler for matches of kind %s"
+msgstr ""
+
+#: keystone/openstack/common/policy.py:679
+#, python-format
+msgid "Failed to understand rule %(rule)r"
+msgstr ""
+
+#: keystone/openstack/common/crypto/utils.py:29
+msgid "An unknown error occurred in crypto utils."
+msgstr ""
+
+#: keystone/openstack/common/crypto/utils.py:36
+#, python-format
+msgid "Block size of %(given)d is too big, max = %(maximum)d"
+msgstr ""
+
+#: keystone/openstack/common/crypto/utils.py:45
+#, python-format
+msgid "Length of %(given)d is too long, max = %(maximum)d"
+msgstr ""
+
+#: keystone/policy/backends/rules.py:93
+#, python-format
+msgid "enforce %(action)s: %(credentials)s"
+msgstr ""
+
+#: keystone/token/controllers.py:378
+#, python-format
+msgid "User %(u_id)s is unauthorized for tenant %(t_id)s"
+msgstr ""
+
+#: keystone/token/controllers.py:395 keystone/token/controllers.py:398
+msgid "Token does not belong to specified tenant."
+msgstr ""
+
+#: keystone/token/provider.py:76
+msgid ""
+"keystone.conf [signing] token_format (deprecated) conflicts with "
+"keystone.conf [token] provider"
+msgstr ""
+
+#: keystone/token/provider.py:84
+msgid ""
+"keystone.conf [signing] token_format is deprecated in favor of "
+"keystone.conf [token] provider"
+msgstr ""
+
+#: keystone/token/provider.py:94
+msgid ""
+"Unrecognized keystone.conf [signing] token_format: expected either 'UUID'"
+" or 'PKI'"
+msgstr ""
+
+#: keystone/token/backends/kvs.py:37
+msgid ""
+"kvs token backend is DEPRECATED. Use keystone.token.backends.sql or "
+"keystone.token.backend.memcache instead."
+msgstr ""
+
+#: keystone/token/backends/memcache.py:144
+#, python-format
+msgid ""
+"Successful set of token-index-list for user-key \"%(user_key)s\", "
+"#%(count)d records"
+msgstr ""
+
+#: keystone/token/backends/memcache.py:154
+#, python-format
+msgid ""
+"Failed to set token-index-list for user-key \"%(user_key)s\". Attempt "
+"%(cas_retry)d of %(cas_retry_max)d"
+msgstr ""
+
+#: keystone/token/backends/memcache.py:163
+msgid "Unable to add token user list"
+msgstr ""
+
+#: keystone/token/backends/memcache.py:172
+msgid "Unable to add token to revocation list."
+msgstr ""
+
+#: keystone/token/providers/pki.py:43
+msgid "Unable to sign token."
+msgstr ""
+
+#: keystone/token/providers/uuid.py:193
+msgid "Trustor is disabled."
+msgstr ""
+
+#: keystone/token/providers/uuid.py:238
+msgid "Trustee has no delegated roles."
+msgstr ""
+
+#: keystone/token/providers/uuid.py:247
+#, python-format
+msgid "User %(user_id)s has no access to project %(project_id)s"
+msgstr ""
+
+#: keystone/token/providers/uuid.py:252
+#, python-format
+msgid "User %(user_id)s has no access to domain %(domain_id)s"
+msgstr ""
+
+#: keystone/token/providers/uuid.py:303
+msgid "User is not a trustee."
+msgstr ""
+
+#: keystone/token/providers/uuid.py:457
+msgid "Non-default domain is not supported"
+msgstr ""
+
+#: keystone/token/providers/uuid.py:465
+msgid "Domain scoped token is not supported"
+msgstr ""
+
+#: keystone/token/providers/uuid.py:528
+msgid "Failed to validate token"
+msgstr ""
+
+#: keystone/token/providers/uuid.py:566 keystone/token/providers/uuid.py:576
+msgid "Failed to verify token"
+msgstr ""
+
diff --git a/keystone/locale/ca/LC_MESSAGES/keystone.po b/keystone/locale/ca/LC_MESSAGES/keystone.po
index 3d83598f..110ea54c 100644
--- a/keystone/locale/ca/LC_MESSAGES/keystone.po
+++ b/keystone/locale/ca/LC_MESSAGES/keystone.po
@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Keystone\n"
"Report-Msgid-Bugs-To: https://bugs.launchpad.net/keystone\n"
-"POT-Creation-Date: 2013-07-11 17:05+0000\n"
+"POT-Creation-Date: 2013-08-02 17:05+0000\n"
"PO-Revision-Date: 2012-11-03 03:08+0000\n"
"Last-Translator: Sergi Almacellas <pokoli@gmail.com>\n"
"Language-Team: ca <LL@li.org>\n"
@@ -16,7 +16,7 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"Generated-By: Babel 0.9.6\n"
+"Generated-By: Babel 1.3\n"
#: keystone/clean.py:23
#, python-format
@@ -38,79 +38,224 @@ msgstr ""
msgid "%(property_name)s is not a %(display_expected_type)s"
msgstr ""
-#: keystone/test.py:106
+#: keystone/exception.py:48
+msgid "missing exception kwargs (programmer error)"
+msgstr ""
+
+#: keystone/exception.py:65
+#, python-format
+msgid ""
+"Expecting to find %(attribute)s in %(target)s. The server could not "
+"comply with the request since it is either malformed or otherwise "
+"incorrect. The client is assumed to be in error."
+msgstr ""
+
+#: keystone/exception.py:74
+#, python-format
+msgid ""
+"String length exceeded.The length of string '%(string)s' exceeded the "
+"limit of column %(type)s(CHAR(%(length)d))."
+msgstr ""
+
+#: keystone/exception.py:80
+#, python-format
+msgid ""
+"Request attribute %(attribute)s must be less than or equal to %(size)i. "
+"The server could not comply with the request because the attribute size "
+"is invalid (too large). The client is assumed to be in error."
+msgstr ""
+
+#: keystone/exception.py:101
+msgid "The request you have made requires authentication."
+msgstr ""
+
+#: keystone/exception.py:107
+msgid "Authentication plugin error."
+msgstr ""
+
+#: keystone/exception.py:115
+msgid "Attempted to authenticate with an unsupported method."
+msgstr ""
+
+#: keystone/exception.py:123
+msgid "Additional authentications steps required."
+msgstr ""
+
+#: keystone/exception.py:131
+msgid "You are not authorized to perform the requested action."
+msgstr ""
+
+#: keystone/exception.py:138
+#, python-format
+msgid "You are not authorized to perform the requested action, %(action)s."
+msgstr ""
+
+#: keystone/exception.py:143
+#, python-format
+msgid "Could not find, %(target)s."
+msgstr ""
+
+#: keystone/exception.py:149
+#, python-format
+msgid "Could not find endpoint, %(endpoint_id)s."
+msgstr ""
+
+#: keystone/exception.py:156
+msgid "An unhandled exception has occurred: Could not find metadata."
+msgstr ""
+
+#: keystone/exception.py:161
+#, python-format
+msgid "Could not find policy, %(policy_id)s."
+msgstr ""
+
+#: keystone/exception.py:165
+#, python-format
+msgid "Could not find role, %(role_id)s."
+msgstr ""
+
+#: keystone/exception.py:169
+#, python-format
+msgid "Could not find service, %(service_id)s."
+msgstr ""
+
+#: keystone/exception.py:173
+#, python-format
+msgid "Could not find domain, %(domain_id)s."
+msgstr ""
+
+#: keystone/exception.py:177
+#, python-format
+msgid "Could not find project, %(project_id)s."
+msgstr ""
+
+#: keystone/exception.py:181
+#, python-format
+msgid "Could not find token, %(token_id)s."
+msgstr ""
+
+#: keystone/exception.py:185
+#, python-format
+msgid "Could not find user, %(user_id)s."
+msgstr ""
+
+#: keystone/exception.py:189
+#, python-format
+msgid "Could not find group, %(group_id)s."
+msgstr ""
+
+#: keystone/exception.py:193
+#, python-format
+msgid "Could not find trust, %(trust_id)s."
+msgstr ""
+
+#: keystone/exception.py:197
+#, python-format
+msgid "Could not find credential, %(credential_id)s."
+msgstr ""
+
+#: keystone/exception.py:201
+#, python-format
+msgid "Could not find version, %(version)s."
+msgstr ""
+
+#: keystone/exception.py:205
+#, python-format
+msgid "Conflict occurred attempting to store %(type)s. %(details)s"
+msgstr ""
+
+#: keystone/exception.py:212
+msgid "Request is too large."
+msgstr ""
+
+#: keystone/exception.py:218
+#, python-format
+msgid ""
+"An unexpected error prevented the server from fulfilling your request. "
+"%(exception)s"
+msgstr ""
+
+#: keystone/exception.py:225
+#, python-format
+msgid "Malformed endpoint URL (%(endpoint)s), see ERROR log for details."
+msgstr ""
+
+#: keystone/exception.py:230
+msgid "The action you have requested has not been implemented."
+msgstr ""
+
+#: keystone/exception.py:237
+#, python-format
+msgid "The Keystone paste configuration file %(config_file)s could not be found."
+msgstr ""
+
+#: keystone/test.py:117
#, python-format
msgid "Failed to checkout %s"
msgstr ""
-#: keystone/assignment/backends/ldap.py:110
+#: keystone/assignment/core.py:529
#, python-format
msgid "Expected dict or list: %s"
msgstr ""
-#: keystone/assignment/backends/ldap.py:456
-#: keystone/identity/backends/ldap.py:433
+#: keystone/assignment/backends/kvs.py:138
+#: keystone/assignment/backends/sql.py:285
#, python-format
-msgid "Role %s not found"
+msgid "Cannot remove role that has not been granted, %s"
msgstr ""
-#: keystone/assignment/backends/sql.py:244
+#: keystone/assignment/backends/ldap.py:418
#, python-format
-msgid "Cannot remove role that has not been granted, %s"
+msgid "Role %s not found"
+msgstr ""
+
+#: keystone/assignment/backends/sql.py:114
+msgid "Inherited roles can only be assigned to domains"
msgstr ""
-#: keystone/auth/controllers.py:72
+#: keystone/auth/controllers.py:71
#, python-format
msgid "Project is disabled: %s"
msgstr ""
-#: keystone/auth/controllers.py:78 keystone/auth/plugins/password.py:38
+#: keystone/auth/controllers.py:77 keystone/auth/plugins/password.py:38
#, python-format
msgid "Domain is disabled: %s"
msgstr ""
-#: keystone/auth/controllers.py:84 keystone/auth/plugins/password.py:44
+#: keystone/auth/controllers.py:83 keystone/auth/plugins/password.py:44
#, python-format
msgid "User is disabled: %s"
msgstr ""
-#: keystone/auth/controllers.py:259
+#: keystone/auth/controllers.py:262
msgid "Scoping to both domain and project is not allowed"
msgstr ""
-#: keystone/auth/controllers.py:262
+#: keystone/auth/controllers.py:265
msgid "Scoping to both domain and trust is not allowed"
msgstr ""
-#: keystone/auth/controllers.py:265
+#: keystone/auth/controllers.py:268
msgid "Scoping to both project and trust is not allowed"
msgstr ""
-#: keystone/auth/controllers.py:325
-#, fuzzy, python-format
-msgid "Unable to lookup user %s"
-msgstr "No es pot afegir el token a la llista d'usuaris."
-
-#: keystone/auth/controllers.py:355
+#: keystone/auth/controllers.py:353
msgid "User not found"
msgstr ""
-#: keystone/auth/token_factory.py:79
-msgid "User have no access to project"
+#: keystone/auth/plugins/external.py:36 keystone/auth/plugins/external.py:66
+msgid "No authenticated user"
msgstr ""
-#: keystone/auth/token_factory.py:94
-msgid "User have no access to domain"
-msgstr ""
-
-#: keystone/auth/token_factory.py:311 keystone/token/controllers.py:119
-#, fuzzy
-msgid "Unable to sign token."
+#: keystone/auth/plugins/external.py:49 keystone/auth/plugins/external.py:86
+#, fuzzy, python-format
+msgid "Unable to lookup user %s"
msgstr "No es pot afegir el token a la llista d'usuaris."
-#: keystone/auth/token_factory.py:314 keystone/token/controllers.py:122
-#, python-format
-msgid "Invalid value for token_format: %s. Allowed values are PKI or UUID."
+#: keystone/auth/plugins/password.py:112
+msgid "Invalid username or password"
msgstr ""
#: keystone/catalog/core.py:38
@@ -171,32 +316,32 @@ msgstr ""
msgid "RBAC: Invalid token"
msgstr ""
-#: keystone/common/controller.py:35 keystone/common/controller.py:56
+#: keystone/common/controller.py:39 keystone/common/controller.py:60
msgid "RBAC: Invalid user"
msgstr ""
-#: keystone/common/controller.py:41
+#: keystone/common/controller.py:45
msgid "RBAC: Proceeding without project"
msgstr ""
-#: keystone/common/controller.py:61
+#: keystone/common/controller.py:65
msgid "RBAC: Proceeding without tenant"
msgstr ""
-#: keystone/common/controller.py:91 keystone/common/controller.py:142
+#: keystone/common/controller.py:95 keystone/common/controller.py:146
msgid "RBAC: Bypassing authorization"
msgstr ""
-#: keystone/common/controller.py:100 keystone/common/controller.py:140
+#: keystone/common/controller.py:104 keystone/common/controller.py:144
msgid "RBAC: Authorization granted"
msgstr ""
-#: keystone/common/controller.py:130
+#: keystone/common/controller.py:134
#, python-format
msgid "RBAC: Adding query filter params (%s)"
msgstr ""
-#: keystone/common/controller.py:318
+#: keystone/common/controller.py:322
msgid "Invalid token in normalize_domain_id"
msgstr ""
@@ -207,17 +352,48 @@ msgid ""
"listening on that port."
msgstr ""
-#: keystone/common/wsgi.py:162
+#: keystone/common/wsgi.py:95
+msgid "No bind information present in token"
+msgstr ""
+
+#: keystone/common/wsgi.py:99
+#, python-format
+msgid "Named bind mode %s not in bind information"
+msgstr ""
+
+#: keystone/common/wsgi.py:105
+msgid "Kerberos credentials required and not present"
+msgstr ""
+
+#: keystone/common/wsgi.py:109
+msgid "Kerberos credentials do not match those in bind"
+msgstr ""
+
+#: keystone/common/wsgi.py:112
+msgid "Kerberos bind authentication successful"
+msgstr ""
+
+#: keystone/common/wsgi.py:115
+#, python-format
+msgid "Ignoring unknown bind for permissive mode: {%(bind_type)s: %(identifier)s}"
+msgstr ""
+
+#: keystone/common/wsgi.py:119
+#, python-format
+msgid "Couldn't verify unknown bind: {%(bind_type)s: %(identifier)s}"
+msgstr ""
+
+#: keystone/common/wsgi.py:211
#, python-format
msgid "arg_dict: %s"
msgstr ""
-#: keystone/common/wsgi.py:188
+#: keystone/common/wsgi.py:243
#, python-format
msgid "Authorization failed. %(exception)s from %(remote_addr)s"
msgstr ""
-#: keystone/common/wsgi.py:431
+#: keystone/common/wsgi.py:487
msgid "The resource could not be found."
msgstr ""
@@ -458,11 +634,11 @@ msgstr ""
msgid "Search scope %s not implemented."
msgstr ""
-#: keystone/common/sql/core.py:126
+#: keystone/common/sql/core.py:119
msgid "Global engine callback raised."
msgstr ""
-#: keystone/common/sql/core.py:240
+#: keystone/common/sql/core.py:233
#, python-format
msgid "Got mysql server has gone away: %s"
msgstr ""
@@ -511,7 +687,7 @@ msgstr ""
msgid "Creating ec2 cred for user %(user_id)s and tenant %(tenant_id)s"
msgstr ""
-#: keystone/identity/controllers.py:878
+#: keystone/identity/controllers.py:952
#, python-format
msgid ""
"Group %(group)s not found for role-assignment - %(target)s with Role: "
@@ -522,18 +698,18 @@ msgstr ""
msgid "User not found in group"
msgstr ""
-#: keystone/identity/backends/ldap.py:192
+#: keystone/identity/backends/ldap.py:189
#, python-format
msgid ""
"Group member '%(user_dn)s' not found in '%(group_id)s'. The user should "
"be removed from the group. The user will be ignored."
msgstr ""
-#: keystone/identity/backends/ldap.py:621
+#: keystone/identity/backends/ldap.py:334
msgid "Changing Name not supported by LDAP"
msgstr ""
-#: keystone/identity/backends/ldap.py:634
+#: keystone/identity/backends/ldap.py:347
#, python-format
msgid "User %(user_id)s is already a member of group %(group_id)s"
msgstr ""
@@ -553,26 +729,56 @@ msgstr ""
msgid "Failed to understand rule %(rule)r"
msgstr ""
+#: keystone/openstack/common/crypto/utils.py:29
+msgid "An unknown error occurred in crypto utils."
+msgstr ""
+
+#: keystone/openstack/common/crypto/utils.py:36
+#, python-format
+msgid "Block size of %(given)d is too big, max = %(maximum)d"
+msgstr ""
+
+#: keystone/openstack/common/crypto/utils.py:45
+#, python-format
+msgid "Length of %(given)d is too long, max = %(maximum)d"
+msgstr ""
+
#: keystone/policy/backends/rules.py:93
#, python-format
msgid "enforce %(action)s: %(credentials)s"
msgstr ""
-#: keystone/token/controllers.py:396
+#: keystone/token/controllers.py:378
#, python-format
msgid "User %(u_id)s is unauthorized for tenant %(t_id)s"
msgstr ""
-#: keystone/token/controllers.py:413 keystone/token/controllers.py:416
+#: keystone/token/controllers.py:395 keystone/token/controllers.py:398
msgid "Token does not belong to specified tenant."
msgstr ""
-#: keystone/token/controllers.py:423
-msgid "Non-default domain is not supported"
+#: keystone/token/provider.py:76
+msgid ""
+"keystone.conf [signing] token_format (deprecated) conflicts with "
+"keystone.conf [token] provider"
msgstr ""
-#: keystone/token/controllers.py:431
-msgid "Domain scoped token is not supported"
+#: keystone/token/provider.py:84
+msgid ""
+"keystone.conf [signing] token_format is deprecated in favor of "
+"keystone.conf [token] provider"
+msgstr ""
+
+#: keystone/token/provider.py:94
+msgid ""
+"Unrecognized keystone.conf [signing] token_format: expected either 'UUID'"
+" or 'PKI'"
+msgstr ""
+
+#: keystone/token/backends/kvs.py:37
+msgid ""
+"kvs token backend is DEPRECATED. Use keystone.token.backends.sql or "
+"keystone.token.backend.memcache instead."
msgstr ""
#: keystone/token/backends/memcache.py:144
@@ -597,3 +803,55 @@ msgstr ""
msgid "Unable to add token to revocation list."
msgstr "No es pot afegir el token a la llista de revocats."
+#: keystone/token/providers/pki.py:43
+#, fuzzy
+msgid "Unable to sign token."
+msgstr "No es pot afegir el token a la llista d'usuaris."
+
+#: keystone/token/providers/uuid.py:193
+msgid "Trustor is disabled."
+msgstr ""
+
+#: keystone/token/providers/uuid.py:238
+msgid "Trustee has no delegated roles."
+msgstr ""
+
+#: keystone/token/providers/uuid.py:247
+#, python-format
+msgid "User %(user_id)s has no access to project %(project_id)s"
+msgstr ""
+
+#: keystone/token/providers/uuid.py:252
+#, python-format
+msgid "User %(user_id)s has no access to domain %(domain_id)s"
+msgstr ""
+
+#: keystone/token/providers/uuid.py:303
+msgid "User is not a trustee."
+msgstr ""
+
+#: keystone/token/providers/uuid.py:457
+msgid "Non-default domain is not supported"
+msgstr ""
+
+#: keystone/token/providers/uuid.py:465
+msgid "Domain scoped token is not supported"
+msgstr ""
+
+#: keystone/token/providers/uuid.py:528
+msgid "Failed to validate token"
+msgstr ""
+
+#: keystone/token/providers/uuid.py:566 keystone/token/providers/uuid.py:576
+msgid "Failed to verify token"
+msgstr ""
+
+#~ msgid "User have no access to project"
+#~ msgstr ""
+
+#~ msgid "User have no access to domain"
+#~ msgstr ""
+
+#~ msgid "Invalid value for token_format: %s. Allowed values are PKI or UUID."
+#~ msgstr ""
+
diff --git a/keystone/locale/cs/LC_MESSAGES/keystone.po b/keystone/locale/cs/LC_MESSAGES/keystone.po
index 60948581..75cddd40 100644
--- a/keystone/locale/cs/LC_MESSAGES/keystone.po
+++ b/keystone/locale/cs/LC_MESSAGES/keystone.po
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Keystone\n"
"Report-Msgid-Bugs-To: https://bugs.launchpad.net/keystone\n"
-"POT-Creation-Date: 2013-07-11 17:05+0000\n"
+"POT-Creation-Date: 2013-08-02 17:05+0000\n"
"PO-Revision-Date: 2013-05-17 16:06+0000\n"
"Last-Translator: openstackjenkins <jenkins@openstack.org>\n"
"Language-Team: Czech "
@@ -16,7 +16,7 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"Generated-By: Babel 0.9.6\n"
+"Generated-By: Babel 1.3\n"
#: keystone/clean.py:23
#, python-format
@@ -38,78 +38,224 @@ msgstr ""
msgid "%(property_name)s is not a %(display_expected_type)s"
msgstr ""
-#: keystone/test.py:106
+#: keystone/exception.py:48
+msgid "missing exception kwargs (programmer error)"
+msgstr ""
+
+#: keystone/exception.py:65
+#, python-format
+msgid ""
+"Expecting to find %(attribute)s in %(target)s. The server could not "
+"comply with the request since it is either malformed or otherwise "
+"incorrect. The client is assumed to be in error."
+msgstr ""
+
+#: keystone/exception.py:74
+#, python-format
+msgid ""
+"String length exceeded.The length of string '%(string)s' exceeded the "
+"limit of column %(type)s(CHAR(%(length)d))."
+msgstr ""
+
+#: keystone/exception.py:80
+#, python-format
+msgid ""
+"Request attribute %(attribute)s must be less than or equal to %(size)i. "
+"The server could not comply with the request because the attribute size "
+"is invalid (too large). The client is assumed to be in error."
+msgstr ""
+
+#: keystone/exception.py:101
+msgid "The request you have made requires authentication."
+msgstr ""
+
+#: keystone/exception.py:107
+msgid "Authentication plugin error."
+msgstr ""
+
+#: keystone/exception.py:115
+msgid "Attempted to authenticate with an unsupported method."
+msgstr ""
+
+#: keystone/exception.py:123
+msgid "Additional authentications steps required."
+msgstr ""
+
+#: keystone/exception.py:131
+msgid "You are not authorized to perform the requested action."
+msgstr ""
+
+#: keystone/exception.py:138
+#, python-format
+msgid "You are not authorized to perform the requested action, %(action)s."
+msgstr ""
+
+#: keystone/exception.py:143
+#, python-format
+msgid "Could not find, %(target)s."
+msgstr ""
+
+#: keystone/exception.py:149
+#, python-format
+msgid "Could not find endpoint, %(endpoint_id)s."
+msgstr ""
+
+#: keystone/exception.py:156
+msgid "An unhandled exception has occurred: Could not find metadata."
+msgstr ""
+
+#: keystone/exception.py:161
+#, python-format
+msgid "Could not find policy, %(policy_id)s."
+msgstr ""
+
+#: keystone/exception.py:165
+#, python-format
+msgid "Could not find role, %(role_id)s."
+msgstr ""
+
+#: keystone/exception.py:169
+#, python-format
+msgid "Could not find service, %(service_id)s."
+msgstr ""
+
+#: keystone/exception.py:173
+#, python-format
+msgid "Could not find domain, %(domain_id)s."
+msgstr ""
+
+#: keystone/exception.py:177
+#, python-format
+msgid "Could not find project, %(project_id)s."
+msgstr ""
+
+#: keystone/exception.py:181
+#, python-format
+msgid "Could not find token, %(token_id)s."
+msgstr ""
+
+#: keystone/exception.py:185
+#, python-format
+msgid "Could not find user, %(user_id)s."
+msgstr ""
+
+#: keystone/exception.py:189
+#, python-format
+msgid "Could not find group, %(group_id)s."
+msgstr ""
+
+#: keystone/exception.py:193
+#, python-format
+msgid "Could not find trust, %(trust_id)s."
+msgstr ""
+
+#: keystone/exception.py:197
+#, python-format
+msgid "Could not find credential, %(credential_id)s."
+msgstr ""
+
+#: keystone/exception.py:201
+#, python-format
+msgid "Could not find version, %(version)s."
+msgstr ""
+
+#: keystone/exception.py:205
+#, python-format
+msgid "Conflict occurred attempting to store %(type)s. %(details)s"
+msgstr ""
+
+#: keystone/exception.py:212
+msgid "Request is too large."
+msgstr ""
+
+#: keystone/exception.py:218
+#, python-format
+msgid ""
+"An unexpected error prevented the server from fulfilling your request. "
+"%(exception)s"
+msgstr ""
+
+#: keystone/exception.py:225
+#, python-format
+msgid "Malformed endpoint URL (%(endpoint)s), see ERROR log for details."
+msgstr ""
+
+#: keystone/exception.py:230
+msgid "The action you have requested has not been implemented."
+msgstr ""
+
+#: keystone/exception.py:237
+#, python-format
+msgid "The Keystone paste configuration file %(config_file)s could not be found."
+msgstr ""
+
+#: keystone/test.py:117
#, python-format
msgid "Failed to checkout %s"
msgstr ""
-#: keystone/assignment/backends/ldap.py:110
+#: keystone/assignment/core.py:529
#, python-format
msgid "Expected dict or list: %s"
msgstr ""
-#: keystone/assignment/backends/ldap.py:456
-#: keystone/identity/backends/ldap.py:433
+#: keystone/assignment/backends/kvs.py:138
+#: keystone/assignment/backends/sql.py:285
#, python-format
-msgid "Role %s not found"
+msgid "Cannot remove role that has not been granted, %s"
msgstr ""
-#: keystone/assignment/backends/sql.py:244
+#: keystone/assignment/backends/ldap.py:418
#, python-format
-msgid "Cannot remove role that has not been granted, %s"
+msgid "Role %s not found"
msgstr ""
-#: keystone/auth/controllers.py:72
+#: keystone/assignment/backends/sql.py:114
+msgid "Inherited roles can only be assigned to domains"
+msgstr ""
+
+#: keystone/auth/controllers.py:71
#, python-format
msgid "Project is disabled: %s"
msgstr ""
-#: keystone/auth/controllers.py:78 keystone/auth/plugins/password.py:38
+#: keystone/auth/controllers.py:77 keystone/auth/plugins/password.py:38
#, python-format
msgid "Domain is disabled: %s"
msgstr ""
-#: keystone/auth/controllers.py:84 keystone/auth/plugins/password.py:44
+#: keystone/auth/controllers.py:83 keystone/auth/plugins/password.py:44
#, python-format
msgid "User is disabled: %s"
msgstr ""
-#: keystone/auth/controllers.py:259
+#: keystone/auth/controllers.py:262
msgid "Scoping to both domain and project is not allowed"
msgstr ""
-#: keystone/auth/controllers.py:262
+#: keystone/auth/controllers.py:265
msgid "Scoping to both domain and trust is not allowed"
msgstr ""
-#: keystone/auth/controllers.py:265
+#: keystone/auth/controllers.py:268
msgid "Scoping to both project and trust is not allowed"
msgstr ""
-#: keystone/auth/controllers.py:325
-#, python-format
-msgid "Unable to lookup user %s"
-msgstr ""
-
-#: keystone/auth/controllers.py:355
+#: keystone/auth/controllers.py:353
msgid "User not found"
msgstr ""
-#: keystone/auth/token_factory.py:79
-msgid "User have no access to project"
-msgstr ""
-
-#: keystone/auth/token_factory.py:94
-msgid "User have no access to domain"
+#: keystone/auth/plugins/external.py:36 keystone/auth/plugins/external.py:66
+msgid "No authenticated user"
msgstr ""
-#: keystone/auth/token_factory.py:311 keystone/token/controllers.py:119
-msgid "Unable to sign token."
+#: keystone/auth/plugins/external.py:49 keystone/auth/plugins/external.py:86
+#, python-format
+msgid "Unable to lookup user %s"
msgstr ""
-#: keystone/auth/token_factory.py:314 keystone/token/controllers.py:122
-#, python-format
-msgid "Invalid value for token_format: %s. Allowed values are PKI or UUID."
+#: keystone/auth/plugins/password.py:112
+msgid "Invalid username or password"
msgstr ""
#: keystone/catalog/core.py:38
@@ -170,32 +316,32 @@ msgstr ""
msgid "RBAC: Invalid token"
msgstr ""
-#: keystone/common/controller.py:35 keystone/common/controller.py:56
+#: keystone/common/controller.py:39 keystone/common/controller.py:60
msgid "RBAC: Invalid user"
msgstr ""
-#: keystone/common/controller.py:41
+#: keystone/common/controller.py:45
msgid "RBAC: Proceeding without project"
msgstr ""
-#: keystone/common/controller.py:61
+#: keystone/common/controller.py:65
msgid "RBAC: Proceeding without tenant"
msgstr ""
-#: keystone/common/controller.py:91 keystone/common/controller.py:142
+#: keystone/common/controller.py:95 keystone/common/controller.py:146
msgid "RBAC: Bypassing authorization"
msgstr ""
-#: keystone/common/controller.py:100 keystone/common/controller.py:140
+#: keystone/common/controller.py:104 keystone/common/controller.py:144
msgid "RBAC: Authorization granted"
msgstr ""
-#: keystone/common/controller.py:130
+#: keystone/common/controller.py:134
#, python-format
msgid "RBAC: Adding query filter params (%s)"
msgstr ""
-#: keystone/common/controller.py:318
+#: keystone/common/controller.py:322
msgid "Invalid token in normalize_domain_id"
msgstr ""
@@ -206,17 +352,48 @@ msgid ""
"listening on that port."
msgstr ""
-#: keystone/common/wsgi.py:162
+#: keystone/common/wsgi.py:95
+msgid "No bind information present in token"
+msgstr ""
+
+#: keystone/common/wsgi.py:99
+#, python-format
+msgid "Named bind mode %s not in bind information"
+msgstr ""
+
+#: keystone/common/wsgi.py:105
+msgid "Kerberos credentials required and not present"
+msgstr ""
+
+#: keystone/common/wsgi.py:109
+msgid "Kerberos credentials do not match those in bind"
+msgstr ""
+
+#: keystone/common/wsgi.py:112
+msgid "Kerberos bind authentication successful"
+msgstr ""
+
+#: keystone/common/wsgi.py:115
+#, python-format
+msgid "Ignoring unknown bind for permissive mode: {%(bind_type)s: %(identifier)s}"
+msgstr ""
+
+#: keystone/common/wsgi.py:119
+#, python-format
+msgid "Couldn't verify unknown bind: {%(bind_type)s: %(identifier)s}"
+msgstr ""
+
+#: keystone/common/wsgi.py:211
#, python-format
msgid "arg_dict: %s"
msgstr ""
-#: keystone/common/wsgi.py:188
+#: keystone/common/wsgi.py:243
#, python-format
msgid "Authorization failed. %(exception)s from %(remote_addr)s"
msgstr ""
-#: keystone/common/wsgi.py:431
+#: keystone/common/wsgi.py:487
msgid "The resource could not be found."
msgstr ""
@@ -457,11 +634,11 @@ msgstr ""
msgid "Search scope %s not implemented."
msgstr ""
-#: keystone/common/sql/core.py:126
+#: keystone/common/sql/core.py:119
msgid "Global engine callback raised."
msgstr ""
-#: keystone/common/sql/core.py:240
+#: keystone/common/sql/core.py:233
#, python-format
msgid "Got mysql server has gone away: %s"
msgstr ""
@@ -510,7 +687,7 @@ msgstr ""
msgid "Creating ec2 cred for user %(user_id)s and tenant %(tenant_id)s"
msgstr ""
-#: keystone/identity/controllers.py:878
+#: keystone/identity/controllers.py:952
#, python-format
msgid ""
"Group %(group)s not found for role-assignment - %(target)s with Role: "
@@ -521,18 +698,18 @@ msgstr ""
msgid "User not found in group"
msgstr ""
-#: keystone/identity/backends/ldap.py:192
+#: keystone/identity/backends/ldap.py:189
#, python-format
msgid ""
"Group member '%(user_dn)s' not found in '%(group_id)s'. The user should "
"be removed from the group. The user will be ignored."
msgstr ""
-#: keystone/identity/backends/ldap.py:621
+#: keystone/identity/backends/ldap.py:334
msgid "Changing Name not supported by LDAP"
msgstr ""
-#: keystone/identity/backends/ldap.py:634
+#: keystone/identity/backends/ldap.py:347
#, python-format
msgid "User %(user_id)s is already a member of group %(group_id)s"
msgstr ""
@@ -552,26 +729,56 @@ msgstr ""
msgid "Failed to understand rule %(rule)r"
msgstr ""
+#: keystone/openstack/common/crypto/utils.py:29
+msgid "An unknown error occurred in crypto utils."
+msgstr ""
+
+#: keystone/openstack/common/crypto/utils.py:36
+#, python-format
+msgid "Block size of %(given)d is too big, max = %(maximum)d"
+msgstr ""
+
+#: keystone/openstack/common/crypto/utils.py:45
+#, python-format
+msgid "Length of %(given)d is too long, max = %(maximum)d"
+msgstr ""
+
#: keystone/policy/backends/rules.py:93
#, python-format
msgid "enforce %(action)s: %(credentials)s"
msgstr ""
-#: keystone/token/controllers.py:396
+#: keystone/token/controllers.py:378
#, python-format
msgid "User %(u_id)s is unauthorized for tenant %(t_id)s"
msgstr ""
-#: keystone/token/controllers.py:413 keystone/token/controllers.py:416
+#: keystone/token/controllers.py:395 keystone/token/controllers.py:398
msgid "Token does not belong to specified tenant."
msgstr ""
-#: keystone/token/controllers.py:423
-msgid "Non-default domain is not supported"
+#: keystone/token/provider.py:76
+msgid ""
+"keystone.conf [signing] token_format (deprecated) conflicts with "
+"keystone.conf [token] provider"
msgstr ""
-#: keystone/token/controllers.py:431
-msgid "Domain scoped token is not supported"
+#: keystone/token/provider.py:84
+msgid ""
+"keystone.conf [signing] token_format is deprecated in favor of "
+"keystone.conf [token] provider"
+msgstr ""
+
+#: keystone/token/provider.py:94
+msgid ""
+"Unrecognized keystone.conf [signing] token_format: expected either 'UUID'"
+" or 'PKI'"
+msgstr ""
+
+#: keystone/token/backends/kvs.py:37
+msgid ""
+"kvs token backend is DEPRECATED. Use keystone.token.backends.sql or "
+"keystone.token.backend.memcache instead."
msgstr ""
#: keystone/token/backends/memcache.py:144
@@ -596,3 +803,54 @@ msgstr ""
msgid "Unable to add token to revocation list."
msgstr ""
+#: keystone/token/providers/pki.py:43
+msgid "Unable to sign token."
+msgstr ""
+
+#: keystone/token/providers/uuid.py:193
+msgid "Trustor is disabled."
+msgstr ""
+
+#: keystone/token/providers/uuid.py:238
+msgid "Trustee has no delegated roles."
+msgstr ""
+
+#: keystone/token/providers/uuid.py:247
+#, python-format
+msgid "User %(user_id)s has no access to project %(project_id)s"
+msgstr ""
+
+#: keystone/token/providers/uuid.py:252
+#, python-format
+msgid "User %(user_id)s has no access to domain %(domain_id)s"
+msgstr ""
+
+#: keystone/token/providers/uuid.py:303
+msgid "User is not a trustee."
+msgstr ""
+
+#: keystone/token/providers/uuid.py:457
+msgid "Non-default domain is not supported"
+msgstr ""
+
+#: keystone/token/providers/uuid.py:465
+msgid "Domain scoped token is not supported"
+msgstr ""
+
+#: keystone/token/providers/uuid.py:528
+msgid "Failed to validate token"
+msgstr ""
+
+#: keystone/token/providers/uuid.py:566 keystone/token/providers/uuid.py:576
+msgid "Failed to verify token"
+msgstr ""
+
+#~ msgid "User have no access to project"
+#~ msgstr ""
+
+#~ msgid "User have no access to domain"
+#~ msgstr ""
+
+#~ msgid "Invalid value for token_format: %s. Allowed values are PKI or UUID."
+#~ msgstr ""
+
diff --git a/keystone/locale/da/LC_MESSAGES/keystone.po b/keystone/locale/da/LC_MESSAGES/keystone.po
index ed07f63b..4243c60f 100644
--- a/keystone/locale/da/LC_MESSAGES/keystone.po
+++ b/keystone/locale/da/LC_MESSAGES/keystone.po
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Keystone\n"
"Report-Msgid-Bugs-To: https://bugs.launchpad.net/keystone\n"
-"POT-Creation-Date: 2013-07-11 17:05+0000\n"
+"POT-Creation-Date: 2013-08-02 17:05+0000\n"
"PO-Revision-Date: 2013-05-17 16:06+0000\n"
"Last-Translator: openstackjenkins <jenkins@openstack.org>\n"
"Language-Team: Danish "
@@ -16,7 +16,7 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"Generated-By: Babel 0.9.6\n"
+"Generated-By: Babel 1.3\n"
#: keystone/clean.py:23
#, python-format
@@ -38,78 +38,224 @@ msgstr ""
msgid "%(property_name)s is not a %(display_expected_type)s"
msgstr ""
-#: keystone/test.py:106
+#: keystone/exception.py:48
+msgid "missing exception kwargs (programmer error)"
+msgstr ""
+
+#: keystone/exception.py:65
+#, python-format
+msgid ""
+"Expecting to find %(attribute)s in %(target)s. The server could not "
+"comply with the request since it is either malformed or otherwise "
+"incorrect. The client is assumed to be in error."
+msgstr ""
+
+#: keystone/exception.py:74
+#, python-format
+msgid ""
+"String length exceeded.The length of string '%(string)s' exceeded the "
+"limit of column %(type)s(CHAR(%(length)d))."
+msgstr ""
+
+#: keystone/exception.py:80
+#, python-format
+msgid ""
+"Request attribute %(attribute)s must be less than or equal to %(size)i. "
+"The server could not comply with the request because the attribute size "
+"is invalid (too large). The client is assumed to be in error."
+msgstr ""
+
+#: keystone/exception.py:101
+msgid "The request you have made requires authentication."
+msgstr ""
+
+#: keystone/exception.py:107
+msgid "Authentication plugin error."
+msgstr ""
+
+#: keystone/exception.py:115
+msgid "Attempted to authenticate with an unsupported method."
+msgstr ""
+
+#: keystone/exception.py:123
+msgid "Additional authentications steps required."
+msgstr ""
+
+#: keystone/exception.py:131
+msgid "You are not authorized to perform the requested action."
+msgstr ""
+
+#: keystone/exception.py:138
+#, python-format
+msgid "You are not authorized to perform the requested action, %(action)s."
+msgstr ""
+
+#: keystone/exception.py:143
+#, python-format
+msgid "Could not find, %(target)s."
+msgstr ""
+
+#: keystone/exception.py:149
+#, python-format
+msgid "Could not find endpoint, %(endpoint_id)s."
+msgstr ""
+
+#: keystone/exception.py:156
+msgid "An unhandled exception has occurred: Could not find metadata."
+msgstr ""
+
+#: keystone/exception.py:161
+#, python-format
+msgid "Could not find policy, %(policy_id)s."
+msgstr ""
+
+#: keystone/exception.py:165
+#, python-format
+msgid "Could not find role, %(role_id)s."
+msgstr ""
+
+#: keystone/exception.py:169
+#, python-format
+msgid "Could not find service, %(service_id)s."
+msgstr ""
+
+#: keystone/exception.py:173
+#, python-format
+msgid "Could not find domain, %(domain_id)s."
+msgstr ""
+
+#: keystone/exception.py:177
+#, python-format
+msgid "Could not find project, %(project_id)s."
+msgstr ""
+
+#: keystone/exception.py:181
+#, python-format
+msgid "Could not find token, %(token_id)s."
+msgstr ""
+
+#: keystone/exception.py:185
+#, python-format
+msgid "Could not find user, %(user_id)s."
+msgstr ""
+
+#: keystone/exception.py:189
+#, python-format
+msgid "Could not find group, %(group_id)s."
+msgstr ""
+
+#: keystone/exception.py:193
+#, python-format
+msgid "Could not find trust, %(trust_id)s."
+msgstr ""
+
+#: keystone/exception.py:197
+#, python-format
+msgid "Could not find credential, %(credential_id)s."
+msgstr ""
+
+#: keystone/exception.py:201
+#, python-format
+msgid "Could not find version, %(version)s."
+msgstr ""
+
+#: keystone/exception.py:205
+#, python-format
+msgid "Conflict occurred attempting to store %(type)s. %(details)s"
+msgstr ""
+
+#: keystone/exception.py:212
+msgid "Request is too large."
+msgstr ""
+
+#: keystone/exception.py:218
+#, python-format
+msgid ""
+"An unexpected error prevented the server from fulfilling your request. "
+"%(exception)s"
+msgstr ""
+
+#: keystone/exception.py:225
+#, python-format
+msgid "Malformed endpoint URL (%(endpoint)s), see ERROR log for details."
+msgstr ""
+
+#: keystone/exception.py:230
+msgid "The action you have requested has not been implemented."
+msgstr ""
+
+#: keystone/exception.py:237
+#, python-format
+msgid "The Keystone paste configuration file %(config_file)s could not be found."
+msgstr ""
+
+#: keystone/test.py:117
#, python-format
msgid "Failed to checkout %s"
msgstr ""
-#: keystone/assignment/backends/ldap.py:110
+#: keystone/assignment/core.py:529
#, python-format
msgid "Expected dict or list: %s"
msgstr ""
-#: keystone/assignment/backends/ldap.py:456
-#: keystone/identity/backends/ldap.py:433
+#: keystone/assignment/backends/kvs.py:138
+#: keystone/assignment/backends/sql.py:285
#, python-format
-msgid "Role %s not found"
+msgid "Cannot remove role that has not been granted, %s"
msgstr ""
-#: keystone/assignment/backends/sql.py:244
+#: keystone/assignment/backends/ldap.py:418
#, python-format
-msgid "Cannot remove role that has not been granted, %s"
+msgid "Role %s not found"
msgstr ""
-#: keystone/auth/controllers.py:72
+#: keystone/assignment/backends/sql.py:114
+msgid "Inherited roles can only be assigned to domains"
+msgstr ""
+
+#: keystone/auth/controllers.py:71
#, python-format
msgid "Project is disabled: %s"
msgstr ""
-#: keystone/auth/controllers.py:78 keystone/auth/plugins/password.py:38
+#: keystone/auth/controllers.py:77 keystone/auth/plugins/password.py:38
#, python-format
msgid "Domain is disabled: %s"
msgstr ""
-#: keystone/auth/controllers.py:84 keystone/auth/plugins/password.py:44
+#: keystone/auth/controllers.py:83 keystone/auth/plugins/password.py:44
#, python-format
msgid "User is disabled: %s"
msgstr ""
-#: keystone/auth/controllers.py:259
+#: keystone/auth/controllers.py:262
msgid "Scoping to both domain and project is not allowed"
msgstr ""
-#: keystone/auth/controllers.py:262
+#: keystone/auth/controllers.py:265
msgid "Scoping to both domain and trust is not allowed"
msgstr ""
-#: keystone/auth/controllers.py:265
+#: keystone/auth/controllers.py:268
msgid "Scoping to both project and trust is not allowed"
msgstr ""
-#: keystone/auth/controllers.py:325
-#, python-format
-msgid "Unable to lookup user %s"
-msgstr ""
-
-#: keystone/auth/controllers.py:355
+#: keystone/auth/controllers.py:353
msgid "User not found"
msgstr ""
-#: keystone/auth/token_factory.py:79
-msgid "User have no access to project"
-msgstr ""
-
-#: keystone/auth/token_factory.py:94
-msgid "User have no access to domain"
+#: keystone/auth/plugins/external.py:36 keystone/auth/plugins/external.py:66
+msgid "No authenticated user"
msgstr ""
-#: keystone/auth/token_factory.py:311 keystone/token/controllers.py:119
-msgid "Unable to sign token."
+#: keystone/auth/plugins/external.py:49 keystone/auth/plugins/external.py:86
+#, python-format
+msgid "Unable to lookup user %s"
msgstr ""
-#: keystone/auth/token_factory.py:314 keystone/token/controllers.py:122
-#, python-format
-msgid "Invalid value for token_format: %s. Allowed values are PKI or UUID."
+#: keystone/auth/plugins/password.py:112
+msgid "Invalid username or password"
msgstr ""
#: keystone/catalog/core.py:38
@@ -170,32 +316,32 @@ msgstr ""
msgid "RBAC: Invalid token"
msgstr ""
-#: keystone/common/controller.py:35 keystone/common/controller.py:56
+#: keystone/common/controller.py:39 keystone/common/controller.py:60
msgid "RBAC: Invalid user"
msgstr ""
-#: keystone/common/controller.py:41
+#: keystone/common/controller.py:45
msgid "RBAC: Proceeding without project"
msgstr ""
-#: keystone/common/controller.py:61
+#: keystone/common/controller.py:65
msgid "RBAC: Proceeding without tenant"
msgstr ""
-#: keystone/common/controller.py:91 keystone/common/controller.py:142
+#: keystone/common/controller.py:95 keystone/common/controller.py:146
msgid "RBAC: Bypassing authorization"
msgstr ""
-#: keystone/common/controller.py:100 keystone/common/controller.py:140
+#: keystone/common/controller.py:104 keystone/common/controller.py:144
msgid "RBAC: Authorization granted"
msgstr ""
-#: keystone/common/controller.py:130
+#: keystone/common/controller.py:134
#, python-format
msgid "RBAC: Adding query filter params (%s)"
msgstr ""
-#: keystone/common/controller.py:318
+#: keystone/common/controller.py:322
msgid "Invalid token in normalize_domain_id"
msgstr ""
@@ -206,17 +352,48 @@ msgid ""
"listening on that port."
msgstr ""
-#: keystone/common/wsgi.py:162
+#: keystone/common/wsgi.py:95
+msgid "No bind information present in token"
+msgstr ""
+
+#: keystone/common/wsgi.py:99
+#, python-format
+msgid "Named bind mode %s not in bind information"
+msgstr ""
+
+#: keystone/common/wsgi.py:105
+msgid "Kerberos credentials required and not present"
+msgstr ""
+
+#: keystone/common/wsgi.py:109
+msgid "Kerberos credentials do not match those in bind"
+msgstr ""
+
+#: keystone/common/wsgi.py:112
+msgid "Kerberos bind authentication successful"
+msgstr ""
+
+#: keystone/common/wsgi.py:115
+#, python-format
+msgid "Ignoring unknown bind for permissive mode: {%(bind_type)s: %(identifier)s}"
+msgstr ""
+
+#: keystone/common/wsgi.py:119
+#, python-format
+msgid "Couldn't verify unknown bind: {%(bind_type)s: %(identifier)s}"
+msgstr ""
+
+#: keystone/common/wsgi.py:211
#, python-format
msgid "arg_dict: %s"
msgstr ""
-#: keystone/common/wsgi.py:188
+#: keystone/common/wsgi.py:243
#, python-format
msgid "Authorization failed. %(exception)s from %(remote_addr)s"
msgstr ""
-#: keystone/common/wsgi.py:431
+#: keystone/common/wsgi.py:487
msgid "The resource could not be found."
msgstr ""
@@ -457,11 +634,11 @@ msgstr ""
msgid "Search scope %s not implemented."
msgstr ""
-#: keystone/common/sql/core.py:126
+#: keystone/common/sql/core.py:119
msgid "Global engine callback raised."
msgstr ""
-#: keystone/common/sql/core.py:240
+#: keystone/common/sql/core.py:233
#, python-format
msgid "Got mysql server has gone away: %s"
msgstr ""
@@ -510,7 +687,7 @@ msgstr ""
msgid "Creating ec2 cred for user %(user_id)s and tenant %(tenant_id)s"
msgstr ""
-#: keystone/identity/controllers.py:878
+#: keystone/identity/controllers.py:952
#, python-format
msgid ""
"Group %(group)s not found for role-assignment - %(target)s with Role: "
@@ -521,18 +698,18 @@ msgstr ""
msgid "User not found in group"
msgstr ""
-#: keystone/identity/backends/ldap.py:192
+#: keystone/identity/backends/ldap.py:189
#, python-format
msgid ""
"Group member '%(user_dn)s' not found in '%(group_id)s'. The user should "
"be removed from the group. The user will be ignored."
msgstr ""
-#: keystone/identity/backends/ldap.py:621
+#: keystone/identity/backends/ldap.py:334
msgid "Changing Name not supported by LDAP"
msgstr ""
-#: keystone/identity/backends/ldap.py:634
+#: keystone/identity/backends/ldap.py:347
#, python-format
msgid "User %(user_id)s is already a member of group %(group_id)s"
msgstr ""
@@ -552,26 +729,56 @@ msgstr ""
msgid "Failed to understand rule %(rule)r"
msgstr ""
+#: keystone/openstack/common/crypto/utils.py:29
+msgid "An unknown error occurred in crypto utils."
+msgstr ""
+
+#: keystone/openstack/common/crypto/utils.py:36
+#, python-format
+msgid "Block size of %(given)d is too big, max = %(maximum)d"
+msgstr ""
+
+#: keystone/openstack/common/crypto/utils.py:45
+#, python-format
+msgid "Length of %(given)d is too long, max = %(maximum)d"
+msgstr ""
+
#: keystone/policy/backends/rules.py:93
#, python-format
msgid "enforce %(action)s: %(credentials)s"
msgstr ""
-#: keystone/token/controllers.py:396
+#: keystone/token/controllers.py:378
#, python-format
msgid "User %(u_id)s is unauthorized for tenant %(t_id)s"
msgstr ""
-#: keystone/token/controllers.py:413 keystone/token/controllers.py:416
+#: keystone/token/controllers.py:395 keystone/token/controllers.py:398
msgid "Token does not belong to specified tenant."
msgstr ""
-#: keystone/token/controllers.py:423
-msgid "Non-default domain is not supported"
+#: keystone/token/provider.py:76
+msgid ""
+"keystone.conf [signing] token_format (deprecated) conflicts with "
+"keystone.conf [token] provider"
msgstr ""
-#: keystone/token/controllers.py:431
-msgid "Domain scoped token is not supported"
+#: keystone/token/provider.py:84
+msgid ""
+"keystone.conf [signing] token_format is deprecated in favor of "
+"keystone.conf [token] provider"
+msgstr ""
+
+#: keystone/token/provider.py:94
+msgid ""
+"Unrecognized keystone.conf [signing] token_format: expected either 'UUID'"
+" or 'PKI'"
+msgstr ""
+
+#: keystone/token/backends/kvs.py:37
+msgid ""
+"kvs token backend is DEPRECATED. Use keystone.token.backends.sql or "
+"keystone.token.backend.memcache instead."
msgstr ""
#: keystone/token/backends/memcache.py:144
@@ -596,3 +803,54 @@ msgstr ""
msgid "Unable to add token to revocation list."
msgstr ""
+#: keystone/token/providers/pki.py:43
+msgid "Unable to sign token."
+msgstr ""
+
+#: keystone/token/providers/uuid.py:193
+msgid "Trustor is disabled."
+msgstr ""
+
+#: keystone/token/providers/uuid.py:238
+msgid "Trustee has no delegated roles."
+msgstr ""
+
+#: keystone/token/providers/uuid.py:247
+#, python-format
+msgid "User %(user_id)s has no access to project %(project_id)s"
+msgstr ""
+
+#: keystone/token/providers/uuid.py:252
+#, python-format
+msgid "User %(user_id)s has no access to domain %(domain_id)s"
+msgstr ""
+
+#: keystone/token/providers/uuid.py:303
+msgid "User is not a trustee."
+msgstr ""
+
+#: keystone/token/providers/uuid.py:457
+msgid "Non-default domain is not supported"
+msgstr ""
+
+#: keystone/token/providers/uuid.py:465
+msgid "Domain scoped token is not supported"
+msgstr ""
+
+#: keystone/token/providers/uuid.py:528
+msgid "Failed to validate token"
+msgstr ""
+
+#: keystone/token/providers/uuid.py:566 keystone/token/providers/uuid.py:576
+msgid "Failed to verify token"
+msgstr ""
+
+#~ msgid "User have no access to project"
+#~ msgstr ""
+
+#~ msgid "User have no access to domain"
+#~ msgstr ""
+
+#~ msgid "Invalid value for token_format: %s. Allowed values are PKI or UUID."
+#~ msgstr ""
+
diff --git a/keystone/locale/de/LC_MESSAGES/keystone.po b/keystone/locale/de/LC_MESSAGES/keystone.po
index b47004fb..eb3b905d 100644
--- a/keystone/locale/de/LC_MESSAGES/keystone.po
+++ b/keystone/locale/de/LC_MESSAGES/keystone.po
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Keystone\n"
"Report-Msgid-Bugs-To: https://bugs.launchpad.net/keystone\n"
-"POT-Creation-Date: 2013-07-11 17:05+0000\n"
+"POT-Creation-Date: 2013-08-02 17:05+0000\n"
"PO-Revision-Date: 2013-05-22 03:45+0000\n"
"Last-Translator: daisy.ycguo <daisy.ycguo@gmail.com>\n"
"Language-Team: German "
@@ -16,7 +16,7 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"Generated-By: Babel 0.9.6\n"
+"Generated-By: Babel 1.3\n"
#: keystone/clean.py:23
#, python-format
@@ -38,81 +38,225 @@ msgstr "%(property_name)s sollte nicht größer als %(max_length)s Zeichen sein.
msgid "%(property_name)s is not a %(display_expected_type)s"
msgstr ""
-#: keystone/test.py:106
+#: keystone/exception.py:48
+msgid "missing exception kwargs (programmer error)"
+msgstr ""
+
+#: keystone/exception.py:65
+#, python-format
+msgid ""
+"Expecting to find %(attribute)s in %(target)s. The server could not "
+"comply with the request since it is either malformed or otherwise "
+"incorrect. The client is assumed to be in error."
+msgstr ""
+
+#: keystone/exception.py:74
+#, python-format
+msgid ""
+"String length exceeded.The length of string '%(string)s' exceeded the "
+"limit of column %(type)s(CHAR(%(length)d))."
+msgstr ""
+
+#: keystone/exception.py:80
+#, python-format
+msgid ""
+"Request attribute %(attribute)s must be less than or equal to %(size)i. "
+"The server could not comply with the request because the attribute size "
+"is invalid (too large). The client is assumed to be in error."
+msgstr ""
+
+#: keystone/exception.py:101
+msgid "The request you have made requires authentication."
+msgstr ""
+
+#: keystone/exception.py:107
+msgid "Authentication plugin error."
+msgstr ""
+
+#: keystone/exception.py:115
+msgid "Attempted to authenticate with an unsupported method."
+msgstr ""
+
+#: keystone/exception.py:123
+msgid "Additional authentications steps required."
+msgstr ""
+
+#: keystone/exception.py:131
+msgid "You are not authorized to perform the requested action."
+msgstr ""
+
+#: keystone/exception.py:138
+#, python-format
+msgid "You are not authorized to perform the requested action, %(action)s."
+msgstr ""
+
+#: keystone/exception.py:143
+#, python-format
+msgid "Could not find, %(target)s."
+msgstr ""
+
+#: keystone/exception.py:149
+#, python-format
+msgid "Could not find endpoint, %(endpoint_id)s."
+msgstr ""
+
+#: keystone/exception.py:156
+msgid "An unhandled exception has occurred: Could not find metadata."
+msgstr ""
+
+#: keystone/exception.py:161
+#, python-format
+msgid "Could not find policy, %(policy_id)s."
+msgstr ""
+
+#: keystone/exception.py:165
+#, python-format
+msgid "Could not find role, %(role_id)s."
+msgstr ""
+
+#: keystone/exception.py:169
+#, python-format
+msgid "Could not find service, %(service_id)s."
+msgstr ""
+
+#: keystone/exception.py:173
+#, python-format
+msgid "Could not find domain, %(domain_id)s."
+msgstr ""
+
+#: keystone/exception.py:177
+#, python-format
+msgid "Could not find project, %(project_id)s."
+msgstr ""
+
+#: keystone/exception.py:181
+#, python-format
+msgid "Could not find token, %(token_id)s."
+msgstr ""
+
+#: keystone/exception.py:185
+#, python-format
+msgid "Could not find user, %(user_id)s."
+msgstr ""
+
+#: keystone/exception.py:189
+#, python-format
+msgid "Could not find group, %(group_id)s."
+msgstr ""
+
+#: keystone/exception.py:193
+#, python-format
+msgid "Could not find trust, %(trust_id)s."
+msgstr ""
+
+#: keystone/exception.py:197
+#, python-format
+msgid "Could not find credential, %(credential_id)s."
+msgstr ""
+
+#: keystone/exception.py:201
+#, python-format
+msgid "Could not find version, %(version)s."
+msgstr ""
+
+#: keystone/exception.py:205
+#, python-format
+msgid "Conflict occurred attempting to store %(type)s. %(details)s"
+msgstr ""
+
+#: keystone/exception.py:212
+msgid "Request is too large."
+msgstr ""
+
+#: keystone/exception.py:218
+#, python-format
+msgid ""
+"An unexpected error prevented the server from fulfilling your request. "
+"%(exception)s"
+msgstr ""
+
+#: keystone/exception.py:225
+#, python-format
+msgid "Malformed endpoint URL (%(endpoint)s), see ERROR log for details."
+msgstr ""
+
+#: keystone/exception.py:230
+msgid "The action you have requested has not been implemented."
+msgstr ""
+
+#: keystone/exception.py:237
+#, python-format
+msgid "The Keystone paste configuration file %(config_file)s could not be found."
+msgstr ""
+
+#: keystone/test.py:117
#, python-format
msgid "Failed to checkout %s"
msgstr "%s wurde nicht ausgecheckt"
-#: keystone/assignment/backends/ldap.py:110
+#: keystone/assignment/core.py:529
#, python-format
msgid "Expected dict or list: %s"
msgstr ""
-#: keystone/assignment/backends/ldap.py:456
-#: keystone/identity/backends/ldap.py:433
+#: keystone/assignment/backends/kvs.py:138
+#: keystone/assignment/backends/sql.py:285
+#, python-format
+msgid "Cannot remove role that has not been granted, %s"
+msgstr "Nicht gewährte Rolle kann nicht entfernt werden, %s"
+
+#: keystone/assignment/backends/ldap.py:418
#, python-format
msgid "Role %s not found"
msgstr "Rolle %s nicht gefunden"
-#: keystone/assignment/backends/sql.py:244
-#, python-format
-msgid "Cannot remove role that has not been granted, %s"
-msgstr "Nicht gewährte Rolle kann nicht entfernt werden, %s"
+#: keystone/assignment/backends/sql.py:114
+msgid "Inherited roles can only be assigned to domains"
+msgstr ""
-#: keystone/auth/controllers.py:72
+#: keystone/auth/controllers.py:71
#, python-format
msgid "Project is disabled: %s"
msgstr "Projekt ist inaktiviert: %s"
-#: keystone/auth/controllers.py:78 keystone/auth/plugins/password.py:38
+#: keystone/auth/controllers.py:77 keystone/auth/plugins/password.py:38
#, python-format
msgid "Domain is disabled: %s"
msgstr "Domäne ist inaktiviert: %s"
-#: keystone/auth/controllers.py:84 keystone/auth/plugins/password.py:44
+#: keystone/auth/controllers.py:83 keystone/auth/plugins/password.py:44
#, python-format
msgid "User is disabled: %s"
msgstr "Benutzer ist inaktiviert: %s"
-#: keystone/auth/controllers.py:259
+#: keystone/auth/controllers.py:262
msgid "Scoping to both domain and project is not allowed"
msgstr "Scoping sowohl auf 'domain' als auch auf 'project' ist nicht zulässig"
-#: keystone/auth/controllers.py:262
+#: keystone/auth/controllers.py:265
msgid "Scoping to both domain and trust is not allowed"
msgstr "Scoping sowohl auf 'domain' als auch auf 'trust' ist nicht zulässig"
-#: keystone/auth/controllers.py:265
+#: keystone/auth/controllers.py:268
msgid "Scoping to both project and trust is not allowed"
msgstr "Scoping sowohl auf 'project' als auch auf 'trust' ist nicht zulässig"
-#: keystone/auth/controllers.py:325
-#, python-format
-msgid "Unable to lookup user %s"
-msgstr "Suche nach Benutzer %s nicht möglich"
-
-#: keystone/auth/controllers.py:355
+#: keystone/auth/controllers.py:353
msgid "User not found"
msgstr "Benutzer nicht gefunden"
-#: keystone/auth/token_factory.py:79
-msgid "User have no access to project"
-msgstr "Benutzer hat keinen Zugriff auf Projekt"
-
-#: keystone/auth/token_factory.py:94
-msgid "User have no access to domain"
-msgstr "Benutzer hat keinen Zugriff auf Domäne"
-
-#: keystone/auth/token_factory.py:311 keystone/token/controllers.py:119
-msgid "Unable to sign token."
-msgstr "Token kann nicht unterzeichnet werden."
+#: keystone/auth/plugins/external.py:36 keystone/auth/plugins/external.py:66
+msgid "No authenticated user"
+msgstr ""
-#: keystone/auth/token_factory.py:314 keystone/token/controllers.py:122
+#: keystone/auth/plugins/external.py:49 keystone/auth/plugins/external.py:86
#, python-format
-msgid "Invalid value for token_format: %s. Allowed values are PKI or UUID."
+msgid "Unable to lookup user %s"
+msgstr "Suche nach Benutzer %s nicht möglich"
+
+#: keystone/auth/plugins/password.py:112
+msgid "Invalid username or password"
msgstr ""
-"Ungültiger Wert für 'token_format': %s. Zulässige Werte sind PKI oder "
-"UUID."
#: keystone/catalog/core.py:38
#, python-format
@@ -178,34 +322,34 @@ msgstr ""
msgid "RBAC: Invalid token"
msgstr "Rollenbasierte Zugriffssteuerung: Ungültiges Token"
-#: keystone/common/controller.py:35 keystone/common/controller.py:56
+#: keystone/common/controller.py:39 keystone/common/controller.py:60
msgid "RBAC: Invalid user"
msgstr "Rollenbasierte Zugriffssteuerung: Ungültiger Benutzer"
-#: keystone/common/controller.py:41
+#: keystone/common/controller.py:45
msgid "RBAC: Proceeding without project"
msgstr "Rollenbasierte Zugriffssteuerung: Fortfahren ohne Projekt"
-#: keystone/common/controller.py:61
+#: keystone/common/controller.py:65
msgid "RBAC: Proceeding without tenant"
msgstr "Rollenbasierte Zugriffssteuerung: Fortsetzung ohne Nutzer"
-#: keystone/common/controller.py:91 keystone/common/controller.py:142
+#: keystone/common/controller.py:95 keystone/common/controller.py:146
msgid "RBAC: Bypassing authorization"
msgstr "Rollenbasierte Zugriffssteuerung: Umgehen von Autorisierung"
-#: keystone/common/controller.py:100 keystone/common/controller.py:140
+#: keystone/common/controller.py:104 keystone/common/controller.py:144
msgid "RBAC: Authorization granted"
msgstr "Rollenbasierte Zugriffssteuerung: Autorisierung erteilt"
-#: keystone/common/controller.py:130
+#: keystone/common/controller.py:134
#, python-format
msgid "RBAC: Adding query filter params (%s)"
msgstr ""
"Rollenbasierte Zugriffssteuerung: Hinzufügen von Abfragefilterparametern "
"(%s)"
-#: keystone/common/controller.py:318
+#: keystone/common/controller.py:322
msgid "Invalid token in normalize_domain_id"
msgstr "Ungültiges Token in 'normalize_domain_id'"
@@ -216,17 +360,48 @@ msgid ""
"listening on that port."
msgstr ""
-#: keystone/common/wsgi.py:162
+#: keystone/common/wsgi.py:95
+msgid "No bind information present in token"
+msgstr ""
+
+#: keystone/common/wsgi.py:99
+#, python-format
+msgid "Named bind mode %s not in bind information"
+msgstr ""
+
+#: keystone/common/wsgi.py:105
+msgid "Kerberos credentials required and not present"
+msgstr ""
+
+#: keystone/common/wsgi.py:109
+msgid "Kerberos credentials do not match those in bind"
+msgstr ""
+
+#: keystone/common/wsgi.py:112
+msgid "Kerberos bind authentication successful"
+msgstr ""
+
+#: keystone/common/wsgi.py:115
+#, python-format
+msgid "Ignoring unknown bind for permissive mode: {%(bind_type)s: %(identifier)s}"
+msgstr ""
+
+#: keystone/common/wsgi.py:119
+#, python-format
+msgid "Couldn't verify unknown bind: {%(bind_type)s: %(identifier)s}"
+msgstr ""
+
+#: keystone/common/wsgi.py:211
#, python-format
msgid "arg_dict: %s"
msgstr "arg_dict: %s"
-#: keystone/common/wsgi.py:188
+#: keystone/common/wsgi.py:243
#, fuzzy, python-format
msgid "Authorization failed. %(exception)s from %(remote_addr)s"
msgstr "Autorisierung fehlgeschlagen. %s von %s"
-#: keystone/common/wsgi.py:431
+#: keystone/common/wsgi.py:487
msgid "The resource could not be found."
msgstr "Die Ressource konnte nicht gefunden werden."
@@ -473,11 +648,11 @@ msgstr "FakeLdap-Suche fehlgeschlagen: dn für 'SCOPE_BASE' nicht gefunden"
msgid "Search scope %s not implemented."
msgstr "Suchbereich %s nicht implementiert."
-#: keystone/common/sql/core.py:126
+#: keystone/common/sql/core.py:119
msgid "Global engine callback raised."
msgstr ""
-#: keystone/common/sql/core.py:240
+#: keystone/common/sql/core.py:233
#, python-format
msgid "Got mysql server has gone away: %s"
msgstr ""
@@ -528,7 +703,7 @@ msgstr "Rolle %s Benutzer %s auf Nutzer %s zuweisen"
msgid "Creating ec2 cred for user %(user_id)s and tenant %(tenant_id)s"
msgstr "Erstellen von EC2-Berechtigungsnachweis für Benutzer %s und Nutzer %s"
-#: keystone/identity/controllers.py:878
+#: keystone/identity/controllers.py:952
#, python-format
msgid ""
"Group %(group)s not found for role-assignment - %(target)s with Role: "
@@ -539,18 +714,18 @@ msgstr ""
msgid "User not found in group"
msgstr "Benutzer nicht in Gruppe gefunden"
-#: keystone/identity/backends/ldap.py:192
+#: keystone/identity/backends/ldap.py:189
#, python-format
msgid ""
"Group member '%(user_dn)s' not found in '%(group_id)s'. The user should "
"be removed from the group. The user will be ignored."
msgstr ""
-#: keystone/identity/backends/ldap.py:621
+#: keystone/identity/backends/ldap.py:334
msgid "Changing Name not supported by LDAP"
msgstr "Änderung von Namen wird von LDAP nicht unterstützt"
-#: keystone/identity/backends/ldap.py:634
+#: keystone/identity/backends/ldap.py:347
#, fuzzy, python-format
msgid "User %(user_id)s is already a member of group %(group_id)s"
msgstr "Benutzer %s ist bereits Mitglied der Gruppe %s."
@@ -570,27 +745,57 @@ msgstr "Kein Handler für Übereinstimmungen des Typs %s"
msgid "Failed to understand rule %(rule)r"
msgstr "Regel '%(rule)r' konnte nicht verstanden werden"
+#: keystone/openstack/common/crypto/utils.py:29
+msgid "An unknown error occurred in crypto utils."
+msgstr ""
+
+#: keystone/openstack/common/crypto/utils.py:36
+#, python-format
+msgid "Block size of %(given)d is too big, max = %(maximum)d"
+msgstr ""
+
+#: keystone/openstack/common/crypto/utils.py:45
+#, python-format
+msgid "Length of %(given)d is too long, max = %(maximum)d"
+msgstr ""
+
#: keystone/policy/backends/rules.py:93
#, python-format
msgid "enforce %(action)s: %(credentials)s"
msgstr ""
-#: keystone/token/controllers.py:396
+#: keystone/token/controllers.py:378
#, python-format
msgid "User %(u_id)s is unauthorized for tenant %(t_id)s"
msgstr ""
-#: keystone/token/controllers.py:413 keystone/token/controllers.py:416
+#: keystone/token/controllers.py:395 keystone/token/controllers.py:398
msgid "Token does not belong to specified tenant."
msgstr "Token gehört nicht zu angegebenem Nutzer."
-#: keystone/token/controllers.py:423
-msgid "Non-default domain is not supported"
-msgstr "Nicht-Standard-Domäne wird nicht unterstützt"
+#: keystone/token/provider.py:76
+msgid ""
+"keystone.conf [signing] token_format (deprecated) conflicts with "
+"keystone.conf [token] provider"
+msgstr ""
-#: keystone/token/controllers.py:431
-msgid "Domain scoped token is not supported"
-msgstr "Bereichsorientiertes Token der Domäne wird nicht unterstützt"
+#: keystone/token/provider.py:84
+msgid ""
+"keystone.conf [signing] token_format is deprecated in favor of "
+"keystone.conf [token] provider"
+msgstr ""
+
+#: keystone/token/provider.py:94
+msgid ""
+"Unrecognized keystone.conf [signing] token_format: expected either 'UUID'"
+" or 'PKI'"
+msgstr ""
+
+#: keystone/token/backends/kvs.py:37
+msgid ""
+"kvs token backend is DEPRECATED. Use keystone.token.backends.sql or "
+"keystone.token.backend.memcache instead."
+msgstr ""
#: keystone/token/backends/memcache.py:144
#, python-format
@@ -614,3 +819,56 @@ msgstr ""
msgid "Unable to add token to revocation list."
msgstr "Token kann nicht zu Widerrufsliste hinzugefügt werden."
+#: keystone/token/providers/pki.py:43
+msgid "Unable to sign token."
+msgstr "Token kann nicht unterzeichnet werden."
+
+#: keystone/token/providers/uuid.py:193
+msgid "Trustor is disabled."
+msgstr ""
+
+#: keystone/token/providers/uuid.py:238
+msgid "Trustee has no delegated roles."
+msgstr ""
+
+#: keystone/token/providers/uuid.py:247
+#, python-format
+msgid "User %(user_id)s has no access to project %(project_id)s"
+msgstr ""
+
+#: keystone/token/providers/uuid.py:252
+#, python-format
+msgid "User %(user_id)s has no access to domain %(domain_id)s"
+msgstr ""
+
+#: keystone/token/providers/uuid.py:303
+msgid "User is not a trustee."
+msgstr ""
+
+#: keystone/token/providers/uuid.py:457
+msgid "Non-default domain is not supported"
+msgstr "Nicht-Standard-Domäne wird nicht unterstützt"
+
+#: keystone/token/providers/uuid.py:465
+msgid "Domain scoped token is not supported"
+msgstr "Bereichsorientiertes Token der Domäne wird nicht unterstützt"
+
+#: keystone/token/providers/uuid.py:528
+msgid "Failed to validate token"
+msgstr ""
+
+#: keystone/token/providers/uuid.py:566 keystone/token/providers/uuid.py:576
+msgid "Failed to verify token"
+msgstr ""
+
+#~ msgid "User have no access to project"
+#~ msgstr "Benutzer hat keinen Zugriff auf Projekt"
+
+#~ msgid "User have no access to domain"
+#~ msgstr "Benutzer hat keinen Zugriff auf Domäne"
+
+#~ msgid "Invalid value for token_format: %s. Allowed values are PKI or UUID."
+#~ msgstr ""
+#~ "Ungültiger Wert für 'token_format': %s. "
+#~ "Zulässige Werte sind PKI oder UUID."
+
diff --git a/keystone/locale/en_AU/LC_MESSAGES/keystone.po b/keystone/locale/en_AU/LC_MESSAGES/keystone.po
new file mode 100644
index 00000000..65c1161c
--- /dev/null
+++ b/keystone/locale/en_AU/LC_MESSAGES/keystone.po
@@ -0,0 +1,847 @@
+# English (Australia) translations for keystone.
+# Copyright (C) 2013 ORGANIZATION
+# This file is distributed under the same license as the keystone project.
+#
+# Translators:
+msgid ""
+msgstr ""
+"Project-Id-Version: Keystone\n"
+"Report-Msgid-Bugs-To: https://bugs.launchpad.net/keystone\n"
+"POT-Creation-Date: 2013-08-02 17:05+0000\n"
+"PO-Revision-Date: 2013-07-29 22:01+0000\n"
+"Last-Translator: openstackjenkins <jenkins@openstack.org>\n"
+"Language-Team: English (Australia) "
+"(http://www.transifex.com/projects/p/openstack/language/en_AU/)\n"
+"Plural-Forms: nplurals=2; plural=(n != 1)\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=utf-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Generated-By: Babel 1.3\n"
+
+#: keystone/clean.py:23
+#, python-format
+msgid "%s cannot be empty."
+msgstr ""
+
+#: keystone/clean.py:25
+#, python-format
+msgid "%(property_name)s cannot be less than %(min_length)s characters."
+msgstr ""
+
+#: keystone/clean.py:29
+#, python-format
+msgid "%(property_name)s should not be greater than %(max_length)s characters."
+msgstr ""
+
+#: keystone/clean.py:36
+#, python-format
+msgid "%(property_name)s is not a %(display_expected_type)s"
+msgstr ""
+
+#: keystone/exception.py:48
+msgid "missing exception kwargs (programmer error)"
+msgstr ""
+
+#: keystone/exception.py:65
+#, python-format
+msgid ""
+"Expecting to find %(attribute)s in %(target)s. The server could not "
+"comply with the request since it is either malformed or otherwise "
+"incorrect. The client is assumed to be in error."
+msgstr ""
+
+#: keystone/exception.py:74
+#, python-format
+msgid ""
+"String length exceeded.The length of string '%(string)s' exceeded the "
+"limit of column %(type)s(CHAR(%(length)d))."
+msgstr ""
+
+#: keystone/exception.py:80
+#, python-format
+msgid ""
+"Request attribute %(attribute)s must be less than or equal to %(size)i. "
+"The server could not comply with the request because the attribute size "
+"is invalid (too large). The client is assumed to be in error."
+msgstr ""
+
+#: keystone/exception.py:101
+msgid "The request you have made requires authentication."
+msgstr ""
+
+#: keystone/exception.py:107
+msgid "Authentication plugin error."
+msgstr ""
+
+#: keystone/exception.py:115
+msgid "Attempted to authenticate with an unsupported method."
+msgstr ""
+
+#: keystone/exception.py:123
+msgid "Additional authentications steps required."
+msgstr ""
+
+#: keystone/exception.py:131
+msgid "You are not authorized to perform the requested action."
+msgstr ""
+
+#: keystone/exception.py:138
+#, python-format
+msgid "You are not authorized to perform the requested action, %(action)s."
+msgstr ""
+
+#: keystone/exception.py:143
+#, python-format
+msgid "Could not find, %(target)s."
+msgstr ""
+
+#: keystone/exception.py:149
+#, python-format
+msgid "Could not find endpoint, %(endpoint_id)s."
+msgstr ""
+
+#: keystone/exception.py:156
+msgid "An unhandled exception has occurred: Could not find metadata."
+msgstr ""
+
+#: keystone/exception.py:161
+#, python-format
+msgid "Could not find policy, %(policy_id)s."
+msgstr ""
+
+#: keystone/exception.py:165
+#, python-format
+msgid "Could not find role, %(role_id)s."
+msgstr ""
+
+#: keystone/exception.py:169
+#, python-format
+msgid "Could not find service, %(service_id)s."
+msgstr ""
+
+#: keystone/exception.py:173
+#, python-format
+msgid "Could not find domain, %(domain_id)s."
+msgstr ""
+
+#: keystone/exception.py:177
+#, python-format
+msgid "Could not find project, %(project_id)s."
+msgstr ""
+
+#: keystone/exception.py:181
+#, python-format
+msgid "Could not find token, %(token_id)s."
+msgstr ""
+
+#: keystone/exception.py:185
+#, python-format
+msgid "Could not find user, %(user_id)s."
+msgstr ""
+
+#: keystone/exception.py:189
+#, python-format
+msgid "Could not find group, %(group_id)s."
+msgstr ""
+
+#: keystone/exception.py:193
+#, python-format
+msgid "Could not find trust, %(trust_id)s."
+msgstr ""
+
+#: keystone/exception.py:197
+#, python-format
+msgid "Could not find credential, %(credential_id)s."
+msgstr ""
+
+#: keystone/exception.py:201
+#, python-format
+msgid "Could not find version, %(version)s."
+msgstr ""
+
+#: keystone/exception.py:205
+#, python-format
+msgid "Conflict occurred attempting to store %(type)s. %(details)s"
+msgstr ""
+
+#: keystone/exception.py:212
+msgid "Request is too large."
+msgstr ""
+
+#: keystone/exception.py:218
+#, python-format
+msgid ""
+"An unexpected error prevented the server from fulfilling your request. "
+"%(exception)s"
+msgstr ""
+
+#: keystone/exception.py:225
+#, python-format
+msgid "Malformed endpoint URL (%(endpoint)s), see ERROR log for details."
+msgstr ""
+
+#: keystone/exception.py:230
+msgid "The action you have requested has not been implemented."
+msgstr ""
+
+#: keystone/exception.py:237
+#, python-format
+msgid "The Keystone paste configuration file %(config_file)s could not be found."
+msgstr ""
+
+#: keystone/test.py:117
+#, python-format
+msgid "Failed to checkout %s"
+msgstr ""
+
+#: keystone/assignment/core.py:529
+#, python-format
+msgid "Expected dict or list: %s"
+msgstr ""
+
+#: keystone/assignment/backends/kvs.py:138
+#: keystone/assignment/backends/sql.py:285
+#, python-format
+msgid "Cannot remove role that has not been granted, %s"
+msgstr ""
+
+#: keystone/assignment/backends/ldap.py:418
+#, python-format
+msgid "Role %s not found"
+msgstr ""
+
+#: keystone/assignment/backends/sql.py:114
+msgid "Inherited roles can only be assigned to domains"
+msgstr ""
+
+#: keystone/auth/controllers.py:71
+#, python-format
+msgid "Project is disabled: %s"
+msgstr ""
+
+#: keystone/auth/controllers.py:77 keystone/auth/plugins/password.py:38
+#, python-format
+msgid "Domain is disabled: %s"
+msgstr ""
+
+#: keystone/auth/controllers.py:83 keystone/auth/plugins/password.py:44
+#, python-format
+msgid "User is disabled: %s"
+msgstr ""
+
+#: keystone/auth/controllers.py:262
+msgid "Scoping to both domain and project is not allowed"
+msgstr ""
+
+#: keystone/auth/controllers.py:265
+msgid "Scoping to both domain and trust is not allowed"
+msgstr ""
+
+#: keystone/auth/controllers.py:268
+msgid "Scoping to both project and trust is not allowed"
+msgstr ""
+
+#: keystone/auth/controllers.py:353
+msgid "User not found"
+msgstr ""
+
+#: keystone/auth/plugins/external.py:36 keystone/auth/plugins/external.py:66
+msgid "No authenticated user"
+msgstr ""
+
+#: keystone/auth/plugins/external.py:49 keystone/auth/plugins/external.py:86
+#, python-format
+msgid "Unable to lookup user %s"
+msgstr ""
+
+#: keystone/auth/plugins/password.py:112
+msgid "Invalid username or password"
+msgstr ""
+
+#: keystone/catalog/core.py:38
+#, python-format
+msgid "Malformed endpoint %(url)s - unknown key %(keyerror)s"
+msgstr ""
+
+#: keystone/catalog/core.py:43
+#, python-format
+msgid ""
+"Malformed endpoint %(url)s - unknown key %(keyerror)s(are you missing "
+"brackets ?)"
+msgstr ""
+
+#: keystone/catalog/core.py:49
+#, python-format
+msgid ""
+"Malformed endpoint %s - incomplete format (are you "
+"missing a type notifier ?)"
+msgstr ""
+
+#: keystone/catalog/backends/templated.py:109
+#, python-format
+msgid "Unable to open template file %s"
+msgstr ""
+
+#: keystone/common/cms.py:26
+#, python-format
+msgid "Verify error: %s"
+msgstr ""
+
+#: keystone/common/cms.py:118
+msgid ""
+"Signing error: Unable to load certificate - ensure you've configured PKI "
+"with 'keystone-manage pki_setup'"
+msgstr ""
+
+#: keystone/common/cms.py:122
+#, python-format
+msgid "Signing error: %s"
+msgstr ""
+
+#: keystone/common/config.py:89
+#, python-format
+msgid "Unable to locate specified logging config file: %s"
+msgstr ""
+
+#: keystone/common/config.py:107
+msgid "Invalid syslog facility"
+msgstr ""
+
+#: keystone/common/controller.py:18
+#, python-format
+msgid "RBAC: Authorizing %(action)s(%(kwargs)s)"
+msgstr ""
+
+#: keystone/common/controller.py:25
+msgid "RBAC: Invalid token"
+msgstr ""
+
+#: keystone/common/controller.py:39 keystone/common/controller.py:60
+msgid "RBAC: Invalid user"
+msgstr ""
+
+#: keystone/common/controller.py:45
+msgid "RBAC: Proceeding without project"
+msgstr ""
+
+#: keystone/common/controller.py:65
+msgid "RBAC: Proceeding without tenant"
+msgstr ""
+
+#: keystone/common/controller.py:95 keystone/common/controller.py:146
+msgid "RBAC: Bypassing authorization"
+msgstr ""
+
+#: keystone/common/controller.py:104 keystone/common/controller.py:144
+msgid "RBAC: Authorization granted"
+msgstr ""
+
+#: keystone/common/controller.py:134
+#, python-format
+msgid "RBAC: Adding query filter params (%s)"
+msgstr ""
+
+#: keystone/common/controller.py:322
+msgid "Invalid token in normalize_domain_id"
+msgstr ""
+
+#: keystone/common/utils.py:233
+msgid ""
+"Error setting up the debug environment. Verify that the option --debug-"
+"url has the format <host>:<port> and that a debugger processes is "
+"listening on that port."
+msgstr ""
+
+#: keystone/common/wsgi.py:95
+msgid "No bind information present in token"
+msgstr ""
+
+#: keystone/common/wsgi.py:99
+#, python-format
+msgid "Named bind mode %s not in bind information"
+msgstr ""
+
+#: keystone/common/wsgi.py:105
+msgid "Kerberos credentials required and not present"
+msgstr ""
+
+#: keystone/common/wsgi.py:109
+msgid "Kerberos credentials do not match those in bind"
+msgstr ""
+
+#: keystone/common/wsgi.py:112
+msgid "Kerberos bind authentication successful"
+msgstr ""
+
+#: keystone/common/wsgi.py:115
+#, python-format
+msgid "Ignoring unknown bind for permissive mode: {%(bind_type)s: %(identifier)s}"
+msgstr ""
+
+#: keystone/common/wsgi.py:119
+#, python-format
+msgid "Couldn't verify unknown bind: {%(bind_type)s: %(identifier)s}"
+msgstr ""
+
+#: keystone/common/wsgi.py:211
+#, python-format
+msgid "arg_dict: %s"
+msgstr ""
+
+#: keystone/common/wsgi.py:243
+#, python-format
+msgid "Authorization failed. %(exception)s from %(remote_addr)s"
+msgstr ""
+
+#: keystone/common/wsgi.py:487
+msgid "The resource could not be found."
+msgstr ""
+
+#: keystone/common/environment/__init__.py:37
+#, python-format
+msgid "Environment configured as: %s"
+msgstr ""
+
+#: keystone/common/environment/eventlet_server.py:51
+#, python-format
+msgid "Starting %(arg0)s on %(host)s:%(port)s"
+msgstr ""
+
+#: keystone/common/environment/eventlet_server.py:113
+msgid "Server error"
+msgstr ""
+
+#: keystone/common/ldap/core.py:79
+#, python-format
+msgid "Invalid LDAP deref option: %s. Choose one of: "
+msgstr ""
+
+#: keystone/common/ldap/core.py:87
+#, python-format
+msgid "Invalid LDAP TLS certs option: %(option). Choose one of: %(options)s"
+msgstr ""
+
+#: keystone/common/ldap/core.py:99
+#, python-format
+msgid "Invalid LDAP scope: %(scope)s. Choose one of: %(options)s"
+msgstr ""
+
+#: keystone/common/ldap/core.py:189
+#, python-format
+msgid ""
+"Invalid additional attribute mapping: \"%s\". Format must be "
+"<ldap_attribute>:<keystone_attribute>"
+msgstr ""
+
+#: keystone/common/ldap/core.py:195
+#, python-format
+msgid ""
+"Invalid additional attribute mapping: \"%(item)s\". Value "
+"\"%(attr_map)s\" must use one of %(keys)s."
+msgstr ""
+
+#: keystone/common/ldap/core.py:279 keystone/identity/backends/kvs.py:177
+#: keystone/identity/backends/kvs.py:205
+#, python-format
+msgid "Duplicate name, %s."
+msgstr ""
+
+#: keystone/common/ldap/core.py:289 keystone/identity/backends/kvs.py:170
+#, python-format
+msgid "Duplicate ID, %s."
+msgstr ""
+
+#: keystone/common/ldap/core.py:294
+#, python-format
+msgid "LDAP %s create"
+msgstr ""
+
+#: keystone/common/ldap/core.py:372
+#, python-format
+msgid "LDAP %s update"
+msgstr ""
+
+#: keystone/common/ldap/core.py:405
+#, python-format
+msgid "LDAP %s delete"
+msgstr ""
+
+#: keystone/common/ldap/core.py:430
+#, python-format
+msgid "LDAP init: url=%s"
+msgstr ""
+
+#: keystone/common/ldap/core.py:431
+#, python-format
+msgid ""
+"LDAP init: use_tls=%(use_tls)s\n"
+"tls_cacertfile=%(tls_cacertfile)s\n"
+"tls_cacertdir=%(tls_cacertdir)s\n"
+"tls_req_cert=%(tls_req_cert)s\n"
+"tls_avail=%(tls_avail)s\n"
+msgstr ""
+
+#: keystone/common/ldap/core.py:450
+msgid "Invalid TLS / LDAPS combination"
+msgstr ""
+
+#: keystone/common/ldap/core.py:454
+#, python-format
+msgid "Invalid LDAP TLS_AVAIL option: %s. TLS not available"
+msgstr ""
+
+#: keystone/common/ldap/core.py:464
+#, python-format
+msgid "tls_cacertfile %s not found or is not a file"
+msgstr ""
+
+#: keystone/common/ldap/core.py:476
+#, python-format
+msgid "tls_cacertdir %s not found or is not a directory"
+msgstr ""
+
+#: keystone/common/ldap/core.py:483
+#, python-format
+msgid "LDAP TLS: invalid TLS_REQUIRE_CERT Option=%s"
+msgstr ""
+
+#: keystone/common/ldap/core.py:497
+#, python-format
+msgid "LDAP bind: dn=%s"
+msgstr ""
+
+#: keystone/common/ldap/core.py:508
+#, python-format
+msgid "LDAP add: dn=%(dn)s, attrs=%(attrs)s"
+msgstr ""
+
+#: keystone/common/ldap/core.py:514
+#, python-format
+msgid ""
+"LDAP search: dn=%(dn)s, scope=%(scope)s, query=%(query)s, "
+"attrs=%(attrlist)s"
+msgstr ""
+
+#: keystone/common/ldap/core.py:567
+msgid ""
+"LDAP Server does not support paging. Disable paging in keystone.conf to "
+"avoid this message."
+msgstr ""
+
+#: keystone/common/ldap/core.py:584
+#, python-format
+msgid "LDAP modify: dn=%(dn)s, modlist=%(modlist)s"
+msgstr ""
+
+#: keystone/common/ldap/core.py:590
+#, python-format
+msgid "LDAP delete: dn=%s"
+msgstr ""
+
+#: keystone/common/ldap/core.py:595
+#, python-format
+msgid "LDAP delete_ext: dn=%(dn)s, serverctrls=%(serverctrls)s"
+msgstr ""
+
+#: keystone/common/ldap/fakeldap.py:146
+#, python-format
+msgid "FakeLdap initialize url=%s"
+msgstr ""
+
+#: keystone/common/ldap/fakeldap.py:156
+#, python-format
+msgid "FakeLdap bind dn=%s"
+msgstr ""
+
+#: keystone/common/ldap/fakeldap.py:163
+#, python-format
+msgid "FakeLdap bind fail: dn=%s not found"
+msgstr ""
+
+#: keystone/common/ldap/fakeldap.py:170
+#, python-format
+msgid "FakeLdap bind fail: password for dn=%s not found"
+msgstr ""
+
+#: keystone/common/ldap/fakeldap.py:175
+#, python-format
+msgid "FakeLdap bind fail: password for dn=%s does not match"
+msgstr ""
+
+#: keystone/common/ldap/fakeldap.py:190
+#, python-format
+msgid "FakeLdap add item: dn=%(dn)s, attrs=%(attrs)s"
+msgstr ""
+
+#: keystone/common/ldap/fakeldap.py:193
+#, python-format
+msgid "FakeLdap add item failed: dn=%s is already in store."
+msgstr ""
+
+#: keystone/common/ldap/fakeldap.py:207 keystone/common/ldap/fakeldap.py:221
+#, python-format
+msgid "FakeLdap delete item: dn=%s"
+msgstr ""
+
+#: keystone/common/ldap/fakeldap.py:211 keystone/common/ldap/fakeldap.py:225
+#, python-format
+msgid "FakeLdap delete item failed: dn=%s not found."
+msgstr ""
+
+#: keystone/common/ldap/fakeldap.py:240
+#, python-format
+msgid "FakeLdap modify item: dn=%(dn)s attrs=%(attrs)s"
+msgstr ""
+
+#: keystone/common/ldap/fakeldap.py:245
+#, python-format
+msgid "FakeLdap modify item failed: dn=%s not found."
+msgstr ""
+
+#: keystone/common/ldap/fakeldap.py:262
+#, python-format
+msgid "FakeLdap modify item failed: item has no attribute \"%s\" to delete"
+msgstr ""
+
+#: keystone/common/ldap/fakeldap.py:273
+#, python-format
+msgid ""
+"FakeLdap modify item failed: item has no attribute \"%(k)s\" with value "
+"\"%(v)s\" to delete"
+msgstr ""
+
+#: keystone/common/ldap/fakeldap.py:279
+#, python-format
+msgid "FakeLdap modify item failed: unknown command %s"
+msgstr ""
+
+#: keystone/common/ldap/fakeldap.py:281
+#, python-format
+msgid "modify_s action %s not implemented"
+msgstr ""
+
+#: keystone/common/ldap/fakeldap.py:300
+#, python-format
+msgid "FakeLdap search at dn=%(dn)s scope=%(scope)s query=%(query)s"
+msgstr ""
+
+#: keystone/common/ldap/fakeldap.py:306
+msgid "FakeLdap search fail: dn not found for SCOPE_BASE"
+msgstr ""
+
+#: keystone/common/ldap/fakeldap.py:320
+#, python-format
+msgid "Search scope %s not implemented."
+msgstr ""
+
+#: keystone/common/sql/core.py:119
+msgid "Global engine callback raised."
+msgstr ""
+
+#: keystone/common/sql/core.py:233
+#, python-format
+msgid "Got mysql server has gone away: %s"
+msgstr ""
+
+#: keystone/common/sql/legacy.py:188
+#, python-format
+msgid "Cannot migrate EC2 credential: %s"
+msgstr ""
+
+#: keystone/common/sql/migration.py:47
+msgid "version should be an integer"
+msgstr ""
+
+#: keystone/common/sql/nova.py:65
+#, python-format
+msgid "Create tenant %s"
+msgstr ""
+
+#: keystone/common/sql/nova.py:82
+#, python-format
+msgid "Create user %s"
+msgstr ""
+
+#: keystone/common/sql/nova.py:91
+#, python-format
+msgid "Add user %(user_id)s to tenant %(tenant_id)s"
+msgstr ""
+
+#: keystone/common/sql/nova.py:100
+#, python-format
+msgid "Ignoring existing role %s"
+msgstr ""
+
+#: keystone/common/sql/nova.py:107
+#, python-format
+msgid "Create role %s"
+msgstr ""
+
+#: keystone/common/sql/nova.py:117
+#, python-format
+msgid "Assign role %(role_id)s to user %(user_id)s on tenant %(tenant_id)s"
+msgstr ""
+
+#: keystone/common/sql/nova.py:136
+#, python-format
+msgid "Creating ec2 cred for user %(user_id)s and tenant %(tenant_id)s"
+msgstr ""
+
+#: keystone/identity/controllers.py:952
+#, python-format
+msgid ""
+"Group %(group)s not found for role-assignment - %(target)s with Role: "
+"%(role)s"
+msgstr ""
+
+#: keystone/identity/backends/kvs.py:126 keystone/identity/backends/kvs.py:135
+msgid "User not found in group"
+msgstr ""
+
+#: keystone/identity/backends/ldap.py:189
+#, python-format
+msgid ""
+"Group member '%(user_dn)s' not found in '%(group_id)s'. The user should "
+"be removed from the group. The user will be ignored."
+msgstr ""
+
+#: keystone/identity/backends/ldap.py:334
+msgid "Changing Name not supported by LDAP"
+msgstr ""
+
+#: keystone/identity/backends/ldap.py:347
+#, python-format
+msgid "User %(user_id)s is already a member of group %(group_id)s"
+msgstr ""
+
+#: keystone/openstack/common/policy.py:394
+#, python-format
+msgid "Failed to understand rule %(rule)s"
+msgstr ""
+
+#: keystone/openstack/common/policy.py:404
+#, python-format
+msgid "No handler for matches of kind %s"
+msgstr ""
+
+#: keystone/openstack/common/policy.py:679
+#, python-format
+msgid "Failed to understand rule %(rule)r"
+msgstr ""
+
+#: keystone/openstack/common/crypto/utils.py:29
+msgid "An unknown error occurred in crypto utils."
+msgstr ""
+
+#: keystone/openstack/common/crypto/utils.py:36
+#, python-format
+msgid "Block size of %(given)d is too big, max = %(maximum)d"
+msgstr ""
+
+#: keystone/openstack/common/crypto/utils.py:45
+#, python-format
+msgid "Length of %(given)d is too long, max = %(maximum)d"
+msgstr ""
+
+#: keystone/policy/backends/rules.py:93
+#, python-format
+msgid "enforce %(action)s: %(credentials)s"
+msgstr ""
+
+#: keystone/token/controllers.py:378
+#, python-format
+msgid "User %(u_id)s is unauthorized for tenant %(t_id)s"
+msgstr ""
+
+#: keystone/token/controllers.py:395 keystone/token/controllers.py:398
+msgid "Token does not belong to specified tenant."
+msgstr ""
+
+#: keystone/token/provider.py:76
+msgid ""
+"keystone.conf [signing] token_format (deprecated) conflicts with "
+"keystone.conf [token] provider"
+msgstr ""
+
+#: keystone/token/provider.py:84
+msgid ""
+"keystone.conf [signing] token_format is deprecated in favor of "
+"keystone.conf [token] provider"
+msgstr ""
+
+#: keystone/token/provider.py:94
+msgid ""
+"Unrecognized keystone.conf [signing] token_format: expected either 'UUID'"
+" or 'PKI'"
+msgstr ""
+
+#: keystone/token/backends/kvs.py:37
+msgid ""
+"kvs token backend is DEPRECATED. Use keystone.token.backends.sql or "
+"keystone.token.backend.memcache instead."
+msgstr ""
+
+#: keystone/token/backends/memcache.py:144
+#, python-format
+msgid ""
+"Successful set of token-index-list for user-key \"%(user_key)s\", "
+"#%(count)d records"
+msgstr ""
+
+#: keystone/token/backends/memcache.py:154
+#, python-format
+msgid ""
+"Failed to set token-index-list for user-key \"%(user_key)s\". Attempt "
+"%(cas_retry)d of %(cas_retry_max)d"
+msgstr ""
+
+#: keystone/token/backends/memcache.py:163
+msgid "Unable to add token user list"
+msgstr ""
+
+#: keystone/token/backends/memcache.py:172
+msgid "Unable to add token to revocation list."
+msgstr ""
+
+#: keystone/token/providers/pki.py:43
+msgid "Unable to sign token."
+msgstr ""
+
+#: keystone/token/providers/uuid.py:193
+msgid "Trustor is disabled."
+msgstr ""
+
+#: keystone/token/providers/uuid.py:238
+msgid "Trustee has no delegated roles."
+msgstr ""
+
+#: keystone/token/providers/uuid.py:247
+#, python-format
+msgid "User %(user_id)s has no access to project %(project_id)s"
+msgstr ""
+
+#: keystone/token/providers/uuid.py:252
+#, python-format
+msgid "User %(user_id)s has no access to domain %(domain_id)s"
+msgstr ""
+
+#: keystone/token/providers/uuid.py:303
+msgid "User is not a trustee."
+msgstr ""
+
+#: keystone/token/providers/uuid.py:457
+msgid "Non-default domain is not supported"
+msgstr ""
+
+#: keystone/token/providers/uuid.py:465
+msgid "Domain scoped token is not supported"
+msgstr ""
+
+#: keystone/token/providers/uuid.py:528
+msgid "Failed to validate token"
+msgstr ""
+
+#: keystone/token/providers/uuid.py:566 keystone/token/providers/uuid.py:576
+msgid "Failed to verify token"
+msgstr ""
+
diff --git a/keystone/locale/en_GB/LC_MESSAGES/keystone.po b/keystone/locale/en_GB/LC_MESSAGES/keystone.po
new file mode 100644
index 00000000..73b4dbef
--- /dev/null
+++ b/keystone/locale/en_GB/LC_MESSAGES/keystone.po
@@ -0,0 +1,847 @@
+# English (United Kingdom) translations for keystone.
+# Copyright (C) 2013 ORGANIZATION
+# This file is distributed under the same license as the keystone project.
+#
+# Translators:
+msgid ""
+msgstr ""
+"Project-Id-Version: Keystone\n"
+"Report-Msgid-Bugs-To: https://bugs.launchpad.net/keystone\n"
+"POT-Creation-Date: 2013-08-02 17:05+0000\n"
+"PO-Revision-Date: 2013-07-29 22:01+0000\n"
+"Last-Translator: openstackjenkins <jenkins@openstack.org>\n"
+"Language-Team: English (United Kingdom) "
+"(http://www.transifex.com/projects/p/openstack/language/en_GB/)\n"
+"Plural-Forms: nplurals=2; plural=(n != 1)\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=utf-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Generated-By: Babel 1.3\n"
+
+#: keystone/clean.py:23
+#, python-format
+msgid "%s cannot be empty."
+msgstr ""
+
+#: keystone/clean.py:25
+#, python-format
+msgid "%(property_name)s cannot be less than %(min_length)s characters."
+msgstr ""
+
+#: keystone/clean.py:29
+#, python-format
+msgid "%(property_name)s should not be greater than %(max_length)s characters."
+msgstr ""
+
+#: keystone/clean.py:36
+#, python-format
+msgid "%(property_name)s is not a %(display_expected_type)s"
+msgstr ""
+
+#: keystone/exception.py:48
+msgid "missing exception kwargs (programmer error)"
+msgstr ""
+
+#: keystone/exception.py:65
+#, python-format
+msgid ""
+"Expecting to find %(attribute)s in %(target)s. The server could not "
+"comply with the request since it is either malformed or otherwise "
+"incorrect. The client is assumed to be in error."
+msgstr ""
+
+#: keystone/exception.py:74
+#, python-format
+msgid ""
+"String length exceeded.The length of string '%(string)s' exceeded the "
+"limit of column %(type)s(CHAR(%(length)d))."
+msgstr ""
+
+#: keystone/exception.py:80
+#, python-format
+msgid ""
+"Request attribute %(attribute)s must be less than or equal to %(size)i. "
+"The server could not comply with the request because the attribute size "
+"is invalid (too large). The client is assumed to be in error."
+msgstr ""
+
+#: keystone/exception.py:101
+msgid "The request you have made requires authentication."
+msgstr ""
+
+#: keystone/exception.py:107
+msgid "Authentication plugin error."
+msgstr ""
+
+#: keystone/exception.py:115
+msgid "Attempted to authenticate with an unsupported method."
+msgstr ""
+
+#: keystone/exception.py:123
+msgid "Additional authentications steps required."
+msgstr ""
+
+#: keystone/exception.py:131
+msgid "You are not authorized to perform the requested action."
+msgstr ""
+
+#: keystone/exception.py:138
+#, python-format
+msgid "You are not authorized to perform the requested action, %(action)s."
+msgstr ""
+
+#: keystone/exception.py:143
+#, python-format
+msgid "Could not find, %(target)s."
+msgstr ""
+
+#: keystone/exception.py:149
+#, python-format
+msgid "Could not find endpoint, %(endpoint_id)s."
+msgstr ""
+
+#: keystone/exception.py:156
+msgid "An unhandled exception has occurred: Could not find metadata."
+msgstr ""
+
+#: keystone/exception.py:161
+#, python-format
+msgid "Could not find policy, %(policy_id)s."
+msgstr ""
+
+#: keystone/exception.py:165
+#, python-format
+msgid "Could not find role, %(role_id)s."
+msgstr ""
+
+#: keystone/exception.py:169
+#, python-format
+msgid "Could not find service, %(service_id)s."
+msgstr ""
+
+#: keystone/exception.py:173
+#, python-format
+msgid "Could not find domain, %(domain_id)s."
+msgstr ""
+
+#: keystone/exception.py:177
+#, python-format
+msgid "Could not find project, %(project_id)s."
+msgstr ""
+
+#: keystone/exception.py:181
+#, python-format
+msgid "Could not find token, %(token_id)s."
+msgstr ""
+
+#: keystone/exception.py:185
+#, python-format
+msgid "Could not find user, %(user_id)s."
+msgstr ""
+
+#: keystone/exception.py:189
+#, python-format
+msgid "Could not find group, %(group_id)s."
+msgstr ""
+
+#: keystone/exception.py:193
+#, python-format
+msgid "Could not find trust, %(trust_id)s."
+msgstr ""
+
+#: keystone/exception.py:197
+#, python-format
+msgid "Could not find credential, %(credential_id)s."
+msgstr ""
+
+#: keystone/exception.py:201
+#, python-format
+msgid "Could not find version, %(version)s."
+msgstr ""
+
+#: keystone/exception.py:205
+#, python-format
+msgid "Conflict occurred attempting to store %(type)s. %(details)s"
+msgstr ""
+
+#: keystone/exception.py:212
+msgid "Request is too large."
+msgstr ""
+
+#: keystone/exception.py:218
+#, python-format
+msgid ""
+"An unexpected error prevented the server from fulfilling your request. "
+"%(exception)s"
+msgstr ""
+
+#: keystone/exception.py:225
+#, python-format
+msgid "Malformed endpoint URL (%(endpoint)s), see ERROR log for details."
+msgstr ""
+
+#: keystone/exception.py:230
+msgid "The action you have requested has not been implemented."
+msgstr ""
+
+#: keystone/exception.py:237
+#, python-format
+msgid "The Keystone paste configuration file %(config_file)s could not be found."
+msgstr ""
+
+#: keystone/test.py:117
+#, python-format
+msgid "Failed to checkout %s"
+msgstr ""
+
+#: keystone/assignment/core.py:529
+#, python-format
+msgid "Expected dict or list: %s"
+msgstr ""
+
+#: keystone/assignment/backends/kvs.py:138
+#: keystone/assignment/backends/sql.py:285
+#, python-format
+msgid "Cannot remove role that has not been granted, %s"
+msgstr ""
+
+#: keystone/assignment/backends/ldap.py:418
+#, python-format
+msgid "Role %s not found"
+msgstr ""
+
+#: keystone/assignment/backends/sql.py:114
+msgid "Inherited roles can only be assigned to domains"
+msgstr ""
+
+#: keystone/auth/controllers.py:71
+#, python-format
+msgid "Project is disabled: %s"
+msgstr ""
+
+#: keystone/auth/controllers.py:77 keystone/auth/plugins/password.py:38
+#, python-format
+msgid "Domain is disabled: %s"
+msgstr ""
+
+#: keystone/auth/controllers.py:83 keystone/auth/plugins/password.py:44
+#, python-format
+msgid "User is disabled: %s"
+msgstr ""
+
+#: keystone/auth/controllers.py:262
+msgid "Scoping to both domain and project is not allowed"
+msgstr ""
+
+#: keystone/auth/controllers.py:265
+msgid "Scoping to both domain and trust is not allowed"
+msgstr ""
+
+#: keystone/auth/controllers.py:268
+msgid "Scoping to both project and trust is not allowed"
+msgstr ""
+
+#: keystone/auth/controllers.py:353
+msgid "User not found"
+msgstr ""
+
+#: keystone/auth/plugins/external.py:36 keystone/auth/plugins/external.py:66
+msgid "No authenticated user"
+msgstr ""
+
+#: keystone/auth/plugins/external.py:49 keystone/auth/plugins/external.py:86
+#, python-format
+msgid "Unable to lookup user %s"
+msgstr ""
+
+#: keystone/auth/plugins/password.py:112
+msgid "Invalid username or password"
+msgstr ""
+
+#: keystone/catalog/core.py:38
+#, python-format
+msgid "Malformed endpoint %(url)s - unknown key %(keyerror)s"
+msgstr ""
+
+#: keystone/catalog/core.py:43
+#, python-format
+msgid ""
+"Malformed endpoint %(url)s - unknown key %(keyerror)s(are you missing "
+"brackets ?)"
+msgstr ""
+
+#: keystone/catalog/core.py:49
+#, python-format
+msgid ""
+"Malformed endpoint %s - incomplete format (are you "
+"missing a type notifier ?)"
+msgstr ""
+
+#: keystone/catalog/backends/templated.py:109
+#, python-format
+msgid "Unable to open template file %s"
+msgstr ""
+
+#: keystone/common/cms.py:26
+#, python-format
+msgid "Verify error: %s"
+msgstr ""
+
+#: keystone/common/cms.py:118
+msgid ""
+"Signing error: Unable to load certificate - ensure you've configured PKI "
+"with 'keystone-manage pki_setup'"
+msgstr ""
+
+#: keystone/common/cms.py:122
+#, python-format
+msgid "Signing error: %s"
+msgstr ""
+
+#: keystone/common/config.py:89
+#, python-format
+msgid "Unable to locate specified logging config file: %s"
+msgstr ""
+
+#: keystone/common/config.py:107
+msgid "Invalid syslog facility"
+msgstr ""
+
+#: keystone/common/controller.py:18
+#, python-format
+msgid "RBAC: Authorizing %(action)s(%(kwargs)s)"
+msgstr ""
+
+#: keystone/common/controller.py:25
+msgid "RBAC: Invalid token"
+msgstr ""
+
+#: keystone/common/controller.py:39 keystone/common/controller.py:60
+msgid "RBAC: Invalid user"
+msgstr ""
+
+#: keystone/common/controller.py:45
+msgid "RBAC: Proceeding without project"
+msgstr ""
+
+#: keystone/common/controller.py:65
+msgid "RBAC: Proceeding without tenant"
+msgstr ""
+
+#: keystone/common/controller.py:95 keystone/common/controller.py:146
+msgid "RBAC: Bypassing authorization"
+msgstr ""
+
+#: keystone/common/controller.py:104 keystone/common/controller.py:144
+msgid "RBAC: Authorization granted"
+msgstr ""
+
+#: keystone/common/controller.py:134
+#, python-format
+msgid "RBAC: Adding query filter params (%s)"
+msgstr ""
+
+#: keystone/common/controller.py:322
+msgid "Invalid token in normalize_domain_id"
+msgstr ""
+
+#: keystone/common/utils.py:233
+msgid ""
+"Error setting up the debug environment. Verify that the option --debug-"
+"url has the format <host>:<port> and that a debugger processes is "
+"listening on that port."
+msgstr ""
+
+#: keystone/common/wsgi.py:95
+msgid "No bind information present in token"
+msgstr ""
+
+#: keystone/common/wsgi.py:99
+#, python-format
+msgid "Named bind mode %s not in bind information"
+msgstr ""
+
+#: keystone/common/wsgi.py:105
+msgid "Kerberos credentials required and not present"
+msgstr ""
+
+#: keystone/common/wsgi.py:109
+msgid "Kerberos credentials do not match those in bind"
+msgstr ""
+
+#: keystone/common/wsgi.py:112
+msgid "Kerberos bind authentication successful"
+msgstr ""
+
+#: keystone/common/wsgi.py:115
+#, python-format
+msgid "Ignoring unknown bind for permissive mode: {%(bind_type)s: %(identifier)s}"
+msgstr ""
+
+#: keystone/common/wsgi.py:119
+#, python-format
+msgid "Couldn't verify unknown bind: {%(bind_type)s: %(identifier)s}"
+msgstr ""
+
+#: keystone/common/wsgi.py:211
+#, python-format
+msgid "arg_dict: %s"
+msgstr ""
+
+#: keystone/common/wsgi.py:243
+#, python-format
+msgid "Authorization failed. %(exception)s from %(remote_addr)s"
+msgstr ""
+
+#: keystone/common/wsgi.py:487
+msgid "The resource could not be found."
+msgstr ""
+
+#: keystone/common/environment/__init__.py:37
+#, python-format
+msgid "Environment configured as: %s"
+msgstr ""
+
+#: keystone/common/environment/eventlet_server.py:51
+#, python-format
+msgid "Starting %(arg0)s on %(host)s:%(port)s"
+msgstr ""
+
+#: keystone/common/environment/eventlet_server.py:113
+msgid "Server error"
+msgstr ""
+
+#: keystone/common/ldap/core.py:79
+#, python-format
+msgid "Invalid LDAP deref option: %s. Choose one of: "
+msgstr ""
+
+#: keystone/common/ldap/core.py:87
+#, python-format
+msgid "Invalid LDAP TLS certs option: %(option). Choose one of: %(options)s"
+msgstr ""
+
+#: keystone/common/ldap/core.py:99
+#, python-format
+msgid "Invalid LDAP scope: %(scope)s. Choose one of: %(options)s"
+msgstr ""
+
+#: keystone/common/ldap/core.py:189
+#, python-format
+msgid ""
+"Invalid additional attribute mapping: \"%s\". Format must be "
+"<ldap_attribute>:<keystone_attribute>"
+msgstr ""
+
+#: keystone/common/ldap/core.py:195
+#, python-format
+msgid ""
+"Invalid additional attribute mapping: \"%(item)s\". Value "
+"\"%(attr_map)s\" must use one of %(keys)s."
+msgstr ""
+
+#: keystone/common/ldap/core.py:279 keystone/identity/backends/kvs.py:177
+#: keystone/identity/backends/kvs.py:205
+#, python-format
+msgid "Duplicate name, %s."
+msgstr ""
+
+#: keystone/common/ldap/core.py:289 keystone/identity/backends/kvs.py:170
+#, python-format
+msgid "Duplicate ID, %s."
+msgstr ""
+
+#: keystone/common/ldap/core.py:294
+#, python-format
+msgid "LDAP %s create"
+msgstr ""
+
+#: keystone/common/ldap/core.py:372
+#, python-format
+msgid "LDAP %s update"
+msgstr ""
+
+#: keystone/common/ldap/core.py:405
+#, python-format
+msgid "LDAP %s delete"
+msgstr ""
+
+#: keystone/common/ldap/core.py:430
+#, python-format
+msgid "LDAP init: url=%s"
+msgstr ""
+
+#: keystone/common/ldap/core.py:431
+#, python-format
+msgid ""
+"LDAP init: use_tls=%(use_tls)s\n"
+"tls_cacertfile=%(tls_cacertfile)s\n"
+"tls_cacertdir=%(tls_cacertdir)s\n"
+"tls_req_cert=%(tls_req_cert)s\n"
+"tls_avail=%(tls_avail)s\n"
+msgstr ""
+
+#: keystone/common/ldap/core.py:450
+msgid "Invalid TLS / LDAPS combination"
+msgstr ""
+
+#: keystone/common/ldap/core.py:454
+#, python-format
+msgid "Invalid LDAP TLS_AVAIL option: %s. TLS not available"
+msgstr ""
+
+#: keystone/common/ldap/core.py:464
+#, python-format
+msgid "tls_cacertfile %s not found or is not a file"
+msgstr ""
+
+#: keystone/common/ldap/core.py:476
+#, python-format
+msgid "tls_cacertdir %s not found or is not a directory"
+msgstr ""
+
+#: keystone/common/ldap/core.py:483
+#, python-format
+msgid "LDAP TLS: invalid TLS_REQUIRE_CERT Option=%s"
+msgstr ""
+
+#: keystone/common/ldap/core.py:497
+#, python-format
+msgid "LDAP bind: dn=%s"
+msgstr ""
+
+#: keystone/common/ldap/core.py:508
+#, python-format
+msgid "LDAP add: dn=%(dn)s, attrs=%(attrs)s"
+msgstr ""
+
+#: keystone/common/ldap/core.py:514
+#, python-format
+msgid ""
+"LDAP search: dn=%(dn)s, scope=%(scope)s, query=%(query)s, "
+"attrs=%(attrlist)s"
+msgstr ""
+
+#: keystone/common/ldap/core.py:567
+msgid ""
+"LDAP Server does not support paging. Disable paging in keystone.conf to "
+"avoid this message."
+msgstr ""
+
+#: keystone/common/ldap/core.py:584
+#, python-format
+msgid "LDAP modify: dn=%(dn)s, modlist=%(modlist)s"
+msgstr ""
+
+#: keystone/common/ldap/core.py:590
+#, python-format
+msgid "LDAP delete: dn=%s"
+msgstr ""
+
+#: keystone/common/ldap/core.py:595
+#, python-format
+msgid "LDAP delete_ext: dn=%(dn)s, serverctrls=%(serverctrls)s"
+msgstr ""
+
+#: keystone/common/ldap/fakeldap.py:146
+#, python-format
+msgid "FakeLdap initialize url=%s"
+msgstr ""
+
+#: keystone/common/ldap/fakeldap.py:156
+#, python-format
+msgid "FakeLdap bind dn=%s"
+msgstr ""
+
+#: keystone/common/ldap/fakeldap.py:163
+#, python-format
+msgid "FakeLdap bind fail: dn=%s not found"
+msgstr ""
+
+#: keystone/common/ldap/fakeldap.py:170
+#, python-format
+msgid "FakeLdap bind fail: password for dn=%s not found"
+msgstr ""
+
+#: keystone/common/ldap/fakeldap.py:175
+#, python-format
+msgid "FakeLdap bind fail: password for dn=%s does not match"
+msgstr ""
+
+#: keystone/common/ldap/fakeldap.py:190
+#, python-format
+msgid "FakeLdap add item: dn=%(dn)s, attrs=%(attrs)s"
+msgstr ""
+
+#: keystone/common/ldap/fakeldap.py:193
+#, python-format
+msgid "FakeLdap add item failed: dn=%s is already in store."
+msgstr ""
+
+#: keystone/common/ldap/fakeldap.py:207 keystone/common/ldap/fakeldap.py:221
+#, python-format
+msgid "FakeLdap delete item: dn=%s"
+msgstr ""
+
+#: keystone/common/ldap/fakeldap.py:211 keystone/common/ldap/fakeldap.py:225
+#, python-format
+msgid "FakeLdap delete item failed: dn=%s not found."
+msgstr ""
+
+#: keystone/common/ldap/fakeldap.py:240
+#, python-format
+msgid "FakeLdap modify item: dn=%(dn)s attrs=%(attrs)s"
+msgstr ""
+
+#: keystone/common/ldap/fakeldap.py:245
+#, python-format
+msgid "FakeLdap modify item failed: dn=%s not found."
+msgstr ""
+
+#: keystone/common/ldap/fakeldap.py:262
+#, python-format
+msgid "FakeLdap modify item failed: item has no attribute \"%s\" to delete"
+msgstr ""
+
+#: keystone/common/ldap/fakeldap.py:273
+#, python-format
+msgid ""
+"FakeLdap modify item failed: item has no attribute \"%(k)s\" with value "
+"\"%(v)s\" to delete"
+msgstr ""
+
+#: keystone/common/ldap/fakeldap.py:279
+#, python-format
+msgid "FakeLdap modify item failed: unknown command %s"
+msgstr ""
+
+#: keystone/common/ldap/fakeldap.py:281
+#, python-format
+msgid "modify_s action %s not implemented"
+msgstr ""
+
+#: keystone/common/ldap/fakeldap.py:300
+#, python-format
+msgid "FakeLdap search at dn=%(dn)s scope=%(scope)s query=%(query)s"
+msgstr ""
+
+#: keystone/common/ldap/fakeldap.py:306
+msgid "FakeLdap search fail: dn not found for SCOPE_BASE"
+msgstr ""
+
+#: keystone/common/ldap/fakeldap.py:320
+#, python-format
+msgid "Search scope %s not implemented."
+msgstr ""
+
+#: keystone/common/sql/core.py:119
+msgid "Global engine callback raised."
+msgstr ""
+
+#: keystone/common/sql/core.py:233
+#, python-format
+msgid "Got mysql server has gone away: %s"
+msgstr ""
+
+#: keystone/common/sql/legacy.py:188
+#, python-format
+msgid "Cannot migrate EC2 credential: %s"
+msgstr ""
+
+#: keystone/common/sql/migration.py:47
+msgid "version should be an integer"
+msgstr ""
+
+#: keystone/common/sql/nova.py:65
+#, python-format
+msgid "Create tenant %s"
+msgstr ""
+
+#: keystone/common/sql/nova.py:82
+#, python-format
+msgid "Create user %s"
+msgstr ""
+
+#: keystone/common/sql/nova.py:91
+#, python-format
+msgid "Add user %(user_id)s to tenant %(tenant_id)s"
+msgstr ""
+
+#: keystone/common/sql/nova.py:100
+#, python-format
+msgid "Ignoring existing role %s"
+msgstr ""
+
+#: keystone/common/sql/nova.py:107
+#, python-format
+msgid "Create role %s"
+msgstr ""
+
+#: keystone/common/sql/nova.py:117
+#, python-format
+msgid "Assign role %(role_id)s to user %(user_id)s on tenant %(tenant_id)s"
+msgstr ""
+
+#: keystone/common/sql/nova.py:136
+#, python-format
+msgid "Creating ec2 cred for user %(user_id)s and tenant %(tenant_id)s"
+msgstr ""
+
+#: keystone/identity/controllers.py:952
+#, python-format
+msgid ""
+"Group %(group)s not found for role-assignment - %(target)s with Role: "
+"%(role)s"
+msgstr ""
+
+#: keystone/identity/backends/kvs.py:126 keystone/identity/backends/kvs.py:135
+msgid "User not found in group"
+msgstr ""
+
+#: keystone/identity/backends/ldap.py:189
+#, python-format
+msgid ""
+"Group member '%(user_dn)s' not found in '%(group_id)s'. The user should "
+"be removed from the group. The user will be ignored."
+msgstr ""
+
+#: keystone/identity/backends/ldap.py:334
+msgid "Changing Name not supported by LDAP"
+msgstr ""
+
+#: keystone/identity/backends/ldap.py:347
+#, python-format
+msgid "User %(user_id)s is already a member of group %(group_id)s"
+msgstr ""
+
+#: keystone/openstack/common/policy.py:394
+#, python-format
+msgid "Failed to understand rule %(rule)s"
+msgstr ""
+
+#: keystone/openstack/common/policy.py:404
+#, python-format
+msgid "No handler for matches of kind %s"
+msgstr ""
+
+#: keystone/openstack/common/policy.py:679
+#, python-format
+msgid "Failed to understand rule %(rule)r"
+msgstr ""
+
+#: keystone/openstack/common/crypto/utils.py:29
+msgid "An unknown error occurred in crypto utils."
+msgstr ""
+
+#: keystone/openstack/common/crypto/utils.py:36
+#, python-format
+msgid "Block size of %(given)d is too big, max = %(maximum)d"
+msgstr ""
+
+#: keystone/openstack/common/crypto/utils.py:45
+#, python-format
+msgid "Length of %(given)d is too long, max = %(maximum)d"
+msgstr ""
+
+#: keystone/policy/backends/rules.py:93
+#, python-format
+msgid "enforce %(action)s: %(credentials)s"
+msgstr ""
+
+#: keystone/token/controllers.py:378
+#, python-format
+msgid "User %(u_id)s is unauthorized for tenant %(t_id)s"
+msgstr ""
+
+#: keystone/token/controllers.py:395 keystone/token/controllers.py:398
+msgid "Token does not belong to specified tenant."
+msgstr ""
+
+#: keystone/token/provider.py:76
+msgid ""
+"keystone.conf [signing] token_format (deprecated) conflicts with "
+"keystone.conf [token] provider"
+msgstr ""
+
+#: keystone/token/provider.py:84
+msgid ""
+"keystone.conf [signing] token_format is deprecated in favor of "
+"keystone.conf [token] provider"
+msgstr ""
+
+#: keystone/token/provider.py:94
+msgid ""
+"Unrecognized keystone.conf [signing] token_format: expected either 'UUID'"
+" or 'PKI'"
+msgstr ""
+
+#: keystone/token/backends/kvs.py:37
+msgid ""
+"kvs token backend is DEPRECATED. Use keystone.token.backends.sql or "
+"keystone.token.backend.memcache instead."
+msgstr ""
+
+#: keystone/token/backends/memcache.py:144
+#, python-format
+msgid ""
+"Successful set of token-index-list for user-key \"%(user_key)s\", "
+"#%(count)d records"
+msgstr ""
+
+#: keystone/token/backends/memcache.py:154
+#, python-format
+msgid ""
+"Failed to set token-index-list for user-key \"%(user_key)s\". Attempt "
+"%(cas_retry)d of %(cas_retry_max)d"
+msgstr ""
+
+#: keystone/token/backends/memcache.py:163
+msgid "Unable to add token user list"
+msgstr ""
+
+#: keystone/token/backends/memcache.py:172
+msgid "Unable to add token to revocation list."
+msgstr ""
+
+#: keystone/token/providers/pki.py:43
+msgid "Unable to sign token."
+msgstr ""
+
+#: keystone/token/providers/uuid.py:193
+msgid "Trustor is disabled."
+msgstr ""
+
+#: keystone/token/providers/uuid.py:238
+msgid "Trustee has no delegated roles."
+msgstr ""
+
+#: keystone/token/providers/uuid.py:247
+#, python-format
+msgid "User %(user_id)s has no access to project %(project_id)s"
+msgstr ""
+
+#: keystone/token/providers/uuid.py:252
+#, python-format
+msgid "User %(user_id)s has no access to domain %(domain_id)s"
+msgstr ""
+
+#: keystone/token/providers/uuid.py:303
+msgid "User is not a trustee."
+msgstr ""
+
+#: keystone/token/providers/uuid.py:457
+msgid "Non-default domain is not supported"
+msgstr ""
+
+#: keystone/token/providers/uuid.py:465
+msgid "Domain scoped token is not supported"
+msgstr ""
+
+#: keystone/token/providers/uuid.py:528
+msgid "Failed to validate token"
+msgstr ""
+
+#: keystone/token/providers/uuid.py:566 keystone/token/providers/uuid.py:576
+msgid "Failed to verify token"
+msgstr ""
+
diff --git a/keystone/locale/en_US/LC_MESSAGES/keystone.po b/keystone/locale/en_US/LC_MESSAGES/keystone.po
new file mode 100644
index 00000000..c440b653
--- /dev/null
+++ b/keystone/locale/en_US/LC_MESSAGES/keystone.po
@@ -0,0 +1,847 @@
+# English (United States) translations for keystone.
+# Copyright (C) 2013 ORGANIZATION
+# This file is distributed under the same license as the keystone project.
+#
+# Translators:
+msgid ""
+msgstr ""
+"Project-Id-Version: Keystone\n"
+"Report-Msgid-Bugs-To: https://bugs.launchpad.net/keystone\n"
+"POT-Creation-Date: 2013-08-02 17:05+0000\n"
+"PO-Revision-Date: 2013-07-29 22:01+0000\n"
+"Last-Translator: openstackjenkins <jenkins@openstack.org>\n"
+"Language-Team: English (United States) "
+"(http://www.transifex.com/projects/p/openstack/language/en_US/)\n"
+"Plural-Forms: nplurals=2; plural=(n != 1)\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=utf-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Generated-By: Babel 1.3\n"
+
+#: keystone/clean.py:23
+#, python-format
+msgid "%s cannot be empty."
+msgstr ""
+
+#: keystone/clean.py:25
+#, python-format
+msgid "%(property_name)s cannot be less than %(min_length)s characters."
+msgstr ""
+
+#: keystone/clean.py:29
+#, python-format
+msgid "%(property_name)s should not be greater than %(max_length)s characters."
+msgstr ""
+
+#: keystone/clean.py:36
+#, python-format
+msgid "%(property_name)s is not a %(display_expected_type)s"
+msgstr ""
+
+#: keystone/exception.py:48
+msgid "missing exception kwargs (programmer error)"
+msgstr ""
+
+#: keystone/exception.py:65
+#, python-format
+msgid ""
+"Expecting to find %(attribute)s in %(target)s. The server could not "
+"comply with the request since it is either malformed or otherwise "
+"incorrect. The client is assumed to be in error."
+msgstr ""
+
+#: keystone/exception.py:74
+#, python-format
+msgid ""
+"String length exceeded.The length of string '%(string)s' exceeded the "
+"limit of column %(type)s(CHAR(%(length)d))."
+msgstr ""
+
+#: keystone/exception.py:80
+#, python-format
+msgid ""
+"Request attribute %(attribute)s must be less than or equal to %(size)i. "
+"The server could not comply with the request because the attribute size "
+"is invalid (too large). The client is assumed to be in error."
+msgstr ""
+
+#: keystone/exception.py:101
+msgid "The request you have made requires authentication."
+msgstr ""
+
+#: keystone/exception.py:107
+msgid "Authentication plugin error."
+msgstr ""
+
+#: keystone/exception.py:115
+msgid "Attempted to authenticate with an unsupported method."
+msgstr ""
+
+#: keystone/exception.py:123
+msgid "Additional authentications steps required."
+msgstr ""
+
+#: keystone/exception.py:131
+msgid "You are not authorized to perform the requested action."
+msgstr ""
+
+#: keystone/exception.py:138
+#, python-format
+msgid "You are not authorized to perform the requested action, %(action)s."
+msgstr ""
+
+#: keystone/exception.py:143
+#, python-format
+msgid "Could not find, %(target)s."
+msgstr ""
+
+#: keystone/exception.py:149
+#, python-format
+msgid "Could not find endpoint, %(endpoint_id)s."
+msgstr ""
+
+#: keystone/exception.py:156
+msgid "An unhandled exception has occurred: Could not find metadata."
+msgstr ""
+
+#: keystone/exception.py:161
+#, python-format
+msgid "Could not find policy, %(policy_id)s."
+msgstr ""
+
+#: keystone/exception.py:165
+#, python-format
+msgid "Could not find role, %(role_id)s."
+msgstr ""
+
+#: keystone/exception.py:169
+#, python-format
+msgid "Could not find service, %(service_id)s."
+msgstr ""
+
+#: keystone/exception.py:173
+#, python-format
+msgid "Could not find domain, %(domain_id)s."
+msgstr ""
+
+#: keystone/exception.py:177
+#, python-format
+msgid "Could not find project, %(project_id)s."
+msgstr ""
+
+#: keystone/exception.py:181
+#, python-format
+msgid "Could not find token, %(token_id)s."
+msgstr ""
+
+#: keystone/exception.py:185
+#, python-format
+msgid "Could not find user, %(user_id)s."
+msgstr ""
+
+#: keystone/exception.py:189
+#, python-format
+msgid "Could not find group, %(group_id)s."
+msgstr ""
+
+#: keystone/exception.py:193
+#, python-format
+msgid "Could not find trust, %(trust_id)s."
+msgstr ""
+
+#: keystone/exception.py:197
+#, python-format
+msgid "Could not find credential, %(credential_id)s."
+msgstr ""
+
+#: keystone/exception.py:201
+#, python-format
+msgid "Could not find version, %(version)s."
+msgstr ""
+
+#: keystone/exception.py:205
+#, python-format
+msgid "Conflict occurred attempting to store %(type)s. %(details)s"
+msgstr ""
+
+#: keystone/exception.py:212
+msgid "Request is too large."
+msgstr ""
+
+#: keystone/exception.py:218
+#, python-format
+msgid ""
+"An unexpected error prevented the server from fulfilling your request. "
+"%(exception)s"
+msgstr ""
+
+#: keystone/exception.py:225
+#, python-format
+msgid "Malformed endpoint URL (%(endpoint)s), see ERROR log for details."
+msgstr ""
+
+#: keystone/exception.py:230
+msgid "The action you have requested has not been implemented."
+msgstr ""
+
+#: keystone/exception.py:237
+#, python-format
+msgid "The Keystone paste configuration file %(config_file)s could not be found."
+msgstr ""
+
+#: keystone/test.py:117
+#, python-format
+msgid "Failed to checkout %s"
+msgstr ""
+
+#: keystone/assignment/core.py:529
+#, python-format
+msgid "Expected dict or list: %s"
+msgstr ""
+
+#: keystone/assignment/backends/kvs.py:138
+#: keystone/assignment/backends/sql.py:285
+#, python-format
+msgid "Cannot remove role that has not been granted, %s"
+msgstr ""
+
+#: keystone/assignment/backends/ldap.py:418
+#, python-format
+msgid "Role %s not found"
+msgstr ""
+
+#: keystone/assignment/backends/sql.py:114
+msgid "Inherited roles can only be assigned to domains"
+msgstr ""
+
+#: keystone/auth/controllers.py:71
+#, python-format
+msgid "Project is disabled: %s"
+msgstr ""
+
+#: keystone/auth/controllers.py:77 keystone/auth/plugins/password.py:38
+#, python-format
+msgid "Domain is disabled: %s"
+msgstr ""
+
+#: keystone/auth/controllers.py:83 keystone/auth/plugins/password.py:44
+#, python-format
+msgid "User is disabled: %s"
+msgstr ""
+
+#: keystone/auth/controllers.py:262
+msgid "Scoping to both domain and project is not allowed"
+msgstr ""
+
+#: keystone/auth/controllers.py:265
+msgid "Scoping to both domain and trust is not allowed"
+msgstr ""
+
+#: keystone/auth/controllers.py:268
+msgid "Scoping to both project and trust is not allowed"
+msgstr ""
+
+#: keystone/auth/controllers.py:353
+msgid "User not found"
+msgstr ""
+
+#: keystone/auth/plugins/external.py:36 keystone/auth/plugins/external.py:66
+msgid "No authenticated user"
+msgstr ""
+
+#: keystone/auth/plugins/external.py:49 keystone/auth/plugins/external.py:86
+#, python-format
+msgid "Unable to lookup user %s"
+msgstr ""
+
+#: keystone/auth/plugins/password.py:112
+msgid "Invalid username or password"
+msgstr ""
+
+#: keystone/catalog/core.py:38
+#, python-format
+msgid "Malformed endpoint %(url)s - unknown key %(keyerror)s"
+msgstr ""
+
+#: keystone/catalog/core.py:43
+#, python-format
+msgid ""
+"Malformed endpoint %(url)s - unknown key %(keyerror)s(are you missing "
+"brackets ?)"
+msgstr ""
+
+#: keystone/catalog/core.py:49
+#, python-format
+msgid ""
+"Malformed endpoint %s - incomplete format (are you "
+"missing a type notifier ?)"
+msgstr ""
+
+#: keystone/catalog/backends/templated.py:109
+#, python-format
+msgid "Unable to open template file %s"
+msgstr ""
+
+#: keystone/common/cms.py:26
+#, python-format
+msgid "Verify error: %s"
+msgstr ""
+
+#: keystone/common/cms.py:118
+msgid ""
+"Signing error: Unable to load certificate - ensure you've configured PKI "
+"with 'keystone-manage pki_setup'"
+msgstr ""
+
+#: keystone/common/cms.py:122
+#, python-format
+msgid "Signing error: %s"
+msgstr ""
+
+#: keystone/common/config.py:89
+#, python-format
+msgid "Unable to locate specified logging config file: %s"
+msgstr ""
+
+#: keystone/common/config.py:107
+msgid "Invalid syslog facility"
+msgstr ""
+
+#: keystone/common/controller.py:18
+#, python-format
+msgid "RBAC: Authorizing %(action)s(%(kwargs)s)"
+msgstr ""
+
+#: keystone/common/controller.py:25
+msgid "RBAC: Invalid token"
+msgstr ""
+
+#: keystone/common/controller.py:39 keystone/common/controller.py:60
+msgid "RBAC: Invalid user"
+msgstr ""
+
+#: keystone/common/controller.py:45
+msgid "RBAC: Proceeding without project"
+msgstr ""
+
+#: keystone/common/controller.py:65
+msgid "RBAC: Proceeding without tenant"
+msgstr ""
+
+#: keystone/common/controller.py:95 keystone/common/controller.py:146
+msgid "RBAC: Bypassing authorization"
+msgstr ""
+
+#: keystone/common/controller.py:104 keystone/common/controller.py:144
+msgid "RBAC: Authorization granted"
+msgstr ""
+
+#: keystone/common/controller.py:134
+#, python-format
+msgid "RBAC: Adding query filter params (%s)"
+msgstr ""
+
+#: keystone/common/controller.py:322
+msgid "Invalid token in normalize_domain_id"
+msgstr ""
+
+#: keystone/common/utils.py:233
+msgid ""
+"Error setting up the debug environment. Verify that the option --debug-"
+"url has the format <host>:<port> and that a debugger processes is "
+"listening on that port."
+msgstr ""
+
+#: keystone/common/wsgi.py:95
+msgid "No bind information present in token"
+msgstr ""
+
+#: keystone/common/wsgi.py:99
+#, python-format
+msgid "Named bind mode %s not in bind information"
+msgstr ""
+
+#: keystone/common/wsgi.py:105
+msgid "Kerberos credentials required and not present"
+msgstr ""
+
+#: keystone/common/wsgi.py:109
+msgid "Kerberos credentials do not match those in bind"
+msgstr ""
+
+#: keystone/common/wsgi.py:112
+msgid "Kerberos bind authentication successful"
+msgstr ""
+
+#: keystone/common/wsgi.py:115
+#, python-format
+msgid "Ignoring unknown bind for permissive mode: {%(bind_type)s: %(identifier)s}"
+msgstr ""
+
+#: keystone/common/wsgi.py:119
+#, python-format
+msgid "Couldn't verify unknown bind: {%(bind_type)s: %(identifier)s}"
+msgstr ""
+
+#: keystone/common/wsgi.py:211
+#, python-format
+msgid "arg_dict: %s"
+msgstr ""
+
+#: keystone/common/wsgi.py:243
+#, python-format
+msgid "Authorization failed. %(exception)s from %(remote_addr)s"
+msgstr ""
+
+#: keystone/common/wsgi.py:487
+msgid "The resource could not be found."
+msgstr ""
+
+#: keystone/common/environment/__init__.py:37
+#, python-format
+msgid "Environment configured as: %s"
+msgstr ""
+
+#: keystone/common/environment/eventlet_server.py:51
+#, python-format
+msgid "Starting %(arg0)s on %(host)s:%(port)s"
+msgstr ""
+
+#: keystone/common/environment/eventlet_server.py:113
+msgid "Server error"
+msgstr ""
+
+#: keystone/common/ldap/core.py:79
+#, python-format
+msgid "Invalid LDAP deref option: %s. Choose one of: "
+msgstr ""
+
+#: keystone/common/ldap/core.py:87
+#, python-format
+msgid "Invalid LDAP TLS certs option: %(option). Choose one of: %(options)s"
+msgstr ""
+
+#: keystone/common/ldap/core.py:99
+#, python-format
+msgid "Invalid LDAP scope: %(scope)s. Choose one of: %(options)s"
+msgstr ""
+
+#: keystone/common/ldap/core.py:189
+#, python-format
+msgid ""
+"Invalid additional attribute mapping: \"%s\". Format must be "
+"<ldap_attribute>:<keystone_attribute>"
+msgstr ""
+
+#: keystone/common/ldap/core.py:195
+#, python-format
+msgid ""
+"Invalid additional attribute mapping: \"%(item)s\". Value "
+"\"%(attr_map)s\" must use one of %(keys)s."
+msgstr ""
+
+#: keystone/common/ldap/core.py:279 keystone/identity/backends/kvs.py:177
+#: keystone/identity/backends/kvs.py:205
+#, python-format
+msgid "Duplicate name, %s."
+msgstr ""
+
+#: keystone/common/ldap/core.py:289 keystone/identity/backends/kvs.py:170
+#, python-format
+msgid "Duplicate ID, %s."
+msgstr ""
+
+#: keystone/common/ldap/core.py:294
+#, python-format
+msgid "LDAP %s create"
+msgstr ""
+
+#: keystone/common/ldap/core.py:372
+#, python-format
+msgid "LDAP %s update"
+msgstr ""
+
+#: keystone/common/ldap/core.py:405
+#, python-format
+msgid "LDAP %s delete"
+msgstr ""
+
+#: keystone/common/ldap/core.py:430
+#, python-format
+msgid "LDAP init: url=%s"
+msgstr ""
+
+#: keystone/common/ldap/core.py:431
+#, python-format
+msgid ""
+"LDAP init: use_tls=%(use_tls)s\n"
+"tls_cacertfile=%(tls_cacertfile)s\n"
+"tls_cacertdir=%(tls_cacertdir)s\n"
+"tls_req_cert=%(tls_req_cert)s\n"
+"tls_avail=%(tls_avail)s\n"
+msgstr ""
+
+#: keystone/common/ldap/core.py:450
+msgid "Invalid TLS / LDAPS combination"
+msgstr ""
+
+#: keystone/common/ldap/core.py:454
+#, python-format
+msgid "Invalid LDAP TLS_AVAIL option: %s. TLS not available"
+msgstr ""
+
+#: keystone/common/ldap/core.py:464
+#, python-format
+msgid "tls_cacertfile %s not found or is not a file"
+msgstr ""
+
+#: keystone/common/ldap/core.py:476
+#, python-format
+msgid "tls_cacertdir %s not found or is not a directory"
+msgstr ""
+
+#: keystone/common/ldap/core.py:483
+#, python-format
+msgid "LDAP TLS: invalid TLS_REQUIRE_CERT Option=%s"
+msgstr ""
+
+#: keystone/common/ldap/core.py:497
+#, python-format
+msgid "LDAP bind: dn=%s"
+msgstr ""
+
+#: keystone/common/ldap/core.py:508
+#, python-format
+msgid "LDAP add: dn=%(dn)s, attrs=%(attrs)s"
+msgstr ""
+
+#: keystone/common/ldap/core.py:514
+#, python-format
+msgid ""
+"LDAP search: dn=%(dn)s, scope=%(scope)s, query=%(query)s, "
+"attrs=%(attrlist)s"
+msgstr ""
+
+#: keystone/common/ldap/core.py:567
+msgid ""
+"LDAP Server does not support paging. Disable paging in keystone.conf to "
+"avoid this message."
+msgstr ""
+
+#: keystone/common/ldap/core.py:584
+#, python-format
+msgid "LDAP modify: dn=%(dn)s, modlist=%(modlist)s"
+msgstr ""
+
+#: keystone/common/ldap/core.py:590
+#, python-format
+msgid "LDAP delete: dn=%s"
+msgstr ""
+
+#: keystone/common/ldap/core.py:595
+#, python-format
+msgid "LDAP delete_ext: dn=%(dn)s, serverctrls=%(serverctrls)s"
+msgstr ""
+
+#: keystone/common/ldap/fakeldap.py:146
+#, python-format
+msgid "FakeLdap initialize url=%s"
+msgstr ""
+
+#: keystone/common/ldap/fakeldap.py:156
+#, python-format
+msgid "FakeLdap bind dn=%s"
+msgstr ""
+
+#: keystone/common/ldap/fakeldap.py:163
+#, python-format
+msgid "FakeLdap bind fail: dn=%s not found"
+msgstr ""
+
+#: keystone/common/ldap/fakeldap.py:170
+#, python-format
+msgid "FakeLdap bind fail: password for dn=%s not found"
+msgstr ""
+
+#: keystone/common/ldap/fakeldap.py:175
+#, python-format
+msgid "FakeLdap bind fail: password for dn=%s does not match"
+msgstr ""
+
+#: keystone/common/ldap/fakeldap.py:190
+#, python-format
+msgid "FakeLdap add item: dn=%(dn)s, attrs=%(attrs)s"
+msgstr ""
+
+#: keystone/common/ldap/fakeldap.py:193
+#, python-format
+msgid "FakeLdap add item failed: dn=%s is already in store."
+msgstr ""
+
+#: keystone/common/ldap/fakeldap.py:207 keystone/common/ldap/fakeldap.py:221
+#, python-format
+msgid "FakeLdap delete item: dn=%s"
+msgstr ""
+
+#: keystone/common/ldap/fakeldap.py:211 keystone/common/ldap/fakeldap.py:225
+#, python-format
+msgid "FakeLdap delete item failed: dn=%s not found."
+msgstr ""
+
+#: keystone/common/ldap/fakeldap.py:240
+#, python-format
+msgid "FakeLdap modify item: dn=%(dn)s attrs=%(attrs)s"
+msgstr ""
+
+#: keystone/common/ldap/fakeldap.py:245
+#, python-format
+msgid "FakeLdap modify item failed: dn=%s not found."
+msgstr ""
+
+#: keystone/common/ldap/fakeldap.py:262
+#, python-format
+msgid "FakeLdap modify item failed: item has no attribute \"%s\" to delete"
+msgstr ""
+
+#: keystone/common/ldap/fakeldap.py:273
+#, python-format
+msgid ""
+"FakeLdap modify item failed: item has no attribute \"%(k)s\" with value "
+"\"%(v)s\" to delete"
+msgstr ""
+
+#: keystone/common/ldap/fakeldap.py:279
+#, python-format
+msgid "FakeLdap modify item failed: unknown command %s"
+msgstr ""
+
+#: keystone/common/ldap/fakeldap.py:281
+#, python-format
+msgid "modify_s action %s not implemented"
+msgstr ""
+
+#: keystone/common/ldap/fakeldap.py:300
+#, python-format
+msgid "FakeLdap search at dn=%(dn)s scope=%(scope)s query=%(query)s"
+msgstr ""
+
+#: keystone/common/ldap/fakeldap.py:306
+msgid "FakeLdap search fail: dn not found for SCOPE_BASE"
+msgstr ""
+
+#: keystone/common/ldap/fakeldap.py:320
+#, python-format
+msgid "Search scope %s not implemented."
+msgstr ""
+
+#: keystone/common/sql/core.py:119
+msgid "Global engine callback raised."
+msgstr ""
+
+#: keystone/common/sql/core.py:233
+#, python-format
+msgid "Got mysql server has gone away: %s"
+msgstr ""
+
+#: keystone/common/sql/legacy.py:188
+#, python-format
+msgid "Cannot migrate EC2 credential: %s"
+msgstr ""
+
+#: keystone/common/sql/migration.py:47
+msgid "version should be an integer"
+msgstr ""
+
+#: keystone/common/sql/nova.py:65
+#, python-format
+msgid "Create tenant %s"
+msgstr ""
+
+#: keystone/common/sql/nova.py:82
+#, python-format
+msgid "Create user %s"
+msgstr ""
+
+#: keystone/common/sql/nova.py:91
+#, python-format
+msgid "Add user %(user_id)s to tenant %(tenant_id)s"
+msgstr ""
+
+#: keystone/common/sql/nova.py:100
+#, python-format
+msgid "Ignoring existing role %s"
+msgstr ""
+
+#: keystone/common/sql/nova.py:107
+#, python-format
+msgid "Create role %s"
+msgstr ""
+
+#: keystone/common/sql/nova.py:117
+#, python-format
+msgid "Assign role %(role_id)s to user %(user_id)s on tenant %(tenant_id)s"
+msgstr ""
+
+#: keystone/common/sql/nova.py:136
+#, python-format
+msgid "Creating ec2 cred for user %(user_id)s and tenant %(tenant_id)s"
+msgstr ""
+
+#: keystone/identity/controllers.py:952
+#, python-format
+msgid ""
+"Group %(group)s not found for role-assignment - %(target)s with Role: "
+"%(role)s"
+msgstr ""
+
+#: keystone/identity/backends/kvs.py:126 keystone/identity/backends/kvs.py:135
+msgid "User not found in group"
+msgstr ""
+
+#: keystone/identity/backends/ldap.py:189
+#, python-format
+msgid ""
+"Group member '%(user_dn)s' not found in '%(group_id)s'. The user should "
+"be removed from the group. The user will be ignored."
+msgstr ""
+
+#: keystone/identity/backends/ldap.py:334
+msgid "Changing Name not supported by LDAP"
+msgstr ""
+
+#: keystone/identity/backends/ldap.py:347
+#, python-format
+msgid "User %(user_id)s is already a member of group %(group_id)s"
+msgstr ""
+
+#: keystone/openstack/common/policy.py:394
+#, python-format
+msgid "Failed to understand rule %(rule)s"
+msgstr ""
+
+#: keystone/openstack/common/policy.py:404
+#, python-format
+msgid "No handler for matches of kind %s"
+msgstr ""
+
+#: keystone/openstack/common/policy.py:679
+#, python-format
+msgid "Failed to understand rule %(rule)r"
+msgstr ""
+
+#: keystone/openstack/common/crypto/utils.py:29
+msgid "An unknown error occurred in crypto utils."
+msgstr ""
+
+#: keystone/openstack/common/crypto/utils.py:36
+#, python-format
+msgid "Block size of %(given)d is too big, max = %(maximum)d"
+msgstr ""
+
+#: keystone/openstack/common/crypto/utils.py:45
+#, python-format
+msgid "Length of %(given)d is too long, max = %(maximum)d"
+msgstr ""
+
+#: keystone/policy/backends/rules.py:93
+#, python-format
+msgid "enforce %(action)s: %(credentials)s"
+msgstr ""
+
+#: keystone/token/controllers.py:378
+#, python-format
+msgid "User %(u_id)s is unauthorized for tenant %(t_id)s"
+msgstr ""
+
+#: keystone/token/controllers.py:395 keystone/token/controllers.py:398
+msgid "Token does not belong to specified tenant."
+msgstr ""
+
+#: keystone/token/provider.py:76
+msgid ""
+"keystone.conf [signing] token_format (deprecated) conflicts with "
+"keystone.conf [token] provider"
+msgstr ""
+
+#: keystone/token/provider.py:84
+msgid ""
+"keystone.conf [signing] token_format is deprecated in favor of "
+"keystone.conf [token] provider"
+msgstr ""
+
+#: keystone/token/provider.py:94
+msgid ""
+"Unrecognized keystone.conf [signing] token_format: expected either 'UUID'"
+" or 'PKI'"
+msgstr ""
+
+#: keystone/token/backends/kvs.py:37
+msgid ""
+"kvs token backend is DEPRECATED. Use keystone.token.backends.sql or "
+"keystone.token.backend.memcache instead."
+msgstr ""
+
+#: keystone/token/backends/memcache.py:144
+#, python-format
+msgid ""
+"Successful set of token-index-list for user-key \"%(user_key)s\", "
+"#%(count)d records"
+msgstr ""
+
+#: keystone/token/backends/memcache.py:154
+#, python-format
+msgid ""
+"Failed to set token-index-list for user-key \"%(user_key)s\". Attempt "
+"%(cas_retry)d of %(cas_retry_max)d"
+msgstr ""
+
+#: keystone/token/backends/memcache.py:163
+msgid "Unable to add token user list"
+msgstr ""
+
+#: keystone/token/backends/memcache.py:172
+msgid "Unable to add token to revocation list."
+msgstr ""
+
+#: keystone/token/providers/pki.py:43
+msgid "Unable to sign token."
+msgstr ""
+
+#: keystone/token/providers/uuid.py:193
+msgid "Trustor is disabled."
+msgstr ""
+
+#: keystone/token/providers/uuid.py:238
+msgid "Trustee has no delegated roles."
+msgstr ""
+
+#: keystone/token/providers/uuid.py:247
+#, python-format
+msgid "User %(user_id)s has no access to project %(project_id)s"
+msgstr ""
+
+#: keystone/token/providers/uuid.py:252
+#, python-format
+msgid "User %(user_id)s has no access to domain %(domain_id)s"
+msgstr ""
+
+#: keystone/token/providers/uuid.py:303
+msgid "User is not a trustee."
+msgstr ""
+
+#: keystone/token/providers/uuid.py:457
+msgid "Non-default domain is not supported"
+msgstr ""
+
+#: keystone/token/providers/uuid.py:465
+msgid "Domain scoped token is not supported"
+msgstr ""
+
+#: keystone/token/providers/uuid.py:528
+msgid "Failed to validate token"
+msgstr ""
+
+#: keystone/token/providers/uuid.py:566 keystone/token/providers/uuid.py:576
+msgid "Failed to verify token"
+msgstr ""
+
diff --git a/keystone/locale/es/LC_MESSAGES/keystone.po b/keystone/locale/es/LC_MESSAGES/keystone.po
index 7f1d56a4..b97acbc8 100644
--- a/keystone/locale/es/LC_MESSAGES/keystone.po
+++ b/keystone/locale/es/LC_MESSAGES/keystone.po
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Keystone\n"
"Report-Msgid-Bugs-To: https://bugs.launchpad.net/keystone\n"
-"POT-Creation-Date: 2013-07-11 17:05+0000\n"
+"POT-Creation-Date: 2013-08-02 17:05+0000\n"
"PO-Revision-Date: 2013-05-21 09:13+0000\n"
"Last-Translator: daisy.ycguo <daisy.ycguo@gmail.com>\n"
"Language-Team: Spanish "
@@ -16,7 +16,7 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"Generated-By: Babel 0.9.6\n"
+"Generated-By: Babel 1.3\n"
#: keystone/clean.py:23
#, python-format
@@ -38,81 +38,225 @@ msgstr "%(property_name)s no debe tener más de %(max_length)s caracteres."
msgid "%(property_name)s is not a %(display_expected_type)s"
msgstr ""
-#: keystone/test.py:106
+#: keystone/exception.py:48
+msgid "missing exception kwargs (programmer error)"
+msgstr ""
+
+#: keystone/exception.py:65
+#, python-format
+msgid ""
+"Expecting to find %(attribute)s in %(target)s. The server could not "
+"comply with the request since it is either malformed or otherwise "
+"incorrect. The client is assumed to be in error."
+msgstr ""
+
+#: keystone/exception.py:74
+#, python-format
+msgid ""
+"String length exceeded.The length of string '%(string)s' exceeded the "
+"limit of column %(type)s(CHAR(%(length)d))."
+msgstr ""
+
+#: keystone/exception.py:80
+#, python-format
+msgid ""
+"Request attribute %(attribute)s must be less than or equal to %(size)i. "
+"The server could not comply with the request because the attribute size "
+"is invalid (too large). The client is assumed to be in error."
+msgstr ""
+
+#: keystone/exception.py:101
+msgid "The request you have made requires authentication."
+msgstr ""
+
+#: keystone/exception.py:107
+msgid "Authentication plugin error."
+msgstr ""
+
+#: keystone/exception.py:115
+msgid "Attempted to authenticate with an unsupported method."
+msgstr ""
+
+#: keystone/exception.py:123
+msgid "Additional authentications steps required."
+msgstr ""
+
+#: keystone/exception.py:131
+msgid "You are not authorized to perform the requested action."
+msgstr ""
+
+#: keystone/exception.py:138
+#, python-format
+msgid "You are not authorized to perform the requested action, %(action)s."
+msgstr ""
+
+#: keystone/exception.py:143
+#, python-format
+msgid "Could not find, %(target)s."
+msgstr ""
+
+#: keystone/exception.py:149
+#, python-format
+msgid "Could not find endpoint, %(endpoint_id)s."
+msgstr ""
+
+#: keystone/exception.py:156
+msgid "An unhandled exception has occurred: Could not find metadata."
+msgstr ""
+
+#: keystone/exception.py:161
+#, python-format
+msgid "Could not find policy, %(policy_id)s."
+msgstr ""
+
+#: keystone/exception.py:165
+#, python-format
+msgid "Could not find role, %(role_id)s."
+msgstr ""
+
+#: keystone/exception.py:169
+#, python-format
+msgid "Could not find service, %(service_id)s."
+msgstr ""
+
+#: keystone/exception.py:173
+#, python-format
+msgid "Could not find domain, %(domain_id)s."
+msgstr ""
+
+#: keystone/exception.py:177
+#, python-format
+msgid "Could not find project, %(project_id)s."
+msgstr ""
+
+#: keystone/exception.py:181
+#, python-format
+msgid "Could not find token, %(token_id)s."
+msgstr ""
+
+#: keystone/exception.py:185
+#, python-format
+msgid "Could not find user, %(user_id)s."
+msgstr ""
+
+#: keystone/exception.py:189
+#, python-format
+msgid "Could not find group, %(group_id)s."
+msgstr ""
+
+#: keystone/exception.py:193
+#, python-format
+msgid "Could not find trust, %(trust_id)s."
+msgstr ""
+
+#: keystone/exception.py:197
+#, python-format
+msgid "Could not find credential, %(credential_id)s."
+msgstr ""
+
+#: keystone/exception.py:201
+#, python-format
+msgid "Could not find version, %(version)s."
+msgstr ""
+
+#: keystone/exception.py:205
+#, python-format
+msgid "Conflict occurred attempting to store %(type)s. %(details)s"
+msgstr ""
+
+#: keystone/exception.py:212
+msgid "Request is too large."
+msgstr ""
+
+#: keystone/exception.py:218
+#, python-format
+msgid ""
+"An unexpected error prevented the server from fulfilling your request. "
+"%(exception)s"
+msgstr ""
+
+#: keystone/exception.py:225
+#, python-format
+msgid "Malformed endpoint URL (%(endpoint)s), see ERROR log for details."
+msgstr ""
+
+#: keystone/exception.py:230
+msgid "The action you have requested has not been implemented."
+msgstr ""
+
+#: keystone/exception.py:237
+#, python-format
+msgid "The Keystone paste configuration file %(config_file)s could not be found."
+msgstr ""
+
+#: keystone/test.py:117
#, python-format
msgid "Failed to checkout %s"
msgstr "No se ha podido extraer %s"
-#: keystone/assignment/backends/ldap.py:110
+#: keystone/assignment/core.py:529
#, python-format
msgid "Expected dict or list: %s"
msgstr ""
-#: keystone/assignment/backends/ldap.py:456
-#: keystone/identity/backends/ldap.py:433
+#: keystone/assignment/backends/kvs.py:138
+#: keystone/assignment/backends/sql.py:285
+#, python-format
+msgid "Cannot remove role that has not been granted, %s"
+msgstr "No se puede eliminar un rol que no se ha otorgado, %s"
+
+#: keystone/assignment/backends/ldap.py:418
#, python-format
msgid "Role %s not found"
msgstr "No se ha encontrado el rol %s"
-#: keystone/assignment/backends/sql.py:244
-#, python-format
-msgid "Cannot remove role that has not been granted, %s"
-msgstr "No se puede eliminar un rol que no se ha otorgado, %s"
+#: keystone/assignment/backends/sql.py:114
+msgid "Inherited roles can only be assigned to domains"
+msgstr ""
-#: keystone/auth/controllers.py:72
+#: keystone/auth/controllers.py:71
#, python-format
msgid "Project is disabled: %s"
msgstr "El proyecto está inhabilitado: %s"
-#: keystone/auth/controllers.py:78 keystone/auth/plugins/password.py:38
+#: keystone/auth/controllers.py:77 keystone/auth/plugins/password.py:38
#, python-format
msgid "Domain is disabled: %s"
msgstr "El dominio está inhabilitado: %s"
-#: keystone/auth/controllers.py:84 keystone/auth/plugins/password.py:44
+#: keystone/auth/controllers.py:83 keystone/auth/plugins/password.py:44
#, python-format
msgid "User is disabled: %s"
msgstr "El usuario está inhabilitado: %s"
-#: keystone/auth/controllers.py:259
+#: keystone/auth/controllers.py:262
msgid "Scoping to both domain and project is not allowed"
msgstr "El ámbito para dominio y proyecto no está permitido"
-#: keystone/auth/controllers.py:262
+#: keystone/auth/controllers.py:265
msgid "Scoping to both domain and trust is not allowed"
msgstr "El ámbito para dominio y confianza no está permitido"
-#: keystone/auth/controllers.py:265
+#: keystone/auth/controllers.py:268
msgid "Scoping to both project and trust is not allowed"
msgstr "El ámbito para proyecto y confianza no está permitido"
-#: keystone/auth/controllers.py:325
-#, python-format
-msgid "Unable to lookup user %s"
-msgstr "No se ha podido buscar el usuario %s"
-
-#: keystone/auth/controllers.py:355
+#: keystone/auth/controllers.py:353
msgid "User not found"
msgstr "Usuario no encontrado"
-#: keystone/auth/token_factory.py:79
-msgid "User have no access to project"
-msgstr "El usuario no tiene acceso al proyecto"
-
-#: keystone/auth/token_factory.py:94
-msgid "User have no access to domain"
-msgstr "El usuario no tiene acceso al dominio"
-
-#: keystone/auth/token_factory.py:311 keystone/token/controllers.py:119
-msgid "Unable to sign token."
-msgstr "No se ha podido firmar la señal."
+#: keystone/auth/plugins/external.py:36 keystone/auth/plugins/external.py:66
+msgid "No authenticated user"
+msgstr ""
-#: keystone/auth/token_factory.py:314 keystone/token/controllers.py:122
+#: keystone/auth/plugins/external.py:49 keystone/auth/plugins/external.py:86
#, python-format
-msgid "Invalid value for token_format: %s. Allowed values are PKI or UUID."
+msgid "Unable to lookup user %s"
+msgstr "No se ha podido buscar el usuario %s"
+
+#: keystone/auth/plugins/password.py:112
+msgid "Invalid username or password"
msgstr ""
-"Valor no válido para token_format: %s. Los valores permitidos son PKI o "
-"UUID."
#: keystone/catalog/core.py:38
#, python-format
@@ -182,32 +326,32 @@ msgstr ""
msgid "RBAC: Invalid token"
msgstr "RBAC: Señal no válida"
-#: keystone/common/controller.py:35 keystone/common/controller.py:56
+#: keystone/common/controller.py:39 keystone/common/controller.py:60
msgid "RBAC: Invalid user"
msgstr "RBAC: Usuario no válido"
-#: keystone/common/controller.py:41
+#: keystone/common/controller.py:45
msgid "RBAC: Proceeding without project"
msgstr "RBAC: continuando sin proyecto"
-#: keystone/common/controller.py:61
+#: keystone/common/controller.py:65
msgid "RBAC: Proceeding without tenant"
msgstr "RBAC: Continuando sin arrendatario"
-#: keystone/common/controller.py:91 keystone/common/controller.py:142
+#: keystone/common/controller.py:95 keystone/common/controller.py:146
msgid "RBAC: Bypassing authorization"
msgstr "RBAC: Eludiendo autorización"
-#: keystone/common/controller.py:100 keystone/common/controller.py:140
+#: keystone/common/controller.py:104 keystone/common/controller.py:144
msgid "RBAC: Authorization granted"
msgstr "RBAC: Autorización otorgada"
-#: keystone/common/controller.py:130
+#: keystone/common/controller.py:134
#, python-format
msgid "RBAC: Adding query filter params (%s)"
msgstr "RBAC: añadiendo parámetros de filtro de consultas (%s)"
-#: keystone/common/controller.py:318
+#: keystone/common/controller.py:322
msgid "Invalid token in normalize_domain_id"
msgstr "Señal no válida en normalize_domain_id"
@@ -218,17 +362,48 @@ msgid ""
"listening on that port."
msgstr ""
-#: keystone/common/wsgi.py:162
+#: keystone/common/wsgi.py:95
+msgid "No bind information present in token"
+msgstr ""
+
+#: keystone/common/wsgi.py:99
+#, python-format
+msgid "Named bind mode %s not in bind information"
+msgstr ""
+
+#: keystone/common/wsgi.py:105
+msgid "Kerberos credentials required and not present"
+msgstr ""
+
+#: keystone/common/wsgi.py:109
+msgid "Kerberos credentials do not match those in bind"
+msgstr ""
+
+#: keystone/common/wsgi.py:112
+msgid "Kerberos bind authentication successful"
+msgstr ""
+
+#: keystone/common/wsgi.py:115
+#, python-format
+msgid "Ignoring unknown bind for permissive mode: {%(bind_type)s: %(identifier)s}"
+msgstr ""
+
+#: keystone/common/wsgi.py:119
+#, python-format
+msgid "Couldn't verify unknown bind: {%(bind_type)s: %(identifier)s}"
+msgstr ""
+
+#: keystone/common/wsgi.py:211
#, python-format
msgid "arg_dict: %s"
msgstr "arg_dict: %s"
-#: keystone/common/wsgi.py:188
+#: keystone/common/wsgi.py:243
#, fuzzy, python-format
msgid "Authorization failed. %(exception)s from %(remote_addr)s"
msgstr "Ha fallado la autorización. %s de %s"
-#: keystone/common/wsgi.py:431
+#: keystone/common/wsgi.py:487
msgid "The resource could not be found."
msgstr "El recurso no se ha podido encontrar."
@@ -482,11 +657,11 @@ msgstr ""
msgid "Search scope %s not implemented."
msgstr "Ámbito de búsqueda %s no implementado."
-#: keystone/common/sql/core.py:126
+#: keystone/common/sql/core.py:119
msgid "Global engine callback raised."
msgstr ""
-#: keystone/common/sql/core.py:240
+#: keystone/common/sql/core.py:233
#, python-format
msgid "Got mysql server has gone away: %s"
msgstr "Se ha notificado que mysql server ha desaparecido: %s"
@@ -535,7 +710,7 @@ msgstr "Asignar el rol %s al usuario %s en el arrendatario %s"
msgid "Creating ec2 cred for user %(user_id)s and tenant %(tenant_id)s"
msgstr "Creando credencial ec2 para el usuario %s y el arrendatario %s"
-#: keystone/identity/controllers.py:878
+#: keystone/identity/controllers.py:952
#, python-format
msgid ""
"Group %(group)s not found for role-assignment - %(target)s with Role: "
@@ -546,18 +721,18 @@ msgstr ""
msgid "User not found in group"
msgstr "Usuario no encontrado en grupo"
-#: keystone/identity/backends/ldap.py:192
+#: keystone/identity/backends/ldap.py:189
#, python-format
msgid ""
"Group member '%(user_dn)s' not found in '%(group_id)s'. The user should "
"be removed from the group. The user will be ignored."
msgstr ""
-#: keystone/identity/backends/ldap.py:621
+#: keystone/identity/backends/ldap.py:334
msgid "Changing Name not supported by LDAP"
msgstr "LDAP no soporta el cambio de nombre"
-#: keystone/identity/backends/ldap.py:634
+#: keystone/identity/backends/ldap.py:347
#, fuzzy, python-format
msgid "User %(user_id)s is already a member of group %(group_id)s"
msgstr "El usuario %s ya es miembro del grupo %s"
@@ -577,27 +752,57 @@ msgstr "No hay manejador para coincidencias de clase %s"
msgid "Failed to understand rule %(rule)r"
msgstr "No se ha podido comprender la regla %(rule)r"
+#: keystone/openstack/common/crypto/utils.py:29
+msgid "An unknown error occurred in crypto utils."
+msgstr ""
+
+#: keystone/openstack/common/crypto/utils.py:36
+#, python-format
+msgid "Block size of %(given)d is too big, max = %(maximum)d"
+msgstr ""
+
+#: keystone/openstack/common/crypto/utils.py:45
+#, python-format
+msgid "Length of %(given)d is too long, max = %(maximum)d"
+msgstr ""
+
#: keystone/policy/backends/rules.py:93
#, python-format
msgid "enforce %(action)s: %(credentials)s"
msgstr ""
-#: keystone/token/controllers.py:396
+#: keystone/token/controllers.py:378
#, python-format
msgid "User %(u_id)s is unauthorized for tenant %(t_id)s"
msgstr ""
-#: keystone/token/controllers.py:413 keystone/token/controllers.py:416
+#: keystone/token/controllers.py:395 keystone/token/controllers.py:398
msgid "Token does not belong to specified tenant."
msgstr "La señal no pertenece al arrendatario especificado."
-#: keystone/token/controllers.py:423
-msgid "Non-default domain is not supported"
-msgstr "El dominio no predeterminado no está soportado"
+#: keystone/token/provider.py:76
+msgid ""
+"keystone.conf [signing] token_format (deprecated) conflicts with "
+"keystone.conf [token] provider"
+msgstr ""
-#: keystone/token/controllers.py:431
-msgid "Domain scoped token is not supported"
-msgstr "La señal con ámbito de dominio no está soportada"
+#: keystone/token/provider.py:84
+msgid ""
+"keystone.conf [signing] token_format is deprecated in favor of "
+"keystone.conf [token] provider"
+msgstr ""
+
+#: keystone/token/provider.py:94
+msgid ""
+"Unrecognized keystone.conf [signing] token_format: expected either 'UUID'"
+" or 'PKI'"
+msgstr ""
+
+#: keystone/token/backends/kvs.py:37
+msgid ""
+"kvs token backend is DEPRECATED. Use keystone.token.backends.sql or "
+"keystone.token.backend.memcache instead."
+msgstr ""
#: keystone/token/backends/memcache.py:144
#, python-format
@@ -621,3 +826,57 @@ msgstr ""
msgid "Unable to add token to revocation list."
msgstr "No se puede añadir señal a lista de revocación. "
+#: keystone/token/providers/pki.py:43
+msgid "Unable to sign token."
+msgstr "No se ha podido firmar la señal."
+
+#: keystone/token/providers/uuid.py:193
+msgid "Trustor is disabled."
+msgstr ""
+
+#: keystone/token/providers/uuid.py:238
+msgid "Trustee has no delegated roles."
+msgstr ""
+
+#: keystone/token/providers/uuid.py:247
+#, python-format
+msgid "User %(user_id)s has no access to project %(project_id)s"
+msgstr ""
+
+#: keystone/token/providers/uuid.py:252
+#, python-format
+msgid "User %(user_id)s has no access to domain %(domain_id)s"
+msgstr ""
+
+#: keystone/token/providers/uuid.py:303
+msgid "User is not a trustee."
+msgstr ""
+
+#: keystone/token/providers/uuid.py:457
+msgid "Non-default domain is not supported"
+msgstr "El dominio no predeterminado no está soportado"
+
+#: keystone/token/providers/uuid.py:465
+msgid "Domain scoped token is not supported"
+msgstr "La señal con ámbito de dominio no está soportada"
+
+#: keystone/token/providers/uuid.py:528
+msgid "Failed to validate token"
+msgstr ""
+
+#: keystone/token/providers/uuid.py:566 keystone/token/providers/uuid.py:576
+msgid "Failed to verify token"
+msgstr ""
+
+#~ msgid "User have no access to project"
+#~ msgstr "El usuario no tiene acceso al proyecto"
+
+#~ msgid "User have no access to domain"
+#~ msgstr "El usuario no tiene acceso al dominio"
+
+#~ msgid "Invalid value for token_format: %s. Allowed values are PKI or UUID."
+#~ msgstr ""
+#~ "Valor no válido para token_format: %s."
+#~ " Los valores permitidos son PKI o "
+#~ "UUID."
+
diff --git a/keystone/locale/fi_FI/LC_MESSAGES/keystone.po b/keystone/locale/fi_FI/LC_MESSAGES/keystone.po
index 1f8b79e2..cda26e08 100644
--- a/keystone/locale/fi_FI/LC_MESSAGES/keystone.po
+++ b/keystone/locale/fi_FI/LC_MESSAGES/keystone.po
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Keystone\n"
"Report-Msgid-Bugs-To: https://bugs.launchpad.net/keystone\n"
-"POT-Creation-Date: 2013-07-11 17:05+0000\n"
+"POT-Creation-Date: 2013-08-02 17:05+0000\n"
"PO-Revision-Date: 2013-05-17 16:06+0000\n"
"Last-Translator: openstackjenkins <jenkins@openstack.org>\n"
"Language-Team: Finnish (Finland) "
@@ -16,7 +16,7 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"Generated-By: Babel 0.9.6\n"
+"Generated-By: Babel 1.3\n"
#: keystone/clean.py:23
#, python-format
@@ -38,78 +38,224 @@ msgstr ""
msgid "%(property_name)s is not a %(display_expected_type)s"
msgstr ""
-#: keystone/test.py:106
+#: keystone/exception.py:48
+msgid "missing exception kwargs (programmer error)"
+msgstr ""
+
+#: keystone/exception.py:65
+#, python-format
+msgid ""
+"Expecting to find %(attribute)s in %(target)s. The server could not "
+"comply with the request since it is either malformed or otherwise "
+"incorrect. The client is assumed to be in error."
+msgstr ""
+
+#: keystone/exception.py:74
+#, python-format
+msgid ""
+"String length exceeded.The length of string '%(string)s' exceeded the "
+"limit of column %(type)s(CHAR(%(length)d))."
+msgstr ""
+
+#: keystone/exception.py:80
+#, python-format
+msgid ""
+"Request attribute %(attribute)s must be less than or equal to %(size)i. "
+"The server could not comply with the request because the attribute size "
+"is invalid (too large). The client is assumed to be in error."
+msgstr ""
+
+#: keystone/exception.py:101
+msgid "The request you have made requires authentication."
+msgstr ""
+
+#: keystone/exception.py:107
+msgid "Authentication plugin error."
+msgstr ""
+
+#: keystone/exception.py:115
+msgid "Attempted to authenticate with an unsupported method."
+msgstr ""
+
+#: keystone/exception.py:123
+msgid "Additional authentications steps required."
+msgstr ""
+
+#: keystone/exception.py:131
+msgid "You are not authorized to perform the requested action."
+msgstr ""
+
+#: keystone/exception.py:138
+#, python-format
+msgid "You are not authorized to perform the requested action, %(action)s."
+msgstr ""
+
+#: keystone/exception.py:143
+#, python-format
+msgid "Could not find, %(target)s."
+msgstr ""
+
+#: keystone/exception.py:149
+#, python-format
+msgid "Could not find endpoint, %(endpoint_id)s."
+msgstr ""
+
+#: keystone/exception.py:156
+msgid "An unhandled exception has occurred: Could not find metadata."
+msgstr ""
+
+#: keystone/exception.py:161
+#, python-format
+msgid "Could not find policy, %(policy_id)s."
+msgstr ""
+
+#: keystone/exception.py:165
+#, python-format
+msgid "Could not find role, %(role_id)s."
+msgstr ""
+
+#: keystone/exception.py:169
+#, python-format
+msgid "Could not find service, %(service_id)s."
+msgstr ""
+
+#: keystone/exception.py:173
+#, python-format
+msgid "Could not find domain, %(domain_id)s."
+msgstr ""
+
+#: keystone/exception.py:177
+#, python-format
+msgid "Could not find project, %(project_id)s."
+msgstr ""
+
+#: keystone/exception.py:181
+#, python-format
+msgid "Could not find token, %(token_id)s."
+msgstr ""
+
+#: keystone/exception.py:185
+#, python-format
+msgid "Could not find user, %(user_id)s."
+msgstr ""
+
+#: keystone/exception.py:189
+#, python-format
+msgid "Could not find group, %(group_id)s."
+msgstr ""
+
+#: keystone/exception.py:193
+#, python-format
+msgid "Could not find trust, %(trust_id)s."
+msgstr ""
+
+#: keystone/exception.py:197
+#, python-format
+msgid "Could not find credential, %(credential_id)s."
+msgstr ""
+
+#: keystone/exception.py:201
+#, python-format
+msgid "Could not find version, %(version)s."
+msgstr ""
+
+#: keystone/exception.py:205
+#, python-format
+msgid "Conflict occurred attempting to store %(type)s. %(details)s"
+msgstr ""
+
+#: keystone/exception.py:212
+msgid "Request is too large."
+msgstr ""
+
+#: keystone/exception.py:218
+#, python-format
+msgid ""
+"An unexpected error prevented the server from fulfilling your request. "
+"%(exception)s"
+msgstr ""
+
+#: keystone/exception.py:225
+#, python-format
+msgid "Malformed endpoint URL (%(endpoint)s), see ERROR log for details."
+msgstr ""
+
+#: keystone/exception.py:230
+msgid "The action you have requested has not been implemented."
+msgstr ""
+
+#: keystone/exception.py:237
+#, python-format
+msgid "The Keystone paste configuration file %(config_file)s could not be found."
+msgstr ""
+
+#: keystone/test.py:117
#, python-format
msgid "Failed to checkout %s"
msgstr ""
-#: keystone/assignment/backends/ldap.py:110
+#: keystone/assignment/core.py:529
#, python-format
msgid "Expected dict or list: %s"
msgstr ""
-#: keystone/assignment/backends/ldap.py:456
-#: keystone/identity/backends/ldap.py:433
+#: keystone/assignment/backends/kvs.py:138
+#: keystone/assignment/backends/sql.py:285
#, python-format
-msgid "Role %s not found"
+msgid "Cannot remove role that has not been granted, %s"
msgstr ""
-#: keystone/assignment/backends/sql.py:244
+#: keystone/assignment/backends/ldap.py:418
#, python-format
-msgid "Cannot remove role that has not been granted, %s"
+msgid "Role %s not found"
msgstr ""
-#: keystone/auth/controllers.py:72
+#: keystone/assignment/backends/sql.py:114
+msgid "Inherited roles can only be assigned to domains"
+msgstr ""
+
+#: keystone/auth/controllers.py:71
#, python-format
msgid "Project is disabled: %s"
msgstr ""
-#: keystone/auth/controllers.py:78 keystone/auth/plugins/password.py:38
+#: keystone/auth/controllers.py:77 keystone/auth/plugins/password.py:38
#, python-format
msgid "Domain is disabled: %s"
msgstr ""
-#: keystone/auth/controllers.py:84 keystone/auth/plugins/password.py:44
+#: keystone/auth/controllers.py:83 keystone/auth/plugins/password.py:44
#, python-format
msgid "User is disabled: %s"
msgstr ""
-#: keystone/auth/controllers.py:259
+#: keystone/auth/controllers.py:262
msgid "Scoping to both domain and project is not allowed"
msgstr ""
-#: keystone/auth/controllers.py:262
+#: keystone/auth/controllers.py:265
msgid "Scoping to both domain and trust is not allowed"
msgstr ""
-#: keystone/auth/controllers.py:265
+#: keystone/auth/controllers.py:268
msgid "Scoping to both project and trust is not allowed"
msgstr ""
-#: keystone/auth/controllers.py:325
-#, python-format
-msgid "Unable to lookup user %s"
-msgstr ""
-
-#: keystone/auth/controllers.py:355
+#: keystone/auth/controllers.py:353
msgid "User not found"
msgstr ""
-#: keystone/auth/token_factory.py:79
-msgid "User have no access to project"
-msgstr ""
-
-#: keystone/auth/token_factory.py:94
-msgid "User have no access to domain"
+#: keystone/auth/plugins/external.py:36 keystone/auth/plugins/external.py:66
+msgid "No authenticated user"
msgstr ""
-#: keystone/auth/token_factory.py:311 keystone/token/controllers.py:119
-msgid "Unable to sign token."
+#: keystone/auth/plugins/external.py:49 keystone/auth/plugins/external.py:86
+#, python-format
+msgid "Unable to lookup user %s"
msgstr ""
-#: keystone/auth/token_factory.py:314 keystone/token/controllers.py:122
-#, python-format
-msgid "Invalid value for token_format: %s. Allowed values are PKI or UUID."
+#: keystone/auth/plugins/password.py:112
+msgid "Invalid username or password"
msgstr ""
#: keystone/catalog/core.py:38
@@ -170,32 +316,32 @@ msgstr ""
msgid "RBAC: Invalid token"
msgstr ""
-#: keystone/common/controller.py:35 keystone/common/controller.py:56
+#: keystone/common/controller.py:39 keystone/common/controller.py:60
msgid "RBAC: Invalid user"
msgstr ""
-#: keystone/common/controller.py:41
+#: keystone/common/controller.py:45
msgid "RBAC: Proceeding without project"
msgstr ""
-#: keystone/common/controller.py:61
+#: keystone/common/controller.py:65
msgid "RBAC: Proceeding without tenant"
msgstr ""
-#: keystone/common/controller.py:91 keystone/common/controller.py:142
+#: keystone/common/controller.py:95 keystone/common/controller.py:146
msgid "RBAC: Bypassing authorization"
msgstr ""
-#: keystone/common/controller.py:100 keystone/common/controller.py:140
+#: keystone/common/controller.py:104 keystone/common/controller.py:144
msgid "RBAC: Authorization granted"
msgstr ""
-#: keystone/common/controller.py:130
+#: keystone/common/controller.py:134
#, python-format
msgid "RBAC: Adding query filter params (%s)"
msgstr ""
-#: keystone/common/controller.py:318
+#: keystone/common/controller.py:322
msgid "Invalid token in normalize_domain_id"
msgstr ""
@@ -206,17 +352,48 @@ msgid ""
"listening on that port."
msgstr ""
-#: keystone/common/wsgi.py:162
+#: keystone/common/wsgi.py:95
+msgid "No bind information present in token"
+msgstr ""
+
+#: keystone/common/wsgi.py:99
+#, python-format
+msgid "Named bind mode %s not in bind information"
+msgstr ""
+
+#: keystone/common/wsgi.py:105
+msgid "Kerberos credentials required and not present"
+msgstr ""
+
+#: keystone/common/wsgi.py:109
+msgid "Kerberos credentials do not match those in bind"
+msgstr ""
+
+#: keystone/common/wsgi.py:112
+msgid "Kerberos bind authentication successful"
+msgstr ""
+
+#: keystone/common/wsgi.py:115
+#, python-format
+msgid "Ignoring unknown bind for permissive mode: {%(bind_type)s: %(identifier)s}"
+msgstr ""
+
+#: keystone/common/wsgi.py:119
+#, python-format
+msgid "Couldn't verify unknown bind: {%(bind_type)s: %(identifier)s}"
+msgstr ""
+
+#: keystone/common/wsgi.py:211
#, python-format
msgid "arg_dict: %s"
msgstr ""
-#: keystone/common/wsgi.py:188
+#: keystone/common/wsgi.py:243
#, python-format
msgid "Authorization failed. %(exception)s from %(remote_addr)s"
msgstr ""
-#: keystone/common/wsgi.py:431
+#: keystone/common/wsgi.py:487
msgid "The resource could not be found."
msgstr ""
@@ -457,11 +634,11 @@ msgstr ""
msgid "Search scope %s not implemented."
msgstr ""
-#: keystone/common/sql/core.py:126
+#: keystone/common/sql/core.py:119
msgid "Global engine callback raised."
msgstr ""
-#: keystone/common/sql/core.py:240
+#: keystone/common/sql/core.py:233
#, python-format
msgid "Got mysql server has gone away: %s"
msgstr ""
@@ -510,7 +687,7 @@ msgstr ""
msgid "Creating ec2 cred for user %(user_id)s and tenant %(tenant_id)s"
msgstr ""
-#: keystone/identity/controllers.py:878
+#: keystone/identity/controllers.py:952
#, python-format
msgid ""
"Group %(group)s not found for role-assignment - %(target)s with Role: "
@@ -521,18 +698,18 @@ msgstr ""
msgid "User not found in group"
msgstr ""
-#: keystone/identity/backends/ldap.py:192
+#: keystone/identity/backends/ldap.py:189
#, python-format
msgid ""
"Group member '%(user_dn)s' not found in '%(group_id)s'. The user should "
"be removed from the group. The user will be ignored."
msgstr ""
-#: keystone/identity/backends/ldap.py:621
+#: keystone/identity/backends/ldap.py:334
msgid "Changing Name not supported by LDAP"
msgstr ""
-#: keystone/identity/backends/ldap.py:634
+#: keystone/identity/backends/ldap.py:347
#, python-format
msgid "User %(user_id)s is already a member of group %(group_id)s"
msgstr ""
@@ -552,26 +729,56 @@ msgstr ""
msgid "Failed to understand rule %(rule)r"
msgstr ""
+#: keystone/openstack/common/crypto/utils.py:29
+msgid "An unknown error occurred in crypto utils."
+msgstr ""
+
+#: keystone/openstack/common/crypto/utils.py:36
+#, python-format
+msgid "Block size of %(given)d is too big, max = %(maximum)d"
+msgstr ""
+
+#: keystone/openstack/common/crypto/utils.py:45
+#, python-format
+msgid "Length of %(given)d is too long, max = %(maximum)d"
+msgstr ""
+
#: keystone/policy/backends/rules.py:93
#, python-format
msgid "enforce %(action)s: %(credentials)s"
msgstr ""
-#: keystone/token/controllers.py:396
+#: keystone/token/controllers.py:378
#, python-format
msgid "User %(u_id)s is unauthorized for tenant %(t_id)s"
msgstr ""
-#: keystone/token/controllers.py:413 keystone/token/controllers.py:416
+#: keystone/token/controllers.py:395 keystone/token/controllers.py:398
msgid "Token does not belong to specified tenant."
msgstr ""
-#: keystone/token/controllers.py:423
-msgid "Non-default domain is not supported"
+#: keystone/token/provider.py:76
+msgid ""
+"keystone.conf [signing] token_format (deprecated) conflicts with "
+"keystone.conf [token] provider"
msgstr ""
-#: keystone/token/controllers.py:431
-msgid "Domain scoped token is not supported"
+#: keystone/token/provider.py:84
+msgid ""
+"keystone.conf [signing] token_format is deprecated in favor of "
+"keystone.conf [token] provider"
+msgstr ""
+
+#: keystone/token/provider.py:94
+msgid ""
+"Unrecognized keystone.conf [signing] token_format: expected either 'UUID'"
+" or 'PKI'"
+msgstr ""
+
+#: keystone/token/backends/kvs.py:37
+msgid ""
+"kvs token backend is DEPRECATED. Use keystone.token.backends.sql or "
+"keystone.token.backend.memcache instead."
msgstr ""
#: keystone/token/backends/memcache.py:144
@@ -596,3 +803,54 @@ msgstr ""
msgid "Unable to add token to revocation list."
msgstr ""
+#: keystone/token/providers/pki.py:43
+msgid "Unable to sign token."
+msgstr ""
+
+#: keystone/token/providers/uuid.py:193
+msgid "Trustor is disabled."
+msgstr ""
+
+#: keystone/token/providers/uuid.py:238
+msgid "Trustee has no delegated roles."
+msgstr ""
+
+#: keystone/token/providers/uuid.py:247
+#, python-format
+msgid "User %(user_id)s has no access to project %(project_id)s"
+msgstr ""
+
+#: keystone/token/providers/uuid.py:252
+#, python-format
+msgid "User %(user_id)s has no access to domain %(domain_id)s"
+msgstr ""
+
+#: keystone/token/providers/uuid.py:303
+msgid "User is not a trustee."
+msgstr ""
+
+#: keystone/token/providers/uuid.py:457
+msgid "Non-default domain is not supported"
+msgstr ""
+
+#: keystone/token/providers/uuid.py:465
+msgid "Domain scoped token is not supported"
+msgstr ""
+
+#: keystone/token/providers/uuid.py:528
+msgid "Failed to validate token"
+msgstr ""
+
+#: keystone/token/providers/uuid.py:566 keystone/token/providers/uuid.py:576
+msgid "Failed to verify token"
+msgstr ""
+
+#~ msgid "User have no access to project"
+#~ msgstr ""
+
+#~ msgid "User have no access to domain"
+#~ msgstr ""
+
+#~ msgid "Invalid value for token_format: %s. Allowed values are PKI or UUID."
+#~ msgstr ""
+
diff --git a/keystone/locale/fr/LC_MESSAGES/keystone.po b/keystone/locale/fr/LC_MESSAGES/keystone.po
index 61e4adde..d2aced78 100644
--- a/keystone/locale/fr/LC_MESSAGES/keystone.po
+++ b/keystone/locale/fr/LC_MESSAGES/keystone.po
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Keystone\n"
"Report-Msgid-Bugs-To: https://bugs.launchpad.net/keystone\n"
-"POT-Creation-Date: 2013-07-11 17:05+0000\n"
+"POT-Creation-Date: 2013-08-02 17:05+0000\n"
"PO-Revision-Date: 2013-05-17 16:06+0000\n"
"Last-Translator: openstackjenkins <jenkins@openstack.org>\n"
"Language-Team: French "
@@ -16,7 +16,7 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"Generated-By: Babel 0.9.6\n"
+"Generated-By: Babel 1.3\n"
#: keystone/clean.py:23
#, python-format
@@ -38,78 +38,224 @@ msgstr ""
msgid "%(property_name)s is not a %(display_expected_type)s"
msgstr ""
-#: keystone/test.py:106
+#: keystone/exception.py:48
+msgid "missing exception kwargs (programmer error)"
+msgstr ""
+
+#: keystone/exception.py:65
+#, python-format
+msgid ""
+"Expecting to find %(attribute)s in %(target)s. The server could not "
+"comply with the request since it is either malformed or otherwise "
+"incorrect. The client is assumed to be in error."
+msgstr ""
+
+#: keystone/exception.py:74
+#, python-format
+msgid ""
+"String length exceeded.The length of string '%(string)s' exceeded the "
+"limit of column %(type)s(CHAR(%(length)d))."
+msgstr ""
+
+#: keystone/exception.py:80
+#, python-format
+msgid ""
+"Request attribute %(attribute)s must be less than or equal to %(size)i. "
+"The server could not comply with the request because the attribute size "
+"is invalid (too large). The client is assumed to be in error."
+msgstr ""
+
+#: keystone/exception.py:101
+msgid "The request you have made requires authentication."
+msgstr ""
+
+#: keystone/exception.py:107
+msgid "Authentication plugin error."
+msgstr ""
+
+#: keystone/exception.py:115
+msgid "Attempted to authenticate with an unsupported method."
+msgstr ""
+
+#: keystone/exception.py:123
+msgid "Additional authentications steps required."
+msgstr ""
+
+#: keystone/exception.py:131
+msgid "You are not authorized to perform the requested action."
+msgstr ""
+
+#: keystone/exception.py:138
+#, python-format
+msgid "You are not authorized to perform the requested action, %(action)s."
+msgstr ""
+
+#: keystone/exception.py:143
+#, python-format
+msgid "Could not find, %(target)s."
+msgstr ""
+
+#: keystone/exception.py:149
+#, python-format
+msgid "Could not find endpoint, %(endpoint_id)s."
+msgstr ""
+
+#: keystone/exception.py:156
+msgid "An unhandled exception has occurred: Could not find metadata."
+msgstr ""
+
+#: keystone/exception.py:161
+#, python-format
+msgid "Could not find policy, %(policy_id)s."
+msgstr ""
+
+#: keystone/exception.py:165
+#, python-format
+msgid "Could not find role, %(role_id)s."
+msgstr ""
+
+#: keystone/exception.py:169
+#, python-format
+msgid "Could not find service, %(service_id)s."
+msgstr ""
+
+#: keystone/exception.py:173
+#, python-format
+msgid "Could not find domain, %(domain_id)s."
+msgstr ""
+
+#: keystone/exception.py:177
+#, python-format
+msgid "Could not find project, %(project_id)s."
+msgstr ""
+
+#: keystone/exception.py:181
+#, python-format
+msgid "Could not find token, %(token_id)s."
+msgstr ""
+
+#: keystone/exception.py:185
+#, python-format
+msgid "Could not find user, %(user_id)s."
+msgstr ""
+
+#: keystone/exception.py:189
+#, python-format
+msgid "Could not find group, %(group_id)s."
+msgstr ""
+
+#: keystone/exception.py:193
+#, python-format
+msgid "Could not find trust, %(trust_id)s."
+msgstr ""
+
+#: keystone/exception.py:197
+#, python-format
+msgid "Could not find credential, %(credential_id)s."
+msgstr ""
+
+#: keystone/exception.py:201
+#, python-format
+msgid "Could not find version, %(version)s."
+msgstr ""
+
+#: keystone/exception.py:205
+#, python-format
+msgid "Conflict occurred attempting to store %(type)s. %(details)s"
+msgstr ""
+
+#: keystone/exception.py:212
+msgid "Request is too large."
+msgstr ""
+
+#: keystone/exception.py:218
+#, python-format
+msgid ""
+"An unexpected error prevented the server from fulfilling your request. "
+"%(exception)s"
+msgstr ""
+
+#: keystone/exception.py:225
+#, python-format
+msgid "Malformed endpoint URL (%(endpoint)s), see ERROR log for details."
+msgstr ""
+
+#: keystone/exception.py:230
+msgid "The action you have requested has not been implemented."
+msgstr ""
+
+#: keystone/exception.py:237
+#, python-format
+msgid "The Keystone paste configuration file %(config_file)s could not be found."
+msgstr ""
+
+#: keystone/test.py:117
#, python-format
msgid "Failed to checkout %s"
msgstr ""
-#: keystone/assignment/backends/ldap.py:110
+#: keystone/assignment/core.py:529
#, python-format
msgid "Expected dict or list: %s"
msgstr ""
-#: keystone/assignment/backends/ldap.py:456
-#: keystone/identity/backends/ldap.py:433
+#: keystone/assignment/backends/kvs.py:138
+#: keystone/assignment/backends/sql.py:285
#, python-format
-msgid "Role %s not found"
+msgid "Cannot remove role that has not been granted, %s"
msgstr ""
-#: keystone/assignment/backends/sql.py:244
+#: keystone/assignment/backends/ldap.py:418
#, python-format
-msgid "Cannot remove role that has not been granted, %s"
+msgid "Role %s not found"
msgstr ""
-#: keystone/auth/controllers.py:72
+#: keystone/assignment/backends/sql.py:114
+msgid "Inherited roles can only be assigned to domains"
+msgstr ""
+
+#: keystone/auth/controllers.py:71
#, python-format
msgid "Project is disabled: %s"
msgstr ""
-#: keystone/auth/controllers.py:78 keystone/auth/plugins/password.py:38
+#: keystone/auth/controllers.py:77 keystone/auth/plugins/password.py:38
#, python-format
msgid "Domain is disabled: %s"
msgstr ""
-#: keystone/auth/controllers.py:84 keystone/auth/plugins/password.py:44
+#: keystone/auth/controllers.py:83 keystone/auth/plugins/password.py:44
#, python-format
msgid "User is disabled: %s"
msgstr ""
-#: keystone/auth/controllers.py:259
+#: keystone/auth/controllers.py:262
msgid "Scoping to both domain and project is not allowed"
msgstr ""
-#: keystone/auth/controllers.py:262
+#: keystone/auth/controllers.py:265
msgid "Scoping to both domain and trust is not allowed"
msgstr ""
-#: keystone/auth/controllers.py:265
+#: keystone/auth/controllers.py:268
msgid "Scoping to both project and trust is not allowed"
msgstr ""
-#: keystone/auth/controllers.py:325
-#, python-format
-msgid "Unable to lookup user %s"
-msgstr ""
-
-#: keystone/auth/controllers.py:355
+#: keystone/auth/controllers.py:353
msgid "User not found"
msgstr ""
-#: keystone/auth/token_factory.py:79
-msgid "User have no access to project"
-msgstr ""
-
-#: keystone/auth/token_factory.py:94
-msgid "User have no access to domain"
+#: keystone/auth/plugins/external.py:36 keystone/auth/plugins/external.py:66
+msgid "No authenticated user"
msgstr ""
-#: keystone/auth/token_factory.py:311 keystone/token/controllers.py:119
-msgid "Unable to sign token."
+#: keystone/auth/plugins/external.py:49 keystone/auth/plugins/external.py:86
+#, python-format
+msgid "Unable to lookup user %s"
msgstr ""
-#: keystone/auth/token_factory.py:314 keystone/token/controllers.py:122
-#, python-format
-msgid "Invalid value for token_format: %s. Allowed values are PKI or UUID."
+#: keystone/auth/plugins/password.py:112
+msgid "Invalid username or password"
msgstr ""
#: keystone/catalog/core.py:38
@@ -170,32 +316,32 @@ msgstr ""
msgid "RBAC: Invalid token"
msgstr ""
-#: keystone/common/controller.py:35 keystone/common/controller.py:56
+#: keystone/common/controller.py:39 keystone/common/controller.py:60
msgid "RBAC: Invalid user"
msgstr ""
-#: keystone/common/controller.py:41
+#: keystone/common/controller.py:45
msgid "RBAC: Proceeding without project"
msgstr ""
-#: keystone/common/controller.py:61
+#: keystone/common/controller.py:65
msgid "RBAC: Proceeding without tenant"
msgstr ""
-#: keystone/common/controller.py:91 keystone/common/controller.py:142
+#: keystone/common/controller.py:95 keystone/common/controller.py:146
msgid "RBAC: Bypassing authorization"
msgstr ""
-#: keystone/common/controller.py:100 keystone/common/controller.py:140
+#: keystone/common/controller.py:104 keystone/common/controller.py:144
msgid "RBAC: Authorization granted"
msgstr ""
-#: keystone/common/controller.py:130
+#: keystone/common/controller.py:134
#, python-format
msgid "RBAC: Adding query filter params (%s)"
msgstr ""
-#: keystone/common/controller.py:318
+#: keystone/common/controller.py:322
msgid "Invalid token in normalize_domain_id"
msgstr ""
@@ -206,17 +352,48 @@ msgid ""
"listening on that port."
msgstr ""
-#: keystone/common/wsgi.py:162
+#: keystone/common/wsgi.py:95
+msgid "No bind information present in token"
+msgstr ""
+
+#: keystone/common/wsgi.py:99
+#, python-format
+msgid "Named bind mode %s not in bind information"
+msgstr ""
+
+#: keystone/common/wsgi.py:105
+msgid "Kerberos credentials required and not present"
+msgstr ""
+
+#: keystone/common/wsgi.py:109
+msgid "Kerberos credentials do not match those in bind"
+msgstr ""
+
+#: keystone/common/wsgi.py:112
+msgid "Kerberos bind authentication successful"
+msgstr ""
+
+#: keystone/common/wsgi.py:115
+#, python-format
+msgid "Ignoring unknown bind for permissive mode: {%(bind_type)s: %(identifier)s}"
+msgstr ""
+
+#: keystone/common/wsgi.py:119
+#, python-format
+msgid "Couldn't verify unknown bind: {%(bind_type)s: %(identifier)s}"
+msgstr ""
+
+#: keystone/common/wsgi.py:211
#, python-format
msgid "arg_dict: %s"
msgstr ""
-#: keystone/common/wsgi.py:188
+#: keystone/common/wsgi.py:243
#, python-format
msgid "Authorization failed. %(exception)s from %(remote_addr)s"
msgstr ""
-#: keystone/common/wsgi.py:431
+#: keystone/common/wsgi.py:487
msgid "The resource could not be found."
msgstr ""
@@ -457,11 +634,11 @@ msgstr ""
msgid "Search scope %s not implemented."
msgstr ""
-#: keystone/common/sql/core.py:126
+#: keystone/common/sql/core.py:119
msgid "Global engine callback raised."
msgstr ""
-#: keystone/common/sql/core.py:240
+#: keystone/common/sql/core.py:233
#, python-format
msgid "Got mysql server has gone away: %s"
msgstr ""
@@ -510,7 +687,7 @@ msgstr ""
msgid "Creating ec2 cred for user %(user_id)s and tenant %(tenant_id)s"
msgstr ""
-#: keystone/identity/controllers.py:878
+#: keystone/identity/controllers.py:952
#, python-format
msgid ""
"Group %(group)s not found for role-assignment - %(target)s with Role: "
@@ -521,18 +698,18 @@ msgstr ""
msgid "User not found in group"
msgstr ""
-#: keystone/identity/backends/ldap.py:192
+#: keystone/identity/backends/ldap.py:189
#, python-format
msgid ""
"Group member '%(user_dn)s' not found in '%(group_id)s'. The user should "
"be removed from the group. The user will be ignored."
msgstr ""
-#: keystone/identity/backends/ldap.py:621
+#: keystone/identity/backends/ldap.py:334
msgid "Changing Name not supported by LDAP"
msgstr ""
-#: keystone/identity/backends/ldap.py:634
+#: keystone/identity/backends/ldap.py:347
#, python-format
msgid "User %(user_id)s is already a member of group %(group_id)s"
msgstr ""
@@ -552,26 +729,56 @@ msgstr ""
msgid "Failed to understand rule %(rule)r"
msgstr ""
+#: keystone/openstack/common/crypto/utils.py:29
+msgid "An unknown error occurred in crypto utils."
+msgstr ""
+
+#: keystone/openstack/common/crypto/utils.py:36
+#, python-format
+msgid "Block size of %(given)d is too big, max = %(maximum)d"
+msgstr ""
+
+#: keystone/openstack/common/crypto/utils.py:45
+#, python-format
+msgid "Length of %(given)d is too long, max = %(maximum)d"
+msgstr ""
+
#: keystone/policy/backends/rules.py:93
#, python-format
msgid "enforce %(action)s: %(credentials)s"
msgstr ""
-#: keystone/token/controllers.py:396
+#: keystone/token/controllers.py:378
#, python-format
msgid "User %(u_id)s is unauthorized for tenant %(t_id)s"
msgstr ""
-#: keystone/token/controllers.py:413 keystone/token/controllers.py:416
+#: keystone/token/controllers.py:395 keystone/token/controllers.py:398
msgid "Token does not belong to specified tenant."
msgstr ""
-#: keystone/token/controllers.py:423
-msgid "Non-default domain is not supported"
+#: keystone/token/provider.py:76
+msgid ""
+"keystone.conf [signing] token_format (deprecated) conflicts with "
+"keystone.conf [token] provider"
msgstr ""
-#: keystone/token/controllers.py:431
-msgid "Domain scoped token is not supported"
+#: keystone/token/provider.py:84
+msgid ""
+"keystone.conf [signing] token_format is deprecated in favor of "
+"keystone.conf [token] provider"
+msgstr ""
+
+#: keystone/token/provider.py:94
+msgid ""
+"Unrecognized keystone.conf [signing] token_format: expected either 'UUID'"
+" or 'PKI'"
+msgstr ""
+
+#: keystone/token/backends/kvs.py:37
+msgid ""
+"kvs token backend is DEPRECATED. Use keystone.token.backends.sql or "
+"keystone.token.backend.memcache instead."
msgstr ""
#: keystone/token/backends/memcache.py:144
@@ -596,3 +803,54 @@ msgstr ""
msgid "Unable to add token to revocation list."
msgstr ""
+#: keystone/token/providers/pki.py:43
+msgid "Unable to sign token."
+msgstr ""
+
+#: keystone/token/providers/uuid.py:193
+msgid "Trustor is disabled."
+msgstr ""
+
+#: keystone/token/providers/uuid.py:238
+msgid "Trustee has no delegated roles."
+msgstr ""
+
+#: keystone/token/providers/uuid.py:247
+#, python-format
+msgid "User %(user_id)s has no access to project %(project_id)s"
+msgstr ""
+
+#: keystone/token/providers/uuid.py:252
+#, python-format
+msgid "User %(user_id)s has no access to domain %(domain_id)s"
+msgstr ""
+
+#: keystone/token/providers/uuid.py:303
+msgid "User is not a trustee."
+msgstr ""
+
+#: keystone/token/providers/uuid.py:457
+msgid "Non-default domain is not supported"
+msgstr ""
+
+#: keystone/token/providers/uuid.py:465
+msgid "Domain scoped token is not supported"
+msgstr ""
+
+#: keystone/token/providers/uuid.py:528
+msgid "Failed to validate token"
+msgstr ""
+
+#: keystone/token/providers/uuid.py:566 keystone/token/providers/uuid.py:576
+msgid "Failed to verify token"
+msgstr ""
+
+#~ msgid "User have no access to project"
+#~ msgstr ""
+
+#~ msgid "User have no access to domain"
+#~ msgstr ""
+
+#~ msgid "Invalid value for token_format: %s. Allowed values are PKI or UUID."
+#~ msgstr ""
+
diff --git a/keystone/locale/hr/LC_MESSAGES/keystone.po b/keystone/locale/hr/LC_MESSAGES/keystone.po
new file mode 100644
index 00000000..8c5e03f5
--- /dev/null
+++ b/keystone/locale/hr/LC_MESSAGES/keystone.po
@@ -0,0 +1,848 @@
+# Croatian translations for keystone.
+# Copyright (C) 2013 ORGANIZATION
+# This file is distributed under the same license as the keystone project.
+#
+# Translators:
+msgid ""
+msgstr ""
+"Project-Id-Version: Keystone\n"
+"Report-Msgid-Bugs-To: https://bugs.launchpad.net/keystone\n"
+"POT-Creation-Date: 2013-08-02 17:05+0000\n"
+"PO-Revision-Date: 2013-07-29 22:01+0000\n"
+"Last-Translator: openstackjenkins <jenkins@openstack.org>\n"
+"Language-Team: Croatian "
+"(http://www.transifex.com/projects/p/openstack/language/hr/)\n"
+"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && "
+"n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=utf-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Generated-By: Babel 1.3\n"
+
+#: keystone/clean.py:23
+#, python-format
+msgid "%s cannot be empty."
+msgstr ""
+
+#: keystone/clean.py:25
+#, python-format
+msgid "%(property_name)s cannot be less than %(min_length)s characters."
+msgstr ""
+
+#: keystone/clean.py:29
+#, python-format
+msgid "%(property_name)s should not be greater than %(max_length)s characters."
+msgstr ""
+
+#: keystone/clean.py:36
+#, python-format
+msgid "%(property_name)s is not a %(display_expected_type)s"
+msgstr ""
+
+#: keystone/exception.py:48
+msgid "missing exception kwargs (programmer error)"
+msgstr ""
+
+#: keystone/exception.py:65
+#, python-format
+msgid ""
+"Expecting to find %(attribute)s in %(target)s. The server could not "
+"comply with the request since it is either malformed or otherwise "
+"incorrect. The client is assumed to be in error."
+msgstr ""
+
+#: keystone/exception.py:74
+#, python-format
+msgid ""
+"String length exceeded.The length of string '%(string)s' exceeded the "
+"limit of column %(type)s(CHAR(%(length)d))."
+msgstr ""
+
+#: keystone/exception.py:80
+#, python-format
+msgid ""
+"Request attribute %(attribute)s must be less than or equal to %(size)i. "
+"The server could not comply with the request because the attribute size "
+"is invalid (too large). The client is assumed to be in error."
+msgstr ""
+
+#: keystone/exception.py:101
+msgid "The request you have made requires authentication."
+msgstr ""
+
+#: keystone/exception.py:107
+msgid "Authentication plugin error."
+msgstr ""
+
+#: keystone/exception.py:115
+msgid "Attempted to authenticate with an unsupported method."
+msgstr ""
+
+#: keystone/exception.py:123
+msgid "Additional authentications steps required."
+msgstr ""
+
+#: keystone/exception.py:131
+msgid "You are not authorized to perform the requested action."
+msgstr ""
+
+#: keystone/exception.py:138
+#, python-format
+msgid "You are not authorized to perform the requested action, %(action)s."
+msgstr ""
+
+#: keystone/exception.py:143
+#, python-format
+msgid "Could not find, %(target)s."
+msgstr ""
+
+#: keystone/exception.py:149
+#, python-format
+msgid "Could not find endpoint, %(endpoint_id)s."
+msgstr ""
+
+#: keystone/exception.py:156
+msgid "An unhandled exception has occurred: Could not find metadata."
+msgstr ""
+
+#: keystone/exception.py:161
+#, python-format
+msgid "Could not find policy, %(policy_id)s."
+msgstr ""
+
+#: keystone/exception.py:165
+#, python-format
+msgid "Could not find role, %(role_id)s."
+msgstr ""
+
+#: keystone/exception.py:169
+#, python-format
+msgid "Could not find service, %(service_id)s."
+msgstr ""
+
+#: keystone/exception.py:173
+#, python-format
+msgid "Could not find domain, %(domain_id)s."
+msgstr ""
+
+#: keystone/exception.py:177
+#, python-format
+msgid "Could not find project, %(project_id)s."
+msgstr ""
+
+#: keystone/exception.py:181
+#, python-format
+msgid "Could not find token, %(token_id)s."
+msgstr ""
+
+#: keystone/exception.py:185
+#, python-format
+msgid "Could not find user, %(user_id)s."
+msgstr ""
+
+#: keystone/exception.py:189
+#, python-format
+msgid "Could not find group, %(group_id)s."
+msgstr ""
+
+#: keystone/exception.py:193
+#, python-format
+msgid "Could not find trust, %(trust_id)s."
+msgstr ""
+
+#: keystone/exception.py:197
+#, python-format
+msgid "Could not find credential, %(credential_id)s."
+msgstr ""
+
+#: keystone/exception.py:201
+#, python-format
+msgid "Could not find version, %(version)s."
+msgstr ""
+
+#: keystone/exception.py:205
+#, python-format
+msgid "Conflict occurred attempting to store %(type)s. %(details)s"
+msgstr ""
+
+#: keystone/exception.py:212
+msgid "Request is too large."
+msgstr ""
+
+#: keystone/exception.py:218
+#, python-format
+msgid ""
+"An unexpected error prevented the server from fulfilling your request. "
+"%(exception)s"
+msgstr ""
+
+#: keystone/exception.py:225
+#, python-format
+msgid "Malformed endpoint URL (%(endpoint)s), see ERROR log for details."
+msgstr ""
+
+#: keystone/exception.py:230
+msgid "The action you have requested has not been implemented."
+msgstr ""
+
+#: keystone/exception.py:237
+#, python-format
+msgid "The Keystone paste configuration file %(config_file)s could not be found."
+msgstr ""
+
+#: keystone/test.py:117
+#, python-format
+msgid "Failed to checkout %s"
+msgstr ""
+
+#: keystone/assignment/core.py:529
+#, python-format
+msgid "Expected dict or list: %s"
+msgstr ""
+
+#: keystone/assignment/backends/kvs.py:138
+#: keystone/assignment/backends/sql.py:285
+#, python-format
+msgid "Cannot remove role that has not been granted, %s"
+msgstr ""
+
+#: keystone/assignment/backends/ldap.py:418
+#, python-format
+msgid "Role %s not found"
+msgstr ""
+
+#: keystone/assignment/backends/sql.py:114
+msgid "Inherited roles can only be assigned to domains"
+msgstr ""
+
+#: keystone/auth/controllers.py:71
+#, python-format
+msgid "Project is disabled: %s"
+msgstr ""
+
+#: keystone/auth/controllers.py:77 keystone/auth/plugins/password.py:38
+#, python-format
+msgid "Domain is disabled: %s"
+msgstr ""
+
+#: keystone/auth/controllers.py:83 keystone/auth/plugins/password.py:44
+#, python-format
+msgid "User is disabled: %s"
+msgstr ""
+
+#: keystone/auth/controllers.py:262
+msgid "Scoping to both domain and project is not allowed"
+msgstr ""
+
+#: keystone/auth/controllers.py:265
+msgid "Scoping to both domain and trust is not allowed"
+msgstr ""
+
+#: keystone/auth/controllers.py:268
+msgid "Scoping to both project and trust is not allowed"
+msgstr ""
+
+#: keystone/auth/controllers.py:353
+msgid "User not found"
+msgstr ""
+
+#: keystone/auth/plugins/external.py:36 keystone/auth/plugins/external.py:66
+msgid "No authenticated user"
+msgstr ""
+
+#: keystone/auth/plugins/external.py:49 keystone/auth/plugins/external.py:86
+#, python-format
+msgid "Unable to lookup user %s"
+msgstr ""
+
+#: keystone/auth/plugins/password.py:112
+msgid "Invalid username or password"
+msgstr ""
+
+#: keystone/catalog/core.py:38
+#, python-format
+msgid "Malformed endpoint %(url)s - unknown key %(keyerror)s"
+msgstr ""
+
+#: keystone/catalog/core.py:43
+#, python-format
+msgid ""
+"Malformed endpoint %(url)s - unknown key %(keyerror)s(are you missing "
+"brackets ?)"
+msgstr ""
+
+#: keystone/catalog/core.py:49
+#, python-format
+msgid ""
+"Malformed endpoint %s - incomplete format (are you "
+"missing a type notifier ?)"
+msgstr ""
+
+#: keystone/catalog/backends/templated.py:109
+#, python-format
+msgid "Unable to open template file %s"
+msgstr ""
+
+#: keystone/common/cms.py:26
+#, python-format
+msgid "Verify error: %s"
+msgstr ""
+
+#: keystone/common/cms.py:118
+msgid ""
+"Signing error: Unable to load certificate - ensure you've configured PKI "
+"with 'keystone-manage pki_setup'"
+msgstr ""
+
+#: keystone/common/cms.py:122
+#, python-format
+msgid "Signing error: %s"
+msgstr ""
+
+#: keystone/common/config.py:89
+#, python-format
+msgid "Unable to locate specified logging config file: %s"
+msgstr ""
+
+#: keystone/common/config.py:107
+msgid "Invalid syslog facility"
+msgstr ""
+
+#: keystone/common/controller.py:18
+#, python-format
+msgid "RBAC: Authorizing %(action)s(%(kwargs)s)"
+msgstr ""
+
+#: keystone/common/controller.py:25
+msgid "RBAC: Invalid token"
+msgstr ""
+
+#: keystone/common/controller.py:39 keystone/common/controller.py:60
+msgid "RBAC: Invalid user"
+msgstr ""
+
+#: keystone/common/controller.py:45
+msgid "RBAC: Proceeding without project"
+msgstr ""
+
+#: keystone/common/controller.py:65
+msgid "RBAC: Proceeding without tenant"
+msgstr ""
+
+#: keystone/common/controller.py:95 keystone/common/controller.py:146
+msgid "RBAC: Bypassing authorization"
+msgstr ""
+
+#: keystone/common/controller.py:104 keystone/common/controller.py:144
+msgid "RBAC: Authorization granted"
+msgstr ""
+
+#: keystone/common/controller.py:134
+#, python-format
+msgid "RBAC: Adding query filter params (%s)"
+msgstr ""
+
+#: keystone/common/controller.py:322
+msgid "Invalid token in normalize_domain_id"
+msgstr ""
+
+#: keystone/common/utils.py:233
+msgid ""
+"Error setting up the debug environment. Verify that the option --debug-"
+"url has the format <host>:<port> and that a debugger processes is "
+"listening on that port."
+msgstr ""
+
+#: keystone/common/wsgi.py:95
+msgid "No bind information present in token"
+msgstr ""
+
+#: keystone/common/wsgi.py:99
+#, python-format
+msgid "Named bind mode %s not in bind information"
+msgstr ""
+
+#: keystone/common/wsgi.py:105
+msgid "Kerberos credentials required and not present"
+msgstr ""
+
+#: keystone/common/wsgi.py:109
+msgid "Kerberos credentials do not match those in bind"
+msgstr ""
+
+#: keystone/common/wsgi.py:112
+msgid "Kerberos bind authentication successful"
+msgstr ""
+
+#: keystone/common/wsgi.py:115
+#, python-format
+msgid "Ignoring unknown bind for permissive mode: {%(bind_type)s: %(identifier)s}"
+msgstr ""
+
+#: keystone/common/wsgi.py:119
+#, python-format
+msgid "Couldn't verify unknown bind: {%(bind_type)s: %(identifier)s}"
+msgstr ""
+
+#: keystone/common/wsgi.py:211
+#, python-format
+msgid "arg_dict: %s"
+msgstr ""
+
+#: keystone/common/wsgi.py:243
+#, python-format
+msgid "Authorization failed. %(exception)s from %(remote_addr)s"
+msgstr ""
+
+#: keystone/common/wsgi.py:487
+msgid "The resource could not be found."
+msgstr ""
+
+#: keystone/common/environment/__init__.py:37
+#, python-format
+msgid "Environment configured as: %s"
+msgstr ""
+
+#: keystone/common/environment/eventlet_server.py:51
+#, python-format
+msgid "Starting %(arg0)s on %(host)s:%(port)s"
+msgstr ""
+
+#: keystone/common/environment/eventlet_server.py:113
+msgid "Server error"
+msgstr ""
+
+#: keystone/common/ldap/core.py:79
+#, python-format
+msgid "Invalid LDAP deref option: %s. Choose one of: "
+msgstr ""
+
+#: keystone/common/ldap/core.py:87
+#, python-format
+msgid "Invalid LDAP TLS certs option: %(option). Choose one of: %(options)s"
+msgstr ""
+
+#: keystone/common/ldap/core.py:99
+#, python-format
+msgid "Invalid LDAP scope: %(scope)s. Choose one of: %(options)s"
+msgstr ""
+
+#: keystone/common/ldap/core.py:189
+#, python-format
+msgid ""
+"Invalid additional attribute mapping: \"%s\". Format must be "
+"<ldap_attribute>:<keystone_attribute>"
+msgstr ""
+
+#: keystone/common/ldap/core.py:195
+#, python-format
+msgid ""
+"Invalid additional attribute mapping: \"%(item)s\". Value "
+"\"%(attr_map)s\" must use one of %(keys)s."
+msgstr ""
+
+#: keystone/common/ldap/core.py:279 keystone/identity/backends/kvs.py:177
+#: keystone/identity/backends/kvs.py:205
+#, python-format
+msgid "Duplicate name, %s."
+msgstr ""
+
+#: keystone/common/ldap/core.py:289 keystone/identity/backends/kvs.py:170
+#, python-format
+msgid "Duplicate ID, %s."
+msgstr ""
+
+#: keystone/common/ldap/core.py:294
+#, python-format
+msgid "LDAP %s create"
+msgstr ""
+
+#: keystone/common/ldap/core.py:372
+#, python-format
+msgid "LDAP %s update"
+msgstr ""
+
+#: keystone/common/ldap/core.py:405
+#, python-format
+msgid "LDAP %s delete"
+msgstr ""
+
+#: keystone/common/ldap/core.py:430
+#, python-format
+msgid "LDAP init: url=%s"
+msgstr ""
+
+#: keystone/common/ldap/core.py:431
+#, python-format
+msgid ""
+"LDAP init: use_tls=%(use_tls)s\n"
+"tls_cacertfile=%(tls_cacertfile)s\n"
+"tls_cacertdir=%(tls_cacertdir)s\n"
+"tls_req_cert=%(tls_req_cert)s\n"
+"tls_avail=%(tls_avail)s\n"
+msgstr ""
+
+#: keystone/common/ldap/core.py:450
+msgid "Invalid TLS / LDAPS combination"
+msgstr ""
+
+#: keystone/common/ldap/core.py:454
+#, python-format
+msgid "Invalid LDAP TLS_AVAIL option: %s. TLS not available"
+msgstr ""
+
+#: keystone/common/ldap/core.py:464
+#, python-format
+msgid "tls_cacertfile %s not found or is not a file"
+msgstr ""
+
+#: keystone/common/ldap/core.py:476
+#, python-format
+msgid "tls_cacertdir %s not found or is not a directory"
+msgstr ""
+
+#: keystone/common/ldap/core.py:483
+#, python-format
+msgid "LDAP TLS: invalid TLS_REQUIRE_CERT Option=%s"
+msgstr ""
+
+#: keystone/common/ldap/core.py:497
+#, python-format
+msgid "LDAP bind: dn=%s"
+msgstr ""
+
+#: keystone/common/ldap/core.py:508
+#, python-format
+msgid "LDAP add: dn=%(dn)s, attrs=%(attrs)s"
+msgstr ""
+
+#: keystone/common/ldap/core.py:514
+#, python-format
+msgid ""
+"LDAP search: dn=%(dn)s, scope=%(scope)s, query=%(query)s, "
+"attrs=%(attrlist)s"
+msgstr ""
+
+#: keystone/common/ldap/core.py:567
+msgid ""
+"LDAP Server does not support paging. Disable paging in keystone.conf to "
+"avoid this message."
+msgstr ""
+
+#: keystone/common/ldap/core.py:584
+#, python-format
+msgid "LDAP modify: dn=%(dn)s, modlist=%(modlist)s"
+msgstr ""
+
+#: keystone/common/ldap/core.py:590
+#, python-format
+msgid "LDAP delete: dn=%s"
+msgstr ""
+
+#: keystone/common/ldap/core.py:595
+#, python-format
+msgid "LDAP delete_ext: dn=%(dn)s, serverctrls=%(serverctrls)s"
+msgstr ""
+
+#: keystone/common/ldap/fakeldap.py:146
+#, python-format
+msgid "FakeLdap initialize url=%s"
+msgstr ""
+
+#: keystone/common/ldap/fakeldap.py:156
+#, python-format
+msgid "FakeLdap bind dn=%s"
+msgstr ""
+
+#: keystone/common/ldap/fakeldap.py:163
+#, python-format
+msgid "FakeLdap bind fail: dn=%s not found"
+msgstr ""
+
+#: keystone/common/ldap/fakeldap.py:170
+#, python-format
+msgid "FakeLdap bind fail: password for dn=%s not found"
+msgstr ""
+
+#: keystone/common/ldap/fakeldap.py:175
+#, python-format
+msgid "FakeLdap bind fail: password for dn=%s does not match"
+msgstr ""
+
+#: keystone/common/ldap/fakeldap.py:190
+#, python-format
+msgid "FakeLdap add item: dn=%(dn)s, attrs=%(attrs)s"
+msgstr ""
+
+#: keystone/common/ldap/fakeldap.py:193
+#, python-format
+msgid "FakeLdap add item failed: dn=%s is already in store."
+msgstr ""
+
+#: keystone/common/ldap/fakeldap.py:207 keystone/common/ldap/fakeldap.py:221
+#, python-format
+msgid "FakeLdap delete item: dn=%s"
+msgstr ""
+
+#: keystone/common/ldap/fakeldap.py:211 keystone/common/ldap/fakeldap.py:225
+#, python-format
+msgid "FakeLdap delete item failed: dn=%s not found."
+msgstr ""
+
+#: keystone/common/ldap/fakeldap.py:240
+#, python-format
+msgid "FakeLdap modify item: dn=%(dn)s attrs=%(attrs)s"
+msgstr ""
+
+#: keystone/common/ldap/fakeldap.py:245
+#, python-format
+msgid "FakeLdap modify item failed: dn=%s not found."
+msgstr ""
+
+#: keystone/common/ldap/fakeldap.py:262
+#, python-format
+msgid "FakeLdap modify item failed: item has no attribute \"%s\" to delete"
+msgstr ""
+
+#: keystone/common/ldap/fakeldap.py:273
+#, python-format
+msgid ""
+"FakeLdap modify item failed: item has no attribute \"%(k)s\" with value "
+"\"%(v)s\" to delete"
+msgstr ""
+
+#: keystone/common/ldap/fakeldap.py:279
+#, python-format
+msgid "FakeLdap modify item failed: unknown command %s"
+msgstr ""
+
+#: keystone/common/ldap/fakeldap.py:281
+#, python-format
+msgid "modify_s action %s not implemented"
+msgstr ""
+
+#: keystone/common/ldap/fakeldap.py:300
+#, python-format
+msgid "FakeLdap search at dn=%(dn)s scope=%(scope)s query=%(query)s"
+msgstr ""
+
+#: keystone/common/ldap/fakeldap.py:306
+msgid "FakeLdap search fail: dn not found for SCOPE_BASE"
+msgstr ""
+
+#: keystone/common/ldap/fakeldap.py:320
+#, python-format
+msgid "Search scope %s not implemented."
+msgstr ""
+
+#: keystone/common/sql/core.py:119
+msgid "Global engine callback raised."
+msgstr ""
+
+#: keystone/common/sql/core.py:233
+#, python-format
+msgid "Got mysql server has gone away: %s"
+msgstr ""
+
+#: keystone/common/sql/legacy.py:188
+#, python-format
+msgid "Cannot migrate EC2 credential: %s"
+msgstr ""
+
+#: keystone/common/sql/migration.py:47
+msgid "version should be an integer"
+msgstr ""
+
+#: keystone/common/sql/nova.py:65
+#, python-format
+msgid "Create tenant %s"
+msgstr ""
+
+#: keystone/common/sql/nova.py:82
+#, python-format
+msgid "Create user %s"
+msgstr ""
+
+#: keystone/common/sql/nova.py:91
+#, python-format
+msgid "Add user %(user_id)s to tenant %(tenant_id)s"
+msgstr ""
+
+#: keystone/common/sql/nova.py:100
+#, python-format
+msgid "Ignoring existing role %s"
+msgstr ""
+
+#: keystone/common/sql/nova.py:107
+#, python-format
+msgid "Create role %s"
+msgstr ""
+
+#: keystone/common/sql/nova.py:117
+#, python-format
+msgid "Assign role %(role_id)s to user %(user_id)s on tenant %(tenant_id)s"
+msgstr ""
+
+#: keystone/common/sql/nova.py:136
+#, python-format
+msgid "Creating ec2 cred for user %(user_id)s and tenant %(tenant_id)s"
+msgstr ""
+
+#: keystone/identity/controllers.py:952
+#, python-format
+msgid ""
+"Group %(group)s not found for role-assignment - %(target)s with Role: "
+"%(role)s"
+msgstr ""
+
+#: keystone/identity/backends/kvs.py:126 keystone/identity/backends/kvs.py:135
+msgid "User not found in group"
+msgstr ""
+
+#: keystone/identity/backends/ldap.py:189
+#, python-format
+msgid ""
+"Group member '%(user_dn)s' not found in '%(group_id)s'. The user should "
+"be removed from the group. The user will be ignored."
+msgstr ""
+
+#: keystone/identity/backends/ldap.py:334
+msgid "Changing Name not supported by LDAP"
+msgstr ""
+
+#: keystone/identity/backends/ldap.py:347
+#, python-format
+msgid "User %(user_id)s is already a member of group %(group_id)s"
+msgstr ""
+
+#: keystone/openstack/common/policy.py:394
+#, python-format
+msgid "Failed to understand rule %(rule)s"
+msgstr ""
+
+#: keystone/openstack/common/policy.py:404
+#, python-format
+msgid "No handler for matches of kind %s"
+msgstr ""
+
+#: keystone/openstack/common/policy.py:679
+#, python-format
+msgid "Failed to understand rule %(rule)r"
+msgstr ""
+
+#: keystone/openstack/common/crypto/utils.py:29
+msgid "An unknown error occurred in crypto utils."
+msgstr ""
+
+#: keystone/openstack/common/crypto/utils.py:36
+#, python-format
+msgid "Block size of %(given)d is too big, max = %(maximum)d"
+msgstr ""
+
+#: keystone/openstack/common/crypto/utils.py:45
+#, python-format
+msgid "Length of %(given)d is too long, max = %(maximum)d"
+msgstr ""
+
+#: keystone/policy/backends/rules.py:93
+#, python-format
+msgid "enforce %(action)s: %(credentials)s"
+msgstr ""
+
+#: keystone/token/controllers.py:378
+#, python-format
+msgid "User %(u_id)s is unauthorized for tenant %(t_id)s"
+msgstr ""
+
+#: keystone/token/controllers.py:395 keystone/token/controllers.py:398
+msgid "Token does not belong to specified tenant."
+msgstr ""
+
+#: keystone/token/provider.py:76
+msgid ""
+"keystone.conf [signing] token_format (deprecated) conflicts with "
+"keystone.conf [token] provider"
+msgstr ""
+
+#: keystone/token/provider.py:84
+msgid ""
+"keystone.conf [signing] token_format is deprecated in favor of "
+"keystone.conf [token] provider"
+msgstr ""
+
+#: keystone/token/provider.py:94
+msgid ""
+"Unrecognized keystone.conf [signing] token_format: expected either 'UUID'"
+" or 'PKI'"
+msgstr ""
+
+#: keystone/token/backends/kvs.py:37
+msgid ""
+"kvs token backend is DEPRECATED. Use keystone.token.backends.sql or "
+"keystone.token.backend.memcache instead."
+msgstr ""
+
+#: keystone/token/backends/memcache.py:144
+#, python-format
+msgid ""
+"Successful set of token-index-list for user-key \"%(user_key)s\", "
+"#%(count)d records"
+msgstr ""
+
+#: keystone/token/backends/memcache.py:154
+#, python-format
+msgid ""
+"Failed to set token-index-list for user-key \"%(user_key)s\". Attempt "
+"%(cas_retry)d of %(cas_retry_max)d"
+msgstr ""
+
+#: keystone/token/backends/memcache.py:163
+msgid "Unable to add token user list"
+msgstr ""
+
+#: keystone/token/backends/memcache.py:172
+msgid "Unable to add token to revocation list."
+msgstr ""
+
+#: keystone/token/providers/pki.py:43
+msgid "Unable to sign token."
+msgstr ""
+
+#: keystone/token/providers/uuid.py:193
+msgid "Trustor is disabled."
+msgstr ""
+
+#: keystone/token/providers/uuid.py:238
+msgid "Trustee has no delegated roles."
+msgstr ""
+
+#: keystone/token/providers/uuid.py:247
+#, python-format
+msgid "User %(user_id)s has no access to project %(project_id)s"
+msgstr ""
+
+#: keystone/token/providers/uuid.py:252
+#, python-format
+msgid "User %(user_id)s has no access to domain %(domain_id)s"
+msgstr ""
+
+#: keystone/token/providers/uuid.py:303
+msgid "User is not a trustee."
+msgstr ""
+
+#: keystone/token/providers/uuid.py:457
+msgid "Non-default domain is not supported"
+msgstr ""
+
+#: keystone/token/providers/uuid.py:465
+msgid "Domain scoped token is not supported"
+msgstr ""
+
+#: keystone/token/providers/uuid.py:528
+msgid "Failed to validate token"
+msgstr ""
+
+#: keystone/token/providers/uuid.py:566 keystone/token/providers/uuid.py:576
+msgid "Failed to verify token"
+msgstr ""
+
diff --git a/keystone/locale/hu/LC_MESSAGES/keystone.po b/keystone/locale/hu/LC_MESSAGES/keystone.po
index ca656d2e..c8942c5b 100644
--- a/keystone/locale/hu/LC_MESSAGES/keystone.po
+++ b/keystone/locale/hu/LC_MESSAGES/keystone.po
@@ -9,7 +9,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Keystone\n"
"Report-Msgid-Bugs-To: https://bugs.launchpad.net/keystone\n"
-"POT-Creation-Date: 2013-07-11 17:05+0000\n"
+"POT-Creation-Date: 2013-08-02 17:05+0000\n"
"PO-Revision-Date: 2012-12-15 14:14+0000\n"
"Last-Translator: kelemeng <kelemeng@gnome.hu>\n"
"Language-Team: hu <LL@li.org>\n"
@@ -17,7 +17,7 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"Generated-By: Babel 0.9.6\n"
+"Generated-By: Babel 1.3\n"
#: keystone/clean.py:23
#, python-format
@@ -39,79 +39,224 @@ msgstr "%(property_name)s nem lehet több, mint %(max_length)s karakter."
msgid "%(property_name)s is not a %(display_expected_type)s"
msgstr "%(property_name)s nem %(display_expected_type)s"
-#: keystone/test.py:106
+#: keystone/exception.py:48
+msgid "missing exception kwargs (programmer error)"
+msgstr ""
+
+#: keystone/exception.py:65
+#, python-format
+msgid ""
+"Expecting to find %(attribute)s in %(target)s. The server could not "
+"comply with the request since it is either malformed or otherwise "
+"incorrect. The client is assumed to be in error."
+msgstr ""
+
+#: keystone/exception.py:74
+#, python-format
+msgid ""
+"String length exceeded.The length of string '%(string)s' exceeded the "
+"limit of column %(type)s(CHAR(%(length)d))."
+msgstr ""
+
+#: keystone/exception.py:80
+#, python-format
+msgid ""
+"Request attribute %(attribute)s must be less than or equal to %(size)i. "
+"The server could not comply with the request because the attribute size "
+"is invalid (too large). The client is assumed to be in error."
+msgstr ""
+
+#: keystone/exception.py:101
+msgid "The request you have made requires authentication."
+msgstr ""
+
+#: keystone/exception.py:107
+msgid "Authentication plugin error."
+msgstr ""
+
+#: keystone/exception.py:115
+msgid "Attempted to authenticate with an unsupported method."
+msgstr ""
+
+#: keystone/exception.py:123
+msgid "Additional authentications steps required."
+msgstr ""
+
+#: keystone/exception.py:131
+msgid "You are not authorized to perform the requested action."
+msgstr ""
+
+#: keystone/exception.py:138
+#, python-format
+msgid "You are not authorized to perform the requested action, %(action)s."
+msgstr ""
+
+#: keystone/exception.py:143
+#, python-format
+msgid "Could not find, %(target)s."
+msgstr ""
+
+#: keystone/exception.py:149
+#, python-format
+msgid "Could not find endpoint, %(endpoint_id)s."
+msgstr ""
+
+#: keystone/exception.py:156
+msgid "An unhandled exception has occurred: Could not find metadata."
+msgstr ""
+
+#: keystone/exception.py:161
+#, python-format
+msgid "Could not find policy, %(policy_id)s."
+msgstr ""
+
+#: keystone/exception.py:165
+#, python-format
+msgid "Could not find role, %(role_id)s."
+msgstr ""
+
+#: keystone/exception.py:169
+#, python-format
+msgid "Could not find service, %(service_id)s."
+msgstr ""
+
+#: keystone/exception.py:173
+#, python-format
+msgid "Could not find domain, %(domain_id)s."
+msgstr ""
+
+#: keystone/exception.py:177
+#, python-format
+msgid "Could not find project, %(project_id)s."
+msgstr ""
+
+#: keystone/exception.py:181
+#, python-format
+msgid "Could not find token, %(token_id)s."
+msgstr ""
+
+#: keystone/exception.py:185
+#, python-format
+msgid "Could not find user, %(user_id)s."
+msgstr ""
+
+#: keystone/exception.py:189
+#, python-format
+msgid "Could not find group, %(group_id)s."
+msgstr ""
+
+#: keystone/exception.py:193
+#, python-format
+msgid "Could not find trust, %(trust_id)s."
+msgstr ""
+
+#: keystone/exception.py:197
+#, python-format
+msgid "Could not find credential, %(credential_id)s."
+msgstr ""
+
+#: keystone/exception.py:201
+#, python-format
+msgid "Could not find version, %(version)s."
+msgstr ""
+
+#: keystone/exception.py:205
+#, python-format
+msgid "Conflict occurred attempting to store %(type)s. %(details)s"
+msgstr ""
+
+#: keystone/exception.py:212
+msgid "Request is too large."
+msgstr ""
+
+#: keystone/exception.py:218
+#, python-format
+msgid ""
+"An unexpected error prevented the server from fulfilling your request. "
+"%(exception)s"
+msgstr ""
+
+#: keystone/exception.py:225
+#, python-format
+msgid "Malformed endpoint URL (%(endpoint)s), see ERROR log for details."
+msgstr ""
+
+#: keystone/exception.py:230
+msgid "The action you have requested has not been implemented."
+msgstr ""
+
+#: keystone/exception.py:237
+#, python-format
+msgid "The Keystone paste configuration file %(config_file)s could not be found."
+msgstr ""
+
+#: keystone/test.py:117
#, python-format
msgid "Failed to checkout %s"
msgstr "Nem sikerült %s kiiktatása"
-#: keystone/assignment/backends/ldap.py:110
+#: keystone/assignment/core.py:529
#, python-format
msgid "Expected dict or list: %s"
msgstr ""
-#: keystone/assignment/backends/ldap.py:456
-#: keystone/identity/backends/ldap.py:433
+#: keystone/assignment/backends/kvs.py:138
+#: keystone/assignment/backends/sql.py:285
#, python-format
-msgid "Role %s not found"
+msgid "Cannot remove role that has not been granted, %s"
msgstr ""
-#: keystone/assignment/backends/sql.py:244
+#: keystone/assignment/backends/ldap.py:418
#, python-format
-msgid "Cannot remove role that has not been granted, %s"
+msgid "Role %s not found"
+msgstr ""
+
+#: keystone/assignment/backends/sql.py:114
+msgid "Inherited roles can only be assigned to domains"
msgstr ""
-#: keystone/auth/controllers.py:72
+#: keystone/auth/controllers.py:71
#, python-format
msgid "Project is disabled: %s"
msgstr ""
-#: keystone/auth/controllers.py:78 keystone/auth/plugins/password.py:38
+#: keystone/auth/controllers.py:77 keystone/auth/plugins/password.py:38
#, python-format
msgid "Domain is disabled: %s"
msgstr ""
-#: keystone/auth/controllers.py:84 keystone/auth/plugins/password.py:44
+#: keystone/auth/controllers.py:83 keystone/auth/plugins/password.py:44
#, python-format
msgid "User is disabled: %s"
msgstr ""
-#: keystone/auth/controllers.py:259
+#: keystone/auth/controllers.py:262
msgid "Scoping to both domain and project is not allowed"
msgstr ""
-#: keystone/auth/controllers.py:262
+#: keystone/auth/controllers.py:265
msgid "Scoping to both domain and trust is not allowed"
msgstr ""
-#: keystone/auth/controllers.py:265
+#: keystone/auth/controllers.py:268
msgid "Scoping to both project and trust is not allowed"
msgstr ""
-#: keystone/auth/controllers.py:325
-#, fuzzy, python-format
-msgid "Unable to lookup user %s"
-msgstr "Nem vehető fel a token felhasználólistája."
-
-#: keystone/auth/controllers.py:355
+#: keystone/auth/controllers.py:353
msgid "User not found"
msgstr ""
-#: keystone/auth/token_factory.py:79
-msgid "User have no access to project"
+#: keystone/auth/plugins/external.py:36 keystone/auth/plugins/external.py:66
+msgid "No authenticated user"
msgstr ""
-#: keystone/auth/token_factory.py:94
-msgid "User have no access to domain"
-msgstr ""
-
-#: keystone/auth/token_factory.py:311 keystone/token/controllers.py:119
-#, fuzzy
-msgid "Unable to sign token."
+#: keystone/auth/plugins/external.py:49 keystone/auth/plugins/external.py:86
+#, fuzzy, python-format
+msgid "Unable to lookup user %s"
msgstr "Nem vehető fel a token felhasználólistája."
-#: keystone/auth/token_factory.py:314 keystone/token/controllers.py:122
-#, python-format
-msgid "Invalid value for token_format: %s. Allowed values are PKI or UUID."
+#: keystone/auth/plugins/password.py:112
+msgid "Invalid username or password"
msgstr ""
#: keystone/catalog/core.py:38
@@ -174,32 +319,32 @@ msgstr ""
msgid "RBAC: Invalid token"
msgstr ""
-#: keystone/common/controller.py:35 keystone/common/controller.py:56
+#: keystone/common/controller.py:39 keystone/common/controller.py:60
msgid "RBAC: Invalid user"
msgstr ""
-#: keystone/common/controller.py:41
+#: keystone/common/controller.py:45
msgid "RBAC: Proceeding without project"
msgstr ""
-#: keystone/common/controller.py:61
+#: keystone/common/controller.py:65
msgid "RBAC: Proceeding without tenant"
msgstr ""
-#: keystone/common/controller.py:91 keystone/common/controller.py:142
+#: keystone/common/controller.py:95 keystone/common/controller.py:146
msgid "RBAC: Bypassing authorization"
msgstr ""
-#: keystone/common/controller.py:100 keystone/common/controller.py:140
+#: keystone/common/controller.py:104 keystone/common/controller.py:144
msgid "RBAC: Authorization granted"
msgstr ""
-#: keystone/common/controller.py:130
+#: keystone/common/controller.py:134
#, python-format
msgid "RBAC: Adding query filter params (%s)"
msgstr ""
-#: keystone/common/controller.py:318
+#: keystone/common/controller.py:322
msgid "Invalid token in normalize_domain_id"
msgstr ""
@@ -210,17 +355,48 @@ msgid ""
"listening on that port."
msgstr ""
-#: keystone/common/wsgi.py:162
+#: keystone/common/wsgi.py:95
+msgid "No bind information present in token"
+msgstr ""
+
+#: keystone/common/wsgi.py:99
+#, python-format
+msgid "Named bind mode %s not in bind information"
+msgstr ""
+
+#: keystone/common/wsgi.py:105
+msgid "Kerberos credentials required and not present"
+msgstr ""
+
+#: keystone/common/wsgi.py:109
+msgid "Kerberos credentials do not match those in bind"
+msgstr ""
+
+#: keystone/common/wsgi.py:112
+msgid "Kerberos bind authentication successful"
+msgstr ""
+
+#: keystone/common/wsgi.py:115
+#, python-format
+msgid "Ignoring unknown bind for permissive mode: {%(bind_type)s: %(identifier)s}"
+msgstr ""
+
+#: keystone/common/wsgi.py:119
+#, python-format
+msgid "Couldn't verify unknown bind: {%(bind_type)s: %(identifier)s}"
+msgstr ""
+
+#: keystone/common/wsgi.py:211
#, python-format
msgid "arg_dict: %s"
msgstr "arg_dict: %s"
-#: keystone/common/wsgi.py:188
+#: keystone/common/wsgi.py:243
#, fuzzy, python-format
msgid "Authorization failed. %(exception)s from %(remote_addr)s"
msgstr "Hitelesítés sikertelen. %s innen: %s"
-#: keystone/common/wsgi.py:431
+#: keystone/common/wsgi.py:487
msgid "The resource could not be found."
msgstr "Az erőforrás nem található."
@@ -465,11 +641,11 @@ msgstr "FakeLdap keresés sikertelen: a dn nem található a SCOPE_BASE-hez"
msgid "Search scope %s not implemented."
msgstr "A(z) %s keresési hatókör nincs megvalósítva."
-#: keystone/common/sql/core.py:126
+#: keystone/common/sql/core.py:119
msgid "Global engine callback raised."
msgstr ""
-#: keystone/common/sql/core.py:240
+#: keystone/common/sql/core.py:233
#, python-format
msgid "Got mysql server has gone away: %s"
msgstr "A kapott MySQL szerver eltűnt: %s"
@@ -518,7 +694,7 @@ msgstr "%s szerep hozzárendelése %s felhasználóhoz %s bérlőben"
msgid "Creating ec2 cred for user %(user_id)s and tenant %(tenant_id)s"
msgstr "EC2 hitelesítési adatok létrehozása %s felhasználóhoz és %s bérlőhöz"
-#: keystone/identity/controllers.py:878
+#: keystone/identity/controllers.py:952
#, python-format
msgid ""
"Group %(group)s not found for role-assignment - %(target)s with Role: "
@@ -529,18 +705,18 @@ msgstr ""
msgid "User not found in group"
msgstr ""
-#: keystone/identity/backends/ldap.py:192
+#: keystone/identity/backends/ldap.py:189
#, python-format
msgid ""
"Group member '%(user_dn)s' not found in '%(group_id)s'. The user should "
"be removed from the group. The user will be ignored."
msgstr ""
-#: keystone/identity/backends/ldap.py:621
+#: keystone/identity/backends/ldap.py:334
msgid "Changing Name not supported by LDAP"
msgstr ""
-#: keystone/identity/backends/ldap.py:634
+#: keystone/identity/backends/ldap.py:347
#, python-format
msgid "User %(user_id)s is already a member of group %(group_id)s"
msgstr ""
@@ -560,26 +736,56 @@ msgstr ""
msgid "Failed to understand rule %(rule)r"
msgstr ""
+#: keystone/openstack/common/crypto/utils.py:29
+msgid "An unknown error occurred in crypto utils."
+msgstr ""
+
+#: keystone/openstack/common/crypto/utils.py:36
+#, python-format
+msgid "Block size of %(given)d is too big, max = %(maximum)d"
+msgstr ""
+
+#: keystone/openstack/common/crypto/utils.py:45
+#, python-format
+msgid "Length of %(given)d is too long, max = %(maximum)d"
+msgstr ""
+
#: keystone/policy/backends/rules.py:93
#, python-format
msgid "enforce %(action)s: %(credentials)s"
msgstr ""
-#: keystone/token/controllers.py:396
+#: keystone/token/controllers.py:378
#, python-format
msgid "User %(u_id)s is unauthorized for tenant %(t_id)s"
msgstr ""
-#: keystone/token/controllers.py:413 keystone/token/controllers.py:416
+#: keystone/token/controllers.py:395 keystone/token/controllers.py:398
msgid "Token does not belong to specified tenant."
msgstr ""
-#: keystone/token/controllers.py:423
-msgid "Non-default domain is not supported"
+#: keystone/token/provider.py:76
+msgid ""
+"keystone.conf [signing] token_format (deprecated) conflicts with "
+"keystone.conf [token] provider"
msgstr ""
-#: keystone/token/controllers.py:431
-msgid "Domain scoped token is not supported"
+#: keystone/token/provider.py:84
+msgid ""
+"keystone.conf [signing] token_format is deprecated in favor of "
+"keystone.conf [token] provider"
+msgstr ""
+
+#: keystone/token/provider.py:94
+msgid ""
+"Unrecognized keystone.conf [signing] token_format: expected either 'UUID'"
+" or 'PKI'"
+msgstr ""
+
+#: keystone/token/backends/kvs.py:37
+msgid ""
+"kvs token backend is DEPRECATED. Use keystone.token.backends.sql or "
+"keystone.token.backend.memcache instead."
msgstr ""
#: keystone/token/backends/memcache.py:144
@@ -604,3 +810,55 @@ msgstr ""
msgid "Unable to add token to revocation list."
msgstr "A token nem adható a visszavonási listához."
+#: keystone/token/providers/pki.py:43
+#, fuzzy
+msgid "Unable to sign token."
+msgstr "Nem vehető fel a token felhasználólistája."
+
+#: keystone/token/providers/uuid.py:193
+msgid "Trustor is disabled."
+msgstr ""
+
+#: keystone/token/providers/uuid.py:238
+msgid "Trustee has no delegated roles."
+msgstr ""
+
+#: keystone/token/providers/uuid.py:247
+#, python-format
+msgid "User %(user_id)s has no access to project %(project_id)s"
+msgstr ""
+
+#: keystone/token/providers/uuid.py:252
+#, python-format
+msgid "User %(user_id)s has no access to domain %(domain_id)s"
+msgstr ""
+
+#: keystone/token/providers/uuid.py:303
+msgid "User is not a trustee."
+msgstr ""
+
+#: keystone/token/providers/uuid.py:457
+msgid "Non-default domain is not supported"
+msgstr ""
+
+#: keystone/token/providers/uuid.py:465
+msgid "Domain scoped token is not supported"
+msgstr ""
+
+#: keystone/token/providers/uuid.py:528
+msgid "Failed to validate token"
+msgstr ""
+
+#: keystone/token/providers/uuid.py:566 keystone/token/providers/uuid.py:576
+msgid "Failed to verify token"
+msgstr ""
+
+#~ msgid "User have no access to project"
+#~ msgstr ""
+
+#~ msgid "User have no access to domain"
+#~ msgstr ""
+
+#~ msgid "Invalid value for token_format: %s. Allowed values are PKI or UUID."
+#~ msgstr ""
+
diff --git a/keystone/locale/id/LC_MESSAGES/keystone.po b/keystone/locale/id/LC_MESSAGES/keystone.po
new file mode 100644
index 00000000..1d5650b6
--- /dev/null
+++ b/keystone/locale/id/LC_MESSAGES/keystone.po
@@ -0,0 +1,847 @@
+# Indonesian translations for keystone.
+# Copyright (C) 2013 ORGANIZATION
+# This file is distributed under the same license as the keystone project.
+#
+# Translators:
+msgid ""
+msgstr ""
+"Project-Id-Version: Keystone\n"
+"Report-Msgid-Bugs-To: https://bugs.launchpad.net/keystone\n"
+"POT-Creation-Date: 2013-08-02 17:05+0000\n"
+"PO-Revision-Date: 2013-07-29 22:01+0000\n"
+"Last-Translator: openstackjenkins <jenkins@openstack.org>\n"
+"Language-Team: Indonesian "
+"(http://www.transifex.com/projects/p/openstack/language/id/)\n"
+"Plural-Forms: nplurals=1; plural=0\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=utf-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Generated-By: Babel 1.3\n"
+
+#: keystone/clean.py:23
+#, python-format
+msgid "%s cannot be empty."
+msgstr ""
+
+#: keystone/clean.py:25
+#, python-format
+msgid "%(property_name)s cannot be less than %(min_length)s characters."
+msgstr ""
+
+#: keystone/clean.py:29
+#, python-format
+msgid "%(property_name)s should not be greater than %(max_length)s characters."
+msgstr ""
+
+#: keystone/clean.py:36
+#, python-format
+msgid "%(property_name)s is not a %(display_expected_type)s"
+msgstr ""
+
+#: keystone/exception.py:48
+msgid "missing exception kwargs (programmer error)"
+msgstr ""
+
+#: keystone/exception.py:65
+#, python-format
+msgid ""
+"Expecting to find %(attribute)s in %(target)s. The server could not "
+"comply with the request since it is either malformed or otherwise "
+"incorrect. The client is assumed to be in error."
+msgstr ""
+
+#: keystone/exception.py:74
+#, python-format
+msgid ""
+"String length exceeded.The length of string '%(string)s' exceeded the "
+"limit of column %(type)s(CHAR(%(length)d))."
+msgstr ""
+
+#: keystone/exception.py:80
+#, python-format
+msgid ""
+"Request attribute %(attribute)s must be less than or equal to %(size)i. "
+"The server could not comply with the request because the attribute size "
+"is invalid (too large). The client is assumed to be in error."
+msgstr ""
+
+#: keystone/exception.py:101
+msgid "The request you have made requires authentication."
+msgstr ""
+
+#: keystone/exception.py:107
+msgid "Authentication plugin error."
+msgstr ""
+
+#: keystone/exception.py:115
+msgid "Attempted to authenticate with an unsupported method."
+msgstr ""
+
+#: keystone/exception.py:123
+msgid "Additional authentications steps required."
+msgstr ""
+
+#: keystone/exception.py:131
+msgid "You are not authorized to perform the requested action."
+msgstr ""
+
+#: keystone/exception.py:138
+#, python-format
+msgid "You are not authorized to perform the requested action, %(action)s."
+msgstr ""
+
+#: keystone/exception.py:143
+#, python-format
+msgid "Could not find, %(target)s."
+msgstr ""
+
+#: keystone/exception.py:149
+#, python-format
+msgid "Could not find endpoint, %(endpoint_id)s."
+msgstr ""
+
+#: keystone/exception.py:156
+msgid "An unhandled exception has occurred: Could not find metadata."
+msgstr ""
+
+#: keystone/exception.py:161
+#, python-format
+msgid "Could not find policy, %(policy_id)s."
+msgstr ""
+
+#: keystone/exception.py:165
+#, python-format
+msgid "Could not find role, %(role_id)s."
+msgstr ""
+
+#: keystone/exception.py:169
+#, python-format
+msgid "Could not find service, %(service_id)s."
+msgstr ""
+
+#: keystone/exception.py:173
+#, python-format
+msgid "Could not find domain, %(domain_id)s."
+msgstr ""
+
+#: keystone/exception.py:177
+#, python-format
+msgid "Could not find project, %(project_id)s."
+msgstr ""
+
+#: keystone/exception.py:181
+#, python-format
+msgid "Could not find token, %(token_id)s."
+msgstr ""
+
+#: keystone/exception.py:185
+#, python-format
+msgid "Could not find user, %(user_id)s."
+msgstr ""
+
+#: keystone/exception.py:189
+#, python-format
+msgid "Could not find group, %(group_id)s."
+msgstr ""
+
+#: keystone/exception.py:193
+#, python-format
+msgid "Could not find trust, %(trust_id)s."
+msgstr ""
+
+#: keystone/exception.py:197
+#, python-format
+msgid "Could not find credential, %(credential_id)s."
+msgstr ""
+
+#: keystone/exception.py:201
+#, python-format
+msgid "Could not find version, %(version)s."
+msgstr ""
+
+#: keystone/exception.py:205
+#, python-format
+msgid "Conflict occurred attempting to store %(type)s. %(details)s"
+msgstr ""
+
+#: keystone/exception.py:212
+msgid "Request is too large."
+msgstr ""
+
+#: keystone/exception.py:218
+#, python-format
+msgid ""
+"An unexpected error prevented the server from fulfilling your request. "
+"%(exception)s"
+msgstr ""
+
+#: keystone/exception.py:225
+#, python-format
+msgid "Malformed endpoint URL (%(endpoint)s), see ERROR log for details."
+msgstr ""
+
+#: keystone/exception.py:230
+msgid "The action you have requested has not been implemented."
+msgstr ""
+
+#: keystone/exception.py:237
+#, python-format
+msgid "The Keystone paste configuration file %(config_file)s could not be found."
+msgstr ""
+
+#: keystone/test.py:117
+#, python-format
+msgid "Failed to checkout %s"
+msgstr ""
+
+#: keystone/assignment/core.py:529
+#, python-format
+msgid "Expected dict or list: %s"
+msgstr ""
+
+#: keystone/assignment/backends/kvs.py:138
+#: keystone/assignment/backends/sql.py:285
+#, python-format
+msgid "Cannot remove role that has not been granted, %s"
+msgstr ""
+
+#: keystone/assignment/backends/ldap.py:418
+#, python-format
+msgid "Role %s not found"
+msgstr ""
+
+#: keystone/assignment/backends/sql.py:114
+msgid "Inherited roles can only be assigned to domains"
+msgstr ""
+
+#: keystone/auth/controllers.py:71
+#, python-format
+msgid "Project is disabled: %s"
+msgstr ""
+
+#: keystone/auth/controllers.py:77 keystone/auth/plugins/password.py:38
+#, python-format
+msgid "Domain is disabled: %s"
+msgstr ""
+
+#: keystone/auth/controllers.py:83 keystone/auth/plugins/password.py:44
+#, python-format
+msgid "User is disabled: %s"
+msgstr ""
+
+#: keystone/auth/controllers.py:262
+msgid "Scoping to both domain and project is not allowed"
+msgstr ""
+
+#: keystone/auth/controllers.py:265
+msgid "Scoping to both domain and trust is not allowed"
+msgstr ""
+
+#: keystone/auth/controllers.py:268
+msgid "Scoping to both project and trust is not allowed"
+msgstr ""
+
+#: keystone/auth/controllers.py:353
+msgid "User not found"
+msgstr ""
+
+#: keystone/auth/plugins/external.py:36 keystone/auth/plugins/external.py:66
+msgid "No authenticated user"
+msgstr ""
+
+#: keystone/auth/plugins/external.py:49 keystone/auth/plugins/external.py:86
+#, python-format
+msgid "Unable to lookup user %s"
+msgstr ""
+
+#: keystone/auth/plugins/password.py:112
+msgid "Invalid username or password"
+msgstr ""
+
+#: keystone/catalog/core.py:38
+#, python-format
+msgid "Malformed endpoint %(url)s - unknown key %(keyerror)s"
+msgstr ""
+
+#: keystone/catalog/core.py:43
+#, python-format
+msgid ""
+"Malformed endpoint %(url)s - unknown key %(keyerror)s(are you missing "
+"brackets ?)"
+msgstr ""
+
+#: keystone/catalog/core.py:49
+#, python-format
+msgid ""
+"Malformed endpoint %s - incomplete format (are you "
+"missing a type notifier ?)"
+msgstr ""
+
+#: keystone/catalog/backends/templated.py:109
+#, python-format
+msgid "Unable to open template file %s"
+msgstr ""
+
+#: keystone/common/cms.py:26
+#, python-format
+msgid "Verify error: %s"
+msgstr ""
+
+#: keystone/common/cms.py:118
+msgid ""
+"Signing error: Unable to load certificate - ensure you've configured PKI "
+"with 'keystone-manage pki_setup'"
+msgstr ""
+
+#: keystone/common/cms.py:122
+#, python-format
+msgid "Signing error: %s"
+msgstr ""
+
+#: keystone/common/config.py:89
+#, python-format
+msgid "Unable to locate specified logging config file: %s"
+msgstr ""
+
+#: keystone/common/config.py:107
+msgid "Invalid syslog facility"
+msgstr ""
+
+#: keystone/common/controller.py:18
+#, python-format
+msgid "RBAC: Authorizing %(action)s(%(kwargs)s)"
+msgstr ""
+
+#: keystone/common/controller.py:25
+msgid "RBAC: Invalid token"
+msgstr ""
+
+#: keystone/common/controller.py:39 keystone/common/controller.py:60
+msgid "RBAC: Invalid user"
+msgstr ""
+
+#: keystone/common/controller.py:45
+msgid "RBAC: Proceeding without project"
+msgstr ""
+
+#: keystone/common/controller.py:65
+msgid "RBAC: Proceeding without tenant"
+msgstr ""
+
+#: keystone/common/controller.py:95 keystone/common/controller.py:146
+msgid "RBAC: Bypassing authorization"
+msgstr ""
+
+#: keystone/common/controller.py:104 keystone/common/controller.py:144
+msgid "RBAC: Authorization granted"
+msgstr ""
+
+#: keystone/common/controller.py:134
+#, python-format
+msgid "RBAC: Adding query filter params (%s)"
+msgstr ""
+
+#: keystone/common/controller.py:322
+msgid "Invalid token in normalize_domain_id"
+msgstr ""
+
+#: keystone/common/utils.py:233
+msgid ""
+"Error setting up the debug environment. Verify that the option --debug-"
+"url has the format <host>:<port> and that a debugger processes is "
+"listening on that port."
+msgstr ""
+
+#: keystone/common/wsgi.py:95
+msgid "No bind information present in token"
+msgstr ""
+
+#: keystone/common/wsgi.py:99
+#, python-format
+msgid "Named bind mode %s not in bind information"
+msgstr ""
+
+#: keystone/common/wsgi.py:105
+msgid "Kerberos credentials required and not present"
+msgstr ""
+
+#: keystone/common/wsgi.py:109
+msgid "Kerberos credentials do not match those in bind"
+msgstr ""
+
+#: keystone/common/wsgi.py:112
+msgid "Kerberos bind authentication successful"
+msgstr ""
+
+#: keystone/common/wsgi.py:115
+#, python-format
+msgid "Ignoring unknown bind for permissive mode: {%(bind_type)s: %(identifier)s}"
+msgstr ""
+
+#: keystone/common/wsgi.py:119
+#, python-format
+msgid "Couldn't verify unknown bind: {%(bind_type)s: %(identifier)s}"
+msgstr ""
+
+#: keystone/common/wsgi.py:211
+#, python-format
+msgid "arg_dict: %s"
+msgstr ""
+
+#: keystone/common/wsgi.py:243
+#, python-format
+msgid "Authorization failed. %(exception)s from %(remote_addr)s"
+msgstr ""
+
+#: keystone/common/wsgi.py:487
+msgid "The resource could not be found."
+msgstr ""
+
+#: keystone/common/environment/__init__.py:37
+#, python-format
+msgid "Environment configured as: %s"
+msgstr ""
+
+#: keystone/common/environment/eventlet_server.py:51
+#, python-format
+msgid "Starting %(arg0)s on %(host)s:%(port)s"
+msgstr ""
+
+#: keystone/common/environment/eventlet_server.py:113
+msgid "Server error"
+msgstr ""
+
+#: keystone/common/ldap/core.py:79
+#, python-format
+msgid "Invalid LDAP deref option: %s. Choose one of: "
+msgstr ""
+
+#: keystone/common/ldap/core.py:87
+#, python-format
+msgid "Invalid LDAP TLS certs option: %(option). Choose one of: %(options)s"
+msgstr ""
+
+#: keystone/common/ldap/core.py:99
+#, python-format
+msgid "Invalid LDAP scope: %(scope)s. Choose one of: %(options)s"
+msgstr ""
+
+#: keystone/common/ldap/core.py:189
+#, python-format
+msgid ""
+"Invalid additional attribute mapping: \"%s\". Format must be "
+"<ldap_attribute>:<keystone_attribute>"
+msgstr ""
+
+#: keystone/common/ldap/core.py:195
+#, python-format
+msgid ""
+"Invalid additional attribute mapping: \"%(item)s\". Value "
+"\"%(attr_map)s\" must use one of %(keys)s."
+msgstr ""
+
+#: keystone/common/ldap/core.py:279 keystone/identity/backends/kvs.py:177
+#: keystone/identity/backends/kvs.py:205
+#, python-format
+msgid "Duplicate name, %s."
+msgstr ""
+
+#: keystone/common/ldap/core.py:289 keystone/identity/backends/kvs.py:170
+#, python-format
+msgid "Duplicate ID, %s."
+msgstr ""
+
+#: keystone/common/ldap/core.py:294
+#, python-format
+msgid "LDAP %s create"
+msgstr ""
+
+#: keystone/common/ldap/core.py:372
+#, python-format
+msgid "LDAP %s update"
+msgstr ""
+
+#: keystone/common/ldap/core.py:405
+#, python-format
+msgid "LDAP %s delete"
+msgstr ""
+
+#: keystone/common/ldap/core.py:430
+#, python-format
+msgid "LDAP init: url=%s"
+msgstr ""
+
+#: keystone/common/ldap/core.py:431
+#, python-format
+msgid ""
+"LDAP init: use_tls=%(use_tls)s\n"
+"tls_cacertfile=%(tls_cacertfile)s\n"
+"tls_cacertdir=%(tls_cacertdir)s\n"
+"tls_req_cert=%(tls_req_cert)s\n"
+"tls_avail=%(tls_avail)s\n"
+msgstr ""
+
+#: keystone/common/ldap/core.py:450
+msgid "Invalid TLS / LDAPS combination"
+msgstr ""
+
+#: keystone/common/ldap/core.py:454
+#, python-format
+msgid "Invalid LDAP TLS_AVAIL option: %s. TLS not available"
+msgstr ""
+
+#: keystone/common/ldap/core.py:464
+#, python-format
+msgid "tls_cacertfile %s not found or is not a file"
+msgstr ""
+
+#: keystone/common/ldap/core.py:476
+#, python-format
+msgid "tls_cacertdir %s not found or is not a directory"
+msgstr ""
+
+#: keystone/common/ldap/core.py:483
+#, python-format
+msgid "LDAP TLS: invalid TLS_REQUIRE_CERT Option=%s"
+msgstr ""
+
+#: keystone/common/ldap/core.py:497
+#, python-format
+msgid "LDAP bind: dn=%s"
+msgstr ""
+
+#: keystone/common/ldap/core.py:508
+#, python-format
+msgid "LDAP add: dn=%(dn)s, attrs=%(attrs)s"
+msgstr ""
+
+#: keystone/common/ldap/core.py:514
+#, python-format
+msgid ""
+"LDAP search: dn=%(dn)s, scope=%(scope)s, query=%(query)s, "
+"attrs=%(attrlist)s"
+msgstr ""
+
+#: keystone/common/ldap/core.py:567
+msgid ""
+"LDAP Server does not support paging. Disable paging in keystone.conf to "
+"avoid this message."
+msgstr ""
+
+#: keystone/common/ldap/core.py:584
+#, python-format
+msgid "LDAP modify: dn=%(dn)s, modlist=%(modlist)s"
+msgstr ""
+
+#: keystone/common/ldap/core.py:590
+#, python-format
+msgid "LDAP delete: dn=%s"
+msgstr ""
+
+#: keystone/common/ldap/core.py:595
+#, python-format
+msgid "LDAP delete_ext: dn=%(dn)s, serverctrls=%(serverctrls)s"
+msgstr ""
+
+#: keystone/common/ldap/fakeldap.py:146
+#, python-format
+msgid "FakeLdap initialize url=%s"
+msgstr ""
+
+#: keystone/common/ldap/fakeldap.py:156
+#, python-format
+msgid "FakeLdap bind dn=%s"
+msgstr ""
+
+#: keystone/common/ldap/fakeldap.py:163
+#, python-format
+msgid "FakeLdap bind fail: dn=%s not found"
+msgstr ""
+
+#: keystone/common/ldap/fakeldap.py:170
+#, python-format
+msgid "FakeLdap bind fail: password for dn=%s not found"
+msgstr ""
+
+#: keystone/common/ldap/fakeldap.py:175
+#, python-format
+msgid "FakeLdap bind fail: password for dn=%s does not match"
+msgstr ""
+
+#: keystone/common/ldap/fakeldap.py:190
+#, python-format
+msgid "FakeLdap add item: dn=%(dn)s, attrs=%(attrs)s"
+msgstr ""
+
+#: keystone/common/ldap/fakeldap.py:193
+#, python-format
+msgid "FakeLdap add item failed: dn=%s is already in store."
+msgstr ""
+
+#: keystone/common/ldap/fakeldap.py:207 keystone/common/ldap/fakeldap.py:221
+#, python-format
+msgid "FakeLdap delete item: dn=%s"
+msgstr ""
+
+#: keystone/common/ldap/fakeldap.py:211 keystone/common/ldap/fakeldap.py:225
+#, python-format
+msgid "FakeLdap delete item failed: dn=%s not found."
+msgstr ""
+
+#: keystone/common/ldap/fakeldap.py:240
+#, python-format
+msgid "FakeLdap modify item: dn=%(dn)s attrs=%(attrs)s"
+msgstr ""
+
+#: keystone/common/ldap/fakeldap.py:245
+#, python-format
+msgid "FakeLdap modify item failed: dn=%s not found."
+msgstr ""
+
+#: keystone/common/ldap/fakeldap.py:262
+#, python-format
+msgid "FakeLdap modify item failed: item has no attribute \"%s\" to delete"
+msgstr ""
+
+#: keystone/common/ldap/fakeldap.py:273
+#, python-format
+msgid ""
+"FakeLdap modify item failed: item has no attribute \"%(k)s\" with value "
+"\"%(v)s\" to delete"
+msgstr ""
+
+#: keystone/common/ldap/fakeldap.py:279
+#, python-format
+msgid "FakeLdap modify item failed: unknown command %s"
+msgstr ""
+
+#: keystone/common/ldap/fakeldap.py:281
+#, python-format
+msgid "modify_s action %s not implemented"
+msgstr ""
+
+#: keystone/common/ldap/fakeldap.py:300
+#, python-format
+msgid "FakeLdap search at dn=%(dn)s scope=%(scope)s query=%(query)s"
+msgstr ""
+
+#: keystone/common/ldap/fakeldap.py:306
+msgid "FakeLdap search fail: dn not found for SCOPE_BASE"
+msgstr ""
+
+#: keystone/common/ldap/fakeldap.py:320
+#, python-format
+msgid "Search scope %s not implemented."
+msgstr ""
+
+#: keystone/common/sql/core.py:119
+msgid "Global engine callback raised."
+msgstr ""
+
+#: keystone/common/sql/core.py:233
+#, python-format
+msgid "Got mysql server has gone away: %s"
+msgstr ""
+
+#: keystone/common/sql/legacy.py:188
+#, python-format
+msgid "Cannot migrate EC2 credential: %s"
+msgstr ""
+
+#: keystone/common/sql/migration.py:47
+msgid "version should be an integer"
+msgstr ""
+
+#: keystone/common/sql/nova.py:65
+#, python-format
+msgid "Create tenant %s"
+msgstr ""
+
+#: keystone/common/sql/nova.py:82
+#, python-format
+msgid "Create user %s"
+msgstr ""
+
+#: keystone/common/sql/nova.py:91
+#, python-format
+msgid "Add user %(user_id)s to tenant %(tenant_id)s"
+msgstr ""
+
+#: keystone/common/sql/nova.py:100
+#, python-format
+msgid "Ignoring existing role %s"
+msgstr ""
+
+#: keystone/common/sql/nova.py:107
+#, python-format
+msgid "Create role %s"
+msgstr ""
+
+#: keystone/common/sql/nova.py:117
+#, python-format
+msgid "Assign role %(role_id)s to user %(user_id)s on tenant %(tenant_id)s"
+msgstr ""
+
+#: keystone/common/sql/nova.py:136
+#, python-format
+msgid "Creating ec2 cred for user %(user_id)s and tenant %(tenant_id)s"
+msgstr ""
+
+#: keystone/identity/controllers.py:952
+#, python-format
+msgid ""
+"Group %(group)s not found for role-assignment - %(target)s with Role: "
+"%(role)s"
+msgstr ""
+
+#: keystone/identity/backends/kvs.py:126 keystone/identity/backends/kvs.py:135
+msgid "User not found in group"
+msgstr ""
+
+#: keystone/identity/backends/ldap.py:189
+#, python-format
+msgid ""
+"Group member '%(user_dn)s' not found in '%(group_id)s'. The user should "
+"be removed from the group. The user will be ignored."
+msgstr ""
+
+#: keystone/identity/backends/ldap.py:334
+msgid "Changing Name not supported by LDAP"
+msgstr ""
+
+#: keystone/identity/backends/ldap.py:347
+#, python-format
+msgid "User %(user_id)s is already a member of group %(group_id)s"
+msgstr ""
+
+#: keystone/openstack/common/policy.py:394
+#, python-format
+msgid "Failed to understand rule %(rule)s"
+msgstr ""
+
+#: keystone/openstack/common/policy.py:404
+#, python-format
+msgid "No handler for matches of kind %s"
+msgstr ""
+
+#: keystone/openstack/common/policy.py:679
+#, python-format
+msgid "Failed to understand rule %(rule)r"
+msgstr ""
+
+#: keystone/openstack/common/crypto/utils.py:29
+msgid "An unknown error occurred in crypto utils."
+msgstr ""
+
+#: keystone/openstack/common/crypto/utils.py:36
+#, python-format
+msgid "Block size of %(given)d is too big, max = %(maximum)d"
+msgstr ""
+
+#: keystone/openstack/common/crypto/utils.py:45
+#, python-format
+msgid "Length of %(given)d is too long, max = %(maximum)d"
+msgstr ""
+
+#: keystone/policy/backends/rules.py:93
+#, python-format
+msgid "enforce %(action)s: %(credentials)s"
+msgstr ""
+
+#: keystone/token/controllers.py:378
+#, python-format
+msgid "User %(u_id)s is unauthorized for tenant %(t_id)s"
+msgstr ""
+
+#: keystone/token/controllers.py:395 keystone/token/controllers.py:398
+msgid "Token does not belong to specified tenant."
+msgstr ""
+
+#: keystone/token/provider.py:76
+msgid ""
+"keystone.conf [signing] token_format (deprecated) conflicts with "
+"keystone.conf [token] provider"
+msgstr ""
+
+#: keystone/token/provider.py:84
+msgid ""
+"keystone.conf [signing] token_format is deprecated in favor of "
+"keystone.conf [token] provider"
+msgstr ""
+
+#: keystone/token/provider.py:94
+msgid ""
+"Unrecognized keystone.conf [signing] token_format: expected either 'UUID'"
+" or 'PKI'"
+msgstr ""
+
+#: keystone/token/backends/kvs.py:37
+msgid ""
+"kvs token backend is DEPRECATED. Use keystone.token.backends.sql or "
+"keystone.token.backend.memcache instead."
+msgstr ""
+
+#: keystone/token/backends/memcache.py:144
+#, python-format
+msgid ""
+"Successful set of token-index-list for user-key \"%(user_key)s\", "
+"#%(count)d records"
+msgstr ""
+
+#: keystone/token/backends/memcache.py:154
+#, python-format
+msgid ""
+"Failed to set token-index-list for user-key \"%(user_key)s\". Attempt "
+"%(cas_retry)d of %(cas_retry_max)d"
+msgstr ""
+
+#: keystone/token/backends/memcache.py:163
+msgid "Unable to add token user list"
+msgstr ""
+
+#: keystone/token/backends/memcache.py:172
+msgid "Unable to add token to revocation list."
+msgstr ""
+
+#: keystone/token/providers/pki.py:43
+msgid "Unable to sign token."
+msgstr ""
+
+#: keystone/token/providers/uuid.py:193
+msgid "Trustor is disabled."
+msgstr ""
+
+#: keystone/token/providers/uuid.py:238
+msgid "Trustee has no delegated roles."
+msgstr ""
+
+#: keystone/token/providers/uuid.py:247
+#, python-format
+msgid "User %(user_id)s has no access to project %(project_id)s"
+msgstr ""
+
+#: keystone/token/providers/uuid.py:252
+#, python-format
+msgid "User %(user_id)s has no access to domain %(domain_id)s"
+msgstr ""
+
+#: keystone/token/providers/uuid.py:303
+msgid "User is not a trustee."
+msgstr ""
+
+#: keystone/token/providers/uuid.py:457
+msgid "Non-default domain is not supported"
+msgstr ""
+
+#: keystone/token/providers/uuid.py:465
+msgid "Domain scoped token is not supported"
+msgstr ""
+
+#: keystone/token/providers/uuid.py:528
+msgid "Failed to validate token"
+msgstr ""
+
+#: keystone/token/providers/uuid.py:566 keystone/token/providers/uuid.py:576
+msgid "Failed to verify token"
+msgstr ""
+
diff --git a/keystone/locale/it/LC_MESSAGES/keystone.po b/keystone/locale/it/LC_MESSAGES/keystone.po
index 790166b4..89f965ee 100644
--- a/keystone/locale/it/LC_MESSAGES/keystone.po
+++ b/keystone/locale/it/LC_MESSAGES/keystone.po
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Keystone\n"
"Report-Msgid-Bugs-To: https://bugs.launchpad.net/keystone\n"
-"POT-Creation-Date: 2013-07-11 17:05+0000\n"
+"POT-Creation-Date: 2013-08-02 17:05+0000\n"
"PO-Revision-Date: 2013-05-17 16:06+0000\n"
"Last-Translator: openstackjenkins <jenkins@openstack.org>\n"
"Language-Team: Italian "
@@ -16,7 +16,7 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"Generated-By: Babel 0.9.6\n"
+"Generated-By: Babel 1.3\n"
#: keystone/clean.py:23
#, python-format
@@ -38,81 +38,225 @@ msgstr "%(property_name)s non può essere superiore a %(max_length)s caratteri."
msgid "%(property_name)s is not a %(display_expected_type)s"
msgstr ""
-#: keystone/test.py:106
+#: keystone/exception.py:48
+msgid "missing exception kwargs (programmer error)"
+msgstr ""
+
+#: keystone/exception.py:65
+#, python-format
+msgid ""
+"Expecting to find %(attribute)s in %(target)s. The server could not "
+"comply with the request since it is either malformed or otherwise "
+"incorrect. The client is assumed to be in error."
+msgstr ""
+
+#: keystone/exception.py:74
+#, python-format
+msgid ""
+"String length exceeded.The length of string '%(string)s' exceeded the "
+"limit of column %(type)s(CHAR(%(length)d))."
+msgstr ""
+
+#: keystone/exception.py:80
+#, python-format
+msgid ""
+"Request attribute %(attribute)s must be less than or equal to %(size)i. "
+"The server could not comply with the request because the attribute size "
+"is invalid (too large). The client is assumed to be in error."
+msgstr ""
+
+#: keystone/exception.py:101
+msgid "The request you have made requires authentication."
+msgstr ""
+
+#: keystone/exception.py:107
+msgid "Authentication plugin error."
+msgstr ""
+
+#: keystone/exception.py:115
+msgid "Attempted to authenticate with an unsupported method."
+msgstr ""
+
+#: keystone/exception.py:123
+msgid "Additional authentications steps required."
+msgstr ""
+
+#: keystone/exception.py:131
+msgid "You are not authorized to perform the requested action."
+msgstr ""
+
+#: keystone/exception.py:138
+#, python-format
+msgid "You are not authorized to perform the requested action, %(action)s."
+msgstr ""
+
+#: keystone/exception.py:143
+#, python-format
+msgid "Could not find, %(target)s."
+msgstr ""
+
+#: keystone/exception.py:149
+#, python-format
+msgid "Could not find endpoint, %(endpoint_id)s."
+msgstr ""
+
+#: keystone/exception.py:156
+msgid "An unhandled exception has occurred: Could not find metadata."
+msgstr ""
+
+#: keystone/exception.py:161
+#, python-format
+msgid "Could not find policy, %(policy_id)s."
+msgstr ""
+
+#: keystone/exception.py:165
+#, python-format
+msgid "Could not find role, %(role_id)s."
+msgstr ""
+
+#: keystone/exception.py:169
+#, python-format
+msgid "Could not find service, %(service_id)s."
+msgstr ""
+
+#: keystone/exception.py:173
+#, python-format
+msgid "Could not find domain, %(domain_id)s."
+msgstr ""
+
+#: keystone/exception.py:177
+#, python-format
+msgid "Could not find project, %(project_id)s."
+msgstr ""
+
+#: keystone/exception.py:181
+#, python-format
+msgid "Could not find token, %(token_id)s."
+msgstr ""
+
+#: keystone/exception.py:185
+#, python-format
+msgid "Could not find user, %(user_id)s."
+msgstr ""
+
+#: keystone/exception.py:189
+#, python-format
+msgid "Could not find group, %(group_id)s."
+msgstr ""
+
+#: keystone/exception.py:193
+#, python-format
+msgid "Could not find trust, %(trust_id)s."
+msgstr ""
+
+#: keystone/exception.py:197
+#, python-format
+msgid "Could not find credential, %(credential_id)s."
+msgstr ""
+
+#: keystone/exception.py:201
+#, python-format
+msgid "Could not find version, %(version)s."
+msgstr ""
+
+#: keystone/exception.py:205
+#, python-format
+msgid "Conflict occurred attempting to store %(type)s. %(details)s"
+msgstr ""
+
+#: keystone/exception.py:212
+msgid "Request is too large."
+msgstr ""
+
+#: keystone/exception.py:218
+#, python-format
+msgid ""
+"An unexpected error prevented the server from fulfilling your request. "
+"%(exception)s"
+msgstr ""
+
+#: keystone/exception.py:225
+#, python-format
+msgid "Malformed endpoint URL (%(endpoint)s), see ERROR log for details."
+msgstr ""
+
+#: keystone/exception.py:230
+msgid "The action you have requested has not been implemented."
+msgstr ""
+
+#: keystone/exception.py:237
+#, python-format
+msgid "The Keystone paste configuration file %(config_file)s could not be found."
+msgstr ""
+
+#: keystone/test.py:117
#, python-format
msgid "Failed to checkout %s"
msgstr "Impossibile eseguire il checkout %s"
-#: keystone/assignment/backends/ldap.py:110
+#: keystone/assignment/core.py:529
#, python-format
msgid "Expected dict or list: %s"
msgstr ""
-#: keystone/assignment/backends/ldap.py:456
-#: keystone/identity/backends/ldap.py:433
+#: keystone/assignment/backends/kvs.py:138
+#: keystone/assignment/backends/sql.py:285
+#, python-format
+msgid "Cannot remove role that has not been granted, %s"
+msgstr "Impossibile rimuovere un ruolo che non è stato concesso, %s"
+
+#: keystone/assignment/backends/ldap.py:418
#, python-format
msgid "Role %s not found"
msgstr "Ruolo %s non trovato"
-#: keystone/assignment/backends/sql.py:244
-#, python-format
-msgid "Cannot remove role that has not been granted, %s"
-msgstr "Impossibile rimuovere un ruolo che non è stato concesso, %s"
+#: keystone/assignment/backends/sql.py:114
+msgid "Inherited roles can only be assigned to domains"
+msgstr ""
-#: keystone/auth/controllers.py:72
+#: keystone/auth/controllers.py:71
#, python-format
msgid "Project is disabled: %s"
msgstr "Il progetto è disabilitato: %s"
-#: keystone/auth/controllers.py:78 keystone/auth/plugins/password.py:38
+#: keystone/auth/controllers.py:77 keystone/auth/plugins/password.py:38
#, python-format
msgid "Domain is disabled: %s"
msgstr "Il dominio è disabilitato: %s"
-#: keystone/auth/controllers.py:84 keystone/auth/plugins/password.py:44
+#: keystone/auth/controllers.py:83 keystone/auth/plugins/password.py:44
#, python-format
msgid "User is disabled: %s"
msgstr "L'utente è disabilitato: %s"
-#: keystone/auth/controllers.py:259
+#: keystone/auth/controllers.py:262
msgid "Scoping to both domain and project is not allowed"
msgstr "Il controllo sia del dominio che del progetto non è consentito"
-#: keystone/auth/controllers.py:262
+#: keystone/auth/controllers.py:265
msgid "Scoping to both domain and trust is not allowed"
msgstr "Il controllo sia del dominio che di trust non è consentito"
-#: keystone/auth/controllers.py:265
+#: keystone/auth/controllers.py:268
msgid "Scoping to both project and trust is not allowed"
msgstr "Il controllo sia delprogetto che di trust non è consentito"
-#: keystone/auth/controllers.py:325
-#, python-format
-msgid "Unable to lookup user %s"
-msgstr "Impossibile eseguire la ricerca dell'utente %s"
-
-#: keystone/auth/controllers.py:355
+#: keystone/auth/controllers.py:353
msgid "User not found"
msgstr "Utente non trovato"
-#: keystone/auth/token_factory.py:79
-msgid "User have no access to project"
-msgstr "L'utente non ha accesso al progetto"
-
-#: keystone/auth/token_factory.py:94
-msgid "User have no access to domain"
-msgstr "L'utente non ha accesso al dominio"
-
-#: keystone/auth/token_factory.py:311 keystone/token/controllers.py:119
-msgid "Unable to sign token."
-msgstr "Impossibile firmare il token."
+#: keystone/auth/plugins/external.py:36 keystone/auth/plugins/external.py:66
+msgid "No authenticated user"
+msgstr ""
-#: keystone/auth/token_factory.py:314 keystone/token/controllers.py:122
+#: keystone/auth/plugins/external.py:49 keystone/auth/plugins/external.py:86
#, python-format
-msgid "Invalid value for token_format: %s. Allowed values are PKI or UUID."
+msgid "Unable to lookup user %s"
+msgstr "Impossibile eseguire la ricerca dell'utente %s"
+
+#: keystone/auth/plugins/password.py:112
+msgid "Invalid username or password"
msgstr ""
-"Valore non valido per token_format: %s. I valori consentiti sono PKI o "
-"UUID."
#: keystone/catalog/core.py:38
#, python-format
@@ -178,32 +322,32 @@ msgstr ""
msgid "RBAC: Invalid token"
msgstr "RBAC: token non valido"
-#: keystone/common/controller.py:35 keystone/common/controller.py:56
+#: keystone/common/controller.py:39 keystone/common/controller.py:60
msgid "RBAC: Invalid user"
msgstr "RBAC: utente non valido"
-#: keystone/common/controller.py:41
+#: keystone/common/controller.py:45
msgid "RBAC: Proceeding without project"
msgstr "RBAC: si procede senza progetto"
-#: keystone/common/controller.py:61
+#: keystone/common/controller.py:65
msgid "RBAC: Proceeding without tenant"
msgstr "RBAC: si procede senza tenant"
-#: keystone/common/controller.py:91 keystone/common/controller.py:142
+#: keystone/common/controller.py:95 keystone/common/controller.py:146
msgid "RBAC: Bypassing authorization"
msgstr "RBAC: autorizzazione oltrepassata"
-#: keystone/common/controller.py:100 keystone/common/controller.py:140
+#: keystone/common/controller.py:104 keystone/common/controller.py:144
msgid "RBAC: Authorization granted"
msgstr "RBAC: autorizzazione concessa"
-#: keystone/common/controller.py:130
+#: keystone/common/controller.py:134
#, python-format
msgid "RBAC: Adding query filter params (%s)"
msgstr "RBAC: aggiunta parametri del filtro della query (%s)"
-#: keystone/common/controller.py:318
+#: keystone/common/controller.py:322
msgid "Invalid token in normalize_domain_id"
msgstr "Token non valido in normalize_domain_id"
@@ -214,17 +358,48 @@ msgid ""
"listening on that port."
msgstr ""
-#: keystone/common/wsgi.py:162
+#: keystone/common/wsgi.py:95
+msgid "No bind information present in token"
+msgstr ""
+
+#: keystone/common/wsgi.py:99
+#, python-format
+msgid "Named bind mode %s not in bind information"
+msgstr ""
+
+#: keystone/common/wsgi.py:105
+msgid "Kerberos credentials required and not present"
+msgstr ""
+
+#: keystone/common/wsgi.py:109
+msgid "Kerberos credentials do not match those in bind"
+msgstr ""
+
+#: keystone/common/wsgi.py:112
+msgid "Kerberos bind authentication successful"
+msgstr ""
+
+#: keystone/common/wsgi.py:115
+#, python-format
+msgid "Ignoring unknown bind for permissive mode: {%(bind_type)s: %(identifier)s}"
+msgstr ""
+
+#: keystone/common/wsgi.py:119
+#, python-format
+msgid "Couldn't verify unknown bind: {%(bind_type)s: %(identifier)s}"
+msgstr ""
+
+#: keystone/common/wsgi.py:211
#, python-format
msgid "arg_dict: %s"
msgstr "arg_dict: %s"
-#: keystone/common/wsgi.py:188
+#: keystone/common/wsgi.py:243
#, fuzzy, python-format
msgid "Authorization failed. %(exception)s from %(remote_addr)s"
msgstr "Autorizzazione non riuscita. %s da %s"
-#: keystone/common/wsgi.py:431
+#: keystone/common/wsgi.py:487
msgid "The resource could not be found."
msgstr "Impossibile trovare la risorsa."
@@ -471,11 +646,11 @@ msgstr "FakeLdap ricerca non riuscita: dn non trovato per SCOPE_BASE"
msgid "Search scope %s not implemented."
msgstr "Ambito di ricerca %s non implementato."
-#: keystone/common/sql/core.py:126
+#: keystone/common/sql/core.py:119
msgid "Global engine callback raised."
msgstr ""
-#: keystone/common/sql/core.py:240
+#: keystone/common/sql/core.py:233
#, python-format
msgid "Got mysql server has gone away: %s"
msgstr "Ricevuto messaggio di interruzione della connessione del server mysql: %s"
@@ -524,7 +699,7 @@ msgstr "Assegna il ruolo %s all'utente %s nel tenant %s"
msgid "Creating ec2 cred for user %(user_id)s and tenant %(tenant_id)s"
msgstr "Creazione credenziale ec2 per l'utente %s e del tenant %s"
-#: keystone/identity/controllers.py:878
+#: keystone/identity/controllers.py:952
#, python-format
msgid ""
"Group %(group)s not found for role-assignment - %(target)s with Role: "
@@ -535,18 +710,18 @@ msgstr ""
msgid "User not found in group"
msgstr "Utente non trovato nel gruppo"
-#: keystone/identity/backends/ldap.py:192
+#: keystone/identity/backends/ldap.py:189
#, python-format
msgid ""
"Group member '%(user_dn)s' not found in '%(group_id)s'. The user should "
"be removed from the group. The user will be ignored."
msgstr ""
-#: keystone/identity/backends/ldap.py:621
+#: keystone/identity/backends/ldap.py:334
msgid "Changing Name not supported by LDAP"
msgstr "Modifica nome non supportato da LDAP"
-#: keystone/identity/backends/ldap.py:634
+#: keystone/identity/backends/ldap.py:347
#, fuzzy, python-format
msgid "User %(user_id)s is already a member of group %(group_id)s"
msgstr "L'utente %s è già membro del gruppo %s"
@@ -566,27 +741,57 @@ msgstr "Nessun gestore per le corrispondenze di tipo %s"
msgid "Failed to understand rule %(rule)r"
msgstr "Impossibile comprendere la regola %(rule)r"
+#: keystone/openstack/common/crypto/utils.py:29
+msgid "An unknown error occurred in crypto utils."
+msgstr ""
+
+#: keystone/openstack/common/crypto/utils.py:36
+#, python-format
+msgid "Block size of %(given)d is too big, max = %(maximum)d"
+msgstr ""
+
+#: keystone/openstack/common/crypto/utils.py:45
+#, python-format
+msgid "Length of %(given)d is too long, max = %(maximum)d"
+msgstr ""
+
#: keystone/policy/backends/rules.py:93
#, python-format
msgid "enforce %(action)s: %(credentials)s"
msgstr ""
-#: keystone/token/controllers.py:396
+#: keystone/token/controllers.py:378
#, python-format
msgid "User %(u_id)s is unauthorized for tenant %(t_id)s"
msgstr ""
-#: keystone/token/controllers.py:413 keystone/token/controllers.py:416
+#: keystone/token/controllers.py:395 keystone/token/controllers.py:398
msgid "Token does not belong to specified tenant."
msgstr "Il token non appartiene al tenant specificato."
-#: keystone/token/controllers.py:423
-msgid "Non-default domain is not supported"
-msgstr "Il dominio non predefinito non è supportato"
+#: keystone/token/provider.py:76
+msgid ""
+"keystone.conf [signing] token_format (deprecated) conflicts with "
+"keystone.conf [token] provider"
+msgstr ""
-#: keystone/token/controllers.py:431
-msgid "Domain scoped token is not supported"
-msgstr "L'ambito del dominio token non è supportato"
+#: keystone/token/provider.py:84
+msgid ""
+"keystone.conf [signing] token_format is deprecated in favor of "
+"keystone.conf [token] provider"
+msgstr ""
+
+#: keystone/token/provider.py:94
+msgid ""
+"Unrecognized keystone.conf [signing] token_format: expected either 'UUID'"
+" or 'PKI'"
+msgstr ""
+
+#: keystone/token/backends/kvs.py:37
+msgid ""
+"kvs token backend is DEPRECATED. Use keystone.token.backends.sql or "
+"keystone.token.backend.memcache instead."
+msgstr ""
#: keystone/token/backends/memcache.py:144
#, python-format
@@ -610,3 +815,57 @@ msgstr ""
msgid "Unable to add token to revocation list."
msgstr "Impossibile aggiungere un token ad un elenco di revoca."
+#: keystone/token/providers/pki.py:43
+msgid "Unable to sign token."
+msgstr "Impossibile firmare il token."
+
+#: keystone/token/providers/uuid.py:193
+msgid "Trustor is disabled."
+msgstr ""
+
+#: keystone/token/providers/uuid.py:238
+msgid "Trustee has no delegated roles."
+msgstr ""
+
+#: keystone/token/providers/uuid.py:247
+#, python-format
+msgid "User %(user_id)s has no access to project %(project_id)s"
+msgstr ""
+
+#: keystone/token/providers/uuid.py:252
+#, python-format
+msgid "User %(user_id)s has no access to domain %(domain_id)s"
+msgstr ""
+
+#: keystone/token/providers/uuid.py:303
+msgid "User is not a trustee."
+msgstr ""
+
+#: keystone/token/providers/uuid.py:457
+msgid "Non-default domain is not supported"
+msgstr "Il dominio non predefinito non è supportato"
+
+#: keystone/token/providers/uuid.py:465
+msgid "Domain scoped token is not supported"
+msgstr "L'ambito del dominio token non è supportato"
+
+#: keystone/token/providers/uuid.py:528
+msgid "Failed to validate token"
+msgstr ""
+
+#: keystone/token/providers/uuid.py:566 keystone/token/providers/uuid.py:576
+msgid "Failed to verify token"
+msgstr ""
+
+#~ msgid "User have no access to project"
+#~ msgstr "L'utente non ha accesso al progetto"
+
+#~ msgid "User have no access to domain"
+#~ msgstr "L'utente non ha accesso al dominio"
+
+#~ msgid "Invalid value for token_format: %s. Allowed values are PKI or UUID."
+#~ msgstr ""
+#~ "Valore non valido per token_format: %s."
+#~ " I valori consentiti sono PKI o "
+#~ "UUID."
+
diff --git a/keystone/locale/it_IT/LC_MESSAGES/keystone.po b/keystone/locale/it_IT/LC_MESSAGES/keystone.po
new file mode 100644
index 00000000..7b8e76da
--- /dev/null
+++ b/keystone/locale/it_IT/LC_MESSAGES/keystone.po
@@ -0,0 +1,847 @@
+# Italian (Italy) translations for keystone.
+# Copyright (C) 2013 ORGANIZATION
+# This file is distributed under the same license as the keystone project.
+#
+# Translators:
+msgid ""
+msgstr ""
+"Project-Id-Version: Keystone\n"
+"Report-Msgid-Bugs-To: https://bugs.launchpad.net/keystone\n"
+"POT-Creation-Date: 2013-08-02 17:05+0000\n"
+"PO-Revision-Date: 2013-07-29 22:01+0000\n"
+"Last-Translator: openstackjenkins <jenkins@openstack.org>\n"
+"Language-Team: Italian (Italy) "
+"(http://www.transifex.com/projects/p/openstack/language/it_IT/)\n"
+"Plural-Forms: nplurals=2; plural=(n != 1)\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=utf-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Generated-By: Babel 1.3\n"
+
+#: keystone/clean.py:23
+#, python-format
+msgid "%s cannot be empty."
+msgstr ""
+
+#: keystone/clean.py:25
+#, python-format
+msgid "%(property_name)s cannot be less than %(min_length)s characters."
+msgstr ""
+
+#: keystone/clean.py:29
+#, python-format
+msgid "%(property_name)s should not be greater than %(max_length)s characters."
+msgstr ""
+
+#: keystone/clean.py:36
+#, python-format
+msgid "%(property_name)s is not a %(display_expected_type)s"
+msgstr ""
+
+#: keystone/exception.py:48
+msgid "missing exception kwargs (programmer error)"
+msgstr ""
+
+#: keystone/exception.py:65
+#, python-format
+msgid ""
+"Expecting to find %(attribute)s in %(target)s. The server could not "
+"comply with the request since it is either malformed or otherwise "
+"incorrect. The client is assumed to be in error."
+msgstr ""
+
+#: keystone/exception.py:74
+#, python-format
+msgid ""
+"String length exceeded.The length of string '%(string)s' exceeded the "
+"limit of column %(type)s(CHAR(%(length)d))."
+msgstr ""
+
+#: keystone/exception.py:80
+#, python-format
+msgid ""
+"Request attribute %(attribute)s must be less than or equal to %(size)i. "
+"The server could not comply with the request because the attribute size "
+"is invalid (too large). The client is assumed to be in error."
+msgstr ""
+
+#: keystone/exception.py:101
+msgid "The request you have made requires authentication."
+msgstr ""
+
+#: keystone/exception.py:107
+msgid "Authentication plugin error."
+msgstr ""
+
+#: keystone/exception.py:115
+msgid "Attempted to authenticate with an unsupported method."
+msgstr ""
+
+#: keystone/exception.py:123
+msgid "Additional authentications steps required."
+msgstr ""
+
+#: keystone/exception.py:131
+msgid "You are not authorized to perform the requested action."
+msgstr ""
+
+#: keystone/exception.py:138
+#, python-format
+msgid "You are not authorized to perform the requested action, %(action)s."
+msgstr ""
+
+#: keystone/exception.py:143
+#, python-format
+msgid "Could not find, %(target)s."
+msgstr ""
+
+#: keystone/exception.py:149
+#, python-format
+msgid "Could not find endpoint, %(endpoint_id)s."
+msgstr ""
+
+#: keystone/exception.py:156
+msgid "An unhandled exception has occurred: Could not find metadata."
+msgstr ""
+
+#: keystone/exception.py:161
+#, python-format
+msgid "Could not find policy, %(policy_id)s."
+msgstr ""
+
+#: keystone/exception.py:165
+#, python-format
+msgid "Could not find role, %(role_id)s."
+msgstr ""
+
+#: keystone/exception.py:169
+#, python-format
+msgid "Could not find service, %(service_id)s."
+msgstr ""
+
+#: keystone/exception.py:173
+#, python-format
+msgid "Could not find domain, %(domain_id)s."
+msgstr ""
+
+#: keystone/exception.py:177
+#, python-format
+msgid "Could not find project, %(project_id)s."
+msgstr ""
+
+#: keystone/exception.py:181
+#, python-format
+msgid "Could not find token, %(token_id)s."
+msgstr ""
+
+#: keystone/exception.py:185
+#, python-format
+msgid "Could not find user, %(user_id)s."
+msgstr ""
+
+#: keystone/exception.py:189
+#, python-format
+msgid "Could not find group, %(group_id)s."
+msgstr ""
+
+#: keystone/exception.py:193
+#, python-format
+msgid "Could not find trust, %(trust_id)s."
+msgstr ""
+
+#: keystone/exception.py:197
+#, python-format
+msgid "Could not find credential, %(credential_id)s."
+msgstr ""
+
+#: keystone/exception.py:201
+#, python-format
+msgid "Could not find version, %(version)s."
+msgstr ""
+
+#: keystone/exception.py:205
+#, python-format
+msgid "Conflict occurred attempting to store %(type)s. %(details)s"
+msgstr ""
+
+#: keystone/exception.py:212
+msgid "Request is too large."
+msgstr ""
+
+#: keystone/exception.py:218
+#, python-format
+msgid ""
+"An unexpected error prevented the server from fulfilling your request. "
+"%(exception)s"
+msgstr ""
+
+#: keystone/exception.py:225
+#, python-format
+msgid "Malformed endpoint URL (%(endpoint)s), see ERROR log for details."
+msgstr ""
+
+#: keystone/exception.py:230
+msgid "The action you have requested has not been implemented."
+msgstr ""
+
+#: keystone/exception.py:237
+#, python-format
+msgid "The Keystone paste configuration file %(config_file)s could not be found."
+msgstr ""
+
+#: keystone/test.py:117
+#, python-format
+msgid "Failed to checkout %s"
+msgstr ""
+
+#: keystone/assignment/core.py:529
+#, python-format
+msgid "Expected dict or list: %s"
+msgstr ""
+
+#: keystone/assignment/backends/kvs.py:138
+#: keystone/assignment/backends/sql.py:285
+#, python-format
+msgid "Cannot remove role that has not been granted, %s"
+msgstr ""
+
+#: keystone/assignment/backends/ldap.py:418
+#, python-format
+msgid "Role %s not found"
+msgstr ""
+
+#: keystone/assignment/backends/sql.py:114
+msgid "Inherited roles can only be assigned to domains"
+msgstr ""
+
+#: keystone/auth/controllers.py:71
+#, python-format
+msgid "Project is disabled: %s"
+msgstr ""
+
+#: keystone/auth/controllers.py:77 keystone/auth/plugins/password.py:38
+#, python-format
+msgid "Domain is disabled: %s"
+msgstr ""
+
+#: keystone/auth/controllers.py:83 keystone/auth/plugins/password.py:44
+#, python-format
+msgid "User is disabled: %s"
+msgstr ""
+
+#: keystone/auth/controllers.py:262
+msgid "Scoping to both domain and project is not allowed"
+msgstr ""
+
+#: keystone/auth/controllers.py:265
+msgid "Scoping to both domain and trust is not allowed"
+msgstr ""
+
+#: keystone/auth/controllers.py:268
+msgid "Scoping to both project and trust is not allowed"
+msgstr ""
+
+#: keystone/auth/controllers.py:353
+msgid "User not found"
+msgstr ""
+
+#: keystone/auth/plugins/external.py:36 keystone/auth/plugins/external.py:66
+msgid "No authenticated user"
+msgstr ""
+
+#: keystone/auth/plugins/external.py:49 keystone/auth/plugins/external.py:86
+#, python-format
+msgid "Unable to lookup user %s"
+msgstr ""
+
+#: keystone/auth/plugins/password.py:112
+msgid "Invalid username or password"
+msgstr ""
+
+#: keystone/catalog/core.py:38
+#, python-format
+msgid "Malformed endpoint %(url)s - unknown key %(keyerror)s"
+msgstr ""
+
+#: keystone/catalog/core.py:43
+#, python-format
+msgid ""
+"Malformed endpoint %(url)s - unknown key %(keyerror)s(are you missing "
+"brackets ?)"
+msgstr ""
+
+#: keystone/catalog/core.py:49
+#, python-format
+msgid ""
+"Malformed endpoint %s - incomplete format (are you "
+"missing a type notifier ?)"
+msgstr ""
+
+#: keystone/catalog/backends/templated.py:109
+#, python-format
+msgid "Unable to open template file %s"
+msgstr ""
+
+#: keystone/common/cms.py:26
+#, python-format
+msgid "Verify error: %s"
+msgstr ""
+
+#: keystone/common/cms.py:118
+msgid ""
+"Signing error: Unable to load certificate - ensure you've configured PKI "
+"with 'keystone-manage pki_setup'"
+msgstr ""
+
+#: keystone/common/cms.py:122
+#, python-format
+msgid "Signing error: %s"
+msgstr ""
+
+#: keystone/common/config.py:89
+#, python-format
+msgid "Unable to locate specified logging config file: %s"
+msgstr ""
+
+#: keystone/common/config.py:107
+msgid "Invalid syslog facility"
+msgstr ""
+
+#: keystone/common/controller.py:18
+#, python-format
+msgid "RBAC: Authorizing %(action)s(%(kwargs)s)"
+msgstr ""
+
+#: keystone/common/controller.py:25
+msgid "RBAC: Invalid token"
+msgstr ""
+
+#: keystone/common/controller.py:39 keystone/common/controller.py:60
+msgid "RBAC: Invalid user"
+msgstr ""
+
+#: keystone/common/controller.py:45
+msgid "RBAC: Proceeding without project"
+msgstr ""
+
+#: keystone/common/controller.py:65
+msgid "RBAC: Proceeding without tenant"
+msgstr ""
+
+#: keystone/common/controller.py:95 keystone/common/controller.py:146
+msgid "RBAC: Bypassing authorization"
+msgstr ""
+
+#: keystone/common/controller.py:104 keystone/common/controller.py:144
+msgid "RBAC: Authorization granted"
+msgstr ""
+
+#: keystone/common/controller.py:134
+#, python-format
+msgid "RBAC: Adding query filter params (%s)"
+msgstr ""
+
+#: keystone/common/controller.py:322
+msgid "Invalid token in normalize_domain_id"
+msgstr ""
+
+#: keystone/common/utils.py:233
+msgid ""
+"Error setting up the debug environment. Verify that the option --debug-"
+"url has the format <host>:<port> and that a debugger processes is "
+"listening on that port."
+msgstr ""
+
+#: keystone/common/wsgi.py:95
+msgid "No bind information present in token"
+msgstr ""
+
+#: keystone/common/wsgi.py:99
+#, python-format
+msgid "Named bind mode %s not in bind information"
+msgstr ""
+
+#: keystone/common/wsgi.py:105
+msgid "Kerberos credentials required and not present"
+msgstr ""
+
+#: keystone/common/wsgi.py:109
+msgid "Kerberos credentials do not match those in bind"
+msgstr ""
+
+#: keystone/common/wsgi.py:112
+msgid "Kerberos bind authentication successful"
+msgstr ""
+
+#: keystone/common/wsgi.py:115
+#, python-format
+msgid "Ignoring unknown bind for permissive mode: {%(bind_type)s: %(identifier)s}"
+msgstr ""
+
+#: keystone/common/wsgi.py:119
+#, python-format
+msgid "Couldn't verify unknown bind: {%(bind_type)s: %(identifier)s}"
+msgstr ""
+
+#: keystone/common/wsgi.py:211
+#, python-format
+msgid "arg_dict: %s"
+msgstr ""
+
+#: keystone/common/wsgi.py:243
+#, python-format
+msgid "Authorization failed. %(exception)s from %(remote_addr)s"
+msgstr ""
+
+#: keystone/common/wsgi.py:487
+msgid "The resource could not be found."
+msgstr ""
+
+#: keystone/common/environment/__init__.py:37
+#, python-format
+msgid "Environment configured as: %s"
+msgstr ""
+
+#: keystone/common/environment/eventlet_server.py:51
+#, python-format
+msgid "Starting %(arg0)s on %(host)s:%(port)s"
+msgstr ""
+
+#: keystone/common/environment/eventlet_server.py:113
+msgid "Server error"
+msgstr ""
+
+#: keystone/common/ldap/core.py:79
+#, python-format
+msgid "Invalid LDAP deref option: %s. Choose one of: "
+msgstr ""
+
+#: keystone/common/ldap/core.py:87
+#, python-format
+msgid "Invalid LDAP TLS certs option: %(option). Choose one of: %(options)s"
+msgstr ""
+
+#: keystone/common/ldap/core.py:99
+#, python-format
+msgid "Invalid LDAP scope: %(scope)s. Choose one of: %(options)s"
+msgstr ""
+
+#: keystone/common/ldap/core.py:189
+#, python-format
+msgid ""
+"Invalid additional attribute mapping: \"%s\". Format must be "
+"<ldap_attribute>:<keystone_attribute>"
+msgstr ""
+
+#: keystone/common/ldap/core.py:195
+#, python-format
+msgid ""
+"Invalid additional attribute mapping: \"%(item)s\". Value "
+"\"%(attr_map)s\" must use one of %(keys)s."
+msgstr ""
+
+#: keystone/common/ldap/core.py:279 keystone/identity/backends/kvs.py:177
+#: keystone/identity/backends/kvs.py:205
+#, python-format
+msgid "Duplicate name, %s."
+msgstr ""
+
+#: keystone/common/ldap/core.py:289 keystone/identity/backends/kvs.py:170
+#, python-format
+msgid "Duplicate ID, %s."
+msgstr ""
+
+#: keystone/common/ldap/core.py:294
+#, python-format
+msgid "LDAP %s create"
+msgstr ""
+
+#: keystone/common/ldap/core.py:372
+#, python-format
+msgid "LDAP %s update"
+msgstr ""
+
+#: keystone/common/ldap/core.py:405
+#, python-format
+msgid "LDAP %s delete"
+msgstr ""
+
+#: keystone/common/ldap/core.py:430
+#, python-format
+msgid "LDAP init: url=%s"
+msgstr ""
+
+#: keystone/common/ldap/core.py:431
+#, python-format
+msgid ""
+"LDAP init: use_tls=%(use_tls)s\n"
+"tls_cacertfile=%(tls_cacertfile)s\n"
+"tls_cacertdir=%(tls_cacertdir)s\n"
+"tls_req_cert=%(tls_req_cert)s\n"
+"tls_avail=%(tls_avail)s\n"
+msgstr ""
+
+#: keystone/common/ldap/core.py:450
+msgid "Invalid TLS / LDAPS combination"
+msgstr ""
+
+#: keystone/common/ldap/core.py:454
+#, python-format
+msgid "Invalid LDAP TLS_AVAIL option: %s. TLS not available"
+msgstr ""
+
+#: keystone/common/ldap/core.py:464
+#, python-format
+msgid "tls_cacertfile %s not found or is not a file"
+msgstr ""
+
+#: keystone/common/ldap/core.py:476
+#, python-format
+msgid "tls_cacertdir %s not found or is not a directory"
+msgstr ""
+
+#: keystone/common/ldap/core.py:483
+#, python-format
+msgid "LDAP TLS: invalid TLS_REQUIRE_CERT Option=%s"
+msgstr ""
+
+#: keystone/common/ldap/core.py:497
+#, python-format
+msgid "LDAP bind: dn=%s"
+msgstr ""
+
+#: keystone/common/ldap/core.py:508
+#, python-format
+msgid "LDAP add: dn=%(dn)s, attrs=%(attrs)s"
+msgstr ""
+
+#: keystone/common/ldap/core.py:514
+#, python-format
+msgid ""
+"LDAP search: dn=%(dn)s, scope=%(scope)s, query=%(query)s, "
+"attrs=%(attrlist)s"
+msgstr ""
+
+#: keystone/common/ldap/core.py:567
+msgid ""
+"LDAP Server does not support paging. Disable paging in keystone.conf to "
+"avoid this message."
+msgstr ""
+
+#: keystone/common/ldap/core.py:584
+#, python-format
+msgid "LDAP modify: dn=%(dn)s, modlist=%(modlist)s"
+msgstr ""
+
+#: keystone/common/ldap/core.py:590
+#, python-format
+msgid "LDAP delete: dn=%s"
+msgstr ""
+
+#: keystone/common/ldap/core.py:595
+#, python-format
+msgid "LDAP delete_ext: dn=%(dn)s, serverctrls=%(serverctrls)s"
+msgstr ""
+
+#: keystone/common/ldap/fakeldap.py:146
+#, python-format
+msgid "FakeLdap initialize url=%s"
+msgstr ""
+
+#: keystone/common/ldap/fakeldap.py:156
+#, python-format
+msgid "FakeLdap bind dn=%s"
+msgstr ""
+
+#: keystone/common/ldap/fakeldap.py:163
+#, python-format
+msgid "FakeLdap bind fail: dn=%s not found"
+msgstr ""
+
+#: keystone/common/ldap/fakeldap.py:170
+#, python-format
+msgid "FakeLdap bind fail: password for dn=%s not found"
+msgstr ""
+
+#: keystone/common/ldap/fakeldap.py:175
+#, python-format
+msgid "FakeLdap bind fail: password for dn=%s does not match"
+msgstr ""
+
+#: keystone/common/ldap/fakeldap.py:190
+#, python-format
+msgid "FakeLdap add item: dn=%(dn)s, attrs=%(attrs)s"
+msgstr ""
+
+#: keystone/common/ldap/fakeldap.py:193
+#, python-format
+msgid "FakeLdap add item failed: dn=%s is already in store."
+msgstr ""
+
+#: keystone/common/ldap/fakeldap.py:207 keystone/common/ldap/fakeldap.py:221
+#, python-format
+msgid "FakeLdap delete item: dn=%s"
+msgstr ""
+
+#: keystone/common/ldap/fakeldap.py:211 keystone/common/ldap/fakeldap.py:225
+#, python-format
+msgid "FakeLdap delete item failed: dn=%s not found."
+msgstr ""
+
+#: keystone/common/ldap/fakeldap.py:240
+#, python-format
+msgid "FakeLdap modify item: dn=%(dn)s attrs=%(attrs)s"
+msgstr ""
+
+#: keystone/common/ldap/fakeldap.py:245
+#, python-format
+msgid "FakeLdap modify item failed: dn=%s not found."
+msgstr ""
+
+#: keystone/common/ldap/fakeldap.py:262
+#, python-format
+msgid "FakeLdap modify item failed: item has no attribute \"%s\" to delete"
+msgstr ""
+
+#: keystone/common/ldap/fakeldap.py:273
+#, python-format
+msgid ""
+"FakeLdap modify item failed: item has no attribute \"%(k)s\" with value "
+"\"%(v)s\" to delete"
+msgstr ""
+
+#: keystone/common/ldap/fakeldap.py:279
+#, python-format
+msgid "FakeLdap modify item failed: unknown command %s"
+msgstr ""
+
+#: keystone/common/ldap/fakeldap.py:281
+#, python-format
+msgid "modify_s action %s not implemented"
+msgstr ""
+
+#: keystone/common/ldap/fakeldap.py:300
+#, python-format
+msgid "FakeLdap search at dn=%(dn)s scope=%(scope)s query=%(query)s"
+msgstr ""
+
+#: keystone/common/ldap/fakeldap.py:306
+msgid "FakeLdap search fail: dn not found for SCOPE_BASE"
+msgstr ""
+
+#: keystone/common/ldap/fakeldap.py:320
+#, python-format
+msgid "Search scope %s not implemented."
+msgstr ""
+
+#: keystone/common/sql/core.py:119
+msgid "Global engine callback raised."
+msgstr ""
+
+#: keystone/common/sql/core.py:233
+#, python-format
+msgid "Got mysql server has gone away: %s"
+msgstr ""
+
+#: keystone/common/sql/legacy.py:188
+#, python-format
+msgid "Cannot migrate EC2 credential: %s"
+msgstr ""
+
+#: keystone/common/sql/migration.py:47
+msgid "version should be an integer"
+msgstr ""
+
+#: keystone/common/sql/nova.py:65
+#, python-format
+msgid "Create tenant %s"
+msgstr ""
+
+#: keystone/common/sql/nova.py:82
+#, python-format
+msgid "Create user %s"
+msgstr ""
+
+#: keystone/common/sql/nova.py:91
+#, python-format
+msgid "Add user %(user_id)s to tenant %(tenant_id)s"
+msgstr ""
+
+#: keystone/common/sql/nova.py:100
+#, python-format
+msgid "Ignoring existing role %s"
+msgstr ""
+
+#: keystone/common/sql/nova.py:107
+#, python-format
+msgid "Create role %s"
+msgstr ""
+
+#: keystone/common/sql/nova.py:117
+#, python-format
+msgid "Assign role %(role_id)s to user %(user_id)s on tenant %(tenant_id)s"
+msgstr ""
+
+#: keystone/common/sql/nova.py:136
+#, python-format
+msgid "Creating ec2 cred for user %(user_id)s and tenant %(tenant_id)s"
+msgstr ""
+
+#: keystone/identity/controllers.py:952
+#, python-format
+msgid ""
+"Group %(group)s not found for role-assignment - %(target)s with Role: "
+"%(role)s"
+msgstr ""
+
+#: keystone/identity/backends/kvs.py:126 keystone/identity/backends/kvs.py:135
+msgid "User not found in group"
+msgstr ""
+
+#: keystone/identity/backends/ldap.py:189
+#, python-format
+msgid ""
+"Group member '%(user_dn)s' not found in '%(group_id)s'. The user should "
+"be removed from the group. The user will be ignored."
+msgstr ""
+
+#: keystone/identity/backends/ldap.py:334
+msgid "Changing Name not supported by LDAP"
+msgstr ""
+
+#: keystone/identity/backends/ldap.py:347
+#, python-format
+msgid "User %(user_id)s is already a member of group %(group_id)s"
+msgstr ""
+
+#: keystone/openstack/common/policy.py:394
+#, python-format
+msgid "Failed to understand rule %(rule)s"
+msgstr ""
+
+#: keystone/openstack/common/policy.py:404
+#, python-format
+msgid "No handler for matches of kind %s"
+msgstr ""
+
+#: keystone/openstack/common/policy.py:679
+#, python-format
+msgid "Failed to understand rule %(rule)r"
+msgstr ""
+
+#: keystone/openstack/common/crypto/utils.py:29
+msgid "An unknown error occurred in crypto utils."
+msgstr ""
+
+#: keystone/openstack/common/crypto/utils.py:36
+#, python-format
+msgid "Block size of %(given)d is too big, max = %(maximum)d"
+msgstr ""
+
+#: keystone/openstack/common/crypto/utils.py:45
+#, python-format
+msgid "Length of %(given)d is too long, max = %(maximum)d"
+msgstr ""
+
+#: keystone/policy/backends/rules.py:93
+#, python-format
+msgid "enforce %(action)s: %(credentials)s"
+msgstr ""
+
+#: keystone/token/controllers.py:378
+#, python-format
+msgid "User %(u_id)s is unauthorized for tenant %(t_id)s"
+msgstr ""
+
+#: keystone/token/controllers.py:395 keystone/token/controllers.py:398
+msgid "Token does not belong to specified tenant."
+msgstr ""
+
+#: keystone/token/provider.py:76
+msgid ""
+"keystone.conf [signing] token_format (deprecated) conflicts with "
+"keystone.conf [token] provider"
+msgstr ""
+
+#: keystone/token/provider.py:84
+msgid ""
+"keystone.conf [signing] token_format is deprecated in favor of "
+"keystone.conf [token] provider"
+msgstr ""
+
+#: keystone/token/provider.py:94
+msgid ""
+"Unrecognized keystone.conf [signing] token_format: expected either 'UUID'"
+" or 'PKI'"
+msgstr ""
+
+#: keystone/token/backends/kvs.py:37
+msgid ""
+"kvs token backend is DEPRECATED. Use keystone.token.backends.sql or "
+"keystone.token.backend.memcache instead."
+msgstr ""
+
+#: keystone/token/backends/memcache.py:144
+#, python-format
+msgid ""
+"Successful set of token-index-list for user-key \"%(user_key)s\", "
+"#%(count)d records"
+msgstr ""
+
+#: keystone/token/backends/memcache.py:154
+#, python-format
+msgid ""
+"Failed to set token-index-list for user-key \"%(user_key)s\". Attempt "
+"%(cas_retry)d of %(cas_retry_max)d"
+msgstr ""
+
+#: keystone/token/backends/memcache.py:163
+msgid "Unable to add token user list"
+msgstr ""
+
+#: keystone/token/backends/memcache.py:172
+msgid "Unable to add token to revocation list."
+msgstr ""
+
+#: keystone/token/providers/pki.py:43
+msgid "Unable to sign token."
+msgstr ""
+
+#: keystone/token/providers/uuid.py:193
+msgid "Trustor is disabled."
+msgstr ""
+
+#: keystone/token/providers/uuid.py:238
+msgid "Trustee has no delegated roles."
+msgstr ""
+
+#: keystone/token/providers/uuid.py:247
+#, python-format
+msgid "User %(user_id)s has no access to project %(project_id)s"
+msgstr ""
+
+#: keystone/token/providers/uuid.py:252
+#, python-format
+msgid "User %(user_id)s has no access to domain %(domain_id)s"
+msgstr ""
+
+#: keystone/token/providers/uuid.py:303
+msgid "User is not a trustee."
+msgstr ""
+
+#: keystone/token/providers/uuid.py:457
+msgid "Non-default domain is not supported"
+msgstr ""
+
+#: keystone/token/providers/uuid.py:465
+msgid "Domain scoped token is not supported"
+msgstr ""
+
+#: keystone/token/providers/uuid.py:528
+msgid "Failed to validate token"
+msgstr ""
+
+#: keystone/token/providers/uuid.py:566 keystone/token/providers/uuid.py:576
+msgid "Failed to verify token"
+msgstr ""
+
diff --git a/keystone/locale/ja/LC_MESSAGES/keystone.po b/keystone/locale/ja/LC_MESSAGES/keystone.po
index bd31a1d3..a8f0bb69 100644
--- a/keystone/locale/ja/LC_MESSAGES/keystone.po
+++ b/keystone/locale/ja/LC_MESSAGES/keystone.po
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Keystone\n"
"Report-Msgid-Bugs-To: https://bugs.launchpad.net/keystone\n"
-"POT-Creation-Date: 2013-07-11 17:05+0000\n"
+"POT-Creation-Date: 2013-08-02 17:05+0000\n"
"PO-Revision-Date: 2012-11-03 01:25+0000\n"
"Last-Translator: Tomoyuki KATO <tomo@dream.daynight.jp>\n"
"Language-Team: Japanese "
@@ -16,7 +16,7 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"Generated-By: Babel 0.9.6\n"
+"Generated-By: Babel 1.3\n"
#: keystone/clean.py:23
#, python-format
@@ -38,79 +38,224 @@ msgstr ""
msgid "%(property_name)s is not a %(display_expected_type)s"
msgstr ""
-#: keystone/test.py:106
+#: keystone/exception.py:48
+msgid "missing exception kwargs (programmer error)"
+msgstr ""
+
+#: keystone/exception.py:65
+#, python-format
+msgid ""
+"Expecting to find %(attribute)s in %(target)s. The server could not "
+"comply with the request since it is either malformed or otherwise "
+"incorrect. The client is assumed to be in error."
+msgstr ""
+
+#: keystone/exception.py:74
+#, python-format
+msgid ""
+"String length exceeded.The length of string '%(string)s' exceeded the "
+"limit of column %(type)s(CHAR(%(length)d))."
+msgstr ""
+
+#: keystone/exception.py:80
+#, python-format
+msgid ""
+"Request attribute %(attribute)s must be less than or equal to %(size)i. "
+"The server could not comply with the request because the attribute size "
+"is invalid (too large). The client is assumed to be in error."
+msgstr ""
+
+#: keystone/exception.py:101
+msgid "The request you have made requires authentication."
+msgstr ""
+
+#: keystone/exception.py:107
+msgid "Authentication plugin error."
+msgstr ""
+
+#: keystone/exception.py:115
+msgid "Attempted to authenticate with an unsupported method."
+msgstr ""
+
+#: keystone/exception.py:123
+msgid "Additional authentications steps required."
+msgstr ""
+
+#: keystone/exception.py:131
+msgid "You are not authorized to perform the requested action."
+msgstr ""
+
+#: keystone/exception.py:138
+#, python-format
+msgid "You are not authorized to perform the requested action, %(action)s."
+msgstr ""
+
+#: keystone/exception.py:143
+#, python-format
+msgid "Could not find, %(target)s."
+msgstr ""
+
+#: keystone/exception.py:149
+#, python-format
+msgid "Could not find endpoint, %(endpoint_id)s."
+msgstr ""
+
+#: keystone/exception.py:156
+msgid "An unhandled exception has occurred: Could not find metadata."
+msgstr ""
+
+#: keystone/exception.py:161
+#, python-format
+msgid "Could not find policy, %(policy_id)s."
+msgstr ""
+
+#: keystone/exception.py:165
+#, python-format
+msgid "Could not find role, %(role_id)s."
+msgstr ""
+
+#: keystone/exception.py:169
+#, python-format
+msgid "Could not find service, %(service_id)s."
+msgstr ""
+
+#: keystone/exception.py:173
+#, python-format
+msgid "Could not find domain, %(domain_id)s."
+msgstr ""
+
+#: keystone/exception.py:177
+#, python-format
+msgid "Could not find project, %(project_id)s."
+msgstr ""
+
+#: keystone/exception.py:181
+#, python-format
+msgid "Could not find token, %(token_id)s."
+msgstr ""
+
+#: keystone/exception.py:185
+#, python-format
+msgid "Could not find user, %(user_id)s."
+msgstr ""
+
+#: keystone/exception.py:189
+#, python-format
+msgid "Could not find group, %(group_id)s."
+msgstr ""
+
+#: keystone/exception.py:193
+#, python-format
+msgid "Could not find trust, %(trust_id)s."
+msgstr ""
+
+#: keystone/exception.py:197
+#, python-format
+msgid "Could not find credential, %(credential_id)s."
+msgstr ""
+
+#: keystone/exception.py:201
+#, python-format
+msgid "Could not find version, %(version)s."
+msgstr ""
+
+#: keystone/exception.py:205
+#, python-format
+msgid "Conflict occurred attempting to store %(type)s. %(details)s"
+msgstr ""
+
+#: keystone/exception.py:212
+msgid "Request is too large."
+msgstr ""
+
+#: keystone/exception.py:218
+#, python-format
+msgid ""
+"An unexpected error prevented the server from fulfilling your request. "
+"%(exception)s"
+msgstr ""
+
+#: keystone/exception.py:225
+#, python-format
+msgid "Malformed endpoint URL (%(endpoint)s), see ERROR log for details."
+msgstr ""
+
+#: keystone/exception.py:230
+msgid "The action you have requested has not been implemented."
+msgstr ""
+
+#: keystone/exception.py:237
+#, python-format
+msgid "The Keystone paste configuration file %(config_file)s could not be found."
+msgstr ""
+
+#: keystone/test.py:117
#, python-format
msgid "Failed to checkout %s"
msgstr ""
-#: keystone/assignment/backends/ldap.py:110
+#: keystone/assignment/core.py:529
#, python-format
msgid "Expected dict or list: %s"
msgstr ""
-#: keystone/assignment/backends/ldap.py:456
-#: keystone/identity/backends/ldap.py:433
+#: keystone/assignment/backends/kvs.py:138
+#: keystone/assignment/backends/sql.py:285
#, python-format
-msgid "Role %s not found"
+msgid "Cannot remove role that has not been granted, %s"
msgstr ""
-#: keystone/assignment/backends/sql.py:244
+#: keystone/assignment/backends/ldap.py:418
#, python-format
-msgid "Cannot remove role that has not been granted, %s"
+msgid "Role %s not found"
+msgstr ""
+
+#: keystone/assignment/backends/sql.py:114
+msgid "Inherited roles can only be assigned to domains"
msgstr ""
-#: keystone/auth/controllers.py:72
+#: keystone/auth/controllers.py:71
#, python-format
msgid "Project is disabled: %s"
msgstr ""
-#: keystone/auth/controllers.py:78 keystone/auth/plugins/password.py:38
+#: keystone/auth/controllers.py:77 keystone/auth/plugins/password.py:38
#, python-format
msgid "Domain is disabled: %s"
msgstr ""
-#: keystone/auth/controllers.py:84 keystone/auth/plugins/password.py:44
+#: keystone/auth/controllers.py:83 keystone/auth/plugins/password.py:44
#, python-format
msgid "User is disabled: %s"
msgstr ""
-#: keystone/auth/controllers.py:259
+#: keystone/auth/controllers.py:262
msgid "Scoping to both domain and project is not allowed"
msgstr ""
-#: keystone/auth/controllers.py:262
+#: keystone/auth/controllers.py:265
msgid "Scoping to both domain and trust is not allowed"
msgstr ""
-#: keystone/auth/controllers.py:265
+#: keystone/auth/controllers.py:268
msgid "Scoping to both project and trust is not allowed"
msgstr ""
-#: keystone/auth/controllers.py:325
-#, fuzzy, python-format
-msgid "Unable to lookup user %s"
-msgstr "ユーザーリストにトークンを追加できません。"
-
-#: keystone/auth/controllers.py:355
+#: keystone/auth/controllers.py:353
msgid "User not found"
msgstr ""
-#: keystone/auth/token_factory.py:79
-msgid "User have no access to project"
+#: keystone/auth/plugins/external.py:36 keystone/auth/plugins/external.py:66
+msgid "No authenticated user"
msgstr ""
-#: keystone/auth/token_factory.py:94
-msgid "User have no access to domain"
-msgstr ""
-
-#: keystone/auth/token_factory.py:311 keystone/token/controllers.py:119
-#, fuzzy
-msgid "Unable to sign token."
+#: keystone/auth/plugins/external.py:49 keystone/auth/plugins/external.py:86
+#, fuzzy, python-format
+msgid "Unable to lookup user %s"
msgstr "ユーザーリストにトークンを追加できません。"
-#: keystone/auth/token_factory.py:314 keystone/token/controllers.py:122
-#, python-format
-msgid "Invalid value for token_format: %s. Allowed values are PKI or UUID."
+#: keystone/auth/plugins/password.py:112
+msgid "Invalid username or password"
msgstr ""
#: keystone/catalog/core.py:38
@@ -171,32 +316,32 @@ msgstr ""
msgid "RBAC: Invalid token"
msgstr ""
-#: keystone/common/controller.py:35 keystone/common/controller.py:56
+#: keystone/common/controller.py:39 keystone/common/controller.py:60
msgid "RBAC: Invalid user"
msgstr ""
-#: keystone/common/controller.py:41
+#: keystone/common/controller.py:45
msgid "RBAC: Proceeding without project"
msgstr ""
-#: keystone/common/controller.py:61
+#: keystone/common/controller.py:65
msgid "RBAC: Proceeding without tenant"
msgstr ""
-#: keystone/common/controller.py:91 keystone/common/controller.py:142
+#: keystone/common/controller.py:95 keystone/common/controller.py:146
msgid "RBAC: Bypassing authorization"
msgstr ""
-#: keystone/common/controller.py:100 keystone/common/controller.py:140
+#: keystone/common/controller.py:104 keystone/common/controller.py:144
msgid "RBAC: Authorization granted"
msgstr ""
-#: keystone/common/controller.py:130
+#: keystone/common/controller.py:134
#, python-format
msgid "RBAC: Adding query filter params (%s)"
msgstr ""
-#: keystone/common/controller.py:318
+#: keystone/common/controller.py:322
msgid "Invalid token in normalize_domain_id"
msgstr ""
@@ -207,17 +352,48 @@ msgid ""
"listening on that port."
msgstr ""
-#: keystone/common/wsgi.py:162
+#: keystone/common/wsgi.py:95
+msgid "No bind information present in token"
+msgstr ""
+
+#: keystone/common/wsgi.py:99
+#, python-format
+msgid "Named bind mode %s not in bind information"
+msgstr ""
+
+#: keystone/common/wsgi.py:105
+msgid "Kerberos credentials required and not present"
+msgstr ""
+
+#: keystone/common/wsgi.py:109
+msgid "Kerberos credentials do not match those in bind"
+msgstr ""
+
+#: keystone/common/wsgi.py:112
+msgid "Kerberos bind authentication successful"
+msgstr ""
+
+#: keystone/common/wsgi.py:115
+#, python-format
+msgid "Ignoring unknown bind for permissive mode: {%(bind_type)s: %(identifier)s}"
+msgstr ""
+
+#: keystone/common/wsgi.py:119
+#, python-format
+msgid "Couldn't verify unknown bind: {%(bind_type)s: %(identifier)s}"
+msgstr ""
+
+#: keystone/common/wsgi.py:211
#, python-format
msgid "arg_dict: %s"
msgstr ""
-#: keystone/common/wsgi.py:188
+#: keystone/common/wsgi.py:243
#, python-format
msgid "Authorization failed. %(exception)s from %(remote_addr)s"
msgstr ""
-#: keystone/common/wsgi.py:431
+#: keystone/common/wsgi.py:487
msgid "The resource could not be found."
msgstr ""
@@ -458,11 +634,11 @@ msgstr ""
msgid "Search scope %s not implemented."
msgstr ""
-#: keystone/common/sql/core.py:126
+#: keystone/common/sql/core.py:119
msgid "Global engine callback raised."
msgstr ""
-#: keystone/common/sql/core.py:240
+#: keystone/common/sql/core.py:233
#, python-format
msgid "Got mysql server has gone away: %s"
msgstr ""
@@ -511,7 +687,7 @@ msgstr ""
msgid "Creating ec2 cred for user %(user_id)s and tenant %(tenant_id)s"
msgstr ""
-#: keystone/identity/controllers.py:878
+#: keystone/identity/controllers.py:952
#, python-format
msgid ""
"Group %(group)s not found for role-assignment - %(target)s with Role: "
@@ -522,18 +698,18 @@ msgstr ""
msgid "User not found in group"
msgstr ""
-#: keystone/identity/backends/ldap.py:192
+#: keystone/identity/backends/ldap.py:189
#, python-format
msgid ""
"Group member '%(user_dn)s' not found in '%(group_id)s'. The user should "
"be removed from the group. The user will be ignored."
msgstr ""
-#: keystone/identity/backends/ldap.py:621
+#: keystone/identity/backends/ldap.py:334
msgid "Changing Name not supported by LDAP"
msgstr ""
-#: keystone/identity/backends/ldap.py:634
+#: keystone/identity/backends/ldap.py:347
#, python-format
msgid "User %(user_id)s is already a member of group %(group_id)s"
msgstr ""
@@ -553,26 +729,56 @@ msgstr ""
msgid "Failed to understand rule %(rule)r"
msgstr ""
+#: keystone/openstack/common/crypto/utils.py:29
+msgid "An unknown error occurred in crypto utils."
+msgstr ""
+
+#: keystone/openstack/common/crypto/utils.py:36
+#, python-format
+msgid "Block size of %(given)d is too big, max = %(maximum)d"
+msgstr ""
+
+#: keystone/openstack/common/crypto/utils.py:45
+#, python-format
+msgid "Length of %(given)d is too long, max = %(maximum)d"
+msgstr ""
+
#: keystone/policy/backends/rules.py:93
#, python-format
msgid "enforce %(action)s: %(credentials)s"
msgstr ""
-#: keystone/token/controllers.py:396
+#: keystone/token/controllers.py:378
#, python-format
msgid "User %(u_id)s is unauthorized for tenant %(t_id)s"
msgstr ""
-#: keystone/token/controllers.py:413 keystone/token/controllers.py:416
+#: keystone/token/controllers.py:395 keystone/token/controllers.py:398
msgid "Token does not belong to specified tenant."
msgstr ""
-#: keystone/token/controllers.py:423
-msgid "Non-default domain is not supported"
+#: keystone/token/provider.py:76
+msgid ""
+"keystone.conf [signing] token_format (deprecated) conflicts with "
+"keystone.conf [token] provider"
msgstr ""
-#: keystone/token/controllers.py:431
-msgid "Domain scoped token is not supported"
+#: keystone/token/provider.py:84
+msgid ""
+"keystone.conf [signing] token_format is deprecated in favor of "
+"keystone.conf [token] provider"
+msgstr ""
+
+#: keystone/token/provider.py:94
+msgid ""
+"Unrecognized keystone.conf [signing] token_format: expected either 'UUID'"
+" or 'PKI'"
+msgstr ""
+
+#: keystone/token/backends/kvs.py:37
+msgid ""
+"kvs token backend is DEPRECATED. Use keystone.token.backends.sql or "
+"keystone.token.backend.memcache instead."
msgstr ""
#: keystone/token/backends/memcache.py:144
@@ -597,3 +803,55 @@ msgstr ""
msgid "Unable to add token to revocation list."
msgstr "失効リストにトークンを追加できません。"
+#: keystone/token/providers/pki.py:43
+#, fuzzy
+msgid "Unable to sign token."
+msgstr "ユーザーリストにトークンを追加できません。"
+
+#: keystone/token/providers/uuid.py:193
+msgid "Trustor is disabled."
+msgstr ""
+
+#: keystone/token/providers/uuid.py:238
+msgid "Trustee has no delegated roles."
+msgstr ""
+
+#: keystone/token/providers/uuid.py:247
+#, python-format
+msgid "User %(user_id)s has no access to project %(project_id)s"
+msgstr ""
+
+#: keystone/token/providers/uuid.py:252
+#, python-format
+msgid "User %(user_id)s has no access to domain %(domain_id)s"
+msgstr ""
+
+#: keystone/token/providers/uuid.py:303
+msgid "User is not a trustee."
+msgstr ""
+
+#: keystone/token/providers/uuid.py:457
+msgid "Non-default domain is not supported"
+msgstr ""
+
+#: keystone/token/providers/uuid.py:465
+msgid "Domain scoped token is not supported"
+msgstr ""
+
+#: keystone/token/providers/uuid.py:528
+msgid "Failed to validate token"
+msgstr ""
+
+#: keystone/token/providers/uuid.py:566 keystone/token/providers/uuid.py:576
+msgid "Failed to verify token"
+msgstr ""
+
+#~ msgid "User have no access to project"
+#~ msgstr ""
+
+#~ msgid "User have no access to domain"
+#~ msgstr ""
+
+#~ msgid "Invalid value for token_format: %s. Allowed values are PKI or UUID."
+#~ msgstr ""
+
diff --git a/keystone/locale/ka_GE/LC_MESSAGES/keystone.po b/keystone/locale/ka_GE/LC_MESSAGES/keystone.po
index 090bf2e2..8d998614 100644
--- a/keystone/locale/ka_GE/LC_MESSAGES/keystone.po
+++ b/keystone/locale/ka_GE/LC_MESSAGES/keystone.po
@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Keystone\n"
"Report-Msgid-Bugs-To: https://bugs.launchpad.net/keystone\n"
-"POT-Creation-Date: 2013-07-11 17:05+0000\n"
+"POT-Creation-Date: 2013-08-02 17:05+0000\n"
"PO-Revision-Date: 2013-05-17 16:06+0000\n"
"Last-Translator: openstackjenkins <jenkins@openstack.org>\n"
"Language-Team: ka_GE <LL@li.org>\n"
@@ -16,7 +16,7 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"Generated-By: Babel 0.9.6\n"
+"Generated-By: Babel 1.3\n"
#: keystone/clean.py:23
#, python-format
@@ -38,78 +38,224 @@ msgstr ""
msgid "%(property_name)s is not a %(display_expected_type)s"
msgstr ""
-#: keystone/test.py:106
+#: keystone/exception.py:48
+msgid "missing exception kwargs (programmer error)"
+msgstr ""
+
+#: keystone/exception.py:65
+#, python-format
+msgid ""
+"Expecting to find %(attribute)s in %(target)s. The server could not "
+"comply with the request since it is either malformed or otherwise "
+"incorrect. The client is assumed to be in error."
+msgstr ""
+
+#: keystone/exception.py:74
+#, python-format
+msgid ""
+"String length exceeded.The length of string '%(string)s' exceeded the "
+"limit of column %(type)s(CHAR(%(length)d))."
+msgstr ""
+
+#: keystone/exception.py:80
+#, python-format
+msgid ""
+"Request attribute %(attribute)s must be less than or equal to %(size)i. "
+"The server could not comply with the request because the attribute size "
+"is invalid (too large). The client is assumed to be in error."
+msgstr ""
+
+#: keystone/exception.py:101
+msgid "The request you have made requires authentication."
+msgstr ""
+
+#: keystone/exception.py:107
+msgid "Authentication plugin error."
+msgstr ""
+
+#: keystone/exception.py:115
+msgid "Attempted to authenticate with an unsupported method."
+msgstr ""
+
+#: keystone/exception.py:123
+msgid "Additional authentications steps required."
+msgstr ""
+
+#: keystone/exception.py:131
+msgid "You are not authorized to perform the requested action."
+msgstr ""
+
+#: keystone/exception.py:138
+#, python-format
+msgid "You are not authorized to perform the requested action, %(action)s."
+msgstr ""
+
+#: keystone/exception.py:143
+#, python-format
+msgid "Could not find, %(target)s."
+msgstr ""
+
+#: keystone/exception.py:149
+#, python-format
+msgid "Could not find endpoint, %(endpoint_id)s."
+msgstr ""
+
+#: keystone/exception.py:156
+msgid "An unhandled exception has occurred: Could not find metadata."
+msgstr ""
+
+#: keystone/exception.py:161
+#, python-format
+msgid "Could not find policy, %(policy_id)s."
+msgstr ""
+
+#: keystone/exception.py:165
+#, python-format
+msgid "Could not find role, %(role_id)s."
+msgstr ""
+
+#: keystone/exception.py:169
+#, python-format
+msgid "Could not find service, %(service_id)s."
+msgstr ""
+
+#: keystone/exception.py:173
+#, python-format
+msgid "Could not find domain, %(domain_id)s."
+msgstr ""
+
+#: keystone/exception.py:177
+#, python-format
+msgid "Could not find project, %(project_id)s."
+msgstr ""
+
+#: keystone/exception.py:181
+#, python-format
+msgid "Could not find token, %(token_id)s."
+msgstr ""
+
+#: keystone/exception.py:185
+#, python-format
+msgid "Could not find user, %(user_id)s."
+msgstr ""
+
+#: keystone/exception.py:189
+#, python-format
+msgid "Could not find group, %(group_id)s."
+msgstr ""
+
+#: keystone/exception.py:193
+#, python-format
+msgid "Could not find trust, %(trust_id)s."
+msgstr ""
+
+#: keystone/exception.py:197
+#, python-format
+msgid "Could not find credential, %(credential_id)s."
+msgstr ""
+
+#: keystone/exception.py:201
+#, python-format
+msgid "Could not find version, %(version)s."
+msgstr ""
+
+#: keystone/exception.py:205
+#, python-format
+msgid "Conflict occurred attempting to store %(type)s. %(details)s"
+msgstr ""
+
+#: keystone/exception.py:212
+msgid "Request is too large."
+msgstr ""
+
+#: keystone/exception.py:218
+#, python-format
+msgid ""
+"An unexpected error prevented the server from fulfilling your request. "
+"%(exception)s"
+msgstr ""
+
+#: keystone/exception.py:225
+#, python-format
+msgid "Malformed endpoint URL (%(endpoint)s), see ERROR log for details."
+msgstr ""
+
+#: keystone/exception.py:230
+msgid "The action you have requested has not been implemented."
+msgstr ""
+
+#: keystone/exception.py:237
+#, python-format
+msgid "The Keystone paste configuration file %(config_file)s could not be found."
+msgstr ""
+
+#: keystone/test.py:117
#, python-format
msgid "Failed to checkout %s"
msgstr ""
-#: keystone/assignment/backends/ldap.py:110
+#: keystone/assignment/core.py:529
#, python-format
msgid "Expected dict or list: %s"
msgstr ""
-#: keystone/assignment/backends/ldap.py:456
-#: keystone/identity/backends/ldap.py:433
+#: keystone/assignment/backends/kvs.py:138
+#: keystone/assignment/backends/sql.py:285
+#, python-format
+msgid "Cannot remove role that has not been granted, %s"
+msgstr ""
+
+#: keystone/assignment/backends/ldap.py:418
#, python-format
msgid "Role %s not found"
msgstr "როლი %s ვერ მოიძებნა"
-#: keystone/assignment/backends/sql.py:244
-#, python-format
-msgid "Cannot remove role that has not been granted, %s"
+#: keystone/assignment/backends/sql.py:114
+msgid "Inherited roles can only be assigned to domains"
msgstr ""
-#: keystone/auth/controllers.py:72
+#: keystone/auth/controllers.py:71
#, python-format
msgid "Project is disabled: %s"
msgstr ""
-#: keystone/auth/controllers.py:78 keystone/auth/plugins/password.py:38
+#: keystone/auth/controllers.py:77 keystone/auth/plugins/password.py:38
#, python-format
msgid "Domain is disabled: %s"
msgstr "დომენი გათიშულია: %s"
-#: keystone/auth/controllers.py:84 keystone/auth/plugins/password.py:44
+#: keystone/auth/controllers.py:83 keystone/auth/plugins/password.py:44
#, python-format
msgid "User is disabled: %s"
msgstr ""
-#: keystone/auth/controllers.py:259
+#: keystone/auth/controllers.py:262
msgid "Scoping to both domain and project is not allowed"
msgstr ""
-#: keystone/auth/controllers.py:262
+#: keystone/auth/controllers.py:265
msgid "Scoping to both domain and trust is not allowed"
msgstr ""
-#: keystone/auth/controllers.py:265
+#: keystone/auth/controllers.py:268
msgid "Scoping to both project and trust is not allowed"
msgstr ""
-#: keystone/auth/controllers.py:325
-#, python-format
-msgid "Unable to lookup user %s"
-msgstr ""
-
-#: keystone/auth/controllers.py:355
+#: keystone/auth/controllers.py:353
msgid "User not found"
msgstr "მომხმარებელი ვერ მოიძებნა"
-#: keystone/auth/token_factory.py:79
-msgid "User have no access to project"
-msgstr "მომხმარებელს არ აქვს წვდომა პროექტზე"
-
-#: keystone/auth/token_factory.py:94
-msgid "User have no access to domain"
+#: keystone/auth/plugins/external.py:36 keystone/auth/plugins/external.py:66
+msgid "No authenticated user"
msgstr ""
-#: keystone/auth/token_factory.py:311 keystone/token/controllers.py:119
-msgid "Unable to sign token."
+#: keystone/auth/plugins/external.py:49 keystone/auth/plugins/external.py:86
+#, python-format
+msgid "Unable to lookup user %s"
msgstr ""
-#: keystone/auth/token_factory.py:314 keystone/token/controllers.py:122
-#, python-format
-msgid "Invalid value for token_format: %s. Allowed values are PKI or UUID."
+#: keystone/auth/plugins/password.py:112
+msgid "Invalid username or password"
msgstr ""
#: keystone/catalog/core.py:38
@@ -170,32 +316,32 @@ msgstr ""
msgid "RBAC: Invalid token"
msgstr ""
-#: keystone/common/controller.py:35 keystone/common/controller.py:56
+#: keystone/common/controller.py:39 keystone/common/controller.py:60
msgid "RBAC: Invalid user"
msgstr ""
-#: keystone/common/controller.py:41
+#: keystone/common/controller.py:45
msgid "RBAC: Proceeding without project"
msgstr ""
-#: keystone/common/controller.py:61
+#: keystone/common/controller.py:65
msgid "RBAC: Proceeding without tenant"
msgstr ""
-#: keystone/common/controller.py:91 keystone/common/controller.py:142
+#: keystone/common/controller.py:95 keystone/common/controller.py:146
msgid "RBAC: Bypassing authorization"
msgstr ""
-#: keystone/common/controller.py:100 keystone/common/controller.py:140
+#: keystone/common/controller.py:104 keystone/common/controller.py:144
msgid "RBAC: Authorization granted"
msgstr ""
-#: keystone/common/controller.py:130
+#: keystone/common/controller.py:134
#, python-format
msgid "RBAC: Adding query filter params (%s)"
msgstr ""
-#: keystone/common/controller.py:318
+#: keystone/common/controller.py:322
msgid "Invalid token in normalize_domain_id"
msgstr ""
@@ -206,17 +352,48 @@ msgid ""
"listening on that port."
msgstr ""
-#: keystone/common/wsgi.py:162
+#: keystone/common/wsgi.py:95
+msgid "No bind information present in token"
+msgstr ""
+
+#: keystone/common/wsgi.py:99
+#, python-format
+msgid "Named bind mode %s not in bind information"
+msgstr ""
+
+#: keystone/common/wsgi.py:105
+msgid "Kerberos credentials required and not present"
+msgstr ""
+
+#: keystone/common/wsgi.py:109
+msgid "Kerberos credentials do not match those in bind"
+msgstr ""
+
+#: keystone/common/wsgi.py:112
+msgid "Kerberos bind authentication successful"
+msgstr ""
+
+#: keystone/common/wsgi.py:115
+#, python-format
+msgid "Ignoring unknown bind for permissive mode: {%(bind_type)s: %(identifier)s}"
+msgstr ""
+
+#: keystone/common/wsgi.py:119
+#, python-format
+msgid "Couldn't verify unknown bind: {%(bind_type)s: %(identifier)s}"
+msgstr ""
+
+#: keystone/common/wsgi.py:211
#, python-format
msgid "arg_dict: %s"
msgstr ""
-#: keystone/common/wsgi.py:188
+#: keystone/common/wsgi.py:243
#, python-format
msgid "Authorization failed. %(exception)s from %(remote_addr)s"
msgstr ""
-#: keystone/common/wsgi.py:431
+#: keystone/common/wsgi.py:487
msgid "The resource could not be found."
msgstr ""
@@ -457,11 +634,11 @@ msgstr ""
msgid "Search scope %s not implemented."
msgstr ""
-#: keystone/common/sql/core.py:126
+#: keystone/common/sql/core.py:119
msgid "Global engine callback raised."
msgstr ""
-#: keystone/common/sql/core.py:240
+#: keystone/common/sql/core.py:233
#, python-format
msgid "Got mysql server has gone away: %s"
msgstr ""
@@ -510,7 +687,7 @@ msgstr ""
msgid "Creating ec2 cred for user %(user_id)s and tenant %(tenant_id)s"
msgstr ""
-#: keystone/identity/controllers.py:878
+#: keystone/identity/controllers.py:952
#, python-format
msgid ""
"Group %(group)s not found for role-assignment - %(target)s with Role: "
@@ -521,18 +698,18 @@ msgstr ""
msgid "User not found in group"
msgstr ""
-#: keystone/identity/backends/ldap.py:192
+#: keystone/identity/backends/ldap.py:189
#, python-format
msgid ""
"Group member '%(user_dn)s' not found in '%(group_id)s'. The user should "
"be removed from the group. The user will be ignored."
msgstr ""
-#: keystone/identity/backends/ldap.py:621
+#: keystone/identity/backends/ldap.py:334
msgid "Changing Name not supported by LDAP"
msgstr ""
-#: keystone/identity/backends/ldap.py:634
+#: keystone/identity/backends/ldap.py:347
#, python-format
msgid "User %(user_id)s is already a member of group %(group_id)s"
msgstr ""
@@ -552,26 +729,56 @@ msgstr ""
msgid "Failed to understand rule %(rule)r"
msgstr ""
+#: keystone/openstack/common/crypto/utils.py:29
+msgid "An unknown error occurred in crypto utils."
+msgstr ""
+
+#: keystone/openstack/common/crypto/utils.py:36
+#, python-format
+msgid "Block size of %(given)d is too big, max = %(maximum)d"
+msgstr ""
+
+#: keystone/openstack/common/crypto/utils.py:45
+#, python-format
+msgid "Length of %(given)d is too long, max = %(maximum)d"
+msgstr ""
+
#: keystone/policy/backends/rules.py:93
#, python-format
msgid "enforce %(action)s: %(credentials)s"
msgstr ""
-#: keystone/token/controllers.py:396
+#: keystone/token/controllers.py:378
#, python-format
msgid "User %(u_id)s is unauthorized for tenant %(t_id)s"
msgstr ""
-#: keystone/token/controllers.py:413 keystone/token/controllers.py:416
+#: keystone/token/controllers.py:395 keystone/token/controllers.py:398
msgid "Token does not belong to specified tenant."
msgstr ""
-#: keystone/token/controllers.py:423
-msgid "Non-default domain is not supported"
+#: keystone/token/provider.py:76
+msgid ""
+"keystone.conf [signing] token_format (deprecated) conflicts with "
+"keystone.conf [token] provider"
msgstr ""
-#: keystone/token/controllers.py:431
-msgid "Domain scoped token is not supported"
+#: keystone/token/provider.py:84
+msgid ""
+"keystone.conf [signing] token_format is deprecated in favor of "
+"keystone.conf [token] provider"
+msgstr ""
+
+#: keystone/token/provider.py:94
+msgid ""
+"Unrecognized keystone.conf [signing] token_format: expected either 'UUID'"
+" or 'PKI'"
+msgstr ""
+
+#: keystone/token/backends/kvs.py:37
+msgid ""
+"kvs token backend is DEPRECATED. Use keystone.token.backends.sql or "
+"keystone.token.backend.memcache instead."
msgstr ""
#: keystone/token/backends/memcache.py:144
@@ -596,3 +803,54 @@ msgstr ""
msgid "Unable to add token to revocation list."
msgstr ""
+#: keystone/token/providers/pki.py:43
+msgid "Unable to sign token."
+msgstr ""
+
+#: keystone/token/providers/uuid.py:193
+msgid "Trustor is disabled."
+msgstr ""
+
+#: keystone/token/providers/uuid.py:238
+msgid "Trustee has no delegated roles."
+msgstr ""
+
+#: keystone/token/providers/uuid.py:247
+#, python-format
+msgid "User %(user_id)s has no access to project %(project_id)s"
+msgstr ""
+
+#: keystone/token/providers/uuid.py:252
+#, python-format
+msgid "User %(user_id)s has no access to domain %(domain_id)s"
+msgstr ""
+
+#: keystone/token/providers/uuid.py:303
+msgid "User is not a trustee."
+msgstr ""
+
+#: keystone/token/providers/uuid.py:457
+msgid "Non-default domain is not supported"
+msgstr ""
+
+#: keystone/token/providers/uuid.py:465
+msgid "Domain scoped token is not supported"
+msgstr ""
+
+#: keystone/token/providers/uuid.py:528
+msgid "Failed to validate token"
+msgstr ""
+
+#: keystone/token/providers/uuid.py:566 keystone/token/providers/uuid.py:576
+msgid "Failed to verify token"
+msgstr ""
+
+#~ msgid "User have no access to project"
+#~ msgstr "მომხმარებელს არ აქვს წვდომა პროექტზე"
+
+#~ msgid "User have no access to domain"
+#~ msgstr ""
+
+#~ msgid "Invalid value for token_format: %s. Allowed values are PKI or UUID."
+#~ msgstr ""
+
diff --git a/keystone/locale/keystone.pot b/keystone/locale/keystone.pot
index b5773f2e..718b35c8 100644
--- a/keystone/locale/keystone.pot
+++ b/keystone/locale/keystone.pot
@@ -7,16 +7,16 @@
msgid ""
msgstr ""
"Project-Id-Version: keystone "
-"jenkins.keystone.propose.translation.update.258\n"
+"jenkins.keystone.propose.translation.update.280\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
-"POT-Creation-Date: 2013-07-11 17:05+0000\n"
+"POT-Creation-Date: 2013-08-02 17:05+0000\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"Generated-By: Babel 0.9.6\n"
+"Generated-By: Babel 1.3\n"
#: keystone/clean.py:23
#, python-format
@@ -38,78 +38,224 @@ msgstr ""
msgid "%(property_name)s is not a %(display_expected_type)s"
msgstr ""
-#: keystone/test.py:106
+#: keystone/exception.py:48
+msgid "missing exception kwargs (programmer error)"
+msgstr ""
+
+#: keystone/exception.py:65
+#, python-format
+msgid ""
+"Expecting to find %(attribute)s in %(target)s. The server could not "
+"comply with the request since it is either malformed or otherwise "
+"incorrect. The client is assumed to be in error."
+msgstr ""
+
+#: keystone/exception.py:74
+#, python-format
+msgid ""
+"String length exceeded.The length of string '%(string)s' exceeded the "
+"limit of column %(type)s(CHAR(%(length)d))."
+msgstr ""
+
+#: keystone/exception.py:80
+#, python-format
+msgid ""
+"Request attribute %(attribute)s must be less than or equal to %(size)i. "
+"The server could not comply with the request because the attribute size "
+"is invalid (too large). The client is assumed to be in error."
+msgstr ""
+
+#: keystone/exception.py:101
+msgid "The request you have made requires authentication."
+msgstr ""
+
+#: keystone/exception.py:107
+msgid "Authentication plugin error."
+msgstr ""
+
+#: keystone/exception.py:115
+msgid "Attempted to authenticate with an unsupported method."
+msgstr ""
+
+#: keystone/exception.py:123
+msgid "Additional authentications steps required."
+msgstr ""
+
+#: keystone/exception.py:131
+msgid "You are not authorized to perform the requested action."
+msgstr ""
+
+#: keystone/exception.py:138
+#, python-format
+msgid "You are not authorized to perform the requested action, %(action)s."
+msgstr ""
+
+#: keystone/exception.py:143
+#, python-format
+msgid "Could not find, %(target)s."
+msgstr ""
+
+#: keystone/exception.py:149
+#, python-format
+msgid "Could not find endpoint, %(endpoint_id)s."
+msgstr ""
+
+#: keystone/exception.py:156
+msgid "An unhandled exception has occurred: Could not find metadata."
+msgstr ""
+
+#: keystone/exception.py:161
+#, python-format
+msgid "Could not find policy, %(policy_id)s."
+msgstr ""
+
+#: keystone/exception.py:165
+#, python-format
+msgid "Could not find role, %(role_id)s."
+msgstr ""
+
+#: keystone/exception.py:169
+#, python-format
+msgid "Could not find service, %(service_id)s."
+msgstr ""
+
+#: keystone/exception.py:173
+#, python-format
+msgid "Could not find domain, %(domain_id)s."
+msgstr ""
+
+#: keystone/exception.py:177
+#, python-format
+msgid "Could not find project, %(project_id)s."
+msgstr ""
+
+#: keystone/exception.py:181
+#, python-format
+msgid "Could not find token, %(token_id)s."
+msgstr ""
+
+#: keystone/exception.py:185
+#, python-format
+msgid "Could not find user, %(user_id)s."
+msgstr ""
+
+#: keystone/exception.py:189
+#, python-format
+msgid "Could not find group, %(group_id)s."
+msgstr ""
+
+#: keystone/exception.py:193
+#, python-format
+msgid "Could not find trust, %(trust_id)s."
+msgstr ""
+
+#: keystone/exception.py:197
+#, python-format
+msgid "Could not find credential, %(credential_id)s."
+msgstr ""
+
+#: keystone/exception.py:201
+#, python-format
+msgid "Could not find version, %(version)s."
+msgstr ""
+
+#: keystone/exception.py:205
+#, python-format
+msgid "Conflict occurred attempting to store %(type)s. %(details)s"
+msgstr ""
+
+#: keystone/exception.py:212
+msgid "Request is too large."
+msgstr ""
+
+#: keystone/exception.py:218
+#, python-format
+msgid ""
+"An unexpected error prevented the server from fulfilling your request. "
+"%(exception)s"
+msgstr ""
+
+#: keystone/exception.py:225
+#, python-format
+msgid "Malformed endpoint URL (%(endpoint)s), see ERROR log for details."
+msgstr ""
+
+#: keystone/exception.py:230
+msgid "The action you have requested has not been implemented."
+msgstr ""
+
+#: keystone/exception.py:237
+#, python-format
+msgid "The Keystone paste configuration file %(config_file)s could not be found."
+msgstr ""
+
+#: keystone/test.py:117
#, python-format
msgid "Failed to checkout %s"
msgstr ""
-#: keystone/assignment/backends/ldap.py:110
+#: keystone/assignment/core.py:529
#, python-format
msgid "Expected dict or list: %s"
msgstr ""
-#: keystone/assignment/backends/ldap.py:456
-#: keystone/identity/backends/ldap.py:433
+#: keystone/assignment/backends/kvs.py:138
+#: keystone/assignment/backends/sql.py:285
#, python-format
-msgid "Role %s not found"
+msgid "Cannot remove role that has not been granted, %s"
msgstr ""
-#: keystone/assignment/backends/sql.py:244
+#: keystone/assignment/backends/ldap.py:418
#, python-format
-msgid "Cannot remove role that has not been granted, %s"
+msgid "Role %s not found"
msgstr ""
-#: keystone/auth/controllers.py:72
+#: keystone/assignment/backends/sql.py:114
+msgid "Inherited roles can only be assigned to domains"
+msgstr ""
+
+#: keystone/auth/controllers.py:71
#, python-format
msgid "Project is disabled: %s"
msgstr ""
-#: keystone/auth/controllers.py:78 keystone/auth/plugins/password.py:38
+#: keystone/auth/controllers.py:77 keystone/auth/plugins/password.py:38
#, python-format
msgid "Domain is disabled: %s"
msgstr ""
-#: keystone/auth/controllers.py:84 keystone/auth/plugins/password.py:44
+#: keystone/auth/controllers.py:83 keystone/auth/plugins/password.py:44
#, python-format
msgid "User is disabled: %s"
msgstr ""
-#: keystone/auth/controllers.py:259
+#: keystone/auth/controllers.py:262
msgid "Scoping to both domain and project is not allowed"
msgstr ""
-#: keystone/auth/controllers.py:262
+#: keystone/auth/controllers.py:265
msgid "Scoping to both domain and trust is not allowed"
msgstr ""
-#: keystone/auth/controllers.py:265
+#: keystone/auth/controllers.py:268
msgid "Scoping to both project and trust is not allowed"
msgstr ""
-#: keystone/auth/controllers.py:325
-#, python-format
-msgid "Unable to lookup user %s"
-msgstr ""
-
-#: keystone/auth/controllers.py:355
+#: keystone/auth/controllers.py:353
msgid "User not found"
msgstr ""
-#: keystone/auth/token_factory.py:79
-msgid "User have no access to project"
+#: keystone/auth/plugins/external.py:36 keystone/auth/plugins/external.py:66
+msgid "No authenticated user"
msgstr ""
-#: keystone/auth/token_factory.py:94
-msgid "User have no access to domain"
+#: keystone/auth/plugins/external.py:49 keystone/auth/plugins/external.py:86
+#, python-format
+msgid "Unable to lookup user %s"
msgstr ""
-#: keystone/auth/token_factory.py:311 keystone/token/controllers.py:119
-msgid "Unable to sign token."
-msgstr ""
-
-#: keystone/auth/token_factory.py:314 keystone/token/controllers.py:122
-#, python-format
-msgid "Invalid value for token_format: %s. Allowed values are PKI or UUID."
+#: keystone/auth/plugins/password.py:112
+msgid "Invalid username or password"
msgstr ""
#: keystone/catalog/core.py:38
@@ -170,32 +316,32 @@ msgstr ""
msgid "RBAC: Invalid token"
msgstr ""
-#: keystone/common/controller.py:35 keystone/common/controller.py:56
+#: keystone/common/controller.py:39 keystone/common/controller.py:60
msgid "RBAC: Invalid user"
msgstr ""
-#: keystone/common/controller.py:41
+#: keystone/common/controller.py:45
msgid "RBAC: Proceeding without project"
msgstr ""
-#: keystone/common/controller.py:61
+#: keystone/common/controller.py:65
msgid "RBAC: Proceeding without tenant"
msgstr ""
-#: keystone/common/controller.py:91 keystone/common/controller.py:142
+#: keystone/common/controller.py:95 keystone/common/controller.py:146
msgid "RBAC: Bypassing authorization"
msgstr ""
-#: keystone/common/controller.py:100 keystone/common/controller.py:140
+#: keystone/common/controller.py:104 keystone/common/controller.py:144
msgid "RBAC: Authorization granted"
msgstr ""
-#: keystone/common/controller.py:130
+#: keystone/common/controller.py:134
#, python-format
msgid "RBAC: Adding query filter params (%s)"
msgstr ""
-#: keystone/common/controller.py:318
+#: keystone/common/controller.py:322
msgid "Invalid token in normalize_domain_id"
msgstr ""
@@ -206,17 +352,48 @@ msgid ""
"listening on that port."
msgstr ""
-#: keystone/common/wsgi.py:162
+#: keystone/common/wsgi.py:95
+msgid "No bind information present in token"
+msgstr ""
+
+#: keystone/common/wsgi.py:99
+#, python-format
+msgid "Named bind mode %s not in bind information"
+msgstr ""
+
+#: keystone/common/wsgi.py:105
+msgid "Kerberos credentials required and not present"
+msgstr ""
+
+#: keystone/common/wsgi.py:109
+msgid "Kerberos credentials do not match those in bind"
+msgstr ""
+
+#: keystone/common/wsgi.py:112
+msgid "Kerberos bind authentication successful"
+msgstr ""
+
+#: keystone/common/wsgi.py:115
+#, python-format
+msgid "Ignoring unknown bind for permissive mode: {%(bind_type)s: %(identifier)s}"
+msgstr ""
+
+#: keystone/common/wsgi.py:119
+#, python-format
+msgid "Couldn't verify unknown bind: {%(bind_type)s: %(identifier)s}"
+msgstr ""
+
+#: keystone/common/wsgi.py:211
#, python-format
msgid "arg_dict: %s"
msgstr ""
-#: keystone/common/wsgi.py:188
+#: keystone/common/wsgi.py:243
#, python-format
msgid "Authorization failed. %(exception)s from %(remote_addr)s"
msgstr ""
-#: keystone/common/wsgi.py:431
+#: keystone/common/wsgi.py:487
msgid "The resource could not be found."
msgstr ""
@@ -457,11 +634,11 @@ msgstr ""
msgid "Search scope %s not implemented."
msgstr ""
-#: keystone/common/sql/core.py:126
+#: keystone/common/sql/core.py:119
msgid "Global engine callback raised."
msgstr ""
-#: keystone/common/sql/core.py:240
+#: keystone/common/sql/core.py:233
#, python-format
msgid "Got mysql server has gone away: %s"
msgstr ""
@@ -510,7 +687,7 @@ msgstr ""
msgid "Creating ec2 cred for user %(user_id)s and tenant %(tenant_id)s"
msgstr ""
-#: keystone/identity/controllers.py:878
+#: keystone/identity/controllers.py:952
#, python-format
msgid ""
"Group %(group)s not found for role-assignment - %(target)s with Role: "
@@ -521,18 +698,18 @@ msgstr ""
msgid "User not found in group"
msgstr ""
-#: keystone/identity/backends/ldap.py:192
+#: keystone/identity/backends/ldap.py:189
#, python-format
msgid ""
"Group member '%(user_dn)s' not found in '%(group_id)s'. The user should "
"be removed from the group. The user will be ignored."
msgstr ""
-#: keystone/identity/backends/ldap.py:621
+#: keystone/identity/backends/ldap.py:334
msgid "Changing Name not supported by LDAP"
msgstr ""
-#: keystone/identity/backends/ldap.py:634
+#: keystone/identity/backends/ldap.py:347
#, python-format
msgid "User %(user_id)s is already a member of group %(group_id)s"
msgstr ""
@@ -552,26 +729,56 @@ msgstr ""
msgid "Failed to understand rule %(rule)r"
msgstr ""
+#: keystone/openstack/common/crypto/utils.py:29
+msgid "An unknown error occurred in crypto utils."
+msgstr ""
+
+#: keystone/openstack/common/crypto/utils.py:36
+#, python-format
+msgid "Block size of %(given)d is too big, max = %(maximum)d"
+msgstr ""
+
+#: keystone/openstack/common/crypto/utils.py:45
+#, python-format
+msgid "Length of %(given)d is too long, max = %(maximum)d"
+msgstr ""
+
#: keystone/policy/backends/rules.py:93
#, python-format
msgid "enforce %(action)s: %(credentials)s"
msgstr ""
-#: keystone/token/controllers.py:396
+#: keystone/token/controllers.py:378
#, python-format
msgid "User %(u_id)s is unauthorized for tenant %(t_id)s"
msgstr ""
-#: keystone/token/controllers.py:413 keystone/token/controllers.py:416
+#: keystone/token/controllers.py:395 keystone/token/controllers.py:398
msgid "Token does not belong to specified tenant."
msgstr ""
-#: keystone/token/controllers.py:423
-msgid "Non-default domain is not supported"
+#: keystone/token/provider.py:76
+msgid ""
+"keystone.conf [signing] token_format (deprecated) conflicts with "
+"keystone.conf [token] provider"
msgstr ""
-#: keystone/token/controllers.py:431
-msgid "Domain scoped token is not supported"
+#: keystone/token/provider.py:84
+msgid ""
+"keystone.conf [signing] token_format is deprecated in favor of "
+"keystone.conf [token] provider"
+msgstr ""
+
+#: keystone/token/provider.py:94
+msgid ""
+"Unrecognized keystone.conf [signing] token_format: expected either 'UUID'"
+" or 'PKI'"
+msgstr ""
+
+#: keystone/token/backends/kvs.py:37
+msgid ""
+"kvs token backend is DEPRECATED. Use keystone.token.backends.sql or "
+"keystone.token.backend.memcache instead."
msgstr ""
#: keystone/token/backends/memcache.py:144
@@ -596,3 +803,45 @@ msgstr ""
msgid "Unable to add token to revocation list."
msgstr ""
+#: keystone/token/providers/pki.py:43
+msgid "Unable to sign token."
+msgstr ""
+
+#: keystone/token/providers/uuid.py:193
+msgid "Trustor is disabled."
+msgstr ""
+
+#: keystone/token/providers/uuid.py:238
+msgid "Trustee has no delegated roles."
+msgstr ""
+
+#: keystone/token/providers/uuid.py:247
+#, python-format
+msgid "User %(user_id)s has no access to project %(project_id)s"
+msgstr ""
+
+#: keystone/token/providers/uuid.py:252
+#, python-format
+msgid "User %(user_id)s has no access to domain %(domain_id)s"
+msgstr ""
+
+#: keystone/token/providers/uuid.py:303
+msgid "User is not a trustee."
+msgstr ""
+
+#: keystone/token/providers/uuid.py:457
+msgid "Non-default domain is not supported"
+msgstr ""
+
+#: keystone/token/providers/uuid.py:465
+msgid "Domain scoped token is not supported"
+msgstr ""
+
+#: keystone/token/providers/uuid.py:528
+msgid "Failed to validate token"
+msgstr ""
+
+#: keystone/token/providers/uuid.py:566 keystone/token/providers/uuid.py:576
+msgid "Failed to verify token"
+msgstr ""
+
diff --git a/keystone/locale/ko/LC_MESSAGES/keystone.po b/keystone/locale/ko/LC_MESSAGES/keystone.po
new file mode 100644
index 00000000..cb047f5f
--- /dev/null
+++ b/keystone/locale/ko/LC_MESSAGES/keystone.po
@@ -0,0 +1,847 @@
+# Korean translations for keystone.
+# Copyright (C) 2013 ORGANIZATION
+# This file is distributed under the same license as the keystone project.
+#
+# Translators:
+msgid ""
+msgstr ""
+"Project-Id-Version: Keystone\n"
+"Report-Msgid-Bugs-To: https://bugs.launchpad.net/keystone\n"
+"POT-Creation-Date: 2013-08-02 17:05+0000\n"
+"PO-Revision-Date: 2013-07-29 22:01+0000\n"
+"Last-Translator: openstackjenkins <jenkins@openstack.org>\n"
+"Language-Team: Korean "
+"(http://www.transifex.com/projects/p/openstack/language/ko/)\n"
+"Plural-Forms: nplurals=1; plural=0\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=utf-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Generated-By: Babel 1.3\n"
+
+#: keystone/clean.py:23
+#, python-format
+msgid "%s cannot be empty."
+msgstr ""
+
+#: keystone/clean.py:25
+#, python-format
+msgid "%(property_name)s cannot be less than %(min_length)s characters."
+msgstr ""
+
+#: keystone/clean.py:29
+#, python-format
+msgid "%(property_name)s should not be greater than %(max_length)s characters."
+msgstr ""
+
+#: keystone/clean.py:36
+#, python-format
+msgid "%(property_name)s is not a %(display_expected_type)s"
+msgstr ""
+
+#: keystone/exception.py:48
+msgid "missing exception kwargs (programmer error)"
+msgstr ""
+
+#: keystone/exception.py:65
+#, python-format
+msgid ""
+"Expecting to find %(attribute)s in %(target)s. The server could not "
+"comply with the request since it is either malformed or otherwise "
+"incorrect. The client is assumed to be in error."
+msgstr ""
+
+#: keystone/exception.py:74
+#, python-format
+msgid ""
+"String length exceeded.The length of string '%(string)s' exceeded the "
+"limit of column %(type)s(CHAR(%(length)d))."
+msgstr ""
+
+#: keystone/exception.py:80
+#, python-format
+msgid ""
+"Request attribute %(attribute)s must be less than or equal to %(size)i. "
+"The server could not comply with the request because the attribute size "
+"is invalid (too large). The client is assumed to be in error."
+msgstr ""
+
+#: keystone/exception.py:101
+msgid "The request you have made requires authentication."
+msgstr ""
+
+#: keystone/exception.py:107
+msgid "Authentication plugin error."
+msgstr ""
+
+#: keystone/exception.py:115
+msgid "Attempted to authenticate with an unsupported method."
+msgstr ""
+
+#: keystone/exception.py:123
+msgid "Additional authentications steps required."
+msgstr ""
+
+#: keystone/exception.py:131
+msgid "You are not authorized to perform the requested action."
+msgstr ""
+
+#: keystone/exception.py:138
+#, python-format
+msgid "You are not authorized to perform the requested action, %(action)s."
+msgstr ""
+
+#: keystone/exception.py:143
+#, python-format
+msgid "Could not find, %(target)s."
+msgstr ""
+
+#: keystone/exception.py:149
+#, python-format
+msgid "Could not find endpoint, %(endpoint_id)s."
+msgstr ""
+
+#: keystone/exception.py:156
+msgid "An unhandled exception has occurred: Could not find metadata."
+msgstr ""
+
+#: keystone/exception.py:161
+#, python-format
+msgid "Could not find policy, %(policy_id)s."
+msgstr ""
+
+#: keystone/exception.py:165
+#, python-format
+msgid "Could not find role, %(role_id)s."
+msgstr ""
+
+#: keystone/exception.py:169
+#, python-format
+msgid "Could not find service, %(service_id)s."
+msgstr ""
+
+#: keystone/exception.py:173
+#, python-format
+msgid "Could not find domain, %(domain_id)s."
+msgstr ""
+
+#: keystone/exception.py:177
+#, python-format
+msgid "Could not find project, %(project_id)s."
+msgstr ""
+
+#: keystone/exception.py:181
+#, python-format
+msgid "Could not find token, %(token_id)s."
+msgstr ""
+
+#: keystone/exception.py:185
+#, python-format
+msgid "Could not find user, %(user_id)s."
+msgstr ""
+
+#: keystone/exception.py:189
+#, python-format
+msgid "Could not find group, %(group_id)s."
+msgstr ""
+
+#: keystone/exception.py:193
+#, python-format
+msgid "Could not find trust, %(trust_id)s."
+msgstr ""
+
+#: keystone/exception.py:197
+#, python-format
+msgid "Could not find credential, %(credential_id)s."
+msgstr ""
+
+#: keystone/exception.py:201
+#, python-format
+msgid "Could not find version, %(version)s."
+msgstr ""
+
+#: keystone/exception.py:205
+#, python-format
+msgid "Conflict occurred attempting to store %(type)s. %(details)s"
+msgstr ""
+
+#: keystone/exception.py:212
+msgid "Request is too large."
+msgstr ""
+
+#: keystone/exception.py:218
+#, python-format
+msgid ""
+"An unexpected error prevented the server from fulfilling your request. "
+"%(exception)s"
+msgstr ""
+
+#: keystone/exception.py:225
+#, python-format
+msgid "Malformed endpoint URL (%(endpoint)s), see ERROR log for details."
+msgstr ""
+
+#: keystone/exception.py:230
+msgid "The action you have requested has not been implemented."
+msgstr ""
+
+#: keystone/exception.py:237
+#, python-format
+msgid "The Keystone paste configuration file %(config_file)s could not be found."
+msgstr ""
+
+#: keystone/test.py:117
+#, python-format
+msgid "Failed to checkout %s"
+msgstr ""
+
+#: keystone/assignment/core.py:529
+#, python-format
+msgid "Expected dict or list: %s"
+msgstr ""
+
+#: keystone/assignment/backends/kvs.py:138
+#: keystone/assignment/backends/sql.py:285
+#, python-format
+msgid "Cannot remove role that has not been granted, %s"
+msgstr ""
+
+#: keystone/assignment/backends/ldap.py:418
+#, python-format
+msgid "Role %s not found"
+msgstr ""
+
+#: keystone/assignment/backends/sql.py:114
+msgid "Inherited roles can only be assigned to domains"
+msgstr ""
+
+#: keystone/auth/controllers.py:71
+#, python-format
+msgid "Project is disabled: %s"
+msgstr ""
+
+#: keystone/auth/controllers.py:77 keystone/auth/plugins/password.py:38
+#, python-format
+msgid "Domain is disabled: %s"
+msgstr ""
+
+#: keystone/auth/controllers.py:83 keystone/auth/plugins/password.py:44
+#, python-format
+msgid "User is disabled: %s"
+msgstr ""
+
+#: keystone/auth/controllers.py:262
+msgid "Scoping to both domain and project is not allowed"
+msgstr ""
+
+#: keystone/auth/controllers.py:265
+msgid "Scoping to both domain and trust is not allowed"
+msgstr ""
+
+#: keystone/auth/controllers.py:268
+msgid "Scoping to both project and trust is not allowed"
+msgstr ""
+
+#: keystone/auth/controllers.py:353
+msgid "User not found"
+msgstr ""
+
+#: keystone/auth/plugins/external.py:36 keystone/auth/plugins/external.py:66
+msgid "No authenticated user"
+msgstr ""
+
+#: keystone/auth/plugins/external.py:49 keystone/auth/plugins/external.py:86
+#, python-format
+msgid "Unable to lookup user %s"
+msgstr ""
+
+#: keystone/auth/plugins/password.py:112
+msgid "Invalid username or password"
+msgstr ""
+
+#: keystone/catalog/core.py:38
+#, python-format
+msgid "Malformed endpoint %(url)s - unknown key %(keyerror)s"
+msgstr ""
+
+#: keystone/catalog/core.py:43
+#, python-format
+msgid ""
+"Malformed endpoint %(url)s - unknown key %(keyerror)s(are you missing "
+"brackets ?)"
+msgstr ""
+
+#: keystone/catalog/core.py:49
+#, python-format
+msgid ""
+"Malformed endpoint %s - incomplete format (are you "
+"missing a type notifier ?)"
+msgstr ""
+
+#: keystone/catalog/backends/templated.py:109
+#, python-format
+msgid "Unable to open template file %s"
+msgstr ""
+
+#: keystone/common/cms.py:26
+#, python-format
+msgid "Verify error: %s"
+msgstr ""
+
+#: keystone/common/cms.py:118
+msgid ""
+"Signing error: Unable to load certificate - ensure you've configured PKI "
+"with 'keystone-manage pki_setup'"
+msgstr ""
+
+#: keystone/common/cms.py:122
+#, python-format
+msgid "Signing error: %s"
+msgstr ""
+
+#: keystone/common/config.py:89
+#, python-format
+msgid "Unable to locate specified logging config file: %s"
+msgstr ""
+
+#: keystone/common/config.py:107
+msgid "Invalid syslog facility"
+msgstr ""
+
+#: keystone/common/controller.py:18
+#, python-format
+msgid "RBAC: Authorizing %(action)s(%(kwargs)s)"
+msgstr ""
+
+#: keystone/common/controller.py:25
+msgid "RBAC: Invalid token"
+msgstr ""
+
+#: keystone/common/controller.py:39 keystone/common/controller.py:60
+msgid "RBAC: Invalid user"
+msgstr ""
+
+#: keystone/common/controller.py:45
+msgid "RBAC: Proceeding without project"
+msgstr ""
+
+#: keystone/common/controller.py:65
+msgid "RBAC: Proceeding without tenant"
+msgstr ""
+
+#: keystone/common/controller.py:95 keystone/common/controller.py:146
+msgid "RBAC: Bypassing authorization"
+msgstr ""
+
+#: keystone/common/controller.py:104 keystone/common/controller.py:144
+msgid "RBAC: Authorization granted"
+msgstr ""
+
+#: keystone/common/controller.py:134
+#, python-format
+msgid "RBAC: Adding query filter params (%s)"
+msgstr ""
+
+#: keystone/common/controller.py:322
+msgid "Invalid token in normalize_domain_id"
+msgstr ""
+
+#: keystone/common/utils.py:233
+msgid ""
+"Error setting up the debug environment. Verify that the option --debug-"
+"url has the format <host>:<port> and that a debugger processes is "
+"listening on that port."
+msgstr ""
+
+#: keystone/common/wsgi.py:95
+msgid "No bind information present in token"
+msgstr ""
+
+#: keystone/common/wsgi.py:99
+#, python-format
+msgid "Named bind mode %s not in bind information"
+msgstr ""
+
+#: keystone/common/wsgi.py:105
+msgid "Kerberos credentials required and not present"
+msgstr ""
+
+#: keystone/common/wsgi.py:109
+msgid "Kerberos credentials do not match those in bind"
+msgstr ""
+
+#: keystone/common/wsgi.py:112
+msgid "Kerberos bind authentication successful"
+msgstr ""
+
+#: keystone/common/wsgi.py:115
+#, python-format
+msgid "Ignoring unknown bind for permissive mode: {%(bind_type)s: %(identifier)s}"
+msgstr ""
+
+#: keystone/common/wsgi.py:119
+#, python-format
+msgid "Couldn't verify unknown bind: {%(bind_type)s: %(identifier)s}"
+msgstr ""
+
+#: keystone/common/wsgi.py:211
+#, python-format
+msgid "arg_dict: %s"
+msgstr ""
+
+#: keystone/common/wsgi.py:243
+#, python-format
+msgid "Authorization failed. %(exception)s from %(remote_addr)s"
+msgstr ""
+
+#: keystone/common/wsgi.py:487
+msgid "The resource could not be found."
+msgstr ""
+
+#: keystone/common/environment/__init__.py:37
+#, python-format
+msgid "Environment configured as: %s"
+msgstr ""
+
+#: keystone/common/environment/eventlet_server.py:51
+#, python-format
+msgid "Starting %(arg0)s on %(host)s:%(port)s"
+msgstr ""
+
+#: keystone/common/environment/eventlet_server.py:113
+msgid "Server error"
+msgstr ""
+
+#: keystone/common/ldap/core.py:79
+#, python-format
+msgid "Invalid LDAP deref option: %s. Choose one of: "
+msgstr ""
+
+#: keystone/common/ldap/core.py:87
+#, python-format
+msgid "Invalid LDAP TLS certs option: %(option). Choose one of: %(options)s"
+msgstr ""
+
+#: keystone/common/ldap/core.py:99
+#, python-format
+msgid "Invalid LDAP scope: %(scope)s. Choose one of: %(options)s"
+msgstr ""
+
+#: keystone/common/ldap/core.py:189
+#, python-format
+msgid ""
+"Invalid additional attribute mapping: \"%s\". Format must be "
+"<ldap_attribute>:<keystone_attribute>"
+msgstr ""
+
+#: keystone/common/ldap/core.py:195
+#, python-format
+msgid ""
+"Invalid additional attribute mapping: \"%(item)s\". Value "
+"\"%(attr_map)s\" must use one of %(keys)s."
+msgstr ""
+
+#: keystone/common/ldap/core.py:279 keystone/identity/backends/kvs.py:177
+#: keystone/identity/backends/kvs.py:205
+#, python-format
+msgid "Duplicate name, %s."
+msgstr ""
+
+#: keystone/common/ldap/core.py:289 keystone/identity/backends/kvs.py:170
+#, python-format
+msgid "Duplicate ID, %s."
+msgstr ""
+
+#: keystone/common/ldap/core.py:294
+#, python-format
+msgid "LDAP %s create"
+msgstr ""
+
+#: keystone/common/ldap/core.py:372
+#, python-format
+msgid "LDAP %s update"
+msgstr ""
+
+#: keystone/common/ldap/core.py:405
+#, python-format
+msgid "LDAP %s delete"
+msgstr ""
+
+#: keystone/common/ldap/core.py:430
+#, python-format
+msgid "LDAP init: url=%s"
+msgstr ""
+
+#: keystone/common/ldap/core.py:431
+#, python-format
+msgid ""
+"LDAP init: use_tls=%(use_tls)s\n"
+"tls_cacertfile=%(tls_cacertfile)s\n"
+"tls_cacertdir=%(tls_cacertdir)s\n"
+"tls_req_cert=%(tls_req_cert)s\n"
+"tls_avail=%(tls_avail)s\n"
+msgstr ""
+
+#: keystone/common/ldap/core.py:450
+msgid "Invalid TLS / LDAPS combination"
+msgstr ""
+
+#: keystone/common/ldap/core.py:454
+#, python-format
+msgid "Invalid LDAP TLS_AVAIL option: %s. TLS not available"
+msgstr ""
+
+#: keystone/common/ldap/core.py:464
+#, python-format
+msgid "tls_cacertfile %s not found or is not a file"
+msgstr ""
+
+#: keystone/common/ldap/core.py:476
+#, python-format
+msgid "tls_cacertdir %s not found or is not a directory"
+msgstr ""
+
+#: keystone/common/ldap/core.py:483
+#, python-format
+msgid "LDAP TLS: invalid TLS_REQUIRE_CERT Option=%s"
+msgstr ""
+
+#: keystone/common/ldap/core.py:497
+#, python-format
+msgid "LDAP bind: dn=%s"
+msgstr ""
+
+#: keystone/common/ldap/core.py:508
+#, python-format
+msgid "LDAP add: dn=%(dn)s, attrs=%(attrs)s"
+msgstr ""
+
+#: keystone/common/ldap/core.py:514
+#, python-format
+msgid ""
+"LDAP search: dn=%(dn)s, scope=%(scope)s, query=%(query)s, "
+"attrs=%(attrlist)s"
+msgstr ""
+
+#: keystone/common/ldap/core.py:567
+msgid ""
+"LDAP Server does not support paging. Disable paging in keystone.conf to "
+"avoid this message."
+msgstr ""
+
+#: keystone/common/ldap/core.py:584
+#, python-format
+msgid "LDAP modify: dn=%(dn)s, modlist=%(modlist)s"
+msgstr ""
+
+#: keystone/common/ldap/core.py:590
+#, python-format
+msgid "LDAP delete: dn=%s"
+msgstr ""
+
+#: keystone/common/ldap/core.py:595
+#, python-format
+msgid "LDAP delete_ext: dn=%(dn)s, serverctrls=%(serverctrls)s"
+msgstr ""
+
+#: keystone/common/ldap/fakeldap.py:146
+#, python-format
+msgid "FakeLdap initialize url=%s"
+msgstr ""
+
+#: keystone/common/ldap/fakeldap.py:156
+#, python-format
+msgid "FakeLdap bind dn=%s"
+msgstr ""
+
+#: keystone/common/ldap/fakeldap.py:163
+#, python-format
+msgid "FakeLdap bind fail: dn=%s not found"
+msgstr ""
+
+#: keystone/common/ldap/fakeldap.py:170
+#, python-format
+msgid "FakeLdap bind fail: password for dn=%s not found"
+msgstr ""
+
+#: keystone/common/ldap/fakeldap.py:175
+#, python-format
+msgid "FakeLdap bind fail: password for dn=%s does not match"
+msgstr ""
+
+#: keystone/common/ldap/fakeldap.py:190
+#, python-format
+msgid "FakeLdap add item: dn=%(dn)s, attrs=%(attrs)s"
+msgstr ""
+
+#: keystone/common/ldap/fakeldap.py:193
+#, python-format
+msgid "FakeLdap add item failed: dn=%s is already in store."
+msgstr ""
+
+#: keystone/common/ldap/fakeldap.py:207 keystone/common/ldap/fakeldap.py:221
+#, python-format
+msgid "FakeLdap delete item: dn=%s"
+msgstr ""
+
+#: keystone/common/ldap/fakeldap.py:211 keystone/common/ldap/fakeldap.py:225
+#, python-format
+msgid "FakeLdap delete item failed: dn=%s not found."
+msgstr ""
+
+#: keystone/common/ldap/fakeldap.py:240
+#, python-format
+msgid "FakeLdap modify item: dn=%(dn)s attrs=%(attrs)s"
+msgstr ""
+
+#: keystone/common/ldap/fakeldap.py:245
+#, python-format
+msgid "FakeLdap modify item failed: dn=%s not found."
+msgstr ""
+
+#: keystone/common/ldap/fakeldap.py:262
+#, python-format
+msgid "FakeLdap modify item failed: item has no attribute \"%s\" to delete"
+msgstr ""
+
+#: keystone/common/ldap/fakeldap.py:273
+#, python-format
+msgid ""
+"FakeLdap modify item failed: item has no attribute \"%(k)s\" with value "
+"\"%(v)s\" to delete"
+msgstr ""
+
+#: keystone/common/ldap/fakeldap.py:279
+#, python-format
+msgid "FakeLdap modify item failed: unknown command %s"
+msgstr ""
+
+#: keystone/common/ldap/fakeldap.py:281
+#, python-format
+msgid "modify_s action %s not implemented"
+msgstr ""
+
+#: keystone/common/ldap/fakeldap.py:300
+#, python-format
+msgid "FakeLdap search at dn=%(dn)s scope=%(scope)s query=%(query)s"
+msgstr ""
+
+#: keystone/common/ldap/fakeldap.py:306
+msgid "FakeLdap search fail: dn not found for SCOPE_BASE"
+msgstr ""
+
+#: keystone/common/ldap/fakeldap.py:320
+#, python-format
+msgid "Search scope %s not implemented."
+msgstr ""
+
+#: keystone/common/sql/core.py:119
+msgid "Global engine callback raised."
+msgstr ""
+
+#: keystone/common/sql/core.py:233
+#, python-format
+msgid "Got mysql server has gone away: %s"
+msgstr ""
+
+#: keystone/common/sql/legacy.py:188
+#, python-format
+msgid "Cannot migrate EC2 credential: %s"
+msgstr ""
+
+#: keystone/common/sql/migration.py:47
+msgid "version should be an integer"
+msgstr ""
+
+#: keystone/common/sql/nova.py:65
+#, python-format
+msgid "Create tenant %s"
+msgstr ""
+
+#: keystone/common/sql/nova.py:82
+#, python-format
+msgid "Create user %s"
+msgstr ""
+
+#: keystone/common/sql/nova.py:91
+#, python-format
+msgid "Add user %(user_id)s to tenant %(tenant_id)s"
+msgstr ""
+
+#: keystone/common/sql/nova.py:100
+#, python-format
+msgid "Ignoring existing role %s"
+msgstr ""
+
+#: keystone/common/sql/nova.py:107
+#, python-format
+msgid "Create role %s"
+msgstr ""
+
+#: keystone/common/sql/nova.py:117
+#, python-format
+msgid "Assign role %(role_id)s to user %(user_id)s on tenant %(tenant_id)s"
+msgstr ""
+
+#: keystone/common/sql/nova.py:136
+#, python-format
+msgid "Creating ec2 cred for user %(user_id)s and tenant %(tenant_id)s"
+msgstr ""
+
+#: keystone/identity/controllers.py:952
+#, python-format
+msgid ""
+"Group %(group)s not found for role-assignment - %(target)s with Role: "
+"%(role)s"
+msgstr ""
+
+#: keystone/identity/backends/kvs.py:126 keystone/identity/backends/kvs.py:135
+msgid "User not found in group"
+msgstr ""
+
+#: keystone/identity/backends/ldap.py:189
+#, python-format
+msgid ""
+"Group member '%(user_dn)s' not found in '%(group_id)s'. The user should "
+"be removed from the group. The user will be ignored."
+msgstr ""
+
+#: keystone/identity/backends/ldap.py:334
+msgid "Changing Name not supported by LDAP"
+msgstr ""
+
+#: keystone/identity/backends/ldap.py:347
+#, python-format
+msgid "User %(user_id)s is already a member of group %(group_id)s"
+msgstr ""
+
+#: keystone/openstack/common/policy.py:394
+#, python-format
+msgid "Failed to understand rule %(rule)s"
+msgstr ""
+
+#: keystone/openstack/common/policy.py:404
+#, python-format
+msgid "No handler for matches of kind %s"
+msgstr ""
+
+#: keystone/openstack/common/policy.py:679
+#, python-format
+msgid "Failed to understand rule %(rule)r"
+msgstr ""
+
+#: keystone/openstack/common/crypto/utils.py:29
+msgid "An unknown error occurred in crypto utils."
+msgstr ""
+
+#: keystone/openstack/common/crypto/utils.py:36
+#, python-format
+msgid "Block size of %(given)d is too big, max = %(maximum)d"
+msgstr ""
+
+#: keystone/openstack/common/crypto/utils.py:45
+#, python-format
+msgid "Length of %(given)d is too long, max = %(maximum)d"
+msgstr ""
+
+#: keystone/policy/backends/rules.py:93
+#, python-format
+msgid "enforce %(action)s: %(credentials)s"
+msgstr ""
+
+#: keystone/token/controllers.py:378
+#, python-format
+msgid "User %(u_id)s is unauthorized for tenant %(t_id)s"
+msgstr ""
+
+#: keystone/token/controllers.py:395 keystone/token/controllers.py:398
+msgid "Token does not belong to specified tenant."
+msgstr ""
+
+#: keystone/token/provider.py:76
+msgid ""
+"keystone.conf [signing] token_format (deprecated) conflicts with "
+"keystone.conf [token] provider"
+msgstr ""
+
+#: keystone/token/provider.py:84
+msgid ""
+"keystone.conf [signing] token_format is deprecated in favor of "
+"keystone.conf [token] provider"
+msgstr ""
+
+#: keystone/token/provider.py:94
+msgid ""
+"Unrecognized keystone.conf [signing] token_format: expected either 'UUID'"
+" or 'PKI'"
+msgstr ""
+
+#: keystone/token/backends/kvs.py:37
+msgid ""
+"kvs token backend is DEPRECATED. Use keystone.token.backends.sql or "
+"keystone.token.backend.memcache instead."
+msgstr ""
+
+#: keystone/token/backends/memcache.py:144
+#, python-format
+msgid ""
+"Successful set of token-index-list for user-key \"%(user_key)s\", "
+"#%(count)d records"
+msgstr ""
+
+#: keystone/token/backends/memcache.py:154
+#, python-format
+msgid ""
+"Failed to set token-index-list for user-key \"%(user_key)s\". Attempt "
+"%(cas_retry)d of %(cas_retry_max)d"
+msgstr ""
+
+#: keystone/token/backends/memcache.py:163
+msgid "Unable to add token user list"
+msgstr ""
+
+#: keystone/token/backends/memcache.py:172
+msgid "Unable to add token to revocation list."
+msgstr ""
+
+#: keystone/token/providers/pki.py:43
+msgid "Unable to sign token."
+msgstr ""
+
+#: keystone/token/providers/uuid.py:193
+msgid "Trustor is disabled."
+msgstr ""
+
+#: keystone/token/providers/uuid.py:238
+msgid "Trustee has no delegated roles."
+msgstr ""
+
+#: keystone/token/providers/uuid.py:247
+#, python-format
+msgid "User %(user_id)s has no access to project %(project_id)s"
+msgstr ""
+
+#: keystone/token/providers/uuid.py:252
+#, python-format
+msgid "User %(user_id)s has no access to domain %(domain_id)s"
+msgstr ""
+
+#: keystone/token/providers/uuid.py:303
+msgid "User is not a trustee."
+msgstr ""
+
+#: keystone/token/providers/uuid.py:457
+msgid "Non-default domain is not supported"
+msgstr ""
+
+#: keystone/token/providers/uuid.py:465
+msgid "Domain scoped token is not supported"
+msgstr ""
+
+#: keystone/token/providers/uuid.py:528
+msgid "Failed to validate token"
+msgstr ""
+
+#: keystone/token/providers/uuid.py:566 keystone/token/providers/uuid.py:576
+msgid "Failed to verify token"
+msgstr ""
+
diff --git a/keystone/locale/ko_KR/LC_MESSAGES/keystone.po b/keystone/locale/ko_KR/LC_MESSAGES/keystone.po
index 47659fa0..733aef75 100644
--- a/keystone/locale/ko_KR/LC_MESSAGES/keystone.po
+++ b/keystone/locale/ko_KR/LC_MESSAGES/keystone.po
@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Keystone\n"
"Report-Msgid-Bugs-To: https://bugs.launchpad.net/keystone\n"
-"POT-Creation-Date: 2013-07-11 17:05+0000\n"
+"POT-Creation-Date: 2013-08-02 17:05+0000\n"
"PO-Revision-Date: 2013-03-21 18:34+0000\n"
"Last-Translator: openstackjenkins <jenkins@openstack.org>\n"
"Language-Team: ko_KR <LL@li.org>\n"
@@ -16,7 +16,7 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"Generated-By: Babel 0.9.6\n"
+"Generated-By: Babel 1.3\n"
#: keystone/clean.py:23
#, python-format
@@ -38,78 +38,224 @@ msgstr ""
msgid "%(property_name)s is not a %(display_expected_type)s"
msgstr ""
-#: keystone/test.py:106
+#: keystone/exception.py:48
+msgid "missing exception kwargs (programmer error)"
+msgstr ""
+
+#: keystone/exception.py:65
+#, python-format
+msgid ""
+"Expecting to find %(attribute)s in %(target)s. The server could not "
+"comply with the request since it is either malformed or otherwise "
+"incorrect. The client is assumed to be in error."
+msgstr ""
+
+#: keystone/exception.py:74
+#, python-format
+msgid ""
+"String length exceeded.The length of string '%(string)s' exceeded the "
+"limit of column %(type)s(CHAR(%(length)d))."
+msgstr ""
+
+#: keystone/exception.py:80
+#, python-format
+msgid ""
+"Request attribute %(attribute)s must be less than or equal to %(size)i. "
+"The server could not comply with the request because the attribute size "
+"is invalid (too large). The client is assumed to be in error."
+msgstr ""
+
+#: keystone/exception.py:101
+msgid "The request you have made requires authentication."
+msgstr ""
+
+#: keystone/exception.py:107
+msgid "Authentication plugin error."
+msgstr ""
+
+#: keystone/exception.py:115
+msgid "Attempted to authenticate with an unsupported method."
+msgstr ""
+
+#: keystone/exception.py:123
+msgid "Additional authentications steps required."
+msgstr ""
+
+#: keystone/exception.py:131
+msgid "You are not authorized to perform the requested action."
+msgstr ""
+
+#: keystone/exception.py:138
+#, python-format
+msgid "You are not authorized to perform the requested action, %(action)s."
+msgstr ""
+
+#: keystone/exception.py:143
+#, python-format
+msgid "Could not find, %(target)s."
+msgstr ""
+
+#: keystone/exception.py:149
+#, python-format
+msgid "Could not find endpoint, %(endpoint_id)s."
+msgstr ""
+
+#: keystone/exception.py:156
+msgid "An unhandled exception has occurred: Could not find metadata."
+msgstr ""
+
+#: keystone/exception.py:161
+#, python-format
+msgid "Could not find policy, %(policy_id)s."
+msgstr ""
+
+#: keystone/exception.py:165
+#, python-format
+msgid "Could not find role, %(role_id)s."
+msgstr ""
+
+#: keystone/exception.py:169
+#, python-format
+msgid "Could not find service, %(service_id)s."
+msgstr ""
+
+#: keystone/exception.py:173
+#, python-format
+msgid "Could not find domain, %(domain_id)s."
+msgstr ""
+
+#: keystone/exception.py:177
+#, python-format
+msgid "Could not find project, %(project_id)s."
+msgstr ""
+
+#: keystone/exception.py:181
+#, python-format
+msgid "Could not find token, %(token_id)s."
+msgstr ""
+
+#: keystone/exception.py:185
+#, python-format
+msgid "Could not find user, %(user_id)s."
+msgstr ""
+
+#: keystone/exception.py:189
+#, python-format
+msgid "Could not find group, %(group_id)s."
+msgstr ""
+
+#: keystone/exception.py:193
+#, python-format
+msgid "Could not find trust, %(trust_id)s."
+msgstr ""
+
+#: keystone/exception.py:197
+#, python-format
+msgid "Could not find credential, %(credential_id)s."
+msgstr ""
+
+#: keystone/exception.py:201
+#, python-format
+msgid "Could not find version, %(version)s."
+msgstr ""
+
+#: keystone/exception.py:205
+#, python-format
+msgid "Conflict occurred attempting to store %(type)s. %(details)s"
+msgstr ""
+
+#: keystone/exception.py:212
+msgid "Request is too large."
+msgstr ""
+
+#: keystone/exception.py:218
+#, python-format
+msgid ""
+"An unexpected error prevented the server from fulfilling your request. "
+"%(exception)s"
+msgstr ""
+
+#: keystone/exception.py:225
+#, python-format
+msgid "Malformed endpoint URL (%(endpoint)s), see ERROR log for details."
+msgstr ""
+
+#: keystone/exception.py:230
+msgid "The action you have requested has not been implemented."
+msgstr ""
+
+#: keystone/exception.py:237
+#, python-format
+msgid "The Keystone paste configuration file %(config_file)s could not be found."
+msgstr ""
+
+#: keystone/test.py:117
#, python-format
msgid "Failed to checkout %s"
msgstr ""
-#: keystone/assignment/backends/ldap.py:110
+#: keystone/assignment/core.py:529
#, python-format
msgid "Expected dict or list: %s"
msgstr ""
-#: keystone/assignment/backends/ldap.py:456
-#: keystone/identity/backends/ldap.py:433
+#: keystone/assignment/backends/kvs.py:138
+#: keystone/assignment/backends/sql.py:285
#, python-format
-msgid "Role %s not found"
+msgid "Cannot remove role that has not been granted, %s"
msgstr ""
-#: keystone/assignment/backends/sql.py:244
+#: keystone/assignment/backends/ldap.py:418
#, python-format
-msgid "Cannot remove role that has not been granted, %s"
+msgid "Role %s not found"
msgstr ""
-#: keystone/auth/controllers.py:72
+#: keystone/assignment/backends/sql.py:114
+msgid "Inherited roles can only be assigned to domains"
+msgstr ""
+
+#: keystone/auth/controllers.py:71
#, python-format
msgid "Project is disabled: %s"
msgstr ""
-#: keystone/auth/controllers.py:78 keystone/auth/plugins/password.py:38
+#: keystone/auth/controllers.py:77 keystone/auth/plugins/password.py:38
#, python-format
msgid "Domain is disabled: %s"
msgstr ""
-#: keystone/auth/controllers.py:84 keystone/auth/plugins/password.py:44
+#: keystone/auth/controllers.py:83 keystone/auth/plugins/password.py:44
#, python-format
msgid "User is disabled: %s"
msgstr ""
-#: keystone/auth/controllers.py:259
+#: keystone/auth/controllers.py:262
msgid "Scoping to both domain and project is not allowed"
msgstr ""
-#: keystone/auth/controllers.py:262
+#: keystone/auth/controllers.py:265
msgid "Scoping to both domain and trust is not allowed"
msgstr ""
-#: keystone/auth/controllers.py:265
+#: keystone/auth/controllers.py:268
msgid "Scoping to both project and trust is not allowed"
msgstr ""
-#: keystone/auth/controllers.py:325
-#, python-format
-msgid "Unable to lookup user %s"
-msgstr ""
-
-#: keystone/auth/controllers.py:355
+#: keystone/auth/controllers.py:353
msgid "User not found"
msgstr ""
-#: keystone/auth/token_factory.py:79
-msgid "User have no access to project"
-msgstr ""
-
-#: keystone/auth/token_factory.py:94
-msgid "User have no access to domain"
+#: keystone/auth/plugins/external.py:36 keystone/auth/plugins/external.py:66
+msgid "No authenticated user"
msgstr ""
-#: keystone/auth/token_factory.py:311 keystone/token/controllers.py:119
-msgid "Unable to sign token."
+#: keystone/auth/plugins/external.py:49 keystone/auth/plugins/external.py:86
+#, python-format
+msgid "Unable to lookup user %s"
msgstr ""
-#: keystone/auth/token_factory.py:314 keystone/token/controllers.py:122
-#, python-format
-msgid "Invalid value for token_format: %s. Allowed values are PKI or UUID."
+#: keystone/auth/plugins/password.py:112
+msgid "Invalid username or password"
msgstr ""
#: keystone/catalog/core.py:38
@@ -170,32 +316,32 @@ msgstr ""
msgid "RBAC: Invalid token"
msgstr ""
-#: keystone/common/controller.py:35 keystone/common/controller.py:56
+#: keystone/common/controller.py:39 keystone/common/controller.py:60
msgid "RBAC: Invalid user"
msgstr ""
-#: keystone/common/controller.py:41
+#: keystone/common/controller.py:45
msgid "RBAC: Proceeding without project"
msgstr ""
-#: keystone/common/controller.py:61
+#: keystone/common/controller.py:65
msgid "RBAC: Proceeding without tenant"
msgstr ""
-#: keystone/common/controller.py:91 keystone/common/controller.py:142
+#: keystone/common/controller.py:95 keystone/common/controller.py:146
msgid "RBAC: Bypassing authorization"
msgstr ""
-#: keystone/common/controller.py:100 keystone/common/controller.py:140
+#: keystone/common/controller.py:104 keystone/common/controller.py:144
msgid "RBAC: Authorization granted"
msgstr ""
-#: keystone/common/controller.py:130
+#: keystone/common/controller.py:134
#, python-format
msgid "RBAC: Adding query filter params (%s)"
msgstr ""
-#: keystone/common/controller.py:318
+#: keystone/common/controller.py:322
msgid "Invalid token in normalize_domain_id"
msgstr ""
@@ -206,17 +352,48 @@ msgid ""
"listening on that port."
msgstr ""
-#: keystone/common/wsgi.py:162
+#: keystone/common/wsgi.py:95
+msgid "No bind information present in token"
+msgstr ""
+
+#: keystone/common/wsgi.py:99
+#, python-format
+msgid "Named bind mode %s not in bind information"
+msgstr ""
+
+#: keystone/common/wsgi.py:105
+msgid "Kerberos credentials required and not present"
+msgstr ""
+
+#: keystone/common/wsgi.py:109
+msgid "Kerberos credentials do not match those in bind"
+msgstr ""
+
+#: keystone/common/wsgi.py:112
+msgid "Kerberos bind authentication successful"
+msgstr ""
+
+#: keystone/common/wsgi.py:115
+#, python-format
+msgid "Ignoring unknown bind for permissive mode: {%(bind_type)s: %(identifier)s}"
+msgstr ""
+
+#: keystone/common/wsgi.py:119
+#, python-format
+msgid "Couldn't verify unknown bind: {%(bind_type)s: %(identifier)s}"
+msgstr ""
+
+#: keystone/common/wsgi.py:211
#, python-format
msgid "arg_dict: %s"
msgstr ""
-#: keystone/common/wsgi.py:188
+#: keystone/common/wsgi.py:243
#, python-format
msgid "Authorization failed. %(exception)s from %(remote_addr)s"
msgstr ""
-#: keystone/common/wsgi.py:431
+#: keystone/common/wsgi.py:487
msgid "The resource could not be found."
msgstr ""
@@ -457,11 +634,11 @@ msgstr ""
msgid "Search scope %s not implemented."
msgstr ""
-#: keystone/common/sql/core.py:126
+#: keystone/common/sql/core.py:119
msgid "Global engine callback raised."
msgstr ""
-#: keystone/common/sql/core.py:240
+#: keystone/common/sql/core.py:233
#, python-format
msgid "Got mysql server has gone away: %s"
msgstr ""
@@ -510,7 +687,7 @@ msgstr ""
msgid "Creating ec2 cred for user %(user_id)s and tenant %(tenant_id)s"
msgstr ""
-#: keystone/identity/controllers.py:878
+#: keystone/identity/controllers.py:952
#, python-format
msgid ""
"Group %(group)s not found for role-assignment - %(target)s with Role: "
@@ -521,18 +698,18 @@ msgstr ""
msgid "User not found in group"
msgstr ""
-#: keystone/identity/backends/ldap.py:192
+#: keystone/identity/backends/ldap.py:189
#, python-format
msgid ""
"Group member '%(user_dn)s' not found in '%(group_id)s'. The user should "
"be removed from the group. The user will be ignored."
msgstr ""
-#: keystone/identity/backends/ldap.py:621
+#: keystone/identity/backends/ldap.py:334
msgid "Changing Name not supported by LDAP"
msgstr ""
-#: keystone/identity/backends/ldap.py:634
+#: keystone/identity/backends/ldap.py:347
#, python-format
msgid "User %(user_id)s is already a member of group %(group_id)s"
msgstr ""
@@ -552,26 +729,56 @@ msgstr ""
msgid "Failed to understand rule %(rule)r"
msgstr ""
+#: keystone/openstack/common/crypto/utils.py:29
+msgid "An unknown error occurred in crypto utils."
+msgstr ""
+
+#: keystone/openstack/common/crypto/utils.py:36
+#, python-format
+msgid "Block size of %(given)d is too big, max = %(maximum)d"
+msgstr ""
+
+#: keystone/openstack/common/crypto/utils.py:45
+#, python-format
+msgid "Length of %(given)d is too long, max = %(maximum)d"
+msgstr ""
+
#: keystone/policy/backends/rules.py:93
#, python-format
msgid "enforce %(action)s: %(credentials)s"
msgstr ""
-#: keystone/token/controllers.py:396
+#: keystone/token/controllers.py:378
#, python-format
msgid "User %(u_id)s is unauthorized for tenant %(t_id)s"
msgstr ""
-#: keystone/token/controllers.py:413 keystone/token/controllers.py:416
+#: keystone/token/controllers.py:395 keystone/token/controllers.py:398
msgid "Token does not belong to specified tenant."
msgstr ""
-#: keystone/token/controllers.py:423
-msgid "Non-default domain is not supported"
+#: keystone/token/provider.py:76
+msgid ""
+"keystone.conf [signing] token_format (deprecated) conflicts with "
+"keystone.conf [token] provider"
msgstr ""
-#: keystone/token/controllers.py:431
-msgid "Domain scoped token is not supported"
+#: keystone/token/provider.py:84
+msgid ""
+"keystone.conf [signing] token_format is deprecated in favor of "
+"keystone.conf [token] provider"
+msgstr ""
+
+#: keystone/token/provider.py:94
+msgid ""
+"Unrecognized keystone.conf [signing] token_format: expected either 'UUID'"
+" or 'PKI'"
+msgstr ""
+
+#: keystone/token/backends/kvs.py:37
+msgid ""
+"kvs token backend is DEPRECATED. Use keystone.token.backends.sql or "
+"keystone.token.backend.memcache instead."
msgstr ""
#: keystone/token/backends/memcache.py:144
@@ -596,3 +803,54 @@ msgstr ""
msgid "Unable to add token to revocation list."
msgstr ""
+#: keystone/token/providers/pki.py:43
+msgid "Unable to sign token."
+msgstr ""
+
+#: keystone/token/providers/uuid.py:193
+msgid "Trustor is disabled."
+msgstr ""
+
+#: keystone/token/providers/uuid.py:238
+msgid "Trustee has no delegated roles."
+msgstr ""
+
+#: keystone/token/providers/uuid.py:247
+#, python-format
+msgid "User %(user_id)s has no access to project %(project_id)s"
+msgstr ""
+
+#: keystone/token/providers/uuid.py:252
+#, python-format
+msgid "User %(user_id)s has no access to domain %(domain_id)s"
+msgstr ""
+
+#: keystone/token/providers/uuid.py:303
+msgid "User is not a trustee."
+msgstr ""
+
+#: keystone/token/providers/uuid.py:457
+msgid "Non-default domain is not supported"
+msgstr ""
+
+#: keystone/token/providers/uuid.py:465
+msgid "Domain scoped token is not supported"
+msgstr ""
+
+#: keystone/token/providers/uuid.py:528
+msgid "Failed to validate token"
+msgstr ""
+
+#: keystone/token/providers/uuid.py:566 keystone/token/providers/uuid.py:576
+msgid "Failed to verify token"
+msgstr ""
+
+#~ msgid "User have no access to project"
+#~ msgstr ""
+
+#~ msgid "User have no access to domain"
+#~ msgstr ""
+
+#~ msgid "Invalid value for token_format: %s. Allowed values are PKI or UUID."
+#~ msgstr ""
+
diff --git a/keystone/locale/ms/LC_MESSAGES/keystone.po b/keystone/locale/ms/LC_MESSAGES/keystone.po
new file mode 100644
index 00000000..576761b9
--- /dev/null
+++ b/keystone/locale/ms/LC_MESSAGES/keystone.po
@@ -0,0 +1,847 @@
+# Malay translations for keystone.
+# Copyright (C) 2013 ORGANIZATION
+# This file is distributed under the same license as the keystone project.
+#
+# Translators:
+msgid ""
+msgstr ""
+"Project-Id-Version: Keystone\n"
+"Report-Msgid-Bugs-To: https://bugs.launchpad.net/keystone\n"
+"POT-Creation-Date: 2013-08-02 17:05+0000\n"
+"PO-Revision-Date: 2013-07-29 22:01+0000\n"
+"Last-Translator: openstackjenkins <jenkins@openstack.org>\n"
+"Language-Team: Malay "
+"(http://www.transifex.com/projects/p/openstack/language/ms/)\n"
+"Plural-Forms: nplurals=1; plural=0\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=utf-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Generated-By: Babel 1.3\n"
+
+#: keystone/clean.py:23
+#, python-format
+msgid "%s cannot be empty."
+msgstr ""
+
+#: keystone/clean.py:25
+#, python-format
+msgid "%(property_name)s cannot be less than %(min_length)s characters."
+msgstr ""
+
+#: keystone/clean.py:29
+#, python-format
+msgid "%(property_name)s should not be greater than %(max_length)s characters."
+msgstr ""
+
+#: keystone/clean.py:36
+#, python-format
+msgid "%(property_name)s is not a %(display_expected_type)s"
+msgstr ""
+
+#: keystone/exception.py:48
+msgid "missing exception kwargs (programmer error)"
+msgstr ""
+
+#: keystone/exception.py:65
+#, python-format
+msgid ""
+"Expecting to find %(attribute)s in %(target)s. The server could not "
+"comply with the request since it is either malformed or otherwise "
+"incorrect. The client is assumed to be in error."
+msgstr ""
+
+#: keystone/exception.py:74
+#, python-format
+msgid ""
+"String length exceeded.The length of string '%(string)s' exceeded the "
+"limit of column %(type)s(CHAR(%(length)d))."
+msgstr ""
+
+#: keystone/exception.py:80
+#, python-format
+msgid ""
+"Request attribute %(attribute)s must be less than or equal to %(size)i. "
+"The server could not comply with the request because the attribute size "
+"is invalid (too large). The client is assumed to be in error."
+msgstr ""
+
+#: keystone/exception.py:101
+msgid "The request you have made requires authentication."
+msgstr ""
+
+#: keystone/exception.py:107
+msgid "Authentication plugin error."
+msgstr ""
+
+#: keystone/exception.py:115
+msgid "Attempted to authenticate with an unsupported method."
+msgstr ""
+
+#: keystone/exception.py:123
+msgid "Additional authentications steps required."
+msgstr ""
+
+#: keystone/exception.py:131
+msgid "You are not authorized to perform the requested action."
+msgstr ""
+
+#: keystone/exception.py:138
+#, python-format
+msgid "You are not authorized to perform the requested action, %(action)s."
+msgstr ""
+
+#: keystone/exception.py:143
+#, python-format
+msgid "Could not find, %(target)s."
+msgstr ""
+
+#: keystone/exception.py:149
+#, python-format
+msgid "Could not find endpoint, %(endpoint_id)s."
+msgstr ""
+
+#: keystone/exception.py:156
+msgid "An unhandled exception has occurred: Could not find metadata."
+msgstr ""
+
+#: keystone/exception.py:161
+#, python-format
+msgid "Could not find policy, %(policy_id)s."
+msgstr ""
+
+#: keystone/exception.py:165
+#, python-format
+msgid "Could not find role, %(role_id)s."
+msgstr ""
+
+#: keystone/exception.py:169
+#, python-format
+msgid "Could not find service, %(service_id)s."
+msgstr ""
+
+#: keystone/exception.py:173
+#, python-format
+msgid "Could not find domain, %(domain_id)s."
+msgstr ""
+
+#: keystone/exception.py:177
+#, python-format
+msgid "Could not find project, %(project_id)s."
+msgstr ""
+
+#: keystone/exception.py:181
+#, python-format
+msgid "Could not find token, %(token_id)s."
+msgstr ""
+
+#: keystone/exception.py:185
+#, python-format
+msgid "Could not find user, %(user_id)s."
+msgstr ""
+
+#: keystone/exception.py:189
+#, python-format
+msgid "Could not find group, %(group_id)s."
+msgstr ""
+
+#: keystone/exception.py:193
+#, python-format
+msgid "Could not find trust, %(trust_id)s."
+msgstr ""
+
+#: keystone/exception.py:197
+#, python-format
+msgid "Could not find credential, %(credential_id)s."
+msgstr ""
+
+#: keystone/exception.py:201
+#, python-format
+msgid "Could not find version, %(version)s."
+msgstr ""
+
+#: keystone/exception.py:205
+#, python-format
+msgid "Conflict occurred attempting to store %(type)s. %(details)s"
+msgstr ""
+
+#: keystone/exception.py:212
+msgid "Request is too large."
+msgstr ""
+
+#: keystone/exception.py:218
+#, python-format
+msgid ""
+"An unexpected error prevented the server from fulfilling your request. "
+"%(exception)s"
+msgstr ""
+
+#: keystone/exception.py:225
+#, python-format
+msgid "Malformed endpoint URL (%(endpoint)s), see ERROR log for details."
+msgstr ""
+
+#: keystone/exception.py:230
+msgid "The action you have requested has not been implemented."
+msgstr ""
+
+#: keystone/exception.py:237
+#, python-format
+msgid "The Keystone paste configuration file %(config_file)s could not be found."
+msgstr ""
+
+#: keystone/test.py:117
+#, python-format
+msgid "Failed to checkout %s"
+msgstr ""
+
+#: keystone/assignment/core.py:529
+#, python-format
+msgid "Expected dict or list: %s"
+msgstr ""
+
+#: keystone/assignment/backends/kvs.py:138
+#: keystone/assignment/backends/sql.py:285
+#, python-format
+msgid "Cannot remove role that has not been granted, %s"
+msgstr ""
+
+#: keystone/assignment/backends/ldap.py:418
+#, python-format
+msgid "Role %s not found"
+msgstr ""
+
+#: keystone/assignment/backends/sql.py:114
+msgid "Inherited roles can only be assigned to domains"
+msgstr ""
+
+#: keystone/auth/controllers.py:71
+#, python-format
+msgid "Project is disabled: %s"
+msgstr ""
+
+#: keystone/auth/controllers.py:77 keystone/auth/plugins/password.py:38
+#, python-format
+msgid "Domain is disabled: %s"
+msgstr ""
+
+#: keystone/auth/controllers.py:83 keystone/auth/plugins/password.py:44
+#, python-format
+msgid "User is disabled: %s"
+msgstr ""
+
+#: keystone/auth/controllers.py:262
+msgid "Scoping to both domain and project is not allowed"
+msgstr ""
+
+#: keystone/auth/controllers.py:265
+msgid "Scoping to both domain and trust is not allowed"
+msgstr ""
+
+#: keystone/auth/controllers.py:268
+msgid "Scoping to both project and trust is not allowed"
+msgstr ""
+
+#: keystone/auth/controllers.py:353
+msgid "User not found"
+msgstr ""
+
+#: keystone/auth/plugins/external.py:36 keystone/auth/plugins/external.py:66
+msgid "No authenticated user"
+msgstr ""
+
+#: keystone/auth/plugins/external.py:49 keystone/auth/plugins/external.py:86
+#, python-format
+msgid "Unable to lookup user %s"
+msgstr ""
+
+#: keystone/auth/plugins/password.py:112
+msgid "Invalid username or password"
+msgstr ""
+
+#: keystone/catalog/core.py:38
+#, python-format
+msgid "Malformed endpoint %(url)s - unknown key %(keyerror)s"
+msgstr ""
+
+#: keystone/catalog/core.py:43
+#, python-format
+msgid ""
+"Malformed endpoint %(url)s - unknown key %(keyerror)s(are you missing "
+"brackets ?)"
+msgstr ""
+
+#: keystone/catalog/core.py:49
+#, python-format
+msgid ""
+"Malformed endpoint %s - incomplete format (are you "
+"missing a type notifier ?)"
+msgstr ""
+
+#: keystone/catalog/backends/templated.py:109
+#, python-format
+msgid "Unable to open template file %s"
+msgstr ""
+
+#: keystone/common/cms.py:26
+#, python-format
+msgid "Verify error: %s"
+msgstr ""
+
+#: keystone/common/cms.py:118
+msgid ""
+"Signing error: Unable to load certificate - ensure you've configured PKI "
+"with 'keystone-manage pki_setup'"
+msgstr ""
+
+#: keystone/common/cms.py:122
+#, python-format
+msgid "Signing error: %s"
+msgstr ""
+
+#: keystone/common/config.py:89
+#, python-format
+msgid "Unable to locate specified logging config file: %s"
+msgstr ""
+
+#: keystone/common/config.py:107
+msgid "Invalid syslog facility"
+msgstr ""
+
+#: keystone/common/controller.py:18
+#, python-format
+msgid "RBAC: Authorizing %(action)s(%(kwargs)s)"
+msgstr ""
+
+#: keystone/common/controller.py:25
+msgid "RBAC: Invalid token"
+msgstr ""
+
+#: keystone/common/controller.py:39 keystone/common/controller.py:60
+msgid "RBAC: Invalid user"
+msgstr ""
+
+#: keystone/common/controller.py:45
+msgid "RBAC: Proceeding without project"
+msgstr ""
+
+#: keystone/common/controller.py:65
+msgid "RBAC: Proceeding without tenant"
+msgstr ""
+
+#: keystone/common/controller.py:95 keystone/common/controller.py:146
+msgid "RBAC: Bypassing authorization"
+msgstr ""
+
+#: keystone/common/controller.py:104 keystone/common/controller.py:144
+msgid "RBAC: Authorization granted"
+msgstr ""
+
+#: keystone/common/controller.py:134
+#, python-format
+msgid "RBAC: Adding query filter params (%s)"
+msgstr ""
+
+#: keystone/common/controller.py:322
+msgid "Invalid token in normalize_domain_id"
+msgstr ""
+
+#: keystone/common/utils.py:233
+msgid ""
+"Error setting up the debug environment. Verify that the option --debug-"
+"url has the format <host>:<port> and that a debugger processes is "
+"listening on that port."
+msgstr ""
+
+#: keystone/common/wsgi.py:95
+msgid "No bind information present in token"
+msgstr ""
+
+#: keystone/common/wsgi.py:99
+#, python-format
+msgid "Named bind mode %s not in bind information"
+msgstr ""
+
+#: keystone/common/wsgi.py:105
+msgid "Kerberos credentials required and not present"
+msgstr ""
+
+#: keystone/common/wsgi.py:109
+msgid "Kerberos credentials do not match those in bind"
+msgstr ""
+
+#: keystone/common/wsgi.py:112
+msgid "Kerberos bind authentication successful"
+msgstr ""
+
+#: keystone/common/wsgi.py:115
+#, python-format
+msgid "Ignoring unknown bind for permissive mode: {%(bind_type)s: %(identifier)s}"
+msgstr ""
+
+#: keystone/common/wsgi.py:119
+#, python-format
+msgid "Couldn't verify unknown bind: {%(bind_type)s: %(identifier)s}"
+msgstr ""
+
+#: keystone/common/wsgi.py:211
+#, python-format
+msgid "arg_dict: %s"
+msgstr ""
+
+#: keystone/common/wsgi.py:243
+#, python-format
+msgid "Authorization failed. %(exception)s from %(remote_addr)s"
+msgstr ""
+
+#: keystone/common/wsgi.py:487
+msgid "The resource could not be found."
+msgstr ""
+
+#: keystone/common/environment/__init__.py:37
+#, python-format
+msgid "Environment configured as: %s"
+msgstr ""
+
+#: keystone/common/environment/eventlet_server.py:51
+#, python-format
+msgid "Starting %(arg0)s on %(host)s:%(port)s"
+msgstr ""
+
+#: keystone/common/environment/eventlet_server.py:113
+msgid "Server error"
+msgstr ""
+
+#: keystone/common/ldap/core.py:79
+#, python-format
+msgid "Invalid LDAP deref option: %s. Choose one of: "
+msgstr ""
+
+#: keystone/common/ldap/core.py:87
+#, python-format
+msgid "Invalid LDAP TLS certs option: %(option). Choose one of: %(options)s"
+msgstr ""
+
+#: keystone/common/ldap/core.py:99
+#, python-format
+msgid "Invalid LDAP scope: %(scope)s. Choose one of: %(options)s"
+msgstr ""
+
+#: keystone/common/ldap/core.py:189
+#, python-format
+msgid ""
+"Invalid additional attribute mapping: \"%s\". Format must be "
+"<ldap_attribute>:<keystone_attribute>"
+msgstr ""
+
+#: keystone/common/ldap/core.py:195
+#, python-format
+msgid ""
+"Invalid additional attribute mapping: \"%(item)s\". Value "
+"\"%(attr_map)s\" must use one of %(keys)s."
+msgstr ""
+
+#: keystone/common/ldap/core.py:279 keystone/identity/backends/kvs.py:177
+#: keystone/identity/backends/kvs.py:205
+#, python-format
+msgid "Duplicate name, %s."
+msgstr ""
+
+#: keystone/common/ldap/core.py:289 keystone/identity/backends/kvs.py:170
+#, python-format
+msgid "Duplicate ID, %s."
+msgstr ""
+
+#: keystone/common/ldap/core.py:294
+#, python-format
+msgid "LDAP %s create"
+msgstr ""
+
+#: keystone/common/ldap/core.py:372
+#, python-format
+msgid "LDAP %s update"
+msgstr ""
+
+#: keystone/common/ldap/core.py:405
+#, python-format
+msgid "LDAP %s delete"
+msgstr ""
+
+#: keystone/common/ldap/core.py:430
+#, python-format
+msgid "LDAP init: url=%s"
+msgstr ""
+
+#: keystone/common/ldap/core.py:431
+#, python-format
+msgid ""
+"LDAP init: use_tls=%(use_tls)s\n"
+"tls_cacertfile=%(tls_cacertfile)s\n"
+"tls_cacertdir=%(tls_cacertdir)s\n"
+"tls_req_cert=%(tls_req_cert)s\n"
+"tls_avail=%(tls_avail)s\n"
+msgstr ""
+
+#: keystone/common/ldap/core.py:450
+msgid "Invalid TLS / LDAPS combination"
+msgstr ""
+
+#: keystone/common/ldap/core.py:454
+#, python-format
+msgid "Invalid LDAP TLS_AVAIL option: %s. TLS not available"
+msgstr ""
+
+#: keystone/common/ldap/core.py:464
+#, python-format
+msgid "tls_cacertfile %s not found or is not a file"
+msgstr ""
+
+#: keystone/common/ldap/core.py:476
+#, python-format
+msgid "tls_cacertdir %s not found or is not a directory"
+msgstr ""
+
+#: keystone/common/ldap/core.py:483
+#, python-format
+msgid "LDAP TLS: invalid TLS_REQUIRE_CERT Option=%s"
+msgstr ""
+
+#: keystone/common/ldap/core.py:497
+#, python-format
+msgid "LDAP bind: dn=%s"
+msgstr ""
+
+#: keystone/common/ldap/core.py:508
+#, python-format
+msgid "LDAP add: dn=%(dn)s, attrs=%(attrs)s"
+msgstr ""
+
+#: keystone/common/ldap/core.py:514
+#, python-format
+msgid ""
+"LDAP search: dn=%(dn)s, scope=%(scope)s, query=%(query)s, "
+"attrs=%(attrlist)s"
+msgstr ""
+
+#: keystone/common/ldap/core.py:567
+msgid ""
+"LDAP Server does not support paging. Disable paging in keystone.conf to "
+"avoid this message."
+msgstr ""
+
+#: keystone/common/ldap/core.py:584
+#, python-format
+msgid "LDAP modify: dn=%(dn)s, modlist=%(modlist)s"
+msgstr ""
+
+#: keystone/common/ldap/core.py:590
+#, python-format
+msgid "LDAP delete: dn=%s"
+msgstr ""
+
+#: keystone/common/ldap/core.py:595
+#, python-format
+msgid "LDAP delete_ext: dn=%(dn)s, serverctrls=%(serverctrls)s"
+msgstr ""
+
+#: keystone/common/ldap/fakeldap.py:146
+#, python-format
+msgid "FakeLdap initialize url=%s"
+msgstr ""
+
+#: keystone/common/ldap/fakeldap.py:156
+#, python-format
+msgid "FakeLdap bind dn=%s"
+msgstr ""
+
+#: keystone/common/ldap/fakeldap.py:163
+#, python-format
+msgid "FakeLdap bind fail: dn=%s not found"
+msgstr ""
+
+#: keystone/common/ldap/fakeldap.py:170
+#, python-format
+msgid "FakeLdap bind fail: password for dn=%s not found"
+msgstr ""
+
+#: keystone/common/ldap/fakeldap.py:175
+#, python-format
+msgid "FakeLdap bind fail: password for dn=%s does not match"
+msgstr ""
+
+#: keystone/common/ldap/fakeldap.py:190
+#, python-format
+msgid "FakeLdap add item: dn=%(dn)s, attrs=%(attrs)s"
+msgstr ""
+
+#: keystone/common/ldap/fakeldap.py:193
+#, python-format
+msgid "FakeLdap add item failed: dn=%s is already in store."
+msgstr ""
+
+#: keystone/common/ldap/fakeldap.py:207 keystone/common/ldap/fakeldap.py:221
+#, python-format
+msgid "FakeLdap delete item: dn=%s"
+msgstr ""
+
+#: keystone/common/ldap/fakeldap.py:211 keystone/common/ldap/fakeldap.py:225
+#, python-format
+msgid "FakeLdap delete item failed: dn=%s not found."
+msgstr ""
+
+#: keystone/common/ldap/fakeldap.py:240
+#, python-format
+msgid "FakeLdap modify item: dn=%(dn)s attrs=%(attrs)s"
+msgstr ""
+
+#: keystone/common/ldap/fakeldap.py:245
+#, python-format
+msgid "FakeLdap modify item failed: dn=%s not found."
+msgstr ""
+
+#: keystone/common/ldap/fakeldap.py:262
+#, python-format
+msgid "FakeLdap modify item failed: item has no attribute \"%s\" to delete"
+msgstr ""
+
+#: keystone/common/ldap/fakeldap.py:273
+#, python-format
+msgid ""
+"FakeLdap modify item failed: item has no attribute \"%(k)s\" with value "
+"\"%(v)s\" to delete"
+msgstr ""
+
+#: keystone/common/ldap/fakeldap.py:279
+#, python-format
+msgid "FakeLdap modify item failed: unknown command %s"
+msgstr ""
+
+#: keystone/common/ldap/fakeldap.py:281
+#, python-format
+msgid "modify_s action %s not implemented"
+msgstr ""
+
+#: keystone/common/ldap/fakeldap.py:300
+#, python-format
+msgid "FakeLdap search at dn=%(dn)s scope=%(scope)s query=%(query)s"
+msgstr ""
+
+#: keystone/common/ldap/fakeldap.py:306
+msgid "FakeLdap search fail: dn not found for SCOPE_BASE"
+msgstr ""
+
+#: keystone/common/ldap/fakeldap.py:320
+#, python-format
+msgid "Search scope %s not implemented."
+msgstr ""
+
+#: keystone/common/sql/core.py:119
+msgid "Global engine callback raised."
+msgstr ""
+
+#: keystone/common/sql/core.py:233
+#, python-format
+msgid "Got mysql server has gone away: %s"
+msgstr ""
+
+#: keystone/common/sql/legacy.py:188
+#, python-format
+msgid "Cannot migrate EC2 credential: %s"
+msgstr ""
+
+#: keystone/common/sql/migration.py:47
+msgid "version should be an integer"
+msgstr ""
+
+#: keystone/common/sql/nova.py:65
+#, python-format
+msgid "Create tenant %s"
+msgstr ""
+
+#: keystone/common/sql/nova.py:82
+#, python-format
+msgid "Create user %s"
+msgstr ""
+
+#: keystone/common/sql/nova.py:91
+#, python-format
+msgid "Add user %(user_id)s to tenant %(tenant_id)s"
+msgstr ""
+
+#: keystone/common/sql/nova.py:100
+#, python-format
+msgid "Ignoring existing role %s"
+msgstr ""
+
+#: keystone/common/sql/nova.py:107
+#, python-format
+msgid "Create role %s"
+msgstr ""
+
+#: keystone/common/sql/nova.py:117
+#, python-format
+msgid "Assign role %(role_id)s to user %(user_id)s on tenant %(tenant_id)s"
+msgstr ""
+
+#: keystone/common/sql/nova.py:136
+#, python-format
+msgid "Creating ec2 cred for user %(user_id)s and tenant %(tenant_id)s"
+msgstr ""
+
+#: keystone/identity/controllers.py:952
+#, python-format
+msgid ""
+"Group %(group)s not found for role-assignment - %(target)s with Role: "
+"%(role)s"
+msgstr ""
+
+#: keystone/identity/backends/kvs.py:126 keystone/identity/backends/kvs.py:135
+msgid "User not found in group"
+msgstr ""
+
+#: keystone/identity/backends/ldap.py:189
+#, python-format
+msgid ""
+"Group member '%(user_dn)s' not found in '%(group_id)s'. The user should "
+"be removed from the group. The user will be ignored."
+msgstr ""
+
+#: keystone/identity/backends/ldap.py:334
+msgid "Changing Name not supported by LDAP"
+msgstr ""
+
+#: keystone/identity/backends/ldap.py:347
+#, python-format
+msgid "User %(user_id)s is already a member of group %(group_id)s"
+msgstr ""
+
+#: keystone/openstack/common/policy.py:394
+#, python-format
+msgid "Failed to understand rule %(rule)s"
+msgstr ""
+
+#: keystone/openstack/common/policy.py:404
+#, python-format
+msgid "No handler for matches of kind %s"
+msgstr ""
+
+#: keystone/openstack/common/policy.py:679
+#, python-format
+msgid "Failed to understand rule %(rule)r"
+msgstr ""
+
+#: keystone/openstack/common/crypto/utils.py:29
+msgid "An unknown error occurred in crypto utils."
+msgstr ""
+
+#: keystone/openstack/common/crypto/utils.py:36
+#, python-format
+msgid "Block size of %(given)d is too big, max = %(maximum)d"
+msgstr ""
+
+#: keystone/openstack/common/crypto/utils.py:45
+#, python-format
+msgid "Length of %(given)d is too long, max = %(maximum)d"
+msgstr ""
+
+#: keystone/policy/backends/rules.py:93
+#, python-format
+msgid "enforce %(action)s: %(credentials)s"
+msgstr ""
+
+#: keystone/token/controllers.py:378
+#, python-format
+msgid "User %(u_id)s is unauthorized for tenant %(t_id)s"
+msgstr ""
+
+#: keystone/token/controllers.py:395 keystone/token/controllers.py:398
+msgid "Token does not belong to specified tenant."
+msgstr ""
+
+#: keystone/token/provider.py:76
+msgid ""
+"keystone.conf [signing] token_format (deprecated) conflicts with "
+"keystone.conf [token] provider"
+msgstr ""
+
+#: keystone/token/provider.py:84
+msgid ""
+"keystone.conf [signing] token_format is deprecated in favor of "
+"keystone.conf [token] provider"
+msgstr ""
+
+#: keystone/token/provider.py:94
+msgid ""
+"Unrecognized keystone.conf [signing] token_format: expected either 'UUID'"
+" or 'PKI'"
+msgstr ""
+
+#: keystone/token/backends/kvs.py:37
+msgid ""
+"kvs token backend is DEPRECATED. Use keystone.token.backends.sql or "
+"keystone.token.backend.memcache instead."
+msgstr ""
+
+#: keystone/token/backends/memcache.py:144
+#, python-format
+msgid ""
+"Successful set of token-index-list for user-key \"%(user_key)s\", "
+"#%(count)d records"
+msgstr ""
+
+#: keystone/token/backends/memcache.py:154
+#, python-format
+msgid ""
+"Failed to set token-index-list for user-key \"%(user_key)s\". Attempt "
+"%(cas_retry)d of %(cas_retry_max)d"
+msgstr ""
+
+#: keystone/token/backends/memcache.py:163
+msgid "Unable to add token user list"
+msgstr ""
+
+#: keystone/token/backends/memcache.py:172
+msgid "Unable to add token to revocation list."
+msgstr ""
+
+#: keystone/token/providers/pki.py:43
+msgid "Unable to sign token."
+msgstr ""
+
+#: keystone/token/providers/uuid.py:193
+msgid "Trustor is disabled."
+msgstr ""
+
+#: keystone/token/providers/uuid.py:238
+msgid "Trustee has no delegated roles."
+msgstr ""
+
+#: keystone/token/providers/uuid.py:247
+#, python-format
+msgid "User %(user_id)s has no access to project %(project_id)s"
+msgstr ""
+
+#: keystone/token/providers/uuid.py:252
+#, python-format
+msgid "User %(user_id)s has no access to domain %(domain_id)s"
+msgstr ""
+
+#: keystone/token/providers/uuid.py:303
+msgid "User is not a trustee."
+msgstr ""
+
+#: keystone/token/providers/uuid.py:457
+msgid "Non-default domain is not supported"
+msgstr ""
+
+#: keystone/token/providers/uuid.py:465
+msgid "Domain scoped token is not supported"
+msgstr ""
+
+#: keystone/token/providers/uuid.py:528
+msgid "Failed to validate token"
+msgstr ""
+
+#: keystone/token/providers/uuid.py:566 keystone/token/providers/uuid.py:576
+msgid "Failed to verify token"
+msgstr ""
+
diff --git a/keystone/locale/nb/LC_MESSAGES/keystone.po b/keystone/locale/nb/LC_MESSAGES/keystone.po
new file mode 100644
index 00000000..d7a13243
--- /dev/null
+++ b/keystone/locale/nb/LC_MESSAGES/keystone.po
@@ -0,0 +1,847 @@
+# Norwegian Bokmål translations for keystone.
+# Copyright (C) 2013 ORGANIZATION
+# This file is distributed under the same license as the keystone project.
+#
+# Translators:
+msgid ""
+msgstr ""
+"Project-Id-Version: Keystone\n"
+"Report-Msgid-Bugs-To: https://bugs.launchpad.net/keystone\n"
+"POT-Creation-Date: 2013-08-02 17:05+0000\n"
+"PO-Revision-Date: 2013-07-29 22:01+0000\n"
+"Last-Translator: openstackjenkins <jenkins@openstack.org>\n"
+"Language-Team: Norwegian Bokmål "
+"(http://www.transifex.com/projects/p/openstack/language/nb/)\n"
+"Plural-Forms: nplurals=2; plural=(n != 1)\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=utf-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Generated-By: Babel 1.3\n"
+
+#: keystone/clean.py:23
+#, python-format
+msgid "%s cannot be empty."
+msgstr ""
+
+#: keystone/clean.py:25
+#, python-format
+msgid "%(property_name)s cannot be less than %(min_length)s characters."
+msgstr ""
+
+#: keystone/clean.py:29
+#, python-format
+msgid "%(property_name)s should not be greater than %(max_length)s characters."
+msgstr ""
+
+#: keystone/clean.py:36
+#, python-format
+msgid "%(property_name)s is not a %(display_expected_type)s"
+msgstr ""
+
+#: keystone/exception.py:48
+msgid "missing exception kwargs (programmer error)"
+msgstr ""
+
+#: keystone/exception.py:65
+#, python-format
+msgid ""
+"Expecting to find %(attribute)s in %(target)s. The server could not "
+"comply with the request since it is either malformed or otherwise "
+"incorrect. The client is assumed to be in error."
+msgstr ""
+
+#: keystone/exception.py:74
+#, python-format
+msgid ""
+"String length exceeded.The length of string '%(string)s' exceeded the "
+"limit of column %(type)s(CHAR(%(length)d))."
+msgstr ""
+
+#: keystone/exception.py:80
+#, python-format
+msgid ""
+"Request attribute %(attribute)s must be less than or equal to %(size)i. "
+"The server could not comply with the request because the attribute size "
+"is invalid (too large). The client is assumed to be in error."
+msgstr ""
+
+#: keystone/exception.py:101
+msgid "The request you have made requires authentication."
+msgstr ""
+
+#: keystone/exception.py:107
+msgid "Authentication plugin error."
+msgstr ""
+
+#: keystone/exception.py:115
+msgid "Attempted to authenticate with an unsupported method."
+msgstr ""
+
+#: keystone/exception.py:123
+msgid "Additional authentications steps required."
+msgstr ""
+
+#: keystone/exception.py:131
+msgid "You are not authorized to perform the requested action."
+msgstr ""
+
+#: keystone/exception.py:138
+#, python-format
+msgid "You are not authorized to perform the requested action, %(action)s."
+msgstr ""
+
+#: keystone/exception.py:143
+#, python-format
+msgid "Could not find, %(target)s."
+msgstr ""
+
+#: keystone/exception.py:149
+#, python-format
+msgid "Could not find endpoint, %(endpoint_id)s."
+msgstr ""
+
+#: keystone/exception.py:156
+msgid "An unhandled exception has occurred: Could not find metadata."
+msgstr ""
+
+#: keystone/exception.py:161
+#, python-format
+msgid "Could not find policy, %(policy_id)s."
+msgstr ""
+
+#: keystone/exception.py:165
+#, python-format
+msgid "Could not find role, %(role_id)s."
+msgstr ""
+
+#: keystone/exception.py:169
+#, python-format
+msgid "Could not find service, %(service_id)s."
+msgstr ""
+
+#: keystone/exception.py:173
+#, python-format
+msgid "Could not find domain, %(domain_id)s."
+msgstr ""
+
+#: keystone/exception.py:177
+#, python-format
+msgid "Could not find project, %(project_id)s."
+msgstr ""
+
+#: keystone/exception.py:181
+#, python-format
+msgid "Could not find token, %(token_id)s."
+msgstr ""
+
+#: keystone/exception.py:185
+#, python-format
+msgid "Could not find user, %(user_id)s."
+msgstr ""
+
+#: keystone/exception.py:189
+#, python-format
+msgid "Could not find group, %(group_id)s."
+msgstr ""
+
+#: keystone/exception.py:193
+#, python-format
+msgid "Could not find trust, %(trust_id)s."
+msgstr ""
+
+#: keystone/exception.py:197
+#, python-format
+msgid "Could not find credential, %(credential_id)s."
+msgstr ""
+
+#: keystone/exception.py:201
+#, python-format
+msgid "Could not find version, %(version)s."
+msgstr ""
+
+#: keystone/exception.py:205
+#, python-format
+msgid "Conflict occurred attempting to store %(type)s. %(details)s"
+msgstr ""
+
+#: keystone/exception.py:212
+msgid "Request is too large."
+msgstr ""
+
+#: keystone/exception.py:218
+#, python-format
+msgid ""
+"An unexpected error prevented the server from fulfilling your request. "
+"%(exception)s"
+msgstr ""
+
+#: keystone/exception.py:225
+#, python-format
+msgid "Malformed endpoint URL (%(endpoint)s), see ERROR log for details."
+msgstr ""
+
+#: keystone/exception.py:230
+msgid "The action you have requested has not been implemented."
+msgstr ""
+
+#: keystone/exception.py:237
+#, python-format
+msgid "The Keystone paste configuration file %(config_file)s could not be found."
+msgstr ""
+
+#: keystone/test.py:117
+#, python-format
+msgid "Failed to checkout %s"
+msgstr ""
+
+#: keystone/assignment/core.py:529
+#, python-format
+msgid "Expected dict or list: %s"
+msgstr ""
+
+#: keystone/assignment/backends/kvs.py:138
+#: keystone/assignment/backends/sql.py:285
+#, python-format
+msgid "Cannot remove role that has not been granted, %s"
+msgstr ""
+
+#: keystone/assignment/backends/ldap.py:418
+#, python-format
+msgid "Role %s not found"
+msgstr ""
+
+#: keystone/assignment/backends/sql.py:114
+msgid "Inherited roles can only be assigned to domains"
+msgstr ""
+
+#: keystone/auth/controllers.py:71
+#, python-format
+msgid "Project is disabled: %s"
+msgstr ""
+
+#: keystone/auth/controllers.py:77 keystone/auth/plugins/password.py:38
+#, python-format
+msgid "Domain is disabled: %s"
+msgstr ""
+
+#: keystone/auth/controllers.py:83 keystone/auth/plugins/password.py:44
+#, python-format
+msgid "User is disabled: %s"
+msgstr ""
+
+#: keystone/auth/controllers.py:262
+msgid "Scoping to both domain and project is not allowed"
+msgstr ""
+
+#: keystone/auth/controllers.py:265
+msgid "Scoping to both domain and trust is not allowed"
+msgstr ""
+
+#: keystone/auth/controllers.py:268
+msgid "Scoping to both project and trust is not allowed"
+msgstr ""
+
+#: keystone/auth/controllers.py:353
+msgid "User not found"
+msgstr ""
+
+#: keystone/auth/plugins/external.py:36 keystone/auth/plugins/external.py:66
+msgid "No authenticated user"
+msgstr ""
+
+#: keystone/auth/plugins/external.py:49 keystone/auth/plugins/external.py:86
+#, python-format
+msgid "Unable to lookup user %s"
+msgstr ""
+
+#: keystone/auth/plugins/password.py:112
+msgid "Invalid username or password"
+msgstr ""
+
+#: keystone/catalog/core.py:38
+#, python-format
+msgid "Malformed endpoint %(url)s - unknown key %(keyerror)s"
+msgstr ""
+
+#: keystone/catalog/core.py:43
+#, python-format
+msgid ""
+"Malformed endpoint %(url)s - unknown key %(keyerror)s(are you missing "
+"brackets ?)"
+msgstr ""
+
+#: keystone/catalog/core.py:49
+#, python-format
+msgid ""
+"Malformed endpoint %s - incomplete format (are you "
+"missing a type notifier ?)"
+msgstr ""
+
+#: keystone/catalog/backends/templated.py:109
+#, python-format
+msgid "Unable to open template file %s"
+msgstr ""
+
+#: keystone/common/cms.py:26
+#, python-format
+msgid "Verify error: %s"
+msgstr ""
+
+#: keystone/common/cms.py:118
+msgid ""
+"Signing error: Unable to load certificate - ensure you've configured PKI "
+"with 'keystone-manage pki_setup'"
+msgstr ""
+
+#: keystone/common/cms.py:122
+#, python-format
+msgid "Signing error: %s"
+msgstr ""
+
+#: keystone/common/config.py:89
+#, python-format
+msgid "Unable to locate specified logging config file: %s"
+msgstr ""
+
+#: keystone/common/config.py:107
+msgid "Invalid syslog facility"
+msgstr ""
+
+#: keystone/common/controller.py:18
+#, python-format
+msgid "RBAC: Authorizing %(action)s(%(kwargs)s)"
+msgstr ""
+
+#: keystone/common/controller.py:25
+msgid "RBAC: Invalid token"
+msgstr ""
+
+#: keystone/common/controller.py:39 keystone/common/controller.py:60
+msgid "RBAC: Invalid user"
+msgstr ""
+
+#: keystone/common/controller.py:45
+msgid "RBAC: Proceeding without project"
+msgstr ""
+
+#: keystone/common/controller.py:65
+msgid "RBAC: Proceeding without tenant"
+msgstr ""
+
+#: keystone/common/controller.py:95 keystone/common/controller.py:146
+msgid "RBAC: Bypassing authorization"
+msgstr ""
+
+#: keystone/common/controller.py:104 keystone/common/controller.py:144
+msgid "RBAC: Authorization granted"
+msgstr ""
+
+#: keystone/common/controller.py:134
+#, python-format
+msgid "RBAC: Adding query filter params (%s)"
+msgstr ""
+
+#: keystone/common/controller.py:322
+msgid "Invalid token in normalize_domain_id"
+msgstr ""
+
+#: keystone/common/utils.py:233
+msgid ""
+"Error setting up the debug environment. Verify that the option --debug-"
+"url has the format <host>:<port> and that a debugger processes is "
+"listening on that port."
+msgstr ""
+
+#: keystone/common/wsgi.py:95
+msgid "No bind information present in token"
+msgstr ""
+
+#: keystone/common/wsgi.py:99
+#, python-format
+msgid "Named bind mode %s not in bind information"
+msgstr ""
+
+#: keystone/common/wsgi.py:105
+msgid "Kerberos credentials required and not present"
+msgstr ""
+
+#: keystone/common/wsgi.py:109
+msgid "Kerberos credentials do not match those in bind"
+msgstr ""
+
+#: keystone/common/wsgi.py:112
+msgid "Kerberos bind authentication successful"
+msgstr ""
+
+#: keystone/common/wsgi.py:115
+#, python-format
+msgid "Ignoring unknown bind for permissive mode: {%(bind_type)s: %(identifier)s}"
+msgstr ""
+
+#: keystone/common/wsgi.py:119
+#, python-format
+msgid "Couldn't verify unknown bind: {%(bind_type)s: %(identifier)s}"
+msgstr ""
+
+#: keystone/common/wsgi.py:211
+#, python-format
+msgid "arg_dict: %s"
+msgstr ""
+
+#: keystone/common/wsgi.py:243
+#, python-format
+msgid "Authorization failed. %(exception)s from %(remote_addr)s"
+msgstr ""
+
+#: keystone/common/wsgi.py:487
+msgid "The resource could not be found."
+msgstr ""
+
+#: keystone/common/environment/__init__.py:37
+#, python-format
+msgid "Environment configured as: %s"
+msgstr ""
+
+#: keystone/common/environment/eventlet_server.py:51
+#, python-format
+msgid "Starting %(arg0)s on %(host)s:%(port)s"
+msgstr ""
+
+#: keystone/common/environment/eventlet_server.py:113
+msgid "Server error"
+msgstr ""
+
+#: keystone/common/ldap/core.py:79
+#, python-format
+msgid "Invalid LDAP deref option: %s. Choose one of: "
+msgstr ""
+
+#: keystone/common/ldap/core.py:87
+#, python-format
+msgid "Invalid LDAP TLS certs option: %(option). Choose one of: %(options)s"
+msgstr ""
+
+#: keystone/common/ldap/core.py:99
+#, python-format
+msgid "Invalid LDAP scope: %(scope)s. Choose one of: %(options)s"
+msgstr ""
+
+#: keystone/common/ldap/core.py:189
+#, python-format
+msgid ""
+"Invalid additional attribute mapping: \"%s\". Format must be "
+"<ldap_attribute>:<keystone_attribute>"
+msgstr ""
+
+#: keystone/common/ldap/core.py:195
+#, python-format
+msgid ""
+"Invalid additional attribute mapping: \"%(item)s\". Value "
+"\"%(attr_map)s\" must use one of %(keys)s."
+msgstr ""
+
+#: keystone/common/ldap/core.py:279 keystone/identity/backends/kvs.py:177
+#: keystone/identity/backends/kvs.py:205
+#, python-format
+msgid "Duplicate name, %s."
+msgstr ""
+
+#: keystone/common/ldap/core.py:289 keystone/identity/backends/kvs.py:170
+#, python-format
+msgid "Duplicate ID, %s."
+msgstr ""
+
+#: keystone/common/ldap/core.py:294
+#, python-format
+msgid "LDAP %s create"
+msgstr ""
+
+#: keystone/common/ldap/core.py:372
+#, python-format
+msgid "LDAP %s update"
+msgstr ""
+
+#: keystone/common/ldap/core.py:405
+#, python-format
+msgid "LDAP %s delete"
+msgstr ""
+
+#: keystone/common/ldap/core.py:430
+#, python-format
+msgid "LDAP init: url=%s"
+msgstr ""
+
+#: keystone/common/ldap/core.py:431
+#, python-format
+msgid ""
+"LDAP init: use_tls=%(use_tls)s\n"
+"tls_cacertfile=%(tls_cacertfile)s\n"
+"tls_cacertdir=%(tls_cacertdir)s\n"
+"tls_req_cert=%(tls_req_cert)s\n"
+"tls_avail=%(tls_avail)s\n"
+msgstr ""
+
+#: keystone/common/ldap/core.py:450
+msgid "Invalid TLS / LDAPS combination"
+msgstr ""
+
+#: keystone/common/ldap/core.py:454
+#, python-format
+msgid "Invalid LDAP TLS_AVAIL option: %s. TLS not available"
+msgstr ""
+
+#: keystone/common/ldap/core.py:464
+#, python-format
+msgid "tls_cacertfile %s not found or is not a file"
+msgstr ""
+
+#: keystone/common/ldap/core.py:476
+#, python-format
+msgid "tls_cacertdir %s not found or is not a directory"
+msgstr ""
+
+#: keystone/common/ldap/core.py:483
+#, python-format
+msgid "LDAP TLS: invalid TLS_REQUIRE_CERT Option=%s"
+msgstr ""
+
+#: keystone/common/ldap/core.py:497
+#, python-format
+msgid "LDAP bind: dn=%s"
+msgstr ""
+
+#: keystone/common/ldap/core.py:508
+#, python-format
+msgid "LDAP add: dn=%(dn)s, attrs=%(attrs)s"
+msgstr ""
+
+#: keystone/common/ldap/core.py:514
+#, python-format
+msgid ""
+"LDAP search: dn=%(dn)s, scope=%(scope)s, query=%(query)s, "
+"attrs=%(attrlist)s"
+msgstr ""
+
+#: keystone/common/ldap/core.py:567
+msgid ""
+"LDAP Server does not support paging. Disable paging in keystone.conf to "
+"avoid this message."
+msgstr ""
+
+#: keystone/common/ldap/core.py:584
+#, python-format
+msgid "LDAP modify: dn=%(dn)s, modlist=%(modlist)s"
+msgstr ""
+
+#: keystone/common/ldap/core.py:590
+#, python-format
+msgid "LDAP delete: dn=%s"
+msgstr ""
+
+#: keystone/common/ldap/core.py:595
+#, python-format
+msgid "LDAP delete_ext: dn=%(dn)s, serverctrls=%(serverctrls)s"
+msgstr ""
+
+#: keystone/common/ldap/fakeldap.py:146
+#, python-format
+msgid "FakeLdap initialize url=%s"
+msgstr ""
+
+#: keystone/common/ldap/fakeldap.py:156
+#, python-format
+msgid "FakeLdap bind dn=%s"
+msgstr ""
+
+#: keystone/common/ldap/fakeldap.py:163
+#, python-format
+msgid "FakeLdap bind fail: dn=%s not found"
+msgstr ""
+
+#: keystone/common/ldap/fakeldap.py:170
+#, python-format
+msgid "FakeLdap bind fail: password for dn=%s not found"
+msgstr ""
+
+#: keystone/common/ldap/fakeldap.py:175
+#, python-format
+msgid "FakeLdap bind fail: password for dn=%s does not match"
+msgstr ""
+
+#: keystone/common/ldap/fakeldap.py:190
+#, python-format
+msgid "FakeLdap add item: dn=%(dn)s, attrs=%(attrs)s"
+msgstr ""
+
+#: keystone/common/ldap/fakeldap.py:193
+#, python-format
+msgid "FakeLdap add item failed: dn=%s is already in store."
+msgstr ""
+
+#: keystone/common/ldap/fakeldap.py:207 keystone/common/ldap/fakeldap.py:221
+#, python-format
+msgid "FakeLdap delete item: dn=%s"
+msgstr ""
+
+#: keystone/common/ldap/fakeldap.py:211 keystone/common/ldap/fakeldap.py:225
+#, python-format
+msgid "FakeLdap delete item failed: dn=%s not found."
+msgstr ""
+
+#: keystone/common/ldap/fakeldap.py:240
+#, python-format
+msgid "FakeLdap modify item: dn=%(dn)s attrs=%(attrs)s"
+msgstr ""
+
+#: keystone/common/ldap/fakeldap.py:245
+#, python-format
+msgid "FakeLdap modify item failed: dn=%s not found."
+msgstr ""
+
+#: keystone/common/ldap/fakeldap.py:262
+#, python-format
+msgid "FakeLdap modify item failed: item has no attribute \"%s\" to delete"
+msgstr ""
+
+#: keystone/common/ldap/fakeldap.py:273
+#, python-format
+msgid ""
+"FakeLdap modify item failed: item has no attribute \"%(k)s\" with value "
+"\"%(v)s\" to delete"
+msgstr ""
+
+#: keystone/common/ldap/fakeldap.py:279
+#, python-format
+msgid "FakeLdap modify item failed: unknown command %s"
+msgstr ""
+
+#: keystone/common/ldap/fakeldap.py:281
+#, python-format
+msgid "modify_s action %s not implemented"
+msgstr ""
+
+#: keystone/common/ldap/fakeldap.py:300
+#, python-format
+msgid "FakeLdap search at dn=%(dn)s scope=%(scope)s query=%(query)s"
+msgstr ""
+
+#: keystone/common/ldap/fakeldap.py:306
+msgid "FakeLdap search fail: dn not found for SCOPE_BASE"
+msgstr ""
+
+#: keystone/common/ldap/fakeldap.py:320
+#, python-format
+msgid "Search scope %s not implemented."
+msgstr ""
+
+#: keystone/common/sql/core.py:119
+msgid "Global engine callback raised."
+msgstr ""
+
+#: keystone/common/sql/core.py:233
+#, python-format
+msgid "Got mysql server has gone away: %s"
+msgstr ""
+
+#: keystone/common/sql/legacy.py:188
+#, python-format
+msgid "Cannot migrate EC2 credential: %s"
+msgstr ""
+
+#: keystone/common/sql/migration.py:47
+msgid "version should be an integer"
+msgstr ""
+
+#: keystone/common/sql/nova.py:65
+#, python-format
+msgid "Create tenant %s"
+msgstr ""
+
+#: keystone/common/sql/nova.py:82
+#, python-format
+msgid "Create user %s"
+msgstr ""
+
+#: keystone/common/sql/nova.py:91
+#, python-format
+msgid "Add user %(user_id)s to tenant %(tenant_id)s"
+msgstr ""
+
+#: keystone/common/sql/nova.py:100
+#, python-format
+msgid "Ignoring existing role %s"
+msgstr ""
+
+#: keystone/common/sql/nova.py:107
+#, python-format
+msgid "Create role %s"
+msgstr ""
+
+#: keystone/common/sql/nova.py:117
+#, python-format
+msgid "Assign role %(role_id)s to user %(user_id)s on tenant %(tenant_id)s"
+msgstr ""
+
+#: keystone/common/sql/nova.py:136
+#, python-format
+msgid "Creating ec2 cred for user %(user_id)s and tenant %(tenant_id)s"
+msgstr ""
+
+#: keystone/identity/controllers.py:952
+#, python-format
+msgid ""
+"Group %(group)s not found for role-assignment - %(target)s with Role: "
+"%(role)s"
+msgstr ""
+
+#: keystone/identity/backends/kvs.py:126 keystone/identity/backends/kvs.py:135
+msgid "User not found in group"
+msgstr ""
+
+#: keystone/identity/backends/ldap.py:189
+#, python-format
+msgid ""
+"Group member '%(user_dn)s' not found in '%(group_id)s'. The user should "
+"be removed from the group. The user will be ignored."
+msgstr ""
+
+#: keystone/identity/backends/ldap.py:334
+msgid "Changing Name not supported by LDAP"
+msgstr ""
+
+#: keystone/identity/backends/ldap.py:347
+#, python-format
+msgid "User %(user_id)s is already a member of group %(group_id)s"
+msgstr ""
+
+#: keystone/openstack/common/policy.py:394
+#, python-format
+msgid "Failed to understand rule %(rule)s"
+msgstr ""
+
+#: keystone/openstack/common/policy.py:404
+#, python-format
+msgid "No handler for matches of kind %s"
+msgstr ""
+
+#: keystone/openstack/common/policy.py:679
+#, python-format
+msgid "Failed to understand rule %(rule)r"
+msgstr ""
+
+#: keystone/openstack/common/crypto/utils.py:29
+msgid "An unknown error occurred in crypto utils."
+msgstr ""
+
+#: keystone/openstack/common/crypto/utils.py:36
+#, python-format
+msgid "Block size of %(given)d is too big, max = %(maximum)d"
+msgstr ""
+
+#: keystone/openstack/common/crypto/utils.py:45
+#, python-format
+msgid "Length of %(given)d is too long, max = %(maximum)d"
+msgstr ""
+
+#: keystone/policy/backends/rules.py:93
+#, python-format
+msgid "enforce %(action)s: %(credentials)s"
+msgstr ""
+
+#: keystone/token/controllers.py:378
+#, python-format
+msgid "User %(u_id)s is unauthorized for tenant %(t_id)s"
+msgstr ""
+
+#: keystone/token/controllers.py:395 keystone/token/controllers.py:398
+msgid "Token does not belong to specified tenant."
+msgstr ""
+
+#: keystone/token/provider.py:76
+msgid ""
+"keystone.conf [signing] token_format (deprecated) conflicts with "
+"keystone.conf [token] provider"
+msgstr ""
+
+#: keystone/token/provider.py:84
+msgid ""
+"keystone.conf [signing] token_format is deprecated in favor of "
+"keystone.conf [token] provider"
+msgstr ""
+
+#: keystone/token/provider.py:94
+msgid ""
+"Unrecognized keystone.conf [signing] token_format: expected either 'UUID'"
+" or 'PKI'"
+msgstr ""
+
+#: keystone/token/backends/kvs.py:37
+msgid ""
+"kvs token backend is DEPRECATED. Use keystone.token.backends.sql or "
+"keystone.token.backend.memcache instead."
+msgstr ""
+
+#: keystone/token/backends/memcache.py:144
+#, python-format
+msgid ""
+"Successful set of token-index-list for user-key \"%(user_key)s\", "
+"#%(count)d records"
+msgstr ""
+
+#: keystone/token/backends/memcache.py:154
+#, python-format
+msgid ""
+"Failed to set token-index-list for user-key \"%(user_key)s\". Attempt "
+"%(cas_retry)d of %(cas_retry_max)d"
+msgstr ""
+
+#: keystone/token/backends/memcache.py:163
+msgid "Unable to add token user list"
+msgstr ""
+
+#: keystone/token/backends/memcache.py:172
+msgid "Unable to add token to revocation list."
+msgstr ""
+
+#: keystone/token/providers/pki.py:43
+msgid "Unable to sign token."
+msgstr ""
+
+#: keystone/token/providers/uuid.py:193
+msgid "Trustor is disabled."
+msgstr ""
+
+#: keystone/token/providers/uuid.py:238
+msgid "Trustee has no delegated roles."
+msgstr ""
+
+#: keystone/token/providers/uuid.py:247
+#, python-format
+msgid "User %(user_id)s has no access to project %(project_id)s"
+msgstr ""
+
+#: keystone/token/providers/uuid.py:252
+#, python-format
+msgid "User %(user_id)s has no access to domain %(domain_id)s"
+msgstr ""
+
+#: keystone/token/providers/uuid.py:303
+msgid "User is not a trustee."
+msgstr ""
+
+#: keystone/token/providers/uuid.py:457
+msgid "Non-default domain is not supported"
+msgstr ""
+
+#: keystone/token/providers/uuid.py:465
+msgid "Domain scoped token is not supported"
+msgstr ""
+
+#: keystone/token/providers/uuid.py:528
+msgid "Failed to validate token"
+msgstr ""
+
+#: keystone/token/providers/uuid.py:566 keystone/token/providers/uuid.py:576
+msgid "Failed to verify token"
+msgstr ""
+
diff --git a/keystone/locale/nl_NL/LC_MESSAGES/keystone.po b/keystone/locale/nl_NL/LC_MESSAGES/keystone.po
new file mode 100644
index 00000000..6bbb3ab3
--- /dev/null
+++ b/keystone/locale/nl_NL/LC_MESSAGES/keystone.po
@@ -0,0 +1,847 @@
+# Dutch (Netherlands) translations for keystone.
+# Copyright (C) 2013 ORGANIZATION
+# This file is distributed under the same license as the keystone project.
+#
+# Translators:
+msgid ""
+msgstr ""
+"Project-Id-Version: Keystone\n"
+"Report-Msgid-Bugs-To: https://bugs.launchpad.net/keystone\n"
+"POT-Creation-Date: 2013-08-02 17:05+0000\n"
+"PO-Revision-Date: 2013-07-29 22:01+0000\n"
+"Last-Translator: openstackjenkins <jenkins@openstack.org>\n"
+"Language-Team: Dutch (Netherlands) "
+"(http://www.transifex.com/projects/p/openstack/language/nl_NL/)\n"
+"Plural-Forms: nplurals=2; plural=(n != 1)\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=utf-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Generated-By: Babel 1.3\n"
+
+#: keystone/clean.py:23
+#, python-format
+msgid "%s cannot be empty."
+msgstr ""
+
+#: keystone/clean.py:25
+#, python-format
+msgid "%(property_name)s cannot be less than %(min_length)s characters."
+msgstr ""
+
+#: keystone/clean.py:29
+#, python-format
+msgid "%(property_name)s should not be greater than %(max_length)s characters."
+msgstr ""
+
+#: keystone/clean.py:36
+#, python-format
+msgid "%(property_name)s is not a %(display_expected_type)s"
+msgstr ""
+
+#: keystone/exception.py:48
+msgid "missing exception kwargs (programmer error)"
+msgstr ""
+
+#: keystone/exception.py:65
+#, python-format
+msgid ""
+"Expecting to find %(attribute)s in %(target)s. The server could not "
+"comply with the request since it is either malformed or otherwise "
+"incorrect. The client is assumed to be in error."
+msgstr ""
+
+#: keystone/exception.py:74
+#, python-format
+msgid ""
+"String length exceeded.The length of string '%(string)s' exceeded the "
+"limit of column %(type)s(CHAR(%(length)d))."
+msgstr ""
+
+#: keystone/exception.py:80
+#, python-format
+msgid ""
+"Request attribute %(attribute)s must be less than or equal to %(size)i. "
+"The server could not comply with the request because the attribute size "
+"is invalid (too large). The client is assumed to be in error."
+msgstr ""
+
+#: keystone/exception.py:101
+msgid "The request you have made requires authentication."
+msgstr ""
+
+#: keystone/exception.py:107
+msgid "Authentication plugin error."
+msgstr ""
+
+#: keystone/exception.py:115
+msgid "Attempted to authenticate with an unsupported method."
+msgstr ""
+
+#: keystone/exception.py:123
+msgid "Additional authentications steps required."
+msgstr ""
+
+#: keystone/exception.py:131
+msgid "You are not authorized to perform the requested action."
+msgstr ""
+
+#: keystone/exception.py:138
+#, python-format
+msgid "You are not authorized to perform the requested action, %(action)s."
+msgstr ""
+
+#: keystone/exception.py:143
+#, python-format
+msgid "Could not find, %(target)s."
+msgstr ""
+
+#: keystone/exception.py:149
+#, python-format
+msgid "Could not find endpoint, %(endpoint_id)s."
+msgstr ""
+
+#: keystone/exception.py:156
+msgid "An unhandled exception has occurred: Could not find metadata."
+msgstr ""
+
+#: keystone/exception.py:161
+#, python-format
+msgid "Could not find policy, %(policy_id)s."
+msgstr ""
+
+#: keystone/exception.py:165
+#, python-format
+msgid "Could not find role, %(role_id)s."
+msgstr ""
+
+#: keystone/exception.py:169
+#, python-format
+msgid "Could not find service, %(service_id)s."
+msgstr ""
+
+#: keystone/exception.py:173
+#, python-format
+msgid "Could not find domain, %(domain_id)s."
+msgstr ""
+
+#: keystone/exception.py:177
+#, python-format
+msgid "Could not find project, %(project_id)s."
+msgstr ""
+
+#: keystone/exception.py:181
+#, python-format
+msgid "Could not find token, %(token_id)s."
+msgstr ""
+
+#: keystone/exception.py:185
+#, python-format
+msgid "Could not find user, %(user_id)s."
+msgstr ""
+
+#: keystone/exception.py:189
+#, python-format
+msgid "Could not find group, %(group_id)s."
+msgstr ""
+
+#: keystone/exception.py:193
+#, python-format
+msgid "Could not find trust, %(trust_id)s."
+msgstr ""
+
+#: keystone/exception.py:197
+#, python-format
+msgid "Could not find credential, %(credential_id)s."
+msgstr ""
+
+#: keystone/exception.py:201
+#, python-format
+msgid "Could not find version, %(version)s."
+msgstr ""
+
+#: keystone/exception.py:205
+#, python-format
+msgid "Conflict occurred attempting to store %(type)s. %(details)s"
+msgstr ""
+
+#: keystone/exception.py:212
+msgid "Request is too large."
+msgstr ""
+
+#: keystone/exception.py:218
+#, python-format
+msgid ""
+"An unexpected error prevented the server from fulfilling your request. "
+"%(exception)s"
+msgstr ""
+
+#: keystone/exception.py:225
+#, python-format
+msgid "Malformed endpoint URL (%(endpoint)s), see ERROR log for details."
+msgstr ""
+
+#: keystone/exception.py:230
+msgid "The action you have requested has not been implemented."
+msgstr ""
+
+#: keystone/exception.py:237
+#, python-format
+msgid "The Keystone paste configuration file %(config_file)s could not be found."
+msgstr ""
+
+#: keystone/test.py:117
+#, python-format
+msgid "Failed to checkout %s"
+msgstr ""
+
+#: keystone/assignment/core.py:529
+#, python-format
+msgid "Expected dict or list: %s"
+msgstr ""
+
+#: keystone/assignment/backends/kvs.py:138
+#: keystone/assignment/backends/sql.py:285
+#, python-format
+msgid "Cannot remove role that has not been granted, %s"
+msgstr ""
+
+#: keystone/assignment/backends/ldap.py:418
+#, python-format
+msgid "Role %s not found"
+msgstr ""
+
+#: keystone/assignment/backends/sql.py:114
+msgid "Inherited roles can only be assigned to domains"
+msgstr ""
+
+#: keystone/auth/controllers.py:71
+#, python-format
+msgid "Project is disabled: %s"
+msgstr ""
+
+#: keystone/auth/controllers.py:77 keystone/auth/plugins/password.py:38
+#, python-format
+msgid "Domain is disabled: %s"
+msgstr ""
+
+#: keystone/auth/controllers.py:83 keystone/auth/plugins/password.py:44
+#, python-format
+msgid "User is disabled: %s"
+msgstr ""
+
+#: keystone/auth/controllers.py:262
+msgid "Scoping to both domain and project is not allowed"
+msgstr ""
+
+#: keystone/auth/controllers.py:265
+msgid "Scoping to both domain and trust is not allowed"
+msgstr ""
+
+#: keystone/auth/controllers.py:268
+msgid "Scoping to both project and trust is not allowed"
+msgstr ""
+
+#: keystone/auth/controllers.py:353
+msgid "User not found"
+msgstr ""
+
+#: keystone/auth/plugins/external.py:36 keystone/auth/plugins/external.py:66
+msgid "No authenticated user"
+msgstr ""
+
+#: keystone/auth/plugins/external.py:49 keystone/auth/plugins/external.py:86
+#, python-format
+msgid "Unable to lookup user %s"
+msgstr ""
+
+#: keystone/auth/plugins/password.py:112
+msgid "Invalid username or password"
+msgstr ""
+
+#: keystone/catalog/core.py:38
+#, python-format
+msgid "Malformed endpoint %(url)s - unknown key %(keyerror)s"
+msgstr ""
+
+#: keystone/catalog/core.py:43
+#, python-format
+msgid ""
+"Malformed endpoint %(url)s - unknown key %(keyerror)s(are you missing "
+"brackets ?)"
+msgstr ""
+
+#: keystone/catalog/core.py:49
+#, python-format
+msgid ""
+"Malformed endpoint %s - incomplete format (are you "
+"missing a type notifier ?)"
+msgstr ""
+
+#: keystone/catalog/backends/templated.py:109
+#, python-format
+msgid "Unable to open template file %s"
+msgstr ""
+
+#: keystone/common/cms.py:26
+#, python-format
+msgid "Verify error: %s"
+msgstr ""
+
+#: keystone/common/cms.py:118
+msgid ""
+"Signing error: Unable to load certificate - ensure you've configured PKI "
+"with 'keystone-manage pki_setup'"
+msgstr ""
+
+#: keystone/common/cms.py:122
+#, python-format
+msgid "Signing error: %s"
+msgstr ""
+
+#: keystone/common/config.py:89
+#, python-format
+msgid "Unable to locate specified logging config file: %s"
+msgstr ""
+
+#: keystone/common/config.py:107
+msgid "Invalid syslog facility"
+msgstr ""
+
+#: keystone/common/controller.py:18
+#, python-format
+msgid "RBAC: Authorizing %(action)s(%(kwargs)s)"
+msgstr ""
+
+#: keystone/common/controller.py:25
+msgid "RBAC: Invalid token"
+msgstr ""
+
+#: keystone/common/controller.py:39 keystone/common/controller.py:60
+msgid "RBAC: Invalid user"
+msgstr ""
+
+#: keystone/common/controller.py:45
+msgid "RBAC: Proceeding without project"
+msgstr ""
+
+#: keystone/common/controller.py:65
+msgid "RBAC: Proceeding without tenant"
+msgstr ""
+
+#: keystone/common/controller.py:95 keystone/common/controller.py:146
+msgid "RBAC: Bypassing authorization"
+msgstr ""
+
+#: keystone/common/controller.py:104 keystone/common/controller.py:144
+msgid "RBAC: Authorization granted"
+msgstr ""
+
+#: keystone/common/controller.py:134
+#, python-format
+msgid "RBAC: Adding query filter params (%s)"
+msgstr ""
+
+#: keystone/common/controller.py:322
+msgid "Invalid token in normalize_domain_id"
+msgstr ""
+
+#: keystone/common/utils.py:233
+msgid ""
+"Error setting up the debug environment. Verify that the option --debug-"
+"url has the format <host>:<port> and that a debugger processes is "
+"listening on that port."
+msgstr ""
+
+#: keystone/common/wsgi.py:95
+msgid "No bind information present in token"
+msgstr ""
+
+#: keystone/common/wsgi.py:99
+#, python-format
+msgid "Named bind mode %s not in bind information"
+msgstr ""
+
+#: keystone/common/wsgi.py:105
+msgid "Kerberos credentials required and not present"
+msgstr ""
+
+#: keystone/common/wsgi.py:109
+msgid "Kerberos credentials do not match those in bind"
+msgstr ""
+
+#: keystone/common/wsgi.py:112
+msgid "Kerberos bind authentication successful"
+msgstr ""
+
+#: keystone/common/wsgi.py:115
+#, python-format
+msgid "Ignoring unknown bind for permissive mode: {%(bind_type)s: %(identifier)s}"
+msgstr ""
+
+#: keystone/common/wsgi.py:119
+#, python-format
+msgid "Couldn't verify unknown bind: {%(bind_type)s: %(identifier)s}"
+msgstr ""
+
+#: keystone/common/wsgi.py:211
+#, python-format
+msgid "arg_dict: %s"
+msgstr ""
+
+#: keystone/common/wsgi.py:243
+#, python-format
+msgid "Authorization failed. %(exception)s from %(remote_addr)s"
+msgstr ""
+
+#: keystone/common/wsgi.py:487
+msgid "The resource could not be found."
+msgstr ""
+
+#: keystone/common/environment/__init__.py:37
+#, python-format
+msgid "Environment configured as: %s"
+msgstr ""
+
+#: keystone/common/environment/eventlet_server.py:51
+#, python-format
+msgid "Starting %(arg0)s on %(host)s:%(port)s"
+msgstr ""
+
+#: keystone/common/environment/eventlet_server.py:113
+msgid "Server error"
+msgstr ""
+
+#: keystone/common/ldap/core.py:79
+#, python-format
+msgid "Invalid LDAP deref option: %s. Choose one of: "
+msgstr ""
+
+#: keystone/common/ldap/core.py:87
+#, python-format
+msgid "Invalid LDAP TLS certs option: %(option). Choose one of: %(options)s"
+msgstr ""
+
+#: keystone/common/ldap/core.py:99
+#, python-format
+msgid "Invalid LDAP scope: %(scope)s. Choose one of: %(options)s"
+msgstr ""
+
+#: keystone/common/ldap/core.py:189
+#, python-format
+msgid ""
+"Invalid additional attribute mapping: \"%s\". Format must be "
+"<ldap_attribute>:<keystone_attribute>"
+msgstr ""
+
+#: keystone/common/ldap/core.py:195
+#, python-format
+msgid ""
+"Invalid additional attribute mapping: \"%(item)s\". Value "
+"\"%(attr_map)s\" must use one of %(keys)s."
+msgstr ""
+
+#: keystone/common/ldap/core.py:279 keystone/identity/backends/kvs.py:177
+#: keystone/identity/backends/kvs.py:205
+#, python-format
+msgid "Duplicate name, %s."
+msgstr ""
+
+#: keystone/common/ldap/core.py:289 keystone/identity/backends/kvs.py:170
+#, python-format
+msgid "Duplicate ID, %s."
+msgstr ""
+
+#: keystone/common/ldap/core.py:294
+#, python-format
+msgid "LDAP %s create"
+msgstr ""
+
+#: keystone/common/ldap/core.py:372
+#, python-format
+msgid "LDAP %s update"
+msgstr ""
+
+#: keystone/common/ldap/core.py:405
+#, python-format
+msgid "LDAP %s delete"
+msgstr ""
+
+#: keystone/common/ldap/core.py:430
+#, python-format
+msgid "LDAP init: url=%s"
+msgstr ""
+
+#: keystone/common/ldap/core.py:431
+#, python-format
+msgid ""
+"LDAP init: use_tls=%(use_tls)s\n"
+"tls_cacertfile=%(tls_cacertfile)s\n"
+"tls_cacertdir=%(tls_cacertdir)s\n"
+"tls_req_cert=%(tls_req_cert)s\n"
+"tls_avail=%(tls_avail)s\n"
+msgstr ""
+
+#: keystone/common/ldap/core.py:450
+msgid "Invalid TLS / LDAPS combination"
+msgstr ""
+
+#: keystone/common/ldap/core.py:454
+#, python-format
+msgid "Invalid LDAP TLS_AVAIL option: %s. TLS not available"
+msgstr ""
+
+#: keystone/common/ldap/core.py:464
+#, python-format
+msgid "tls_cacertfile %s not found or is not a file"
+msgstr ""
+
+#: keystone/common/ldap/core.py:476
+#, python-format
+msgid "tls_cacertdir %s not found or is not a directory"
+msgstr ""
+
+#: keystone/common/ldap/core.py:483
+#, python-format
+msgid "LDAP TLS: invalid TLS_REQUIRE_CERT Option=%s"
+msgstr ""
+
+#: keystone/common/ldap/core.py:497
+#, python-format
+msgid "LDAP bind: dn=%s"
+msgstr ""
+
+#: keystone/common/ldap/core.py:508
+#, python-format
+msgid "LDAP add: dn=%(dn)s, attrs=%(attrs)s"
+msgstr ""
+
+#: keystone/common/ldap/core.py:514
+#, python-format
+msgid ""
+"LDAP search: dn=%(dn)s, scope=%(scope)s, query=%(query)s, "
+"attrs=%(attrlist)s"
+msgstr ""
+
+#: keystone/common/ldap/core.py:567
+msgid ""
+"LDAP Server does not support paging. Disable paging in keystone.conf to "
+"avoid this message."
+msgstr ""
+
+#: keystone/common/ldap/core.py:584
+#, python-format
+msgid "LDAP modify: dn=%(dn)s, modlist=%(modlist)s"
+msgstr ""
+
+#: keystone/common/ldap/core.py:590
+#, python-format
+msgid "LDAP delete: dn=%s"
+msgstr ""
+
+#: keystone/common/ldap/core.py:595
+#, python-format
+msgid "LDAP delete_ext: dn=%(dn)s, serverctrls=%(serverctrls)s"
+msgstr ""
+
+#: keystone/common/ldap/fakeldap.py:146
+#, python-format
+msgid "FakeLdap initialize url=%s"
+msgstr ""
+
+#: keystone/common/ldap/fakeldap.py:156
+#, python-format
+msgid "FakeLdap bind dn=%s"
+msgstr ""
+
+#: keystone/common/ldap/fakeldap.py:163
+#, python-format
+msgid "FakeLdap bind fail: dn=%s not found"
+msgstr ""
+
+#: keystone/common/ldap/fakeldap.py:170
+#, python-format
+msgid "FakeLdap bind fail: password for dn=%s not found"
+msgstr ""
+
+#: keystone/common/ldap/fakeldap.py:175
+#, python-format
+msgid "FakeLdap bind fail: password for dn=%s does not match"
+msgstr ""
+
+#: keystone/common/ldap/fakeldap.py:190
+#, python-format
+msgid "FakeLdap add item: dn=%(dn)s, attrs=%(attrs)s"
+msgstr ""
+
+#: keystone/common/ldap/fakeldap.py:193
+#, python-format
+msgid "FakeLdap add item failed: dn=%s is already in store."
+msgstr ""
+
+#: keystone/common/ldap/fakeldap.py:207 keystone/common/ldap/fakeldap.py:221
+#, python-format
+msgid "FakeLdap delete item: dn=%s"
+msgstr ""
+
+#: keystone/common/ldap/fakeldap.py:211 keystone/common/ldap/fakeldap.py:225
+#, python-format
+msgid "FakeLdap delete item failed: dn=%s not found."
+msgstr ""
+
+#: keystone/common/ldap/fakeldap.py:240
+#, python-format
+msgid "FakeLdap modify item: dn=%(dn)s attrs=%(attrs)s"
+msgstr ""
+
+#: keystone/common/ldap/fakeldap.py:245
+#, python-format
+msgid "FakeLdap modify item failed: dn=%s not found."
+msgstr ""
+
+#: keystone/common/ldap/fakeldap.py:262
+#, python-format
+msgid "FakeLdap modify item failed: item has no attribute \"%s\" to delete"
+msgstr ""
+
+#: keystone/common/ldap/fakeldap.py:273
+#, python-format
+msgid ""
+"FakeLdap modify item failed: item has no attribute \"%(k)s\" with value "
+"\"%(v)s\" to delete"
+msgstr ""
+
+#: keystone/common/ldap/fakeldap.py:279
+#, python-format
+msgid "FakeLdap modify item failed: unknown command %s"
+msgstr ""
+
+#: keystone/common/ldap/fakeldap.py:281
+#, python-format
+msgid "modify_s action %s not implemented"
+msgstr ""
+
+#: keystone/common/ldap/fakeldap.py:300
+#, python-format
+msgid "FakeLdap search at dn=%(dn)s scope=%(scope)s query=%(query)s"
+msgstr ""
+
+#: keystone/common/ldap/fakeldap.py:306
+msgid "FakeLdap search fail: dn not found for SCOPE_BASE"
+msgstr ""
+
+#: keystone/common/ldap/fakeldap.py:320
+#, python-format
+msgid "Search scope %s not implemented."
+msgstr ""
+
+#: keystone/common/sql/core.py:119
+msgid "Global engine callback raised."
+msgstr ""
+
+#: keystone/common/sql/core.py:233
+#, python-format
+msgid "Got mysql server has gone away: %s"
+msgstr ""
+
+#: keystone/common/sql/legacy.py:188
+#, python-format
+msgid "Cannot migrate EC2 credential: %s"
+msgstr ""
+
+#: keystone/common/sql/migration.py:47
+msgid "version should be an integer"
+msgstr ""
+
+#: keystone/common/sql/nova.py:65
+#, python-format
+msgid "Create tenant %s"
+msgstr ""
+
+#: keystone/common/sql/nova.py:82
+#, python-format
+msgid "Create user %s"
+msgstr ""
+
+#: keystone/common/sql/nova.py:91
+#, python-format
+msgid "Add user %(user_id)s to tenant %(tenant_id)s"
+msgstr ""
+
+#: keystone/common/sql/nova.py:100
+#, python-format
+msgid "Ignoring existing role %s"
+msgstr ""
+
+#: keystone/common/sql/nova.py:107
+#, python-format
+msgid "Create role %s"
+msgstr ""
+
+#: keystone/common/sql/nova.py:117
+#, python-format
+msgid "Assign role %(role_id)s to user %(user_id)s on tenant %(tenant_id)s"
+msgstr ""
+
+#: keystone/common/sql/nova.py:136
+#, python-format
+msgid "Creating ec2 cred for user %(user_id)s and tenant %(tenant_id)s"
+msgstr ""
+
+#: keystone/identity/controllers.py:952
+#, python-format
+msgid ""
+"Group %(group)s not found for role-assignment - %(target)s with Role: "
+"%(role)s"
+msgstr ""
+
+#: keystone/identity/backends/kvs.py:126 keystone/identity/backends/kvs.py:135
+msgid "User not found in group"
+msgstr ""
+
+#: keystone/identity/backends/ldap.py:189
+#, python-format
+msgid ""
+"Group member '%(user_dn)s' not found in '%(group_id)s'. The user should "
+"be removed from the group. The user will be ignored."
+msgstr ""
+
+#: keystone/identity/backends/ldap.py:334
+msgid "Changing Name not supported by LDAP"
+msgstr ""
+
+#: keystone/identity/backends/ldap.py:347
+#, python-format
+msgid "User %(user_id)s is already a member of group %(group_id)s"
+msgstr ""
+
+#: keystone/openstack/common/policy.py:394
+#, python-format
+msgid "Failed to understand rule %(rule)s"
+msgstr ""
+
+#: keystone/openstack/common/policy.py:404
+#, python-format
+msgid "No handler for matches of kind %s"
+msgstr ""
+
+#: keystone/openstack/common/policy.py:679
+#, python-format
+msgid "Failed to understand rule %(rule)r"
+msgstr ""
+
+#: keystone/openstack/common/crypto/utils.py:29
+msgid "An unknown error occurred in crypto utils."
+msgstr ""
+
+#: keystone/openstack/common/crypto/utils.py:36
+#, python-format
+msgid "Block size of %(given)d is too big, max = %(maximum)d"
+msgstr ""
+
+#: keystone/openstack/common/crypto/utils.py:45
+#, python-format
+msgid "Length of %(given)d is too long, max = %(maximum)d"
+msgstr ""
+
+#: keystone/policy/backends/rules.py:93
+#, python-format
+msgid "enforce %(action)s: %(credentials)s"
+msgstr ""
+
+#: keystone/token/controllers.py:378
+#, python-format
+msgid "User %(u_id)s is unauthorized for tenant %(t_id)s"
+msgstr ""
+
+#: keystone/token/controllers.py:395 keystone/token/controllers.py:398
+msgid "Token does not belong to specified tenant."
+msgstr ""
+
+#: keystone/token/provider.py:76
+msgid ""
+"keystone.conf [signing] token_format (deprecated) conflicts with "
+"keystone.conf [token] provider"
+msgstr ""
+
+#: keystone/token/provider.py:84
+msgid ""
+"keystone.conf [signing] token_format is deprecated in favor of "
+"keystone.conf [token] provider"
+msgstr ""
+
+#: keystone/token/provider.py:94
+msgid ""
+"Unrecognized keystone.conf [signing] token_format: expected either 'UUID'"
+" or 'PKI'"
+msgstr ""
+
+#: keystone/token/backends/kvs.py:37
+msgid ""
+"kvs token backend is DEPRECATED. Use keystone.token.backends.sql or "
+"keystone.token.backend.memcache instead."
+msgstr ""
+
+#: keystone/token/backends/memcache.py:144
+#, python-format
+msgid ""
+"Successful set of token-index-list for user-key \"%(user_key)s\", "
+"#%(count)d records"
+msgstr ""
+
+#: keystone/token/backends/memcache.py:154
+#, python-format
+msgid ""
+"Failed to set token-index-list for user-key \"%(user_key)s\". Attempt "
+"%(cas_retry)d of %(cas_retry_max)d"
+msgstr ""
+
+#: keystone/token/backends/memcache.py:163
+msgid "Unable to add token user list"
+msgstr ""
+
+#: keystone/token/backends/memcache.py:172
+msgid "Unable to add token to revocation list."
+msgstr ""
+
+#: keystone/token/providers/pki.py:43
+msgid "Unable to sign token."
+msgstr ""
+
+#: keystone/token/providers/uuid.py:193
+msgid "Trustor is disabled."
+msgstr ""
+
+#: keystone/token/providers/uuid.py:238
+msgid "Trustee has no delegated roles."
+msgstr ""
+
+#: keystone/token/providers/uuid.py:247
+#, python-format
+msgid "User %(user_id)s has no access to project %(project_id)s"
+msgstr ""
+
+#: keystone/token/providers/uuid.py:252
+#, python-format
+msgid "User %(user_id)s has no access to domain %(domain_id)s"
+msgstr ""
+
+#: keystone/token/providers/uuid.py:303
+msgid "User is not a trustee."
+msgstr ""
+
+#: keystone/token/providers/uuid.py:457
+msgid "Non-default domain is not supported"
+msgstr ""
+
+#: keystone/token/providers/uuid.py:465
+msgid "Domain scoped token is not supported"
+msgstr ""
+
+#: keystone/token/providers/uuid.py:528
+msgid "Failed to validate token"
+msgstr ""
+
+#: keystone/token/providers/uuid.py:566 keystone/token/providers/uuid.py:576
+msgid "Failed to verify token"
+msgstr ""
+
diff --git a/keystone/locale/pl_PL/LC_MESSAGES/keystone.po b/keystone/locale/pl_PL/LC_MESSAGES/keystone.po
index 960d8df6..1971b675 100644
--- a/keystone/locale/pl_PL/LC_MESSAGES/keystone.po
+++ b/keystone/locale/pl_PL/LC_MESSAGES/keystone.po
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Keystone\n"
"Report-Msgid-Bugs-To: https://bugs.launchpad.net/keystone\n"
-"POT-Creation-Date: 2013-07-11 17:05+0000\n"
+"POT-Creation-Date: 2013-08-02 17:05+0000\n"
"PO-Revision-Date: 2013-06-28 06:06+0000\n"
"Last-Translator: daisy.ycguo <daisy.ycguo@gmail.com>\n"
"Language-Team: Polish (Poland) "
@@ -17,7 +17,7 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"Generated-By: Babel 0.9.6\n"
+"Generated-By: Babel 1.3\n"
#: keystone/clean.py:23
#, python-format
@@ -39,78 +39,224 @@ msgstr ""
msgid "%(property_name)s is not a %(display_expected_type)s"
msgstr ""
-#: keystone/test.py:106
+#: keystone/exception.py:48
+msgid "missing exception kwargs (programmer error)"
+msgstr ""
+
+#: keystone/exception.py:65
+#, python-format
+msgid ""
+"Expecting to find %(attribute)s in %(target)s. The server could not "
+"comply with the request since it is either malformed or otherwise "
+"incorrect. The client is assumed to be in error."
+msgstr ""
+
+#: keystone/exception.py:74
+#, python-format
+msgid ""
+"String length exceeded.The length of string '%(string)s' exceeded the "
+"limit of column %(type)s(CHAR(%(length)d))."
+msgstr ""
+
+#: keystone/exception.py:80
+#, python-format
+msgid ""
+"Request attribute %(attribute)s must be less than or equal to %(size)i. "
+"The server could not comply with the request because the attribute size "
+"is invalid (too large). The client is assumed to be in error."
+msgstr ""
+
+#: keystone/exception.py:101
+msgid "The request you have made requires authentication."
+msgstr ""
+
+#: keystone/exception.py:107
+msgid "Authentication plugin error."
+msgstr ""
+
+#: keystone/exception.py:115
+msgid "Attempted to authenticate with an unsupported method."
+msgstr ""
+
+#: keystone/exception.py:123
+msgid "Additional authentications steps required."
+msgstr ""
+
+#: keystone/exception.py:131
+msgid "You are not authorized to perform the requested action."
+msgstr ""
+
+#: keystone/exception.py:138
+#, python-format
+msgid "You are not authorized to perform the requested action, %(action)s."
+msgstr ""
+
+#: keystone/exception.py:143
+#, python-format
+msgid "Could not find, %(target)s."
+msgstr ""
+
+#: keystone/exception.py:149
+#, python-format
+msgid "Could not find endpoint, %(endpoint_id)s."
+msgstr ""
+
+#: keystone/exception.py:156
+msgid "An unhandled exception has occurred: Could not find metadata."
+msgstr ""
+
+#: keystone/exception.py:161
+#, python-format
+msgid "Could not find policy, %(policy_id)s."
+msgstr ""
+
+#: keystone/exception.py:165
+#, python-format
+msgid "Could not find role, %(role_id)s."
+msgstr ""
+
+#: keystone/exception.py:169
+#, python-format
+msgid "Could not find service, %(service_id)s."
+msgstr ""
+
+#: keystone/exception.py:173
+#, python-format
+msgid "Could not find domain, %(domain_id)s."
+msgstr ""
+
+#: keystone/exception.py:177
+#, python-format
+msgid "Could not find project, %(project_id)s."
+msgstr ""
+
+#: keystone/exception.py:181
+#, python-format
+msgid "Could not find token, %(token_id)s."
+msgstr ""
+
+#: keystone/exception.py:185
+#, python-format
+msgid "Could not find user, %(user_id)s."
+msgstr ""
+
+#: keystone/exception.py:189
+#, python-format
+msgid "Could not find group, %(group_id)s."
+msgstr ""
+
+#: keystone/exception.py:193
+#, python-format
+msgid "Could not find trust, %(trust_id)s."
+msgstr ""
+
+#: keystone/exception.py:197
+#, python-format
+msgid "Could not find credential, %(credential_id)s."
+msgstr ""
+
+#: keystone/exception.py:201
+#, python-format
+msgid "Could not find version, %(version)s."
+msgstr ""
+
+#: keystone/exception.py:205
+#, python-format
+msgid "Conflict occurred attempting to store %(type)s. %(details)s"
+msgstr ""
+
+#: keystone/exception.py:212
+msgid "Request is too large."
+msgstr ""
+
+#: keystone/exception.py:218
+#, python-format
+msgid ""
+"An unexpected error prevented the server from fulfilling your request. "
+"%(exception)s"
+msgstr ""
+
+#: keystone/exception.py:225
+#, python-format
+msgid "Malformed endpoint URL (%(endpoint)s), see ERROR log for details."
+msgstr ""
+
+#: keystone/exception.py:230
+msgid "The action you have requested has not been implemented."
+msgstr ""
+
+#: keystone/exception.py:237
+#, python-format
+msgid "The Keystone paste configuration file %(config_file)s could not be found."
+msgstr ""
+
+#: keystone/test.py:117
#, python-format
msgid "Failed to checkout %s"
msgstr ""
-#: keystone/assignment/backends/ldap.py:110
+#: keystone/assignment/core.py:529
#, python-format
msgid "Expected dict or list: %s"
msgstr ""
-#: keystone/assignment/backends/ldap.py:456
-#: keystone/identity/backends/ldap.py:433
+#: keystone/assignment/backends/kvs.py:138
+#: keystone/assignment/backends/sql.py:285
#, python-format
-msgid "Role %s not found"
+msgid "Cannot remove role that has not been granted, %s"
msgstr ""
-#: keystone/assignment/backends/sql.py:244
+#: keystone/assignment/backends/ldap.py:418
#, python-format
-msgid "Cannot remove role that has not been granted, %s"
+msgid "Role %s not found"
msgstr ""
-#: keystone/auth/controllers.py:72
+#: keystone/assignment/backends/sql.py:114
+msgid "Inherited roles can only be assigned to domains"
+msgstr ""
+
+#: keystone/auth/controllers.py:71
#, python-format
msgid "Project is disabled: %s"
msgstr ""
-#: keystone/auth/controllers.py:78 keystone/auth/plugins/password.py:38
+#: keystone/auth/controllers.py:77 keystone/auth/plugins/password.py:38
#, python-format
msgid "Domain is disabled: %s"
msgstr ""
-#: keystone/auth/controllers.py:84 keystone/auth/plugins/password.py:44
+#: keystone/auth/controllers.py:83 keystone/auth/plugins/password.py:44
#, python-format
msgid "User is disabled: %s"
msgstr ""
-#: keystone/auth/controllers.py:259
+#: keystone/auth/controllers.py:262
msgid "Scoping to both domain and project is not allowed"
msgstr ""
-#: keystone/auth/controllers.py:262
+#: keystone/auth/controllers.py:265
msgid "Scoping to both domain and trust is not allowed"
msgstr ""
-#: keystone/auth/controllers.py:265
+#: keystone/auth/controllers.py:268
msgid "Scoping to both project and trust is not allowed"
msgstr ""
-#: keystone/auth/controllers.py:325
-#, python-format
-msgid "Unable to lookup user %s"
-msgstr ""
-
-#: keystone/auth/controllers.py:355
+#: keystone/auth/controllers.py:353
msgid "User not found"
msgstr ""
-#: keystone/auth/token_factory.py:79
-msgid "User have no access to project"
-msgstr ""
-
-#: keystone/auth/token_factory.py:94
-msgid "User have no access to domain"
+#: keystone/auth/plugins/external.py:36 keystone/auth/plugins/external.py:66
+msgid "No authenticated user"
msgstr ""
-#: keystone/auth/token_factory.py:311 keystone/token/controllers.py:119
-msgid "Unable to sign token."
+#: keystone/auth/plugins/external.py:49 keystone/auth/plugins/external.py:86
+#, python-format
+msgid "Unable to lookup user %s"
msgstr ""
-#: keystone/auth/token_factory.py:314 keystone/token/controllers.py:122
-#, python-format
-msgid "Invalid value for token_format: %s. Allowed values are PKI or UUID."
+#: keystone/auth/plugins/password.py:112
+msgid "Invalid username or password"
msgstr ""
#: keystone/catalog/core.py:38
@@ -171,32 +317,32 @@ msgstr ""
msgid "RBAC: Invalid token"
msgstr ""
-#: keystone/common/controller.py:35 keystone/common/controller.py:56
+#: keystone/common/controller.py:39 keystone/common/controller.py:60
msgid "RBAC: Invalid user"
msgstr ""
-#: keystone/common/controller.py:41
+#: keystone/common/controller.py:45
msgid "RBAC: Proceeding without project"
msgstr ""
-#: keystone/common/controller.py:61
+#: keystone/common/controller.py:65
msgid "RBAC: Proceeding without tenant"
msgstr ""
-#: keystone/common/controller.py:91 keystone/common/controller.py:142
+#: keystone/common/controller.py:95 keystone/common/controller.py:146
msgid "RBAC: Bypassing authorization"
msgstr ""
-#: keystone/common/controller.py:100 keystone/common/controller.py:140
+#: keystone/common/controller.py:104 keystone/common/controller.py:144
msgid "RBAC: Authorization granted"
msgstr ""
-#: keystone/common/controller.py:130
+#: keystone/common/controller.py:134
#, python-format
msgid "RBAC: Adding query filter params (%s)"
msgstr ""
-#: keystone/common/controller.py:318
+#: keystone/common/controller.py:322
msgid "Invalid token in normalize_domain_id"
msgstr ""
@@ -207,17 +353,48 @@ msgid ""
"listening on that port."
msgstr ""
-#: keystone/common/wsgi.py:162
+#: keystone/common/wsgi.py:95
+msgid "No bind information present in token"
+msgstr ""
+
+#: keystone/common/wsgi.py:99
+#, python-format
+msgid "Named bind mode %s not in bind information"
+msgstr ""
+
+#: keystone/common/wsgi.py:105
+msgid "Kerberos credentials required and not present"
+msgstr ""
+
+#: keystone/common/wsgi.py:109
+msgid "Kerberos credentials do not match those in bind"
+msgstr ""
+
+#: keystone/common/wsgi.py:112
+msgid "Kerberos bind authentication successful"
+msgstr ""
+
+#: keystone/common/wsgi.py:115
+#, python-format
+msgid "Ignoring unknown bind for permissive mode: {%(bind_type)s: %(identifier)s}"
+msgstr ""
+
+#: keystone/common/wsgi.py:119
+#, python-format
+msgid "Couldn't verify unknown bind: {%(bind_type)s: %(identifier)s}"
+msgstr ""
+
+#: keystone/common/wsgi.py:211
#, python-format
msgid "arg_dict: %s"
msgstr ""
-#: keystone/common/wsgi.py:188
+#: keystone/common/wsgi.py:243
#, python-format
msgid "Authorization failed. %(exception)s from %(remote_addr)s"
msgstr ""
-#: keystone/common/wsgi.py:431
+#: keystone/common/wsgi.py:487
msgid "The resource could not be found."
msgstr ""
@@ -458,11 +635,11 @@ msgstr ""
msgid "Search scope %s not implemented."
msgstr ""
-#: keystone/common/sql/core.py:126
+#: keystone/common/sql/core.py:119
msgid "Global engine callback raised."
msgstr ""
-#: keystone/common/sql/core.py:240
+#: keystone/common/sql/core.py:233
#, python-format
msgid "Got mysql server has gone away: %s"
msgstr ""
@@ -511,7 +688,7 @@ msgstr ""
msgid "Creating ec2 cred for user %(user_id)s and tenant %(tenant_id)s"
msgstr ""
-#: keystone/identity/controllers.py:878
+#: keystone/identity/controllers.py:952
#, python-format
msgid ""
"Group %(group)s not found for role-assignment - %(target)s with Role: "
@@ -522,18 +699,18 @@ msgstr ""
msgid "User not found in group"
msgstr ""
-#: keystone/identity/backends/ldap.py:192
+#: keystone/identity/backends/ldap.py:189
#, python-format
msgid ""
"Group member '%(user_dn)s' not found in '%(group_id)s'. The user should "
"be removed from the group. The user will be ignored."
msgstr ""
-#: keystone/identity/backends/ldap.py:621
+#: keystone/identity/backends/ldap.py:334
msgid "Changing Name not supported by LDAP"
msgstr ""
-#: keystone/identity/backends/ldap.py:634
+#: keystone/identity/backends/ldap.py:347
#, python-format
msgid "User %(user_id)s is already a member of group %(group_id)s"
msgstr ""
@@ -553,26 +730,56 @@ msgstr ""
msgid "Failed to understand rule %(rule)r"
msgstr ""
+#: keystone/openstack/common/crypto/utils.py:29
+msgid "An unknown error occurred in crypto utils."
+msgstr ""
+
+#: keystone/openstack/common/crypto/utils.py:36
+#, python-format
+msgid "Block size of %(given)d is too big, max = %(maximum)d"
+msgstr ""
+
+#: keystone/openstack/common/crypto/utils.py:45
+#, python-format
+msgid "Length of %(given)d is too long, max = %(maximum)d"
+msgstr ""
+
#: keystone/policy/backends/rules.py:93
#, python-format
msgid "enforce %(action)s: %(credentials)s"
msgstr ""
-#: keystone/token/controllers.py:396
+#: keystone/token/controllers.py:378
#, python-format
msgid "User %(u_id)s is unauthorized for tenant %(t_id)s"
msgstr ""
-#: keystone/token/controllers.py:413 keystone/token/controllers.py:416
+#: keystone/token/controllers.py:395 keystone/token/controllers.py:398
msgid "Token does not belong to specified tenant."
msgstr ""
-#: keystone/token/controllers.py:423
-msgid "Non-default domain is not supported"
+#: keystone/token/provider.py:76
+msgid ""
+"keystone.conf [signing] token_format (deprecated) conflicts with "
+"keystone.conf [token] provider"
msgstr ""
-#: keystone/token/controllers.py:431
-msgid "Domain scoped token is not supported"
+#: keystone/token/provider.py:84
+msgid ""
+"keystone.conf [signing] token_format is deprecated in favor of "
+"keystone.conf [token] provider"
+msgstr ""
+
+#: keystone/token/provider.py:94
+msgid ""
+"Unrecognized keystone.conf [signing] token_format: expected either 'UUID'"
+" or 'PKI'"
+msgstr ""
+
+#: keystone/token/backends/kvs.py:37
+msgid ""
+"kvs token backend is DEPRECATED. Use keystone.token.backends.sql or "
+"keystone.token.backend.memcache instead."
msgstr ""
#: keystone/token/backends/memcache.py:144
@@ -597,3 +804,54 @@ msgstr ""
msgid "Unable to add token to revocation list."
msgstr ""
+#: keystone/token/providers/pki.py:43
+msgid "Unable to sign token."
+msgstr ""
+
+#: keystone/token/providers/uuid.py:193
+msgid "Trustor is disabled."
+msgstr ""
+
+#: keystone/token/providers/uuid.py:238
+msgid "Trustee has no delegated roles."
+msgstr ""
+
+#: keystone/token/providers/uuid.py:247
+#, python-format
+msgid "User %(user_id)s has no access to project %(project_id)s"
+msgstr ""
+
+#: keystone/token/providers/uuid.py:252
+#, python-format
+msgid "User %(user_id)s has no access to domain %(domain_id)s"
+msgstr ""
+
+#: keystone/token/providers/uuid.py:303
+msgid "User is not a trustee."
+msgstr ""
+
+#: keystone/token/providers/uuid.py:457
+msgid "Non-default domain is not supported"
+msgstr ""
+
+#: keystone/token/providers/uuid.py:465
+msgid "Domain scoped token is not supported"
+msgstr ""
+
+#: keystone/token/providers/uuid.py:528
+msgid "Failed to validate token"
+msgstr ""
+
+#: keystone/token/providers/uuid.py:566 keystone/token/providers/uuid.py:576
+msgid "Failed to verify token"
+msgstr ""
+
+#~ msgid "User have no access to project"
+#~ msgstr ""
+
+#~ msgid "User have no access to domain"
+#~ msgstr ""
+
+#~ msgid "Invalid value for token_format: %s. Allowed values are PKI or UUID."
+#~ msgstr ""
+
diff --git a/keystone/locale/pt/LC_MESSAGES/keystone.po b/keystone/locale/pt/LC_MESSAGES/keystone.po
new file mode 100644
index 00000000..7f09b091
--- /dev/null
+++ b/keystone/locale/pt/LC_MESSAGES/keystone.po
@@ -0,0 +1,847 @@
+# Portuguese translations for keystone.
+# Copyright (C) 2013 ORGANIZATION
+# This file is distributed under the same license as the keystone project.
+#
+# Translators:
+msgid ""
+msgstr ""
+"Project-Id-Version: Keystone\n"
+"Report-Msgid-Bugs-To: https://bugs.launchpad.net/keystone\n"
+"POT-Creation-Date: 2013-08-02 17:05+0000\n"
+"PO-Revision-Date: 2013-07-29 22:01+0000\n"
+"Last-Translator: openstackjenkins <jenkins@openstack.org>\n"
+"Language-Team: Portuguese "
+"(http://www.transifex.com/projects/p/openstack/language/pt/)\n"
+"Plural-Forms: nplurals=2; plural=(n != 1)\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=utf-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Generated-By: Babel 1.3\n"
+
+#: keystone/clean.py:23
+#, python-format
+msgid "%s cannot be empty."
+msgstr ""
+
+#: keystone/clean.py:25
+#, python-format
+msgid "%(property_name)s cannot be less than %(min_length)s characters."
+msgstr ""
+
+#: keystone/clean.py:29
+#, python-format
+msgid "%(property_name)s should not be greater than %(max_length)s characters."
+msgstr ""
+
+#: keystone/clean.py:36
+#, python-format
+msgid "%(property_name)s is not a %(display_expected_type)s"
+msgstr ""
+
+#: keystone/exception.py:48
+msgid "missing exception kwargs (programmer error)"
+msgstr ""
+
+#: keystone/exception.py:65
+#, python-format
+msgid ""
+"Expecting to find %(attribute)s in %(target)s. The server could not "
+"comply with the request since it is either malformed or otherwise "
+"incorrect. The client is assumed to be in error."
+msgstr ""
+
+#: keystone/exception.py:74
+#, python-format
+msgid ""
+"String length exceeded.The length of string '%(string)s' exceeded the "
+"limit of column %(type)s(CHAR(%(length)d))."
+msgstr ""
+
+#: keystone/exception.py:80
+#, python-format
+msgid ""
+"Request attribute %(attribute)s must be less than or equal to %(size)i. "
+"The server could not comply with the request because the attribute size "
+"is invalid (too large). The client is assumed to be in error."
+msgstr ""
+
+#: keystone/exception.py:101
+msgid "The request you have made requires authentication."
+msgstr ""
+
+#: keystone/exception.py:107
+msgid "Authentication plugin error."
+msgstr ""
+
+#: keystone/exception.py:115
+msgid "Attempted to authenticate with an unsupported method."
+msgstr ""
+
+#: keystone/exception.py:123
+msgid "Additional authentications steps required."
+msgstr ""
+
+#: keystone/exception.py:131
+msgid "You are not authorized to perform the requested action."
+msgstr ""
+
+#: keystone/exception.py:138
+#, python-format
+msgid "You are not authorized to perform the requested action, %(action)s."
+msgstr ""
+
+#: keystone/exception.py:143
+#, python-format
+msgid "Could not find, %(target)s."
+msgstr ""
+
+#: keystone/exception.py:149
+#, python-format
+msgid "Could not find endpoint, %(endpoint_id)s."
+msgstr ""
+
+#: keystone/exception.py:156
+msgid "An unhandled exception has occurred: Could not find metadata."
+msgstr ""
+
+#: keystone/exception.py:161
+#, python-format
+msgid "Could not find policy, %(policy_id)s."
+msgstr ""
+
+#: keystone/exception.py:165
+#, python-format
+msgid "Could not find role, %(role_id)s."
+msgstr ""
+
+#: keystone/exception.py:169
+#, python-format
+msgid "Could not find service, %(service_id)s."
+msgstr ""
+
+#: keystone/exception.py:173
+#, python-format
+msgid "Could not find domain, %(domain_id)s."
+msgstr ""
+
+#: keystone/exception.py:177
+#, python-format
+msgid "Could not find project, %(project_id)s."
+msgstr ""
+
+#: keystone/exception.py:181
+#, python-format
+msgid "Could not find token, %(token_id)s."
+msgstr ""
+
+#: keystone/exception.py:185
+#, python-format
+msgid "Could not find user, %(user_id)s."
+msgstr ""
+
+#: keystone/exception.py:189
+#, python-format
+msgid "Could not find group, %(group_id)s."
+msgstr ""
+
+#: keystone/exception.py:193
+#, python-format
+msgid "Could not find trust, %(trust_id)s."
+msgstr ""
+
+#: keystone/exception.py:197
+#, python-format
+msgid "Could not find credential, %(credential_id)s."
+msgstr ""
+
+#: keystone/exception.py:201
+#, python-format
+msgid "Could not find version, %(version)s."
+msgstr ""
+
+#: keystone/exception.py:205
+#, python-format
+msgid "Conflict occurred attempting to store %(type)s. %(details)s"
+msgstr ""
+
+#: keystone/exception.py:212
+msgid "Request is too large."
+msgstr ""
+
+#: keystone/exception.py:218
+#, python-format
+msgid ""
+"An unexpected error prevented the server from fulfilling your request. "
+"%(exception)s"
+msgstr ""
+
+#: keystone/exception.py:225
+#, python-format
+msgid "Malformed endpoint URL (%(endpoint)s), see ERROR log for details."
+msgstr ""
+
+#: keystone/exception.py:230
+msgid "The action you have requested has not been implemented."
+msgstr ""
+
+#: keystone/exception.py:237
+#, python-format
+msgid "The Keystone paste configuration file %(config_file)s could not be found."
+msgstr ""
+
+#: keystone/test.py:117
+#, python-format
+msgid "Failed to checkout %s"
+msgstr ""
+
+#: keystone/assignment/core.py:529
+#, python-format
+msgid "Expected dict or list: %s"
+msgstr ""
+
+#: keystone/assignment/backends/kvs.py:138
+#: keystone/assignment/backends/sql.py:285
+#, python-format
+msgid "Cannot remove role that has not been granted, %s"
+msgstr ""
+
+#: keystone/assignment/backends/ldap.py:418
+#, python-format
+msgid "Role %s not found"
+msgstr ""
+
+#: keystone/assignment/backends/sql.py:114
+msgid "Inherited roles can only be assigned to domains"
+msgstr ""
+
+#: keystone/auth/controllers.py:71
+#, python-format
+msgid "Project is disabled: %s"
+msgstr ""
+
+#: keystone/auth/controllers.py:77 keystone/auth/plugins/password.py:38
+#, python-format
+msgid "Domain is disabled: %s"
+msgstr ""
+
+#: keystone/auth/controllers.py:83 keystone/auth/plugins/password.py:44
+#, python-format
+msgid "User is disabled: %s"
+msgstr ""
+
+#: keystone/auth/controllers.py:262
+msgid "Scoping to both domain and project is not allowed"
+msgstr ""
+
+#: keystone/auth/controllers.py:265
+msgid "Scoping to both domain and trust is not allowed"
+msgstr ""
+
+#: keystone/auth/controllers.py:268
+msgid "Scoping to both project and trust is not allowed"
+msgstr ""
+
+#: keystone/auth/controllers.py:353
+msgid "User not found"
+msgstr ""
+
+#: keystone/auth/plugins/external.py:36 keystone/auth/plugins/external.py:66
+msgid "No authenticated user"
+msgstr ""
+
+#: keystone/auth/plugins/external.py:49 keystone/auth/plugins/external.py:86
+#, python-format
+msgid "Unable to lookup user %s"
+msgstr ""
+
+#: keystone/auth/plugins/password.py:112
+msgid "Invalid username or password"
+msgstr ""
+
+#: keystone/catalog/core.py:38
+#, python-format
+msgid "Malformed endpoint %(url)s - unknown key %(keyerror)s"
+msgstr ""
+
+#: keystone/catalog/core.py:43
+#, python-format
+msgid ""
+"Malformed endpoint %(url)s - unknown key %(keyerror)s(are you missing "
+"brackets ?)"
+msgstr ""
+
+#: keystone/catalog/core.py:49
+#, python-format
+msgid ""
+"Malformed endpoint %s - incomplete format (are you "
+"missing a type notifier ?)"
+msgstr ""
+
+#: keystone/catalog/backends/templated.py:109
+#, python-format
+msgid "Unable to open template file %s"
+msgstr ""
+
+#: keystone/common/cms.py:26
+#, python-format
+msgid "Verify error: %s"
+msgstr ""
+
+#: keystone/common/cms.py:118
+msgid ""
+"Signing error: Unable to load certificate - ensure you've configured PKI "
+"with 'keystone-manage pki_setup'"
+msgstr ""
+
+#: keystone/common/cms.py:122
+#, python-format
+msgid "Signing error: %s"
+msgstr ""
+
+#: keystone/common/config.py:89
+#, python-format
+msgid "Unable to locate specified logging config file: %s"
+msgstr ""
+
+#: keystone/common/config.py:107
+msgid "Invalid syslog facility"
+msgstr ""
+
+#: keystone/common/controller.py:18
+#, python-format
+msgid "RBAC: Authorizing %(action)s(%(kwargs)s)"
+msgstr ""
+
+#: keystone/common/controller.py:25
+msgid "RBAC: Invalid token"
+msgstr ""
+
+#: keystone/common/controller.py:39 keystone/common/controller.py:60
+msgid "RBAC: Invalid user"
+msgstr ""
+
+#: keystone/common/controller.py:45
+msgid "RBAC: Proceeding without project"
+msgstr ""
+
+#: keystone/common/controller.py:65
+msgid "RBAC: Proceeding without tenant"
+msgstr ""
+
+#: keystone/common/controller.py:95 keystone/common/controller.py:146
+msgid "RBAC: Bypassing authorization"
+msgstr ""
+
+#: keystone/common/controller.py:104 keystone/common/controller.py:144
+msgid "RBAC: Authorization granted"
+msgstr ""
+
+#: keystone/common/controller.py:134
+#, python-format
+msgid "RBAC: Adding query filter params (%s)"
+msgstr ""
+
+#: keystone/common/controller.py:322
+msgid "Invalid token in normalize_domain_id"
+msgstr ""
+
+#: keystone/common/utils.py:233
+msgid ""
+"Error setting up the debug environment. Verify that the option --debug-"
+"url has the format <host>:<port> and that a debugger processes is "
+"listening on that port."
+msgstr ""
+
+#: keystone/common/wsgi.py:95
+msgid "No bind information present in token"
+msgstr ""
+
+#: keystone/common/wsgi.py:99
+#, python-format
+msgid "Named bind mode %s not in bind information"
+msgstr ""
+
+#: keystone/common/wsgi.py:105
+msgid "Kerberos credentials required and not present"
+msgstr ""
+
+#: keystone/common/wsgi.py:109
+msgid "Kerberos credentials do not match those in bind"
+msgstr ""
+
+#: keystone/common/wsgi.py:112
+msgid "Kerberos bind authentication successful"
+msgstr ""
+
+#: keystone/common/wsgi.py:115
+#, python-format
+msgid "Ignoring unknown bind for permissive mode: {%(bind_type)s: %(identifier)s}"
+msgstr ""
+
+#: keystone/common/wsgi.py:119
+#, python-format
+msgid "Couldn't verify unknown bind: {%(bind_type)s: %(identifier)s}"
+msgstr ""
+
+#: keystone/common/wsgi.py:211
+#, python-format
+msgid "arg_dict: %s"
+msgstr ""
+
+#: keystone/common/wsgi.py:243
+#, python-format
+msgid "Authorization failed. %(exception)s from %(remote_addr)s"
+msgstr ""
+
+#: keystone/common/wsgi.py:487
+msgid "The resource could not be found."
+msgstr ""
+
+#: keystone/common/environment/__init__.py:37
+#, python-format
+msgid "Environment configured as: %s"
+msgstr ""
+
+#: keystone/common/environment/eventlet_server.py:51
+#, python-format
+msgid "Starting %(arg0)s on %(host)s:%(port)s"
+msgstr ""
+
+#: keystone/common/environment/eventlet_server.py:113
+msgid "Server error"
+msgstr ""
+
+#: keystone/common/ldap/core.py:79
+#, python-format
+msgid "Invalid LDAP deref option: %s. Choose one of: "
+msgstr ""
+
+#: keystone/common/ldap/core.py:87
+#, python-format
+msgid "Invalid LDAP TLS certs option: %(option). Choose one of: %(options)s"
+msgstr ""
+
+#: keystone/common/ldap/core.py:99
+#, python-format
+msgid "Invalid LDAP scope: %(scope)s. Choose one of: %(options)s"
+msgstr ""
+
+#: keystone/common/ldap/core.py:189
+#, python-format
+msgid ""
+"Invalid additional attribute mapping: \"%s\". Format must be "
+"<ldap_attribute>:<keystone_attribute>"
+msgstr ""
+
+#: keystone/common/ldap/core.py:195
+#, python-format
+msgid ""
+"Invalid additional attribute mapping: \"%(item)s\". Value "
+"\"%(attr_map)s\" must use one of %(keys)s."
+msgstr ""
+
+#: keystone/common/ldap/core.py:279 keystone/identity/backends/kvs.py:177
+#: keystone/identity/backends/kvs.py:205
+#, python-format
+msgid "Duplicate name, %s."
+msgstr ""
+
+#: keystone/common/ldap/core.py:289 keystone/identity/backends/kvs.py:170
+#, python-format
+msgid "Duplicate ID, %s."
+msgstr ""
+
+#: keystone/common/ldap/core.py:294
+#, python-format
+msgid "LDAP %s create"
+msgstr ""
+
+#: keystone/common/ldap/core.py:372
+#, python-format
+msgid "LDAP %s update"
+msgstr ""
+
+#: keystone/common/ldap/core.py:405
+#, python-format
+msgid "LDAP %s delete"
+msgstr ""
+
+#: keystone/common/ldap/core.py:430
+#, python-format
+msgid "LDAP init: url=%s"
+msgstr ""
+
+#: keystone/common/ldap/core.py:431
+#, python-format
+msgid ""
+"LDAP init: use_tls=%(use_tls)s\n"
+"tls_cacertfile=%(tls_cacertfile)s\n"
+"tls_cacertdir=%(tls_cacertdir)s\n"
+"tls_req_cert=%(tls_req_cert)s\n"
+"tls_avail=%(tls_avail)s\n"
+msgstr ""
+
+#: keystone/common/ldap/core.py:450
+msgid "Invalid TLS / LDAPS combination"
+msgstr ""
+
+#: keystone/common/ldap/core.py:454
+#, python-format
+msgid "Invalid LDAP TLS_AVAIL option: %s. TLS not available"
+msgstr ""
+
+#: keystone/common/ldap/core.py:464
+#, python-format
+msgid "tls_cacertfile %s not found or is not a file"
+msgstr ""
+
+#: keystone/common/ldap/core.py:476
+#, python-format
+msgid "tls_cacertdir %s not found or is not a directory"
+msgstr ""
+
+#: keystone/common/ldap/core.py:483
+#, python-format
+msgid "LDAP TLS: invalid TLS_REQUIRE_CERT Option=%s"
+msgstr ""
+
+#: keystone/common/ldap/core.py:497
+#, python-format
+msgid "LDAP bind: dn=%s"
+msgstr ""
+
+#: keystone/common/ldap/core.py:508
+#, python-format
+msgid "LDAP add: dn=%(dn)s, attrs=%(attrs)s"
+msgstr ""
+
+#: keystone/common/ldap/core.py:514
+#, python-format
+msgid ""
+"LDAP search: dn=%(dn)s, scope=%(scope)s, query=%(query)s, "
+"attrs=%(attrlist)s"
+msgstr ""
+
+#: keystone/common/ldap/core.py:567
+msgid ""
+"LDAP Server does not support paging. Disable paging in keystone.conf to "
+"avoid this message."
+msgstr ""
+
+#: keystone/common/ldap/core.py:584
+#, python-format
+msgid "LDAP modify: dn=%(dn)s, modlist=%(modlist)s"
+msgstr ""
+
+#: keystone/common/ldap/core.py:590
+#, python-format
+msgid "LDAP delete: dn=%s"
+msgstr ""
+
+#: keystone/common/ldap/core.py:595
+#, python-format
+msgid "LDAP delete_ext: dn=%(dn)s, serverctrls=%(serverctrls)s"
+msgstr ""
+
+#: keystone/common/ldap/fakeldap.py:146
+#, python-format
+msgid "FakeLdap initialize url=%s"
+msgstr ""
+
+#: keystone/common/ldap/fakeldap.py:156
+#, python-format
+msgid "FakeLdap bind dn=%s"
+msgstr ""
+
+#: keystone/common/ldap/fakeldap.py:163
+#, python-format
+msgid "FakeLdap bind fail: dn=%s not found"
+msgstr ""
+
+#: keystone/common/ldap/fakeldap.py:170
+#, python-format
+msgid "FakeLdap bind fail: password for dn=%s not found"
+msgstr ""
+
+#: keystone/common/ldap/fakeldap.py:175
+#, python-format
+msgid "FakeLdap bind fail: password for dn=%s does not match"
+msgstr ""
+
+#: keystone/common/ldap/fakeldap.py:190
+#, python-format
+msgid "FakeLdap add item: dn=%(dn)s, attrs=%(attrs)s"
+msgstr ""
+
+#: keystone/common/ldap/fakeldap.py:193
+#, python-format
+msgid "FakeLdap add item failed: dn=%s is already in store."
+msgstr ""
+
+#: keystone/common/ldap/fakeldap.py:207 keystone/common/ldap/fakeldap.py:221
+#, python-format
+msgid "FakeLdap delete item: dn=%s"
+msgstr ""
+
+#: keystone/common/ldap/fakeldap.py:211 keystone/common/ldap/fakeldap.py:225
+#, python-format
+msgid "FakeLdap delete item failed: dn=%s not found."
+msgstr ""
+
+#: keystone/common/ldap/fakeldap.py:240
+#, python-format
+msgid "FakeLdap modify item: dn=%(dn)s attrs=%(attrs)s"
+msgstr ""
+
+#: keystone/common/ldap/fakeldap.py:245
+#, python-format
+msgid "FakeLdap modify item failed: dn=%s not found."
+msgstr ""
+
+#: keystone/common/ldap/fakeldap.py:262
+#, python-format
+msgid "FakeLdap modify item failed: item has no attribute \"%s\" to delete"
+msgstr ""
+
+#: keystone/common/ldap/fakeldap.py:273
+#, python-format
+msgid ""
+"FakeLdap modify item failed: item has no attribute \"%(k)s\" with value "
+"\"%(v)s\" to delete"
+msgstr ""
+
+#: keystone/common/ldap/fakeldap.py:279
+#, python-format
+msgid "FakeLdap modify item failed: unknown command %s"
+msgstr ""
+
+#: keystone/common/ldap/fakeldap.py:281
+#, python-format
+msgid "modify_s action %s not implemented"
+msgstr ""
+
+#: keystone/common/ldap/fakeldap.py:300
+#, python-format
+msgid "FakeLdap search at dn=%(dn)s scope=%(scope)s query=%(query)s"
+msgstr ""
+
+#: keystone/common/ldap/fakeldap.py:306
+msgid "FakeLdap search fail: dn not found for SCOPE_BASE"
+msgstr ""
+
+#: keystone/common/ldap/fakeldap.py:320
+#, python-format
+msgid "Search scope %s not implemented."
+msgstr ""
+
+#: keystone/common/sql/core.py:119
+msgid "Global engine callback raised."
+msgstr ""
+
+#: keystone/common/sql/core.py:233
+#, python-format
+msgid "Got mysql server has gone away: %s"
+msgstr ""
+
+#: keystone/common/sql/legacy.py:188
+#, python-format
+msgid "Cannot migrate EC2 credential: %s"
+msgstr ""
+
+#: keystone/common/sql/migration.py:47
+msgid "version should be an integer"
+msgstr ""
+
+#: keystone/common/sql/nova.py:65
+#, python-format
+msgid "Create tenant %s"
+msgstr ""
+
+#: keystone/common/sql/nova.py:82
+#, python-format
+msgid "Create user %s"
+msgstr ""
+
+#: keystone/common/sql/nova.py:91
+#, python-format
+msgid "Add user %(user_id)s to tenant %(tenant_id)s"
+msgstr ""
+
+#: keystone/common/sql/nova.py:100
+#, python-format
+msgid "Ignoring existing role %s"
+msgstr ""
+
+#: keystone/common/sql/nova.py:107
+#, python-format
+msgid "Create role %s"
+msgstr ""
+
+#: keystone/common/sql/nova.py:117
+#, python-format
+msgid "Assign role %(role_id)s to user %(user_id)s on tenant %(tenant_id)s"
+msgstr ""
+
+#: keystone/common/sql/nova.py:136
+#, python-format
+msgid "Creating ec2 cred for user %(user_id)s and tenant %(tenant_id)s"
+msgstr ""
+
+#: keystone/identity/controllers.py:952
+#, python-format
+msgid ""
+"Group %(group)s not found for role-assignment - %(target)s with Role: "
+"%(role)s"
+msgstr ""
+
+#: keystone/identity/backends/kvs.py:126 keystone/identity/backends/kvs.py:135
+msgid "User not found in group"
+msgstr ""
+
+#: keystone/identity/backends/ldap.py:189
+#, python-format
+msgid ""
+"Group member '%(user_dn)s' not found in '%(group_id)s'. The user should "
+"be removed from the group. The user will be ignored."
+msgstr ""
+
+#: keystone/identity/backends/ldap.py:334
+msgid "Changing Name not supported by LDAP"
+msgstr ""
+
+#: keystone/identity/backends/ldap.py:347
+#, python-format
+msgid "User %(user_id)s is already a member of group %(group_id)s"
+msgstr ""
+
+#: keystone/openstack/common/policy.py:394
+#, python-format
+msgid "Failed to understand rule %(rule)s"
+msgstr ""
+
+#: keystone/openstack/common/policy.py:404
+#, python-format
+msgid "No handler for matches of kind %s"
+msgstr ""
+
+#: keystone/openstack/common/policy.py:679
+#, python-format
+msgid "Failed to understand rule %(rule)r"
+msgstr ""
+
+#: keystone/openstack/common/crypto/utils.py:29
+msgid "An unknown error occurred in crypto utils."
+msgstr ""
+
+#: keystone/openstack/common/crypto/utils.py:36
+#, python-format
+msgid "Block size of %(given)d is too big, max = %(maximum)d"
+msgstr ""
+
+#: keystone/openstack/common/crypto/utils.py:45
+#, python-format
+msgid "Length of %(given)d is too long, max = %(maximum)d"
+msgstr ""
+
+#: keystone/policy/backends/rules.py:93
+#, python-format
+msgid "enforce %(action)s: %(credentials)s"
+msgstr ""
+
+#: keystone/token/controllers.py:378
+#, python-format
+msgid "User %(u_id)s is unauthorized for tenant %(t_id)s"
+msgstr ""
+
+#: keystone/token/controllers.py:395 keystone/token/controllers.py:398
+msgid "Token does not belong to specified tenant."
+msgstr ""
+
+#: keystone/token/provider.py:76
+msgid ""
+"keystone.conf [signing] token_format (deprecated) conflicts with "
+"keystone.conf [token] provider"
+msgstr ""
+
+#: keystone/token/provider.py:84
+msgid ""
+"keystone.conf [signing] token_format is deprecated in favor of "
+"keystone.conf [token] provider"
+msgstr ""
+
+#: keystone/token/provider.py:94
+msgid ""
+"Unrecognized keystone.conf [signing] token_format: expected either 'UUID'"
+" or 'PKI'"
+msgstr ""
+
+#: keystone/token/backends/kvs.py:37
+msgid ""
+"kvs token backend is DEPRECATED. Use keystone.token.backends.sql or "
+"keystone.token.backend.memcache instead."
+msgstr ""
+
+#: keystone/token/backends/memcache.py:144
+#, python-format
+msgid ""
+"Successful set of token-index-list for user-key \"%(user_key)s\", "
+"#%(count)d records"
+msgstr ""
+
+#: keystone/token/backends/memcache.py:154
+#, python-format
+msgid ""
+"Failed to set token-index-list for user-key \"%(user_key)s\". Attempt "
+"%(cas_retry)d of %(cas_retry_max)d"
+msgstr ""
+
+#: keystone/token/backends/memcache.py:163
+msgid "Unable to add token user list"
+msgstr ""
+
+#: keystone/token/backends/memcache.py:172
+msgid "Unable to add token to revocation list."
+msgstr ""
+
+#: keystone/token/providers/pki.py:43
+msgid "Unable to sign token."
+msgstr ""
+
+#: keystone/token/providers/uuid.py:193
+msgid "Trustor is disabled."
+msgstr ""
+
+#: keystone/token/providers/uuid.py:238
+msgid "Trustee has no delegated roles."
+msgstr ""
+
+#: keystone/token/providers/uuid.py:247
+#, python-format
+msgid "User %(user_id)s has no access to project %(project_id)s"
+msgstr ""
+
+#: keystone/token/providers/uuid.py:252
+#, python-format
+msgid "User %(user_id)s has no access to domain %(domain_id)s"
+msgstr ""
+
+#: keystone/token/providers/uuid.py:303
+msgid "User is not a trustee."
+msgstr ""
+
+#: keystone/token/providers/uuid.py:457
+msgid "Non-default domain is not supported"
+msgstr ""
+
+#: keystone/token/providers/uuid.py:465
+msgid "Domain scoped token is not supported"
+msgstr ""
+
+#: keystone/token/providers/uuid.py:528
+msgid "Failed to validate token"
+msgstr ""
+
+#: keystone/token/providers/uuid.py:566 keystone/token/providers/uuid.py:576
+msgid "Failed to verify token"
+msgstr ""
+
diff --git a/keystone/locale/pt_BR/LC_MESSAGES/keystone.po b/keystone/locale/pt_BR/LC_MESSAGES/keystone.po
index fed29df8..c580894d 100644
--- a/keystone/locale/pt_BR/LC_MESSAGES/keystone.po
+++ b/keystone/locale/pt_BR/LC_MESSAGES/keystone.po
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Keystone\n"
"Report-Msgid-Bugs-To: https://bugs.launchpad.net/keystone\n"
-"POT-Creation-Date: 2013-07-11 17:05+0000\n"
+"POT-Creation-Date: 2013-08-02 17:05+0000\n"
"PO-Revision-Date: 2012-11-02 18:30+0000\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: Portuguese (Brazil) "
@@ -16,7 +16,7 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"Generated-By: Babel 0.9.6\n"
+"Generated-By: Babel 1.3\n"
#: keystone/clean.py:23
#, python-format
@@ -38,78 +38,224 @@ msgstr ""
msgid "%(property_name)s is not a %(display_expected_type)s"
msgstr ""
-#: keystone/test.py:106
+#: keystone/exception.py:48
+msgid "missing exception kwargs (programmer error)"
+msgstr ""
+
+#: keystone/exception.py:65
+#, python-format
+msgid ""
+"Expecting to find %(attribute)s in %(target)s. The server could not "
+"comply with the request since it is either malformed or otherwise "
+"incorrect. The client is assumed to be in error."
+msgstr ""
+
+#: keystone/exception.py:74
+#, python-format
+msgid ""
+"String length exceeded.The length of string '%(string)s' exceeded the "
+"limit of column %(type)s(CHAR(%(length)d))."
+msgstr ""
+
+#: keystone/exception.py:80
+#, python-format
+msgid ""
+"Request attribute %(attribute)s must be less than or equal to %(size)i. "
+"The server could not comply with the request because the attribute size "
+"is invalid (too large). The client is assumed to be in error."
+msgstr ""
+
+#: keystone/exception.py:101
+msgid "The request you have made requires authentication."
+msgstr ""
+
+#: keystone/exception.py:107
+msgid "Authentication plugin error."
+msgstr ""
+
+#: keystone/exception.py:115
+msgid "Attempted to authenticate with an unsupported method."
+msgstr ""
+
+#: keystone/exception.py:123
+msgid "Additional authentications steps required."
+msgstr ""
+
+#: keystone/exception.py:131
+msgid "You are not authorized to perform the requested action."
+msgstr ""
+
+#: keystone/exception.py:138
+#, python-format
+msgid "You are not authorized to perform the requested action, %(action)s."
+msgstr ""
+
+#: keystone/exception.py:143
+#, python-format
+msgid "Could not find, %(target)s."
+msgstr ""
+
+#: keystone/exception.py:149
+#, python-format
+msgid "Could not find endpoint, %(endpoint_id)s."
+msgstr ""
+
+#: keystone/exception.py:156
+msgid "An unhandled exception has occurred: Could not find metadata."
+msgstr ""
+
+#: keystone/exception.py:161
+#, python-format
+msgid "Could not find policy, %(policy_id)s."
+msgstr ""
+
+#: keystone/exception.py:165
+#, python-format
+msgid "Could not find role, %(role_id)s."
+msgstr ""
+
+#: keystone/exception.py:169
+#, python-format
+msgid "Could not find service, %(service_id)s."
+msgstr ""
+
+#: keystone/exception.py:173
+#, python-format
+msgid "Could not find domain, %(domain_id)s."
+msgstr ""
+
+#: keystone/exception.py:177
+#, python-format
+msgid "Could not find project, %(project_id)s."
+msgstr ""
+
+#: keystone/exception.py:181
+#, python-format
+msgid "Could not find token, %(token_id)s."
+msgstr ""
+
+#: keystone/exception.py:185
+#, python-format
+msgid "Could not find user, %(user_id)s."
+msgstr ""
+
+#: keystone/exception.py:189
+#, python-format
+msgid "Could not find group, %(group_id)s."
+msgstr ""
+
+#: keystone/exception.py:193
+#, python-format
+msgid "Could not find trust, %(trust_id)s."
+msgstr ""
+
+#: keystone/exception.py:197
+#, python-format
+msgid "Could not find credential, %(credential_id)s."
+msgstr ""
+
+#: keystone/exception.py:201
+#, python-format
+msgid "Could not find version, %(version)s."
+msgstr ""
+
+#: keystone/exception.py:205
+#, python-format
+msgid "Conflict occurred attempting to store %(type)s. %(details)s"
+msgstr ""
+
+#: keystone/exception.py:212
+msgid "Request is too large."
+msgstr ""
+
+#: keystone/exception.py:218
+#, python-format
+msgid ""
+"An unexpected error prevented the server from fulfilling your request. "
+"%(exception)s"
+msgstr ""
+
+#: keystone/exception.py:225
+#, python-format
+msgid "Malformed endpoint URL (%(endpoint)s), see ERROR log for details."
+msgstr ""
+
+#: keystone/exception.py:230
+msgid "The action you have requested has not been implemented."
+msgstr ""
+
+#: keystone/exception.py:237
+#, python-format
+msgid "The Keystone paste configuration file %(config_file)s could not be found."
+msgstr ""
+
+#: keystone/test.py:117
#, python-format
msgid "Failed to checkout %s"
msgstr ""
-#: keystone/assignment/backends/ldap.py:110
+#: keystone/assignment/core.py:529
#, python-format
msgid "Expected dict or list: %s"
msgstr ""
-#: keystone/assignment/backends/ldap.py:456
-#: keystone/identity/backends/ldap.py:433
+#: keystone/assignment/backends/kvs.py:138
+#: keystone/assignment/backends/sql.py:285
#, python-format
-msgid "Role %s not found"
+msgid "Cannot remove role that has not been granted, %s"
msgstr ""
-#: keystone/assignment/backends/sql.py:244
+#: keystone/assignment/backends/ldap.py:418
#, python-format
-msgid "Cannot remove role that has not been granted, %s"
+msgid "Role %s not found"
msgstr ""
-#: keystone/auth/controllers.py:72
+#: keystone/assignment/backends/sql.py:114
+msgid "Inherited roles can only be assigned to domains"
+msgstr ""
+
+#: keystone/auth/controllers.py:71
#, python-format
msgid "Project is disabled: %s"
msgstr ""
-#: keystone/auth/controllers.py:78 keystone/auth/plugins/password.py:38
+#: keystone/auth/controllers.py:77 keystone/auth/plugins/password.py:38
#, python-format
msgid "Domain is disabled: %s"
msgstr ""
-#: keystone/auth/controllers.py:84 keystone/auth/plugins/password.py:44
+#: keystone/auth/controllers.py:83 keystone/auth/plugins/password.py:44
#, python-format
msgid "User is disabled: %s"
msgstr ""
-#: keystone/auth/controllers.py:259
+#: keystone/auth/controllers.py:262
msgid "Scoping to both domain and project is not allowed"
msgstr ""
-#: keystone/auth/controllers.py:262
+#: keystone/auth/controllers.py:265
msgid "Scoping to both domain and trust is not allowed"
msgstr ""
-#: keystone/auth/controllers.py:265
+#: keystone/auth/controllers.py:268
msgid "Scoping to both project and trust is not allowed"
msgstr ""
-#: keystone/auth/controllers.py:325
-#, python-format
-msgid "Unable to lookup user %s"
-msgstr ""
-
-#: keystone/auth/controllers.py:355
+#: keystone/auth/controllers.py:353
msgid "User not found"
msgstr ""
-#: keystone/auth/token_factory.py:79
-msgid "User have no access to project"
-msgstr ""
-
-#: keystone/auth/token_factory.py:94
-msgid "User have no access to domain"
+#: keystone/auth/plugins/external.py:36 keystone/auth/plugins/external.py:66
+msgid "No authenticated user"
msgstr ""
-#: keystone/auth/token_factory.py:311 keystone/token/controllers.py:119
-msgid "Unable to sign token."
+#: keystone/auth/plugins/external.py:49 keystone/auth/plugins/external.py:86
+#, python-format
+msgid "Unable to lookup user %s"
msgstr ""
-#: keystone/auth/token_factory.py:314 keystone/token/controllers.py:122
-#, python-format
-msgid "Invalid value for token_format: %s. Allowed values are PKI or UUID."
+#: keystone/auth/plugins/password.py:112
+msgid "Invalid username or password"
msgstr ""
#: keystone/catalog/core.py:38
@@ -170,32 +316,32 @@ msgstr ""
msgid "RBAC: Invalid token"
msgstr ""
-#: keystone/common/controller.py:35 keystone/common/controller.py:56
+#: keystone/common/controller.py:39 keystone/common/controller.py:60
msgid "RBAC: Invalid user"
msgstr ""
-#: keystone/common/controller.py:41
+#: keystone/common/controller.py:45
msgid "RBAC: Proceeding without project"
msgstr ""
-#: keystone/common/controller.py:61
+#: keystone/common/controller.py:65
msgid "RBAC: Proceeding without tenant"
msgstr ""
-#: keystone/common/controller.py:91 keystone/common/controller.py:142
+#: keystone/common/controller.py:95 keystone/common/controller.py:146
msgid "RBAC: Bypassing authorization"
msgstr ""
-#: keystone/common/controller.py:100 keystone/common/controller.py:140
+#: keystone/common/controller.py:104 keystone/common/controller.py:144
msgid "RBAC: Authorization granted"
msgstr ""
-#: keystone/common/controller.py:130
+#: keystone/common/controller.py:134
#, python-format
msgid "RBAC: Adding query filter params (%s)"
msgstr ""
-#: keystone/common/controller.py:318
+#: keystone/common/controller.py:322
msgid "Invalid token in normalize_domain_id"
msgstr ""
@@ -206,17 +352,48 @@ msgid ""
"listening on that port."
msgstr ""
-#: keystone/common/wsgi.py:162
+#: keystone/common/wsgi.py:95
+msgid "No bind information present in token"
+msgstr ""
+
+#: keystone/common/wsgi.py:99
+#, python-format
+msgid "Named bind mode %s not in bind information"
+msgstr ""
+
+#: keystone/common/wsgi.py:105
+msgid "Kerberos credentials required and not present"
+msgstr ""
+
+#: keystone/common/wsgi.py:109
+msgid "Kerberos credentials do not match those in bind"
+msgstr ""
+
+#: keystone/common/wsgi.py:112
+msgid "Kerberos bind authentication successful"
+msgstr ""
+
+#: keystone/common/wsgi.py:115
+#, python-format
+msgid "Ignoring unknown bind for permissive mode: {%(bind_type)s: %(identifier)s}"
+msgstr ""
+
+#: keystone/common/wsgi.py:119
+#, python-format
+msgid "Couldn't verify unknown bind: {%(bind_type)s: %(identifier)s}"
+msgstr ""
+
+#: keystone/common/wsgi.py:211
#, python-format
msgid "arg_dict: %s"
msgstr ""
-#: keystone/common/wsgi.py:188
+#: keystone/common/wsgi.py:243
#, python-format
msgid "Authorization failed. %(exception)s from %(remote_addr)s"
msgstr ""
-#: keystone/common/wsgi.py:431
+#: keystone/common/wsgi.py:487
msgid "The resource could not be found."
msgstr ""
@@ -457,11 +634,11 @@ msgstr ""
msgid "Search scope %s not implemented."
msgstr ""
-#: keystone/common/sql/core.py:126
+#: keystone/common/sql/core.py:119
msgid "Global engine callback raised."
msgstr ""
-#: keystone/common/sql/core.py:240
+#: keystone/common/sql/core.py:233
#, python-format
msgid "Got mysql server has gone away: %s"
msgstr ""
@@ -510,7 +687,7 @@ msgstr ""
msgid "Creating ec2 cred for user %(user_id)s and tenant %(tenant_id)s"
msgstr ""
-#: keystone/identity/controllers.py:878
+#: keystone/identity/controllers.py:952
#, python-format
msgid ""
"Group %(group)s not found for role-assignment - %(target)s with Role: "
@@ -521,18 +698,18 @@ msgstr ""
msgid "User not found in group"
msgstr ""
-#: keystone/identity/backends/ldap.py:192
+#: keystone/identity/backends/ldap.py:189
#, python-format
msgid ""
"Group member '%(user_dn)s' not found in '%(group_id)s'. The user should "
"be removed from the group. The user will be ignored."
msgstr ""
-#: keystone/identity/backends/ldap.py:621
+#: keystone/identity/backends/ldap.py:334
msgid "Changing Name not supported by LDAP"
msgstr ""
-#: keystone/identity/backends/ldap.py:634
+#: keystone/identity/backends/ldap.py:347
#, python-format
msgid "User %(user_id)s is already a member of group %(group_id)s"
msgstr ""
@@ -552,26 +729,56 @@ msgstr ""
msgid "Failed to understand rule %(rule)r"
msgstr ""
+#: keystone/openstack/common/crypto/utils.py:29
+msgid "An unknown error occurred in crypto utils."
+msgstr ""
+
+#: keystone/openstack/common/crypto/utils.py:36
+#, python-format
+msgid "Block size of %(given)d is too big, max = %(maximum)d"
+msgstr ""
+
+#: keystone/openstack/common/crypto/utils.py:45
+#, python-format
+msgid "Length of %(given)d is too long, max = %(maximum)d"
+msgstr ""
+
#: keystone/policy/backends/rules.py:93
#, python-format
msgid "enforce %(action)s: %(credentials)s"
msgstr ""
-#: keystone/token/controllers.py:396
+#: keystone/token/controllers.py:378
#, python-format
msgid "User %(u_id)s is unauthorized for tenant %(t_id)s"
msgstr ""
-#: keystone/token/controllers.py:413 keystone/token/controllers.py:416
+#: keystone/token/controllers.py:395 keystone/token/controllers.py:398
msgid "Token does not belong to specified tenant."
msgstr ""
-#: keystone/token/controllers.py:423
-msgid "Non-default domain is not supported"
+#: keystone/token/provider.py:76
+msgid ""
+"keystone.conf [signing] token_format (deprecated) conflicts with "
+"keystone.conf [token] provider"
msgstr ""
-#: keystone/token/controllers.py:431
-msgid "Domain scoped token is not supported"
+#: keystone/token/provider.py:84
+msgid ""
+"keystone.conf [signing] token_format is deprecated in favor of "
+"keystone.conf [token] provider"
+msgstr ""
+
+#: keystone/token/provider.py:94
+msgid ""
+"Unrecognized keystone.conf [signing] token_format: expected either 'UUID'"
+" or 'PKI'"
+msgstr ""
+
+#: keystone/token/backends/kvs.py:37
+msgid ""
+"kvs token backend is DEPRECATED. Use keystone.token.backends.sql or "
+"keystone.token.backend.memcache instead."
msgstr ""
#: keystone/token/backends/memcache.py:144
@@ -596,3 +803,54 @@ msgstr ""
msgid "Unable to add token to revocation list."
msgstr ""
+#: keystone/token/providers/pki.py:43
+msgid "Unable to sign token."
+msgstr ""
+
+#: keystone/token/providers/uuid.py:193
+msgid "Trustor is disabled."
+msgstr ""
+
+#: keystone/token/providers/uuid.py:238
+msgid "Trustee has no delegated roles."
+msgstr ""
+
+#: keystone/token/providers/uuid.py:247
+#, python-format
+msgid "User %(user_id)s has no access to project %(project_id)s"
+msgstr ""
+
+#: keystone/token/providers/uuid.py:252
+#, python-format
+msgid "User %(user_id)s has no access to domain %(domain_id)s"
+msgstr ""
+
+#: keystone/token/providers/uuid.py:303
+msgid "User is not a trustee."
+msgstr ""
+
+#: keystone/token/providers/uuid.py:457
+msgid "Non-default domain is not supported"
+msgstr ""
+
+#: keystone/token/providers/uuid.py:465
+msgid "Domain scoped token is not supported"
+msgstr ""
+
+#: keystone/token/providers/uuid.py:528
+msgid "Failed to validate token"
+msgstr ""
+
+#: keystone/token/providers/uuid.py:566 keystone/token/providers/uuid.py:576
+msgid "Failed to verify token"
+msgstr ""
+
+#~ msgid "User have no access to project"
+#~ msgstr ""
+
+#~ msgid "User have no access to domain"
+#~ msgstr ""
+
+#~ msgid "Invalid value for token_format: %s. Allowed values are PKI or UUID."
+#~ msgstr ""
+
diff --git a/keystone/locale/ro/LC_MESSAGES/keystone.po b/keystone/locale/ro/LC_MESSAGES/keystone.po
index e1b5889a..b55073b6 100644
--- a/keystone/locale/ro/LC_MESSAGES/keystone.po
+++ b/keystone/locale/ro/LC_MESSAGES/keystone.po
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Keystone\n"
"Report-Msgid-Bugs-To: https://bugs.launchpad.net/keystone\n"
-"POT-Creation-Date: 2013-07-11 17:05+0000\n"
+"POT-Creation-Date: 2013-08-02 17:05+0000\n"
"PO-Revision-Date: 2013-06-08 07:51+0000\n"
"Last-Translator: daisy.ycguo <daisy.ycguo@gmail.com>\n"
"Language-Team: Romanian "
@@ -17,7 +17,7 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"Generated-By: Babel 0.9.6\n"
+"Generated-By: Babel 1.3\n"
#: keystone/clean.py:23
#, python-format
@@ -39,78 +39,224 @@ msgstr ""
msgid "%(property_name)s is not a %(display_expected_type)s"
msgstr ""
-#: keystone/test.py:106
+#: keystone/exception.py:48
+msgid "missing exception kwargs (programmer error)"
+msgstr ""
+
+#: keystone/exception.py:65
+#, python-format
+msgid ""
+"Expecting to find %(attribute)s in %(target)s. The server could not "
+"comply with the request since it is either malformed or otherwise "
+"incorrect. The client is assumed to be in error."
+msgstr ""
+
+#: keystone/exception.py:74
+#, python-format
+msgid ""
+"String length exceeded.The length of string '%(string)s' exceeded the "
+"limit of column %(type)s(CHAR(%(length)d))."
+msgstr ""
+
+#: keystone/exception.py:80
+#, python-format
+msgid ""
+"Request attribute %(attribute)s must be less than or equal to %(size)i. "
+"The server could not comply with the request because the attribute size "
+"is invalid (too large). The client is assumed to be in error."
+msgstr ""
+
+#: keystone/exception.py:101
+msgid "The request you have made requires authentication."
+msgstr ""
+
+#: keystone/exception.py:107
+msgid "Authentication plugin error."
+msgstr ""
+
+#: keystone/exception.py:115
+msgid "Attempted to authenticate with an unsupported method."
+msgstr ""
+
+#: keystone/exception.py:123
+msgid "Additional authentications steps required."
+msgstr ""
+
+#: keystone/exception.py:131
+msgid "You are not authorized to perform the requested action."
+msgstr ""
+
+#: keystone/exception.py:138
+#, python-format
+msgid "You are not authorized to perform the requested action, %(action)s."
+msgstr ""
+
+#: keystone/exception.py:143
+#, python-format
+msgid "Could not find, %(target)s."
+msgstr ""
+
+#: keystone/exception.py:149
+#, python-format
+msgid "Could not find endpoint, %(endpoint_id)s."
+msgstr ""
+
+#: keystone/exception.py:156
+msgid "An unhandled exception has occurred: Could not find metadata."
+msgstr ""
+
+#: keystone/exception.py:161
+#, python-format
+msgid "Could not find policy, %(policy_id)s."
+msgstr ""
+
+#: keystone/exception.py:165
+#, python-format
+msgid "Could not find role, %(role_id)s."
+msgstr ""
+
+#: keystone/exception.py:169
+#, python-format
+msgid "Could not find service, %(service_id)s."
+msgstr ""
+
+#: keystone/exception.py:173
+#, python-format
+msgid "Could not find domain, %(domain_id)s."
+msgstr ""
+
+#: keystone/exception.py:177
+#, python-format
+msgid "Could not find project, %(project_id)s."
+msgstr ""
+
+#: keystone/exception.py:181
+#, python-format
+msgid "Could not find token, %(token_id)s."
+msgstr ""
+
+#: keystone/exception.py:185
+#, python-format
+msgid "Could not find user, %(user_id)s."
+msgstr ""
+
+#: keystone/exception.py:189
+#, python-format
+msgid "Could not find group, %(group_id)s."
+msgstr ""
+
+#: keystone/exception.py:193
+#, python-format
+msgid "Could not find trust, %(trust_id)s."
+msgstr ""
+
+#: keystone/exception.py:197
+#, python-format
+msgid "Could not find credential, %(credential_id)s."
+msgstr ""
+
+#: keystone/exception.py:201
+#, python-format
+msgid "Could not find version, %(version)s."
+msgstr ""
+
+#: keystone/exception.py:205
+#, python-format
+msgid "Conflict occurred attempting to store %(type)s. %(details)s"
+msgstr ""
+
+#: keystone/exception.py:212
+msgid "Request is too large."
+msgstr ""
+
+#: keystone/exception.py:218
+#, python-format
+msgid ""
+"An unexpected error prevented the server from fulfilling your request. "
+"%(exception)s"
+msgstr ""
+
+#: keystone/exception.py:225
+#, python-format
+msgid "Malformed endpoint URL (%(endpoint)s), see ERROR log for details."
+msgstr ""
+
+#: keystone/exception.py:230
+msgid "The action you have requested has not been implemented."
+msgstr ""
+
+#: keystone/exception.py:237
+#, python-format
+msgid "The Keystone paste configuration file %(config_file)s could not be found."
+msgstr ""
+
+#: keystone/test.py:117
#, python-format
msgid "Failed to checkout %s"
msgstr ""
-#: keystone/assignment/backends/ldap.py:110
+#: keystone/assignment/core.py:529
#, python-format
msgid "Expected dict or list: %s"
msgstr ""
-#: keystone/assignment/backends/ldap.py:456
-#: keystone/identity/backends/ldap.py:433
+#: keystone/assignment/backends/kvs.py:138
+#: keystone/assignment/backends/sql.py:285
#, python-format
-msgid "Role %s not found"
+msgid "Cannot remove role that has not been granted, %s"
msgstr ""
-#: keystone/assignment/backends/sql.py:244
+#: keystone/assignment/backends/ldap.py:418
#, python-format
-msgid "Cannot remove role that has not been granted, %s"
+msgid "Role %s not found"
msgstr ""
-#: keystone/auth/controllers.py:72
+#: keystone/assignment/backends/sql.py:114
+msgid "Inherited roles can only be assigned to domains"
+msgstr ""
+
+#: keystone/auth/controllers.py:71
#, python-format
msgid "Project is disabled: %s"
msgstr ""
-#: keystone/auth/controllers.py:78 keystone/auth/plugins/password.py:38
+#: keystone/auth/controllers.py:77 keystone/auth/plugins/password.py:38
#, python-format
msgid "Domain is disabled: %s"
msgstr ""
-#: keystone/auth/controllers.py:84 keystone/auth/plugins/password.py:44
+#: keystone/auth/controllers.py:83 keystone/auth/plugins/password.py:44
#, python-format
msgid "User is disabled: %s"
msgstr ""
-#: keystone/auth/controllers.py:259
+#: keystone/auth/controllers.py:262
msgid "Scoping to both domain and project is not allowed"
msgstr ""
-#: keystone/auth/controllers.py:262
+#: keystone/auth/controllers.py:265
msgid "Scoping to both domain and trust is not allowed"
msgstr ""
-#: keystone/auth/controllers.py:265
+#: keystone/auth/controllers.py:268
msgid "Scoping to both project and trust is not allowed"
msgstr ""
-#: keystone/auth/controllers.py:325
-#, python-format
-msgid "Unable to lookup user %s"
-msgstr ""
-
-#: keystone/auth/controllers.py:355
+#: keystone/auth/controllers.py:353
msgid "User not found"
msgstr ""
-#: keystone/auth/token_factory.py:79
-msgid "User have no access to project"
-msgstr ""
-
-#: keystone/auth/token_factory.py:94
-msgid "User have no access to domain"
+#: keystone/auth/plugins/external.py:36 keystone/auth/plugins/external.py:66
+msgid "No authenticated user"
msgstr ""
-#: keystone/auth/token_factory.py:311 keystone/token/controllers.py:119
-msgid "Unable to sign token."
+#: keystone/auth/plugins/external.py:49 keystone/auth/plugins/external.py:86
+#, python-format
+msgid "Unable to lookup user %s"
msgstr ""
-#: keystone/auth/token_factory.py:314 keystone/token/controllers.py:122
-#, python-format
-msgid "Invalid value for token_format: %s. Allowed values are PKI or UUID."
+#: keystone/auth/plugins/password.py:112
+msgid "Invalid username or password"
msgstr ""
#: keystone/catalog/core.py:38
@@ -171,32 +317,32 @@ msgstr ""
msgid "RBAC: Invalid token"
msgstr ""
-#: keystone/common/controller.py:35 keystone/common/controller.py:56
+#: keystone/common/controller.py:39 keystone/common/controller.py:60
msgid "RBAC: Invalid user"
msgstr ""
-#: keystone/common/controller.py:41
+#: keystone/common/controller.py:45
msgid "RBAC: Proceeding without project"
msgstr ""
-#: keystone/common/controller.py:61
+#: keystone/common/controller.py:65
msgid "RBAC: Proceeding without tenant"
msgstr ""
-#: keystone/common/controller.py:91 keystone/common/controller.py:142
+#: keystone/common/controller.py:95 keystone/common/controller.py:146
msgid "RBAC: Bypassing authorization"
msgstr ""
-#: keystone/common/controller.py:100 keystone/common/controller.py:140
+#: keystone/common/controller.py:104 keystone/common/controller.py:144
msgid "RBAC: Authorization granted"
msgstr ""
-#: keystone/common/controller.py:130
+#: keystone/common/controller.py:134
#, python-format
msgid "RBAC: Adding query filter params (%s)"
msgstr ""
-#: keystone/common/controller.py:318
+#: keystone/common/controller.py:322
msgid "Invalid token in normalize_domain_id"
msgstr ""
@@ -207,17 +353,48 @@ msgid ""
"listening on that port."
msgstr ""
-#: keystone/common/wsgi.py:162
+#: keystone/common/wsgi.py:95
+msgid "No bind information present in token"
+msgstr ""
+
+#: keystone/common/wsgi.py:99
+#, python-format
+msgid "Named bind mode %s not in bind information"
+msgstr ""
+
+#: keystone/common/wsgi.py:105
+msgid "Kerberos credentials required and not present"
+msgstr ""
+
+#: keystone/common/wsgi.py:109
+msgid "Kerberos credentials do not match those in bind"
+msgstr ""
+
+#: keystone/common/wsgi.py:112
+msgid "Kerberos bind authentication successful"
+msgstr ""
+
+#: keystone/common/wsgi.py:115
+#, python-format
+msgid "Ignoring unknown bind for permissive mode: {%(bind_type)s: %(identifier)s}"
+msgstr ""
+
+#: keystone/common/wsgi.py:119
+#, python-format
+msgid "Couldn't verify unknown bind: {%(bind_type)s: %(identifier)s}"
+msgstr ""
+
+#: keystone/common/wsgi.py:211
#, python-format
msgid "arg_dict: %s"
msgstr ""
-#: keystone/common/wsgi.py:188
+#: keystone/common/wsgi.py:243
#, python-format
msgid "Authorization failed. %(exception)s from %(remote_addr)s"
msgstr ""
-#: keystone/common/wsgi.py:431
+#: keystone/common/wsgi.py:487
msgid "The resource could not be found."
msgstr ""
@@ -458,11 +635,11 @@ msgstr ""
msgid "Search scope %s not implemented."
msgstr ""
-#: keystone/common/sql/core.py:126
+#: keystone/common/sql/core.py:119
msgid "Global engine callback raised."
msgstr ""
-#: keystone/common/sql/core.py:240
+#: keystone/common/sql/core.py:233
#, python-format
msgid "Got mysql server has gone away: %s"
msgstr ""
@@ -511,7 +688,7 @@ msgstr ""
msgid "Creating ec2 cred for user %(user_id)s and tenant %(tenant_id)s"
msgstr ""
-#: keystone/identity/controllers.py:878
+#: keystone/identity/controllers.py:952
#, python-format
msgid ""
"Group %(group)s not found for role-assignment - %(target)s with Role: "
@@ -522,18 +699,18 @@ msgstr ""
msgid "User not found in group"
msgstr ""
-#: keystone/identity/backends/ldap.py:192
+#: keystone/identity/backends/ldap.py:189
#, python-format
msgid ""
"Group member '%(user_dn)s' not found in '%(group_id)s'. The user should "
"be removed from the group. The user will be ignored."
msgstr ""
-#: keystone/identity/backends/ldap.py:621
+#: keystone/identity/backends/ldap.py:334
msgid "Changing Name not supported by LDAP"
msgstr ""
-#: keystone/identity/backends/ldap.py:634
+#: keystone/identity/backends/ldap.py:347
#, python-format
msgid "User %(user_id)s is already a member of group %(group_id)s"
msgstr ""
@@ -553,26 +730,56 @@ msgstr ""
msgid "Failed to understand rule %(rule)r"
msgstr ""
+#: keystone/openstack/common/crypto/utils.py:29
+msgid "An unknown error occurred in crypto utils."
+msgstr ""
+
+#: keystone/openstack/common/crypto/utils.py:36
+#, python-format
+msgid "Block size of %(given)d is too big, max = %(maximum)d"
+msgstr ""
+
+#: keystone/openstack/common/crypto/utils.py:45
+#, python-format
+msgid "Length of %(given)d is too long, max = %(maximum)d"
+msgstr ""
+
#: keystone/policy/backends/rules.py:93
#, python-format
msgid "enforce %(action)s: %(credentials)s"
msgstr ""
-#: keystone/token/controllers.py:396
+#: keystone/token/controllers.py:378
#, python-format
msgid "User %(u_id)s is unauthorized for tenant %(t_id)s"
msgstr ""
-#: keystone/token/controllers.py:413 keystone/token/controllers.py:416
+#: keystone/token/controllers.py:395 keystone/token/controllers.py:398
msgid "Token does not belong to specified tenant."
msgstr ""
-#: keystone/token/controllers.py:423
-msgid "Non-default domain is not supported"
+#: keystone/token/provider.py:76
+msgid ""
+"keystone.conf [signing] token_format (deprecated) conflicts with "
+"keystone.conf [token] provider"
msgstr ""
-#: keystone/token/controllers.py:431
-msgid "Domain scoped token is not supported"
+#: keystone/token/provider.py:84
+msgid ""
+"keystone.conf [signing] token_format is deprecated in favor of "
+"keystone.conf [token] provider"
+msgstr ""
+
+#: keystone/token/provider.py:94
+msgid ""
+"Unrecognized keystone.conf [signing] token_format: expected either 'UUID'"
+" or 'PKI'"
+msgstr ""
+
+#: keystone/token/backends/kvs.py:37
+msgid ""
+"kvs token backend is DEPRECATED. Use keystone.token.backends.sql or "
+"keystone.token.backend.memcache instead."
msgstr ""
#: keystone/token/backends/memcache.py:144
@@ -597,3 +804,54 @@ msgstr ""
msgid "Unable to add token to revocation list."
msgstr ""
+#: keystone/token/providers/pki.py:43
+msgid "Unable to sign token."
+msgstr ""
+
+#: keystone/token/providers/uuid.py:193
+msgid "Trustor is disabled."
+msgstr ""
+
+#: keystone/token/providers/uuid.py:238
+msgid "Trustee has no delegated roles."
+msgstr ""
+
+#: keystone/token/providers/uuid.py:247
+#, python-format
+msgid "User %(user_id)s has no access to project %(project_id)s"
+msgstr ""
+
+#: keystone/token/providers/uuid.py:252
+#, python-format
+msgid "User %(user_id)s has no access to domain %(domain_id)s"
+msgstr ""
+
+#: keystone/token/providers/uuid.py:303
+msgid "User is not a trustee."
+msgstr ""
+
+#: keystone/token/providers/uuid.py:457
+msgid "Non-default domain is not supported"
+msgstr ""
+
+#: keystone/token/providers/uuid.py:465
+msgid "Domain scoped token is not supported"
+msgstr ""
+
+#: keystone/token/providers/uuid.py:528
+msgid "Failed to validate token"
+msgstr ""
+
+#: keystone/token/providers/uuid.py:566 keystone/token/providers/uuid.py:576
+msgid "Failed to verify token"
+msgstr ""
+
+#~ msgid "User have no access to project"
+#~ msgstr ""
+
+#~ msgid "User have no access to domain"
+#~ msgstr ""
+
+#~ msgid "Invalid value for token_format: %s. Allowed values are PKI or UUID."
+#~ msgstr ""
+
diff --git a/keystone/locale/ru/LC_MESSAGES/keystone.po b/keystone/locale/ru/LC_MESSAGES/keystone.po
index 5a1f5c36..db8fe633 100644
--- a/keystone/locale/ru/LC_MESSAGES/keystone.po
+++ b/keystone/locale/ru/LC_MESSAGES/keystone.po
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Keystone\n"
"Report-Msgid-Bugs-To: https://bugs.launchpad.net/keystone\n"
-"POT-Creation-Date: 2013-07-11 17:05+0000\n"
+"POT-Creation-Date: 2013-08-02 17:05+0000\n"
"PO-Revision-Date: 2013-05-17 16:06+0000\n"
"Last-Translator: openstackjenkins <jenkins@openstack.org>\n"
"Language-Team: Russian "
@@ -17,7 +17,7 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"Generated-By: Babel 0.9.6\n"
+"Generated-By: Babel 1.3\n"
#: keystone/clean.py:23
#, python-format
@@ -39,78 +39,224 @@ msgstr ""
msgid "%(property_name)s is not a %(display_expected_type)s"
msgstr ""
-#: keystone/test.py:106
+#: keystone/exception.py:48
+msgid "missing exception kwargs (programmer error)"
+msgstr ""
+
+#: keystone/exception.py:65
+#, python-format
+msgid ""
+"Expecting to find %(attribute)s in %(target)s. The server could not "
+"comply with the request since it is either malformed or otherwise "
+"incorrect. The client is assumed to be in error."
+msgstr ""
+
+#: keystone/exception.py:74
+#, python-format
+msgid ""
+"String length exceeded.The length of string '%(string)s' exceeded the "
+"limit of column %(type)s(CHAR(%(length)d))."
+msgstr ""
+
+#: keystone/exception.py:80
+#, python-format
+msgid ""
+"Request attribute %(attribute)s must be less than or equal to %(size)i. "
+"The server could not comply with the request because the attribute size "
+"is invalid (too large). The client is assumed to be in error."
+msgstr ""
+
+#: keystone/exception.py:101
+msgid "The request you have made requires authentication."
+msgstr ""
+
+#: keystone/exception.py:107
+msgid "Authentication plugin error."
+msgstr ""
+
+#: keystone/exception.py:115
+msgid "Attempted to authenticate with an unsupported method."
+msgstr ""
+
+#: keystone/exception.py:123
+msgid "Additional authentications steps required."
+msgstr ""
+
+#: keystone/exception.py:131
+msgid "You are not authorized to perform the requested action."
+msgstr ""
+
+#: keystone/exception.py:138
+#, python-format
+msgid "You are not authorized to perform the requested action, %(action)s."
+msgstr ""
+
+#: keystone/exception.py:143
+#, python-format
+msgid "Could not find, %(target)s."
+msgstr ""
+
+#: keystone/exception.py:149
+#, python-format
+msgid "Could not find endpoint, %(endpoint_id)s."
+msgstr ""
+
+#: keystone/exception.py:156
+msgid "An unhandled exception has occurred: Could not find metadata."
+msgstr ""
+
+#: keystone/exception.py:161
+#, python-format
+msgid "Could not find policy, %(policy_id)s."
+msgstr ""
+
+#: keystone/exception.py:165
+#, python-format
+msgid "Could not find role, %(role_id)s."
+msgstr ""
+
+#: keystone/exception.py:169
+#, python-format
+msgid "Could not find service, %(service_id)s."
+msgstr ""
+
+#: keystone/exception.py:173
+#, python-format
+msgid "Could not find domain, %(domain_id)s."
+msgstr ""
+
+#: keystone/exception.py:177
+#, python-format
+msgid "Could not find project, %(project_id)s."
+msgstr ""
+
+#: keystone/exception.py:181
+#, python-format
+msgid "Could not find token, %(token_id)s."
+msgstr ""
+
+#: keystone/exception.py:185
+#, python-format
+msgid "Could not find user, %(user_id)s."
+msgstr ""
+
+#: keystone/exception.py:189
+#, python-format
+msgid "Could not find group, %(group_id)s."
+msgstr ""
+
+#: keystone/exception.py:193
+#, python-format
+msgid "Could not find trust, %(trust_id)s."
+msgstr ""
+
+#: keystone/exception.py:197
+#, python-format
+msgid "Could not find credential, %(credential_id)s."
+msgstr ""
+
+#: keystone/exception.py:201
+#, python-format
+msgid "Could not find version, %(version)s."
+msgstr ""
+
+#: keystone/exception.py:205
+#, python-format
+msgid "Conflict occurred attempting to store %(type)s. %(details)s"
+msgstr ""
+
+#: keystone/exception.py:212
+msgid "Request is too large."
+msgstr ""
+
+#: keystone/exception.py:218
+#, python-format
+msgid ""
+"An unexpected error prevented the server from fulfilling your request. "
+"%(exception)s"
+msgstr ""
+
+#: keystone/exception.py:225
+#, python-format
+msgid "Malformed endpoint URL (%(endpoint)s), see ERROR log for details."
+msgstr ""
+
+#: keystone/exception.py:230
+msgid "The action you have requested has not been implemented."
+msgstr ""
+
+#: keystone/exception.py:237
+#, python-format
+msgid "The Keystone paste configuration file %(config_file)s could not be found."
+msgstr ""
+
+#: keystone/test.py:117
#, python-format
msgid "Failed to checkout %s"
msgstr ""
-#: keystone/assignment/backends/ldap.py:110
+#: keystone/assignment/core.py:529
#, python-format
msgid "Expected dict or list: %s"
msgstr ""
-#: keystone/assignment/backends/ldap.py:456
-#: keystone/identity/backends/ldap.py:433
+#: keystone/assignment/backends/kvs.py:138
+#: keystone/assignment/backends/sql.py:285
#, python-format
-msgid "Role %s not found"
+msgid "Cannot remove role that has not been granted, %s"
msgstr ""
-#: keystone/assignment/backends/sql.py:244
+#: keystone/assignment/backends/ldap.py:418
#, python-format
-msgid "Cannot remove role that has not been granted, %s"
+msgid "Role %s not found"
msgstr ""
-#: keystone/auth/controllers.py:72
+#: keystone/assignment/backends/sql.py:114
+msgid "Inherited roles can only be assigned to domains"
+msgstr ""
+
+#: keystone/auth/controllers.py:71
#, python-format
msgid "Project is disabled: %s"
msgstr ""
-#: keystone/auth/controllers.py:78 keystone/auth/plugins/password.py:38
+#: keystone/auth/controllers.py:77 keystone/auth/plugins/password.py:38
#, python-format
msgid "Domain is disabled: %s"
msgstr ""
-#: keystone/auth/controllers.py:84 keystone/auth/plugins/password.py:44
+#: keystone/auth/controllers.py:83 keystone/auth/plugins/password.py:44
#, python-format
msgid "User is disabled: %s"
msgstr ""
-#: keystone/auth/controllers.py:259
+#: keystone/auth/controllers.py:262
msgid "Scoping to both domain and project is not allowed"
msgstr ""
-#: keystone/auth/controllers.py:262
+#: keystone/auth/controllers.py:265
msgid "Scoping to both domain and trust is not allowed"
msgstr ""
-#: keystone/auth/controllers.py:265
+#: keystone/auth/controllers.py:268
msgid "Scoping to both project and trust is not allowed"
msgstr ""
-#: keystone/auth/controllers.py:325
-#, python-format
-msgid "Unable to lookup user %s"
-msgstr ""
-
-#: keystone/auth/controllers.py:355
+#: keystone/auth/controllers.py:353
msgid "User not found"
msgstr ""
-#: keystone/auth/token_factory.py:79
-msgid "User have no access to project"
-msgstr ""
-
-#: keystone/auth/token_factory.py:94
-msgid "User have no access to domain"
+#: keystone/auth/plugins/external.py:36 keystone/auth/plugins/external.py:66
+msgid "No authenticated user"
msgstr ""
-#: keystone/auth/token_factory.py:311 keystone/token/controllers.py:119
-msgid "Unable to sign token."
+#: keystone/auth/plugins/external.py:49 keystone/auth/plugins/external.py:86
+#, python-format
+msgid "Unable to lookup user %s"
msgstr ""
-#: keystone/auth/token_factory.py:314 keystone/token/controllers.py:122
-#, python-format
-msgid "Invalid value for token_format: %s. Allowed values are PKI or UUID."
+#: keystone/auth/plugins/password.py:112
+msgid "Invalid username or password"
msgstr ""
#: keystone/catalog/core.py:38
@@ -171,32 +317,32 @@ msgstr ""
msgid "RBAC: Invalid token"
msgstr ""
-#: keystone/common/controller.py:35 keystone/common/controller.py:56
+#: keystone/common/controller.py:39 keystone/common/controller.py:60
msgid "RBAC: Invalid user"
msgstr ""
-#: keystone/common/controller.py:41
+#: keystone/common/controller.py:45
msgid "RBAC: Proceeding without project"
msgstr ""
-#: keystone/common/controller.py:61
+#: keystone/common/controller.py:65
msgid "RBAC: Proceeding without tenant"
msgstr ""
-#: keystone/common/controller.py:91 keystone/common/controller.py:142
+#: keystone/common/controller.py:95 keystone/common/controller.py:146
msgid "RBAC: Bypassing authorization"
msgstr ""
-#: keystone/common/controller.py:100 keystone/common/controller.py:140
+#: keystone/common/controller.py:104 keystone/common/controller.py:144
msgid "RBAC: Authorization granted"
msgstr ""
-#: keystone/common/controller.py:130
+#: keystone/common/controller.py:134
#, python-format
msgid "RBAC: Adding query filter params (%s)"
msgstr ""
-#: keystone/common/controller.py:318
+#: keystone/common/controller.py:322
msgid "Invalid token in normalize_domain_id"
msgstr ""
@@ -207,17 +353,48 @@ msgid ""
"listening on that port."
msgstr ""
-#: keystone/common/wsgi.py:162
+#: keystone/common/wsgi.py:95
+msgid "No bind information present in token"
+msgstr ""
+
+#: keystone/common/wsgi.py:99
+#, python-format
+msgid "Named bind mode %s not in bind information"
+msgstr ""
+
+#: keystone/common/wsgi.py:105
+msgid "Kerberos credentials required and not present"
+msgstr ""
+
+#: keystone/common/wsgi.py:109
+msgid "Kerberos credentials do not match those in bind"
+msgstr ""
+
+#: keystone/common/wsgi.py:112
+msgid "Kerberos bind authentication successful"
+msgstr ""
+
+#: keystone/common/wsgi.py:115
+#, python-format
+msgid "Ignoring unknown bind for permissive mode: {%(bind_type)s: %(identifier)s}"
+msgstr ""
+
+#: keystone/common/wsgi.py:119
+#, python-format
+msgid "Couldn't verify unknown bind: {%(bind_type)s: %(identifier)s}"
+msgstr ""
+
+#: keystone/common/wsgi.py:211
#, python-format
msgid "arg_dict: %s"
msgstr ""
-#: keystone/common/wsgi.py:188
+#: keystone/common/wsgi.py:243
#, python-format
msgid "Authorization failed. %(exception)s from %(remote_addr)s"
msgstr ""
-#: keystone/common/wsgi.py:431
+#: keystone/common/wsgi.py:487
msgid "The resource could not be found."
msgstr ""
@@ -458,11 +635,11 @@ msgstr ""
msgid "Search scope %s not implemented."
msgstr ""
-#: keystone/common/sql/core.py:126
+#: keystone/common/sql/core.py:119
msgid "Global engine callback raised."
msgstr ""
-#: keystone/common/sql/core.py:240
+#: keystone/common/sql/core.py:233
#, python-format
msgid "Got mysql server has gone away: %s"
msgstr ""
@@ -511,7 +688,7 @@ msgstr ""
msgid "Creating ec2 cred for user %(user_id)s and tenant %(tenant_id)s"
msgstr ""
-#: keystone/identity/controllers.py:878
+#: keystone/identity/controllers.py:952
#, python-format
msgid ""
"Group %(group)s not found for role-assignment - %(target)s with Role: "
@@ -522,18 +699,18 @@ msgstr ""
msgid "User not found in group"
msgstr ""
-#: keystone/identity/backends/ldap.py:192
+#: keystone/identity/backends/ldap.py:189
#, python-format
msgid ""
"Group member '%(user_dn)s' not found in '%(group_id)s'. The user should "
"be removed from the group. The user will be ignored."
msgstr ""
-#: keystone/identity/backends/ldap.py:621
+#: keystone/identity/backends/ldap.py:334
msgid "Changing Name not supported by LDAP"
msgstr ""
-#: keystone/identity/backends/ldap.py:634
+#: keystone/identity/backends/ldap.py:347
#, python-format
msgid "User %(user_id)s is already a member of group %(group_id)s"
msgstr ""
@@ -553,26 +730,56 @@ msgstr ""
msgid "Failed to understand rule %(rule)r"
msgstr ""
+#: keystone/openstack/common/crypto/utils.py:29
+msgid "An unknown error occurred in crypto utils."
+msgstr ""
+
+#: keystone/openstack/common/crypto/utils.py:36
+#, python-format
+msgid "Block size of %(given)d is too big, max = %(maximum)d"
+msgstr ""
+
+#: keystone/openstack/common/crypto/utils.py:45
+#, python-format
+msgid "Length of %(given)d is too long, max = %(maximum)d"
+msgstr ""
+
#: keystone/policy/backends/rules.py:93
#, python-format
msgid "enforce %(action)s: %(credentials)s"
msgstr ""
-#: keystone/token/controllers.py:396
+#: keystone/token/controllers.py:378
#, python-format
msgid "User %(u_id)s is unauthorized for tenant %(t_id)s"
msgstr ""
-#: keystone/token/controllers.py:413 keystone/token/controllers.py:416
+#: keystone/token/controllers.py:395 keystone/token/controllers.py:398
msgid "Token does not belong to specified tenant."
msgstr ""
-#: keystone/token/controllers.py:423
-msgid "Non-default domain is not supported"
+#: keystone/token/provider.py:76
+msgid ""
+"keystone.conf [signing] token_format (deprecated) conflicts with "
+"keystone.conf [token] provider"
msgstr ""
-#: keystone/token/controllers.py:431
-msgid "Domain scoped token is not supported"
+#: keystone/token/provider.py:84
+msgid ""
+"keystone.conf [signing] token_format is deprecated in favor of "
+"keystone.conf [token] provider"
+msgstr ""
+
+#: keystone/token/provider.py:94
+msgid ""
+"Unrecognized keystone.conf [signing] token_format: expected either 'UUID'"
+" or 'PKI'"
+msgstr ""
+
+#: keystone/token/backends/kvs.py:37
+msgid ""
+"kvs token backend is DEPRECATED. Use keystone.token.backends.sql or "
+"keystone.token.backend.memcache instead."
msgstr ""
#: keystone/token/backends/memcache.py:144
@@ -597,3 +804,54 @@ msgstr ""
msgid "Unable to add token to revocation list."
msgstr ""
+#: keystone/token/providers/pki.py:43
+msgid "Unable to sign token."
+msgstr ""
+
+#: keystone/token/providers/uuid.py:193
+msgid "Trustor is disabled."
+msgstr ""
+
+#: keystone/token/providers/uuid.py:238
+msgid "Trustee has no delegated roles."
+msgstr ""
+
+#: keystone/token/providers/uuid.py:247
+#, python-format
+msgid "User %(user_id)s has no access to project %(project_id)s"
+msgstr ""
+
+#: keystone/token/providers/uuid.py:252
+#, python-format
+msgid "User %(user_id)s has no access to domain %(domain_id)s"
+msgstr ""
+
+#: keystone/token/providers/uuid.py:303
+msgid "User is not a trustee."
+msgstr ""
+
+#: keystone/token/providers/uuid.py:457
+msgid "Non-default domain is not supported"
+msgstr ""
+
+#: keystone/token/providers/uuid.py:465
+msgid "Domain scoped token is not supported"
+msgstr ""
+
+#: keystone/token/providers/uuid.py:528
+msgid "Failed to validate token"
+msgstr ""
+
+#: keystone/token/providers/uuid.py:566 keystone/token/providers/uuid.py:576
+msgid "Failed to verify token"
+msgstr ""
+
+#~ msgid "User have no access to project"
+#~ msgstr ""
+
+#~ msgid "User have no access to domain"
+#~ msgstr ""
+
+#~ msgid "Invalid value for token_format: %s. Allowed values are PKI or UUID."
+#~ msgstr ""
+
diff --git a/keystone/locale/ru_RU/LC_MESSAGES/keystone.po b/keystone/locale/ru_RU/LC_MESSAGES/keystone.po
new file mode 100644
index 00000000..4782ae4a
--- /dev/null
+++ b/keystone/locale/ru_RU/LC_MESSAGES/keystone.po
@@ -0,0 +1,848 @@
+# Russian (Russia) translations for keystone.
+# Copyright (C) 2013 ORGANIZATION
+# This file is distributed under the same license as the keystone project.
+#
+# Translators:
+msgid ""
+msgstr ""
+"Project-Id-Version: Keystone\n"
+"Report-Msgid-Bugs-To: https://bugs.launchpad.net/keystone\n"
+"POT-Creation-Date: 2013-08-02 17:05+0000\n"
+"PO-Revision-Date: 2013-07-29 22:01+0000\n"
+"Last-Translator: openstackjenkins <jenkins@openstack.org>\n"
+"Language-Team: Russian (Russia) "
+"(http://www.transifex.com/projects/p/openstack/language/ru_RU/)\n"
+"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && "
+"n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2)\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=utf-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Generated-By: Babel 1.3\n"
+
+#: keystone/clean.py:23
+#, python-format
+msgid "%s cannot be empty."
+msgstr ""
+
+#: keystone/clean.py:25
+#, python-format
+msgid "%(property_name)s cannot be less than %(min_length)s characters."
+msgstr ""
+
+#: keystone/clean.py:29
+#, python-format
+msgid "%(property_name)s should not be greater than %(max_length)s characters."
+msgstr ""
+
+#: keystone/clean.py:36
+#, python-format
+msgid "%(property_name)s is not a %(display_expected_type)s"
+msgstr ""
+
+#: keystone/exception.py:48
+msgid "missing exception kwargs (programmer error)"
+msgstr ""
+
+#: keystone/exception.py:65
+#, python-format
+msgid ""
+"Expecting to find %(attribute)s in %(target)s. The server could not "
+"comply with the request since it is either malformed or otherwise "
+"incorrect. The client is assumed to be in error."
+msgstr ""
+
+#: keystone/exception.py:74
+#, python-format
+msgid ""
+"String length exceeded.The length of string '%(string)s' exceeded the "
+"limit of column %(type)s(CHAR(%(length)d))."
+msgstr ""
+
+#: keystone/exception.py:80
+#, python-format
+msgid ""
+"Request attribute %(attribute)s must be less than or equal to %(size)i. "
+"The server could not comply with the request because the attribute size "
+"is invalid (too large). The client is assumed to be in error."
+msgstr ""
+
+#: keystone/exception.py:101
+msgid "The request you have made requires authentication."
+msgstr ""
+
+#: keystone/exception.py:107
+msgid "Authentication plugin error."
+msgstr ""
+
+#: keystone/exception.py:115
+msgid "Attempted to authenticate with an unsupported method."
+msgstr ""
+
+#: keystone/exception.py:123
+msgid "Additional authentications steps required."
+msgstr ""
+
+#: keystone/exception.py:131
+msgid "You are not authorized to perform the requested action."
+msgstr ""
+
+#: keystone/exception.py:138
+#, python-format
+msgid "You are not authorized to perform the requested action, %(action)s."
+msgstr ""
+
+#: keystone/exception.py:143
+#, python-format
+msgid "Could not find, %(target)s."
+msgstr ""
+
+#: keystone/exception.py:149
+#, python-format
+msgid "Could not find endpoint, %(endpoint_id)s."
+msgstr ""
+
+#: keystone/exception.py:156
+msgid "An unhandled exception has occurred: Could not find metadata."
+msgstr ""
+
+#: keystone/exception.py:161
+#, python-format
+msgid "Could not find policy, %(policy_id)s."
+msgstr ""
+
+#: keystone/exception.py:165
+#, python-format
+msgid "Could not find role, %(role_id)s."
+msgstr ""
+
+#: keystone/exception.py:169
+#, python-format
+msgid "Could not find service, %(service_id)s."
+msgstr ""
+
+#: keystone/exception.py:173
+#, python-format
+msgid "Could not find domain, %(domain_id)s."
+msgstr ""
+
+#: keystone/exception.py:177
+#, python-format
+msgid "Could not find project, %(project_id)s."
+msgstr ""
+
+#: keystone/exception.py:181
+#, python-format
+msgid "Could not find token, %(token_id)s."
+msgstr ""
+
+#: keystone/exception.py:185
+#, python-format
+msgid "Could not find user, %(user_id)s."
+msgstr ""
+
+#: keystone/exception.py:189
+#, python-format
+msgid "Could not find group, %(group_id)s."
+msgstr ""
+
+#: keystone/exception.py:193
+#, python-format
+msgid "Could not find trust, %(trust_id)s."
+msgstr ""
+
+#: keystone/exception.py:197
+#, python-format
+msgid "Could not find credential, %(credential_id)s."
+msgstr ""
+
+#: keystone/exception.py:201
+#, python-format
+msgid "Could not find version, %(version)s."
+msgstr ""
+
+#: keystone/exception.py:205
+#, python-format
+msgid "Conflict occurred attempting to store %(type)s. %(details)s"
+msgstr ""
+
+#: keystone/exception.py:212
+msgid "Request is too large."
+msgstr ""
+
+#: keystone/exception.py:218
+#, python-format
+msgid ""
+"An unexpected error prevented the server from fulfilling your request. "
+"%(exception)s"
+msgstr ""
+
+#: keystone/exception.py:225
+#, python-format
+msgid "Malformed endpoint URL (%(endpoint)s), see ERROR log for details."
+msgstr ""
+
+#: keystone/exception.py:230
+msgid "The action you have requested has not been implemented."
+msgstr ""
+
+#: keystone/exception.py:237
+#, python-format
+msgid "The Keystone paste configuration file %(config_file)s could not be found."
+msgstr ""
+
+#: keystone/test.py:117
+#, python-format
+msgid "Failed to checkout %s"
+msgstr ""
+
+#: keystone/assignment/core.py:529
+#, python-format
+msgid "Expected dict or list: %s"
+msgstr ""
+
+#: keystone/assignment/backends/kvs.py:138
+#: keystone/assignment/backends/sql.py:285
+#, python-format
+msgid "Cannot remove role that has not been granted, %s"
+msgstr ""
+
+#: keystone/assignment/backends/ldap.py:418
+#, python-format
+msgid "Role %s not found"
+msgstr ""
+
+#: keystone/assignment/backends/sql.py:114
+msgid "Inherited roles can only be assigned to domains"
+msgstr ""
+
+#: keystone/auth/controllers.py:71
+#, python-format
+msgid "Project is disabled: %s"
+msgstr ""
+
+#: keystone/auth/controllers.py:77 keystone/auth/plugins/password.py:38
+#, python-format
+msgid "Domain is disabled: %s"
+msgstr ""
+
+#: keystone/auth/controllers.py:83 keystone/auth/plugins/password.py:44
+#, python-format
+msgid "User is disabled: %s"
+msgstr ""
+
+#: keystone/auth/controllers.py:262
+msgid "Scoping to both domain and project is not allowed"
+msgstr ""
+
+#: keystone/auth/controllers.py:265
+msgid "Scoping to both domain and trust is not allowed"
+msgstr ""
+
+#: keystone/auth/controllers.py:268
+msgid "Scoping to both project and trust is not allowed"
+msgstr ""
+
+#: keystone/auth/controllers.py:353
+msgid "User not found"
+msgstr ""
+
+#: keystone/auth/plugins/external.py:36 keystone/auth/plugins/external.py:66
+msgid "No authenticated user"
+msgstr ""
+
+#: keystone/auth/plugins/external.py:49 keystone/auth/plugins/external.py:86
+#, python-format
+msgid "Unable to lookup user %s"
+msgstr ""
+
+#: keystone/auth/plugins/password.py:112
+msgid "Invalid username or password"
+msgstr ""
+
+#: keystone/catalog/core.py:38
+#, python-format
+msgid "Malformed endpoint %(url)s - unknown key %(keyerror)s"
+msgstr ""
+
+#: keystone/catalog/core.py:43
+#, python-format
+msgid ""
+"Malformed endpoint %(url)s - unknown key %(keyerror)s(are you missing "
+"brackets ?)"
+msgstr ""
+
+#: keystone/catalog/core.py:49
+#, python-format
+msgid ""
+"Malformed endpoint %s - incomplete format (are you "
+"missing a type notifier ?)"
+msgstr ""
+
+#: keystone/catalog/backends/templated.py:109
+#, python-format
+msgid "Unable to open template file %s"
+msgstr ""
+
+#: keystone/common/cms.py:26
+#, python-format
+msgid "Verify error: %s"
+msgstr ""
+
+#: keystone/common/cms.py:118
+msgid ""
+"Signing error: Unable to load certificate - ensure you've configured PKI "
+"with 'keystone-manage pki_setup'"
+msgstr ""
+
+#: keystone/common/cms.py:122
+#, python-format
+msgid "Signing error: %s"
+msgstr ""
+
+#: keystone/common/config.py:89
+#, python-format
+msgid "Unable to locate specified logging config file: %s"
+msgstr ""
+
+#: keystone/common/config.py:107
+msgid "Invalid syslog facility"
+msgstr ""
+
+#: keystone/common/controller.py:18
+#, python-format
+msgid "RBAC: Authorizing %(action)s(%(kwargs)s)"
+msgstr ""
+
+#: keystone/common/controller.py:25
+msgid "RBAC: Invalid token"
+msgstr ""
+
+#: keystone/common/controller.py:39 keystone/common/controller.py:60
+msgid "RBAC: Invalid user"
+msgstr ""
+
+#: keystone/common/controller.py:45
+msgid "RBAC: Proceeding without project"
+msgstr ""
+
+#: keystone/common/controller.py:65
+msgid "RBAC: Proceeding without tenant"
+msgstr ""
+
+#: keystone/common/controller.py:95 keystone/common/controller.py:146
+msgid "RBAC: Bypassing authorization"
+msgstr ""
+
+#: keystone/common/controller.py:104 keystone/common/controller.py:144
+msgid "RBAC: Authorization granted"
+msgstr ""
+
+#: keystone/common/controller.py:134
+#, python-format
+msgid "RBAC: Adding query filter params (%s)"
+msgstr ""
+
+#: keystone/common/controller.py:322
+msgid "Invalid token in normalize_domain_id"
+msgstr ""
+
+#: keystone/common/utils.py:233
+msgid ""
+"Error setting up the debug environment. Verify that the option --debug-"
+"url has the format <host>:<port> and that a debugger processes is "
+"listening on that port."
+msgstr ""
+
+#: keystone/common/wsgi.py:95
+msgid "No bind information present in token"
+msgstr ""
+
+#: keystone/common/wsgi.py:99
+#, python-format
+msgid "Named bind mode %s not in bind information"
+msgstr ""
+
+#: keystone/common/wsgi.py:105
+msgid "Kerberos credentials required and not present"
+msgstr ""
+
+#: keystone/common/wsgi.py:109
+msgid "Kerberos credentials do not match those in bind"
+msgstr ""
+
+#: keystone/common/wsgi.py:112
+msgid "Kerberos bind authentication successful"
+msgstr ""
+
+#: keystone/common/wsgi.py:115
+#, python-format
+msgid "Ignoring unknown bind for permissive mode: {%(bind_type)s: %(identifier)s}"
+msgstr ""
+
+#: keystone/common/wsgi.py:119
+#, python-format
+msgid "Couldn't verify unknown bind: {%(bind_type)s: %(identifier)s}"
+msgstr ""
+
+#: keystone/common/wsgi.py:211
+#, python-format
+msgid "arg_dict: %s"
+msgstr ""
+
+#: keystone/common/wsgi.py:243
+#, python-format
+msgid "Authorization failed. %(exception)s from %(remote_addr)s"
+msgstr ""
+
+#: keystone/common/wsgi.py:487
+msgid "The resource could not be found."
+msgstr ""
+
+#: keystone/common/environment/__init__.py:37
+#, python-format
+msgid "Environment configured as: %s"
+msgstr ""
+
+#: keystone/common/environment/eventlet_server.py:51
+#, python-format
+msgid "Starting %(arg0)s on %(host)s:%(port)s"
+msgstr ""
+
+#: keystone/common/environment/eventlet_server.py:113
+msgid "Server error"
+msgstr ""
+
+#: keystone/common/ldap/core.py:79
+#, python-format
+msgid "Invalid LDAP deref option: %s. Choose one of: "
+msgstr ""
+
+#: keystone/common/ldap/core.py:87
+#, python-format
+msgid "Invalid LDAP TLS certs option: %(option). Choose one of: %(options)s"
+msgstr ""
+
+#: keystone/common/ldap/core.py:99
+#, python-format
+msgid "Invalid LDAP scope: %(scope)s. Choose one of: %(options)s"
+msgstr ""
+
+#: keystone/common/ldap/core.py:189
+#, python-format
+msgid ""
+"Invalid additional attribute mapping: \"%s\". Format must be "
+"<ldap_attribute>:<keystone_attribute>"
+msgstr ""
+
+#: keystone/common/ldap/core.py:195
+#, python-format
+msgid ""
+"Invalid additional attribute mapping: \"%(item)s\". Value "
+"\"%(attr_map)s\" must use one of %(keys)s."
+msgstr ""
+
+#: keystone/common/ldap/core.py:279 keystone/identity/backends/kvs.py:177
+#: keystone/identity/backends/kvs.py:205
+#, python-format
+msgid "Duplicate name, %s."
+msgstr ""
+
+#: keystone/common/ldap/core.py:289 keystone/identity/backends/kvs.py:170
+#, python-format
+msgid "Duplicate ID, %s."
+msgstr ""
+
+#: keystone/common/ldap/core.py:294
+#, python-format
+msgid "LDAP %s create"
+msgstr ""
+
+#: keystone/common/ldap/core.py:372
+#, python-format
+msgid "LDAP %s update"
+msgstr ""
+
+#: keystone/common/ldap/core.py:405
+#, python-format
+msgid "LDAP %s delete"
+msgstr ""
+
+#: keystone/common/ldap/core.py:430
+#, python-format
+msgid "LDAP init: url=%s"
+msgstr ""
+
+#: keystone/common/ldap/core.py:431
+#, python-format
+msgid ""
+"LDAP init: use_tls=%(use_tls)s\n"
+"tls_cacertfile=%(tls_cacertfile)s\n"
+"tls_cacertdir=%(tls_cacertdir)s\n"
+"tls_req_cert=%(tls_req_cert)s\n"
+"tls_avail=%(tls_avail)s\n"
+msgstr ""
+
+#: keystone/common/ldap/core.py:450
+msgid "Invalid TLS / LDAPS combination"
+msgstr ""
+
+#: keystone/common/ldap/core.py:454
+#, python-format
+msgid "Invalid LDAP TLS_AVAIL option: %s. TLS not available"
+msgstr ""
+
+#: keystone/common/ldap/core.py:464
+#, python-format
+msgid "tls_cacertfile %s not found or is not a file"
+msgstr ""
+
+#: keystone/common/ldap/core.py:476
+#, python-format
+msgid "tls_cacertdir %s not found or is not a directory"
+msgstr ""
+
+#: keystone/common/ldap/core.py:483
+#, python-format
+msgid "LDAP TLS: invalid TLS_REQUIRE_CERT Option=%s"
+msgstr ""
+
+#: keystone/common/ldap/core.py:497
+#, python-format
+msgid "LDAP bind: dn=%s"
+msgstr ""
+
+#: keystone/common/ldap/core.py:508
+#, python-format
+msgid "LDAP add: dn=%(dn)s, attrs=%(attrs)s"
+msgstr ""
+
+#: keystone/common/ldap/core.py:514
+#, python-format
+msgid ""
+"LDAP search: dn=%(dn)s, scope=%(scope)s, query=%(query)s, "
+"attrs=%(attrlist)s"
+msgstr ""
+
+#: keystone/common/ldap/core.py:567
+msgid ""
+"LDAP Server does not support paging. Disable paging in keystone.conf to "
+"avoid this message."
+msgstr ""
+
+#: keystone/common/ldap/core.py:584
+#, python-format
+msgid "LDAP modify: dn=%(dn)s, modlist=%(modlist)s"
+msgstr ""
+
+#: keystone/common/ldap/core.py:590
+#, python-format
+msgid "LDAP delete: dn=%s"
+msgstr ""
+
+#: keystone/common/ldap/core.py:595
+#, python-format
+msgid "LDAP delete_ext: dn=%(dn)s, serverctrls=%(serverctrls)s"
+msgstr ""
+
+#: keystone/common/ldap/fakeldap.py:146
+#, python-format
+msgid "FakeLdap initialize url=%s"
+msgstr ""
+
+#: keystone/common/ldap/fakeldap.py:156
+#, python-format
+msgid "FakeLdap bind dn=%s"
+msgstr ""
+
+#: keystone/common/ldap/fakeldap.py:163
+#, python-format
+msgid "FakeLdap bind fail: dn=%s not found"
+msgstr ""
+
+#: keystone/common/ldap/fakeldap.py:170
+#, python-format
+msgid "FakeLdap bind fail: password for dn=%s not found"
+msgstr ""
+
+#: keystone/common/ldap/fakeldap.py:175
+#, python-format
+msgid "FakeLdap bind fail: password for dn=%s does not match"
+msgstr ""
+
+#: keystone/common/ldap/fakeldap.py:190
+#, python-format
+msgid "FakeLdap add item: dn=%(dn)s, attrs=%(attrs)s"
+msgstr ""
+
+#: keystone/common/ldap/fakeldap.py:193
+#, python-format
+msgid "FakeLdap add item failed: dn=%s is already in store."
+msgstr ""
+
+#: keystone/common/ldap/fakeldap.py:207 keystone/common/ldap/fakeldap.py:221
+#, python-format
+msgid "FakeLdap delete item: dn=%s"
+msgstr ""
+
+#: keystone/common/ldap/fakeldap.py:211 keystone/common/ldap/fakeldap.py:225
+#, python-format
+msgid "FakeLdap delete item failed: dn=%s not found."
+msgstr ""
+
+#: keystone/common/ldap/fakeldap.py:240
+#, python-format
+msgid "FakeLdap modify item: dn=%(dn)s attrs=%(attrs)s"
+msgstr ""
+
+#: keystone/common/ldap/fakeldap.py:245
+#, python-format
+msgid "FakeLdap modify item failed: dn=%s not found."
+msgstr ""
+
+#: keystone/common/ldap/fakeldap.py:262
+#, python-format
+msgid "FakeLdap modify item failed: item has no attribute \"%s\" to delete"
+msgstr ""
+
+#: keystone/common/ldap/fakeldap.py:273
+#, python-format
+msgid ""
+"FakeLdap modify item failed: item has no attribute \"%(k)s\" with value "
+"\"%(v)s\" to delete"
+msgstr ""
+
+#: keystone/common/ldap/fakeldap.py:279
+#, python-format
+msgid "FakeLdap modify item failed: unknown command %s"
+msgstr ""
+
+#: keystone/common/ldap/fakeldap.py:281
+#, python-format
+msgid "modify_s action %s not implemented"
+msgstr ""
+
+#: keystone/common/ldap/fakeldap.py:300
+#, python-format
+msgid "FakeLdap search at dn=%(dn)s scope=%(scope)s query=%(query)s"
+msgstr ""
+
+#: keystone/common/ldap/fakeldap.py:306
+msgid "FakeLdap search fail: dn not found for SCOPE_BASE"
+msgstr ""
+
+#: keystone/common/ldap/fakeldap.py:320
+#, python-format
+msgid "Search scope %s not implemented."
+msgstr ""
+
+#: keystone/common/sql/core.py:119
+msgid "Global engine callback raised."
+msgstr ""
+
+#: keystone/common/sql/core.py:233
+#, python-format
+msgid "Got mysql server has gone away: %s"
+msgstr ""
+
+#: keystone/common/sql/legacy.py:188
+#, python-format
+msgid "Cannot migrate EC2 credential: %s"
+msgstr ""
+
+#: keystone/common/sql/migration.py:47
+msgid "version should be an integer"
+msgstr ""
+
+#: keystone/common/sql/nova.py:65
+#, python-format
+msgid "Create tenant %s"
+msgstr ""
+
+#: keystone/common/sql/nova.py:82
+#, python-format
+msgid "Create user %s"
+msgstr ""
+
+#: keystone/common/sql/nova.py:91
+#, python-format
+msgid "Add user %(user_id)s to tenant %(tenant_id)s"
+msgstr ""
+
+#: keystone/common/sql/nova.py:100
+#, python-format
+msgid "Ignoring existing role %s"
+msgstr ""
+
+#: keystone/common/sql/nova.py:107
+#, python-format
+msgid "Create role %s"
+msgstr ""
+
+#: keystone/common/sql/nova.py:117
+#, python-format
+msgid "Assign role %(role_id)s to user %(user_id)s on tenant %(tenant_id)s"
+msgstr ""
+
+#: keystone/common/sql/nova.py:136
+#, python-format
+msgid "Creating ec2 cred for user %(user_id)s and tenant %(tenant_id)s"
+msgstr ""
+
+#: keystone/identity/controllers.py:952
+#, python-format
+msgid ""
+"Group %(group)s not found for role-assignment - %(target)s with Role: "
+"%(role)s"
+msgstr ""
+
+#: keystone/identity/backends/kvs.py:126 keystone/identity/backends/kvs.py:135
+msgid "User not found in group"
+msgstr ""
+
+#: keystone/identity/backends/ldap.py:189
+#, python-format
+msgid ""
+"Group member '%(user_dn)s' not found in '%(group_id)s'. The user should "
+"be removed from the group. The user will be ignored."
+msgstr ""
+
+#: keystone/identity/backends/ldap.py:334
+msgid "Changing Name not supported by LDAP"
+msgstr ""
+
+#: keystone/identity/backends/ldap.py:347
+#, python-format
+msgid "User %(user_id)s is already a member of group %(group_id)s"
+msgstr ""
+
+#: keystone/openstack/common/policy.py:394
+#, python-format
+msgid "Failed to understand rule %(rule)s"
+msgstr ""
+
+#: keystone/openstack/common/policy.py:404
+#, python-format
+msgid "No handler for matches of kind %s"
+msgstr ""
+
+#: keystone/openstack/common/policy.py:679
+#, python-format
+msgid "Failed to understand rule %(rule)r"
+msgstr ""
+
+#: keystone/openstack/common/crypto/utils.py:29
+msgid "An unknown error occurred in crypto utils."
+msgstr ""
+
+#: keystone/openstack/common/crypto/utils.py:36
+#, python-format
+msgid "Block size of %(given)d is too big, max = %(maximum)d"
+msgstr ""
+
+#: keystone/openstack/common/crypto/utils.py:45
+#, python-format
+msgid "Length of %(given)d is too long, max = %(maximum)d"
+msgstr ""
+
+#: keystone/policy/backends/rules.py:93
+#, python-format
+msgid "enforce %(action)s: %(credentials)s"
+msgstr ""
+
+#: keystone/token/controllers.py:378
+#, python-format
+msgid "User %(u_id)s is unauthorized for tenant %(t_id)s"
+msgstr ""
+
+#: keystone/token/controllers.py:395 keystone/token/controllers.py:398
+msgid "Token does not belong to specified tenant."
+msgstr ""
+
+#: keystone/token/provider.py:76
+msgid ""
+"keystone.conf [signing] token_format (deprecated) conflicts with "
+"keystone.conf [token] provider"
+msgstr ""
+
+#: keystone/token/provider.py:84
+msgid ""
+"keystone.conf [signing] token_format is deprecated in favor of "
+"keystone.conf [token] provider"
+msgstr ""
+
+#: keystone/token/provider.py:94
+msgid ""
+"Unrecognized keystone.conf [signing] token_format: expected either 'UUID'"
+" or 'PKI'"
+msgstr ""
+
+#: keystone/token/backends/kvs.py:37
+msgid ""
+"kvs token backend is DEPRECATED. Use keystone.token.backends.sql or "
+"keystone.token.backend.memcache instead."
+msgstr ""
+
+#: keystone/token/backends/memcache.py:144
+#, python-format
+msgid ""
+"Successful set of token-index-list for user-key \"%(user_key)s\", "
+"#%(count)d records"
+msgstr ""
+
+#: keystone/token/backends/memcache.py:154
+#, python-format
+msgid ""
+"Failed to set token-index-list for user-key \"%(user_key)s\". Attempt "
+"%(cas_retry)d of %(cas_retry_max)d"
+msgstr ""
+
+#: keystone/token/backends/memcache.py:163
+msgid "Unable to add token user list"
+msgstr ""
+
+#: keystone/token/backends/memcache.py:172
+msgid "Unable to add token to revocation list."
+msgstr ""
+
+#: keystone/token/providers/pki.py:43
+msgid "Unable to sign token."
+msgstr ""
+
+#: keystone/token/providers/uuid.py:193
+msgid "Trustor is disabled."
+msgstr ""
+
+#: keystone/token/providers/uuid.py:238
+msgid "Trustee has no delegated roles."
+msgstr ""
+
+#: keystone/token/providers/uuid.py:247
+#, python-format
+msgid "User %(user_id)s has no access to project %(project_id)s"
+msgstr ""
+
+#: keystone/token/providers/uuid.py:252
+#, python-format
+msgid "User %(user_id)s has no access to domain %(domain_id)s"
+msgstr ""
+
+#: keystone/token/providers/uuid.py:303
+msgid "User is not a trustee."
+msgstr ""
+
+#: keystone/token/providers/uuid.py:457
+msgid "Non-default domain is not supported"
+msgstr ""
+
+#: keystone/token/providers/uuid.py:465
+msgid "Domain scoped token is not supported"
+msgstr ""
+
+#: keystone/token/providers/uuid.py:528
+msgid "Failed to validate token"
+msgstr ""
+
+#: keystone/token/providers/uuid.py:566 keystone/token/providers/uuid.py:576
+msgid "Failed to verify token"
+msgstr ""
+
diff --git a/keystone/locale/sl_SI/LC_MESSAGES/keystone.po b/keystone/locale/sl_SI/LC_MESSAGES/keystone.po
index 4066e381..8c044ca8 100644
--- a/keystone/locale/sl_SI/LC_MESSAGES/keystone.po
+++ b/keystone/locale/sl_SI/LC_MESSAGES/keystone.po
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Keystone\n"
"Report-Msgid-Bugs-To: https://bugs.launchpad.net/keystone\n"
-"POT-Creation-Date: 2013-07-11 17:05+0000\n"
+"POT-Creation-Date: 2013-08-02 17:05+0000\n"
"PO-Revision-Date: 2013-06-28 06:06+0000\n"
"Last-Translator: daisy.ycguo <daisy.ycguo@gmail.com>\n"
"Language-Team: Slovenian (Slovenia) "
@@ -17,7 +17,7 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"Generated-By: Babel 0.9.6\n"
+"Generated-By: Babel 1.3\n"
#: keystone/clean.py:23
#, python-format
@@ -39,78 +39,224 @@ msgstr ""
msgid "%(property_name)s is not a %(display_expected_type)s"
msgstr ""
-#: keystone/test.py:106
+#: keystone/exception.py:48
+msgid "missing exception kwargs (programmer error)"
+msgstr ""
+
+#: keystone/exception.py:65
+#, python-format
+msgid ""
+"Expecting to find %(attribute)s in %(target)s. The server could not "
+"comply with the request since it is either malformed or otherwise "
+"incorrect. The client is assumed to be in error."
+msgstr ""
+
+#: keystone/exception.py:74
+#, python-format
+msgid ""
+"String length exceeded.The length of string '%(string)s' exceeded the "
+"limit of column %(type)s(CHAR(%(length)d))."
+msgstr ""
+
+#: keystone/exception.py:80
+#, python-format
+msgid ""
+"Request attribute %(attribute)s must be less than or equal to %(size)i. "
+"The server could not comply with the request because the attribute size "
+"is invalid (too large). The client is assumed to be in error."
+msgstr ""
+
+#: keystone/exception.py:101
+msgid "The request you have made requires authentication."
+msgstr ""
+
+#: keystone/exception.py:107
+msgid "Authentication plugin error."
+msgstr ""
+
+#: keystone/exception.py:115
+msgid "Attempted to authenticate with an unsupported method."
+msgstr ""
+
+#: keystone/exception.py:123
+msgid "Additional authentications steps required."
+msgstr ""
+
+#: keystone/exception.py:131
+msgid "You are not authorized to perform the requested action."
+msgstr ""
+
+#: keystone/exception.py:138
+#, python-format
+msgid "You are not authorized to perform the requested action, %(action)s."
+msgstr ""
+
+#: keystone/exception.py:143
+#, python-format
+msgid "Could not find, %(target)s."
+msgstr ""
+
+#: keystone/exception.py:149
+#, python-format
+msgid "Could not find endpoint, %(endpoint_id)s."
+msgstr ""
+
+#: keystone/exception.py:156
+msgid "An unhandled exception has occurred: Could not find metadata."
+msgstr ""
+
+#: keystone/exception.py:161
+#, python-format
+msgid "Could not find policy, %(policy_id)s."
+msgstr ""
+
+#: keystone/exception.py:165
+#, python-format
+msgid "Could not find role, %(role_id)s."
+msgstr ""
+
+#: keystone/exception.py:169
+#, python-format
+msgid "Could not find service, %(service_id)s."
+msgstr ""
+
+#: keystone/exception.py:173
+#, python-format
+msgid "Could not find domain, %(domain_id)s."
+msgstr ""
+
+#: keystone/exception.py:177
+#, python-format
+msgid "Could not find project, %(project_id)s."
+msgstr ""
+
+#: keystone/exception.py:181
+#, python-format
+msgid "Could not find token, %(token_id)s."
+msgstr ""
+
+#: keystone/exception.py:185
+#, python-format
+msgid "Could not find user, %(user_id)s."
+msgstr ""
+
+#: keystone/exception.py:189
+#, python-format
+msgid "Could not find group, %(group_id)s."
+msgstr ""
+
+#: keystone/exception.py:193
+#, python-format
+msgid "Could not find trust, %(trust_id)s."
+msgstr ""
+
+#: keystone/exception.py:197
+#, python-format
+msgid "Could not find credential, %(credential_id)s."
+msgstr ""
+
+#: keystone/exception.py:201
+#, python-format
+msgid "Could not find version, %(version)s."
+msgstr ""
+
+#: keystone/exception.py:205
+#, python-format
+msgid "Conflict occurred attempting to store %(type)s. %(details)s"
+msgstr ""
+
+#: keystone/exception.py:212
+msgid "Request is too large."
+msgstr ""
+
+#: keystone/exception.py:218
+#, python-format
+msgid ""
+"An unexpected error prevented the server from fulfilling your request. "
+"%(exception)s"
+msgstr ""
+
+#: keystone/exception.py:225
+#, python-format
+msgid "Malformed endpoint URL (%(endpoint)s), see ERROR log for details."
+msgstr ""
+
+#: keystone/exception.py:230
+msgid "The action you have requested has not been implemented."
+msgstr ""
+
+#: keystone/exception.py:237
+#, python-format
+msgid "The Keystone paste configuration file %(config_file)s could not be found."
+msgstr ""
+
+#: keystone/test.py:117
#, python-format
msgid "Failed to checkout %s"
msgstr ""
-#: keystone/assignment/backends/ldap.py:110
+#: keystone/assignment/core.py:529
#, python-format
msgid "Expected dict or list: %s"
msgstr ""
-#: keystone/assignment/backends/ldap.py:456
-#: keystone/identity/backends/ldap.py:433
+#: keystone/assignment/backends/kvs.py:138
+#: keystone/assignment/backends/sql.py:285
#, python-format
-msgid "Role %s not found"
+msgid "Cannot remove role that has not been granted, %s"
msgstr ""
-#: keystone/assignment/backends/sql.py:244
+#: keystone/assignment/backends/ldap.py:418
#, python-format
-msgid "Cannot remove role that has not been granted, %s"
+msgid "Role %s not found"
msgstr ""
-#: keystone/auth/controllers.py:72
+#: keystone/assignment/backends/sql.py:114
+msgid "Inherited roles can only be assigned to domains"
+msgstr ""
+
+#: keystone/auth/controllers.py:71
#, python-format
msgid "Project is disabled: %s"
msgstr ""
-#: keystone/auth/controllers.py:78 keystone/auth/plugins/password.py:38
+#: keystone/auth/controllers.py:77 keystone/auth/plugins/password.py:38
#, python-format
msgid "Domain is disabled: %s"
msgstr ""
-#: keystone/auth/controllers.py:84 keystone/auth/plugins/password.py:44
+#: keystone/auth/controllers.py:83 keystone/auth/plugins/password.py:44
#, python-format
msgid "User is disabled: %s"
msgstr ""
-#: keystone/auth/controllers.py:259
+#: keystone/auth/controllers.py:262
msgid "Scoping to both domain and project is not allowed"
msgstr ""
-#: keystone/auth/controllers.py:262
+#: keystone/auth/controllers.py:265
msgid "Scoping to both domain and trust is not allowed"
msgstr ""
-#: keystone/auth/controllers.py:265
+#: keystone/auth/controllers.py:268
msgid "Scoping to both project and trust is not allowed"
msgstr ""
-#: keystone/auth/controllers.py:325
-#, python-format
-msgid "Unable to lookup user %s"
-msgstr ""
-
-#: keystone/auth/controllers.py:355
+#: keystone/auth/controllers.py:353
msgid "User not found"
msgstr ""
-#: keystone/auth/token_factory.py:79
-msgid "User have no access to project"
-msgstr ""
-
-#: keystone/auth/token_factory.py:94
-msgid "User have no access to domain"
+#: keystone/auth/plugins/external.py:36 keystone/auth/plugins/external.py:66
+msgid "No authenticated user"
msgstr ""
-#: keystone/auth/token_factory.py:311 keystone/token/controllers.py:119
-msgid "Unable to sign token."
+#: keystone/auth/plugins/external.py:49 keystone/auth/plugins/external.py:86
+#, python-format
+msgid "Unable to lookup user %s"
msgstr ""
-#: keystone/auth/token_factory.py:314 keystone/token/controllers.py:122
-#, python-format
-msgid "Invalid value for token_format: %s. Allowed values are PKI or UUID."
+#: keystone/auth/plugins/password.py:112
+msgid "Invalid username or password"
msgstr ""
#: keystone/catalog/core.py:38
@@ -171,32 +317,32 @@ msgstr ""
msgid "RBAC: Invalid token"
msgstr ""
-#: keystone/common/controller.py:35 keystone/common/controller.py:56
+#: keystone/common/controller.py:39 keystone/common/controller.py:60
msgid "RBAC: Invalid user"
msgstr ""
-#: keystone/common/controller.py:41
+#: keystone/common/controller.py:45
msgid "RBAC: Proceeding without project"
msgstr ""
-#: keystone/common/controller.py:61
+#: keystone/common/controller.py:65
msgid "RBAC: Proceeding without tenant"
msgstr ""
-#: keystone/common/controller.py:91 keystone/common/controller.py:142
+#: keystone/common/controller.py:95 keystone/common/controller.py:146
msgid "RBAC: Bypassing authorization"
msgstr ""
-#: keystone/common/controller.py:100 keystone/common/controller.py:140
+#: keystone/common/controller.py:104 keystone/common/controller.py:144
msgid "RBAC: Authorization granted"
msgstr ""
-#: keystone/common/controller.py:130
+#: keystone/common/controller.py:134
#, python-format
msgid "RBAC: Adding query filter params (%s)"
msgstr ""
-#: keystone/common/controller.py:318
+#: keystone/common/controller.py:322
msgid "Invalid token in normalize_domain_id"
msgstr ""
@@ -207,17 +353,48 @@ msgid ""
"listening on that port."
msgstr ""
-#: keystone/common/wsgi.py:162
+#: keystone/common/wsgi.py:95
+msgid "No bind information present in token"
+msgstr ""
+
+#: keystone/common/wsgi.py:99
+#, python-format
+msgid "Named bind mode %s not in bind information"
+msgstr ""
+
+#: keystone/common/wsgi.py:105
+msgid "Kerberos credentials required and not present"
+msgstr ""
+
+#: keystone/common/wsgi.py:109
+msgid "Kerberos credentials do not match those in bind"
+msgstr ""
+
+#: keystone/common/wsgi.py:112
+msgid "Kerberos bind authentication successful"
+msgstr ""
+
+#: keystone/common/wsgi.py:115
+#, python-format
+msgid "Ignoring unknown bind for permissive mode: {%(bind_type)s: %(identifier)s}"
+msgstr ""
+
+#: keystone/common/wsgi.py:119
+#, python-format
+msgid "Couldn't verify unknown bind: {%(bind_type)s: %(identifier)s}"
+msgstr ""
+
+#: keystone/common/wsgi.py:211
#, python-format
msgid "arg_dict: %s"
msgstr ""
-#: keystone/common/wsgi.py:188
+#: keystone/common/wsgi.py:243
#, python-format
msgid "Authorization failed. %(exception)s from %(remote_addr)s"
msgstr ""
-#: keystone/common/wsgi.py:431
+#: keystone/common/wsgi.py:487
msgid "The resource could not be found."
msgstr ""
@@ -458,11 +635,11 @@ msgstr ""
msgid "Search scope %s not implemented."
msgstr ""
-#: keystone/common/sql/core.py:126
+#: keystone/common/sql/core.py:119
msgid "Global engine callback raised."
msgstr ""
-#: keystone/common/sql/core.py:240
+#: keystone/common/sql/core.py:233
#, python-format
msgid "Got mysql server has gone away: %s"
msgstr ""
@@ -511,7 +688,7 @@ msgstr ""
msgid "Creating ec2 cred for user %(user_id)s and tenant %(tenant_id)s"
msgstr ""
-#: keystone/identity/controllers.py:878
+#: keystone/identity/controllers.py:952
#, python-format
msgid ""
"Group %(group)s not found for role-assignment - %(target)s with Role: "
@@ -522,18 +699,18 @@ msgstr ""
msgid "User not found in group"
msgstr ""
-#: keystone/identity/backends/ldap.py:192
+#: keystone/identity/backends/ldap.py:189
#, python-format
msgid ""
"Group member '%(user_dn)s' not found in '%(group_id)s'. The user should "
"be removed from the group. The user will be ignored."
msgstr ""
-#: keystone/identity/backends/ldap.py:621
+#: keystone/identity/backends/ldap.py:334
msgid "Changing Name not supported by LDAP"
msgstr ""
-#: keystone/identity/backends/ldap.py:634
+#: keystone/identity/backends/ldap.py:347
#, python-format
msgid "User %(user_id)s is already a member of group %(group_id)s"
msgstr ""
@@ -553,26 +730,56 @@ msgstr ""
msgid "Failed to understand rule %(rule)r"
msgstr ""
+#: keystone/openstack/common/crypto/utils.py:29
+msgid "An unknown error occurred in crypto utils."
+msgstr ""
+
+#: keystone/openstack/common/crypto/utils.py:36
+#, python-format
+msgid "Block size of %(given)d is too big, max = %(maximum)d"
+msgstr ""
+
+#: keystone/openstack/common/crypto/utils.py:45
+#, python-format
+msgid "Length of %(given)d is too long, max = %(maximum)d"
+msgstr ""
+
#: keystone/policy/backends/rules.py:93
#, python-format
msgid "enforce %(action)s: %(credentials)s"
msgstr ""
-#: keystone/token/controllers.py:396
+#: keystone/token/controllers.py:378
#, python-format
msgid "User %(u_id)s is unauthorized for tenant %(t_id)s"
msgstr ""
-#: keystone/token/controllers.py:413 keystone/token/controllers.py:416
+#: keystone/token/controllers.py:395 keystone/token/controllers.py:398
msgid "Token does not belong to specified tenant."
msgstr ""
-#: keystone/token/controllers.py:423
-msgid "Non-default domain is not supported"
+#: keystone/token/provider.py:76
+msgid ""
+"keystone.conf [signing] token_format (deprecated) conflicts with "
+"keystone.conf [token] provider"
msgstr ""
-#: keystone/token/controllers.py:431
-msgid "Domain scoped token is not supported"
+#: keystone/token/provider.py:84
+msgid ""
+"keystone.conf [signing] token_format is deprecated in favor of "
+"keystone.conf [token] provider"
+msgstr ""
+
+#: keystone/token/provider.py:94
+msgid ""
+"Unrecognized keystone.conf [signing] token_format: expected either 'UUID'"
+" or 'PKI'"
+msgstr ""
+
+#: keystone/token/backends/kvs.py:37
+msgid ""
+"kvs token backend is DEPRECATED. Use keystone.token.backends.sql or "
+"keystone.token.backend.memcache instead."
msgstr ""
#: keystone/token/backends/memcache.py:144
@@ -597,3 +804,54 @@ msgstr ""
msgid "Unable to add token to revocation list."
msgstr ""
+#: keystone/token/providers/pki.py:43
+msgid "Unable to sign token."
+msgstr ""
+
+#: keystone/token/providers/uuid.py:193
+msgid "Trustor is disabled."
+msgstr ""
+
+#: keystone/token/providers/uuid.py:238
+msgid "Trustee has no delegated roles."
+msgstr ""
+
+#: keystone/token/providers/uuid.py:247
+#, python-format
+msgid "User %(user_id)s has no access to project %(project_id)s"
+msgstr ""
+
+#: keystone/token/providers/uuid.py:252
+#, python-format
+msgid "User %(user_id)s has no access to domain %(domain_id)s"
+msgstr ""
+
+#: keystone/token/providers/uuid.py:303
+msgid "User is not a trustee."
+msgstr ""
+
+#: keystone/token/providers/uuid.py:457
+msgid "Non-default domain is not supported"
+msgstr ""
+
+#: keystone/token/providers/uuid.py:465
+msgid "Domain scoped token is not supported"
+msgstr ""
+
+#: keystone/token/providers/uuid.py:528
+msgid "Failed to validate token"
+msgstr ""
+
+#: keystone/token/providers/uuid.py:566 keystone/token/providers/uuid.py:576
+msgid "Failed to verify token"
+msgstr ""
+
+#~ msgid "User have no access to project"
+#~ msgstr ""
+
+#~ msgid "User have no access to domain"
+#~ msgstr ""
+
+#~ msgid "Invalid value for token_format: %s. Allowed values are PKI or UUID."
+#~ msgstr ""
+
diff --git a/keystone/locale/sw_KE/LC_MESSAGES/keystone.po b/keystone/locale/sw_KE/LC_MESSAGES/keystone.po
new file mode 100644
index 00000000..f3a77803
--- /dev/null
+++ b/keystone/locale/sw_KE/LC_MESSAGES/keystone.po
@@ -0,0 +1,847 @@
+# Swahili (Kenya) translations for keystone.
+# Copyright (C) 2013 ORGANIZATION
+# This file is distributed under the same license as the keystone project.
+#
+# Translators:
+msgid ""
+msgstr ""
+"Project-Id-Version: Keystone\n"
+"Report-Msgid-Bugs-To: https://bugs.launchpad.net/keystone\n"
+"POT-Creation-Date: 2013-08-02 17:05+0000\n"
+"PO-Revision-Date: 2013-07-29 22:01+0000\n"
+"Last-Translator: openstackjenkins <jenkins@openstack.org>\n"
+"Language-Team: Swahili (Kenya) "
+"(http://www.transifex.com/projects/p/openstack/language/sw_KE/)\n"
+"Plural-Forms: nplurals=2; plural=(n != 1)\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=utf-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Generated-By: Babel 1.3\n"
+
+#: keystone/clean.py:23
+#, python-format
+msgid "%s cannot be empty."
+msgstr ""
+
+#: keystone/clean.py:25
+#, python-format
+msgid "%(property_name)s cannot be less than %(min_length)s characters."
+msgstr ""
+
+#: keystone/clean.py:29
+#, python-format
+msgid "%(property_name)s should not be greater than %(max_length)s characters."
+msgstr ""
+
+#: keystone/clean.py:36
+#, python-format
+msgid "%(property_name)s is not a %(display_expected_type)s"
+msgstr ""
+
+#: keystone/exception.py:48
+msgid "missing exception kwargs (programmer error)"
+msgstr ""
+
+#: keystone/exception.py:65
+#, python-format
+msgid ""
+"Expecting to find %(attribute)s in %(target)s. The server could not "
+"comply with the request since it is either malformed or otherwise "
+"incorrect. The client is assumed to be in error."
+msgstr ""
+
+#: keystone/exception.py:74
+#, python-format
+msgid ""
+"String length exceeded.The length of string '%(string)s' exceeded the "
+"limit of column %(type)s(CHAR(%(length)d))."
+msgstr ""
+
+#: keystone/exception.py:80
+#, python-format
+msgid ""
+"Request attribute %(attribute)s must be less than or equal to %(size)i. "
+"The server could not comply with the request because the attribute size "
+"is invalid (too large). The client is assumed to be in error."
+msgstr ""
+
+#: keystone/exception.py:101
+msgid "The request you have made requires authentication."
+msgstr ""
+
+#: keystone/exception.py:107
+msgid "Authentication plugin error."
+msgstr ""
+
+#: keystone/exception.py:115
+msgid "Attempted to authenticate with an unsupported method."
+msgstr ""
+
+#: keystone/exception.py:123
+msgid "Additional authentications steps required."
+msgstr ""
+
+#: keystone/exception.py:131
+msgid "You are not authorized to perform the requested action."
+msgstr ""
+
+#: keystone/exception.py:138
+#, python-format
+msgid "You are not authorized to perform the requested action, %(action)s."
+msgstr ""
+
+#: keystone/exception.py:143
+#, python-format
+msgid "Could not find, %(target)s."
+msgstr ""
+
+#: keystone/exception.py:149
+#, python-format
+msgid "Could not find endpoint, %(endpoint_id)s."
+msgstr ""
+
+#: keystone/exception.py:156
+msgid "An unhandled exception has occurred: Could not find metadata."
+msgstr ""
+
+#: keystone/exception.py:161
+#, python-format
+msgid "Could not find policy, %(policy_id)s."
+msgstr ""
+
+#: keystone/exception.py:165
+#, python-format
+msgid "Could not find role, %(role_id)s."
+msgstr ""
+
+#: keystone/exception.py:169
+#, python-format
+msgid "Could not find service, %(service_id)s."
+msgstr ""
+
+#: keystone/exception.py:173
+#, python-format
+msgid "Could not find domain, %(domain_id)s."
+msgstr ""
+
+#: keystone/exception.py:177
+#, python-format
+msgid "Could not find project, %(project_id)s."
+msgstr ""
+
+#: keystone/exception.py:181
+#, python-format
+msgid "Could not find token, %(token_id)s."
+msgstr ""
+
+#: keystone/exception.py:185
+#, python-format
+msgid "Could not find user, %(user_id)s."
+msgstr ""
+
+#: keystone/exception.py:189
+#, python-format
+msgid "Could not find group, %(group_id)s."
+msgstr ""
+
+#: keystone/exception.py:193
+#, python-format
+msgid "Could not find trust, %(trust_id)s."
+msgstr ""
+
+#: keystone/exception.py:197
+#, python-format
+msgid "Could not find credential, %(credential_id)s."
+msgstr ""
+
+#: keystone/exception.py:201
+#, python-format
+msgid "Could not find version, %(version)s."
+msgstr ""
+
+#: keystone/exception.py:205
+#, python-format
+msgid "Conflict occurred attempting to store %(type)s. %(details)s"
+msgstr ""
+
+#: keystone/exception.py:212
+msgid "Request is too large."
+msgstr ""
+
+#: keystone/exception.py:218
+#, python-format
+msgid ""
+"An unexpected error prevented the server from fulfilling your request. "
+"%(exception)s"
+msgstr ""
+
+#: keystone/exception.py:225
+#, python-format
+msgid "Malformed endpoint URL (%(endpoint)s), see ERROR log for details."
+msgstr ""
+
+#: keystone/exception.py:230
+msgid "The action you have requested has not been implemented."
+msgstr ""
+
+#: keystone/exception.py:237
+#, python-format
+msgid "The Keystone paste configuration file %(config_file)s could not be found."
+msgstr ""
+
+#: keystone/test.py:117
+#, python-format
+msgid "Failed to checkout %s"
+msgstr ""
+
+#: keystone/assignment/core.py:529
+#, python-format
+msgid "Expected dict or list: %s"
+msgstr ""
+
+#: keystone/assignment/backends/kvs.py:138
+#: keystone/assignment/backends/sql.py:285
+#, python-format
+msgid "Cannot remove role that has not been granted, %s"
+msgstr ""
+
+#: keystone/assignment/backends/ldap.py:418
+#, python-format
+msgid "Role %s not found"
+msgstr ""
+
+#: keystone/assignment/backends/sql.py:114
+msgid "Inherited roles can only be assigned to domains"
+msgstr ""
+
+#: keystone/auth/controllers.py:71
+#, python-format
+msgid "Project is disabled: %s"
+msgstr ""
+
+#: keystone/auth/controllers.py:77 keystone/auth/plugins/password.py:38
+#, python-format
+msgid "Domain is disabled: %s"
+msgstr ""
+
+#: keystone/auth/controllers.py:83 keystone/auth/plugins/password.py:44
+#, python-format
+msgid "User is disabled: %s"
+msgstr ""
+
+#: keystone/auth/controllers.py:262
+msgid "Scoping to both domain and project is not allowed"
+msgstr ""
+
+#: keystone/auth/controllers.py:265
+msgid "Scoping to both domain and trust is not allowed"
+msgstr ""
+
+#: keystone/auth/controllers.py:268
+msgid "Scoping to both project and trust is not allowed"
+msgstr ""
+
+#: keystone/auth/controllers.py:353
+msgid "User not found"
+msgstr ""
+
+#: keystone/auth/plugins/external.py:36 keystone/auth/plugins/external.py:66
+msgid "No authenticated user"
+msgstr ""
+
+#: keystone/auth/plugins/external.py:49 keystone/auth/plugins/external.py:86
+#, python-format
+msgid "Unable to lookup user %s"
+msgstr ""
+
+#: keystone/auth/plugins/password.py:112
+msgid "Invalid username or password"
+msgstr ""
+
+#: keystone/catalog/core.py:38
+#, python-format
+msgid "Malformed endpoint %(url)s - unknown key %(keyerror)s"
+msgstr ""
+
+#: keystone/catalog/core.py:43
+#, python-format
+msgid ""
+"Malformed endpoint %(url)s - unknown key %(keyerror)s(are you missing "
+"brackets ?)"
+msgstr ""
+
+#: keystone/catalog/core.py:49
+#, python-format
+msgid ""
+"Malformed endpoint %s - incomplete format (are you "
+"missing a type notifier ?)"
+msgstr ""
+
+#: keystone/catalog/backends/templated.py:109
+#, python-format
+msgid "Unable to open template file %s"
+msgstr ""
+
+#: keystone/common/cms.py:26
+#, python-format
+msgid "Verify error: %s"
+msgstr ""
+
+#: keystone/common/cms.py:118
+msgid ""
+"Signing error: Unable to load certificate - ensure you've configured PKI "
+"with 'keystone-manage pki_setup'"
+msgstr ""
+
+#: keystone/common/cms.py:122
+#, python-format
+msgid "Signing error: %s"
+msgstr ""
+
+#: keystone/common/config.py:89
+#, python-format
+msgid "Unable to locate specified logging config file: %s"
+msgstr ""
+
+#: keystone/common/config.py:107
+msgid "Invalid syslog facility"
+msgstr ""
+
+#: keystone/common/controller.py:18
+#, python-format
+msgid "RBAC: Authorizing %(action)s(%(kwargs)s)"
+msgstr ""
+
+#: keystone/common/controller.py:25
+msgid "RBAC: Invalid token"
+msgstr ""
+
+#: keystone/common/controller.py:39 keystone/common/controller.py:60
+msgid "RBAC: Invalid user"
+msgstr ""
+
+#: keystone/common/controller.py:45
+msgid "RBAC: Proceeding without project"
+msgstr ""
+
+#: keystone/common/controller.py:65
+msgid "RBAC: Proceeding without tenant"
+msgstr ""
+
+#: keystone/common/controller.py:95 keystone/common/controller.py:146
+msgid "RBAC: Bypassing authorization"
+msgstr ""
+
+#: keystone/common/controller.py:104 keystone/common/controller.py:144
+msgid "RBAC: Authorization granted"
+msgstr ""
+
+#: keystone/common/controller.py:134
+#, python-format
+msgid "RBAC: Adding query filter params (%s)"
+msgstr ""
+
+#: keystone/common/controller.py:322
+msgid "Invalid token in normalize_domain_id"
+msgstr ""
+
+#: keystone/common/utils.py:233
+msgid ""
+"Error setting up the debug environment. Verify that the option --debug-"
+"url has the format <host>:<port> and that a debugger processes is "
+"listening on that port."
+msgstr ""
+
+#: keystone/common/wsgi.py:95
+msgid "No bind information present in token"
+msgstr ""
+
+#: keystone/common/wsgi.py:99
+#, python-format
+msgid "Named bind mode %s not in bind information"
+msgstr ""
+
+#: keystone/common/wsgi.py:105
+msgid "Kerberos credentials required and not present"
+msgstr ""
+
+#: keystone/common/wsgi.py:109
+msgid "Kerberos credentials do not match those in bind"
+msgstr ""
+
+#: keystone/common/wsgi.py:112
+msgid "Kerberos bind authentication successful"
+msgstr ""
+
+#: keystone/common/wsgi.py:115
+#, python-format
+msgid "Ignoring unknown bind for permissive mode: {%(bind_type)s: %(identifier)s}"
+msgstr ""
+
+#: keystone/common/wsgi.py:119
+#, python-format
+msgid "Couldn't verify unknown bind: {%(bind_type)s: %(identifier)s}"
+msgstr ""
+
+#: keystone/common/wsgi.py:211
+#, python-format
+msgid "arg_dict: %s"
+msgstr ""
+
+#: keystone/common/wsgi.py:243
+#, python-format
+msgid "Authorization failed. %(exception)s from %(remote_addr)s"
+msgstr ""
+
+#: keystone/common/wsgi.py:487
+msgid "The resource could not be found."
+msgstr ""
+
+#: keystone/common/environment/__init__.py:37
+#, python-format
+msgid "Environment configured as: %s"
+msgstr ""
+
+#: keystone/common/environment/eventlet_server.py:51
+#, python-format
+msgid "Starting %(arg0)s on %(host)s:%(port)s"
+msgstr ""
+
+#: keystone/common/environment/eventlet_server.py:113
+msgid "Server error"
+msgstr ""
+
+#: keystone/common/ldap/core.py:79
+#, python-format
+msgid "Invalid LDAP deref option: %s. Choose one of: "
+msgstr ""
+
+#: keystone/common/ldap/core.py:87
+#, python-format
+msgid "Invalid LDAP TLS certs option: %(option). Choose one of: %(options)s"
+msgstr ""
+
+#: keystone/common/ldap/core.py:99
+#, python-format
+msgid "Invalid LDAP scope: %(scope)s. Choose one of: %(options)s"
+msgstr ""
+
+#: keystone/common/ldap/core.py:189
+#, python-format
+msgid ""
+"Invalid additional attribute mapping: \"%s\". Format must be "
+"<ldap_attribute>:<keystone_attribute>"
+msgstr ""
+
+#: keystone/common/ldap/core.py:195
+#, python-format
+msgid ""
+"Invalid additional attribute mapping: \"%(item)s\". Value "
+"\"%(attr_map)s\" must use one of %(keys)s."
+msgstr ""
+
+#: keystone/common/ldap/core.py:279 keystone/identity/backends/kvs.py:177
+#: keystone/identity/backends/kvs.py:205
+#, python-format
+msgid "Duplicate name, %s."
+msgstr ""
+
+#: keystone/common/ldap/core.py:289 keystone/identity/backends/kvs.py:170
+#, python-format
+msgid "Duplicate ID, %s."
+msgstr ""
+
+#: keystone/common/ldap/core.py:294
+#, python-format
+msgid "LDAP %s create"
+msgstr ""
+
+#: keystone/common/ldap/core.py:372
+#, python-format
+msgid "LDAP %s update"
+msgstr ""
+
+#: keystone/common/ldap/core.py:405
+#, python-format
+msgid "LDAP %s delete"
+msgstr ""
+
+#: keystone/common/ldap/core.py:430
+#, python-format
+msgid "LDAP init: url=%s"
+msgstr ""
+
+#: keystone/common/ldap/core.py:431
+#, python-format
+msgid ""
+"LDAP init: use_tls=%(use_tls)s\n"
+"tls_cacertfile=%(tls_cacertfile)s\n"
+"tls_cacertdir=%(tls_cacertdir)s\n"
+"tls_req_cert=%(tls_req_cert)s\n"
+"tls_avail=%(tls_avail)s\n"
+msgstr ""
+
+#: keystone/common/ldap/core.py:450
+msgid "Invalid TLS / LDAPS combination"
+msgstr ""
+
+#: keystone/common/ldap/core.py:454
+#, python-format
+msgid "Invalid LDAP TLS_AVAIL option: %s. TLS not available"
+msgstr ""
+
+#: keystone/common/ldap/core.py:464
+#, python-format
+msgid "tls_cacertfile %s not found or is not a file"
+msgstr ""
+
+#: keystone/common/ldap/core.py:476
+#, python-format
+msgid "tls_cacertdir %s not found or is not a directory"
+msgstr ""
+
+#: keystone/common/ldap/core.py:483
+#, python-format
+msgid "LDAP TLS: invalid TLS_REQUIRE_CERT Option=%s"
+msgstr ""
+
+#: keystone/common/ldap/core.py:497
+#, python-format
+msgid "LDAP bind: dn=%s"
+msgstr ""
+
+#: keystone/common/ldap/core.py:508
+#, python-format
+msgid "LDAP add: dn=%(dn)s, attrs=%(attrs)s"
+msgstr ""
+
+#: keystone/common/ldap/core.py:514
+#, python-format
+msgid ""
+"LDAP search: dn=%(dn)s, scope=%(scope)s, query=%(query)s, "
+"attrs=%(attrlist)s"
+msgstr ""
+
+#: keystone/common/ldap/core.py:567
+msgid ""
+"LDAP Server does not support paging. Disable paging in keystone.conf to "
+"avoid this message."
+msgstr ""
+
+#: keystone/common/ldap/core.py:584
+#, python-format
+msgid "LDAP modify: dn=%(dn)s, modlist=%(modlist)s"
+msgstr ""
+
+#: keystone/common/ldap/core.py:590
+#, python-format
+msgid "LDAP delete: dn=%s"
+msgstr ""
+
+#: keystone/common/ldap/core.py:595
+#, python-format
+msgid "LDAP delete_ext: dn=%(dn)s, serverctrls=%(serverctrls)s"
+msgstr ""
+
+#: keystone/common/ldap/fakeldap.py:146
+#, python-format
+msgid "FakeLdap initialize url=%s"
+msgstr ""
+
+#: keystone/common/ldap/fakeldap.py:156
+#, python-format
+msgid "FakeLdap bind dn=%s"
+msgstr ""
+
+#: keystone/common/ldap/fakeldap.py:163
+#, python-format
+msgid "FakeLdap bind fail: dn=%s not found"
+msgstr ""
+
+#: keystone/common/ldap/fakeldap.py:170
+#, python-format
+msgid "FakeLdap bind fail: password for dn=%s not found"
+msgstr ""
+
+#: keystone/common/ldap/fakeldap.py:175
+#, python-format
+msgid "FakeLdap bind fail: password for dn=%s does not match"
+msgstr ""
+
+#: keystone/common/ldap/fakeldap.py:190
+#, python-format
+msgid "FakeLdap add item: dn=%(dn)s, attrs=%(attrs)s"
+msgstr ""
+
+#: keystone/common/ldap/fakeldap.py:193
+#, python-format
+msgid "FakeLdap add item failed: dn=%s is already in store."
+msgstr ""
+
+#: keystone/common/ldap/fakeldap.py:207 keystone/common/ldap/fakeldap.py:221
+#, python-format
+msgid "FakeLdap delete item: dn=%s"
+msgstr ""
+
+#: keystone/common/ldap/fakeldap.py:211 keystone/common/ldap/fakeldap.py:225
+#, python-format
+msgid "FakeLdap delete item failed: dn=%s not found."
+msgstr ""
+
+#: keystone/common/ldap/fakeldap.py:240
+#, python-format
+msgid "FakeLdap modify item: dn=%(dn)s attrs=%(attrs)s"
+msgstr ""
+
+#: keystone/common/ldap/fakeldap.py:245
+#, python-format
+msgid "FakeLdap modify item failed: dn=%s not found."
+msgstr ""
+
+#: keystone/common/ldap/fakeldap.py:262
+#, python-format
+msgid "FakeLdap modify item failed: item has no attribute \"%s\" to delete"
+msgstr ""
+
+#: keystone/common/ldap/fakeldap.py:273
+#, python-format
+msgid ""
+"FakeLdap modify item failed: item has no attribute \"%(k)s\" with value "
+"\"%(v)s\" to delete"
+msgstr ""
+
+#: keystone/common/ldap/fakeldap.py:279
+#, python-format
+msgid "FakeLdap modify item failed: unknown command %s"
+msgstr ""
+
+#: keystone/common/ldap/fakeldap.py:281
+#, python-format
+msgid "modify_s action %s not implemented"
+msgstr ""
+
+#: keystone/common/ldap/fakeldap.py:300
+#, python-format
+msgid "FakeLdap search at dn=%(dn)s scope=%(scope)s query=%(query)s"
+msgstr ""
+
+#: keystone/common/ldap/fakeldap.py:306
+msgid "FakeLdap search fail: dn not found for SCOPE_BASE"
+msgstr ""
+
+#: keystone/common/ldap/fakeldap.py:320
+#, python-format
+msgid "Search scope %s not implemented."
+msgstr ""
+
+#: keystone/common/sql/core.py:119
+msgid "Global engine callback raised."
+msgstr ""
+
+#: keystone/common/sql/core.py:233
+#, python-format
+msgid "Got mysql server has gone away: %s"
+msgstr ""
+
+#: keystone/common/sql/legacy.py:188
+#, python-format
+msgid "Cannot migrate EC2 credential: %s"
+msgstr ""
+
+#: keystone/common/sql/migration.py:47
+msgid "version should be an integer"
+msgstr ""
+
+#: keystone/common/sql/nova.py:65
+#, python-format
+msgid "Create tenant %s"
+msgstr ""
+
+#: keystone/common/sql/nova.py:82
+#, python-format
+msgid "Create user %s"
+msgstr ""
+
+#: keystone/common/sql/nova.py:91
+#, python-format
+msgid "Add user %(user_id)s to tenant %(tenant_id)s"
+msgstr ""
+
+#: keystone/common/sql/nova.py:100
+#, python-format
+msgid "Ignoring existing role %s"
+msgstr ""
+
+#: keystone/common/sql/nova.py:107
+#, python-format
+msgid "Create role %s"
+msgstr ""
+
+#: keystone/common/sql/nova.py:117
+#, python-format
+msgid "Assign role %(role_id)s to user %(user_id)s on tenant %(tenant_id)s"
+msgstr ""
+
+#: keystone/common/sql/nova.py:136
+#, python-format
+msgid "Creating ec2 cred for user %(user_id)s and tenant %(tenant_id)s"
+msgstr ""
+
+#: keystone/identity/controllers.py:952
+#, python-format
+msgid ""
+"Group %(group)s not found for role-assignment - %(target)s with Role: "
+"%(role)s"
+msgstr ""
+
+#: keystone/identity/backends/kvs.py:126 keystone/identity/backends/kvs.py:135
+msgid "User not found in group"
+msgstr ""
+
+#: keystone/identity/backends/ldap.py:189
+#, python-format
+msgid ""
+"Group member '%(user_dn)s' not found in '%(group_id)s'. The user should "
+"be removed from the group. The user will be ignored."
+msgstr ""
+
+#: keystone/identity/backends/ldap.py:334
+msgid "Changing Name not supported by LDAP"
+msgstr ""
+
+#: keystone/identity/backends/ldap.py:347
+#, python-format
+msgid "User %(user_id)s is already a member of group %(group_id)s"
+msgstr ""
+
+#: keystone/openstack/common/policy.py:394
+#, python-format
+msgid "Failed to understand rule %(rule)s"
+msgstr ""
+
+#: keystone/openstack/common/policy.py:404
+#, python-format
+msgid "No handler for matches of kind %s"
+msgstr ""
+
+#: keystone/openstack/common/policy.py:679
+#, python-format
+msgid "Failed to understand rule %(rule)r"
+msgstr ""
+
+#: keystone/openstack/common/crypto/utils.py:29
+msgid "An unknown error occurred in crypto utils."
+msgstr ""
+
+#: keystone/openstack/common/crypto/utils.py:36
+#, python-format
+msgid "Block size of %(given)d is too big, max = %(maximum)d"
+msgstr ""
+
+#: keystone/openstack/common/crypto/utils.py:45
+#, python-format
+msgid "Length of %(given)d is too long, max = %(maximum)d"
+msgstr ""
+
+#: keystone/policy/backends/rules.py:93
+#, python-format
+msgid "enforce %(action)s: %(credentials)s"
+msgstr ""
+
+#: keystone/token/controllers.py:378
+#, python-format
+msgid "User %(u_id)s is unauthorized for tenant %(t_id)s"
+msgstr ""
+
+#: keystone/token/controllers.py:395 keystone/token/controllers.py:398
+msgid "Token does not belong to specified tenant."
+msgstr ""
+
+#: keystone/token/provider.py:76
+msgid ""
+"keystone.conf [signing] token_format (deprecated) conflicts with "
+"keystone.conf [token] provider"
+msgstr ""
+
+#: keystone/token/provider.py:84
+msgid ""
+"keystone.conf [signing] token_format is deprecated in favor of "
+"keystone.conf [token] provider"
+msgstr ""
+
+#: keystone/token/provider.py:94
+msgid ""
+"Unrecognized keystone.conf [signing] token_format: expected either 'UUID'"
+" or 'PKI'"
+msgstr ""
+
+#: keystone/token/backends/kvs.py:37
+msgid ""
+"kvs token backend is DEPRECATED. Use keystone.token.backends.sql or "
+"keystone.token.backend.memcache instead."
+msgstr ""
+
+#: keystone/token/backends/memcache.py:144
+#, python-format
+msgid ""
+"Successful set of token-index-list for user-key \"%(user_key)s\", "
+"#%(count)d records"
+msgstr ""
+
+#: keystone/token/backends/memcache.py:154
+#, python-format
+msgid ""
+"Failed to set token-index-list for user-key \"%(user_key)s\". Attempt "
+"%(cas_retry)d of %(cas_retry_max)d"
+msgstr ""
+
+#: keystone/token/backends/memcache.py:163
+msgid "Unable to add token user list"
+msgstr ""
+
+#: keystone/token/backends/memcache.py:172
+msgid "Unable to add token to revocation list."
+msgstr ""
+
+#: keystone/token/providers/pki.py:43
+msgid "Unable to sign token."
+msgstr ""
+
+#: keystone/token/providers/uuid.py:193
+msgid "Trustor is disabled."
+msgstr ""
+
+#: keystone/token/providers/uuid.py:238
+msgid "Trustee has no delegated roles."
+msgstr ""
+
+#: keystone/token/providers/uuid.py:247
+#, python-format
+msgid "User %(user_id)s has no access to project %(project_id)s"
+msgstr ""
+
+#: keystone/token/providers/uuid.py:252
+#, python-format
+msgid "User %(user_id)s has no access to domain %(domain_id)s"
+msgstr ""
+
+#: keystone/token/providers/uuid.py:303
+msgid "User is not a trustee."
+msgstr ""
+
+#: keystone/token/providers/uuid.py:457
+msgid "Non-default domain is not supported"
+msgstr ""
+
+#: keystone/token/providers/uuid.py:465
+msgid "Domain scoped token is not supported"
+msgstr ""
+
+#: keystone/token/providers/uuid.py:528
+msgid "Failed to validate token"
+msgstr ""
+
+#: keystone/token/providers/uuid.py:566 keystone/token/providers/uuid.py:576
+msgid "Failed to verify token"
+msgstr ""
+
diff --git a/keystone/locale/tl/LC_MESSAGES/keystone.po b/keystone/locale/tl/LC_MESSAGES/keystone.po
new file mode 100644
index 00000000..b1186d54
--- /dev/null
+++ b/keystone/locale/tl/LC_MESSAGES/keystone.po
@@ -0,0 +1,847 @@
+# Filipino (Philippines) translations for keystone.
+# Copyright (C) 2013 ORGANIZATION
+# This file is distributed under the same license as the keystone project.
+#
+# Translators:
+msgid ""
+msgstr ""
+"Project-Id-Version: Keystone\n"
+"Report-Msgid-Bugs-To: https://bugs.launchpad.net/keystone\n"
+"POT-Creation-Date: 2013-08-02 17:05+0000\n"
+"PO-Revision-Date: 2013-07-29 22:01+0000\n"
+"Last-Translator: openstackjenkins <jenkins@openstack.org>\n"
+"Language-Team: Tagalog "
+"(http://www.transifex.com/projects/p/openstack/language/tl/)\n"
+"Plural-Forms: nplurals=2; plural=(n > 1)\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=utf-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Generated-By: Babel 1.3\n"
+
+#: keystone/clean.py:23
+#, python-format
+msgid "%s cannot be empty."
+msgstr ""
+
+#: keystone/clean.py:25
+#, python-format
+msgid "%(property_name)s cannot be less than %(min_length)s characters."
+msgstr ""
+
+#: keystone/clean.py:29
+#, python-format
+msgid "%(property_name)s should not be greater than %(max_length)s characters."
+msgstr ""
+
+#: keystone/clean.py:36
+#, python-format
+msgid "%(property_name)s is not a %(display_expected_type)s"
+msgstr ""
+
+#: keystone/exception.py:48
+msgid "missing exception kwargs (programmer error)"
+msgstr ""
+
+#: keystone/exception.py:65
+#, python-format
+msgid ""
+"Expecting to find %(attribute)s in %(target)s. The server could not "
+"comply with the request since it is either malformed or otherwise "
+"incorrect. The client is assumed to be in error."
+msgstr ""
+
+#: keystone/exception.py:74
+#, python-format
+msgid ""
+"String length exceeded.The length of string '%(string)s' exceeded the "
+"limit of column %(type)s(CHAR(%(length)d))."
+msgstr ""
+
+#: keystone/exception.py:80
+#, python-format
+msgid ""
+"Request attribute %(attribute)s must be less than or equal to %(size)i. "
+"The server could not comply with the request because the attribute size "
+"is invalid (too large). The client is assumed to be in error."
+msgstr ""
+
+#: keystone/exception.py:101
+msgid "The request you have made requires authentication."
+msgstr ""
+
+#: keystone/exception.py:107
+msgid "Authentication plugin error."
+msgstr ""
+
+#: keystone/exception.py:115
+msgid "Attempted to authenticate with an unsupported method."
+msgstr ""
+
+#: keystone/exception.py:123
+msgid "Additional authentications steps required."
+msgstr ""
+
+#: keystone/exception.py:131
+msgid "You are not authorized to perform the requested action."
+msgstr ""
+
+#: keystone/exception.py:138
+#, python-format
+msgid "You are not authorized to perform the requested action, %(action)s."
+msgstr ""
+
+#: keystone/exception.py:143
+#, python-format
+msgid "Could not find, %(target)s."
+msgstr ""
+
+#: keystone/exception.py:149
+#, python-format
+msgid "Could not find endpoint, %(endpoint_id)s."
+msgstr ""
+
+#: keystone/exception.py:156
+msgid "An unhandled exception has occurred: Could not find metadata."
+msgstr ""
+
+#: keystone/exception.py:161
+#, python-format
+msgid "Could not find policy, %(policy_id)s."
+msgstr ""
+
+#: keystone/exception.py:165
+#, python-format
+msgid "Could not find role, %(role_id)s."
+msgstr ""
+
+#: keystone/exception.py:169
+#, python-format
+msgid "Could not find service, %(service_id)s."
+msgstr ""
+
+#: keystone/exception.py:173
+#, python-format
+msgid "Could not find domain, %(domain_id)s."
+msgstr ""
+
+#: keystone/exception.py:177
+#, python-format
+msgid "Could not find project, %(project_id)s."
+msgstr ""
+
+#: keystone/exception.py:181
+#, python-format
+msgid "Could not find token, %(token_id)s."
+msgstr ""
+
+#: keystone/exception.py:185
+#, python-format
+msgid "Could not find user, %(user_id)s."
+msgstr ""
+
+#: keystone/exception.py:189
+#, python-format
+msgid "Could not find group, %(group_id)s."
+msgstr ""
+
+#: keystone/exception.py:193
+#, python-format
+msgid "Could not find trust, %(trust_id)s."
+msgstr ""
+
+#: keystone/exception.py:197
+#, python-format
+msgid "Could not find credential, %(credential_id)s."
+msgstr ""
+
+#: keystone/exception.py:201
+#, python-format
+msgid "Could not find version, %(version)s."
+msgstr ""
+
+#: keystone/exception.py:205
+#, python-format
+msgid "Conflict occurred attempting to store %(type)s. %(details)s"
+msgstr ""
+
+#: keystone/exception.py:212
+msgid "Request is too large."
+msgstr ""
+
+#: keystone/exception.py:218
+#, python-format
+msgid ""
+"An unexpected error prevented the server from fulfilling your request. "
+"%(exception)s"
+msgstr ""
+
+#: keystone/exception.py:225
+#, python-format
+msgid "Malformed endpoint URL (%(endpoint)s), see ERROR log for details."
+msgstr ""
+
+#: keystone/exception.py:230
+msgid "The action you have requested has not been implemented."
+msgstr ""
+
+#: keystone/exception.py:237
+#, python-format
+msgid "The Keystone paste configuration file %(config_file)s could not be found."
+msgstr ""
+
+#: keystone/test.py:117
+#, python-format
+msgid "Failed to checkout %s"
+msgstr ""
+
+#: keystone/assignment/core.py:529
+#, python-format
+msgid "Expected dict or list: %s"
+msgstr ""
+
+#: keystone/assignment/backends/kvs.py:138
+#: keystone/assignment/backends/sql.py:285
+#, python-format
+msgid "Cannot remove role that has not been granted, %s"
+msgstr ""
+
+#: keystone/assignment/backends/ldap.py:418
+#, python-format
+msgid "Role %s not found"
+msgstr ""
+
+#: keystone/assignment/backends/sql.py:114
+msgid "Inherited roles can only be assigned to domains"
+msgstr ""
+
+#: keystone/auth/controllers.py:71
+#, python-format
+msgid "Project is disabled: %s"
+msgstr ""
+
+#: keystone/auth/controllers.py:77 keystone/auth/plugins/password.py:38
+#, python-format
+msgid "Domain is disabled: %s"
+msgstr ""
+
+#: keystone/auth/controllers.py:83 keystone/auth/plugins/password.py:44
+#, python-format
+msgid "User is disabled: %s"
+msgstr ""
+
+#: keystone/auth/controllers.py:262
+msgid "Scoping to both domain and project is not allowed"
+msgstr ""
+
+#: keystone/auth/controllers.py:265
+msgid "Scoping to both domain and trust is not allowed"
+msgstr ""
+
+#: keystone/auth/controllers.py:268
+msgid "Scoping to both project and trust is not allowed"
+msgstr ""
+
+#: keystone/auth/controllers.py:353
+msgid "User not found"
+msgstr ""
+
+#: keystone/auth/plugins/external.py:36 keystone/auth/plugins/external.py:66
+msgid "No authenticated user"
+msgstr ""
+
+#: keystone/auth/plugins/external.py:49 keystone/auth/plugins/external.py:86
+#, python-format
+msgid "Unable to lookup user %s"
+msgstr ""
+
+#: keystone/auth/plugins/password.py:112
+msgid "Invalid username or password"
+msgstr ""
+
+#: keystone/catalog/core.py:38
+#, python-format
+msgid "Malformed endpoint %(url)s - unknown key %(keyerror)s"
+msgstr ""
+
+#: keystone/catalog/core.py:43
+#, python-format
+msgid ""
+"Malformed endpoint %(url)s - unknown key %(keyerror)s(are you missing "
+"brackets ?)"
+msgstr ""
+
+#: keystone/catalog/core.py:49
+#, python-format
+msgid ""
+"Malformed endpoint %s - incomplete format (are you "
+"missing a type notifier ?)"
+msgstr ""
+
+#: keystone/catalog/backends/templated.py:109
+#, python-format
+msgid "Unable to open template file %s"
+msgstr ""
+
+#: keystone/common/cms.py:26
+#, python-format
+msgid "Verify error: %s"
+msgstr ""
+
+#: keystone/common/cms.py:118
+msgid ""
+"Signing error: Unable to load certificate - ensure you've configured PKI "
+"with 'keystone-manage pki_setup'"
+msgstr ""
+
+#: keystone/common/cms.py:122
+#, python-format
+msgid "Signing error: %s"
+msgstr ""
+
+#: keystone/common/config.py:89
+#, python-format
+msgid "Unable to locate specified logging config file: %s"
+msgstr ""
+
+#: keystone/common/config.py:107
+msgid "Invalid syslog facility"
+msgstr ""
+
+#: keystone/common/controller.py:18
+#, python-format
+msgid "RBAC: Authorizing %(action)s(%(kwargs)s)"
+msgstr ""
+
+#: keystone/common/controller.py:25
+msgid "RBAC: Invalid token"
+msgstr ""
+
+#: keystone/common/controller.py:39 keystone/common/controller.py:60
+msgid "RBAC: Invalid user"
+msgstr ""
+
+#: keystone/common/controller.py:45
+msgid "RBAC: Proceeding without project"
+msgstr ""
+
+#: keystone/common/controller.py:65
+msgid "RBAC: Proceeding without tenant"
+msgstr ""
+
+#: keystone/common/controller.py:95 keystone/common/controller.py:146
+msgid "RBAC: Bypassing authorization"
+msgstr ""
+
+#: keystone/common/controller.py:104 keystone/common/controller.py:144
+msgid "RBAC: Authorization granted"
+msgstr ""
+
+#: keystone/common/controller.py:134
+#, python-format
+msgid "RBAC: Adding query filter params (%s)"
+msgstr ""
+
+#: keystone/common/controller.py:322
+msgid "Invalid token in normalize_domain_id"
+msgstr ""
+
+#: keystone/common/utils.py:233
+msgid ""
+"Error setting up the debug environment. Verify that the option --debug-"
+"url has the format <host>:<port> and that a debugger processes is "
+"listening on that port."
+msgstr ""
+
+#: keystone/common/wsgi.py:95
+msgid "No bind information present in token"
+msgstr ""
+
+#: keystone/common/wsgi.py:99
+#, python-format
+msgid "Named bind mode %s not in bind information"
+msgstr ""
+
+#: keystone/common/wsgi.py:105
+msgid "Kerberos credentials required and not present"
+msgstr ""
+
+#: keystone/common/wsgi.py:109
+msgid "Kerberos credentials do not match those in bind"
+msgstr ""
+
+#: keystone/common/wsgi.py:112
+msgid "Kerberos bind authentication successful"
+msgstr ""
+
+#: keystone/common/wsgi.py:115
+#, python-format
+msgid "Ignoring unknown bind for permissive mode: {%(bind_type)s: %(identifier)s}"
+msgstr ""
+
+#: keystone/common/wsgi.py:119
+#, python-format
+msgid "Couldn't verify unknown bind: {%(bind_type)s: %(identifier)s}"
+msgstr ""
+
+#: keystone/common/wsgi.py:211
+#, python-format
+msgid "arg_dict: %s"
+msgstr ""
+
+#: keystone/common/wsgi.py:243
+#, python-format
+msgid "Authorization failed. %(exception)s from %(remote_addr)s"
+msgstr ""
+
+#: keystone/common/wsgi.py:487
+msgid "The resource could not be found."
+msgstr ""
+
+#: keystone/common/environment/__init__.py:37
+#, python-format
+msgid "Environment configured as: %s"
+msgstr ""
+
+#: keystone/common/environment/eventlet_server.py:51
+#, python-format
+msgid "Starting %(arg0)s on %(host)s:%(port)s"
+msgstr ""
+
+#: keystone/common/environment/eventlet_server.py:113
+msgid "Server error"
+msgstr ""
+
+#: keystone/common/ldap/core.py:79
+#, python-format
+msgid "Invalid LDAP deref option: %s. Choose one of: "
+msgstr ""
+
+#: keystone/common/ldap/core.py:87
+#, python-format
+msgid "Invalid LDAP TLS certs option: %(option). Choose one of: %(options)s"
+msgstr ""
+
+#: keystone/common/ldap/core.py:99
+#, python-format
+msgid "Invalid LDAP scope: %(scope)s. Choose one of: %(options)s"
+msgstr ""
+
+#: keystone/common/ldap/core.py:189
+#, python-format
+msgid ""
+"Invalid additional attribute mapping: \"%s\". Format must be "
+"<ldap_attribute>:<keystone_attribute>"
+msgstr ""
+
+#: keystone/common/ldap/core.py:195
+#, python-format
+msgid ""
+"Invalid additional attribute mapping: \"%(item)s\". Value "
+"\"%(attr_map)s\" must use one of %(keys)s."
+msgstr ""
+
+#: keystone/common/ldap/core.py:279 keystone/identity/backends/kvs.py:177
+#: keystone/identity/backends/kvs.py:205
+#, python-format
+msgid "Duplicate name, %s."
+msgstr ""
+
+#: keystone/common/ldap/core.py:289 keystone/identity/backends/kvs.py:170
+#, python-format
+msgid "Duplicate ID, %s."
+msgstr ""
+
+#: keystone/common/ldap/core.py:294
+#, python-format
+msgid "LDAP %s create"
+msgstr ""
+
+#: keystone/common/ldap/core.py:372
+#, python-format
+msgid "LDAP %s update"
+msgstr ""
+
+#: keystone/common/ldap/core.py:405
+#, python-format
+msgid "LDAP %s delete"
+msgstr ""
+
+#: keystone/common/ldap/core.py:430
+#, python-format
+msgid "LDAP init: url=%s"
+msgstr ""
+
+#: keystone/common/ldap/core.py:431
+#, python-format
+msgid ""
+"LDAP init: use_tls=%(use_tls)s\n"
+"tls_cacertfile=%(tls_cacertfile)s\n"
+"tls_cacertdir=%(tls_cacertdir)s\n"
+"tls_req_cert=%(tls_req_cert)s\n"
+"tls_avail=%(tls_avail)s\n"
+msgstr ""
+
+#: keystone/common/ldap/core.py:450
+msgid "Invalid TLS / LDAPS combination"
+msgstr ""
+
+#: keystone/common/ldap/core.py:454
+#, python-format
+msgid "Invalid LDAP TLS_AVAIL option: %s. TLS not available"
+msgstr ""
+
+#: keystone/common/ldap/core.py:464
+#, python-format
+msgid "tls_cacertfile %s not found or is not a file"
+msgstr ""
+
+#: keystone/common/ldap/core.py:476
+#, python-format
+msgid "tls_cacertdir %s not found or is not a directory"
+msgstr ""
+
+#: keystone/common/ldap/core.py:483
+#, python-format
+msgid "LDAP TLS: invalid TLS_REQUIRE_CERT Option=%s"
+msgstr ""
+
+#: keystone/common/ldap/core.py:497
+#, python-format
+msgid "LDAP bind: dn=%s"
+msgstr ""
+
+#: keystone/common/ldap/core.py:508
+#, python-format
+msgid "LDAP add: dn=%(dn)s, attrs=%(attrs)s"
+msgstr ""
+
+#: keystone/common/ldap/core.py:514
+#, python-format
+msgid ""
+"LDAP search: dn=%(dn)s, scope=%(scope)s, query=%(query)s, "
+"attrs=%(attrlist)s"
+msgstr ""
+
+#: keystone/common/ldap/core.py:567
+msgid ""
+"LDAP Server does not support paging. Disable paging in keystone.conf to "
+"avoid this message."
+msgstr ""
+
+#: keystone/common/ldap/core.py:584
+#, python-format
+msgid "LDAP modify: dn=%(dn)s, modlist=%(modlist)s"
+msgstr ""
+
+#: keystone/common/ldap/core.py:590
+#, python-format
+msgid "LDAP delete: dn=%s"
+msgstr ""
+
+#: keystone/common/ldap/core.py:595
+#, python-format
+msgid "LDAP delete_ext: dn=%(dn)s, serverctrls=%(serverctrls)s"
+msgstr ""
+
+#: keystone/common/ldap/fakeldap.py:146
+#, python-format
+msgid "FakeLdap initialize url=%s"
+msgstr ""
+
+#: keystone/common/ldap/fakeldap.py:156
+#, python-format
+msgid "FakeLdap bind dn=%s"
+msgstr ""
+
+#: keystone/common/ldap/fakeldap.py:163
+#, python-format
+msgid "FakeLdap bind fail: dn=%s not found"
+msgstr ""
+
+#: keystone/common/ldap/fakeldap.py:170
+#, python-format
+msgid "FakeLdap bind fail: password for dn=%s not found"
+msgstr ""
+
+#: keystone/common/ldap/fakeldap.py:175
+#, python-format
+msgid "FakeLdap bind fail: password for dn=%s does not match"
+msgstr ""
+
+#: keystone/common/ldap/fakeldap.py:190
+#, python-format
+msgid "FakeLdap add item: dn=%(dn)s, attrs=%(attrs)s"
+msgstr ""
+
+#: keystone/common/ldap/fakeldap.py:193
+#, python-format
+msgid "FakeLdap add item failed: dn=%s is already in store."
+msgstr ""
+
+#: keystone/common/ldap/fakeldap.py:207 keystone/common/ldap/fakeldap.py:221
+#, python-format
+msgid "FakeLdap delete item: dn=%s"
+msgstr ""
+
+#: keystone/common/ldap/fakeldap.py:211 keystone/common/ldap/fakeldap.py:225
+#, python-format
+msgid "FakeLdap delete item failed: dn=%s not found."
+msgstr ""
+
+#: keystone/common/ldap/fakeldap.py:240
+#, python-format
+msgid "FakeLdap modify item: dn=%(dn)s attrs=%(attrs)s"
+msgstr ""
+
+#: keystone/common/ldap/fakeldap.py:245
+#, python-format
+msgid "FakeLdap modify item failed: dn=%s not found."
+msgstr ""
+
+#: keystone/common/ldap/fakeldap.py:262
+#, python-format
+msgid "FakeLdap modify item failed: item has no attribute \"%s\" to delete"
+msgstr ""
+
+#: keystone/common/ldap/fakeldap.py:273
+#, python-format
+msgid ""
+"FakeLdap modify item failed: item has no attribute \"%(k)s\" with value "
+"\"%(v)s\" to delete"
+msgstr ""
+
+#: keystone/common/ldap/fakeldap.py:279
+#, python-format
+msgid "FakeLdap modify item failed: unknown command %s"
+msgstr ""
+
+#: keystone/common/ldap/fakeldap.py:281
+#, python-format
+msgid "modify_s action %s not implemented"
+msgstr ""
+
+#: keystone/common/ldap/fakeldap.py:300
+#, python-format
+msgid "FakeLdap search at dn=%(dn)s scope=%(scope)s query=%(query)s"
+msgstr ""
+
+#: keystone/common/ldap/fakeldap.py:306
+msgid "FakeLdap search fail: dn not found for SCOPE_BASE"
+msgstr ""
+
+#: keystone/common/ldap/fakeldap.py:320
+#, python-format
+msgid "Search scope %s not implemented."
+msgstr ""
+
+#: keystone/common/sql/core.py:119
+msgid "Global engine callback raised."
+msgstr ""
+
+#: keystone/common/sql/core.py:233
+#, python-format
+msgid "Got mysql server has gone away: %s"
+msgstr ""
+
+#: keystone/common/sql/legacy.py:188
+#, python-format
+msgid "Cannot migrate EC2 credential: %s"
+msgstr ""
+
+#: keystone/common/sql/migration.py:47
+msgid "version should be an integer"
+msgstr ""
+
+#: keystone/common/sql/nova.py:65
+#, python-format
+msgid "Create tenant %s"
+msgstr ""
+
+#: keystone/common/sql/nova.py:82
+#, python-format
+msgid "Create user %s"
+msgstr ""
+
+#: keystone/common/sql/nova.py:91
+#, python-format
+msgid "Add user %(user_id)s to tenant %(tenant_id)s"
+msgstr ""
+
+#: keystone/common/sql/nova.py:100
+#, python-format
+msgid "Ignoring existing role %s"
+msgstr ""
+
+#: keystone/common/sql/nova.py:107
+#, python-format
+msgid "Create role %s"
+msgstr ""
+
+#: keystone/common/sql/nova.py:117
+#, python-format
+msgid "Assign role %(role_id)s to user %(user_id)s on tenant %(tenant_id)s"
+msgstr ""
+
+#: keystone/common/sql/nova.py:136
+#, python-format
+msgid "Creating ec2 cred for user %(user_id)s and tenant %(tenant_id)s"
+msgstr ""
+
+#: keystone/identity/controllers.py:952
+#, python-format
+msgid ""
+"Group %(group)s not found for role-assignment - %(target)s with Role: "
+"%(role)s"
+msgstr ""
+
+#: keystone/identity/backends/kvs.py:126 keystone/identity/backends/kvs.py:135
+msgid "User not found in group"
+msgstr ""
+
+#: keystone/identity/backends/ldap.py:189
+#, python-format
+msgid ""
+"Group member '%(user_dn)s' not found in '%(group_id)s'. The user should "
+"be removed from the group. The user will be ignored."
+msgstr ""
+
+#: keystone/identity/backends/ldap.py:334
+msgid "Changing Name not supported by LDAP"
+msgstr ""
+
+#: keystone/identity/backends/ldap.py:347
+#, python-format
+msgid "User %(user_id)s is already a member of group %(group_id)s"
+msgstr ""
+
+#: keystone/openstack/common/policy.py:394
+#, python-format
+msgid "Failed to understand rule %(rule)s"
+msgstr ""
+
+#: keystone/openstack/common/policy.py:404
+#, python-format
+msgid "No handler for matches of kind %s"
+msgstr ""
+
+#: keystone/openstack/common/policy.py:679
+#, python-format
+msgid "Failed to understand rule %(rule)r"
+msgstr ""
+
+#: keystone/openstack/common/crypto/utils.py:29
+msgid "An unknown error occurred in crypto utils."
+msgstr ""
+
+#: keystone/openstack/common/crypto/utils.py:36
+#, python-format
+msgid "Block size of %(given)d is too big, max = %(maximum)d"
+msgstr ""
+
+#: keystone/openstack/common/crypto/utils.py:45
+#, python-format
+msgid "Length of %(given)d is too long, max = %(maximum)d"
+msgstr ""
+
+#: keystone/policy/backends/rules.py:93
+#, python-format
+msgid "enforce %(action)s: %(credentials)s"
+msgstr ""
+
+#: keystone/token/controllers.py:378
+#, python-format
+msgid "User %(u_id)s is unauthorized for tenant %(t_id)s"
+msgstr ""
+
+#: keystone/token/controllers.py:395 keystone/token/controllers.py:398
+msgid "Token does not belong to specified tenant."
+msgstr ""
+
+#: keystone/token/provider.py:76
+msgid ""
+"keystone.conf [signing] token_format (deprecated) conflicts with "
+"keystone.conf [token] provider"
+msgstr ""
+
+#: keystone/token/provider.py:84
+msgid ""
+"keystone.conf [signing] token_format is deprecated in favor of "
+"keystone.conf [token] provider"
+msgstr ""
+
+#: keystone/token/provider.py:94
+msgid ""
+"Unrecognized keystone.conf [signing] token_format: expected either 'UUID'"
+" or 'PKI'"
+msgstr ""
+
+#: keystone/token/backends/kvs.py:37
+msgid ""
+"kvs token backend is DEPRECATED. Use keystone.token.backends.sql or "
+"keystone.token.backend.memcache instead."
+msgstr ""
+
+#: keystone/token/backends/memcache.py:144
+#, python-format
+msgid ""
+"Successful set of token-index-list for user-key \"%(user_key)s\", "
+"#%(count)d records"
+msgstr ""
+
+#: keystone/token/backends/memcache.py:154
+#, python-format
+msgid ""
+"Failed to set token-index-list for user-key \"%(user_key)s\". Attempt "
+"%(cas_retry)d of %(cas_retry_max)d"
+msgstr ""
+
+#: keystone/token/backends/memcache.py:163
+msgid "Unable to add token user list"
+msgstr ""
+
+#: keystone/token/backends/memcache.py:172
+msgid "Unable to add token to revocation list."
+msgstr ""
+
+#: keystone/token/providers/pki.py:43
+msgid "Unable to sign token."
+msgstr ""
+
+#: keystone/token/providers/uuid.py:193
+msgid "Trustor is disabled."
+msgstr ""
+
+#: keystone/token/providers/uuid.py:238
+msgid "Trustee has no delegated roles."
+msgstr ""
+
+#: keystone/token/providers/uuid.py:247
+#, python-format
+msgid "User %(user_id)s has no access to project %(project_id)s"
+msgstr ""
+
+#: keystone/token/providers/uuid.py:252
+#, python-format
+msgid "User %(user_id)s has no access to domain %(domain_id)s"
+msgstr ""
+
+#: keystone/token/providers/uuid.py:303
+msgid "User is not a trustee."
+msgstr ""
+
+#: keystone/token/providers/uuid.py:457
+msgid "Non-default domain is not supported"
+msgstr ""
+
+#: keystone/token/providers/uuid.py:465
+msgid "Domain scoped token is not supported"
+msgstr ""
+
+#: keystone/token/providers/uuid.py:528
+msgid "Failed to validate token"
+msgstr ""
+
+#: keystone/token/providers/uuid.py:566 keystone/token/providers/uuid.py:576
+msgid "Failed to verify token"
+msgstr ""
+
diff --git a/keystone/locale/tr_TR/LC_MESSAGES/keystone.po b/keystone/locale/tr_TR/LC_MESSAGES/keystone.po
new file mode 100644
index 00000000..866c94eb
--- /dev/null
+++ b/keystone/locale/tr_TR/LC_MESSAGES/keystone.po
@@ -0,0 +1,847 @@
+# Turkish (Turkey) translations for keystone.
+# Copyright (C) 2013 ORGANIZATION
+# This file is distributed under the same license as the keystone project.
+#
+# Translators:
+msgid ""
+msgstr ""
+"Project-Id-Version: Keystone\n"
+"Report-Msgid-Bugs-To: https://bugs.launchpad.net/keystone\n"
+"POT-Creation-Date: 2013-08-02 17:05+0000\n"
+"PO-Revision-Date: 2013-07-29 22:01+0000\n"
+"Last-Translator: openstackjenkins <jenkins@openstack.org>\n"
+"Language-Team: Turkish (Turkey) "
+"(http://www.transifex.com/projects/p/openstack/language/tr_TR/)\n"
+"Plural-Forms: nplurals=1; plural=0\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=utf-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Generated-By: Babel 1.3\n"
+
+#: keystone/clean.py:23
+#, python-format
+msgid "%s cannot be empty."
+msgstr ""
+
+#: keystone/clean.py:25
+#, python-format
+msgid "%(property_name)s cannot be less than %(min_length)s characters."
+msgstr ""
+
+#: keystone/clean.py:29
+#, python-format
+msgid "%(property_name)s should not be greater than %(max_length)s characters."
+msgstr ""
+
+#: keystone/clean.py:36
+#, python-format
+msgid "%(property_name)s is not a %(display_expected_type)s"
+msgstr ""
+
+#: keystone/exception.py:48
+msgid "missing exception kwargs (programmer error)"
+msgstr ""
+
+#: keystone/exception.py:65
+#, python-format
+msgid ""
+"Expecting to find %(attribute)s in %(target)s. The server could not "
+"comply with the request since it is either malformed or otherwise "
+"incorrect. The client is assumed to be in error."
+msgstr ""
+
+#: keystone/exception.py:74
+#, python-format
+msgid ""
+"String length exceeded.The length of string '%(string)s' exceeded the "
+"limit of column %(type)s(CHAR(%(length)d))."
+msgstr ""
+
+#: keystone/exception.py:80
+#, python-format
+msgid ""
+"Request attribute %(attribute)s must be less than or equal to %(size)i. "
+"The server could not comply with the request because the attribute size "
+"is invalid (too large). The client is assumed to be in error."
+msgstr ""
+
+#: keystone/exception.py:101
+msgid "The request you have made requires authentication."
+msgstr ""
+
+#: keystone/exception.py:107
+msgid "Authentication plugin error."
+msgstr ""
+
+#: keystone/exception.py:115
+msgid "Attempted to authenticate with an unsupported method."
+msgstr ""
+
+#: keystone/exception.py:123
+msgid "Additional authentications steps required."
+msgstr ""
+
+#: keystone/exception.py:131
+msgid "You are not authorized to perform the requested action."
+msgstr ""
+
+#: keystone/exception.py:138
+#, python-format
+msgid "You are not authorized to perform the requested action, %(action)s."
+msgstr ""
+
+#: keystone/exception.py:143
+#, python-format
+msgid "Could not find, %(target)s."
+msgstr ""
+
+#: keystone/exception.py:149
+#, python-format
+msgid "Could not find endpoint, %(endpoint_id)s."
+msgstr ""
+
+#: keystone/exception.py:156
+msgid "An unhandled exception has occurred: Could not find metadata."
+msgstr ""
+
+#: keystone/exception.py:161
+#, python-format
+msgid "Could not find policy, %(policy_id)s."
+msgstr ""
+
+#: keystone/exception.py:165
+#, python-format
+msgid "Could not find role, %(role_id)s."
+msgstr ""
+
+#: keystone/exception.py:169
+#, python-format
+msgid "Could not find service, %(service_id)s."
+msgstr ""
+
+#: keystone/exception.py:173
+#, python-format
+msgid "Could not find domain, %(domain_id)s."
+msgstr ""
+
+#: keystone/exception.py:177
+#, python-format
+msgid "Could not find project, %(project_id)s."
+msgstr ""
+
+#: keystone/exception.py:181
+#, python-format
+msgid "Could not find token, %(token_id)s."
+msgstr ""
+
+#: keystone/exception.py:185
+#, python-format
+msgid "Could not find user, %(user_id)s."
+msgstr ""
+
+#: keystone/exception.py:189
+#, python-format
+msgid "Could not find group, %(group_id)s."
+msgstr ""
+
+#: keystone/exception.py:193
+#, python-format
+msgid "Could not find trust, %(trust_id)s."
+msgstr ""
+
+#: keystone/exception.py:197
+#, python-format
+msgid "Could not find credential, %(credential_id)s."
+msgstr ""
+
+#: keystone/exception.py:201
+#, python-format
+msgid "Could not find version, %(version)s."
+msgstr ""
+
+#: keystone/exception.py:205
+#, python-format
+msgid "Conflict occurred attempting to store %(type)s. %(details)s"
+msgstr ""
+
+#: keystone/exception.py:212
+msgid "Request is too large."
+msgstr ""
+
+#: keystone/exception.py:218
+#, python-format
+msgid ""
+"An unexpected error prevented the server from fulfilling your request. "
+"%(exception)s"
+msgstr ""
+
+#: keystone/exception.py:225
+#, python-format
+msgid "Malformed endpoint URL (%(endpoint)s), see ERROR log for details."
+msgstr ""
+
+#: keystone/exception.py:230
+msgid "The action you have requested has not been implemented."
+msgstr ""
+
+#: keystone/exception.py:237
+#, python-format
+msgid "The Keystone paste configuration file %(config_file)s could not be found."
+msgstr ""
+
+#: keystone/test.py:117
+#, python-format
+msgid "Failed to checkout %s"
+msgstr ""
+
+#: keystone/assignment/core.py:529
+#, python-format
+msgid "Expected dict or list: %s"
+msgstr ""
+
+#: keystone/assignment/backends/kvs.py:138
+#: keystone/assignment/backends/sql.py:285
+#, python-format
+msgid "Cannot remove role that has not been granted, %s"
+msgstr ""
+
+#: keystone/assignment/backends/ldap.py:418
+#, python-format
+msgid "Role %s not found"
+msgstr ""
+
+#: keystone/assignment/backends/sql.py:114
+msgid "Inherited roles can only be assigned to domains"
+msgstr ""
+
+#: keystone/auth/controllers.py:71
+#, python-format
+msgid "Project is disabled: %s"
+msgstr ""
+
+#: keystone/auth/controllers.py:77 keystone/auth/plugins/password.py:38
+#, python-format
+msgid "Domain is disabled: %s"
+msgstr ""
+
+#: keystone/auth/controllers.py:83 keystone/auth/plugins/password.py:44
+#, python-format
+msgid "User is disabled: %s"
+msgstr ""
+
+#: keystone/auth/controllers.py:262
+msgid "Scoping to both domain and project is not allowed"
+msgstr ""
+
+#: keystone/auth/controllers.py:265
+msgid "Scoping to both domain and trust is not allowed"
+msgstr ""
+
+#: keystone/auth/controllers.py:268
+msgid "Scoping to both project and trust is not allowed"
+msgstr ""
+
+#: keystone/auth/controllers.py:353
+msgid "User not found"
+msgstr ""
+
+#: keystone/auth/plugins/external.py:36 keystone/auth/plugins/external.py:66
+msgid "No authenticated user"
+msgstr ""
+
+#: keystone/auth/plugins/external.py:49 keystone/auth/plugins/external.py:86
+#, python-format
+msgid "Unable to lookup user %s"
+msgstr ""
+
+#: keystone/auth/plugins/password.py:112
+msgid "Invalid username or password"
+msgstr ""
+
+#: keystone/catalog/core.py:38
+#, python-format
+msgid "Malformed endpoint %(url)s - unknown key %(keyerror)s"
+msgstr ""
+
+#: keystone/catalog/core.py:43
+#, python-format
+msgid ""
+"Malformed endpoint %(url)s - unknown key %(keyerror)s(are you missing "
+"brackets ?)"
+msgstr ""
+
+#: keystone/catalog/core.py:49
+#, python-format
+msgid ""
+"Malformed endpoint %s - incomplete format (are you "
+"missing a type notifier ?)"
+msgstr ""
+
+#: keystone/catalog/backends/templated.py:109
+#, python-format
+msgid "Unable to open template file %s"
+msgstr ""
+
+#: keystone/common/cms.py:26
+#, python-format
+msgid "Verify error: %s"
+msgstr ""
+
+#: keystone/common/cms.py:118
+msgid ""
+"Signing error: Unable to load certificate - ensure you've configured PKI "
+"with 'keystone-manage pki_setup'"
+msgstr ""
+
+#: keystone/common/cms.py:122
+#, python-format
+msgid "Signing error: %s"
+msgstr ""
+
+#: keystone/common/config.py:89
+#, python-format
+msgid "Unable to locate specified logging config file: %s"
+msgstr ""
+
+#: keystone/common/config.py:107
+msgid "Invalid syslog facility"
+msgstr ""
+
+#: keystone/common/controller.py:18
+#, python-format
+msgid "RBAC: Authorizing %(action)s(%(kwargs)s)"
+msgstr ""
+
+#: keystone/common/controller.py:25
+msgid "RBAC: Invalid token"
+msgstr ""
+
+#: keystone/common/controller.py:39 keystone/common/controller.py:60
+msgid "RBAC: Invalid user"
+msgstr ""
+
+#: keystone/common/controller.py:45
+msgid "RBAC: Proceeding without project"
+msgstr ""
+
+#: keystone/common/controller.py:65
+msgid "RBAC: Proceeding without tenant"
+msgstr ""
+
+#: keystone/common/controller.py:95 keystone/common/controller.py:146
+msgid "RBAC: Bypassing authorization"
+msgstr ""
+
+#: keystone/common/controller.py:104 keystone/common/controller.py:144
+msgid "RBAC: Authorization granted"
+msgstr ""
+
+#: keystone/common/controller.py:134
+#, python-format
+msgid "RBAC: Adding query filter params (%s)"
+msgstr ""
+
+#: keystone/common/controller.py:322
+msgid "Invalid token in normalize_domain_id"
+msgstr ""
+
+#: keystone/common/utils.py:233
+msgid ""
+"Error setting up the debug environment. Verify that the option --debug-"
+"url has the format <host>:<port> and that a debugger processes is "
+"listening on that port."
+msgstr ""
+
+#: keystone/common/wsgi.py:95
+msgid "No bind information present in token"
+msgstr ""
+
+#: keystone/common/wsgi.py:99
+#, python-format
+msgid "Named bind mode %s not in bind information"
+msgstr ""
+
+#: keystone/common/wsgi.py:105
+msgid "Kerberos credentials required and not present"
+msgstr ""
+
+#: keystone/common/wsgi.py:109
+msgid "Kerberos credentials do not match those in bind"
+msgstr ""
+
+#: keystone/common/wsgi.py:112
+msgid "Kerberos bind authentication successful"
+msgstr ""
+
+#: keystone/common/wsgi.py:115
+#, python-format
+msgid "Ignoring unknown bind for permissive mode: {%(bind_type)s: %(identifier)s}"
+msgstr ""
+
+#: keystone/common/wsgi.py:119
+#, python-format
+msgid "Couldn't verify unknown bind: {%(bind_type)s: %(identifier)s}"
+msgstr ""
+
+#: keystone/common/wsgi.py:211
+#, python-format
+msgid "arg_dict: %s"
+msgstr ""
+
+#: keystone/common/wsgi.py:243
+#, python-format
+msgid "Authorization failed. %(exception)s from %(remote_addr)s"
+msgstr ""
+
+#: keystone/common/wsgi.py:487
+msgid "The resource could not be found."
+msgstr ""
+
+#: keystone/common/environment/__init__.py:37
+#, python-format
+msgid "Environment configured as: %s"
+msgstr ""
+
+#: keystone/common/environment/eventlet_server.py:51
+#, python-format
+msgid "Starting %(arg0)s on %(host)s:%(port)s"
+msgstr ""
+
+#: keystone/common/environment/eventlet_server.py:113
+msgid "Server error"
+msgstr ""
+
+#: keystone/common/ldap/core.py:79
+#, python-format
+msgid "Invalid LDAP deref option: %s. Choose one of: "
+msgstr ""
+
+#: keystone/common/ldap/core.py:87
+#, python-format
+msgid "Invalid LDAP TLS certs option: %(option). Choose one of: %(options)s"
+msgstr ""
+
+#: keystone/common/ldap/core.py:99
+#, python-format
+msgid "Invalid LDAP scope: %(scope)s. Choose one of: %(options)s"
+msgstr ""
+
+#: keystone/common/ldap/core.py:189
+#, python-format
+msgid ""
+"Invalid additional attribute mapping: \"%s\". Format must be "
+"<ldap_attribute>:<keystone_attribute>"
+msgstr ""
+
+#: keystone/common/ldap/core.py:195
+#, python-format
+msgid ""
+"Invalid additional attribute mapping: \"%(item)s\". Value "
+"\"%(attr_map)s\" must use one of %(keys)s."
+msgstr ""
+
+#: keystone/common/ldap/core.py:279 keystone/identity/backends/kvs.py:177
+#: keystone/identity/backends/kvs.py:205
+#, python-format
+msgid "Duplicate name, %s."
+msgstr ""
+
+#: keystone/common/ldap/core.py:289 keystone/identity/backends/kvs.py:170
+#, python-format
+msgid "Duplicate ID, %s."
+msgstr ""
+
+#: keystone/common/ldap/core.py:294
+#, python-format
+msgid "LDAP %s create"
+msgstr ""
+
+#: keystone/common/ldap/core.py:372
+#, python-format
+msgid "LDAP %s update"
+msgstr ""
+
+#: keystone/common/ldap/core.py:405
+#, python-format
+msgid "LDAP %s delete"
+msgstr ""
+
+#: keystone/common/ldap/core.py:430
+#, python-format
+msgid "LDAP init: url=%s"
+msgstr ""
+
+#: keystone/common/ldap/core.py:431
+#, python-format
+msgid ""
+"LDAP init: use_tls=%(use_tls)s\n"
+"tls_cacertfile=%(tls_cacertfile)s\n"
+"tls_cacertdir=%(tls_cacertdir)s\n"
+"tls_req_cert=%(tls_req_cert)s\n"
+"tls_avail=%(tls_avail)s\n"
+msgstr ""
+
+#: keystone/common/ldap/core.py:450
+msgid "Invalid TLS / LDAPS combination"
+msgstr ""
+
+#: keystone/common/ldap/core.py:454
+#, python-format
+msgid "Invalid LDAP TLS_AVAIL option: %s. TLS not available"
+msgstr ""
+
+#: keystone/common/ldap/core.py:464
+#, python-format
+msgid "tls_cacertfile %s not found or is not a file"
+msgstr ""
+
+#: keystone/common/ldap/core.py:476
+#, python-format
+msgid "tls_cacertdir %s not found or is not a directory"
+msgstr ""
+
+#: keystone/common/ldap/core.py:483
+#, python-format
+msgid "LDAP TLS: invalid TLS_REQUIRE_CERT Option=%s"
+msgstr ""
+
+#: keystone/common/ldap/core.py:497
+#, python-format
+msgid "LDAP bind: dn=%s"
+msgstr ""
+
+#: keystone/common/ldap/core.py:508
+#, python-format
+msgid "LDAP add: dn=%(dn)s, attrs=%(attrs)s"
+msgstr ""
+
+#: keystone/common/ldap/core.py:514
+#, python-format
+msgid ""
+"LDAP search: dn=%(dn)s, scope=%(scope)s, query=%(query)s, "
+"attrs=%(attrlist)s"
+msgstr ""
+
+#: keystone/common/ldap/core.py:567
+msgid ""
+"LDAP Server does not support paging. Disable paging in keystone.conf to "
+"avoid this message."
+msgstr ""
+
+#: keystone/common/ldap/core.py:584
+#, python-format
+msgid "LDAP modify: dn=%(dn)s, modlist=%(modlist)s"
+msgstr ""
+
+#: keystone/common/ldap/core.py:590
+#, python-format
+msgid "LDAP delete: dn=%s"
+msgstr ""
+
+#: keystone/common/ldap/core.py:595
+#, python-format
+msgid "LDAP delete_ext: dn=%(dn)s, serverctrls=%(serverctrls)s"
+msgstr ""
+
+#: keystone/common/ldap/fakeldap.py:146
+#, python-format
+msgid "FakeLdap initialize url=%s"
+msgstr ""
+
+#: keystone/common/ldap/fakeldap.py:156
+#, python-format
+msgid "FakeLdap bind dn=%s"
+msgstr ""
+
+#: keystone/common/ldap/fakeldap.py:163
+#, python-format
+msgid "FakeLdap bind fail: dn=%s not found"
+msgstr ""
+
+#: keystone/common/ldap/fakeldap.py:170
+#, python-format
+msgid "FakeLdap bind fail: password for dn=%s not found"
+msgstr ""
+
+#: keystone/common/ldap/fakeldap.py:175
+#, python-format
+msgid "FakeLdap bind fail: password for dn=%s does not match"
+msgstr ""
+
+#: keystone/common/ldap/fakeldap.py:190
+#, python-format
+msgid "FakeLdap add item: dn=%(dn)s, attrs=%(attrs)s"
+msgstr ""
+
+#: keystone/common/ldap/fakeldap.py:193
+#, python-format
+msgid "FakeLdap add item failed: dn=%s is already in store."
+msgstr ""
+
+#: keystone/common/ldap/fakeldap.py:207 keystone/common/ldap/fakeldap.py:221
+#, python-format
+msgid "FakeLdap delete item: dn=%s"
+msgstr ""
+
+#: keystone/common/ldap/fakeldap.py:211 keystone/common/ldap/fakeldap.py:225
+#, python-format
+msgid "FakeLdap delete item failed: dn=%s not found."
+msgstr ""
+
+#: keystone/common/ldap/fakeldap.py:240
+#, python-format
+msgid "FakeLdap modify item: dn=%(dn)s attrs=%(attrs)s"
+msgstr ""
+
+#: keystone/common/ldap/fakeldap.py:245
+#, python-format
+msgid "FakeLdap modify item failed: dn=%s not found."
+msgstr ""
+
+#: keystone/common/ldap/fakeldap.py:262
+#, python-format
+msgid "FakeLdap modify item failed: item has no attribute \"%s\" to delete"
+msgstr ""
+
+#: keystone/common/ldap/fakeldap.py:273
+#, python-format
+msgid ""
+"FakeLdap modify item failed: item has no attribute \"%(k)s\" with value "
+"\"%(v)s\" to delete"
+msgstr ""
+
+#: keystone/common/ldap/fakeldap.py:279
+#, python-format
+msgid "FakeLdap modify item failed: unknown command %s"
+msgstr ""
+
+#: keystone/common/ldap/fakeldap.py:281
+#, python-format
+msgid "modify_s action %s not implemented"
+msgstr ""
+
+#: keystone/common/ldap/fakeldap.py:300
+#, python-format
+msgid "FakeLdap search at dn=%(dn)s scope=%(scope)s query=%(query)s"
+msgstr ""
+
+#: keystone/common/ldap/fakeldap.py:306
+msgid "FakeLdap search fail: dn not found for SCOPE_BASE"
+msgstr ""
+
+#: keystone/common/ldap/fakeldap.py:320
+#, python-format
+msgid "Search scope %s not implemented."
+msgstr ""
+
+#: keystone/common/sql/core.py:119
+msgid "Global engine callback raised."
+msgstr ""
+
+#: keystone/common/sql/core.py:233
+#, python-format
+msgid "Got mysql server has gone away: %s"
+msgstr ""
+
+#: keystone/common/sql/legacy.py:188
+#, python-format
+msgid "Cannot migrate EC2 credential: %s"
+msgstr ""
+
+#: keystone/common/sql/migration.py:47
+msgid "version should be an integer"
+msgstr ""
+
+#: keystone/common/sql/nova.py:65
+#, python-format
+msgid "Create tenant %s"
+msgstr ""
+
+#: keystone/common/sql/nova.py:82
+#, python-format
+msgid "Create user %s"
+msgstr ""
+
+#: keystone/common/sql/nova.py:91
+#, python-format
+msgid "Add user %(user_id)s to tenant %(tenant_id)s"
+msgstr ""
+
+#: keystone/common/sql/nova.py:100
+#, python-format
+msgid "Ignoring existing role %s"
+msgstr ""
+
+#: keystone/common/sql/nova.py:107
+#, python-format
+msgid "Create role %s"
+msgstr ""
+
+#: keystone/common/sql/nova.py:117
+#, python-format
+msgid "Assign role %(role_id)s to user %(user_id)s on tenant %(tenant_id)s"
+msgstr ""
+
+#: keystone/common/sql/nova.py:136
+#, python-format
+msgid "Creating ec2 cred for user %(user_id)s and tenant %(tenant_id)s"
+msgstr ""
+
+#: keystone/identity/controllers.py:952
+#, python-format
+msgid ""
+"Group %(group)s not found for role-assignment - %(target)s with Role: "
+"%(role)s"
+msgstr ""
+
+#: keystone/identity/backends/kvs.py:126 keystone/identity/backends/kvs.py:135
+msgid "User not found in group"
+msgstr ""
+
+#: keystone/identity/backends/ldap.py:189
+#, python-format
+msgid ""
+"Group member '%(user_dn)s' not found in '%(group_id)s'. The user should "
+"be removed from the group. The user will be ignored."
+msgstr ""
+
+#: keystone/identity/backends/ldap.py:334
+msgid "Changing Name not supported by LDAP"
+msgstr ""
+
+#: keystone/identity/backends/ldap.py:347
+#, python-format
+msgid "User %(user_id)s is already a member of group %(group_id)s"
+msgstr ""
+
+#: keystone/openstack/common/policy.py:394
+#, python-format
+msgid "Failed to understand rule %(rule)s"
+msgstr ""
+
+#: keystone/openstack/common/policy.py:404
+#, python-format
+msgid "No handler for matches of kind %s"
+msgstr ""
+
+#: keystone/openstack/common/policy.py:679
+#, python-format
+msgid "Failed to understand rule %(rule)r"
+msgstr ""
+
+#: keystone/openstack/common/crypto/utils.py:29
+msgid "An unknown error occurred in crypto utils."
+msgstr ""
+
+#: keystone/openstack/common/crypto/utils.py:36
+#, python-format
+msgid "Block size of %(given)d is too big, max = %(maximum)d"
+msgstr ""
+
+#: keystone/openstack/common/crypto/utils.py:45
+#, python-format
+msgid "Length of %(given)d is too long, max = %(maximum)d"
+msgstr ""
+
+#: keystone/policy/backends/rules.py:93
+#, python-format
+msgid "enforce %(action)s: %(credentials)s"
+msgstr ""
+
+#: keystone/token/controllers.py:378
+#, python-format
+msgid "User %(u_id)s is unauthorized for tenant %(t_id)s"
+msgstr ""
+
+#: keystone/token/controllers.py:395 keystone/token/controllers.py:398
+msgid "Token does not belong to specified tenant."
+msgstr ""
+
+#: keystone/token/provider.py:76
+msgid ""
+"keystone.conf [signing] token_format (deprecated) conflicts with "
+"keystone.conf [token] provider"
+msgstr ""
+
+#: keystone/token/provider.py:84
+msgid ""
+"keystone.conf [signing] token_format is deprecated in favor of "
+"keystone.conf [token] provider"
+msgstr ""
+
+#: keystone/token/provider.py:94
+msgid ""
+"Unrecognized keystone.conf [signing] token_format: expected either 'UUID'"
+" or 'PKI'"
+msgstr ""
+
+#: keystone/token/backends/kvs.py:37
+msgid ""
+"kvs token backend is DEPRECATED. Use keystone.token.backends.sql or "
+"keystone.token.backend.memcache instead."
+msgstr ""
+
+#: keystone/token/backends/memcache.py:144
+#, python-format
+msgid ""
+"Successful set of token-index-list for user-key \"%(user_key)s\", "
+"#%(count)d records"
+msgstr ""
+
+#: keystone/token/backends/memcache.py:154
+#, python-format
+msgid ""
+"Failed to set token-index-list for user-key \"%(user_key)s\". Attempt "
+"%(cas_retry)d of %(cas_retry_max)d"
+msgstr ""
+
+#: keystone/token/backends/memcache.py:163
+msgid "Unable to add token user list"
+msgstr ""
+
+#: keystone/token/backends/memcache.py:172
+msgid "Unable to add token to revocation list."
+msgstr ""
+
+#: keystone/token/providers/pki.py:43
+msgid "Unable to sign token."
+msgstr ""
+
+#: keystone/token/providers/uuid.py:193
+msgid "Trustor is disabled."
+msgstr ""
+
+#: keystone/token/providers/uuid.py:238
+msgid "Trustee has no delegated roles."
+msgstr ""
+
+#: keystone/token/providers/uuid.py:247
+#, python-format
+msgid "User %(user_id)s has no access to project %(project_id)s"
+msgstr ""
+
+#: keystone/token/providers/uuid.py:252
+#, python-format
+msgid "User %(user_id)s has no access to domain %(domain_id)s"
+msgstr ""
+
+#: keystone/token/providers/uuid.py:303
+msgid "User is not a trustee."
+msgstr ""
+
+#: keystone/token/providers/uuid.py:457
+msgid "Non-default domain is not supported"
+msgstr ""
+
+#: keystone/token/providers/uuid.py:465
+msgid "Domain scoped token is not supported"
+msgstr ""
+
+#: keystone/token/providers/uuid.py:528
+msgid "Failed to validate token"
+msgstr ""
+
+#: keystone/token/providers/uuid.py:566 keystone/token/providers/uuid.py:576
+msgid "Failed to verify token"
+msgstr ""
+
diff --git a/keystone/locale/uk/LC_MESSAGES/keystone.po b/keystone/locale/uk/LC_MESSAGES/keystone.po
new file mode 100644
index 00000000..4d8e5cef
--- /dev/null
+++ b/keystone/locale/uk/LC_MESSAGES/keystone.po
@@ -0,0 +1,848 @@
+# Ukrainian translations for keystone.
+# Copyright (C) 2013 ORGANIZATION
+# This file is distributed under the same license as the keystone project.
+#
+# Translators:
+msgid ""
+msgstr ""
+"Project-Id-Version: Keystone\n"
+"Report-Msgid-Bugs-To: https://bugs.launchpad.net/keystone\n"
+"POT-Creation-Date: 2013-08-02 17:05+0000\n"
+"PO-Revision-Date: 2013-07-29 22:01+0000\n"
+"Last-Translator: openstackjenkins <jenkins@openstack.org>\n"
+"Language-Team: Ukrainian "
+"(http://www.transifex.com/projects/p/openstack/language/uk/)\n"
+"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && "
+"n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2)\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=utf-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Generated-By: Babel 1.3\n"
+
+#: keystone/clean.py:23
+#, python-format
+msgid "%s cannot be empty."
+msgstr ""
+
+#: keystone/clean.py:25
+#, python-format
+msgid "%(property_name)s cannot be less than %(min_length)s characters."
+msgstr ""
+
+#: keystone/clean.py:29
+#, python-format
+msgid "%(property_name)s should not be greater than %(max_length)s characters."
+msgstr ""
+
+#: keystone/clean.py:36
+#, python-format
+msgid "%(property_name)s is not a %(display_expected_type)s"
+msgstr ""
+
+#: keystone/exception.py:48
+msgid "missing exception kwargs (programmer error)"
+msgstr ""
+
+#: keystone/exception.py:65
+#, python-format
+msgid ""
+"Expecting to find %(attribute)s in %(target)s. The server could not "
+"comply with the request since it is either malformed or otherwise "
+"incorrect. The client is assumed to be in error."
+msgstr ""
+
+#: keystone/exception.py:74
+#, python-format
+msgid ""
+"String length exceeded.The length of string '%(string)s' exceeded the "
+"limit of column %(type)s(CHAR(%(length)d))."
+msgstr ""
+
+#: keystone/exception.py:80
+#, python-format
+msgid ""
+"Request attribute %(attribute)s must be less than or equal to %(size)i. "
+"The server could not comply with the request because the attribute size "
+"is invalid (too large). The client is assumed to be in error."
+msgstr ""
+
+#: keystone/exception.py:101
+msgid "The request you have made requires authentication."
+msgstr ""
+
+#: keystone/exception.py:107
+msgid "Authentication plugin error."
+msgstr ""
+
+#: keystone/exception.py:115
+msgid "Attempted to authenticate with an unsupported method."
+msgstr ""
+
+#: keystone/exception.py:123
+msgid "Additional authentications steps required."
+msgstr ""
+
+#: keystone/exception.py:131
+msgid "You are not authorized to perform the requested action."
+msgstr ""
+
+#: keystone/exception.py:138
+#, python-format
+msgid "You are not authorized to perform the requested action, %(action)s."
+msgstr ""
+
+#: keystone/exception.py:143
+#, python-format
+msgid "Could not find, %(target)s."
+msgstr ""
+
+#: keystone/exception.py:149
+#, python-format
+msgid "Could not find endpoint, %(endpoint_id)s."
+msgstr ""
+
+#: keystone/exception.py:156
+msgid "An unhandled exception has occurred: Could not find metadata."
+msgstr ""
+
+#: keystone/exception.py:161
+#, python-format
+msgid "Could not find policy, %(policy_id)s."
+msgstr ""
+
+#: keystone/exception.py:165
+#, python-format
+msgid "Could not find role, %(role_id)s."
+msgstr ""
+
+#: keystone/exception.py:169
+#, python-format
+msgid "Could not find service, %(service_id)s."
+msgstr ""
+
+#: keystone/exception.py:173
+#, python-format
+msgid "Could not find domain, %(domain_id)s."
+msgstr ""
+
+#: keystone/exception.py:177
+#, python-format
+msgid "Could not find project, %(project_id)s."
+msgstr ""
+
+#: keystone/exception.py:181
+#, python-format
+msgid "Could not find token, %(token_id)s."
+msgstr ""
+
+#: keystone/exception.py:185
+#, python-format
+msgid "Could not find user, %(user_id)s."
+msgstr ""
+
+#: keystone/exception.py:189
+#, python-format
+msgid "Could not find group, %(group_id)s."
+msgstr ""
+
+#: keystone/exception.py:193
+#, python-format
+msgid "Could not find trust, %(trust_id)s."
+msgstr ""
+
+#: keystone/exception.py:197
+#, python-format
+msgid "Could not find credential, %(credential_id)s."
+msgstr ""
+
+#: keystone/exception.py:201
+#, python-format
+msgid "Could not find version, %(version)s."
+msgstr ""
+
+#: keystone/exception.py:205
+#, python-format
+msgid "Conflict occurred attempting to store %(type)s. %(details)s"
+msgstr ""
+
+#: keystone/exception.py:212
+msgid "Request is too large."
+msgstr ""
+
+#: keystone/exception.py:218
+#, python-format
+msgid ""
+"An unexpected error prevented the server from fulfilling your request. "
+"%(exception)s"
+msgstr ""
+
+#: keystone/exception.py:225
+#, python-format
+msgid "Malformed endpoint URL (%(endpoint)s), see ERROR log for details."
+msgstr ""
+
+#: keystone/exception.py:230
+msgid "The action you have requested has not been implemented."
+msgstr ""
+
+#: keystone/exception.py:237
+#, python-format
+msgid "The Keystone paste configuration file %(config_file)s could not be found."
+msgstr ""
+
+#: keystone/test.py:117
+#, python-format
+msgid "Failed to checkout %s"
+msgstr ""
+
+#: keystone/assignment/core.py:529
+#, python-format
+msgid "Expected dict or list: %s"
+msgstr ""
+
+#: keystone/assignment/backends/kvs.py:138
+#: keystone/assignment/backends/sql.py:285
+#, python-format
+msgid "Cannot remove role that has not been granted, %s"
+msgstr ""
+
+#: keystone/assignment/backends/ldap.py:418
+#, python-format
+msgid "Role %s not found"
+msgstr ""
+
+#: keystone/assignment/backends/sql.py:114
+msgid "Inherited roles can only be assigned to domains"
+msgstr ""
+
+#: keystone/auth/controllers.py:71
+#, python-format
+msgid "Project is disabled: %s"
+msgstr ""
+
+#: keystone/auth/controllers.py:77 keystone/auth/plugins/password.py:38
+#, python-format
+msgid "Domain is disabled: %s"
+msgstr ""
+
+#: keystone/auth/controllers.py:83 keystone/auth/plugins/password.py:44
+#, python-format
+msgid "User is disabled: %s"
+msgstr ""
+
+#: keystone/auth/controllers.py:262
+msgid "Scoping to both domain and project is not allowed"
+msgstr ""
+
+#: keystone/auth/controllers.py:265
+msgid "Scoping to both domain and trust is not allowed"
+msgstr ""
+
+#: keystone/auth/controllers.py:268
+msgid "Scoping to both project and trust is not allowed"
+msgstr ""
+
+#: keystone/auth/controllers.py:353
+msgid "User not found"
+msgstr ""
+
+#: keystone/auth/plugins/external.py:36 keystone/auth/plugins/external.py:66
+msgid "No authenticated user"
+msgstr ""
+
+#: keystone/auth/plugins/external.py:49 keystone/auth/plugins/external.py:86
+#, python-format
+msgid "Unable to lookup user %s"
+msgstr ""
+
+#: keystone/auth/plugins/password.py:112
+msgid "Invalid username or password"
+msgstr ""
+
+#: keystone/catalog/core.py:38
+#, python-format
+msgid "Malformed endpoint %(url)s - unknown key %(keyerror)s"
+msgstr ""
+
+#: keystone/catalog/core.py:43
+#, python-format
+msgid ""
+"Malformed endpoint %(url)s - unknown key %(keyerror)s(are you missing "
+"brackets ?)"
+msgstr ""
+
+#: keystone/catalog/core.py:49
+#, python-format
+msgid ""
+"Malformed endpoint %s - incomplete format (are you "
+"missing a type notifier ?)"
+msgstr ""
+
+#: keystone/catalog/backends/templated.py:109
+#, python-format
+msgid "Unable to open template file %s"
+msgstr ""
+
+#: keystone/common/cms.py:26
+#, python-format
+msgid "Verify error: %s"
+msgstr ""
+
+#: keystone/common/cms.py:118
+msgid ""
+"Signing error: Unable to load certificate - ensure you've configured PKI "
+"with 'keystone-manage pki_setup'"
+msgstr ""
+
+#: keystone/common/cms.py:122
+#, python-format
+msgid "Signing error: %s"
+msgstr ""
+
+#: keystone/common/config.py:89
+#, python-format
+msgid "Unable to locate specified logging config file: %s"
+msgstr ""
+
+#: keystone/common/config.py:107
+msgid "Invalid syslog facility"
+msgstr ""
+
+#: keystone/common/controller.py:18
+#, python-format
+msgid "RBAC: Authorizing %(action)s(%(kwargs)s)"
+msgstr ""
+
+#: keystone/common/controller.py:25
+msgid "RBAC: Invalid token"
+msgstr ""
+
+#: keystone/common/controller.py:39 keystone/common/controller.py:60
+msgid "RBAC: Invalid user"
+msgstr ""
+
+#: keystone/common/controller.py:45
+msgid "RBAC: Proceeding without project"
+msgstr ""
+
+#: keystone/common/controller.py:65
+msgid "RBAC: Proceeding without tenant"
+msgstr ""
+
+#: keystone/common/controller.py:95 keystone/common/controller.py:146
+msgid "RBAC: Bypassing authorization"
+msgstr ""
+
+#: keystone/common/controller.py:104 keystone/common/controller.py:144
+msgid "RBAC: Authorization granted"
+msgstr ""
+
+#: keystone/common/controller.py:134
+#, python-format
+msgid "RBAC: Adding query filter params (%s)"
+msgstr ""
+
+#: keystone/common/controller.py:322
+msgid "Invalid token in normalize_domain_id"
+msgstr ""
+
+#: keystone/common/utils.py:233
+msgid ""
+"Error setting up the debug environment. Verify that the option --debug-"
+"url has the format <host>:<port> and that a debugger processes is "
+"listening on that port."
+msgstr ""
+
+#: keystone/common/wsgi.py:95
+msgid "No bind information present in token"
+msgstr ""
+
+#: keystone/common/wsgi.py:99
+#, python-format
+msgid "Named bind mode %s not in bind information"
+msgstr ""
+
+#: keystone/common/wsgi.py:105
+msgid "Kerberos credentials required and not present"
+msgstr ""
+
+#: keystone/common/wsgi.py:109
+msgid "Kerberos credentials do not match those in bind"
+msgstr ""
+
+#: keystone/common/wsgi.py:112
+msgid "Kerberos bind authentication successful"
+msgstr ""
+
+#: keystone/common/wsgi.py:115
+#, python-format
+msgid "Ignoring unknown bind for permissive mode: {%(bind_type)s: %(identifier)s}"
+msgstr ""
+
+#: keystone/common/wsgi.py:119
+#, python-format
+msgid "Couldn't verify unknown bind: {%(bind_type)s: %(identifier)s}"
+msgstr ""
+
+#: keystone/common/wsgi.py:211
+#, python-format
+msgid "arg_dict: %s"
+msgstr ""
+
+#: keystone/common/wsgi.py:243
+#, python-format
+msgid "Authorization failed. %(exception)s from %(remote_addr)s"
+msgstr ""
+
+#: keystone/common/wsgi.py:487
+msgid "The resource could not be found."
+msgstr ""
+
+#: keystone/common/environment/__init__.py:37
+#, python-format
+msgid "Environment configured as: %s"
+msgstr ""
+
+#: keystone/common/environment/eventlet_server.py:51
+#, python-format
+msgid "Starting %(arg0)s on %(host)s:%(port)s"
+msgstr ""
+
+#: keystone/common/environment/eventlet_server.py:113
+msgid "Server error"
+msgstr ""
+
+#: keystone/common/ldap/core.py:79
+#, python-format
+msgid "Invalid LDAP deref option: %s. Choose one of: "
+msgstr ""
+
+#: keystone/common/ldap/core.py:87
+#, python-format
+msgid "Invalid LDAP TLS certs option: %(option). Choose one of: %(options)s"
+msgstr ""
+
+#: keystone/common/ldap/core.py:99
+#, python-format
+msgid "Invalid LDAP scope: %(scope)s. Choose one of: %(options)s"
+msgstr ""
+
+#: keystone/common/ldap/core.py:189
+#, python-format
+msgid ""
+"Invalid additional attribute mapping: \"%s\". Format must be "
+"<ldap_attribute>:<keystone_attribute>"
+msgstr ""
+
+#: keystone/common/ldap/core.py:195
+#, python-format
+msgid ""
+"Invalid additional attribute mapping: \"%(item)s\". Value "
+"\"%(attr_map)s\" must use one of %(keys)s."
+msgstr ""
+
+#: keystone/common/ldap/core.py:279 keystone/identity/backends/kvs.py:177
+#: keystone/identity/backends/kvs.py:205
+#, python-format
+msgid "Duplicate name, %s."
+msgstr ""
+
+#: keystone/common/ldap/core.py:289 keystone/identity/backends/kvs.py:170
+#, python-format
+msgid "Duplicate ID, %s."
+msgstr ""
+
+#: keystone/common/ldap/core.py:294
+#, python-format
+msgid "LDAP %s create"
+msgstr ""
+
+#: keystone/common/ldap/core.py:372
+#, python-format
+msgid "LDAP %s update"
+msgstr ""
+
+#: keystone/common/ldap/core.py:405
+#, python-format
+msgid "LDAP %s delete"
+msgstr ""
+
+#: keystone/common/ldap/core.py:430
+#, python-format
+msgid "LDAP init: url=%s"
+msgstr ""
+
+#: keystone/common/ldap/core.py:431
+#, python-format
+msgid ""
+"LDAP init: use_tls=%(use_tls)s\n"
+"tls_cacertfile=%(tls_cacertfile)s\n"
+"tls_cacertdir=%(tls_cacertdir)s\n"
+"tls_req_cert=%(tls_req_cert)s\n"
+"tls_avail=%(tls_avail)s\n"
+msgstr ""
+
+#: keystone/common/ldap/core.py:450
+msgid "Invalid TLS / LDAPS combination"
+msgstr ""
+
+#: keystone/common/ldap/core.py:454
+#, python-format
+msgid "Invalid LDAP TLS_AVAIL option: %s. TLS not available"
+msgstr ""
+
+#: keystone/common/ldap/core.py:464
+#, python-format
+msgid "tls_cacertfile %s not found or is not a file"
+msgstr ""
+
+#: keystone/common/ldap/core.py:476
+#, python-format
+msgid "tls_cacertdir %s not found or is not a directory"
+msgstr ""
+
+#: keystone/common/ldap/core.py:483
+#, python-format
+msgid "LDAP TLS: invalid TLS_REQUIRE_CERT Option=%s"
+msgstr ""
+
+#: keystone/common/ldap/core.py:497
+#, python-format
+msgid "LDAP bind: dn=%s"
+msgstr ""
+
+#: keystone/common/ldap/core.py:508
+#, python-format
+msgid "LDAP add: dn=%(dn)s, attrs=%(attrs)s"
+msgstr ""
+
+#: keystone/common/ldap/core.py:514
+#, python-format
+msgid ""
+"LDAP search: dn=%(dn)s, scope=%(scope)s, query=%(query)s, "
+"attrs=%(attrlist)s"
+msgstr ""
+
+#: keystone/common/ldap/core.py:567
+msgid ""
+"LDAP Server does not support paging. Disable paging in keystone.conf to "
+"avoid this message."
+msgstr ""
+
+#: keystone/common/ldap/core.py:584
+#, python-format
+msgid "LDAP modify: dn=%(dn)s, modlist=%(modlist)s"
+msgstr ""
+
+#: keystone/common/ldap/core.py:590
+#, python-format
+msgid "LDAP delete: dn=%s"
+msgstr ""
+
+#: keystone/common/ldap/core.py:595
+#, python-format
+msgid "LDAP delete_ext: dn=%(dn)s, serverctrls=%(serverctrls)s"
+msgstr ""
+
+#: keystone/common/ldap/fakeldap.py:146
+#, python-format
+msgid "FakeLdap initialize url=%s"
+msgstr ""
+
+#: keystone/common/ldap/fakeldap.py:156
+#, python-format
+msgid "FakeLdap bind dn=%s"
+msgstr ""
+
+#: keystone/common/ldap/fakeldap.py:163
+#, python-format
+msgid "FakeLdap bind fail: dn=%s not found"
+msgstr ""
+
+#: keystone/common/ldap/fakeldap.py:170
+#, python-format
+msgid "FakeLdap bind fail: password for dn=%s not found"
+msgstr ""
+
+#: keystone/common/ldap/fakeldap.py:175
+#, python-format
+msgid "FakeLdap bind fail: password for dn=%s does not match"
+msgstr ""
+
+#: keystone/common/ldap/fakeldap.py:190
+#, python-format
+msgid "FakeLdap add item: dn=%(dn)s, attrs=%(attrs)s"
+msgstr ""
+
+#: keystone/common/ldap/fakeldap.py:193
+#, python-format
+msgid "FakeLdap add item failed: dn=%s is already in store."
+msgstr ""
+
+#: keystone/common/ldap/fakeldap.py:207 keystone/common/ldap/fakeldap.py:221
+#, python-format
+msgid "FakeLdap delete item: dn=%s"
+msgstr ""
+
+#: keystone/common/ldap/fakeldap.py:211 keystone/common/ldap/fakeldap.py:225
+#, python-format
+msgid "FakeLdap delete item failed: dn=%s not found."
+msgstr ""
+
+#: keystone/common/ldap/fakeldap.py:240
+#, python-format
+msgid "FakeLdap modify item: dn=%(dn)s attrs=%(attrs)s"
+msgstr ""
+
+#: keystone/common/ldap/fakeldap.py:245
+#, python-format
+msgid "FakeLdap modify item failed: dn=%s not found."
+msgstr ""
+
+#: keystone/common/ldap/fakeldap.py:262
+#, python-format
+msgid "FakeLdap modify item failed: item has no attribute \"%s\" to delete"
+msgstr ""
+
+#: keystone/common/ldap/fakeldap.py:273
+#, python-format
+msgid ""
+"FakeLdap modify item failed: item has no attribute \"%(k)s\" with value "
+"\"%(v)s\" to delete"
+msgstr ""
+
+#: keystone/common/ldap/fakeldap.py:279
+#, python-format
+msgid "FakeLdap modify item failed: unknown command %s"
+msgstr ""
+
+#: keystone/common/ldap/fakeldap.py:281
+#, python-format
+msgid "modify_s action %s not implemented"
+msgstr ""
+
+#: keystone/common/ldap/fakeldap.py:300
+#, python-format
+msgid "FakeLdap search at dn=%(dn)s scope=%(scope)s query=%(query)s"
+msgstr ""
+
+#: keystone/common/ldap/fakeldap.py:306
+msgid "FakeLdap search fail: dn not found for SCOPE_BASE"
+msgstr ""
+
+#: keystone/common/ldap/fakeldap.py:320
+#, python-format
+msgid "Search scope %s not implemented."
+msgstr ""
+
+#: keystone/common/sql/core.py:119
+msgid "Global engine callback raised."
+msgstr ""
+
+#: keystone/common/sql/core.py:233
+#, python-format
+msgid "Got mysql server has gone away: %s"
+msgstr ""
+
+#: keystone/common/sql/legacy.py:188
+#, python-format
+msgid "Cannot migrate EC2 credential: %s"
+msgstr ""
+
+#: keystone/common/sql/migration.py:47
+msgid "version should be an integer"
+msgstr ""
+
+#: keystone/common/sql/nova.py:65
+#, python-format
+msgid "Create tenant %s"
+msgstr ""
+
+#: keystone/common/sql/nova.py:82
+#, python-format
+msgid "Create user %s"
+msgstr ""
+
+#: keystone/common/sql/nova.py:91
+#, python-format
+msgid "Add user %(user_id)s to tenant %(tenant_id)s"
+msgstr ""
+
+#: keystone/common/sql/nova.py:100
+#, python-format
+msgid "Ignoring existing role %s"
+msgstr ""
+
+#: keystone/common/sql/nova.py:107
+#, python-format
+msgid "Create role %s"
+msgstr ""
+
+#: keystone/common/sql/nova.py:117
+#, python-format
+msgid "Assign role %(role_id)s to user %(user_id)s on tenant %(tenant_id)s"
+msgstr ""
+
+#: keystone/common/sql/nova.py:136
+#, python-format
+msgid "Creating ec2 cred for user %(user_id)s and tenant %(tenant_id)s"
+msgstr ""
+
+#: keystone/identity/controllers.py:952
+#, python-format
+msgid ""
+"Group %(group)s not found for role-assignment - %(target)s with Role: "
+"%(role)s"
+msgstr ""
+
+#: keystone/identity/backends/kvs.py:126 keystone/identity/backends/kvs.py:135
+msgid "User not found in group"
+msgstr ""
+
+#: keystone/identity/backends/ldap.py:189
+#, python-format
+msgid ""
+"Group member '%(user_dn)s' not found in '%(group_id)s'. The user should "
+"be removed from the group. The user will be ignored."
+msgstr ""
+
+#: keystone/identity/backends/ldap.py:334
+msgid "Changing Name not supported by LDAP"
+msgstr ""
+
+#: keystone/identity/backends/ldap.py:347
+#, python-format
+msgid "User %(user_id)s is already a member of group %(group_id)s"
+msgstr ""
+
+#: keystone/openstack/common/policy.py:394
+#, python-format
+msgid "Failed to understand rule %(rule)s"
+msgstr ""
+
+#: keystone/openstack/common/policy.py:404
+#, python-format
+msgid "No handler for matches of kind %s"
+msgstr ""
+
+#: keystone/openstack/common/policy.py:679
+#, python-format
+msgid "Failed to understand rule %(rule)r"
+msgstr ""
+
+#: keystone/openstack/common/crypto/utils.py:29
+msgid "An unknown error occurred in crypto utils."
+msgstr ""
+
+#: keystone/openstack/common/crypto/utils.py:36
+#, python-format
+msgid "Block size of %(given)d is too big, max = %(maximum)d"
+msgstr ""
+
+#: keystone/openstack/common/crypto/utils.py:45
+#, python-format
+msgid "Length of %(given)d is too long, max = %(maximum)d"
+msgstr ""
+
+#: keystone/policy/backends/rules.py:93
+#, python-format
+msgid "enforce %(action)s: %(credentials)s"
+msgstr ""
+
+#: keystone/token/controllers.py:378
+#, python-format
+msgid "User %(u_id)s is unauthorized for tenant %(t_id)s"
+msgstr ""
+
+#: keystone/token/controllers.py:395 keystone/token/controllers.py:398
+msgid "Token does not belong to specified tenant."
+msgstr ""
+
+#: keystone/token/provider.py:76
+msgid ""
+"keystone.conf [signing] token_format (deprecated) conflicts with "
+"keystone.conf [token] provider"
+msgstr ""
+
+#: keystone/token/provider.py:84
+msgid ""
+"keystone.conf [signing] token_format is deprecated in favor of "
+"keystone.conf [token] provider"
+msgstr ""
+
+#: keystone/token/provider.py:94
+msgid ""
+"Unrecognized keystone.conf [signing] token_format: expected either 'UUID'"
+" or 'PKI'"
+msgstr ""
+
+#: keystone/token/backends/kvs.py:37
+msgid ""
+"kvs token backend is DEPRECATED. Use keystone.token.backends.sql or "
+"keystone.token.backend.memcache instead."
+msgstr ""
+
+#: keystone/token/backends/memcache.py:144
+#, python-format
+msgid ""
+"Successful set of token-index-list for user-key \"%(user_key)s\", "
+"#%(count)d records"
+msgstr ""
+
+#: keystone/token/backends/memcache.py:154
+#, python-format
+msgid ""
+"Failed to set token-index-list for user-key \"%(user_key)s\". Attempt "
+"%(cas_retry)d of %(cas_retry_max)d"
+msgstr ""
+
+#: keystone/token/backends/memcache.py:163
+msgid "Unable to add token user list"
+msgstr ""
+
+#: keystone/token/backends/memcache.py:172
+msgid "Unable to add token to revocation list."
+msgstr ""
+
+#: keystone/token/providers/pki.py:43
+msgid "Unable to sign token."
+msgstr ""
+
+#: keystone/token/providers/uuid.py:193
+msgid "Trustor is disabled."
+msgstr ""
+
+#: keystone/token/providers/uuid.py:238
+msgid "Trustee has no delegated roles."
+msgstr ""
+
+#: keystone/token/providers/uuid.py:247
+#, python-format
+msgid "User %(user_id)s has no access to project %(project_id)s"
+msgstr ""
+
+#: keystone/token/providers/uuid.py:252
+#, python-format
+msgid "User %(user_id)s has no access to domain %(domain_id)s"
+msgstr ""
+
+#: keystone/token/providers/uuid.py:303
+msgid "User is not a trustee."
+msgstr ""
+
+#: keystone/token/providers/uuid.py:457
+msgid "Non-default domain is not supported"
+msgstr ""
+
+#: keystone/token/providers/uuid.py:465
+msgid "Domain scoped token is not supported"
+msgstr ""
+
+#: keystone/token/providers/uuid.py:528
+msgid "Failed to validate token"
+msgstr ""
+
+#: keystone/token/providers/uuid.py:566 keystone/token/providers/uuid.py:576
+msgid "Failed to verify token"
+msgstr ""
+
diff --git a/keystone/locale/vi_VN/LC_MESSAGES/keystone.po b/keystone/locale/vi_VN/LC_MESSAGES/keystone.po
index 20fbd476..a7f3d30c 100644
--- a/keystone/locale/vi_VN/LC_MESSAGES/keystone.po
+++ b/keystone/locale/vi_VN/LC_MESSAGES/keystone.po
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Keystone\n"
"Report-Msgid-Bugs-To: https://bugs.launchpad.net/keystone\n"
-"POT-Creation-Date: 2013-07-11 17:05+0000\n"
+"POT-Creation-Date: 2013-08-02 17:05+0000\n"
"PO-Revision-Date: 2013-05-17 16:06+0000\n"
"Last-Translator: openstackjenkins <jenkins@openstack.org>\n"
"Language-Team: Vietnamese (Viet Nam) "
@@ -16,7 +16,7 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"Generated-By: Babel 0.9.6\n"
+"Generated-By: Babel 1.3\n"
#: keystone/clean.py:23
#, python-format
@@ -38,78 +38,224 @@ msgstr ""
msgid "%(property_name)s is not a %(display_expected_type)s"
msgstr ""
-#: keystone/test.py:106
+#: keystone/exception.py:48
+msgid "missing exception kwargs (programmer error)"
+msgstr ""
+
+#: keystone/exception.py:65
+#, python-format
+msgid ""
+"Expecting to find %(attribute)s in %(target)s. The server could not "
+"comply with the request since it is either malformed or otherwise "
+"incorrect. The client is assumed to be in error."
+msgstr ""
+
+#: keystone/exception.py:74
+#, python-format
+msgid ""
+"String length exceeded.The length of string '%(string)s' exceeded the "
+"limit of column %(type)s(CHAR(%(length)d))."
+msgstr ""
+
+#: keystone/exception.py:80
+#, python-format
+msgid ""
+"Request attribute %(attribute)s must be less than or equal to %(size)i. "
+"The server could not comply with the request because the attribute size "
+"is invalid (too large). The client is assumed to be in error."
+msgstr ""
+
+#: keystone/exception.py:101
+msgid "The request you have made requires authentication."
+msgstr ""
+
+#: keystone/exception.py:107
+msgid "Authentication plugin error."
+msgstr ""
+
+#: keystone/exception.py:115
+msgid "Attempted to authenticate with an unsupported method."
+msgstr ""
+
+#: keystone/exception.py:123
+msgid "Additional authentications steps required."
+msgstr ""
+
+#: keystone/exception.py:131
+msgid "You are not authorized to perform the requested action."
+msgstr ""
+
+#: keystone/exception.py:138
+#, python-format
+msgid "You are not authorized to perform the requested action, %(action)s."
+msgstr ""
+
+#: keystone/exception.py:143
+#, python-format
+msgid "Could not find, %(target)s."
+msgstr ""
+
+#: keystone/exception.py:149
+#, python-format
+msgid "Could not find endpoint, %(endpoint_id)s."
+msgstr ""
+
+#: keystone/exception.py:156
+msgid "An unhandled exception has occurred: Could not find metadata."
+msgstr ""
+
+#: keystone/exception.py:161
+#, python-format
+msgid "Could not find policy, %(policy_id)s."
+msgstr ""
+
+#: keystone/exception.py:165
+#, python-format
+msgid "Could not find role, %(role_id)s."
+msgstr ""
+
+#: keystone/exception.py:169
+#, python-format
+msgid "Could not find service, %(service_id)s."
+msgstr ""
+
+#: keystone/exception.py:173
+#, python-format
+msgid "Could not find domain, %(domain_id)s."
+msgstr ""
+
+#: keystone/exception.py:177
+#, python-format
+msgid "Could not find project, %(project_id)s."
+msgstr ""
+
+#: keystone/exception.py:181
+#, python-format
+msgid "Could not find token, %(token_id)s."
+msgstr ""
+
+#: keystone/exception.py:185
+#, python-format
+msgid "Could not find user, %(user_id)s."
+msgstr ""
+
+#: keystone/exception.py:189
+#, python-format
+msgid "Could not find group, %(group_id)s."
+msgstr ""
+
+#: keystone/exception.py:193
+#, python-format
+msgid "Could not find trust, %(trust_id)s."
+msgstr ""
+
+#: keystone/exception.py:197
+#, python-format
+msgid "Could not find credential, %(credential_id)s."
+msgstr ""
+
+#: keystone/exception.py:201
+#, python-format
+msgid "Could not find version, %(version)s."
+msgstr ""
+
+#: keystone/exception.py:205
+#, python-format
+msgid "Conflict occurred attempting to store %(type)s. %(details)s"
+msgstr ""
+
+#: keystone/exception.py:212
+msgid "Request is too large."
+msgstr ""
+
+#: keystone/exception.py:218
+#, python-format
+msgid ""
+"An unexpected error prevented the server from fulfilling your request. "
+"%(exception)s"
+msgstr ""
+
+#: keystone/exception.py:225
+#, python-format
+msgid "Malformed endpoint URL (%(endpoint)s), see ERROR log for details."
+msgstr ""
+
+#: keystone/exception.py:230
+msgid "The action you have requested has not been implemented."
+msgstr ""
+
+#: keystone/exception.py:237
+#, python-format
+msgid "The Keystone paste configuration file %(config_file)s could not be found."
+msgstr ""
+
+#: keystone/test.py:117
#, python-format
msgid "Failed to checkout %s"
msgstr ""
-#: keystone/assignment/backends/ldap.py:110
+#: keystone/assignment/core.py:529
#, python-format
msgid "Expected dict or list: %s"
msgstr ""
-#: keystone/assignment/backends/ldap.py:456
-#: keystone/identity/backends/ldap.py:433
+#: keystone/assignment/backends/kvs.py:138
+#: keystone/assignment/backends/sql.py:285
#, python-format
-msgid "Role %s not found"
+msgid "Cannot remove role that has not been granted, %s"
msgstr ""
-#: keystone/assignment/backends/sql.py:244
+#: keystone/assignment/backends/ldap.py:418
#, python-format
-msgid "Cannot remove role that has not been granted, %s"
+msgid "Role %s not found"
msgstr ""
-#: keystone/auth/controllers.py:72
+#: keystone/assignment/backends/sql.py:114
+msgid "Inherited roles can only be assigned to domains"
+msgstr ""
+
+#: keystone/auth/controllers.py:71
#, python-format
msgid "Project is disabled: %s"
msgstr ""
-#: keystone/auth/controllers.py:78 keystone/auth/plugins/password.py:38
+#: keystone/auth/controllers.py:77 keystone/auth/plugins/password.py:38
#, python-format
msgid "Domain is disabled: %s"
msgstr ""
-#: keystone/auth/controllers.py:84 keystone/auth/plugins/password.py:44
+#: keystone/auth/controllers.py:83 keystone/auth/plugins/password.py:44
#, python-format
msgid "User is disabled: %s"
msgstr ""
-#: keystone/auth/controllers.py:259
+#: keystone/auth/controllers.py:262
msgid "Scoping to both domain and project is not allowed"
msgstr ""
-#: keystone/auth/controllers.py:262
+#: keystone/auth/controllers.py:265
msgid "Scoping to both domain and trust is not allowed"
msgstr ""
-#: keystone/auth/controllers.py:265
+#: keystone/auth/controllers.py:268
msgid "Scoping to both project and trust is not allowed"
msgstr ""
-#: keystone/auth/controllers.py:325
-#, python-format
-msgid "Unable to lookup user %s"
-msgstr ""
-
-#: keystone/auth/controllers.py:355
+#: keystone/auth/controllers.py:353
msgid "User not found"
msgstr ""
-#: keystone/auth/token_factory.py:79
-msgid "User have no access to project"
-msgstr ""
-
-#: keystone/auth/token_factory.py:94
-msgid "User have no access to domain"
+#: keystone/auth/plugins/external.py:36 keystone/auth/plugins/external.py:66
+msgid "No authenticated user"
msgstr ""
-#: keystone/auth/token_factory.py:311 keystone/token/controllers.py:119
-msgid "Unable to sign token."
+#: keystone/auth/plugins/external.py:49 keystone/auth/plugins/external.py:86
+#, python-format
+msgid "Unable to lookup user %s"
msgstr ""
-#: keystone/auth/token_factory.py:314 keystone/token/controllers.py:122
-#, python-format
-msgid "Invalid value for token_format: %s. Allowed values are PKI or UUID."
+#: keystone/auth/plugins/password.py:112
+msgid "Invalid username or password"
msgstr ""
#: keystone/catalog/core.py:38
@@ -170,32 +316,32 @@ msgstr ""
msgid "RBAC: Invalid token"
msgstr ""
-#: keystone/common/controller.py:35 keystone/common/controller.py:56
+#: keystone/common/controller.py:39 keystone/common/controller.py:60
msgid "RBAC: Invalid user"
msgstr ""
-#: keystone/common/controller.py:41
+#: keystone/common/controller.py:45
msgid "RBAC: Proceeding without project"
msgstr ""
-#: keystone/common/controller.py:61
+#: keystone/common/controller.py:65
msgid "RBAC: Proceeding without tenant"
msgstr ""
-#: keystone/common/controller.py:91 keystone/common/controller.py:142
+#: keystone/common/controller.py:95 keystone/common/controller.py:146
msgid "RBAC: Bypassing authorization"
msgstr ""
-#: keystone/common/controller.py:100 keystone/common/controller.py:140
+#: keystone/common/controller.py:104 keystone/common/controller.py:144
msgid "RBAC: Authorization granted"
msgstr ""
-#: keystone/common/controller.py:130
+#: keystone/common/controller.py:134
#, python-format
msgid "RBAC: Adding query filter params (%s)"
msgstr ""
-#: keystone/common/controller.py:318
+#: keystone/common/controller.py:322
msgid "Invalid token in normalize_domain_id"
msgstr ""
@@ -206,17 +352,48 @@ msgid ""
"listening on that port."
msgstr ""
-#: keystone/common/wsgi.py:162
+#: keystone/common/wsgi.py:95
+msgid "No bind information present in token"
+msgstr ""
+
+#: keystone/common/wsgi.py:99
+#, python-format
+msgid "Named bind mode %s not in bind information"
+msgstr ""
+
+#: keystone/common/wsgi.py:105
+msgid "Kerberos credentials required and not present"
+msgstr ""
+
+#: keystone/common/wsgi.py:109
+msgid "Kerberos credentials do not match those in bind"
+msgstr ""
+
+#: keystone/common/wsgi.py:112
+msgid "Kerberos bind authentication successful"
+msgstr ""
+
+#: keystone/common/wsgi.py:115
+#, python-format
+msgid "Ignoring unknown bind for permissive mode: {%(bind_type)s: %(identifier)s}"
+msgstr ""
+
+#: keystone/common/wsgi.py:119
+#, python-format
+msgid "Couldn't verify unknown bind: {%(bind_type)s: %(identifier)s}"
+msgstr ""
+
+#: keystone/common/wsgi.py:211
#, python-format
msgid "arg_dict: %s"
msgstr ""
-#: keystone/common/wsgi.py:188
+#: keystone/common/wsgi.py:243
#, python-format
msgid "Authorization failed. %(exception)s from %(remote_addr)s"
msgstr ""
-#: keystone/common/wsgi.py:431
+#: keystone/common/wsgi.py:487
msgid "The resource could not be found."
msgstr ""
@@ -457,11 +634,11 @@ msgstr ""
msgid "Search scope %s not implemented."
msgstr ""
-#: keystone/common/sql/core.py:126
+#: keystone/common/sql/core.py:119
msgid "Global engine callback raised."
msgstr ""
-#: keystone/common/sql/core.py:240
+#: keystone/common/sql/core.py:233
#, python-format
msgid "Got mysql server has gone away: %s"
msgstr ""
@@ -510,7 +687,7 @@ msgstr ""
msgid "Creating ec2 cred for user %(user_id)s and tenant %(tenant_id)s"
msgstr ""
-#: keystone/identity/controllers.py:878
+#: keystone/identity/controllers.py:952
#, python-format
msgid ""
"Group %(group)s not found for role-assignment - %(target)s with Role: "
@@ -521,18 +698,18 @@ msgstr ""
msgid "User not found in group"
msgstr ""
-#: keystone/identity/backends/ldap.py:192
+#: keystone/identity/backends/ldap.py:189
#, python-format
msgid ""
"Group member '%(user_dn)s' not found in '%(group_id)s'. The user should "
"be removed from the group. The user will be ignored."
msgstr ""
-#: keystone/identity/backends/ldap.py:621
+#: keystone/identity/backends/ldap.py:334
msgid "Changing Name not supported by LDAP"
msgstr ""
-#: keystone/identity/backends/ldap.py:634
+#: keystone/identity/backends/ldap.py:347
#, python-format
msgid "User %(user_id)s is already a member of group %(group_id)s"
msgstr ""
@@ -552,26 +729,56 @@ msgstr ""
msgid "Failed to understand rule %(rule)r"
msgstr ""
+#: keystone/openstack/common/crypto/utils.py:29
+msgid "An unknown error occurred in crypto utils."
+msgstr ""
+
+#: keystone/openstack/common/crypto/utils.py:36
+#, python-format
+msgid "Block size of %(given)d is too big, max = %(maximum)d"
+msgstr ""
+
+#: keystone/openstack/common/crypto/utils.py:45
+#, python-format
+msgid "Length of %(given)d is too long, max = %(maximum)d"
+msgstr ""
+
#: keystone/policy/backends/rules.py:93
#, python-format
msgid "enforce %(action)s: %(credentials)s"
msgstr ""
-#: keystone/token/controllers.py:396
+#: keystone/token/controllers.py:378
#, python-format
msgid "User %(u_id)s is unauthorized for tenant %(t_id)s"
msgstr ""
-#: keystone/token/controllers.py:413 keystone/token/controllers.py:416
+#: keystone/token/controllers.py:395 keystone/token/controllers.py:398
msgid "Token does not belong to specified tenant."
msgstr ""
-#: keystone/token/controllers.py:423
-msgid "Non-default domain is not supported"
+#: keystone/token/provider.py:76
+msgid ""
+"keystone.conf [signing] token_format (deprecated) conflicts with "
+"keystone.conf [token] provider"
msgstr ""
-#: keystone/token/controllers.py:431
-msgid "Domain scoped token is not supported"
+#: keystone/token/provider.py:84
+msgid ""
+"keystone.conf [signing] token_format is deprecated in favor of "
+"keystone.conf [token] provider"
+msgstr ""
+
+#: keystone/token/provider.py:94
+msgid ""
+"Unrecognized keystone.conf [signing] token_format: expected either 'UUID'"
+" or 'PKI'"
+msgstr ""
+
+#: keystone/token/backends/kvs.py:37
+msgid ""
+"kvs token backend is DEPRECATED. Use keystone.token.backends.sql or "
+"keystone.token.backend.memcache instead."
msgstr ""
#: keystone/token/backends/memcache.py:144
@@ -596,3 +803,54 @@ msgstr ""
msgid "Unable to add token to revocation list."
msgstr ""
+#: keystone/token/providers/pki.py:43
+msgid "Unable to sign token."
+msgstr ""
+
+#: keystone/token/providers/uuid.py:193
+msgid "Trustor is disabled."
+msgstr ""
+
+#: keystone/token/providers/uuid.py:238
+msgid "Trustee has no delegated roles."
+msgstr ""
+
+#: keystone/token/providers/uuid.py:247
+#, python-format
+msgid "User %(user_id)s has no access to project %(project_id)s"
+msgstr ""
+
+#: keystone/token/providers/uuid.py:252
+#, python-format
+msgid "User %(user_id)s has no access to domain %(domain_id)s"
+msgstr ""
+
+#: keystone/token/providers/uuid.py:303
+msgid "User is not a trustee."
+msgstr ""
+
+#: keystone/token/providers/uuid.py:457
+msgid "Non-default domain is not supported"
+msgstr ""
+
+#: keystone/token/providers/uuid.py:465
+msgid "Domain scoped token is not supported"
+msgstr ""
+
+#: keystone/token/providers/uuid.py:528
+msgid "Failed to validate token"
+msgstr ""
+
+#: keystone/token/providers/uuid.py:566 keystone/token/providers/uuid.py:576
+msgid "Failed to verify token"
+msgstr ""
+
+#~ msgid "User have no access to project"
+#~ msgstr ""
+
+#~ msgid "User have no access to domain"
+#~ msgstr ""
+
+#~ msgid "Invalid value for token_format: %s. Allowed values are PKI or UUID."
+#~ msgstr ""
+
diff --git a/keystone/locale/zh_CN/LC_MESSAGES/keystone.po b/keystone/locale/zh_CN/LC_MESSAGES/keystone.po
index b3d557a1..8d69a376 100644
--- a/keystone/locale/zh_CN/LC_MESSAGES/keystone.po
+++ b/keystone/locale/zh_CN/LC_MESSAGES/keystone.po
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Keystone\n"
"Report-Msgid-Bugs-To: https://bugs.launchpad.net/keystone\n"
-"POT-Creation-Date: 2013-07-11 17:05+0000\n"
+"POT-Creation-Date: 2013-08-02 17:05+0000\n"
"PO-Revision-Date: 2013-05-21 06:08+0000\n"
"Last-Translator: daisy.ycguo <daisy.ycguo@gmail.com>\n"
"Language-Team: Chinese (China) "
@@ -16,7 +16,7 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"Generated-By: Babel 0.9.6\n"
+"Generated-By: Babel 1.3\n"
#: keystone/clean.py:23
#, python-format
@@ -38,79 +38,225 @@ msgstr "%(property_name)s 不应该超过 %(max_length)s 个字符。"
msgid "%(property_name)s is not a %(display_expected_type)s"
msgstr ""
-#: keystone/test.py:106
+#: keystone/exception.py:48
+msgid "missing exception kwargs (programmer error)"
+msgstr ""
+
+#: keystone/exception.py:65
+#, python-format
+msgid ""
+"Expecting to find %(attribute)s in %(target)s. The server could not "
+"comply with the request since it is either malformed or otherwise "
+"incorrect. The client is assumed to be in error."
+msgstr ""
+
+#: keystone/exception.py:74
+#, python-format
+msgid ""
+"String length exceeded.The length of string '%(string)s' exceeded the "
+"limit of column %(type)s(CHAR(%(length)d))."
+msgstr ""
+
+#: keystone/exception.py:80
+#, python-format
+msgid ""
+"Request attribute %(attribute)s must be less than or equal to %(size)i. "
+"The server could not comply with the request because the attribute size "
+"is invalid (too large). The client is assumed to be in error."
+msgstr ""
+
+#: keystone/exception.py:101
+msgid "The request you have made requires authentication."
+msgstr ""
+
+#: keystone/exception.py:107
+msgid "Authentication plugin error."
+msgstr ""
+
+#: keystone/exception.py:115
+msgid "Attempted to authenticate with an unsupported method."
+msgstr ""
+
+#: keystone/exception.py:123
+msgid "Additional authentications steps required."
+msgstr ""
+
+#: keystone/exception.py:131
+msgid "You are not authorized to perform the requested action."
+msgstr ""
+
+#: keystone/exception.py:138
+#, python-format
+msgid "You are not authorized to perform the requested action, %(action)s."
+msgstr ""
+
+#: keystone/exception.py:143
+#, python-format
+msgid "Could not find, %(target)s."
+msgstr ""
+
+#: keystone/exception.py:149
+#, python-format
+msgid "Could not find endpoint, %(endpoint_id)s."
+msgstr ""
+
+#: keystone/exception.py:156
+msgid "An unhandled exception has occurred: Could not find metadata."
+msgstr ""
+
+#: keystone/exception.py:161
+#, python-format
+msgid "Could not find policy, %(policy_id)s."
+msgstr ""
+
+#: keystone/exception.py:165
+#, python-format
+msgid "Could not find role, %(role_id)s."
+msgstr ""
+
+#: keystone/exception.py:169
+#, python-format
+msgid "Could not find service, %(service_id)s."
+msgstr ""
+
+#: keystone/exception.py:173
+#, python-format
+msgid "Could not find domain, %(domain_id)s."
+msgstr ""
+
+#: keystone/exception.py:177
+#, python-format
+msgid "Could not find project, %(project_id)s."
+msgstr ""
+
+#: keystone/exception.py:181
+#, python-format
+msgid "Could not find token, %(token_id)s."
+msgstr ""
+
+#: keystone/exception.py:185
+#, python-format
+msgid "Could not find user, %(user_id)s."
+msgstr ""
+
+#: keystone/exception.py:189
+#, python-format
+msgid "Could not find group, %(group_id)s."
+msgstr ""
+
+#: keystone/exception.py:193
+#, python-format
+msgid "Could not find trust, %(trust_id)s."
+msgstr ""
+
+#: keystone/exception.py:197
+#, python-format
+msgid "Could not find credential, %(credential_id)s."
+msgstr ""
+
+#: keystone/exception.py:201
+#, python-format
+msgid "Could not find version, %(version)s."
+msgstr ""
+
+#: keystone/exception.py:205
+#, python-format
+msgid "Conflict occurred attempting to store %(type)s. %(details)s"
+msgstr ""
+
+#: keystone/exception.py:212
+msgid "Request is too large."
+msgstr ""
+
+#: keystone/exception.py:218
+#, python-format
+msgid ""
+"An unexpected error prevented the server from fulfilling your request. "
+"%(exception)s"
+msgstr ""
+
+#: keystone/exception.py:225
+#, python-format
+msgid "Malformed endpoint URL (%(endpoint)s), see ERROR log for details."
+msgstr ""
+
+#: keystone/exception.py:230
+msgid "The action you have requested has not been implemented."
+msgstr ""
+
+#: keystone/exception.py:237
+#, python-format
+msgid "The Keystone paste configuration file %(config_file)s could not be found."
+msgstr ""
+
+#: keystone/test.py:117
#, python-format
msgid "Failed to checkout %s"
msgstr "未能检出 %s"
-#: keystone/assignment/backends/ldap.py:110
+#: keystone/assignment/core.py:529
#, python-format
msgid "Expected dict or list: %s"
msgstr ""
-#: keystone/assignment/backends/ldap.py:456
-#: keystone/identity/backends/ldap.py:433
+#: keystone/assignment/backends/kvs.py:138
+#: keystone/assignment/backends/sql.py:285
+#, python-format
+msgid "Cannot remove role that has not been granted, %s"
+msgstr "无法除去尚未授予的角色 %s"
+
+#: keystone/assignment/backends/ldap.py:418
#, python-format
msgid "Role %s not found"
msgstr "找不到角色 %s"
-#: keystone/assignment/backends/sql.py:244
-#, python-format
-msgid "Cannot remove role that has not been granted, %s"
-msgstr "无法除去尚未授予的角色 %s"
+#: keystone/assignment/backends/sql.py:114
+msgid "Inherited roles can only be assigned to domains"
+msgstr ""
-#: keystone/auth/controllers.py:72
+#: keystone/auth/controllers.py:71
#, python-format
msgid "Project is disabled: %s"
msgstr "项目已禁用:%s"
-#: keystone/auth/controllers.py:78 keystone/auth/plugins/password.py:38
+#: keystone/auth/controllers.py:77 keystone/auth/plugins/password.py:38
#, python-format
msgid "Domain is disabled: %s"
msgstr "域已禁用:%s"
-#: keystone/auth/controllers.py:84 keystone/auth/plugins/password.py:44
+#: keystone/auth/controllers.py:83 keystone/auth/plugins/password.py:44
#, python-format
msgid "User is disabled: %s"
msgstr "用户已禁用:%s"
-#: keystone/auth/controllers.py:259
+#: keystone/auth/controllers.py:262
msgid "Scoping to both domain and project is not allowed"
msgstr "不允许同时将作用域限定到域和项目"
-#: keystone/auth/controllers.py:262
+#: keystone/auth/controllers.py:265
msgid "Scoping to both domain and trust is not allowed"
msgstr "不允许同时将作用域限定到域和信任"
-#: keystone/auth/controllers.py:265
+#: keystone/auth/controllers.py:268
msgid "Scoping to both project and trust is not allowed"
msgstr "不允许同时将作用域限定到项目和信任"
-#: keystone/auth/controllers.py:325
-#, python-format
-msgid "Unable to lookup user %s"
-msgstr "无法查找用户 %s"
-
-#: keystone/auth/controllers.py:355
+#: keystone/auth/controllers.py:353
msgid "User not found"
msgstr "找不到用户"
-#: keystone/auth/token_factory.py:79
-msgid "User have no access to project"
-msgstr "用户对项目没有任何访问权限"
-
-#: keystone/auth/token_factory.py:94
-msgid "User have no access to domain"
-msgstr "用户对域没有任何访问权限"
-
-#: keystone/auth/token_factory.py:311 keystone/token/controllers.py:119
-msgid "Unable to sign token."
-msgstr "无法对令牌进行签名。"
+#: keystone/auth/plugins/external.py:36 keystone/auth/plugins/external.py:66
+msgid "No authenticated user"
+msgstr ""
-#: keystone/auth/token_factory.py:314 keystone/token/controllers.py:122
+#: keystone/auth/plugins/external.py:49 keystone/auth/plugins/external.py:86
#, python-format
-msgid "Invalid value for token_format: %s. Allowed values are PKI or UUID."
-msgstr "token_format 的值 %s 无效。允许值是 PKI 或 UUID。"
+msgid "Unable to lookup user %s"
+msgstr "无法查找用户 %s"
+
+#: keystone/auth/plugins/password.py:112
+msgid "Invalid username or password"
+msgstr ""
#: keystone/catalog/core.py:38
#, python-format
@@ -170,32 +316,32 @@ msgstr ""
msgid "RBAC: Invalid token"
msgstr "RBAC:令牌无效"
-#: keystone/common/controller.py:35 keystone/common/controller.py:56
+#: keystone/common/controller.py:39 keystone/common/controller.py:60
msgid "RBAC: Invalid user"
msgstr "RBAC:用户无效"
-#: keystone/common/controller.py:41
+#: keystone/common/controller.py:45
msgid "RBAC: Proceeding without project"
msgstr "RBAC:正在没有项目的情况下继续"
-#: keystone/common/controller.py:61
+#: keystone/common/controller.py:65
msgid "RBAC: Proceeding without tenant"
msgstr "RBAC:正在没有租户的情况下继续"
-#: keystone/common/controller.py:91 keystone/common/controller.py:142
+#: keystone/common/controller.py:95 keystone/common/controller.py:146
msgid "RBAC: Bypassing authorization"
msgstr "RBAC:正在绕过授权"
-#: keystone/common/controller.py:100 keystone/common/controller.py:140
+#: keystone/common/controller.py:104 keystone/common/controller.py:144
msgid "RBAC: Authorization granted"
msgstr "RBAC:已授予权限"
-#: keystone/common/controller.py:130
+#: keystone/common/controller.py:134
#, python-format
msgid "RBAC: Adding query filter params (%s)"
msgstr "RBAC:正在添加查询过滤器参数 (%s)"
-#: keystone/common/controller.py:318
+#: keystone/common/controller.py:322
msgid "Invalid token in normalize_domain_id"
msgstr "normalize_domain_id 中的令牌无效"
@@ -206,17 +352,48 @@ msgid ""
"listening on that port."
msgstr ""
-#: keystone/common/wsgi.py:162
+#: keystone/common/wsgi.py:95
+msgid "No bind information present in token"
+msgstr ""
+
+#: keystone/common/wsgi.py:99
+#, python-format
+msgid "Named bind mode %s not in bind information"
+msgstr ""
+
+#: keystone/common/wsgi.py:105
+msgid "Kerberos credentials required and not present"
+msgstr ""
+
+#: keystone/common/wsgi.py:109
+msgid "Kerberos credentials do not match those in bind"
+msgstr ""
+
+#: keystone/common/wsgi.py:112
+msgid "Kerberos bind authentication successful"
+msgstr ""
+
+#: keystone/common/wsgi.py:115
+#, python-format
+msgid "Ignoring unknown bind for permissive mode: {%(bind_type)s: %(identifier)s}"
+msgstr ""
+
+#: keystone/common/wsgi.py:119
+#, python-format
+msgid "Couldn't verify unknown bind: {%(bind_type)s: %(identifier)s}"
+msgstr ""
+
+#: keystone/common/wsgi.py:211
#, python-format
msgid "arg_dict: %s"
msgstr "arg_dict:%s"
-#: keystone/common/wsgi.py:188
+#: keystone/common/wsgi.py:243
#, fuzzy, python-format
msgid "Authorization failed. %(exception)s from %(remote_addr)s"
msgstr "授权失败。%s 来自 %s"
-#: keystone/common/wsgi.py:431
+#: keystone/common/wsgi.py:487
msgid "The resource could not be found."
msgstr "找不到该资源。"
@@ -457,11 +634,11 @@ msgstr "FakeLdap search 失败:对于 SCOPE_BASE,找不到 dn"
msgid "Search scope %s not implemented."
msgstr "未实现搜索范围 %s。"
-#: keystone/common/sql/core.py:126
+#: keystone/common/sql/core.py:119
msgid "Global engine callback raised."
msgstr ""
-#: keystone/common/sql/core.py:240
+#: keystone/common/sql/core.py:233
#, python-format
msgid "Got mysql server has gone away: %s"
msgstr "mysql 服务器已不存在:%s"
@@ -510,7 +687,7 @@ msgstr "请将角色 %s 分配给用户 %s(在租户 %s 上)"
msgid "Creating ec2 cred for user %(user_id)s and tenant %(tenant_id)s"
msgstr "正在为用户 %s 和租户 %s 创建 ec2 凭证"
-#: keystone/identity/controllers.py:878
+#: keystone/identity/controllers.py:952
#, python-format
msgid ""
"Group %(group)s not found for role-assignment - %(target)s with Role: "
@@ -521,18 +698,18 @@ msgstr ""
msgid "User not found in group"
msgstr "在组中找不到用户"
-#: keystone/identity/backends/ldap.py:192
+#: keystone/identity/backends/ldap.py:189
#, python-format
msgid ""
"Group member '%(user_dn)s' not found in '%(group_id)s'. The user should "
"be removed from the group. The user will be ignored."
msgstr ""
-#: keystone/identity/backends/ldap.py:621
+#: keystone/identity/backends/ldap.py:334
msgid "Changing Name not supported by LDAP"
msgstr "更改名称不受 LDAP 支持"
-#: keystone/identity/backends/ldap.py:634
+#: keystone/identity/backends/ldap.py:347
#, fuzzy, python-format
msgid "User %(user_id)s is already a member of group %(group_id)s"
msgstr "用户 %s 已是组 %s 的成员"
@@ -552,27 +729,57 @@ msgstr "对于类型为 %s 的匹配项,不存在任何处理程序"
msgid "Failed to understand rule %(rule)r"
msgstr "未能理解规则 %(rule)r"
+#: keystone/openstack/common/crypto/utils.py:29
+msgid "An unknown error occurred in crypto utils."
+msgstr ""
+
+#: keystone/openstack/common/crypto/utils.py:36
+#, python-format
+msgid "Block size of %(given)d is too big, max = %(maximum)d"
+msgstr ""
+
+#: keystone/openstack/common/crypto/utils.py:45
+#, python-format
+msgid "Length of %(given)d is too long, max = %(maximum)d"
+msgstr ""
+
#: keystone/policy/backends/rules.py:93
#, python-format
msgid "enforce %(action)s: %(credentials)s"
msgstr ""
-#: keystone/token/controllers.py:396
+#: keystone/token/controllers.py:378
#, python-format
msgid "User %(u_id)s is unauthorized for tenant %(t_id)s"
msgstr ""
-#: keystone/token/controllers.py:413 keystone/token/controllers.py:416
+#: keystone/token/controllers.py:395 keystone/token/controllers.py:398
msgid "Token does not belong to specified tenant."
msgstr "令牌不属于指定的租户。"
-#: keystone/token/controllers.py:423
-msgid "Non-default domain is not supported"
-msgstr "非缺省域不受支持"
+#: keystone/token/provider.py:76
+msgid ""
+"keystone.conf [signing] token_format (deprecated) conflicts with "
+"keystone.conf [token] provider"
+msgstr ""
-#: keystone/token/controllers.py:431
-msgid "Domain scoped token is not supported"
-msgstr "作用域限定到域的令牌不受支持"
+#: keystone/token/provider.py:84
+msgid ""
+"keystone.conf [signing] token_format is deprecated in favor of "
+"keystone.conf [token] provider"
+msgstr ""
+
+#: keystone/token/provider.py:94
+msgid ""
+"Unrecognized keystone.conf [signing] token_format: expected either 'UUID'"
+" or 'PKI'"
+msgstr ""
+
+#: keystone/token/backends/kvs.py:37
+msgid ""
+"kvs token backend is DEPRECATED. Use keystone.token.backends.sql or "
+"keystone.token.backend.memcache instead."
+msgstr ""
#: keystone/token/backends/memcache.py:144
#, python-format
@@ -596,3 +803,54 @@ msgstr ""
msgid "Unable to add token to revocation list."
msgstr "无法将令牌添加至撤销列表。"
+#: keystone/token/providers/pki.py:43
+msgid "Unable to sign token."
+msgstr "无法对令牌进行签名。"
+
+#: keystone/token/providers/uuid.py:193
+msgid "Trustor is disabled."
+msgstr ""
+
+#: keystone/token/providers/uuid.py:238
+msgid "Trustee has no delegated roles."
+msgstr ""
+
+#: keystone/token/providers/uuid.py:247
+#, python-format
+msgid "User %(user_id)s has no access to project %(project_id)s"
+msgstr ""
+
+#: keystone/token/providers/uuid.py:252
+#, python-format
+msgid "User %(user_id)s has no access to domain %(domain_id)s"
+msgstr ""
+
+#: keystone/token/providers/uuid.py:303
+msgid "User is not a trustee."
+msgstr ""
+
+#: keystone/token/providers/uuid.py:457
+msgid "Non-default domain is not supported"
+msgstr "非缺省域不受支持"
+
+#: keystone/token/providers/uuid.py:465
+msgid "Domain scoped token is not supported"
+msgstr "作用域限定到域的令牌不受支持"
+
+#: keystone/token/providers/uuid.py:528
+msgid "Failed to validate token"
+msgstr ""
+
+#: keystone/token/providers/uuid.py:566 keystone/token/providers/uuid.py:576
+msgid "Failed to verify token"
+msgstr ""
+
+#~ msgid "User have no access to project"
+#~ msgstr "用户对项目没有任何访问权限"
+
+#~ msgid "User have no access to domain"
+#~ msgstr "用户对域没有任何访问权限"
+
+#~ msgid "Invalid value for token_format: %s. Allowed values are PKI or UUID."
+#~ msgstr "token_format 的值 %s 无效。允许值是 PKI 或 UUID。"
+
diff --git a/keystone/locale/zh_HK/LC_MESSAGES/keystone.po b/keystone/locale/zh_HK/LC_MESSAGES/keystone.po
new file mode 100644
index 00000000..be48e5f5
--- /dev/null
+++ b/keystone/locale/zh_HK/LC_MESSAGES/keystone.po
@@ -0,0 +1,847 @@
+# Chinese (Traditional, Hong Kong SAR China) translations for keystone.
+# Copyright (C) 2013 ORGANIZATION
+# This file is distributed under the same license as the keystone project.
+#
+# Translators:
+msgid ""
+msgstr ""
+"Project-Id-Version: Keystone\n"
+"Report-Msgid-Bugs-To: https://bugs.launchpad.net/keystone\n"
+"POT-Creation-Date: 2013-08-02 17:05+0000\n"
+"PO-Revision-Date: 2013-07-29 22:01+0000\n"
+"Last-Translator: openstackjenkins <jenkins@openstack.org>\n"
+"Language-Team: Chinese (Hong Kong) "
+"(http://www.transifex.com/projects/p/openstack/language/zh_HK/)\n"
+"Plural-Forms: nplurals=1; plural=0\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=utf-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Generated-By: Babel 1.3\n"
+
+#: keystone/clean.py:23
+#, python-format
+msgid "%s cannot be empty."
+msgstr ""
+
+#: keystone/clean.py:25
+#, python-format
+msgid "%(property_name)s cannot be less than %(min_length)s characters."
+msgstr ""
+
+#: keystone/clean.py:29
+#, python-format
+msgid "%(property_name)s should not be greater than %(max_length)s characters."
+msgstr ""
+
+#: keystone/clean.py:36
+#, python-format
+msgid "%(property_name)s is not a %(display_expected_type)s"
+msgstr ""
+
+#: keystone/exception.py:48
+msgid "missing exception kwargs (programmer error)"
+msgstr ""
+
+#: keystone/exception.py:65
+#, python-format
+msgid ""
+"Expecting to find %(attribute)s in %(target)s. The server could not "
+"comply with the request since it is either malformed or otherwise "
+"incorrect. The client is assumed to be in error."
+msgstr ""
+
+#: keystone/exception.py:74
+#, python-format
+msgid ""
+"String length exceeded.The length of string '%(string)s' exceeded the "
+"limit of column %(type)s(CHAR(%(length)d))."
+msgstr ""
+
+#: keystone/exception.py:80
+#, python-format
+msgid ""
+"Request attribute %(attribute)s must be less than or equal to %(size)i. "
+"The server could not comply with the request because the attribute size "
+"is invalid (too large). The client is assumed to be in error."
+msgstr ""
+
+#: keystone/exception.py:101
+msgid "The request you have made requires authentication."
+msgstr ""
+
+#: keystone/exception.py:107
+msgid "Authentication plugin error."
+msgstr ""
+
+#: keystone/exception.py:115
+msgid "Attempted to authenticate with an unsupported method."
+msgstr ""
+
+#: keystone/exception.py:123
+msgid "Additional authentications steps required."
+msgstr ""
+
+#: keystone/exception.py:131
+msgid "You are not authorized to perform the requested action."
+msgstr ""
+
+#: keystone/exception.py:138
+#, python-format
+msgid "You are not authorized to perform the requested action, %(action)s."
+msgstr ""
+
+#: keystone/exception.py:143
+#, python-format
+msgid "Could not find, %(target)s."
+msgstr ""
+
+#: keystone/exception.py:149
+#, python-format
+msgid "Could not find endpoint, %(endpoint_id)s."
+msgstr ""
+
+#: keystone/exception.py:156
+msgid "An unhandled exception has occurred: Could not find metadata."
+msgstr ""
+
+#: keystone/exception.py:161
+#, python-format
+msgid "Could not find policy, %(policy_id)s."
+msgstr ""
+
+#: keystone/exception.py:165
+#, python-format
+msgid "Could not find role, %(role_id)s."
+msgstr ""
+
+#: keystone/exception.py:169
+#, python-format
+msgid "Could not find service, %(service_id)s."
+msgstr ""
+
+#: keystone/exception.py:173
+#, python-format
+msgid "Could not find domain, %(domain_id)s."
+msgstr ""
+
+#: keystone/exception.py:177
+#, python-format
+msgid "Could not find project, %(project_id)s."
+msgstr ""
+
+#: keystone/exception.py:181
+#, python-format
+msgid "Could not find token, %(token_id)s."
+msgstr ""
+
+#: keystone/exception.py:185
+#, python-format
+msgid "Could not find user, %(user_id)s."
+msgstr ""
+
+#: keystone/exception.py:189
+#, python-format
+msgid "Could not find group, %(group_id)s."
+msgstr ""
+
+#: keystone/exception.py:193
+#, python-format
+msgid "Could not find trust, %(trust_id)s."
+msgstr ""
+
+#: keystone/exception.py:197
+#, python-format
+msgid "Could not find credential, %(credential_id)s."
+msgstr ""
+
+#: keystone/exception.py:201
+#, python-format
+msgid "Could not find version, %(version)s."
+msgstr ""
+
+#: keystone/exception.py:205
+#, python-format
+msgid "Conflict occurred attempting to store %(type)s. %(details)s"
+msgstr ""
+
+#: keystone/exception.py:212
+msgid "Request is too large."
+msgstr ""
+
+#: keystone/exception.py:218
+#, python-format
+msgid ""
+"An unexpected error prevented the server from fulfilling your request. "
+"%(exception)s"
+msgstr ""
+
+#: keystone/exception.py:225
+#, python-format
+msgid "Malformed endpoint URL (%(endpoint)s), see ERROR log for details."
+msgstr ""
+
+#: keystone/exception.py:230
+msgid "The action you have requested has not been implemented."
+msgstr ""
+
+#: keystone/exception.py:237
+#, python-format
+msgid "The Keystone paste configuration file %(config_file)s could not be found."
+msgstr ""
+
+#: keystone/test.py:117
+#, python-format
+msgid "Failed to checkout %s"
+msgstr ""
+
+#: keystone/assignment/core.py:529
+#, python-format
+msgid "Expected dict or list: %s"
+msgstr ""
+
+#: keystone/assignment/backends/kvs.py:138
+#: keystone/assignment/backends/sql.py:285
+#, python-format
+msgid "Cannot remove role that has not been granted, %s"
+msgstr ""
+
+#: keystone/assignment/backends/ldap.py:418
+#, python-format
+msgid "Role %s not found"
+msgstr ""
+
+#: keystone/assignment/backends/sql.py:114
+msgid "Inherited roles can only be assigned to domains"
+msgstr ""
+
+#: keystone/auth/controllers.py:71
+#, python-format
+msgid "Project is disabled: %s"
+msgstr ""
+
+#: keystone/auth/controllers.py:77 keystone/auth/plugins/password.py:38
+#, python-format
+msgid "Domain is disabled: %s"
+msgstr ""
+
+#: keystone/auth/controllers.py:83 keystone/auth/plugins/password.py:44
+#, python-format
+msgid "User is disabled: %s"
+msgstr ""
+
+#: keystone/auth/controllers.py:262
+msgid "Scoping to both domain and project is not allowed"
+msgstr ""
+
+#: keystone/auth/controllers.py:265
+msgid "Scoping to both domain and trust is not allowed"
+msgstr ""
+
+#: keystone/auth/controllers.py:268
+msgid "Scoping to both project and trust is not allowed"
+msgstr ""
+
+#: keystone/auth/controllers.py:353
+msgid "User not found"
+msgstr ""
+
+#: keystone/auth/plugins/external.py:36 keystone/auth/plugins/external.py:66
+msgid "No authenticated user"
+msgstr ""
+
+#: keystone/auth/plugins/external.py:49 keystone/auth/plugins/external.py:86
+#, python-format
+msgid "Unable to lookup user %s"
+msgstr ""
+
+#: keystone/auth/plugins/password.py:112
+msgid "Invalid username or password"
+msgstr ""
+
+#: keystone/catalog/core.py:38
+#, python-format
+msgid "Malformed endpoint %(url)s - unknown key %(keyerror)s"
+msgstr ""
+
+#: keystone/catalog/core.py:43
+#, python-format
+msgid ""
+"Malformed endpoint %(url)s - unknown key %(keyerror)s(are you missing "
+"brackets ?)"
+msgstr ""
+
+#: keystone/catalog/core.py:49
+#, python-format
+msgid ""
+"Malformed endpoint %s - incomplete format (are you "
+"missing a type notifier ?)"
+msgstr ""
+
+#: keystone/catalog/backends/templated.py:109
+#, python-format
+msgid "Unable to open template file %s"
+msgstr ""
+
+#: keystone/common/cms.py:26
+#, python-format
+msgid "Verify error: %s"
+msgstr ""
+
+#: keystone/common/cms.py:118
+msgid ""
+"Signing error: Unable to load certificate - ensure you've configured PKI "
+"with 'keystone-manage pki_setup'"
+msgstr ""
+
+#: keystone/common/cms.py:122
+#, python-format
+msgid "Signing error: %s"
+msgstr ""
+
+#: keystone/common/config.py:89
+#, python-format
+msgid "Unable to locate specified logging config file: %s"
+msgstr ""
+
+#: keystone/common/config.py:107
+msgid "Invalid syslog facility"
+msgstr ""
+
+#: keystone/common/controller.py:18
+#, python-format
+msgid "RBAC: Authorizing %(action)s(%(kwargs)s)"
+msgstr ""
+
+#: keystone/common/controller.py:25
+msgid "RBAC: Invalid token"
+msgstr ""
+
+#: keystone/common/controller.py:39 keystone/common/controller.py:60
+msgid "RBAC: Invalid user"
+msgstr ""
+
+#: keystone/common/controller.py:45
+msgid "RBAC: Proceeding without project"
+msgstr ""
+
+#: keystone/common/controller.py:65
+msgid "RBAC: Proceeding without tenant"
+msgstr ""
+
+#: keystone/common/controller.py:95 keystone/common/controller.py:146
+msgid "RBAC: Bypassing authorization"
+msgstr ""
+
+#: keystone/common/controller.py:104 keystone/common/controller.py:144
+msgid "RBAC: Authorization granted"
+msgstr ""
+
+#: keystone/common/controller.py:134
+#, python-format
+msgid "RBAC: Adding query filter params (%s)"
+msgstr ""
+
+#: keystone/common/controller.py:322
+msgid "Invalid token in normalize_domain_id"
+msgstr ""
+
+#: keystone/common/utils.py:233
+msgid ""
+"Error setting up the debug environment. Verify that the option --debug-"
+"url has the format <host>:<port> and that a debugger processes is "
+"listening on that port."
+msgstr ""
+
+#: keystone/common/wsgi.py:95
+msgid "No bind information present in token"
+msgstr ""
+
+#: keystone/common/wsgi.py:99
+#, python-format
+msgid "Named bind mode %s not in bind information"
+msgstr ""
+
+#: keystone/common/wsgi.py:105
+msgid "Kerberos credentials required and not present"
+msgstr ""
+
+#: keystone/common/wsgi.py:109
+msgid "Kerberos credentials do not match those in bind"
+msgstr ""
+
+#: keystone/common/wsgi.py:112
+msgid "Kerberos bind authentication successful"
+msgstr ""
+
+#: keystone/common/wsgi.py:115
+#, python-format
+msgid "Ignoring unknown bind for permissive mode: {%(bind_type)s: %(identifier)s}"
+msgstr ""
+
+#: keystone/common/wsgi.py:119
+#, python-format
+msgid "Couldn't verify unknown bind: {%(bind_type)s: %(identifier)s}"
+msgstr ""
+
+#: keystone/common/wsgi.py:211
+#, python-format
+msgid "arg_dict: %s"
+msgstr ""
+
+#: keystone/common/wsgi.py:243
+#, python-format
+msgid "Authorization failed. %(exception)s from %(remote_addr)s"
+msgstr ""
+
+#: keystone/common/wsgi.py:487
+msgid "The resource could not be found."
+msgstr ""
+
+#: keystone/common/environment/__init__.py:37
+#, python-format
+msgid "Environment configured as: %s"
+msgstr ""
+
+#: keystone/common/environment/eventlet_server.py:51
+#, python-format
+msgid "Starting %(arg0)s on %(host)s:%(port)s"
+msgstr ""
+
+#: keystone/common/environment/eventlet_server.py:113
+msgid "Server error"
+msgstr ""
+
+#: keystone/common/ldap/core.py:79
+#, python-format
+msgid "Invalid LDAP deref option: %s. Choose one of: "
+msgstr ""
+
+#: keystone/common/ldap/core.py:87
+#, python-format
+msgid "Invalid LDAP TLS certs option: %(option). Choose one of: %(options)s"
+msgstr ""
+
+#: keystone/common/ldap/core.py:99
+#, python-format
+msgid "Invalid LDAP scope: %(scope)s. Choose one of: %(options)s"
+msgstr ""
+
+#: keystone/common/ldap/core.py:189
+#, python-format
+msgid ""
+"Invalid additional attribute mapping: \"%s\". Format must be "
+"<ldap_attribute>:<keystone_attribute>"
+msgstr ""
+
+#: keystone/common/ldap/core.py:195
+#, python-format
+msgid ""
+"Invalid additional attribute mapping: \"%(item)s\". Value "
+"\"%(attr_map)s\" must use one of %(keys)s."
+msgstr ""
+
+#: keystone/common/ldap/core.py:279 keystone/identity/backends/kvs.py:177
+#: keystone/identity/backends/kvs.py:205
+#, python-format
+msgid "Duplicate name, %s."
+msgstr ""
+
+#: keystone/common/ldap/core.py:289 keystone/identity/backends/kvs.py:170
+#, python-format
+msgid "Duplicate ID, %s."
+msgstr ""
+
+#: keystone/common/ldap/core.py:294
+#, python-format
+msgid "LDAP %s create"
+msgstr ""
+
+#: keystone/common/ldap/core.py:372
+#, python-format
+msgid "LDAP %s update"
+msgstr ""
+
+#: keystone/common/ldap/core.py:405
+#, python-format
+msgid "LDAP %s delete"
+msgstr ""
+
+#: keystone/common/ldap/core.py:430
+#, python-format
+msgid "LDAP init: url=%s"
+msgstr ""
+
+#: keystone/common/ldap/core.py:431
+#, python-format
+msgid ""
+"LDAP init: use_tls=%(use_tls)s\n"
+"tls_cacertfile=%(tls_cacertfile)s\n"
+"tls_cacertdir=%(tls_cacertdir)s\n"
+"tls_req_cert=%(tls_req_cert)s\n"
+"tls_avail=%(tls_avail)s\n"
+msgstr ""
+
+#: keystone/common/ldap/core.py:450
+msgid "Invalid TLS / LDAPS combination"
+msgstr ""
+
+#: keystone/common/ldap/core.py:454
+#, python-format
+msgid "Invalid LDAP TLS_AVAIL option: %s. TLS not available"
+msgstr ""
+
+#: keystone/common/ldap/core.py:464
+#, python-format
+msgid "tls_cacertfile %s not found or is not a file"
+msgstr ""
+
+#: keystone/common/ldap/core.py:476
+#, python-format
+msgid "tls_cacertdir %s not found or is not a directory"
+msgstr ""
+
+#: keystone/common/ldap/core.py:483
+#, python-format
+msgid "LDAP TLS: invalid TLS_REQUIRE_CERT Option=%s"
+msgstr ""
+
+#: keystone/common/ldap/core.py:497
+#, python-format
+msgid "LDAP bind: dn=%s"
+msgstr ""
+
+#: keystone/common/ldap/core.py:508
+#, python-format
+msgid "LDAP add: dn=%(dn)s, attrs=%(attrs)s"
+msgstr ""
+
+#: keystone/common/ldap/core.py:514
+#, python-format
+msgid ""
+"LDAP search: dn=%(dn)s, scope=%(scope)s, query=%(query)s, "
+"attrs=%(attrlist)s"
+msgstr ""
+
+#: keystone/common/ldap/core.py:567
+msgid ""
+"LDAP Server does not support paging. Disable paging in keystone.conf to "
+"avoid this message."
+msgstr ""
+
+#: keystone/common/ldap/core.py:584
+#, python-format
+msgid "LDAP modify: dn=%(dn)s, modlist=%(modlist)s"
+msgstr ""
+
+#: keystone/common/ldap/core.py:590
+#, python-format
+msgid "LDAP delete: dn=%s"
+msgstr ""
+
+#: keystone/common/ldap/core.py:595
+#, python-format
+msgid "LDAP delete_ext: dn=%(dn)s, serverctrls=%(serverctrls)s"
+msgstr ""
+
+#: keystone/common/ldap/fakeldap.py:146
+#, python-format
+msgid "FakeLdap initialize url=%s"
+msgstr ""
+
+#: keystone/common/ldap/fakeldap.py:156
+#, python-format
+msgid "FakeLdap bind dn=%s"
+msgstr ""
+
+#: keystone/common/ldap/fakeldap.py:163
+#, python-format
+msgid "FakeLdap bind fail: dn=%s not found"
+msgstr ""
+
+#: keystone/common/ldap/fakeldap.py:170
+#, python-format
+msgid "FakeLdap bind fail: password for dn=%s not found"
+msgstr ""
+
+#: keystone/common/ldap/fakeldap.py:175
+#, python-format
+msgid "FakeLdap bind fail: password for dn=%s does not match"
+msgstr ""
+
+#: keystone/common/ldap/fakeldap.py:190
+#, python-format
+msgid "FakeLdap add item: dn=%(dn)s, attrs=%(attrs)s"
+msgstr ""
+
+#: keystone/common/ldap/fakeldap.py:193
+#, python-format
+msgid "FakeLdap add item failed: dn=%s is already in store."
+msgstr ""
+
+#: keystone/common/ldap/fakeldap.py:207 keystone/common/ldap/fakeldap.py:221
+#, python-format
+msgid "FakeLdap delete item: dn=%s"
+msgstr ""
+
+#: keystone/common/ldap/fakeldap.py:211 keystone/common/ldap/fakeldap.py:225
+#, python-format
+msgid "FakeLdap delete item failed: dn=%s not found."
+msgstr ""
+
+#: keystone/common/ldap/fakeldap.py:240
+#, python-format
+msgid "FakeLdap modify item: dn=%(dn)s attrs=%(attrs)s"
+msgstr ""
+
+#: keystone/common/ldap/fakeldap.py:245
+#, python-format
+msgid "FakeLdap modify item failed: dn=%s not found."
+msgstr ""
+
+#: keystone/common/ldap/fakeldap.py:262
+#, python-format
+msgid "FakeLdap modify item failed: item has no attribute \"%s\" to delete"
+msgstr ""
+
+#: keystone/common/ldap/fakeldap.py:273
+#, python-format
+msgid ""
+"FakeLdap modify item failed: item has no attribute \"%(k)s\" with value "
+"\"%(v)s\" to delete"
+msgstr ""
+
+#: keystone/common/ldap/fakeldap.py:279
+#, python-format
+msgid "FakeLdap modify item failed: unknown command %s"
+msgstr ""
+
+#: keystone/common/ldap/fakeldap.py:281
+#, python-format
+msgid "modify_s action %s not implemented"
+msgstr ""
+
+#: keystone/common/ldap/fakeldap.py:300
+#, python-format
+msgid "FakeLdap search at dn=%(dn)s scope=%(scope)s query=%(query)s"
+msgstr ""
+
+#: keystone/common/ldap/fakeldap.py:306
+msgid "FakeLdap search fail: dn not found for SCOPE_BASE"
+msgstr ""
+
+#: keystone/common/ldap/fakeldap.py:320
+#, python-format
+msgid "Search scope %s not implemented."
+msgstr ""
+
+#: keystone/common/sql/core.py:119
+msgid "Global engine callback raised."
+msgstr ""
+
+#: keystone/common/sql/core.py:233
+#, python-format
+msgid "Got mysql server has gone away: %s"
+msgstr ""
+
+#: keystone/common/sql/legacy.py:188
+#, python-format
+msgid "Cannot migrate EC2 credential: %s"
+msgstr ""
+
+#: keystone/common/sql/migration.py:47
+msgid "version should be an integer"
+msgstr ""
+
+#: keystone/common/sql/nova.py:65
+#, python-format
+msgid "Create tenant %s"
+msgstr ""
+
+#: keystone/common/sql/nova.py:82
+#, python-format
+msgid "Create user %s"
+msgstr ""
+
+#: keystone/common/sql/nova.py:91
+#, python-format
+msgid "Add user %(user_id)s to tenant %(tenant_id)s"
+msgstr ""
+
+#: keystone/common/sql/nova.py:100
+#, python-format
+msgid "Ignoring existing role %s"
+msgstr ""
+
+#: keystone/common/sql/nova.py:107
+#, python-format
+msgid "Create role %s"
+msgstr ""
+
+#: keystone/common/sql/nova.py:117
+#, python-format
+msgid "Assign role %(role_id)s to user %(user_id)s on tenant %(tenant_id)s"
+msgstr ""
+
+#: keystone/common/sql/nova.py:136
+#, python-format
+msgid "Creating ec2 cred for user %(user_id)s and tenant %(tenant_id)s"
+msgstr ""
+
+#: keystone/identity/controllers.py:952
+#, python-format
+msgid ""
+"Group %(group)s not found for role-assignment - %(target)s with Role: "
+"%(role)s"
+msgstr ""
+
+#: keystone/identity/backends/kvs.py:126 keystone/identity/backends/kvs.py:135
+msgid "User not found in group"
+msgstr ""
+
+#: keystone/identity/backends/ldap.py:189
+#, python-format
+msgid ""
+"Group member '%(user_dn)s' not found in '%(group_id)s'. The user should "
+"be removed from the group. The user will be ignored."
+msgstr ""
+
+#: keystone/identity/backends/ldap.py:334
+msgid "Changing Name not supported by LDAP"
+msgstr ""
+
+#: keystone/identity/backends/ldap.py:347
+#, python-format
+msgid "User %(user_id)s is already a member of group %(group_id)s"
+msgstr ""
+
+#: keystone/openstack/common/policy.py:394
+#, python-format
+msgid "Failed to understand rule %(rule)s"
+msgstr ""
+
+#: keystone/openstack/common/policy.py:404
+#, python-format
+msgid "No handler for matches of kind %s"
+msgstr ""
+
+#: keystone/openstack/common/policy.py:679
+#, python-format
+msgid "Failed to understand rule %(rule)r"
+msgstr ""
+
+#: keystone/openstack/common/crypto/utils.py:29
+msgid "An unknown error occurred in crypto utils."
+msgstr ""
+
+#: keystone/openstack/common/crypto/utils.py:36
+#, python-format
+msgid "Block size of %(given)d is too big, max = %(maximum)d"
+msgstr ""
+
+#: keystone/openstack/common/crypto/utils.py:45
+#, python-format
+msgid "Length of %(given)d is too long, max = %(maximum)d"
+msgstr ""
+
+#: keystone/policy/backends/rules.py:93
+#, python-format
+msgid "enforce %(action)s: %(credentials)s"
+msgstr ""
+
+#: keystone/token/controllers.py:378
+#, python-format
+msgid "User %(u_id)s is unauthorized for tenant %(t_id)s"
+msgstr ""
+
+#: keystone/token/controllers.py:395 keystone/token/controllers.py:398
+msgid "Token does not belong to specified tenant."
+msgstr ""
+
+#: keystone/token/provider.py:76
+msgid ""
+"keystone.conf [signing] token_format (deprecated) conflicts with "
+"keystone.conf [token] provider"
+msgstr ""
+
+#: keystone/token/provider.py:84
+msgid ""
+"keystone.conf [signing] token_format is deprecated in favor of "
+"keystone.conf [token] provider"
+msgstr ""
+
+#: keystone/token/provider.py:94
+msgid ""
+"Unrecognized keystone.conf [signing] token_format: expected either 'UUID'"
+" or 'PKI'"
+msgstr ""
+
+#: keystone/token/backends/kvs.py:37
+msgid ""
+"kvs token backend is DEPRECATED. Use keystone.token.backends.sql or "
+"keystone.token.backend.memcache instead."
+msgstr ""
+
+#: keystone/token/backends/memcache.py:144
+#, python-format
+msgid ""
+"Successful set of token-index-list for user-key \"%(user_key)s\", "
+"#%(count)d records"
+msgstr ""
+
+#: keystone/token/backends/memcache.py:154
+#, python-format
+msgid ""
+"Failed to set token-index-list for user-key \"%(user_key)s\". Attempt "
+"%(cas_retry)d of %(cas_retry_max)d"
+msgstr ""
+
+#: keystone/token/backends/memcache.py:163
+msgid "Unable to add token user list"
+msgstr ""
+
+#: keystone/token/backends/memcache.py:172
+msgid "Unable to add token to revocation list."
+msgstr ""
+
+#: keystone/token/providers/pki.py:43
+msgid "Unable to sign token."
+msgstr ""
+
+#: keystone/token/providers/uuid.py:193
+msgid "Trustor is disabled."
+msgstr ""
+
+#: keystone/token/providers/uuid.py:238
+msgid "Trustee has no delegated roles."
+msgstr ""
+
+#: keystone/token/providers/uuid.py:247
+#, python-format
+msgid "User %(user_id)s has no access to project %(project_id)s"
+msgstr ""
+
+#: keystone/token/providers/uuid.py:252
+#, python-format
+msgid "User %(user_id)s has no access to domain %(domain_id)s"
+msgstr ""
+
+#: keystone/token/providers/uuid.py:303
+msgid "User is not a trustee."
+msgstr ""
+
+#: keystone/token/providers/uuid.py:457
+msgid "Non-default domain is not supported"
+msgstr ""
+
+#: keystone/token/providers/uuid.py:465
+msgid "Domain scoped token is not supported"
+msgstr ""
+
+#: keystone/token/providers/uuid.py:528
+msgid "Failed to validate token"
+msgstr ""
+
+#: keystone/token/providers/uuid.py:566 keystone/token/providers/uuid.py:576
+msgid "Failed to verify token"
+msgstr ""
+
diff --git a/keystone/locale/zh_TW/LC_MESSAGES/keystone.po b/keystone/locale/zh_TW/LC_MESSAGES/keystone.po
index ae04c15a..45af1114 100644
--- a/keystone/locale/zh_TW/LC_MESSAGES/keystone.po
+++ b/keystone/locale/zh_TW/LC_MESSAGES/keystone.po
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Keystone\n"
"Report-Msgid-Bugs-To: https://bugs.launchpad.net/keystone\n"
-"POT-Creation-Date: 2013-07-11 17:05+0000\n"
+"POT-Creation-Date: 2013-08-02 17:05+0000\n"
"PO-Revision-Date: 2013-05-22 03:11+0000\n"
"Last-Translator: daisy.ycguo <daisy.ycguo@gmail.com>\n"
"Language-Team: Chinese (Taiwan) "
@@ -16,7 +16,7 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"Generated-By: Babel 0.9.6\n"
+"Generated-By: Babel 1.3\n"
#: keystone/clean.py:23
#, python-format
@@ -38,79 +38,225 @@ msgstr "%(property_name)s 不應超過 %(max_length)s 個字元。"
msgid "%(property_name)s is not a %(display_expected_type)s"
msgstr ""
-#: keystone/test.py:106
+#: keystone/exception.py:48
+msgid "missing exception kwargs (programmer error)"
+msgstr ""
+
+#: keystone/exception.py:65
+#, python-format
+msgid ""
+"Expecting to find %(attribute)s in %(target)s. The server could not "
+"comply with the request since it is either malformed or otherwise "
+"incorrect. The client is assumed to be in error."
+msgstr ""
+
+#: keystone/exception.py:74
+#, python-format
+msgid ""
+"String length exceeded.The length of string '%(string)s' exceeded the "
+"limit of column %(type)s(CHAR(%(length)d))."
+msgstr ""
+
+#: keystone/exception.py:80
+#, python-format
+msgid ""
+"Request attribute %(attribute)s must be less than or equal to %(size)i. "
+"The server could not comply with the request because the attribute size "
+"is invalid (too large). The client is assumed to be in error."
+msgstr ""
+
+#: keystone/exception.py:101
+msgid "The request you have made requires authentication."
+msgstr ""
+
+#: keystone/exception.py:107
+msgid "Authentication plugin error."
+msgstr ""
+
+#: keystone/exception.py:115
+msgid "Attempted to authenticate with an unsupported method."
+msgstr ""
+
+#: keystone/exception.py:123
+msgid "Additional authentications steps required."
+msgstr ""
+
+#: keystone/exception.py:131
+msgid "You are not authorized to perform the requested action."
+msgstr ""
+
+#: keystone/exception.py:138
+#, python-format
+msgid "You are not authorized to perform the requested action, %(action)s."
+msgstr ""
+
+#: keystone/exception.py:143
+#, python-format
+msgid "Could not find, %(target)s."
+msgstr ""
+
+#: keystone/exception.py:149
+#, python-format
+msgid "Could not find endpoint, %(endpoint_id)s."
+msgstr ""
+
+#: keystone/exception.py:156
+msgid "An unhandled exception has occurred: Could not find metadata."
+msgstr ""
+
+#: keystone/exception.py:161
+#, python-format
+msgid "Could not find policy, %(policy_id)s."
+msgstr ""
+
+#: keystone/exception.py:165
+#, python-format
+msgid "Could not find role, %(role_id)s."
+msgstr ""
+
+#: keystone/exception.py:169
+#, python-format
+msgid "Could not find service, %(service_id)s."
+msgstr ""
+
+#: keystone/exception.py:173
+#, python-format
+msgid "Could not find domain, %(domain_id)s."
+msgstr ""
+
+#: keystone/exception.py:177
+#, python-format
+msgid "Could not find project, %(project_id)s."
+msgstr ""
+
+#: keystone/exception.py:181
+#, python-format
+msgid "Could not find token, %(token_id)s."
+msgstr ""
+
+#: keystone/exception.py:185
+#, python-format
+msgid "Could not find user, %(user_id)s."
+msgstr ""
+
+#: keystone/exception.py:189
+#, python-format
+msgid "Could not find group, %(group_id)s."
+msgstr ""
+
+#: keystone/exception.py:193
+#, python-format
+msgid "Could not find trust, %(trust_id)s."
+msgstr ""
+
+#: keystone/exception.py:197
+#, python-format
+msgid "Could not find credential, %(credential_id)s."
+msgstr ""
+
+#: keystone/exception.py:201
+#, python-format
+msgid "Could not find version, %(version)s."
+msgstr ""
+
+#: keystone/exception.py:205
+#, python-format
+msgid "Conflict occurred attempting to store %(type)s. %(details)s"
+msgstr ""
+
+#: keystone/exception.py:212
+msgid "Request is too large."
+msgstr ""
+
+#: keystone/exception.py:218
+#, python-format
+msgid ""
+"An unexpected error prevented the server from fulfilling your request. "
+"%(exception)s"
+msgstr ""
+
+#: keystone/exception.py:225
+#, python-format
+msgid "Malformed endpoint URL (%(endpoint)s), see ERROR log for details."
+msgstr ""
+
+#: keystone/exception.py:230
+msgid "The action you have requested has not been implemented."
+msgstr ""
+
+#: keystone/exception.py:237
+#, python-format
+msgid "The Keystone paste configuration file %(config_file)s could not be found."
+msgstr ""
+
+#: keystone/test.py:117
#, python-format
msgid "Failed to checkout %s"
msgstr "無法移出 %s"
-#: keystone/assignment/backends/ldap.py:110
+#: keystone/assignment/core.py:529
#, python-format
msgid "Expected dict or list: %s"
msgstr ""
-#: keystone/assignment/backends/ldap.py:456
-#: keystone/identity/backends/ldap.py:433
+#: keystone/assignment/backends/kvs.py:138
+#: keystone/assignment/backends/sql.py:285
+#, python-format
+msgid "Cannot remove role that has not been granted, %s"
+msgstr "無法移除尚未授權的角色,%s"
+
+#: keystone/assignment/backends/ldap.py:418
#, python-format
msgid "Role %s not found"
msgstr "找不到角色 %s"
-#: keystone/assignment/backends/sql.py:244
-#, python-format
-msgid "Cannot remove role that has not been granted, %s"
-msgstr "無法移除尚未授權的角色,%s"
+#: keystone/assignment/backends/sql.py:114
+msgid "Inherited roles can only be assigned to domains"
+msgstr ""
-#: keystone/auth/controllers.py:72
+#: keystone/auth/controllers.py:71
#, python-format
msgid "Project is disabled: %s"
msgstr "已停用專案:%s"
-#: keystone/auth/controllers.py:78 keystone/auth/plugins/password.py:38
+#: keystone/auth/controllers.py:77 keystone/auth/plugins/password.py:38
#, python-format
msgid "Domain is disabled: %s"
msgstr "已停用網域:%s"
-#: keystone/auth/controllers.py:84 keystone/auth/plugins/password.py:44
+#: keystone/auth/controllers.py:83 keystone/auth/plugins/password.py:44
#, python-format
msgid "User is disabled: %s"
msgstr "已停用使用者:%s"
-#: keystone/auth/controllers.py:259
+#: keystone/auth/controllers.py:262
msgid "Scoping to both domain and project is not allowed"
msgstr "不容許將範圍同時設定為網域及專案"
-#: keystone/auth/controllers.py:262
+#: keystone/auth/controllers.py:265
msgid "Scoping to both domain and trust is not allowed"
msgstr "不容許將範圍同時設定為網域及信任"
-#: keystone/auth/controllers.py:265
+#: keystone/auth/controllers.py:268
msgid "Scoping to both project and trust is not allowed"
msgstr "不容許將範圍同時設定為專案及信任"
-#: keystone/auth/controllers.py:325
-#, python-format
-msgid "Unable to lookup user %s"
-msgstr "無法查閱使用者 %s"
-
-#: keystone/auth/controllers.py:355
+#: keystone/auth/controllers.py:353
msgid "User not found"
msgstr "找不到使用者"
-#: keystone/auth/token_factory.py:79
-msgid "User have no access to project"
-msgstr "使用者無法存取專案"
-
-#: keystone/auth/token_factory.py:94
-msgid "User have no access to domain"
-msgstr "使用者無法存取網域"
-
-#: keystone/auth/token_factory.py:311 keystone/token/controllers.py:119
-msgid "Unable to sign token."
-msgstr "無法簽署記號。"
+#: keystone/auth/plugins/external.py:36 keystone/auth/plugins/external.py:66
+msgid "No authenticated user"
+msgstr ""
-#: keystone/auth/token_factory.py:314 keystone/token/controllers.py:122
+#: keystone/auth/plugins/external.py:49 keystone/auth/plugins/external.py:86
#, python-format
-msgid "Invalid value for token_format: %s. Allowed values are PKI or UUID."
-msgstr "token_format 的值無效:%s。接受的值為 PKI 或 UUID。"
+msgid "Unable to lookup user %s"
+msgstr "無法查閱使用者 %s"
+
+#: keystone/auth/plugins/password.py:112
+msgid "Invalid username or password"
+msgstr ""
#: keystone/catalog/core.py:38
#, python-format
@@ -170,32 +316,32 @@ msgstr ""
msgid "RBAC: Invalid token"
msgstr "RBAC:無效的記號"
-#: keystone/common/controller.py:35 keystone/common/controller.py:56
+#: keystone/common/controller.py:39 keystone/common/controller.py:60
msgid "RBAC: Invalid user"
msgstr "RBAC:無效的使用者"
-#: keystone/common/controller.py:41
+#: keystone/common/controller.py:45
msgid "RBAC: Proceeding without project"
msgstr "RBAC:在沒有專案的情況下繼續作業"
-#: keystone/common/controller.py:61
+#: keystone/common/controller.py:65
msgid "RBAC: Proceeding without tenant"
msgstr "RBAC:在沒有 Tenant 的情況下繼續作業"
-#: keystone/common/controller.py:91 keystone/common/controller.py:142
+#: keystone/common/controller.py:95 keystone/common/controller.py:146
msgid "RBAC: Bypassing authorization"
msgstr "RBAC:正在略過授權"
-#: keystone/common/controller.py:100 keystone/common/controller.py:140
+#: keystone/common/controller.py:104 keystone/common/controller.py:144
msgid "RBAC: Authorization granted"
msgstr "RBAC:已授與權限"
-#: keystone/common/controller.py:130
+#: keystone/common/controller.py:134
#, python-format
msgid "RBAC: Adding query filter params (%s)"
msgstr "RBAC:正在新增查詢過濾器參數 (%s)"
-#: keystone/common/controller.py:318
+#: keystone/common/controller.py:322
msgid "Invalid token in normalize_domain_id"
msgstr "normalize_domain_id 中的記號無效"
@@ -206,17 +352,48 @@ msgid ""
"listening on that port."
msgstr ""
-#: keystone/common/wsgi.py:162
+#: keystone/common/wsgi.py:95
+msgid "No bind information present in token"
+msgstr ""
+
+#: keystone/common/wsgi.py:99
+#, python-format
+msgid "Named bind mode %s not in bind information"
+msgstr ""
+
+#: keystone/common/wsgi.py:105
+msgid "Kerberos credentials required and not present"
+msgstr ""
+
+#: keystone/common/wsgi.py:109
+msgid "Kerberos credentials do not match those in bind"
+msgstr ""
+
+#: keystone/common/wsgi.py:112
+msgid "Kerberos bind authentication successful"
+msgstr ""
+
+#: keystone/common/wsgi.py:115
+#, python-format
+msgid "Ignoring unknown bind for permissive mode: {%(bind_type)s: %(identifier)s}"
+msgstr ""
+
+#: keystone/common/wsgi.py:119
+#, python-format
+msgid "Couldn't verify unknown bind: {%(bind_type)s: %(identifier)s}"
+msgstr ""
+
+#: keystone/common/wsgi.py:211
#, python-format
msgid "arg_dict: %s"
msgstr "arg_dict:%s"
-#: keystone/common/wsgi.py:188
+#: keystone/common/wsgi.py:243
#, fuzzy, python-format
msgid "Authorization failed. %(exception)s from %(remote_addr)s"
msgstr "授權失敗。%s(自 %s)"
-#: keystone/common/wsgi.py:431
+#: keystone/common/wsgi.py:487
msgid "The resource could not be found."
msgstr "找不到資源。"
@@ -457,11 +634,11 @@ msgstr "FakeLdap 搜尋失敗:找不到 SCOPE_BASE 的 DN"
msgid "Search scope %s not implemented."
msgstr "未實作搜尋範圍 %s。"
-#: keystone/common/sql/core.py:126
+#: keystone/common/sql/core.py:119
msgid "Global engine callback raised."
msgstr ""
-#: keystone/common/sql/core.py:240
+#: keystone/common/sql/core.py:233
#, python-format
msgid "Got mysql server has gone away: %s"
msgstr "已取得 mysql 伺服器已斷線的訊息:%s"
@@ -510,7 +687,7 @@ msgstr "將角色 %s 指派給使用者 %s(在 Tenant %s 上)"
msgid "Creating ec2 cred for user %(user_id)s and tenant %(tenant_id)s"
msgstr "正在給使用者 %s 及 Tenant %s 建立 EC2 Cred"
-#: keystone/identity/controllers.py:878
+#: keystone/identity/controllers.py:952
#, python-format
msgid ""
"Group %(group)s not found for role-assignment - %(target)s with Role: "
@@ -521,18 +698,18 @@ msgstr ""
msgid "User not found in group"
msgstr "在群組中找不到使用者"
-#: keystone/identity/backends/ldap.py:192
+#: keystone/identity/backends/ldap.py:189
#, python-format
msgid ""
"Group member '%(user_dn)s' not found in '%(group_id)s'. The user should "
"be removed from the group. The user will be ignored."
msgstr ""
-#: keystone/identity/backends/ldap.py:621
+#: keystone/identity/backends/ldap.py:334
msgid "Changing Name not supported by LDAP"
msgstr "LDAP 不支援變更名稱"
-#: keystone/identity/backends/ldap.py:634
+#: keystone/identity/backends/ldap.py:347
#, fuzzy, python-format
msgid "User %(user_id)s is already a member of group %(group_id)s"
msgstr "使用者 %s 已是群組 %s 的成員"
@@ -552,27 +729,57 @@ msgstr "類型為 %s 的相符項沒有處理程式"
msgid "Failed to understand rule %(rule)r"
msgstr "無法理解規則 %(rule)r"
+#: keystone/openstack/common/crypto/utils.py:29
+msgid "An unknown error occurred in crypto utils."
+msgstr ""
+
+#: keystone/openstack/common/crypto/utils.py:36
+#, python-format
+msgid "Block size of %(given)d is too big, max = %(maximum)d"
+msgstr ""
+
+#: keystone/openstack/common/crypto/utils.py:45
+#, python-format
+msgid "Length of %(given)d is too long, max = %(maximum)d"
+msgstr ""
+
#: keystone/policy/backends/rules.py:93
#, python-format
msgid "enforce %(action)s: %(credentials)s"
msgstr ""
-#: keystone/token/controllers.py:396
+#: keystone/token/controllers.py:378
#, python-format
msgid "User %(u_id)s is unauthorized for tenant %(t_id)s"
msgstr ""
-#: keystone/token/controllers.py:413 keystone/token/controllers.py:416
+#: keystone/token/controllers.py:395 keystone/token/controllers.py:398
msgid "Token does not belong to specified tenant."
msgstr "記號不屬於所指定的 Tenant。"
-#: keystone/token/controllers.py:423
-msgid "Non-default domain is not supported"
-msgstr "不支援非預設網域"
+#: keystone/token/provider.py:76
+msgid ""
+"keystone.conf [signing] token_format (deprecated) conflicts with "
+"keystone.conf [token] provider"
+msgstr ""
-#: keystone/token/controllers.py:431
-msgid "Domain scoped token is not supported"
-msgstr "不支援網域範圍的記號"
+#: keystone/token/provider.py:84
+msgid ""
+"keystone.conf [signing] token_format is deprecated in favor of "
+"keystone.conf [token] provider"
+msgstr ""
+
+#: keystone/token/provider.py:94
+msgid ""
+"Unrecognized keystone.conf [signing] token_format: expected either 'UUID'"
+" or 'PKI'"
+msgstr ""
+
+#: keystone/token/backends/kvs.py:37
+msgid ""
+"kvs token backend is DEPRECATED. Use keystone.token.backends.sql or "
+"keystone.token.backend.memcache instead."
+msgstr ""
#: keystone/token/backends/memcache.py:144
#, python-format
@@ -596,3 +803,54 @@ msgstr ""
msgid "Unable to add token to revocation list."
msgstr "無法將記號新增至撤銷清冊。"
+#: keystone/token/providers/pki.py:43
+msgid "Unable to sign token."
+msgstr "無法簽署記號。"
+
+#: keystone/token/providers/uuid.py:193
+msgid "Trustor is disabled."
+msgstr ""
+
+#: keystone/token/providers/uuid.py:238
+msgid "Trustee has no delegated roles."
+msgstr ""
+
+#: keystone/token/providers/uuid.py:247
+#, python-format
+msgid "User %(user_id)s has no access to project %(project_id)s"
+msgstr ""
+
+#: keystone/token/providers/uuid.py:252
+#, python-format
+msgid "User %(user_id)s has no access to domain %(domain_id)s"
+msgstr ""
+
+#: keystone/token/providers/uuid.py:303
+msgid "User is not a trustee."
+msgstr ""
+
+#: keystone/token/providers/uuid.py:457
+msgid "Non-default domain is not supported"
+msgstr "不支援非預設網域"
+
+#: keystone/token/providers/uuid.py:465
+msgid "Domain scoped token is not supported"
+msgstr "不支援網域範圍的記號"
+
+#: keystone/token/providers/uuid.py:528
+msgid "Failed to validate token"
+msgstr ""
+
+#: keystone/token/providers/uuid.py:566 keystone/token/providers/uuid.py:576
+msgid "Failed to verify token"
+msgstr ""
+
+#~ msgid "User have no access to project"
+#~ msgstr "使用者無法存取專案"
+
+#~ msgid "User have no access to domain"
+#~ msgstr "使用者無法存取網域"
+
+#~ msgid "Invalid value for token_format: %s. Allowed values are PKI or UUID."
+#~ msgstr "token_format 的值無效:%s。接受的值為 PKI 或 UUID。"
+
diff --git a/keystone/service.py b/keystone/service.py
index 6b0c3708..ce64aba8 100644
--- a/keystone/service.py
+++ b/keystone/service.py
@@ -16,8 +16,10 @@
import routes
+from keystone import assignment
from keystone import auth
from keystone import catalog
+from keystone.common import dependency
from keystone.common import logging
from keystone.common import wsgi
from keystone import config
@@ -34,16 +36,25 @@ from keystone import trust
CONF = config.CONF
LOG = logging.getLogger(__name__)
+
+# Ensure that the identity driver is created before the assignment manager.
+# The default assignment driver is determined by the identity driver, so the
+# identity driver must be available to the assignment manager.
+_IDENTITY_API = identity.Manager()
+
DRIVERS = dict(
+ assignment_api=assignment.Manager(),
catalog_api=catalog.Manager(),
credentials_api=credential.Manager(),
ec2_api=ec2.Manager(),
- identity_api=identity.Manager(),
+ identity_api=_IDENTITY_API,
policy_api=policy.Manager(),
token_api=token.Manager(),
trust_api=trust.Manager(),
token_provider_api=token.provider.Manager())
+dependency.resolve_future_dependencies()
+
@logging.fail_gracefully
def public_app_factory(global_conf, **local_conf):
diff --git a/keystone/test.py b/keystone/test.py
index 0c51d76d..9118b2ea 100644
--- a/keystone/test.py
+++ b/keystone/test.py
@@ -38,18 +38,21 @@ environment.use_eventlet()
from keystone import assignment
from keystone import catalog
+from keystone.common import dependency
from keystone.common import kvs
from keystone.common import logging
from keystone.common import sql
from keystone.common import utils
from keystone.common import wsgi
from keystone import config
+from keystone.contrib import ec2
from keystone import credential
from keystone import exception
from keystone import identity
from keystone.openstack.common import timeutils
from keystone import policy
from keystone import token
+from keystone.token import provider as token_provider
from keystone import trust
@@ -239,6 +242,11 @@ class TestCase(NoModule, unittest.TestCase):
for path in self._paths:
if path in sys.path:
sys.path.remove(path)
+
+ # Clear the registry of providers so that providers from previous
+ # tests aren't used.
+ dependency.reset()
+
kvs.INMEMDB.clear()
CONF.reset()
@@ -252,11 +260,28 @@ class TestCase(NoModule, unittest.TestCase):
def load_backends(self):
"""Initializes each manager and assigns them to an attribute."""
- for manager in [assignment, catalog, credential, identity, policy,
- token, trust]:
- manager_name = '%s_api' % manager.__name__.split('.')[-1]
+
+ # TODO(blk-u): Shouldn't need to clear the registry here, but some
+ # tests call load_backends multiple times. These should be fixed to
+ # only call load_backends once.
+ dependency.reset()
+
+ # NOTE(blk-u): identity must be before assignment to ensure that the
+ # identity driver is available to the assignment manager because the
+ # assignment manager gets the default assignment driver from the
+ # identity driver.
+ for manager in [identity, assignment, catalog, credential, ec2, policy,
+ token, token_provider, trust]:
+ # manager.__name__ is like keystone.xxx[.yyy],
+ # converted to xxx[_yyy]
+ manager_name = ('%s_api' %
+ manager.__name__.replace('keystone.', '').
+ replace('.', '_'))
+
setattr(self, manager_name, manager.Manager())
+ dependency.resolve_future_dependencies()
+
def load_fixtures(self, fixtures):
"""Hacky basic and naive fixture loading based on a python module.
diff --git a/keystone/token/controllers.py b/keystone/token/controllers.py
index d2b7d9fd..9ebc29fe 100644
--- a/keystone/token/controllers.py
+++ b/keystone/token/controllers.py
@@ -91,9 +91,7 @@ class Auth(controller.V2Controller):
if tenant_ref:
catalog_ref = self.catalog_api.get_catalog(
- user_id=user_ref['id'],
- tenant_id=tenant_ref['id'],
- metadata=metadata_ref)
+ user_ref['id'], tenant_ref['id'], metadata_ref)
else:
catalog_ref = {}
@@ -457,9 +455,9 @@ class Auth(controller.V2Controller):
catalog_ref = None
if token_ref.get('tenant'):
catalog_ref = self.catalog_api.get_catalog(
- user_id=token_ref['user']['id'],
- tenant_id=token_ref['tenant']['id'],
- metadata=token_ref['metadata'])
+ token_ref['user']['id'],
+ token_ref['tenant']['id'],
+ token_ref['metadata'])
return Auth.format_endpoint_list(catalog_ref)
diff --git a/keystone/token/providers/uuid.py b/keystone/token/providers/uuid.py
index 94896920..acfa9372 100644
--- a/keystone/token/providers/uuid.py
+++ b/keystone/token/providers/uuid.py
@@ -438,7 +438,7 @@ class Provider(token.provider.Provider):
def _verify_token(self, token_id, belongs_to=None):
"""Verify the given token and return the token_ref."""
- token_ref = self.token_api.get_token(token_id=token_id)
+ token_ref = self.token_api.get_token(token_id)
assert token_ref
if belongs_to:
assert (token_ref['tenant'] and
@@ -518,7 +518,7 @@ class Provider(token.provider.Provider):
catalog_ref = self.catalog_api.get_catalog(
token_ref['user']['id'],
token_ref['tenant']['id'],
- metadata=metadata_ref)
+ metadata_ref)
token_data = self.v2_token_data_helper.get_token_data(
token_ref=token_ref,
roles_ref=role_refs,
diff --git a/keystone/trust/controllers.py b/keystone/trust/controllers.py
index 7be6e8fd..7a94fe29 100644
--- a/keystone/trust/controllers.py
+++ b/keystone/trust/controllers.py
@@ -35,6 +35,21 @@ class TrustV3(controller.V3Controller):
collection_name = "trusts"
member_name = "trust"
+ @classmethod
+ def base_url(cls, path=None):
+ endpoint = CONF.public_endpoint % CONF
+
+ # allow a missing trailing slash in the config
+ if endpoint[-1] != '/':
+ endpoint += '/'
+
+ url = endpoint + 'v3/OS-TRUST'
+
+ if path:
+ return url + path
+ else:
+ return url + '/' + cls.collection_name
+
def _get_user_id(self, context):
if 'token_id' in context:
token_id = context['token_id']
@@ -78,8 +93,7 @@ class TrustV3(controller.V3Controller):
trust_full_roles.append(full_role)
trust['roles'] = trust_full_roles
trust['roles_links'] = {
- 'self': (CONF.public_endpoint % CONF +
- "trusts/%s/roles" % trust['id']),
+ 'self': (self.base_url() + "/%s/roles" % trust['id']),
'next': None,
'previous': None}
diff --git a/test-requirements.txt b/test-requirements.txt
index 4ecd2c62..e0534ca4 100644
--- a/test-requirements.txt
+++ b/test-requirements.txt
@@ -44,3 +44,6 @@ netifaces
# For translations processing
Babel
+
+# For documentation
+oslo.sphinx
diff --git a/tests/test_auth.py b/tests/test_auth.py
index 1416269b..db5314be 100644
--- a/tests/test_auth.py
+++ b/tests/test_auth.py
@@ -618,6 +618,10 @@ class AuthWithTrust(AuthTest):
role_ids = [self.role_browser['id'], self.role_member['id']]
self.assertTrue(timeutils.parse_strtime(self.new_trust['expires_at'],
fmt=TIME_FORMAT))
+ self.assertIn('http://localhost:5000/v3/OS-TRUST/',
+ self.new_trust['links']['self'])
+ self.assertIn('http://localhost:5000/v3/OS-TRUST/',
+ self.new_trust['roles_links']['self'])
for role in self.new_trust['roles']:
self.assertIn(role['id'], role_ids)
diff --git a/tests/test_backend.py b/tests/test_backend.py
index a43e92ae..7e4d820e 100644
--- a/tests/test_backend.py
+++ b/tests/test_backend.py
@@ -118,26 +118,25 @@ class IdentityTests(object):
self.assertEqual(unicode_name, ref['name'])
def test_get_project(self):
- tenant_ref = self.identity_api.get_project(
- tenant_id=self.tenant_bar['id'])
+ tenant_ref = self.identity_api.get_project(self.tenant_bar['id'])
self.assertDictEqual(tenant_ref, self.tenant_bar)
def test_get_project_404(self):
self.assertRaises(exception.ProjectNotFound,
self.identity_api.get_project,
- tenant_id=uuid.uuid4().hex)
+ uuid.uuid4().hex)
def test_get_project_by_name(self):
tenant_ref = self.identity_api.get_project_by_name(
- tenant_name=self.tenant_bar['name'],
- domain_id=DEFAULT_DOMAIN_ID)
+ self.tenant_bar['name'],
+ DEFAULT_DOMAIN_ID)
self.assertDictEqual(tenant_ref, self.tenant_bar)
def test_get_project_by_name_404(self):
self.assertRaises(exception.ProjectNotFound,
self.identity_api.get_project_by_name,
- tenant_name=uuid.uuid4().hex,
- domain_id=DEFAULT_DOMAIN_ID)
+ uuid.uuid4().hex,
+ DEFAULT_DOMAIN_ID)
def test_get_project_users(self):
tenant_ref = self.identity_api.get_project_users(self.tenant_baz['id'])
@@ -152,10 +151,10 @@ class IdentityTests(object):
def test_get_project_users_404(self):
self.assertRaises(exception.ProjectNotFound,
self.identity_api.get_project_users,
- tenant_id=uuid.uuid4().hex)
+ uuid.uuid4().hex)
def test_get_user(self):
- user_ref = self.identity_api.get_user(user_id=self.user_foo['id'])
+ user_ref = self.identity_api.get_user(self.user_foo['id'])
# NOTE(termie): the password field is left in user_foo to make
# it easier to authenticate in tests, but should
# not be returned by the api
@@ -165,12 +164,12 @@ class IdentityTests(object):
def test_get_user_404(self):
self.assertRaises(exception.UserNotFound,
self.identity_api.get_user,
- user_id=uuid.uuid4().hex)
+ uuid.uuid4().hex)
def test_get_user_by_name(self):
user_ref = self.identity_api.get_user_by_name(
- user_name=self.user_foo['name'],
- domain_id=DEFAULT_DOMAIN_ID)
+ self.user_foo['name'], DEFAULT_DOMAIN_ID)
+
# NOTE(termie): the password field is left in user_foo to make
# it easier to authenticate in tests, but should
# not be returned by the api
@@ -180,19 +179,18 @@ class IdentityTests(object):
def test_get_user_by_name_404(self):
self.assertRaises(exception.UserNotFound,
self.identity_api.get_user_by_name,
- user_name=uuid.uuid4().hex,
- domain_id=DEFAULT_DOMAIN_ID)
+ uuid.uuid4().hex,
+ DEFAULT_DOMAIN_ID)
def test_get_role(self):
- role_ref = self.identity_api.get_role(
- role_id=self.role_admin['id'])
+ role_ref = self.identity_api.get_role(self.role_admin['id'])
role_ref_dict = dict((x, role_ref[x]) for x in role_ref)
self.assertDictEqual(role_ref_dict, self.role_admin)
def test_get_role_404(self):
self.assertRaises(exception.RoleNotFound,
self.identity_api.get_role,
- role_id=uuid.uuid4().hex)
+ uuid.uuid4().hex)
def test_create_duplicate_role_name_fails(self):
role = {'id': 'fake1',
diff --git a/tests/test_backend_sql.py b/tests/test_backend_sql.py
index 38eddaa4..89276e86 100644
--- a/tests/test_backend_sql.py
+++ b/tests/test_backend_sql.py
@@ -114,7 +114,7 @@ class SqlModels(SqlTests):
def test_role_model(self):
cols = (('id', sql.String, 64),
- ('name', sql.String, 64))
+ ('name', sql.String, 255))
self.assertExpectedSchema('role', cols)
def test_user_project_metadata_model(self):
diff --git a/tests/test_injection.py b/tests/test_injection.py
index 4b6fc8ba..36cd0126 100644
--- a/tests/test_injection.py
+++ b/tests/test_injection.py
@@ -21,6 +21,10 @@ from keystone.common import dependency
class TestDependencyInjection(unittest.TestCase):
+ def tearDown(self):
+ dependency.reset()
+ super(TestDependencyInjection, self).tearDown()
+
def test_dependency_injection(self):
class Interface(object):
def do_work(self):
@@ -165,3 +169,43 @@ class TestDependencyInjection(unittest.TestCase):
with self.assertRaises(dependency.UnresolvableDependencyException):
Consumer()
+ dependency.resolve_future_dependencies()
+
+ def test_circular_dependency(self):
+ p1_name = uuid.uuid4().hex
+ p2_name = uuid.uuid4().hex
+
+ @dependency.provider(p1_name)
+ @dependency.requires(p2_name)
+ class P1(object):
+ pass
+
+ @dependency.provider(p2_name)
+ @dependency.requires(p1_name)
+ class P2(object):
+ pass
+
+ p1 = P1()
+ p2 = P2()
+
+ dependency.resolve_future_dependencies()
+
+ self.assertIs(getattr(p1, p2_name), p2)
+ self.assertIs(getattr(p2, p1_name), p1)
+
+ def test_reset(self):
+ # Can reset the registry of providers.
+
+ p_id = uuid.uuid4().hex
+
+ @dependency.provider(p_id)
+ class P(object):
+ pass
+
+ p_inst = P()
+
+ self.assertIs(dependency.REGISTRY[p_id], p_inst)
+
+ dependency.reset()
+
+ self.assertFalse(dependency.REGISTRY)
diff --git a/tests/test_keystoneclient.py b/tests/test_keystoneclient.py
index ecab6a01..38062d4b 100644
--- a/tests/test_keystoneclient.py
+++ b/tests/test_keystoneclient.py
@@ -18,7 +18,6 @@ import uuid
import webob
from keystone import test
-from keystone import token
from keystone import config
from keystone.openstack.common import jsonutils
@@ -36,15 +35,10 @@ class CompatTestCase(test.TestCase):
def setUp(self):
super(CompatTestCase, self).setUp()
- self.public_server = self.serveapp('keystone', name='main')
- self.admin_server = self.serveapp('keystone', name='admin')
-
- revdir = test.checkout_vendor(*self.get_checkout())
- self.add_path(revdir)
- self.clear_module('keystoneclient')
+ # The backends should be loaded and initialized before the servers are
+ # started because the servers use the backends.
self.load_backends()
- self.token_provider_api = token.provider.Manager()
self.load_fixtures(default_fixtures)
# TODO(termie): add an admin user to the fixtures and use that user
@@ -54,6 +48,13 @@ class CompatTestCase(test.TestCase):
self.tenant_bar['id'],
self.role_admin['id'])
+ self.public_server = self.serveapp('keystone', name='main')
+ self.admin_server = self.serveapp('keystone', name='admin')
+
+ revdir = test.checkout_vendor(*self.get_checkout())
+ self.add_path(revdir)
+ self.clear_module('keystoneclient')
+
def tearDown(self):
self.public_server.kill()
self.admin_server.kill()
diff --git a/tests/test_token_provider.py b/tests/test_token_provider.py
index ac0b0d6b..a7e92717 100644
--- a/tests/test_token_provider.py
+++ b/tests/test_token_provider.py
@@ -333,7 +333,6 @@ class TestTokenProvider(test.TestCase):
def setUp(self):
super(TestTokenProvider, self).setUp()
self.load_backends()
- self.token_provider_api = token.provider.Manager()
def test_get_token_version(self):
self.assertEqual(
diff --git a/tests/test_v3.py b/tests/test_v3.py
index 60a52d69..4f00de7d 100644
--- a/tests/test_v3.py
+++ b/tests/test_v3.py
@@ -5,7 +5,6 @@ from lxml import etree
import webtest
from keystone import test
-from keystone import token
from keystone import auth
from keystone.common import serializer
@@ -45,8 +44,6 @@ class RestfulTestCase(test_content_types.RestfulTestCase):
test.setup_test_database()
self.load_backends()
- self.token_provider_api = token.provider.Manager()
-
self.public_app = webtest.TestApp(
self.loadapp('keystone', name='main'))
self.admin_app = webtest.TestApp(
diff --git a/tests/test_v3_identity.py b/tests/test_v3_identity.py
index 5eaf9085..f1e19c42 100644
--- a/tests/test_v3_identity.py
+++ b/tests/test_v3_identity.py
@@ -105,6 +105,10 @@ class IdentityTestCase(test_v3.RestfulTestCase):
body={'domain': ref})
return self.assertValidDomainResponse(r, ref)
+ def test_create_domain_400(self):
+ """Call ``POST /domains``."""
+ self.post('/domains', body={'domain': {}}, expected_status=400)
+
def test_list_domains(self):
"""Call ``GET /domains``."""
r = self.get('/domains')
@@ -266,19 +270,19 @@ class IdentityTestCase(test_v3.RestfulTestCase):
# Check all the domain2 relevant entities are gone
self.assertRaises(exception.DomainNotFound,
self.identity_api.get_domain,
- domain_id=self.domain2['id'])
+ self.domain2['id'])
self.assertRaises(exception.ProjectNotFound,
self.identity_api.get_project,
- tenant_id=self.project2['id'])
+ self.project2['id'])
self.assertRaises(exception.GroupNotFound,
self.identity_api.get_group,
- group_id=self.group2['id'])
+ self.group2['id'])
self.assertRaises(exception.UserNotFound,
self.identity_api.get_user,
- user_id=self.user2['id'])
+ self.user2['id'])
self.assertRaises(exception.CredentialNotFound,
self.credential_api.get_credential,
- credential_id=self.credential2['id'])
+ self.credential2['id'])
# ...and that all self.domain entities are still here
r = self.identity_api.get_domain(self.domain['id'])
@@ -313,6 +317,10 @@ class IdentityTestCase(test_v3.RestfulTestCase):
body={'project': ref})
self.assertValidProjectResponse(r, ref)
+ def test_create_project_400(self):
+ """Call ``POST /projects``."""
+ self.post('/projects', body={'project': {}}, expected_status=400)
+
def test_get_project(self):
"""Call ``GET /projects/{project_id}``."""
r = self.get(
@@ -376,6 +384,10 @@ class IdentityTestCase(test_v3.RestfulTestCase):
body={'user': ref})
return self.assertValidUserResponse(r, ref)
+ def test_create_user_400(self):
+ """Call ``POST /users``."""
+ self.post('/users', body={'user': {}}, expected_status=400)
+
def test_list_users(self):
"""Call ``GET /users``."""
r = self.get('/users')
@@ -511,7 +523,7 @@ class IdentityTestCase(test_v3.RestfulTestCase):
# that reference this project
self.assertRaises(exception.CredentialNotFound,
self.credential_api.get_credential,
- credential_id=self.credential['id'])
+ self.credential['id'])
# And the no tokens we remain valid
tokens = self.token_api.list_tokens(self.user['id'])
self.assertEquals(len(tokens), 0)
@@ -529,6 +541,10 @@ class IdentityTestCase(test_v3.RestfulTestCase):
body={'group': ref})
return self.assertValidGroupResponse(r, ref)
+ def test_create_group_400(self):
+ """Call ``POST /groups``."""
+ self.post('/groups', body={'group': {}}, expected_status=400)
+
def test_list_groups(self):
"""Call ``GET /groups``."""
r = self.get('/groups')
@@ -569,6 +585,10 @@ class IdentityTestCase(test_v3.RestfulTestCase):
body={'role': ref})
return self.assertValidRoleResponse(r, ref)
+ def test_create_role_400(self):
+ """Call ``POST /roles``."""
+ self.post('/roles', body={'role': {}}, expected_status=400)
+
def test_list_roles(self):
"""Call ``GET /roles``."""
r = self.get('/roles')
diff --git a/tests/test_wsgi.py b/tests/test_wsgi.py
index 369dd952..003f7571 100644
--- a/tests/test_wsgi.py
+++ b/tests/test_wsgi.py
@@ -14,8 +14,6 @@
# License for the specific language governing permissions and limitations
# under the License.
-import webob
-
from keystone import test
from keystone.common import wsgi
@@ -34,7 +32,7 @@ class BaseWSGITest(test.TestCase):
super(BaseWSGITest, self).setUp()
def _make_request(self, url='/'):
- req = webob.Request.blank(url)
+ req = wsgi.Request.blank(url)
args = {'action': 'index', 'controller': None}
req.environ['wsgiorg.routing_args'] = [None, args]
return req