diff options
103 files changed, 23898 insertions, 1701 deletions
@@ -1,5 +1,6 @@ *.pyc *.swp +*.egg/ vendor .ksl-venv .venv 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/developing.rst b/doc/source/developing.rst index c14ef7ab..2cf4b98e 100644 --- a/doc/source/developing.rst +++ b/doc/source/developing.rst @@ -71,6 +71,36 @@ place:: .. _`python-keystoneclient`: https://github.com/openstack/python-keystoneclient +Database Schema Migrations +-------------------------- + +Keystone uses SQLAlchemy-migrate +_`SQLAlchemy-migrate`:http://code.google.com/p/sqlalchemy-migrate/ to migrate the SQL database +between revisions. For core components, the migrations are kept in a central +repository under keystone/common/sql/migrate_repo. + +Extensions should be created as directories under `keystone/contrib`. An +extension that requires sql migrations should not change the common repository, +but should instead have its own repository. This repository must be in the +extension's directory in `keystone/contrib/<extension>/migrate_repo.` In +addition it needs a subdirectory named `versions`. For example, if the +extension name is `my_extension` then the directory structure would be +`keystone/contrib/my_extension/migrate_repo/versions/`. For the migration +o work, both the migrate_repo and versions subdirectories must have empty +__init__.py files. SQLAlchemy-migrate will look for a configuration file in +the migrate_repo named migrate.cfg. This conforms to a Key/value ini file +format. A sample config file with the minimal set of values is:: + + [db_settings] + repository_id=my_extension + version_table=migrate_version + required_dbs=[] + +The directory `keystone/contrib/example` contains a sample extension migration. + +Migrations for extension must be explicitly run. To run a migration for a specific +extension, run `keystone-manage --extension <name> db_sync`. + Initial Sample Data ------------------- 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/etc/keystone.conf.sample b/etc/keystone.conf.sample index a49a9a5e..90efe5f6 100644 --- a/etc/keystone.conf.sample +++ b/etc/keystone.conf.sample @@ -100,6 +100,9 @@ # exist to order to maintain support for your v2 clients. # default_domain_id = default +# Maximum supported length for user passwords; decrease to improve performance. +# max_password_length = 4096 + [credential] # driver = keystone.credential.backends.sql.Credential 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..718d38c3 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__() @@ -261,28 +263,19 @@ class ProjectApi(common_ldap.EnabledEmuMixIn, common_ldap.BaseLdap): DEFAULT_OBJECTCLASS = 'groupOfNames' DEFAULT_ID_ATTR = 'cn' DEFAULT_MEMBER_ATTRIBUTE = 'member' - DEFAULT_ATTRIBUTE_IGNORE = [] NotFound = exception.ProjectNotFound notfound_arg = 'project_id' # NOTE(yorik-sar): while options_name = tenant options_name = 'tenant' - attribute_mapping = {'name': 'ou', - 'description': 'description', - 'tenantId': 'cn', - 'enabled': 'enabled', - 'domain_id': 'domain_id'} + attribute_options_names = {'name': 'name', + 'description': 'desc', + 'enabled': 'enabled', + 'domain_id': 'domain_id'} model = models.Project def __init__(self, conf): super(ProjectApi, self).__init__(conf) - self.attribute_mapping['name'] = conf.ldap.tenant_name_attribute - self.attribute_mapping['description'] = conf.ldap.tenant_desc_attribute - self.attribute_mapping['enabled'] = conf.ldap.tenant_enabled_attribute - self.attribute_mapping['domain_id'] = ( - conf.ldap.tenant_domain_id_attribute) self.member_attribute = (getattr(conf.ldap, 'tenant_member_attribute') or self.DEFAULT_MEMBER_ATTRIBUTE) - self.attribute_ignore = (getattr(conf.ldap, 'tenant_attribute_ignore') - or self.DEFAULT_ATTRIBUTE_IGNORE) def create(self, values): self.affirm_unique(values) @@ -379,21 +372,15 @@ class RoleApi(common_ldap.BaseLdap): DEFAULT_STRUCTURAL_CLASSES = [] DEFAULT_OBJECTCLASS = 'organizationalRole' DEFAULT_MEMBER_ATTRIBUTE = 'roleOccupant' - DEFAULT_ATTRIBUTE_IGNORE = [] NotFound = exception.RoleNotFound options_name = 'role' - attribute_mapping = {'name': 'ou', - #'serviceId': 'service_id', - } + attribute_options_names = {'name': 'name'} model = models.Role def __init__(self, conf): super(RoleApi, self).__init__(conf) - self.attribute_mapping['name'] = conf.ldap.role_name_attribute self.member_attribute = (getattr(conf.ldap, 'role_member_attribute') or self.DEFAULT_MEMBER_ATTRIBUTE) - self.attribute_ignore = (getattr(conf.ldap, 'role_attribute_ignore') - or self.DEFAULT_ATTRIBUTE_IGNORE) def get(self, id, filter=None): model = super(RoleApi, self).get(id, filter) 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..0a2ee681 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. @@ -181,9 +178,23 @@ class Manager(manager.Manager): keystone.exception.UserNotFound """ - self.driver.add_role_to_user_and_project(user_id, - tenant_id, - config.CONF.member_role_id) + try: + self.driver.add_role_to_user_and_project( + user_id, + tenant_id, + config.CONF.member_role_id) + except exception.RoleNotFound: + LOG.info(_("Creating the default role %s " + "because it does not exist.") % + config.CONF.member_role_id) + role = {'id': CONF.member_role_id, + 'name': CONF.member_role_name} + self.driver.create_role(config.CONF.member_role_id, role) + #now that default role exists, the add should succeed + self.driver.add_role_to_user_and_project( + user_id, + tenant_id, + config.CONF.member_role_id) def remove_user_from_project(self, tenant_id, user_id): """Remove user from a tenant diff --git a/keystone/catalog/backends/sql.py b/keystone/catalog/backends/sql.py index 7d3c6f4f..d7b2123a 100644 --- a/keystone/catalog/backends/sql.py +++ b/keystone/catalog/backends/sql.py @@ -32,6 +32,7 @@ class Service(sql.ModelBase, sql.DictBase): id = sql.Column(sql.String(64), primary_key=True) type = sql.Column(sql.String(255)) extra = sql.Column(sql.JsonBlob()) + endpoints = sql.relationship("Endpoint", backref="service") class Endpoint(sql.ModelBase, sql.DictBase): @@ -150,28 +151,26 @@ class Catalog(sql.Base, catalog.Driver): d.update({'tenant_id': tenant_id, 'user_id': user_id}) + session = self.get_session() + endpoints = (session.query(Endpoint). + options(sql.joinedload(Endpoint.service)). + all()) + catalog = {} - services = {} - for endpoint in self.list_endpoints(): - # look up the service - services.setdefault( - endpoint['service_id'], - self.get_service(endpoint['service_id'])) - service = services[endpoint['service_id']] - - # add the endpoint to the catalog if it's not already there - catalog.setdefault(endpoint['region'], {}) - catalog[endpoint['region']].setdefault( - service['type'], { - 'id': endpoint['id'], - 'name': service['name'], - 'publicURL': '', # this may be overridden, but must exist - }) - - # add the interface's url - url = core.format_url(endpoint.get('url'), d) + + for endpoint in endpoints: + region = endpoint['region'] + service_type = endpoint.service['type'] + default_service = { + 'id': endpoint['id'], + 'name': endpoint.service['name'], + 'publicURL': '' + } + catalog.setdefault(region, {}) + catalog[region].setdefault(service_type, default_service) + url = core.format_url(endpoint['url'], d) interface_url = '%sURL' % endpoint['interface'] - catalog[endpoint['region']][service['type']][interface_url] = url + catalog[region][service_type][interface_url] = url return catalog @@ -180,27 +179,19 @@ class Catalog(sql.Base, catalog.Driver): d.update({'tenant_id': tenant_id, 'user_id': user_id}) - services = {} - for endpoint in self.list_endpoints(): - # look up the service - service_id = endpoint['service_id'] - services.setdefault( - service_id, - self.get_service(service_id)) - service = services[service_id] + session = self.get_session() + services = (session.query(Service). + options(sql.joinedload(Service.endpoints)). + all()) + + def make_v3_endpoint(endpoint): del endpoint['service_id'] endpoint['url'] = core.format_url(endpoint['url'], d) - if 'endpoints' in services[service_id]: - services[service_id]['endpoints'].append(endpoint) - else: - services[service_id]['endpoints'] = [endpoint] - - catalog = [] - for service_id, service in services.iteritems(): - formatted_service = {} - formatted_service['id'] = service['id'] - formatted_service['type'] = service['type'] - formatted_service['endpoints'] = service['endpoints'] - catalog.append(formatted_service) + return endpoint + + catalog = [{'endpoints': [make_v3_endpoint(ep.to_dict()) + for ep in svc.endpoints], + 'id': svc.id, + 'type': svc.type} for svc in services] return catalog diff --git a/keystone/cli.py b/keystone/cli.py index 21d2ad40..18c095ce 100644 --- a/keystone/cli.py +++ b/keystone/cli.py @@ -20,12 +20,15 @@ import grp import os import pwd +from migrate import exceptions + from oslo.config import cfg import pbr.version from keystone.common import openssl from keystone.common.sql import migration from keystone import config +from keystone import contrib from keystone.openstack.common import importutils from keystone.openstack.common import jsonutils from keystone import token @@ -57,14 +60,35 @@ class DbSync(BaseApp): 'version. If not provided, db_sync will ' 'migrate the database to the latest known ' 'version.')) + parser.add_argument('--extension', default=None, + help=('Migrate the database for the specified ' + 'extension. If not provided, db_sync will ' + 'migrate the common repository.')) + return parser @staticmethod def main(): - for k in ['identity', 'catalog', 'policy', 'token', 'credential']: - driver = importutils.import_object(getattr(CONF, k).driver) - if hasattr(driver, 'db_sync'): - driver.db_sync(CONF.command.version) + version = CONF.command.version + extension = CONF.command.extension + if not extension: + migration.db_sync(version=version) + else: + package_name = "%s.%s.migrate_repo" % (contrib.__name__, extension) + try: + package = importutils.import_module(package_name) + repo_path = os.path.abspath(os.path.dirname(package.__file__)) + except ImportError: + print _("This extension does not provide migrations.") + exit(0) + try: + # Register the repo with the version control API + # If it already knows about the repo, it will throw + # an exception that we can safely ignore + migration.db_version_control(version=None, repo_path=repo_path) + except exceptions.DatabaseAlreadyControlledError: + pass + migration.db_sync(version=None, repo_path=repo_path) class DbVersion(BaseApp): @@ -72,9 +96,29 @@ class DbVersion(BaseApp): name = 'db_version' + @classmethod + def add_argument_parser(cls, subparsers): + parser = super(DbVersion, cls).add_argument_parser(subparsers) + parser.add_argument('--extension', default=None, + help=('Migrate the database for the specified ' + 'extension. If not provided, db_sync will ' + 'migrate the common repository.')) + @staticmethod def main(): - print(migration.db_version()) + extension = CONF.command.extension + if extension: + try: + package_name = ("%s.%s.migrate_repo" % + (contrib.__name__, extension)) + package = importutils.import_module(package_name) + repo_path = os.path.abspath(os.path.dirname(package.__file__)) + print(migration.db_version(repo_path)) + except ImportError: + print _("This extension does not provide migrations.") + exit(1) + else: + print(migration.db_version()) class BaseCertificateSetup(BaseApp): diff --git a/keystone/common/config.py b/keystone/common/config.py index 10c47a35..cd525369 100644 --- a/keystone/common/config.py +++ b/keystone/common/config.py @@ -210,6 +210,7 @@ def configure(): # identity register_str('default_domain_id', group='identity', default='default') + register_int('max_password_length', group='identity', default=4096) # trust register_bool('enabled', group='trust', default=True) 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/environment/__init__.py b/keystone/common/environment/__init__.py index ac93e24f..2993536a 100644 --- a/keystone/common/environment/__init__.py +++ b/keystone/common/environment/__init__.py @@ -59,6 +59,9 @@ def use_eventlet(monkeypatch_thread=None): if monkeypatch_thread is None: monkeypatch_thread = not os.getenv('STANDARD_THREADS') + # Raise the default from 8192 to accommodate large tokens + eventlet.wsgi.MAX_HEADER_LINE = 16384 + eventlet.patcher.monkey_patch(all=False, socket=True, time=True, thread=monkeypatch_thread) diff --git a/keystone/common/ldap/core.py b/keystone/common/ldap/core.py index 7a2dfee7..39ea78de 100644 --- a/keystone/common/ldap/core.py +++ b/keystone/common/ldap/core.py @@ -114,7 +114,7 @@ class BaseLdap(object): notfound_arg = None options_name = None model = None - attribute_mapping = {} + attribute_options_names = {} attribute_ignore = [] tree_dn = None @@ -129,6 +129,7 @@ class BaseLdap(object): self.tls_cacertfile = conf.ldap.tls_cacertfile self.tls_cacertdir = conf.ldap.tls_cacertdir self.tls_req_cert = parse_tls_cert(conf.ldap.tls_req_cert) + self.attribute_mapping = {} if self.options_name is not None: self.suffix = conf.ldap.suffix @@ -145,6 +146,10 @@ class BaseLdap(object): self.object_class = (getattr(conf.ldap, objclass) or self.DEFAULT_OBJECTCLASS) + for k, v in self.attribute_options_names.iteritems(): + v = '%s_%s_attribute' % (self.options_name, v) + self.attribute_mapping[k] = getattr(conf.ldap, v) + attr_mapping_opt = ('%s_additional_attribute_mapping' % self.options_name) attr_mapping = (getattr(conf.ldap, attr_mapping_opt) @@ -167,6 +172,10 @@ class BaseLdap(object): if self.notfound_arg is None: self.notfound_arg = self.options_name + '_id' + + attribute_ignore = '%s_attribute_ignore' % self.options_name + self.attribute_ignore = getattr(conf.ldap, attribute_ignore) + self.use_dumb_member = getattr(conf.ldap, 'use_dumb_member') self.dumb_member = (getattr(conf.ldap, 'dumb_member') or self.DUMB_MEMBER_DN) 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/sql/core.py b/keystone/common/sql/core.py index 9dd545f4..67863588 100644 --- a/keystone/common/sql/core.py +++ b/keystone/common/sql/core.py @@ -55,6 +55,8 @@ NotFound = sql.orm.exc.NoResultFound Boolean = sql.Boolean Text = sql.Text UniqueConstraint = sql.UniqueConstraint +relationship = sql.orm.relationship +joinedload = sql.orm.joinedload def initialize_decorator(init): @@ -180,6 +182,8 @@ class DictBase(object): setattr(self, key, value) def __getitem__(self, key): + if key in self.extra: + return self.extra[key] return getattr(self, key) def get(self, key, default=None): diff --git a/keystone/common/sql/migrate_repo/versions/020_migrate_metadata_table_roles.py b/keystone/common/sql/migrate_repo/versions/020_migrate_metadata_table_roles.py index 35110df4..a0c6ddbc 100644 --- a/keystone/common/sql/migrate_repo/versions/020_migrate_metadata_table_roles.py +++ b/keystone/common/sql/migrate_repo/versions/020_migrate_metadata_table_roles.py @@ -23,11 +23,9 @@ def upgrade(migrate_engine): session = sql.orm.sessionmaker(bind=migrate_engine)() for metadata in session.query(old_metadata_table): + data = json.loads(metadata.data) if config.CONF.member_role_id not in metadata.data: - data = json.loads(metadata.data) data['roles'].append(config.CONF.member_role_id) - else: - data = metadata.data r = session.query(new_metadata_table).filter_by( user_id=metadata.user_id, diff --git a/keystone/common/sql/migration.py b/keystone/common/sql/migration.py index 86e0254c..3cb9cd63 100644 --- a/keystone/common/sql/migration.py +++ b/keystone/common/sql/migration.py @@ -39,39 +39,51 @@ except ImportError: sys.exit('python-migrate is not installed. Exiting.') -def db_sync(version=None): +def migrate_repository(version, current_version, repo_path): + if version is None or version > current_version: + result = versioning_api.upgrade(CONF.sql.connection, + repo_path, version) + else: + result = versioning_api.downgrade( + CONF.sql.connection, repo_path, version) + return result + + +def db_sync(version=None, repo_path=None): if version is not None: try: version = int(version) except ValueError: raise Exception(_('version should be an integer')) + if repo_path is None: + repo_path = find_migrate_repo() + current_version = db_version(repo_path=repo_path) + return migrate_repository(version, current_version, repo_path) - current_version = db_version() - repo_path = _find_migrate_repo() - if version is None or version > current_version: - return versioning_api.upgrade(CONF.sql.connection, repo_path, version) - else: - return versioning_api.downgrade( - CONF.sql.connection, repo_path, version) - -def db_version(): - repo_path = _find_migrate_repo() +def db_version(repo_path=None): + if repo_path is None: + repo_path = find_migrate_repo() try: return versioning_api.db_version(CONF.sql.connection, repo_path) except versioning_exceptions.DatabaseNotControlledError: return db_version_control(0) -def db_version_control(version=None): - repo_path = _find_migrate_repo() +def db_version_control(version=None, repo_path=None): + if repo_path is None: + repo_path = find_migrate_repo() versioning_api.version_control(CONF.sql.connection, repo_path, version) return version -def _find_migrate_repo(): +def find_migrate_repo(package=None): """Get the path for the migrate repository.""" - path = os.path.join(os.path.abspath(os.path.dirname(__file__)), + if package is None: + file = __file__ + else: + file = package.__file__ + path = os.path.join(os.path.abspath(os.path.dirname(file)), 'migrate_repo') assert os.path.exists(path) return path diff --git a/keystone/common/utils.py b/keystone/common/utils.py index fd2d7567..9966ee67 100644 --- a/keystone/common/utils.py +++ b/keystone/common/utils.py @@ -36,8 +36,6 @@ config.register_int('crypt_strength', default=40000) LOG = logging.getLogger(__name__) -MAX_PASSWORD_LENGTH = 4096 - def read_cached_file(filename, cache_info, reload_func=None): """Read from a file if it has been modified. @@ -68,12 +66,13 @@ class SmarterEncoder(json.JSONEncoder): def trunc_password(password): - """Truncate passwords to the MAX_PASSWORD_LENGTH.""" + """Truncate passwords to the max_length.""" + max_length = CONF.identity.max_password_length try: - if len(password) > MAX_PASSWORD_LENGTH: - return password[:MAX_PASSWORD_LENGTH] - else: - return password + if len(password) > max_length: + LOG.warning( + _('Truncating user password to %s characters.') % max_length) + return password[:max_length] except TypeError: raise exception.ValidationError(attribute='string', target='password') 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/doc/source/_templates/.placeholder b/keystone/contrib/example/__init__.py index e69de29b..e69de29b 100644 --- a/doc/source/_templates/.placeholder +++ b/keystone/contrib/example/__init__.py diff --git a/keystone/contrib/example/migrate_repo/__init__.py b/keystone/contrib/example/migrate_repo/__init__.py new file mode 100644 index 00000000..e69de29b --- /dev/null +++ b/keystone/contrib/example/migrate_repo/__init__.py diff --git a/keystone/contrib/example/migrate_repo/migrate.cfg b/keystone/contrib/example/migrate_repo/migrate.cfg new file mode 100644 index 00000000..5b1b1c0a --- /dev/null +++ b/keystone/contrib/example/migrate_repo/migrate.cfg @@ -0,0 +1,25 @@ +[db_settings] +# Used to identify which repository this database is versioned under. +# You can use the name of your project. +repository_id=example + +# The name of the database table used to track the schema version. +# This name shouldn't already be used by your project. +# If this is changed once a database is under version control, you'll need to +# change the table name in each database too. +version_table=migrate_version + +# When committing a change script, Migrate will attempt to generate the +# sql for all supported databases; normally, if one of them fails - probably +# because you don't have that database installed - it is ignored and the +# commit continues, perhaps ending successfully. +# Databases in this list MUST compile successfully during a commit, or the +# entire commit will fail. List the databases your application will actually +# be using to ensure your updates to that database work properly. +# This must be a list; example: ['postgres','sqlite'] +required_dbs=[] + +# When creating new change scripts, Migrate will stamp the new script with +# a version number. By default this is latest_version + 1. You can set this +# to 'true' to tell Migrate to use the UTC timestamp instead. +use_timestamp_numbering=False diff --git a/keystone/contrib/example/migrate_repo/versions/001_example_table.py b/keystone/contrib/example/migrate_repo/versions/001_example_table.py new file mode 100644 index 00000000..bb2203d3 --- /dev/null +++ b/keystone/contrib/example/migrate_repo/versions/001_example_table.py @@ -0,0 +1,45 @@ +# vim: tabstop=4 shiftwidth=4 softtabstop=4 + +# Copyright 2012 OpenStack LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); you may +# not use this file except in compliance with the License. You may obtain +# a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT +# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the +# License for the specific language governing permissions and limitations +# under the License. + +import sqlalchemy as sql + + +def upgrade(migrate_engine): + # Upgrade operations go here. Don't create your own engine; bind + # migrate_engine to your metadata + meta = sql.MetaData() + meta.bind = migrate_engine + + # catalog + + service_table = sql.Table( + 'example', + meta, + sql.Column('id', sql.String(64), primary_key=True), + sql.Column('type', sql.String(255)), + sql.Column('extra', sql.Text())) + service_table.create(migrate_engine, checkfirst=True) + + +def downgrade(migrate_engine): + # Operations to reverse the above upgrade go here. + meta = sql.MetaData() + meta.bind = migrate_engine + + tables = ['example'] + for t in tables: + table = sql.Table(t, meta, autoload=True) + table.drop(migrate_engine, checkfirst=True) diff --git a/keystone/contrib/example/migrate_repo/versions/__init__.py b/keystone/contrib/example/migrate_repo/versions/__init__.py new file mode 100644 index 00000000..e69de29b --- /dev/null +++ b/keystone/contrib/example/migrate_repo/versions/__init__.py 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..a359c63f 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" @@ -207,29 +210,20 @@ class UserApi(common_ldap.EnabledEmuMixIn, common_ldap.BaseLdap): DEFAULT_STRUCTURAL_CLASSES = ['person'] DEFAULT_ID_ATTR = 'cn' DEFAULT_OBJECTCLASS = 'inetOrgPerson' - DEFAULT_ATTRIBUTE_IGNORE = ['tenant_id', 'tenants'] NotFound = exception.UserNotFound options_name = 'user' - attribute_mapping = {'password': 'userPassword', - 'email': 'mail', - 'name': 'sn', - 'enabled': 'enabled', - 'domain_id': 'domain_id'} + attribute_options_names = {'password': 'pass', + 'email': 'mail', + 'name': 'name', + 'enabled': 'enabled', + 'domain_id': 'domain_id'} model = models.User def __init__(self, conf): super(UserApi, self).__init__(conf) - self.attribute_mapping['name'] = conf.ldap.user_name_attribute - self.attribute_mapping['email'] = conf.ldap.user_mail_attribute - self.attribute_mapping['password'] = conf.ldap.user_pass_attribute - self.attribute_mapping['enabled'] = conf.ldap.user_enabled_attribute - self.attribute_mapping['domain_id'] = ( - conf.ldap.user_domain_id_attribute) self.enabled_mask = conf.ldap.user_enabled_mask self.enabled_default = conf.ldap.user_enabled_default - self.attribute_ignore = (getattr(conf.ldap, 'user_attribute_ignore') - or self.DEFAULT_ATTRIBUTE_IGNORE) def _ldap_res_to_model(self, res): obj = super(UserApi, self)._ldap_res_to_model(res) @@ -264,6 +258,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' @@ -271,25 +268,17 @@ class GroupApi(common_ldap.BaseLdap): DEFAULT_OBJECTCLASS = 'groupOfNames' DEFAULT_ID_ATTR = 'cn' DEFAULT_MEMBER_ATTRIBUTE = 'member' - DEFAULT_ATTRIBUTE_IGNORE = [] NotFound = exception.GroupNotFound options_name = 'group' - attribute_mapping = {'name': 'ou', - 'description': 'description', - 'groupId': 'cn', - 'domain_id': 'domain_id'} + attribute_options_names = {'description': 'desc', + 'name': 'name', + 'domain_id': 'domain_id'} model = models.Group def __init__(self, conf): super(GroupApi, self).__init__(conf) - self.attribute_mapping['name'] = conf.ldap.group_name_attribute - self.attribute_mapping['description'] = conf.ldap.group_desc_attribute - self.attribute_mapping['domain_id'] = ( - conf.ldap.group_domain_id_attribute) self.member_attribute = (getattr(conf.ldap, 'group_member_attribute') or self.DEFAULT_MEMBER_ATTRIBUTE) - self.attribute_ignore = (getattr(conf.ldap, 'group_attribute_ignore') - or self.DEFAULT_ATTRIBUTE_IGNORE) def create(self, values): self.affirm_unique(values) 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/middleware/s3_token.py b/keystone/middleware/s3_token.py index 2b7f99a0..b346893b 100644 --- a/keystone/middleware/s3_token.py +++ b/keystone/middleware/s3_token.py @@ -34,14 +34,62 @@ This WSGI component: """ import httplib +import urllib import webob -from swift.common import utils as swift_utils - +from keystone.common import logging from keystone.openstack.common import jsonutils PROTOCOL_NAME = 'S3 Token Authentication' +LOG = logging.getLogger(__name__) + + +# TODO(kun): remove it after oslo merge this. +def split_path(path, minsegs=1, maxsegs=None, rest_with_last=False): + """Validate and split the given HTTP request path. + + **Examples**:: + + ['a'] = split_path('/a') + ['a', None] = split_path('/a', 1, 2) + ['a', 'c'] = split_path('/a/c', 1, 2) + ['a', 'c', 'o/r'] = split_path('/a/c/o/r', 1, 3, True) + + :param path: HTTP Request path to be split + :param minsegs: Minimum number of segments to be extracted + :param maxsegs: Maximum number of segments to be extracted + :param rest_with_last: If True, trailing data will be returned as part + of last segment. If False, and there is + trailing data, raises ValueError. + :returns: list of segments with a length of maxsegs (non-existant + segments will return as None) + :raises: ValueError if given an invalid path + """ + if not maxsegs: + maxsegs = minsegs + if minsegs > maxsegs: + raise ValueError('minsegs > maxsegs: %d > %d' % (minsegs, maxsegs)) + if rest_with_last: + segs = path.split('/', maxsegs) + minsegs += 1 + maxsegs += 1 + count = len(segs) + if (segs[0] or count < minsegs or count > maxsegs or + '' in segs[1:minsegs]): + raise ValueError('Invalid path: %s' % urllib.quote(path)) + else: + minsegs += 1 + maxsegs += 1 + segs = path.split('/', maxsegs) + count = len(segs) + if (segs[0] or count < minsegs or count > maxsegs + 1 or + '' in segs[1:minsegs] or + (count == maxsegs + 1 and segs[maxsegs])): + raise ValueError('Invalid path: %s' % urllib.quote(path)) + segs = segs[1:maxsegs] + segs.extend([None] * (maxsegs - 1 - len(segs))) + return segs class ServiceError(Exception): @@ -54,7 +102,7 @@ class S3Token(object): def __init__(self, app, conf): """Common initialization code.""" self.app = app - self.logger = swift_utils.get_logger(conf, log_route='s3token') + self.logger = LOG self.logger.debug('Starting the %s component' % PROTOCOL_NAME) self.reseller_prefix = conf.get('reseller_prefix', 'AUTH_') # where to find the auth service (we use this to validate tokens) @@ -119,7 +167,7 @@ class S3Token(object): self.logger.debug('Calling S3Token middleware.') try: - parts = swift_utils.split_path(req.path, 1, 4, True) + parts = split_path(req.path, 1, 4, True) version, account, container, obj = parts except ValueError: msg = 'Not a path query, skipping.' diff --git a/keystone/openstack/common/gettextutils.py b/keystone/openstack/common/gettextutils.py index 55ba3387..ed085370 100644 --- a/keystone/openstack/common/gettextutils.py +++ b/keystone/openstack/common/gettextutils.py @@ -1,6 +1,7 @@ # vim: tabstop=4 shiftwidth=4 softtabstop=4 # Copyright 2012 Red Hat, Inc. +# Copyright 2013 IBM Corp. # All Rights Reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); you may @@ -23,18 +24,27 @@ Usual usage in an openstack.common module: from keystone.openstack.common.gettextutils import _ """ +import copy import gettext +import logging.handlers import os +import re +import UserString + +from babel import localedata +import six _localedir = os.environ.get('keystone'.upper() + '_LOCALEDIR') _t = gettext.translation('keystone', localedir=_localedir, fallback=True) +_AVAILABLE_LANGUAGES = [] + def _(msg): return _t.ugettext(msg) -def install(domain): +def install(domain, lazy=False): """Install a _() function using the given translation domain. Given a translation domain, install a _() function using gettext's @@ -44,7 +54,252 @@ def install(domain): overriding the default localedir (e.g. /usr/share/locale) using a translation-domain-specific environment variable (e.g. NOVA_LOCALEDIR). + + :param domain: the translation domain + :param lazy: indicates whether or not to install the lazy _() function. + The lazy _() introduces a way to do deferred translation + of messages by installing a _ that builds Message objects, + instead of strings, which can then be lazily translated into + any available locale. + """ + if lazy: + # NOTE(mrodden): Lazy gettext functionality. + # + # The following introduces a deferred way to do translations on + # messages in OpenStack. We override the standard _() function + # and % (format string) operation to build Message objects that can + # later be translated when we have more information. + # + # Also included below is an example LocaleHandler that translates + # Messages to an associated locale, effectively allowing many logs, + # each with their own locale. + + def _lazy_gettext(msg): + """Create and return a Message object. + + Lazy gettext function for a given domain, it is a factory method + for a project/module to get a lazy gettext function for its own + translation domain (i.e. nova, glance, cinder, etc.) + + Message encapsulates a string so that we can translate + it later when needed. + """ + return Message(msg, domain) + + import __builtin__ + __builtin__.__dict__['_'] = _lazy_gettext + else: + localedir = '%s_LOCALEDIR' % domain.upper() + gettext.install(domain, + localedir=os.environ.get(localedir), + unicode=True) + + +class Message(UserString.UserString, object): + """Class used to encapsulate translatable messages.""" + def __init__(self, msg, domain): + # _msg is the gettext msgid and should never change + self._msg = msg + self._left_extra_msg = '' + self._right_extra_msg = '' + self.params = None + self.locale = None + self.domain = domain + + @property + def data(self): + # NOTE(mrodden): this should always resolve to a unicode string + # that best represents the state of the message currently + + localedir = os.environ.get(self.domain.upper() + '_LOCALEDIR') + if self.locale: + lang = gettext.translation(self.domain, + localedir=localedir, + languages=[self.locale], + fallback=True) + else: + # use system locale for translations + lang = gettext.translation(self.domain, + localedir=localedir, + fallback=True) + + full_msg = (self._left_extra_msg + + lang.ugettext(self._msg) + + self._right_extra_msg) + + if self.params is not None: + full_msg = full_msg % self.params + + return six.text_type(full_msg) + + def _save_dictionary_parameter(self, dict_param): + full_msg = self.data + # look for %(blah) fields in string; + # ignore %% and deal with the + # case where % is first character on the line + keys = re.findall('(?:[^%]|^)%\((\w*)\)[a-z]', full_msg) + + # if we don't find any %(blah) blocks but have a %s + if not keys and re.findall('(?:[^%]|^)%[a-z]', full_msg): + # apparently the full dictionary is the parameter + params = copy.deepcopy(dict_param) + else: + params = {} + for key in keys: + try: + params[key] = copy.deepcopy(dict_param[key]) + except TypeError: + # cast uncopyable thing to unicode string + params[key] = unicode(dict_param[key]) + + return params + + def _save_parameters(self, other): + # we check for None later to see if + # we actually have parameters to inject, + # so encapsulate if our parameter is actually None + if other is None: + self.params = (other, ) + elif isinstance(other, dict): + self.params = self._save_dictionary_parameter(other) + else: + # fallback to casting to unicode, + # this will handle the problematic python code-like + # objects that cannot be deep-copied + try: + self.params = copy.deepcopy(other) + except TypeError: + self.params = unicode(other) + + return self + + # overrides to be more string-like + def __unicode__(self): + return self.data + + def __str__(self): + return self.data.encode('utf-8') + + def __getstate__(self): + to_copy = ['_msg', '_right_extra_msg', '_left_extra_msg', + 'domain', 'params', 'locale'] + new_dict = self.__dict__.fromkeys(to_copy) + for attr in to_copy: + new_dict[attr] = copy.deepcopy(self.__dict__[attr]) + + return new_dict + + def __setstate__(self, state): + for (k, v) in state.items(): + setattr(self, k, v) + + # operator overloads + def __add__(self, other): + copied = copy.deepcopy(self) + copied._right_extra_msg += other.__str__() + return copied + + def __radd__(self, other): + copied = copy.deepcopy(self) + copied._left_extra_msg += other.__str__() + return copied + + def __mod__(self, other): + # do a format string to catch and raise + # any possible KeyErrors from missing parameters + self.data % other + copied = copy.deepcopy(self) + return copied._save_parameters(other) + + def __mul__(self, other): + return self.data * other + + def __rmul__(self, other): + return other * self.data + + def __getitem__(self, key): + return self.data[key] + + def __getslice__(self, start, end): + return self.data.__getslice__(start, end) + + def __getattribute__(self, name): + # NOTE(mrodden): handle lossy operations that we can't deal with yet + # These override the UserString implementation, since UserString + # uses our __class__ attribute to try and build a new message + # after running the inner data string through the operation. + # At that point, we have lost the gettext message id and can just + # safely resolve to a string instead. + ops = ['capitalize', 'center', 'decode', 'encode', + 'expandtabs', 'ljust', 'lstrip', 'replace', 'rjust', 'rstrip', + 'strip', 'swapcase', 'title', 'translate', 'upper', 'zfill'] + if name in ops: + return getattr(self.data, name) + else: + return UserString.UserString.__getattribute__(self, name) + + +def get_available_languages(domain): + """Lists the available languages for the given translation domain. + + :param domain: the domain to get languages for """ - gettext.install(domain, - localedir=os.environ.get(domain.upper() + '_LOCALEDIR'), - unicode=True) + if _AVAILABLE_LANGUAGES: + return _AVAILABLE_LANGUAGES + + localedir = '%s_LOCALEDIR' % domain.upper() + find = lambda x: gettext.find(domain, + localedir=os.environ.get(localedir), + languages=[x]) + + # NOTE(mrodden): en_US should always be available (and first in case + # order matters) since our in-line message strings are en_US + _AVAILABLE_LANGUAGES.append('en_US') + # NOTE(luisg): Babel <1.0 used a function called list(), which was + # renamed to locale_identifiers() in >=1.0, the requirements master list + # requires >=0.9.6, uncapped, so defensively work with both. We can remove + # this check when the master list updates to >=1.0, and all projects udpate + list_identifiers = (getattr(localedata, 'list', None) or + getattr(localedata, 'locale_identifiers')) + locale_identifiers = list_identifiers() + for i in locale_identifiers: + if find(i) is not None: + _AVAILABLE_LANGUAGES.append(i) + return _AVAILABLE_LANGUAGES + + +def get_localized_message(message, user_locale): + """Gets a localized version of the given message in the given locale.""" + if (isinstance(message, Message)): + if user_locale: + message.locale = user_locale + return unicode(message) + else: + return message + + +class LocaleHandler(logging.Handler): + """Handler that can have a locale associated to translate Messages. + + A quick example of how to utilize the Message class above. + LocaleHandler takes a locale and a target logging.Handler object + to forward LogRecord objects to after translating the internal Message. + """ + + def __init__(self, locale, target): + """Initialize a LocaleHandler + + :param locale: locale to use for translating messages + :param target: logging.Handler object to forward + LogRecord objects to after translation + """ + logging.Handler.__init__(self) + self.locale = locale + self.target = target + + def emit(self, record): + if isinstance(record.msg, Message): + # set the locale and resolve to a string + record.msg.locale = self.locale + + self.target.emit(record) diff --git a/keystone/openstack/common/importutils.py b/keystone/openstack/common/importutils.py index 3bd277f4..7a303f93 100644 --- a/keystone/openstack/common/importutils.py +++ b/keystone/openstack/common/importutils.py @@ -24,7 +24,7 @@ import traceback def import_class(import_str): - """Returns a class from a string including module and class""" + """Returns a class from a string including module and class.""" mod_str, _sep, class_str = import_str.rpartition('.') try: __import__(mod_str) @@ -41,8 +41,9 @@ def import_object(import_str, *args, **kwargs): def import_object_ns(name_space, import_str, *args, **kwargs): - """ - Import a class and return an instance of it, first by trying + """Tries to import object from default namespace. + + Imports a class and return an instance of it, first by trying to find the class in a default namespace, then failing back to a full path if not found in the default namespace. """ diff --git a/keystone/openstack/common/jsonutils.py b/keystone/openstack/common/jsonutils.py index d73e4c26..ecea09bb 100644 --- a/keystone/openstack/common/jsonutils.py +++ b/keystone/openstack/common/jsonutils.py @@ -38,11 +38,24 @@ import functools import inspect import itertools import json +import types import xmlrpclib +import netaddr +import six + from keystone.openstack.common import timeutils +_nasty_type_tests = [inspect.ismodule, inspect.isclass, inspect.ismethod, + inspect.isfunction, inspect.isgeneratorfunction, + inspect.isgenerator, inspect.istraceback, inspect.isframe, + inspect.iscode, inspect.isbuiltin, inspect.isroutine, + inspect.isabstract] + +_simple_types = (types.NoneType, int, basestring, bool, float, long) + + def to_primitive(value, convert_instances=False, convert_datetime=True, level=0, max_depth=3): """Convert a complex object into primitives. @@ -58,19 +71,32 @@ def to_primitive(value, convert_instances=False, convert_datetime=True, Therefore, convert_instances=True is lossy ... be aware. """ - nasty = [inspect.ismodule, inspect.isclass, inspect.ismethod, - inspect.isfunction, inspect.isgeneratorfunction, - inspect.isgenerator, inspect.istraceback, inspect.isframe, - inspect.iscode, inspect.isbuiltin, inspect.isroutine, - inspect.isabstract] - for test in nasty: - if test(value): - return unicode(value) - - # value of itertools.count doesn't get caught by inspects - # above and results in infinite loop when list(value) is called. + # handle obvious types first - order of basic types determined by running + # full tests on nova project, resulting in the following counts: + # 572754 <type 'NoneType'> + # 460353 <type 'int'> + # 379632 <type 'unicode'> + # 274610 <type 'str'> + # 199918 <type 'dict'> + # 114200 <type 'datetime.datetime'> + # 51817 <type 'bool'> + # 26164 <type 'list'> + # 6491 <type 'float'> + # 283 <type 'tuple'> + # 19 <type 'long'> + if isinstance(value, _simple_types): + return value + + if isinstance(value, datetime.datetime): + if convert_datetime: + return timeutils.strtime(value) + else: + return value + + # value of itertools.count doesn't get caught by nasty_type_tests + # and results in infinite loop when list(value) is called. if type(value) == itertools.count: - return unicode(value) + return six.text_type(value) # FIXME(vish): Workaround for LP bug 852095. Without this workaround, # tests that raise an exception in a mocked method that @@ -91,17 +117,18 @@ def to_primitive(value, convert_instances=False, convert_datetime=True, convert_datetime=convert_datetime, level=level, max_depth=max_depth) + if isinstance(value, dict): + return dict((k, recursive(v)) for k, v in value.iteritems()) + elif isinstance(value, (list, tuple)): + return [recursive(lv) for lv in value] + # It's not clear why xmlrpclib created their own DateTime type, but # for our purposes, make it a datetime type which is explicitly # handled if isinstance(value, xmlrpclib.DateTime): value = datetime.datetime(*tuple(value.timetuple())[:6]) - if isinstance(value, (list, tuple)): - return [recursive(v) for v in value] - elif isinstance(value, dict): - return dict((k, recursive(v)) for k, v in value.iteritems()) - elif convert_datetime and isinstance(value, datetime.datetime): + if convert_datetime and isinstance(value, datetime.datetime): return timeutils.strtime(value) elif hasattr(value, 'iteritems'): return recursive(dict(value.iteritems()), level=level + 1) @@ -111,12 +138,16 @@ def to_primitive(value, convert_instances=False, convert_datetime=True, # Likely an instance of something. Watch for cycles. # Ignore class member vars. return recursive(value.__dict__, level=level + 1) + elif isinstance(value, netaddr.IPAddress): + return six.text_type(value) else: + if any(test(value) for test in _nasty_type_tests): + return six.text_type(value) return value except TypeError: # Class objects are tricky since they may define something like # __iter__ defined but it isn't callable as list(). - return unicode(value) + return six.text_type(value) def dumps(value, default=to_primitive, **kwargs): diff --git a/keystone/openstack/common/local.py b/keystone/openstack/common/local.py new file mode 100644 index 00000000..e82f17d0 --- /dev/null +++ b/keystone/openstack/common/local.py @@ -0,0 +1,47 @@ +# vim: tabstop=4 shiftwidth=4 softtabstop=4 + +# Copyright 2011 OpenStack Foundation. +# All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); you may +# not use this file except in compliance with the License. You may obtain +# a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT +# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the +# License for the specific language governing permissions and limitations +# under the License. + +"""Local storage of variables using weak references""" + +import threading +import weakref + + +class WeakLocal(threading.local): + def __getattribute__(self, attr): + rval = super(WeakLocal, self).__getattribute__(attr) + if rval: + # NOTE(mikal): this bit is confusing. What is stored is a weak + # reference, not the value itself. We therefore need to lookup + # the weak reference and return the inner value here. + rval = rval() + return rval + + def __setattr__(self, attr, value): + value = weakref.ref(value) + return super(WeakLocal, self).__setattr__(attr, value) + + +# NOTE(mikal): the name "store" should be deprecated in the future +store = WeakLocal() + +# A "weak" store uses weak references and allows an object to fall out of scope +# when it falls out of scope in the code that uses the thread local storage. A +# "strong" store will hold a reference to the object so that it never falls out +# of scope. +weak_store = WeakLocal() +strong_store = threading.local() diff --git a/keystone/openstack/common/log.py b/keystone/openstack/common/log.py new file mode 100644 index 00000000..5a43c326 --- /dev/null +++ b/keystone/openstack/common/log.py @@ -0,0 +1,559 @@ +# vim: tabstop=4 shiftwidth=4 softtabstop=4 + +# Copyright 2011 OpenStack Foundation. +# Copyright 2010 United States Government as represented by the +# Administrator of the National Aeronautics and Space Administration. +# All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); you may +# not use this file except in compliance with the License. You may obtain +# a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT +# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the +# License for the specific language governing permissions and limitations +# under the License. + +"""Openstack logging handler. + +This module adds to logging functionality by adding the option to specify +a context object when calling the various log methods. If the context object +is not specified, default formatting is used. Additionally, an instance uuid +may be passed as part of the log message, which is intended to make it easier +for admins to find messages related to a specific instance. + +It also allows setting of formatting information through conf. + +""" + +import inspect +import itertools +import logging +import logging.config +import logging.handlers +import os +import sys +import traceback + +from oslo.config import cfg +from six import moves + +from keystone.openstack.common.gettextutils import _ # noqa +from keystone.openstack.common import importutils +from keystone.openstack.common import jsonutils +from keystone.openstack.common import local + + +_DEFAULT_LOG_DATE_FORMAT = "%Y-%m-%d %H:%M:%S" + +common_cli_opts = [ + cfg.BoolOpt('debug', + short='d', + default=False, + help='Print debugging output (set logging level to ' + 'DEBUG instead of default WARNING level).'), + cfg.BoolOpt('verbose', + short='v', + default=False, + help='Print more verbose output (set logging level to ' + 'INFO instead of default WARNING level).'), +] + +logging_cli_opts = [ + cfg.StrOpt('log-config', + metavar='PATH', + help='If this option is specified, the logging configuration ' + 'file specified is used and overrides any other logging ' + 'options specified. Please see the Python logging module ' + 'documentation for details on logging configuration ' + 'files.'), + cfg.StrOpt('log-format', + default=None, + metavar='FORMAT', + help='DEPRECATED. ' + 'A logging.Formatter log message format string which may ' + 'use any of the available logging.LogRecord attributes. ' + 'This option is deprecated. Please use ' + 'logging_context_format_string and ' + 'logging_default_format_string instead.'), + cfg.StrOpt('log-date-format', + default=_DEFAULT_LOG_DATE_FORMAT, + metavar='DATE_FORMAT', + help='Format string for %%(asctime)s in log records. ' + 'Default: %(default)s'), + cfg.StrOpt('log-file', + metavar='PATH', + deprecated_name='logfile', + help='(Optional) Name of log file to output to. ' + 'If no default is set, logging will go to stdout.'), + cfg.StrOpt('log-dir', + deprecated_name='logdir', + help='(Optional) The base directory used for relative ' + '--log-file paths'), + cfg.BoolOpt('use-syslog', + default=False, + help='Use syslog for logging.'), + cfg.StrOpt('syslog-log-facility', + default='LOG_USER', + help='syslog facility to receive log lines') +] + +generic_log_opts = [ + cfg.BoolOpt('use_stderr', + default=True, + help='Log output to standard error') +] + +log_opts = [ + cfg.StrOpt('logging_context_format_string', + default='%(asctime)s.%(msecs)03d %(process)d %(levelname)s ' + '%(name)s [%(request_id)s %(user)s %(tenant)s] ' + '%(instance)s%(message)s', + help='format string to use for log messages with context'), + cfg.StrOpt('logging_default_format_string', + default='%(asctime)s.%(msecs)03d %(process)d %(levelname)s ' + '%(name)s [-] %(instance)s%(message)s', + help='format string to use for log messages without context'), + cfg.StrOpt('logging_debug_format_suffix', + default='%(funcName)s %(pathname)s:%(lineno)d', + help='data to append to log format when level is DEBUG'), + cfg.StrOpt('logging_exception_prefix', + default='%(asctime)s.%(msecs)03d %(process)d TRACE %(name)s ' + '%(instance)s', + help='prefix each line of exception output with this format'), + cfg.ListOpt('default_log_levels', + default=[ + 'amqplib=WARN', + 'sqlalchemy=WARN', + 'boto=WARN', + 'suds=INFO', + 'keystone=INFO', + 'eventlet.wsgi.server=WARN' + ], + help='list of logger=LEVEL pairs'), + cfg.BoolOpt('publish_errors', + default=False, + help='publish error events'), + cfg.BoolOpt('fatal_deprecations', + default=False, + help='make deprecations fatal'), + + # NOTE(mikal): there are two options here because sometimes we are handed + # a full instance (and could include more information), and other times we + # are just handed a UUID for the instance. + cfg.StrOpt('instance_format', + default='[instance: %(uuid)s] ', + help='If an instance is passed with the log message, format ' + 'it like this'), + cfg.StrOpt('instance_uuid_format', + default='[instance: %(uuid)s] ', + help='If an instance UUID is passed with the log message, ' + 'format it like this'), +] + +CONF = cfg.CONF +CONF.register_cli_opts(common_cli_opts) +CONF.register_cli_opts(logging_cli_opts) +CONF.register_opts(generic_log_opts) +CONF.register_opts(log_opts) + +# our new audit level +# NOTE(jkoelker) Since we synthesized an audit level, make the logging +# module aware of it so it acts like other levels. +logging.AUDIT = logging.INFO + 1 +logging.addLevelName(logging.AUDIT, 'AUDIT') + + +try: + NullHandler = logging.NullHandler +except AttributeError: # NOTE(jkoelker) NullHandler added in Python 2.7 + class NullHandler(logging.Handler): + def handle(self, record): + pass + + def emit(self, record): + pass + + def createLock(self): + self.lock = None + + +def _dictify_context(context): + if context is None: + return None + if not isinstance(context, dict) and getattr(context, 'to_dict', None): + context = context.to_dict() + return context + + +def _get_binary_name(): + return os.path.basename(inspect.stack()[-1][1]) + + +def _get_log_file_path(binary=None): + logfile = CONF.log_file + logdir = CONF.log_dir + + if logfile and not logdir: + return logfile + + if logfile and logdir: + return os.path.join(logdir, logfile) + + if logdir: + binary = binary or _get_binary_name() + return '%s.log' % (os.path.join(logdir, binary),) + + +class BaseLoggerAdapter(logging.LoggerAdapter): + + def audit(self, msg, *args, **kwargs): + self.log(logging.AUDIT, msg, *args, **kwargs) + + +class LazyAdapter(BaseLoggerAdapter): + def __init__(self, name='unknown', version='unknown'): + self._logger = None + self.extra = {} + self.name = name + self.version = version + + @property + def logger(self): + if not self._logger: + self._logger = getLogger(self.name, self.version) + return self._logger + + +class ContextAdapter(BaseLoggerAdapter): + warn = logging.LoggerAdapter.warning + + def __init__(self, logger, project_name, version_string): + self.logger = logger + self.project = project_name + self.version = version_string + + @property + def handlers(self): + return self.logger.handlers + + def deprecated(self, msg, *args, **kwargs): + stdmsg = _("Deprecated: %s") % msg + if CONF.fatal_deprecations: + self.critical(stdmsg, *args, **kwargs) + raise DeprecatedConfig(msg=stdmsg) + else: + self.warn(stdmsg, *args, **kwargs) + + def process(self, msg, kwargs): + if 'extra' not in kwargs: + kwargs['extra'] = {} + extra = kwargs['extra'] + + context = kwargs.pop('context', None) + if not context: + context = getattr(local.store, 'context', None) + if context: + extra.update(_dictify_context(context)) + + instance = kwargs.pop('instance', None) + instance_extra = '' + if instance: + instance_extra = CONF.instance_format % instance + else: + instance_uuid = kwargs.pop('instance_uuid', None) + if instance_uuid: + instance_extra = (CONF.instance_uuid_format + % {'uuid': instance_uuid}) + extra.update({'instance': instance_extra}) + + extra.update({"project": self.project}) + extra.update({"version": self.version}) + extra['extra'] = extra.copy() + return msg, kwargs + + +class JSONFormatter(logging.Formatter): + def __init__(self, fmt=None, datefmt=None): + # NOTE(jkoelker) we ignore the fmt argument, but its still there + # since logging.config.fileConfig passes it. + self.datefmt = datefmt + + def formatException(self, ei, strip_newlines=True): + lines = traceback.format_exception(*ei) + if strip_newlines: + lines = [itertools.ifilter( + lambda x: x, + line.rstrip().splitlines()) for line in lines] + lines = list(itertools.chain(*lines)) + return lines + + def format(self, record): + message = {'message': record.getMessage(), + 'asctime': self.formatTime(record, self.datefmt), + 'name': record.name, + 'msg': record.msg, + 'args': record.args, + 'levelname': record.levelname, + 'levelno': record.levelno, + 'pathname': record.pathname, + 'filename': record.filename, + 'module': record.module, + 'lineno': record.lineno, + 'funcname': record.funcName, + 'created': record.created, + 'msecs': record.msecs, + 'relative_created': record.relativeCreated, + 'thread': record.thread, + 'thread_name': record.threadName, + 'process_name': record.processName, + 'process': record.process, + 'traceback': None} + + if hasattr(record, 'extra'): + message['extra'] = record.extra + + if record.exc_info: + message['traceback'] = self.formatException(record.exc_info) + + return jsonutils.dumps(message) + + +def _create_logging_excepthook(product_name): + def logging_excepthook(type, value, tb): + extra = {} + if CONF.verbose: + extra['exc_info'] = (type, value, tb) + getLogger(product_name).critical(str(value), **extra) + return logging_excepthook + + +class LogConfigError(Exception): + + message = _('Error loading logging config %(log_config)s: %(err_msg)s') + + def __init__(self, log_config, err_msg): + self.log_config = log_config + self.err_msg = err_msg + + def __str__(self): + return self.message % dict(log_config=self.log_config, + err_msg=self.err_msg) + + +def _load_log_config(log_config): + try: + logging.config.fileConfig(log_config) + except moves.configparser.Error as exc: + raise LogConfigError(log_config, str(exc)) + + +def setup(product_name): + """Setup logging.""" + if CONF.log_config: + _load_log_config(CONF.log_config) + else: + _setup_logging_from_conf() + sys.excepthook = _create_logging_excepthook(product_name) + + +def set_defaults(logging_context_format_string): + cfg.set_defaults(log_opts, + logging_context_format_string= + logging_context_format_string) + + +def _find_facility_from_conf(): + facility_names = logging.handlers.SysLogHandler.facility_names + facility = getattr(logging.handlers.SysLogHandler, + CONF.syslog_log_facility, + None) + + if facility is None and CONF.syslog_log_facility in facility_names: + facility = facility_names.get(CONF.syslog_log_facility) + + if facility is None: + valid_facilities = facility_names.keys() + consts = ['LOG_AUTH', 'LOG_AUTHPRIV', 'LOG_CRON', 'LOG_DAEMON', + 'LOG_FTP', 'LOG_KERN', 'LOG_LPR', 'LOG_MAIL', 'LOG_NEWS', + 'LOG_AUTH', 'LOG_SYSLOG', 'LOG_USER', 'LOG_UUCP', + 'LOG_LOCAL0', 'LOG_LOCAL1', 'LOG_LOCAL2', 'LOG_LOCAL3', + 'LOG_LOCAL4', 'LOG_LOCAL5', 'LOG_LOCAL6', 'LOG_LOCAL7'] + valid_facilities.extend(consts) + raise TypeError(_('syslog facility must be one of: %s') % + ', '.join("'%s'" % fac + for fac in valid_facilities)) + + return facility + + +def _setup_logging_from_conf(): + log_root = getLogger(None).logger + for handler in log_root.handlers: + log_root.removeHandler(handler) + + if CONF.use_syslog: + facility = _find_facility_from_conf() + syslog = logging.handlers.SysLogHandler(address='/dev/log', + facility=facility) + log_root.addHandler(syslog) + + logpath = _get_log_file_path() + if logpath: + filelog = logging.handlers.WatchedFileHandler(logpath) + log_root.addHandler(filelog) + + if CONF.use_stderr: + streamlog = ColorHandler() + log_root.addHandler(streamlog) + + elif not CONF.log_file: + # pass sys.stdout as a positional argument + # python2.6 calls the argument strm, in 2.7 it's stream + streamlog = logging.StreamHandler(sys.stdout) + log_root.addHandler(streamlog) + + if CONF.publish_errors: + handler = importutils.import_object( + "keystone.openstack.common.log_handler.PublishErrorsHandler", + logging.ERROR) + log_root.addHandler(handler) + + datefmt = CONF.log_date_format + for handler in log_root.handlers: + # NOTE(alaski): CONF.log_format overrides everything currently. This + # should be deprecated in favor of context aware formatting. + if CONF.log_format: + handler.setFormatter(logging.Formatter(fmt=CONF.log_format, + datefmt=datefmt)) + log_root.info('Deprecated: log_format is now deprecated and will ' + 'be removed in the next release') + else: + handler.setFormatter(ContextFormatter(datefmt=datefmt)) + + if CONF.debug: + log_root.setLevel(logging.DEBUG) + elif CONF.verbose: + log_root.setLevel(logging.INFO) + else: + log_root.setLevel(logging.WARNING) + + for pair in CONF.default_log_levels: + mod, _sep, level_name = pair.partition('=') + level = logging.getLevelName(level_name) + logger = logging.getLogger(mod) + logger.setLevel(level) + +_loggers = {} + + +def getLogger(name='unknown', version='unknown'): + if name not in _loggers: + _loggers[name] = ContextAdapter(logging.getLogger(name), + name, + version) + return _loggers[name] + + +def getLazyLogger(name='unknown', version='unknown'): + """Returns lazy logger. + + Creates a pass-through logger that does not create the real logger + until it is really needed and delegates all calls to the real logger + once it is created. + """ + return LazyAdapter(name, version) + + +class WritableLogger(object): + """A thin wrapper that responds to `write` and logs.""" + + def __init__(self, logger, level=logging.INFO): + self.logger = logger + self.level = level + + def write(self, msg): + self.logger.log(self.level, msg) + + +class ContextFormatter(logging.Formatter): + """A context.RequestContext aware formatter configured through flags. + + The flags used to set format strings are: logging_context_format_string + and logging_default_format_string. You can also specify + logging_debug_format_suffix to append extra formatting if the log level is + debug. + + For information about what variables are available for the formatter see: + http://docs.python.org/library/logging.html#formatter + + """ + + def format(self, record): + """Uses contextstring if request_id is set, otherwise default.""" + # NOTE(sdague): default the fancier formating params + # to an empty string so we don't throw an exception if + # they get used + for key in ('instance', 'color'): + if key not in record.__dict__: + record.__dict__[key] = '' + + if record.__dict__.get('request_id', None): + self._fmt = CONF.logging_context_format_string + else: + self._fmt = CONF.logging_default_format_string + + if (record.levelno == logging.DEBUG and + CONF.logging_debug_format_suffix): + self._fmt += " " + CONF.logging_debug_format_suffix + + # Cache this on the record, Logger will respect our formated copy + if record.exc_info: + record.exc_text = self.formatException(record.exc_info, record) + return logging.Formatter.format(self, record) + + def formatException(self, exc_info, record=None): + """Format exception output with CONF.logging_exception_prefix.""" + if not record: + return logging.Formatter.formatException(self, exc_info) + + stringbuffer = moves.StringIO() + traceback.print_exception(exc_info[0], exc_info[1], exc_info[2], + None, stringbuffer) + lines = stringbuffer.getvalue().split('\n') + stringbuffer.close() + + if CONF.logging_exception_prefix.find('%(asctime)') != -1: + record.asctime = self.formatTime(record, self.datefmt) + + formatted_lines = [] + for line in lines: + pl = CONF.logging_exception_prefix % record.__dict__ + fl = '%s%s' % (pl, line) + formatted_lines.append(fl) + return '\n'.join(formatted_lines) + + +class ColorHandler(logging.StreamHandler): + LEVEL_COLORS = { + logging.DEBUG: '\033[00;32m', # GREEN + logging.INFO: '\033[00;36m', # CYAN + logging.AUDIT: '\033[01;36m', # BOLD CYAN + logging.WARN: '\033[01;33m', # BOLD YELLOW + logging.ERROR: '\033[01;31m', # BOLD RED + logging.CRITICAL: '\033[01;31m', # BOLD RED + } + + def format(self, record): + record.color = self.LEVEL_COLORS[record.levelno] + return logging.StreamHandler.format(self, record) + + +class DeprecatedConfig(Exception): + message = _("Fatal call to deprecated config: %(msg)s") + + def __init__(self, msg): + super(Exception, self).__init__(self.message % dict(msg=msg)) diff --git a/keystone/openstack/common/timeutils.py b/keystone/openstack/common/timeutils.py index 60943659..aa9f7080 100644 --- a/keystone/openstack/common/timeutils.py +++ b/keystone/openstack/common/timeutils.py @@ -23,6 +23,7 @@ import calendar import datetime import iso8601 +import six # ISO 8601 extended time format with microseconds @@ -32,7 +33,7 @@ PERFECT_TIME_FORMAT = _ISO8601_TIME_FORMAT_SUBSECOND def isotime(at=None, subsecond=False): - """Stringify time in ISO 8601 format""" + """Stringify time in ISO 8601 format.""" if not at: at = utcnow() st = at.strftime(_ISO8601_TIME_FORMAT @@ -44,13 +45,13 @@ def isotime(at=None, subsecond=False): def parse_isotime(timestr): - """Parse time from ISO 8601 format""" + """Parse time from ISO 8601 format.""" try: return iso8601.parse_date(timestr) except iso8601.ParseError as e: - raise ValueError(e.message) + raise ValueError(unicode(e)) except TypeError as e: - raise ValueError(e.message) + raise ValueError(unicode(e)) def strtime(at=None, fmt=PERFECT_TIME_FORMAT): @@ -66,7 +67,7 @@ def parse_strtime(timestr, fmt=PERFECT_TIME_FORMAT): def normalize_time(timestamp): - """Normalize time in arbitrary timezone to UTC naive object""" + """Normalize time in arbitrary timezone to UTC naive object.""" offset = timestamp.utcoffset() if offset is None: return timestamp @@ -75,14 +76,14 @@ def normalize_time(timestamp): def is_older_than(before, seconds): """Return True if before is older than seconds.""" - if isinstance(before, basestring): + if isinstance(before, six.string_types): before = parse_strtime(before).replace(tzinfo=None) return utcnow() - before > datetime.timedelta(seconds=seconds) def is_newer_than(after, seconds): """Return True if after is newer than seconds.""" - if isinstance(after, basestring): + if isinstance(after, six.string_types): after = parse_strtime(after).replace(tzinfo=None) return after - utcnow() > datetime.timedelta(seconds=seconds) @@ -103,7 +104,7 @@ def utcnow(): def iso8601_from_timestamp(timestamp): - """Returns a iso8601 formated date from timestamp""" + """Returns a iso8601 formated date from timestamp.""" return isotime(datetime.datetime.utcfromtimestamp(timestamp)) @@ -111,9 +112,9 @@ utcnow.override_time = None def set_time_override(override_time=datetime.datetime.utcnow()): - """ - Override utils.utcnow to return a constant time or a list thereof, - one at a time. + """Overrides utils.utcnow. + + Make it return a constant time or a list thereof, one at a time. """ utcnow.override_time = override_time @@ -141,7 +142,8 @@ def clear_time_override(): def marshall_now(now=None): """Make an rpc-safe datetime with microseconds. - Note: tzinfo is stripped, but not required for relative times.""" + Note: tzinfo is stripped, but not required for relative times. + """ if not now: now = utcnow() return dict(day=now.day, month=now.month, year=now.year, hour=now.hour, @@ -161,7 +163,8 @@ def unmarshall_time(tyme): def delta_seconds(before, after): - """ + """Return the difference between two timing objects. + Compute the difference in seconds between two date, time, or datetime objects (as a float, to microsecond resolution). """ @@ -174,8 +177,7 @@ def delta_seconds(before, after): def is_soon(dt, window): - """ - Determines if time is going to happen in the next window seconds. + """Determines if time is going to happen in the next window seconds. :params dt: the time :params window: minimum seconds to remain to consider the time not soon 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..91514493 100644 --- a/keystone/token/controllers.py +++ b/keystone/token/controllers.py @@ -4,7 +4,6 @@ from keystone.common import cms from keystone.common import controller from keystone.common import dependency from keystone.common import logging -from keystone.common import utils from keystone.common import wsgi from keystone import config from keystone import exception @@ -91,9 +90,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 = {} @@ -217,10 +214,9 @@ class Auth(controller.V2Controller): attribute='password', target='passwordCredentials') password = auth['passwordCredentials']['password'] - max_pw_size = utils.MAX_PASSWORD_LENGTH - if password and len(password) > max_pw_size: - raise exception.ValidationSizeError(attribute='password', - size=max_pw_size) + if password and len(password) > CONF.identity.max_password_length: + raise exception.ValidationSizeError( + attribute='password', size=CONF.identity.max_password_length) if ("userId" not in auth['passwordCredentials'] and "username" not in auth['passwordCredentials']): @@ -457,9 +453,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/requirements.txt b/requirements.txt index e54bb6a0..f7161d2c 100644 --- a/requirements.txt +++ b/requirements.txt @@ -5,6 +5,7 @@ pam>=0.1.4 WebOb>=1.0.8 eventlet greenlet +netaddr PasteDeploy paste routes diff --git a/test-requirements.txt b/test-requirements.txt index 4ecd2c62..48ac1280 100644 --- a/test-requirements.txt +++ b/test-requirements.txt @@ -38,9 +38,10 @@ httplib2 requests>=1.0.0 keyring -# swift_auth test dependencies -http://tarballs.openstack.org/swift/swift-master.tar.gz#egg=swift netifaces # For translations processing Babel + +# For documentation +oslo.sphinx diff --git a/tests/test_auth.py b/tests/test_auth.py index 1416269b..e8e6c7a9 100644 --- a/tests/test_auth.py +++ b/tests/test_auth.py @@ -179,7 +179,8 @@ class AuthBadRequests(AuthTest): def test_authenticate_password_too_large(self): """Verify sending large 'password' raises the right exception.""" - body_dict = _build_user_auth(username='FOO', password='0' * 8193) + length = CONF.identity.max_password_length + 1 + body_dict = _build_user_auth(username='FOO', password='0' * length) self.assertRaises(exception.ValidationSizeError, self.controller.authenticate, {}, body_dict) @@ -618,6 +619,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..75a94773 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', @@ -1455,6 +1453,18 @@ class IdentityTests(object): tenants = self.identity_api.get_projects_for_user(self.user_foo['id']) self.assertIn(self.tenant_baz['id'], tenants) + def test_add_user_to_project_missing_default_role(self): + self.assignment_api.delete_role(CONF.member_role_id) + self.assertRaises(exception.RoleNotFound, + self.assignment_api.get_role, + CONF.member_role_id) + self.identity_api.add_user_to_project(self.tenant_baz['id'], + self.user_foo['id']) + tenants = self.identity_api.get_projects_for_user(self.user_foo['id']) + self.assertIn(self.tenant_baz['id'], tenants) + default_role = self.assignment_api.get_role(CONF.member_role_id) + self.assertIsNotNone(default_role) + def test_add_user_to_project_404(self): self.assertRaises(exception.ProjectNotFound, self.identity_api.add_user_to_project, 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_s3_token_middleware.py b/tests/test_s3_token_middleware.py index c4d56dc9..ec31f2ac 100644 --- a/tests/test_s3_token_middleware.py +++ b/tests/test_s3_token_middleware.py @@ -14,32 +14,13 @@ # License for the specific language governing permissions and limitations # under the License. -import logging - -import stubout import unittest2 as unittest import webob -from swift.common import utils as swift_utils - from keystone.middleware import s3_token from keystone.openstack.common import jsonutils -def setUpModule(self): - self.stubs = stubout.StubOutForTesting() - # Stub out swift_utils.get_logger. get_logger tries to configure - # syslogging to '/dev/log', which will fail on OS X. - - def fake_get_logger(config, log_route=None): - return logging.getLogger(log_route) - self.stubs.Set(swift_utils, 'get_logger', fake_get_logger) - - -def tearDownModule(self): - self.stubs.UnsetAll() - - class FakeHTTPResponse(object): def __init__(self, status, body): self.status = status @@ -211,3 +192,42 @@ class S3TokenMiddlewareTestBad(S3TokenMiddlewareTestBase): s3_invalid_req = self.middleware.deny_request('InvalidURI') self.assertEqual(resp.body, s3_invalid_req.body) self.assertEqual(resp.status_int, s3_invalid_req.status_int) + + +class S3TokenMiddlewareTestUtil(unittest.TestCase): + def test_split_path_failed(self): + self.assertRaises(ValueError, s3_token.split_path, '') + self.assertRaises(ValueError, s3_token.split_path, '/') + self.assertRaises(ValueError, s3_token.split_path, '//') + self.assertRaises(ValueError, s3_token.split_path, '//a') + self.assertRaises(ValueError, s3_token.split_path, '/a/c') + self.assertRaises(ValueError, s3_token.split_path, '//c') + self.assertRaises(ValueError, s3_token.split_path, '/a/c/') + self.assertRaises(ValueError, s3_token.split_path, '/a//') + self.assertRaises(ValueError, s3_token.split_path, '/a', 2) + self.assertRaises(ValueError, s3_token.split_path, '/a', 2, 3) + self.assertRaises(ValueError, s3_token.split_path, '/a', 2, 3, True) + self.assertRaises(ValueError, s3_token.split_path, '/a/c/o/r', 3, 3) + self.assertRaises(ValueError, s3_token.split_path, '/a', 5, 4) + + def test_split_path_success(self): + self.assertEquals(s3_token.split_path('/a'), ['a']) + self.assertEquals(s3_token.split_path('/a/'), ['a']) + self.assertEquals(s3_token.split_path('/a/c', 2), ['a', 'c']) + self.assertEquals(s3_token.split_path('/a/c/o', 3), ['a', 'c', 'o']) + self.assertEquals(s3_token.split_path('/a/c/o/r', 3, 3, True), + ['a', 'c', 'o/r']) + self.assertEquals(s3_token.split_path('/a/c', 2, 3, True), + ['a', 'c', None]) + self.assertEquals(s3_token.split_path('/a/c/', 2), ['a', 'c']) + self.assertEquals(s3_token.split_path('/a/c/', 2, 3), ['a', 'c', '']) + + def test_split_path_invalid_path(self): + try: + s3_token.split_path('o\nn e', 2) + except ValueError, err: + self.assertEquals(str(err), 'Invalid path: o%0An%20e') + try: + s3_token.split_path('o\nn e', 2, 3, True) + except ValueError, err: + self.assertEquals(str(err), 'Invalid path: o%0An%20e') diff --git a/tests/test_sql_migrate_extensions.py b/tests/test_sql_migrate_extensions.py new file mode 100644 index 00000000..4a529559 --- /dev/null +++ b/tests/test_sql_migrate_extensions.py @@ -0,0 +1,47 @@ +# vim: tabstop=4 shiftwidth=4 softtabstop=4 + +# Copyright 2012 OpenStack LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); you may +# not use this file except in compliance with the License. You may obtain +# a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT +# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the +# License for the specific language governing permissions and limitations +# under the License. +""" +To run these tests against a live database: +1. Modify the file `tests/backend_sql.conf` to use the connection for your + live database +2. Set up a blank, live database. +3. run the tests using + ./run_tests.sh -N test_sql_upgrade + WARNING:: + Your database will be wiped. + Do not do this against a Database with valuable data as + all data will be lost. +""" + +from keystone.contrib import example + +import test_sql_upgrade + + +class SqlUpgradeExampleExtension(test_sql_upgrade.SqlMigrateBase): + def repo_package(self): + return example + + def test_upgrade(self): + self.assertTableDoesNotExist('example') + self.upgrade(1, repository=self.repo_path) + self.assertTableColumns('example', ['id', 'type', 'extra']) + + def test_downgrade(self): + self.upgrade(1, repository=self.repo_path) + self.assertTableColumns('example', ['id', 'type', 'extra']) + self.downgrade(0, repository=self.repo_path) + self.assertTableDoesNotExist('example') diff --git a/tests/test_sql_upgrade.py b/tests/test_sql_upgrade.py index e6d6162b..9540c4cd 100644 --- a/tests/test_sql_upgrade.py +++ b/tests/test_sql_upgrade.py @@ -45,8 +45,7 @@ CONF = config.CONF DEFAULT_DOMAIN_ID = CONF.identity.default_domain_id -class SqlUpgradeTests(test.TestCase): - +class SqlMigrateBase(test.TestCase): def initialize_sql(self): self.metadata = sqlalchemy.MetaData() self.metadata.bind = self.engine @@ -55,12 +54,15 @@ class SqlUpgradeTests(test.TestCase): test.testsdir('test_overrides.conf'), test.testsdir('backend_sql.conf')] - #override this to sepcify the complete list of configuration files + #override this to specify the complete list of configuration files def config_files(self): return self._config_file_list + def repo_package(self): + return None + def setUp(self): - super(SqlUpgradeTests, self).setUp() + super(SqlMigrateBase, self).setUp() self.config(self.config_files()) self.base = sql.Base() @@ -71,7 +73,7 @@ class SqlUpgradeTests(test.TestCase): autocommit=False) self.initialize_sql() - self.repo_path = migration._find_migrate_repo() + self.repo_path = migration.find_migrate_repo(self.repo_package()) self.schema = versioning_api.ControlledSchema.create( self.engine, self.repo_path, 0) @@ -85,7 +87,64 @@ class SqlUpgradeTests(test.TestCase): autoload=True) self.downgrade(0) table.drop(self.engine, checkfirst=True) - super(SqlUpgradeTests, self).tearDown() + super(SqlMigrateBase, self).tearDown() + + def select_table(self, name): + table = sqlalchemy.Table(name, + self.metadata, + autoload=True) + s = sqlalchemy.select([table]) + return s + + def assertTableExists(self, table_name): + try: + self.select_table(table_name) + except sqlalchemy.exc.NoSuchTableError: + raise AssertionError('Table "%s" does not exist' % table_name) + + def assertTableDoesNotExist(self, table_name): + """Asserts that a given table exists cannot be selected by name.""" + # Switch to a different metadata otherwise you might still + # detect renamed or dropped tables + try: + temp_metadata = sqlalchemy.MetaData() + temp_metadata.bind = self.engine + sqlalchemy.Table(table_name, temp_metadata, autoload=True) + except sqlalchemy.exc.NoSuchTableError: + pass + else: + raise AssertionError('Table "%s" already exists' % table_name) + + def upgrade(self, *args, **kwargs): + self._migrate(*args, **kwargs) + + def downgrade(self, *args, **kwargs): + self._migrate(*args, downgrade=True, **kwargs) + + def _migrate(self, version, repository=None, downgrade=False, + current_schema=None): + repository = repository or self.repo_path + err = '' + version = versioning_api._migrate_version(self.schema, + version, + not downgrade, + err) + if not current_schema: + current_schema = self.schema + changeset = current_schema.changeset(version) + for ver, change in changeset: + self.schema.runchange(ver, change, changeset.step) + self.assertEqual(self.schema.version, version) + + def assertTableColumns(self, table_name, expected_cols): + """Asserts that the table contains the expected set of columns.""" + self.initialize_sql() + table = self.select_table(table_name) + actual_cols = [col.name for col in table.columns] + self.assertEqual(expected_cols, actual_cols, '%s table' % table_name) + + +class SqlUpgradeTests(SqlMigrateBase): def test_blank_db_to_start(self): self.assertTableDoesNotExist('user') @@ -108,13 +167,6 @@ class SqlUpgradeTests(test.TestCase): self.downgrade(x - 1) self.upgrade(x) - def assertTableColumns(self, table_name, expected_cols): - """Asserts that the table contains the expected set of columns.""" - self.initialize_sql() - table = self.select_table(table_name) - actual_cols = [col.name for col in table.columns] - self.assertEqual(expected_cols, actual_cols, '%s table' % table_name) - def test_upgrade_add_initial_tables(self): self.upgrade(1) self.assertTableColumns("user", ["id", "name", "extra"]) @@ -594,6 +646,22 @@ class SqlUpgradeTests(test.TestCase): 'data': json.dumps({"roles": [role2['id']]})} session.execute(metadata_table.insert().values(role_grant)) + # Create another user to test the case where member_role_id is already + # assigned. + user2 = {'id': uuid.uuid4().hex, + 'name': uuid.uuid4().hex, + 'domain_id': domain['id'], + 'password': uuid.uuid4().hex, + 'enabled': True, + 'extra': json.dumps({})} + session.execute(user_table.insert().values(user2)) + + # Grant CONF.member_role_id to User2 + role_grant = {'user_id': user2['id'], + 'tenant_id': project['id'], + 'data': json.dumps({"roles": [CONF.member_role_id]})} + session.execute(metadata_table.insert().values(role_grant)) + session.commit() self.upgrade(17) @@ -635,6 +703,14 @@ class SqlUpgradeTests(test.TestCase): 'data': data} cmd = user_project_metadata_table.insert().values(role_grant) self.engine.execute(cmd) + + # Create another conflicting user-project for User2 + data = json.dumps({"roles": [role2['id']]}) + role_grant = {'user_id': user2['id'], + 'project_id': project['id'], + 'data': data} + cmd = user_project_metadata_table.insert().values(role_grant) + self.engine.execute(cmd) # End Scaffolding session.commit() @@ -1278,50 +1354,6 @@ class SqlUpgradeTests(test.TestCase): 'extra': json.dumps(extra)}) self.engine.execute(ins) - def select_table(self, name): - table = sqlalchemy.Table(name, - self.metadata, - autoload=True) - s = sqlalchemy.select([table]) - return s - - def assertTableExists(self, table_name): - try: - self.select_table(table_name) - except sqlalchemy.exc.NoSuchTableError: - raise AssertionError('Table "%s" does not exist' % table_name) - - def assertTableDoesNotExist(self, table_name): - """Asserts that a given table exists cannot be selected by name.""" - # Switch to a different metadata otherwise you might still - # detect renamed or dropped tables - try: - temp_metadata = sqlalchemy.MetaData() - temp_metadata.bind = self.engine - sqlalchemy.Table(table_name, temp_metadata, autoload=True) - except sqlalchemy.exc.NoSuchTableError: - pass - else: - raise AssertionError('Table "%s" already exists' % table_name) - - def upgrade(self, *args, **kwargs): - self._migrate(*args, **kwargs) - - def downgrade(self, *args, **kwargs): - self._migrate(*args, downgrade=True, **kwargs) - - def _migrate(self, version, repository=None, downgrade=False): - repository = repository or self.repo_path - err = '' - version = versioning_api._migrate_version(self.schema, - version, - not downgrade, - err) - changeset = self.schema.changeset(version) - for ver, change in changeset: - self.schema.runchange(ver, change, changeset.step) - self.assertEqual(self.schema.version, version) - def _mysql_check_all_tables_innodb(self): database = self.engine.url.database 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..362df922 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,42 +32,11 @@ 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 - def test_mask_password(self): - message = ("test = 'password': 'aaaaaa', 'param1': 'value1', " - "\"new_password\": 'bbbbbb'") - self.assertEqual(wsgi.mask_password(message, True), - u"test = 'password': '***', 'param1': 'value1', " - "\"new_password\": '***'") - - message = "test = 'password' : 'aaaaaa'" - self.assertEqual(wsgi.mask_password(message, False, '111'), - "test = 'password' : '111'") - - message = u"test = u'password' : u'aaaaaa'" - self.assertEqual(wsgi.mask_password(message, True), - u"test = u'password' : u'***'") - - message = 'test = "password" : "aaaaaaaaa"' - self.assertEqual(wsgi.mask_password(message), - 'test = "password" : "***"') - - message = 'test = "original_password" : "aaaaaaaaa"' - self.assertEqual(wsgi.mask_password(message), - 'test = "original_password" : "***"') - - message = 'test = "original_password" : ""' - self.assertEqual(wsgi.mask_password(message), - 'test = "original_password" : "***"') - - message = 'test = "param1" : "value"' - self.assertEqual(wsgi.mask_password(message), - 'test = "param1" : "value"') - class ApplicationTest(BaseWSGITest): def test_response_content_type(self): @@ -212,3 +179,36 @@ class MiddlewareTest(BaseWSGITest): app = factory(self.app) self.assertIn("testkey", app.kwargs) self.assertEquals("test", app.kwargs["testkey"]) + + +class WSGIFunctionTest(test.TestCase): + def test_mask_password(self): + message = ("test = 'password': 'aaaaaa', 'param1': 'value1', " + "\"new_password\": 'bbbbbb'") + self.assertEqual(wsgi.mask_password(message, True), + u"test = 'password': '***', 'param1': 'value1', " + "\"new_password\": '***'") + + message = "test = 'password' : 'aaaaaa'" + self.assertEqual(wsgi.mask_password(message, False, '111'), + "test = 'password' : '111'") + + message = u"test = u'password' : u'aaaaaa'" + self.assertEqual(wsgi.mask_password(message, True), + u"test = u'password' : u'***'") + + message = 'test = "password" : "aaaaaaaaa"' + self.assertEqual(wsgi.mask_password(message), + 'test = "password" : "***"') + + message = 'test = "original_password" : "aaaaaaaaa"' + self.assertEqual(wsgi.mask_password(message), + 'test = "original_password" : "***"') + + message = 'test = "original_password" : ""' + self.assertEqual(wsgi.mask_password(message), + 'test = "original_password" : "***"') + + message = 'test = "param1" : "value"' + self.assertEqual(wsgi.mask_password(message), + 'test = "param1" : "value"') |