diff --git a/doc/source/index.rst b/doc/source/index.rst index 111a1d315..de5feae56 100644 --- a/doc/source/index.rst +++ b/doc/source/index.rst @@ -87,9 +87,7 @@ In-depth documentation for Horizon and its APIs. ref/workflows ref/tables ref/tabs - ref/users ref/forms - ref/views ref/middleware ref/context_processors ref/decorators diff --git a/doc/source/quickstart.rst b/doc/source/quickstart.rst index c8c8644a4..6a1ef0963 100644 --- a/doc/source/quickstart.rst +++ b/doc/source/quickstart.rst @@ -15,7 +15,7 @@ the local host (127.0.0.1). If this is not the case change the ``openstack_dashboard/local`` folder, to the actual IP address of the OpenStack end-point Horizon should use. -To start the Horizon development server use the Django ``manage.py`` utility +To start the Horizon development server use the Django ``manage.py`` utility with the context of the virtual environment:: > tools/with_venv.sh ./manage.py runserver @@ -37,7 +37,7 @@ or to the IP and port the server is listening. The minimum required set of OpenStack services running includes the following: - * Nova (compute, api, scheduler, network, *and* volume services) + * Nova (compute, api, scheduler, and network) * Glance * Keystone @@ -162,7 +162,7 @@ process:: panels = ('overview', 'services', 'instances', 'flavors', 'images', 'tenants', 'users', 'quotas',) default_panel = 'overview' - roles = ('admin',) # Provides RBAC at the dashboard-level + permissions = ('openstack.roles.admin',) ... @@ -182,7 +182,7 @@ you register it in a ``panels.py`` file like so:: class Images(horizon.Panel): name = "Images" slug = 'images' - roles = ('admin', 'my_other_role',) # Fine-grained RBAC per-panel + permissions = ('openstack.roles.admin', 'my.other.permission',) # You could also register your panel with another application's dashboard diff --git a/doc/source/ref/forms.rst b/doc/source/ref/forms.rst index 9b30cb8e6..db2e63a93 100644 --- a/doc/source/ref/forms.rst +++ b/doc/source/ref/forms.rst @@ -2,16 +2,10 @@ Horizon Forms ============= -Horizon ships with a number of form classes, some generic and some specific. +Horizon ships with a number of generic form classes. Generic Forms ============= .. automodule:: horizon.forms :members: - -Auth Forms -========== - -.. automodule:: horizon.views.auth_forms - :members: diff --git a/doc/source/ref/users.rst b/doc/source/ref/users.rst deleted file mode 100644 index 857358d19..000000000 --- a/doc/source/ref/users.rst +++ /dev/null @@ -1,6 +0,0 @@ -================= -Horizon User APIs -================= - -.. automodule:: horizon.users - :members: diff --git a/doc/source/ref/views.rst b/doc/source/ref/views.rst deleted file mode 100644 index 970609cae..000000000 --- a/doc/source/ref/views.rst +++ /dev/null @@ -1,12 +0,0 @@ -============= -Horizon Views -============= - -Horizon ships with a number of pre-built views which are used within -Horizon and can also be reused in your applications. - -Auth -==== - -.. automodule:: horizon.views.auth - :members: diff --git a/doc/source/topics/tutorial.rst b/doc/source/topics/tutorial.rst index 1a6f48da8..056eaa3e3 100644 --- a/doc/source/topics/tutorial.rst +++ b/doc/source/topics/tutorial.rst @@ -86,8 +86,8 @@ defining nothing more than a name and a slug:: name = _("Visualizations") slug = "visualizations" -In practice, a dashboard class will usually contain more information, such -as a list of panels, which panel is the default, and any roles required to +In practice, a dashboard class will usually contain more information, such as a +list of panels, which panel is the default, and any permissions required to access this dashboard:: class VizDash(horizon.Dashboard): @@ -95,7 +95,7 @@ access this dashboard:: slug = "visualizations" panels = ('flocking',) default_panel = 'flocking' - roles = ('admin',) + permissions = ('openstack.roles.admin',) Building from that previous example we may also want to define a grouping of panels which share a common theme and have a sub-heading in the navigation:: @@ -111,7 +111,7 @@ panels which share a common theme and have a sub-heading in the navigation:: slug = "visualizations" panels = (InstanceVisualizations,) default_panel = 'flocking' - roles = ('admin',) + permissions = ('openstack.roles.admin',) The ``PanelGroup`` can be added to the dashboard class' ``panels`` list just like the slug of the panel can. diff --git a/horizon/api/glance.py b/horizon/api/glance.py index dc264d5ab..dbf2a8e5d 100644 --- a/horizon/api/glance.py +++ b/horizon/api/glance.py @@ -37,9 +37,9 @@ LOG = logging.getLogger(__name__) def glanceclient(request): o = urlparse.urlparse(url_for(request, 'image')) url = "://".join((o.scheme, o.netloc)) - LOG.debug('glanceclient connection created using token "%s" and url "%s"' % - (request.user.token, url)) - return glance_client.Client(endpoint=url, token=request.user.token) + LOG.debug('glanceclient connection created using token "%s" and url "%s"' + % (request.user.token.id, url)) + return glance_client.Client(endpoint=url, token=request.user.token.id) def image_delete(request, image_id): diff --git a/horizon/api/keystone.py b/horizon/api/keystone.py index bd4e9feaf..d138a3a88 100644 --- a/horizon/api/keystone.py +++ b/horizon/api/keystone.py @@ -29,6 +29,8 @@ from keystoneclient import service_catalog from keystoneclient.v2_0 import client as keystone_client from keystoneclient.v2_0 import tokens +from openstack_auth.backend import KEYSTONE_CLIENT_ATTR + from horizon.api import base from horizon import exceptions @@ -69,9 +71,7 @@ def _get_endpoint_url(request, endpoint_type, catalog=None): getattr(settings, 'OPENSTACK_KEYSTONE_URL')) -def keystoneclient(request, username=None, password=None, tenant_id=None, - token_id=None, endpoint=None, endpoint_type=None, - admin=False): +def keystoneclient(request, admin=False): """Returns a client connected to the Keystone backend. Several forms of authentication are supported: @@ -95,40 +95,27 @@ def keystoneclient(request, username=None, password=None, tenant_id=None, """ user = request.user if admin: - if not user.is_admin(): + if not user.is_superuser: raise exceptions.NotAuthorized endpoint_type = 'adminURL' else: - endpoint_type = endpoint_type or getattr(settings, - 'OPENSTACK_ENDPOINT_TYPE', - 'internalURL') + endpoint_type = getattr(settings, + 'OPENSTACK_ENDPOINT_TYPE', + 'internalURL') # Take care of client connection caching/fetching a new client. # Admin vs. non-admin clients are cached separately for token matching. - cache_attr = "_keystone_admin" if admin else "_keystone" - if hasattr(request, cache_attr) and (not token_id - or getattr(request, cache_attr).auth_token == token_id): - LOG.debug("Using cached client for token: %s" % user.token) + cache_attr = "_keystoneclient_admin" if admin else KEYSTONE_CLIENT_ATTR + if hasattr(request, cache_attr) and (not user.token.id + or getattr(request, cache_attr).auth_token == user.token.id): + LOG.debug("Using cached client for token: %s" % user.token.id) conn = getattr(request, cache_attr) else: - endpoint_lookup = _get_endpoint_url(request, endpoint_type) - auth_url = endpoint or endpoint_lookup - LOG.debug("Creating a new keystoneclient connection to %s." % auth_url) - conn = keystone_client.Client(username=username or user.username, - password=password, - tenant_id=tenant_id or user.tenant_id, - token=token_id or user.token, - auth_url=auth_url, + endpoint = _get_endpoint_url(request, endpoint_type) + LOG.debug("Creating a new keystoneclient connection to %s." % endpoint) + conn = keystone_client.Client(token=user.token.id, endpoint=endpoint) setattr(request, cache_attr, conn) - - # Fetch the correct endpoint if we've re-scoped the token. - catalog = getattr(conn, 'service_catalog', None) - if catalog and "serviceCatalog" in catalog.catalog.keys(): - catalog = catalog.catalog['serviceCatalog'] - endpoint = _get_endpoint_url(request, endpoint_type, catalog) - conn.management_url = endpoint - return conn @@ -161,35 +148,6 @@ def tenant_update(request, tenant_id, tenant_name, description, enabled): enabled) -def tenant_list_for_token(request, token, endpoint_type=None): - endpoint_type = endpoint_type or getattr(settings, - 'OPENSTACK_ENDPOINT_TYPE', - 'internalURL') - c = keystoneclient(request, - token_id=token, - endpoint=_get_endpoint_url(request, endpoint_type), - endpoint_type=endpoint_type) - return c.tenants.list() - - -def token_create(request, tenant, username, password): - ''' - Creates a token using the username and password provided. If tenant - is provided it will retrieve a scoped token and the service catalog for - the given tenant. Otherwise it will return an unscoped token and without - a service catalog. - ''' - c = keystoneclient(request, - username=username, - password=password, - tenant_id=tenant, - endpoint=_get_endpoint_url(request, 'internalURL')) - token = c.tokens.authenticate(username=username, - password=password, - tenant_id=tenant) - return token - - def token_create_scoped(request, tenant, token): ''' Creates a scoped token using the tenant id and unscoped token; retrieves @@ -197,15 +155,12 @@ def token_create_scoped(request, tenant, token): ''' if hasattr(request, '_keystone'): del request._keystone - c = keystoneclient(request, - tenant_id=tenant, - token_id=token, - endpoint=_get_endpoint_url(request, 'internalURL')) + c = keystoneclient(request) raw_token = c.tokens.authenticate(tenant_id=tenant, token=token, return_raw=True) c.service_catalog = service_catalog.ServiceCatalog(raw_token) - if request.user.is_admin(): + if request.user.is_superuser: c.management_url = c.service_catalog.url_for(service_type='identity', endpoint_type='adminURL') else: diff --git a/horizon/api/nova.py b/horizon/api/nova.py index 113e39e00..2bc3922e7 100644 --- a/horizon/api/nova.py +++ b/horizon/api/nova.py @@ -192,24 +192,24 @@ class SecurityGroupRule(APIResourceWrapper): def novaclient(request): LOG.debug('novaclient connection created using token "%s" and url "%s"' % - (request.user.token, url_for(request, 'compute'))) + (request.user.token.id, url_for(request, 'compute'))) c = nova_client.Client(request.user.username, - request.user.token, + request.user.token.id, project_id=request.user.tenant_id, auth_url=url_for(request, 'compute')) - c.client.auth_token = request.user.token + c.client.auth_token = request.user.token.id c.client.management_url = url_for(request, 'compute') return c def cinderclient(request): LOG.debug('cinderclient connection created using token "%s" and url "%s"' % - (request.user.token, url_for(request, 'volume'))) + (request.user.token.id, url_for(request, 'volume'))) c = nova_client.Client(request.user.username, - request.user.token, + request.user.token.id, project_id=request.user.tenant_id, auth_url=url_for(request, 'volume')) - c.client.auth_token = request.user.token + c.client.auth_token = request.user.token.id c.client.management_url = url_for(request, 'volume') return c diff --git a/horizon/api/swift.py b/horizon/api/swift.py index 6e9996fcd..baa052fcf 100644 --- a/horizon/api/swift.py +++ b/horizon/api/swift.py @@ -44,8 +44,8 @@ class SwiftAuthentication(object): def swift_api(request): endpoint = url_for(request, 'object-store') LOG.debug('Swift connection created using token "%s" and url "%s"' - % (request.session['token'], endpoint)) - auth = SwiftAuthentication(endpoint, request.session['token']) + % (request.user.token.id, endpoint)) + auth = SwiftAuthentication(endpoint, request.user.token.id) return cloudfiles.get_connection(auth=auth) diff --git a/horizon/base.py b/horizon/base.py index d04d44313..0ae4b6fb5 100644 --- a/horizon/base.py +++ b/horizon/base.py @@ -39,8 +39,7 @@ from django.utils.module_loading import module_has_submodule from django.utils.translation import ugettext as _ from horizon import loaders -from horizon.decorators import (require_auth, require_roles, - require_services, _current_component) +from horizon.decorators import require_auth, require_perms, _current_component LOG = logging.getLogger(__name__) @@ -173,7 +172,7 @@ class Panel(HorizonComponent): All Horizon dashboard panels should extend from this class. It provides the appropriate hooks for automatically constructing URLconfs, and - providing role-based access control. + providing permission-based access control. .. attribute:: name @@ -186,18 +185,13 @@ class Panel(HorizonComponent): A unique "short name" for the panel. The slug is used as a component of the URL path for the panel. Default: ``''``. - .. attribute:: roles + .. attribute:: permissions - A list of role names, all of which a user must possess in order + A list of permission names, all of which a user must possess in order to access any view associated with this panel. This attribute - is combined cumulatively with any roles required on the + is combined cumulatively with any permissions required on the ``Dashboard`` class with which it is registered. - .. attribute:: services - - A list of service names, all of which must be in the service catalog - in order for this panel to be available. - .. attribute:: urls Path to a URLconf of views for this panel using dotted Python @@ -249,10 +243,8 @@ class Panel(HorizonComponent): urlpatterns = self._get_default_urlpatterns() # Apply access controls to all views in the patterns - roles = getattr(self, 'roles', []) - services = getattr(self, 'services', []) - _decorate_urlconf(urlpatterns, require_roles, roles) - _decorate_urlconf(urlpatterns, require_services, services) + permissions = getattr(self, 'permissions', []) + _decorate_urlconf(urlpatterns, require_perms, permissions) _decorate_urlconf(urlpatterns, _current_component, panel=self) # Return the three arguments to django.conf.urls.defaults.include @@ -307,8 +299,8 @@ class Dashboard(Registry, HorizonComponent): All Horizon dashboards should extend from this base class. It provides the appropriate hooks for automatic discovery of :class:`~horizon.Panel` - modules, automatically constructing URLconfs, and providing role-based - access control. + modules, automatically constructing URLconfs, and providing + permission-based access control. .. attribute:: name @@ -360,18 +352,13 @@ class Dashboard(Registry, HorizonComponent): for this dashboard, that's the panel that is displayed. Default: ``None``. - .. attribute:: roles + .. attribute:: permissions - A list of role names, all of which a user must possess in order + A list of permission names, all of which a user must possess in order to access any panel registered with this dashboard. This attribute - is combined cumulatively with any roles required on individual + is combined cumulatively with any permissions required on individual :class:`~horizon.Panel` classes. - .. attribute:: services - - A list of service names, all of which must be in the service catalog - in order for this dashboard to be available. - .. attribute:: urls Optional path to a URLconf of additional views for this dashboard @@ -491,10 +478,8 @@ class Dashboard(Registry, HorizonComponent): if not self.public: _decorate_urlconf(urlpatterns, require_auth) # Apply access controls to all views in the patterns - roles = getattr(self, 'roles', []) - services = getattr(self, 'services', []) - _decorate_urlconf(urlpatterns, require_roles, roles) - _decorate_urlconf(urlpatterns, require_services, services) + permissions = getattr(self, 'permissions', []) + _decorate_urlconf(urlpatterns, require_perms, permissions) _decorate_urlconf(urlpatterns, _current_component, dashboard=self) # Return the three arguments to django.conf.urls.defaults.include diff --git a/horizon/dashboards/nova/containers/panel.py b/horizon/dashboards/nova/containers/panel.py index 583f2d05a..aa06f7270 100644 --- a/horizon/dashboards/nova/containers/panel.py +++ b/horizon/dashboards/nova/containers/panel.py @@ -27,6 +27,6 @@ from horizon.dashboards.nova import dashboard class Containers(horizon.Panel): name = _("Containers") slug = 'containers' - services = ('object-store',) + permissions = ('openstack.services.object-store',) dashboard.Nova.register(Containers) diff --git a/horizon/dashboards/nova/instances/workflows.py b/horizon/dashboards/nova/instances/workflows.py index 7f3fd8d8c..8f85aec41 100644 --- a/horizon/dashboards/nova/instances/workflows.py +++ b/horizon/dashboards/nova/instances/workflows.py @@ -45,7 +45,7 @@ class SelectProjectUserAction(workflows.Action): class Meta: name = _("Project & User") - roles = ("admin",) + permissions = ("openstack.roles.admin",) help_text = _("Admin users may optionally select the project and " "user for whom the instance should be created.") @@ -82,7 +82,7 @@ class VolumeOptionsAction(workflows.Action): class Meta: name = _("Volume Options") - services = ('volume',) + permissions = ('openstack.services.volume',) help_text_template = ("nova/instances/" "_launch_volumes_help.html") @@ -392,8 +392,8 @@ class LaunchInstance(workflows.Workflow): slug = "launch_instance" name = _("Launch Instance") finalize_button_name = _("Launch") - success_message = _('Launched %s named "%s".') - failure_message = _('Unable to launch %s named "%s".') + success_message = _('Launched %(count)s named "%(name)s".') + failure_message = _('Unable to launch %(count)s named "%(name)s".') success_url = "horizon:nova:instances:index" default_steps = (SelectProjectUser, SetInstanceDetails, @@ -405,9 +405,10 @@ class LaunchInstance(workflows.Workflow): name = self.context.get('name', 'unknown instance') count = self.context.get('count', 1) if int(count) > 1: - return message % (_("%s instances") % count, name) + return message % {"count": _("%s instances") % count, + "name": name} else: - return message % (_("instance"), name) + return message % {"count": _("instance"), "name": name} def handle(self, request, context): custom_script = context.get('customization_script', '') diff --git a/horizon/dashboards/nova/templates/nova/base.html b/horizon/dashboards/nova/templates/nova/base.html index 7b2daf8ea..52c04ff99 100644 --- a/horizon/dashboards/nova/templates/nova/base.html +++ b/horizon/dashboards/nova/templates/nova/base.html @@ -2,7 +2,7 @@ {% load i18n %} {% block content %} -{% if request.user.is_admin %} +{% if request.user.is_superuser %}

diff --git a/horizon/dashboards/nova/volumes/forms.py b/horizon/dashboards/nova/volumes/forms.py index 7708af854..9c027c472 100644 --- a/horizon/dashboards/nova/volumes/forms.py +++ b/horizon/dashboards/nova/volumes/forms.py @@ -37,11 +37,12 @@ class CreateForm(forms.SelfHandlingForm): data['size'] = int(data['size']) if usages['gigabytes']['available'] < data['size']: - error_message = _('A volume of %iGB cannot be created as you' - ' only have %iGB of your quota available.' - % (data['size'], - usages['gigabytes']['available'],)) - raise ValidationError(error_message) + error_message = _('A volume of %(req)iGB cannot be created as ' + 'you only have %(avail)iGB of your quota ' + 'available.') + params = {'req': data['size'], + 'avail': usages['gigabytes']['available']} + raise ValidationError(error_message % params) elif usages['volumes']['available'] <= 0: error_message = _('You are already using all of your available' ' volumes.') diff --git a/horizon/dashboards/nova/volumes/panel.py b/horizon/dashboards/nova/volumes/panel.py index 869c01eca..1cc890e6d 100644 --- a/horizon/dashboards/nova/volumes/panel.py +++ b/horizon/dashboards/nova/volumes/panel.py @@ -23,7 +23,7 @@ from horizon.dashboards.nova import dashboard class Volumes(horizon.Panel): name = _("Volumes") slug = 'volumes' - services = ('volume',) + permissions = ('openstack.services.volume',) dashboard.Nova.register(Volumes) diff --git a/horizon/dashboards/settings/ec2/forms.py b/horizon/dashboards/settings/ec2/forms.py index 20051a1df..377dc633e 100644 --- a/horizon/dashboards/settings/ec2/forms.py +++ b/horizon/dashboards/settings/ec2/forms.py @@ -72,7 +72,7 @@ class DownloadX509Credentials(forms.SelfHandlingForm): # the token to tenant before making the call. api.keystone.token_create_scoped(request, data.get('tenant'), - request.user.token) + request.user.token.id) credentials = api.nova.get_x509_credentials(request) cacert = api.nova.get_x509_root_certificate(request) keys = find_or_create_access_keys(request, data.get('tenant')) diff --git a/horizon/dashboards/settings/project/templates/project/_openrc.html b/horizon/dashboards/settings/project/templates/project/_openrc.html index 9e1078dc5..b8deaa9c3 100644 --- a/horizon/dashboards/settings/project/templates/project/_openrc.html +++ b/horizon/dashboards/settings/project/templates/project/_openrc.html @@ -27,6 +27,6 @@ {% endblock %} {% block modal-footer %} - + {% if hide %}{% trans "Cancel" %}{% endif %} {% endblock %} diff --git a/horizon/dashboards/syspanel/dashboard.py b/horizon/dashboards/syspanel/dashboard.py index ee40d68dd..bc2f10c9e 100644 --- a/horizon/dashboards/syspanel/dashboard.py +++ b/horizon/dashboards/syspanel/dashboard.py @@ -31,7 +31,7 @@ class Syspanel(horizon.Dashboard): slug = "syspanel" panels = (SystemPanels,) default_panel = 'overview' - roles = ('admin',) + permissions = ('openstack.roles.admin',) horizon.register(Syspanel) diff --git a/horizon/dashboards/syspanel/flavors/tests.py b/horizon/dashboards/syspanel/flavors/tests.py index d5c8a23dd..a2627019d 100644 --- a/horizon/dashboards/syspanel/flavors/tests.py +++ b/horizon/dashboards/syspanel/flavors/tests.py @@ -6,15 +6,8 @@ from horizon import api from horizon import test -class FlavorsTests(test.TestCase): +class FlavorsTests(test.BaseAdminViewTests): def test_create_new_flavor_when_none_exist(self): - # Set admin role - self.setActiveUser(token=self.token.id, - username=self.user.name, - tenant_id=self.tenant.id, - service_catalog=self.request.user.service_catalog, - roles=[{'name': 'admin'}]) - self.mox.StubOutWithMock(api, 'flavor_list') # no pre-existing flavors api.flavor_list(IsA(http.HttpRequest)).AndReturn([]) diff --git a/horizon/dashboards/syspanel/instances/panel.py b/horizon/dashboards/syspanel/instances/panel.py index 4bc0b0f5e..a9f6cce9b 100644 --- a/horizon/dashboards/syspanel/instances/panel.py +++ b/horizon/dashboards/syspanel/instances/panel.py @@ -27,7 +27,7 @@ from horizon.dashboards.syspanel import dashboard class Instances(horizon.Panel): name = _("Instances") slug = 'instances' - roles = ('admin',) + permissions = ('openstack.roles.admin',) dashboard.Syspanel.register(Instances) diff --git a/horizon/dashboards/syspanel/overview/panel.py b/horizon/dashboards/syspanel/overview/panel.py index 1fe3dadb4..027841278 100644 --- a/horizon/dashboards/syspanel/overview/panel.py +++ b/horizon/dashboards/syspanel/overview/panel.py @@ -27,7 +27,7 @@ from horizon.dashboards.syspanel import dashboard class Overview(horizon.Panel): name = _("Overview") slug = 'overview' - roles = ('admin',) + permissions = ('openstack.roles.admin',) dashboard.Syspanel.register(Overview) diff --git a/horizon/dashboards/syspanel/volumes/panel.py b/horizon/dashboards/syspanel/volumes/panel.py index 7117a16e4..4c3159398 100644 --- a/horizon/dashboards/syspanel/volumes/panel.py +++ b/horizon/dashboards/syspanel/volumes/panel.py @@ -8,7 +8,7 @@ from horizon.dashboards.syspanel import dashboard class Volumes(horizon.Panel): name = _("Volumes") slug = "volumes" - services = ('volume',) + permissions = ('openstack.services.volume',) dashboard.Syspanel.register(Volumes) diff --git a/horizon/decorators.py b/horizon/decorators.py index fd71b80a3..cfbc3549b 100644 --- a/horizon/decorators.py +++ b/horizon/decorators.py @@ -26,7 +26,7 @@ import functools from django.utils.decorators import available_attrs from django.utils.translation import ugettext as _ -from horizon.exceptions import NotAuthorized, NotFound, NotAuthenticated +from horizon.exceptions import NotAuthorized, NotAuthenticated def _current_component(view_func, dashboard=None, panel=None): @@ -57,85 +57,38 @@ def require_auth(view_func): return dec -def require_roles(view_func, required): - """ Enforces role-based access controls. +def require_perms(view_func, required): + """ Enforces permission-based access controls. - :param list required: A tuple of role names, all of which the request user - must possess in order access the decorated view. + :param list required: A tuple of permission names, all of which the request + user must possess in order access the decorated view. Example usage:: - from horizon.decorators import require_roles + from horizon.decorators import require_perms - @require_roles(['admin', 'member']) + @require_perms(['foo.admin', 'foo.member']) def my_view(request): ... Raises a :exc:`~horizon.exceptions.NotAuthorized` exception if the requirements are not met. """ - # We only need to check each role once for a view, so we'll use a set - current_roles = getattr(view_func, '_required_roles', set([])) - view_func._required_roles = current_roles | set(required) + # We only need to check each permission once for a view, so we'll use a set + current_perms = getattr(view_func, '_required_perms', set([])) + view_func._required_perms = current_perms | set(required) @functools.wraps(view_func, assigned=available_attrs(view_func)) def dec(request, *args, **kwargs): if request.user.is_authenticated(): - roles = set([role['name'].lower() for role in request.user.roles]) - # set operator <= tests that all members of set 1 are in set 2 - if view_func._required_roles <= set(roles): + if request.user.has_perms(view_func._required_perms): return view_func(request, *args, **kwargs) raise NotAuthorized(_("You are not authorized to access %s") % request.path) - # If we don't have any roles, just return the original view. + # If we don't have any permissions, just return the original view. if required: return dec else: return view_func - - -def require_services(view_func, required): - """ Enforces service-based access controls. - - :param list required: A tuple of service type names, all of which the - must be present in the service catalog in order - access the decorated view. - - Example usage:: - - from horizon.decorators import require_services - - - @require_services(['object-store']) - def my_swift_view(request): - ... - - Raises a :exc:`~horizon.exceptions.NotFound` exception if the - requirements are not met. - """ - # We only need to check each service once for a view, so we'll use a set - current_services = getattr(view_func, '_required_services', set([])) - view_func._required_services = current_services | set(required) - - @functools.wraps(view_func, assigned=available_attrs(view_func)) - def dec(request, *args, **kwargs): - if request.user.is_authenticated(): - services = set([service['type'] for service in - request.user.service_catalog]) - # set operator <= tests that all members of set 1 are in set 2 - if view_func._required_services <= set(services): - return view_func(request, *args, **kwargs) - raise NotFound(_("The services for this view are not available.")) - - # If we don't have any services, just return the original view. - if required: - return dec - else: - return view_func - - -def enforce_admin_access(view_func): - """ Marks a view as requiring the ``"admin"`` role for access. """ - return require_roles(view_func, ('admin',)) diff --git a/horizon/exceptions.py b/horizon/exceptions.py index 707b4fe62..35e3fbb2f 100644 --- a/horizon/exceptions.py +++ b/horizon/exceptions.py @@ -116,8 +116,8 @@ class Http302(HorizonException): class NotAuthorized(HorizonException): """ Raised whenever a user attempts to access a resource which they do not - have role-based access to (such as when failing the - :func:`~horizon.decorators.require_roles` decorator). + have permission-based access to (such as when failing the + :func:`~horizon.decorators.require_perms` decorator). The included :class:`~horizon.middleware.HorizonMiddleware` catches ``NotAuthorized`` and handles it gracefully by displaying an error diff --git a/horizon/locale/en/LC_MESSAGES/django.po b/horizon/locale/en/LC_MESSAGES/django.po index 3661873b4..5a5d69efd 100644 --- a/horizon/locale/en/LC_MESSAGES/django.po +++ b/horizon/locale/en/LC_MESSAGES/django.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2012-05-29 11:46-0700\n" +"POT-Creation-Date: 2012-07-09 02:29+0000\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -17,7 +17,7 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -#: base.py:449 +#: base.py:437 msgid "Other" msgstr "" @@ -25,24 +25,16 @@ msgstr "" msgid "Please log in to continue." msgstr "" -#: decorators.py:89 +#: decorators.py:87 #, python-format msgid "You are not authorized to access %s" msgstr "" -#: decorators.py:130 -msgid "The services for this view are not available." -msgstr "" - -#: exceptions.py:239 +#: exceptions.py:299 msgid "Unauthorized. Please try logging in again." msgstr "" -#: users.py:63 -msgid "Your session has expired. Please log in again." -msgstr "" - -#: api/keystone.py:53 +#: api/keystone.py:55 #, python-format msgid "%(type)s (%(backend)s backend)" msgstr "" @@ -57,7 +49,11 @@ msgstr "" msgid "ALLOW %(from)s:%(to)s from %(cidr)s" msgstr "" -#: api/swift.py:114 +#: api/nova.py:502 +msgid "Unknown instance" +msgstr "" + +#: api/swift.py:155 msgid "Unicode is not currently supported for object copy." msgstr "" @@ -65,191 +61,199 @@ msgstr "" msgid "Manage Compute" msgstr "" -#: dashboards/nova/dashboard.py:33 +#: dashboards/nova/dashboard.py:34 msgid "Object Store" msgstr "" -#: dashboards/nova/dashboard.py:38 -#: dashboards/nova/instances_and_volumes/instances/workflows.py:33 -#: dashboards/syspanel/projects/tables.py:51 -#: templates/horizon/common/_sidebar.html:11 tests/workflows_tests.py:39 +#: dashboards/nova/dashboard.py:39 dashboards/nova/instances/workflows.py:32 +#: dashboards/syspanel/projects/tables.py:52 tests/workflows_tests.py:39 msgid "Project" msgstr "" #: dashboards/nova/access_and_security/panel.py:25 -#: dashboards/nova/instances_and_volumes/instances/workflows.py:311 +#: dashboards/nova/instances/workflows.py:328 msgid "Access & Security" msgstr "" -#: dashboards/nova/access_and_security/views.py:52 +#: dashboards/nova/access_and_security/views.py:51 msgid "Unable to retrieve keypair list." msgstr "" -#: dashboards/nova/access_and_security/views.py:62 -#, python-format -msgid "Error fetching security_groups: %s" +#: dashboards/nova/access_and_security/views.py:60 +#: dashboards/nova/access_and_security/security_groups/views.py:64 +msgid "Unable to retrieve security groups." msgstr "" -#: dashboards/nova/access_and_security/views.py:72 -#, python-format -msgid "Error fetching floating ips: %s" +#: dashboards/nova/access_and_security/views.py:69 +#: dashboards/nova/access_and_security/floating_ips/workflows.py:44 +msgid "Unable to retrieve floating IP addresses." msgstr "" -#: dashboards/nova/access_and_security/views.py:79 -#: dashboards/nova/access_and_security/floating_ips/views.py:60 +#: dashboards/nova/access_and_security/views.py:76 +#: dashboards/nova/access_and_security/floating_ips/workflows.py:60 #: dashboards/syspanel/instances/views.py:58 msgid "Unable to retrieve instance list." msgstr "" #: dashboards/nova/access_and_security/floating_ips/forms.py:38 -#: dashboards/nova/access_and_security/floating_ips/tables.py:47 -#: dashboards/nova/templates/nova/access_and_security/floating_ips/_allocate.html:22 -msgid "Floating IP" -msgstr "" - -#: dashboards/nova/access_and_security/floating_ips/forms.py:41 -#: dashboards/nova/images_and_snapshots/snapshots/forms.py:38 -msgid "Instance ID" -msgstr "" - -#: dashboards/nova/access_and_security/floating_ips/forms.py:47 -#: dashboards/nova/instances_and_volumes/volumes/forms.py:73 -msgid "Select an instance" -msgstr "" - -#: dashboards/nova/access_and_security/floating_ips/forms.py:49 -#: dashboards/nova/instances_and_volumes/volumes/forms.py:75 -msgid "No instances available" -msgstr "" - -#: dashboards/nova/access_and_security/floating_ips/forms.py:52 -#: dashboards/nova/access_and_security/floating_ips/tables.py:112 -#: dashboards/nova/instances_and_volumes/instances/tables.py:58 -#: dashboards/nova/instances_and_volumes/instances/tables.py:75 -#: dashboards/nova/instances_and_volumes/instances/tables.py:90 -#: dashboards/nova/instances_and_volumes/instances/tables.py:118 -#: dashboards/nova/instances_and_volumes/volumes/tables.py:158 -#: dashboards/nova/templates/nova/instances_and_volumes/volumes/_detail_overview.html:41 -#: tests/workflows_tests.py:58 -msgid "Instance" -msgstr "" - -#: dashboards/nova/access_and_security/floating_ips/forms.py:63 -#, python-format -msgid "Successfully associated Floating IP %(ip)s with Instance: %(inst)s" -msgstr "" - -#: dashboards/nova/access_and_security/floating_ips/forms.py:69 -#: dashboards/nova/access_and_security/floating_ips/views.py:51 -msgid "Unable to associate floating IP." -msgstr "" - -#: dashboards/nova/access_and_security/floating_ips/forms.py:75 msgid "Pool" msgstr "" -#: dashboards/nova/access_and_security/floating_ips/forms.py:90 +#: dashboards/nova/access_and_security/floating_ips/forms.py:53 #, python-format msgid "" "Successfully allocated Floating IP \"%(ip)s\" to project \"%(project)s\"" msgstr "" -#: dashboards/nova/access_and_security/floating_ips/forms.py:94 +#: dashboards/nova/access_and_security/floating_ips/forms.py:57 msgid "Unable to allocate Floating IP." msgstr "" -#: dashboards/nova/access_and_security/floating_ips/tables.py:35 +#: dashboards/nova/access_and_security/floating_ips/tables.py:36 msgid "Allocate IP To Project" msgstr "" -#: dashboards/nova/access_and_security/floating_ips/tables.py:45 +#: dashboards/nova/access_and_security/floating_ips/tables.py:46 msgid "Release" msgstr "" -#: dashboards/nova/access_and_security/floating_ips/tables.py:46 +#: dashboards/nova/access_and_security/floating_ips/tables.py:47 msgid "Released" msgstr "" #: dashboards/nova/access_and_security/floating_ips/tables.py:48 -#: dashboards/nova/access_and_security/floating_ips/tables.py:126 +#: dashboards/nova/access_and_security/templates/access_and_security/floating_ips/_allocate.html:22 +msgid "Floating IP" +msgstr "" + +#: dashboards/nova/access_and_security/floating_ips/tables.py:49 +#: dashboards/nova/access_and_security/floating_ips/tables.py:132 #: dashboards/syspanel/projects/forms.py:119 msgid "Floating IPs" msgstr "" -#: dashboards/nova/access_and_security/floating_ips/tables.py:57 -#: dashboards/nova/templates/nova/access_and_security/floating_ips/_associate.html:22 +#: dashboards/nova/access_and_security/floating_ips/tables.py:58 +#: dashboards/nova/access_and_security/templates/access_and_security/floating_ips/associate.html:3 +#: dashboards/nova/access_and_security/templates/access_and_security/floating_ips/associate.html:6 +#: dashboards/nova/instances/tables.py:202 msgid "Associate Floating IP" msgstr "" -#: dashboards/nova/access_and_security/floating_ips/tables.py:69 +#: dashboards/nova/access_and_security/floating_ips/tables.py:75 msgid "Disassociate Floating IP" msgstr "" -#: dashboards/nova/access_and_security/floating_ips/tables.py:83 +#: dashboards/nova/access_and_security/floating_ips/tables.py:89 #, python-format msgid "Successfully disassociated Floating IP: %s" msgstr "" -#: dashboards/nova/access_and_security/floating_ips/tables.py:87 +#: dashboards/nova/access_and_security/floating_ips/tables.py:93 msgid "Unable to disassociate floating IP." msgstr "" -#: dashboards/nova/access_and_security/floating_ips/tables.py:92 +#: dashboards/nova/access_and_security/floating_ips/tables.py:98 #, python-format msgid "%(INSTANCE_NAME)s (%(INSTANCE_ID)s)" msgstr "" -#: dashboards/nova/access_and_security/floating_ips/tables.py:97 -#: dashboards/nova/instances_and_volumes/instances/tables.py:218 -msgid "Not available" -msgstr "" - -#: dashboards/nova/access_and_security/floating_ips/tables.py:109 -#: dashboards/nova/instances_and_volumes/instances/tables.py:242 +#: dashboards/nova/access_and_security/floating_ips/tables.py:115 +#: dashboards/nova/access_and_security/floating_ips/workflows.py:28 +#: dashboards/nova/access_and_security/floating_ips/workflows.py:34 +#: dashboards/nova/instances/tables.py:270 #: dashboards/syspanel/instances/tables.py:74 msgid "IP Address" msgstr "" -#: dashboards/nova/access_and_security/floating_ips/tables.py:115 +#: dashboards/nova/access_and_security/floating_ips/tables.py:118 +#: dashboards/nova/access_and_security/floating_ips/workflows.py:31 +#: dashboards/nova/instances/tables.py:62 +#: dashboards/nova/instances/tables.py:79 +#: dashboards/nova/instances/tables.py:94 +#: dashboards/nova/instances/tables.py:122 +#: dashboards/nova/volumes/tables.py:195 tests/workflows_tests.py:58 +msgid "Instance" +msgstr "" + +#: dashboards/nova/access_and_security/floating_ips/tables.py:121 msgid "Floating IP Pool" msgstr "" -#: dashboards/nova/access_and_security/floating_ips/views.py:100 +#: dashboards/nova/access_and_security/floating_ips/views.py:60 msgid "No floating IP pools available." msgstr "" -#: dashboards/nova/access_and_security/keypairs/forms.py:38 -#: dashboards/nova/access_and_security/keypairs/forms.py:57 +#: dashboards/nova/access_and_security/floating_ips/workflows.py:35 +msgid "Select the IP address you wish to associate with the selected instance." +msgstr "" + +#: dashboards/nova/access_and_security/floating_ips/workflows.py:48 +msgid "Select an IP address" +msgstr "" + +#: dashboards/nova/access_and_security/floating_ips/workflows.py:50 +msgid "No IP addresses available" +msgstr "" + +#: dashboards/nova/access_and_security/floating_ips/workflows.py:77 +#: dashboards/nova/volumes/forms.py:92 +msgid "Select an instance" +msgstr "" + +#: dashboards/nova/access_and_security/floating_ips/workflows.py:79 +#: dashboards/nova/volumes/forms.py:94 +msgid "No instances available" +msgstr "" + +#: dashboards/nova/access_and_security/floating_ips/workflows.py:98 +msgid "Manage Floating IP Associations" +msgstr "" + +#: dashboards/nova/access_and_security/floating_ips/workflows.py:99 +msgid "Associate" +msgstr "" + +#: dashboards/nova/access_and_security/floating_ips/workflows.py:100 +#, python-format +msgid "IP address %s associated." +msgstr "" + +#: dashboards/nova/access_and_security/floating_ips/workflows.py:101 +#, python-format +msgid "Unable to associate IP address %s." +msgstr "" + +#: dashboards/nova/access_and_security/keypairs/forms.py:40 +#: dashboards/nova/access_and_security/keypairs/forms.py:58 #: dashboards/nova/access_and_security/keypairs/tables.py:51 msgid "Keypair Name" msgstr "" -#: dashboards/nova/access_and_security/keypairs/forms.py:40 +#: dashboards/nova/access_and_security/keypairs/forms.py:42 msgid "" "Keypair names may only contain letters, numbers, underscores and hyphens." msgstr "" -#: dashboards/nova/access_and_security/keypairs/forms.py:52 -#, python-format -msgid "Error Creating Keypair: %s" +#: dashboards/nova/access_and_security/keypairs/forms.py:53 +msgid "Unable to create keypair." msgstr "" -#: dashboards/nova/access_and_security/keypairs/forms.py:59 +#: dashboards/nova/access_and_security/keypairs/forms.py:60 msgid "Public Key" msgstr "" -#: dashboards/nova/access_and_security/keypairs/forms.py:65 +#: dashboards/nova/access_and_security/keypairs/forms.py:68 #, python-format msgid "Successfully imported public key: %s" msgstr "" -#: dashboards/nova/access_and_security/keypairs/forms.py:72 -#, python-format -msgid "Error Importing Keypair: %s" +#: dashboards/nova/access_and_security/keypairs/forms.py:74 +msgid "Unable to import keypair." msgstr "" #: dashboards/nova/access_and_security/keypairs/tables.py:29 -#: dashboards/nova/instances_and_volumes/instances/workflows.py:299 +#: dashboards/nova/instances/tables.py:272 +#: dashboards/nova/instances/workflows.py:316 msgid "Keypair" msgstr "" @@ -259,16 +263,16 @@ msgid "Keypairs" msgstr "" #: dashboards/nova/access_and_security/keypairs/tables.py:38 -#: dashboards/nova/templates/nova/access_and_security/keypairs/_import.html:7 -#: dashboards/nova/templates/nova/access_and_security/keypairs/_import.html:23 -#: dashboards/nova/templates/nova/access_and_security/keypairs/import.html:6 +#: dashboards/nova/access_and_security/templates/access_and_security/keypairs/_import.html:7 +#: dashboards/nova/access_and_security/templates/access_and_security/keypairs/_import.html:23 +#: dashboards/nova/access_and_security/templates/access_and_security/keypairs/import.html:6 msgid "Import Keypair" msgstr "" #: dashboards/nova/access_and_security/keypairs/tables.py:45 -#: dashboards/nova/templates/nova/access_and_security/keypairs/_create.html:7 -#: dashboards/nova/templates/nova/access_and_security/keypairs/_create.html:23 -#: dashboards/nova/templates/nova/access_and_security/keypairs/create.html:6 +#: dashboards/nova/access_and_security/templates/access_and_security/keypairs/_create.html:7 +#: dashboards/nova/access_and_security/templates/access_and_security/keypairs/_create.html:23 +#: dashboards/nova/access_and_security/templates/access_and_security/keypairs/create.html:6 msgid "Create Keypair" msgstr "" @@ -281,134 +285,151 @@ msgstr "" msgid "Unable to create keypair: %(exc)s" msgstr "" -#: dashboards/nova/access_and_security/security_groups/forms.py:41 +#: dashboards/nova/access_and_security/security_groups/forms.py:40 #: dashboards/nova/access_and_security/security_groups/tables.py:57 -#: dashboards/nova/images_and_snapshots/images/forms.py:43 -#: dashboards/nova/instances_and_volumes/volumes/tables.py:110 -#: dashboards/nova/instances_and_volumes/volumes/tables.py:127 -#: dashboards/nova/templates/nova/images_and_snapshots/images/_detail_overview.html:9 -#: dashboards/nova/templates/nova/instances_and_volumes/instances/_detail_overview.html:9 -#: dashboards/nova/templates/nova/instances_and_volumes/instances/_launch_details_help.html:9 -#: dashboards/nova/templates/nova/instances_and_volumes/volumes/_detail_overview.html:9 +#: dashboards/nova/images_and_snapshots/images/forms.py:42 +#: dashboards/nova/images_and_snapshots/images/forms.py:120 +#: dashboards/nova/images_and_snapshots/templates/images_and_snapshots/images/_detail_overview.html:9 +#: dashboards/nova/images_and_snapshots/volume_snapshots/tables.py:46 +#: dashboards/nova/instances/templates/instances/_detail_overview.html:9 +#: dashboards/nova/instances/templates/instances/_launch_details_help.html:9 +#: dashboards/nova/volumes/tables.py:135 dashboards/nova/volumes/tables.py:153 +#: dashboards/nova/volumes/templates/volumes/_detail_overview.html:9 #: dashboards/syspanel/flavors/forms.py:37 #: dashboards/syspanel/projects/forms.py:60 #: dashboards/syspanel/projects/forms.py:85 #: dashboards/syspanel/projects/tables.py:74 #: dashboards/syspanel/services/tables.py:38 +#: dashboards/syspanel/volumes/tables.py:10 msgid "Name" msgstr "" -#: dashboards/nova/access_and_security/security_groups/forms.py:43 +#: dashboards/nova/access_and_security/security_groups/forms.py:42 #: dashboards/nova/access_and_security/security_groups/tables.py:58 -#: dashboards/nova/instances_and_volumes/volumes/forms.py:29 -#: dashboards/nova/instances_and_volumes/volumes/forms.py:103 -#: dashboards/nova/instances_and_volumes/volumes/tables.py:113 -#: dashboards/nova/templates/nova/access_and_security/keypairs/_create.html:16 -#: dashboards/nova/templates/nova/access_and_security/keypairs/_import.html:16 -#: dashboards/nova/templates/nova/access_and_security/security_groups/_create.html:17 -#: dashboards/nova/templates/nova/containers/_create.html:16 -#: dashboards/nova/templates/nova/instances_and_volumes/volumes/_create.html:17 -#: dashboards/nova/templates/nova/instances_and_volumes/volumes/_create_snapshot.html:17 -#: dashboards/nova/templates/nova/instances_and_volumes/volumes/_detail_overview.html:14 -#: dashboards/nova/templates/nova/objects/_copy.html:16 -#: dashboards/nova/templates/nova/objects/_upload.html:17 +#: dashboards/nova/access_and_security/templates/access_and_security/keypairs/_create.html:16 +#: dashboards/nova/access_and_security/templates/access_and_security/keypairs/_import.html:16 +#: dashboards/nova/access_and_security/templates/access_and_security/security_groups/_create.html:17 +#: dashboards/nova/containers/templates/containers/_copy.html:16 +#: dashboards/nova/containers/templates/containers/_create.html:16 +#: dashboards/nova/containers/templates/containers/_upload.html:17 +#: dashboards/nova/volumes/forms.py:25 dashboards/nova/volumes/forms.py:125 +#: dashboards/nova/volumes/tables.py:138 +#: dashboards/nova/volumes/templates/volumes/_create.html:18 +#: dashboards/nova/volumes/templates/volumes/_create_snapshot.html:17 +#: dashboards/nova/volumes/templates/volumes/_detail_overview.html:14 +#: dashboards/syspanel/flavors/templates/flavors/_create.html:17 +#: dashboards/syspanel/images/templates/images/_update.html:17 #: dashboards/syspanel/projects/forms.py:63 #: dashboards/syspanel/projects/forms.py:88 #: dashboards/syspanel/projects/tables.py:76 -#: dashboards/syspanel/templates/syspanel/flavors/_create.html:17 -#: dashboards/syspanel/templates/syspanel/images/_update.html:17 -#: dashboards/syspanel/templates/syspanel/projects/_add_user.html:17 -#: dashboards/syspanel/templates/syspanel/projects/_create.html:17 -#: dashboards/syspanel/templates/syspanel/projects/_quotas.html:16 -#: dashboards/syspanel/templates/syspanel/projects/_update.html:17 -#: dashboards/syspanel/templates/syspanel/users/_create.html:16 -#: dashboards/syspanel/templates/syspanel/users/_update.html:16 +#: dashboards/syspanel/projects/templates/projects/_add_user.html:17 +#: dashboards/syspanel/projects/templates/projects/_create.html:17 +#: dashboards/syspanel/projects/templates/projects/_quotas.html:16 +#: dashboards/syspanel/projects/templates/projects/_update.html:17 +#: dashboards/syspanel/users/templates/users/_create.html:16 +#: dashboards/syspanel/users/templates/users/_update.html:16 msgid "Description" msgstr "" -#: dashboards/nova/access_and_security/security_groups/forms.py:51 +#: dashboards/nova/access_and_security/security_groups/forms.py:50 #, python-format -msgid "Successfully created security_group: %s" +msgid "Successfully created security group: %s" msgstr "" -#: dashboards/nova/access_and_security/security_groups/forms.py:54 +#: dashboards/nova/access_and_security/security_groups/forms.py:53 msgid "Unable to create security group." msgstr "" -#: dashboards/nova/access_and_security/security_groups/forms.py:59 +#: dashboards/nova/access_and_security/security_groups/forms.py:58 #: dashboards/nova/access_and_security/security_groups/tables.py:92 msgid "IP Protocol" msgstr "" -#: dashboards/nova/access_and_security/security_groups/forms.py:65 -#: dashboards/nova/access_and_security/security_groups/forms.py:71 +#: dashboards/nova/access_and_security/security_groups/forms.py:64 +#: dashboards/nova/access_and_security/security_groups/forms.py:70 #: dashboards/nova/access_and_security/security_groups/tables.py:94 msgid "From Port" msgstr "" -#: dashboards/nova/access_and_security/security_groups/forms.py:66 +#: dashboards/nova/access_and_security/security_groups/forms.py:65 msgid "" "TCP/UDP: Enter integer value between 1 and 65535. ICMP: enter a value for " "ICMP type in the range (-1: 255)" msgstr "" -#: dashboards/nova/access_and_security/security_groups/forms.py:72 -#: dashboards/nova/images_and_snapshots/images/tables.py:89 +#: dashboards/nova/access_and_security/security_groups/forms.py:71 +#: dashboards/nova/images_and_snapshots/images/tables.py:114 msgid "Type" msgstr "" -#: dashboards/nova/access_and_security/security_groups/forms.py:74 -#: dashboards/nova/access_and_security/security_groups/forms.py:80 +#: dashboards/nova/access_and_security/security_groups/forms.py:73 +#: dashboards/nova/access_and_security/security_groups/forms.py:79 #: dashboards/nova/access_and_security/security_groups/tables.py:95 msgid "To Port" msgstr "" -#: dashboards/nova/access_and_security/security_groups/forms.py:75 +#: dashboards/nova/access_and_security/security_groups/forms.py:74 msgid "" "TCP/UDP: Enter integer value between 1 and 65535. ICMP: enter a value for " "ICMP code in the range (-1: 255)" msgstr "" -#: dashboards/nova/access_and_security/security_groups/forms.py:81 +#: dashboards/nova/access_and_security/security_groups/forms.py:80 msgid "Code" msgstr "" -#: dashboards/nova/access_and_security/security_groups/forms.py:84 +#: dashboards/nova/access_and_security/security_groups/forms.py:83 msgid "Source Group" msgstr "" -#: dashboards/nova/access_and_security/security_groups/forms.py:85 +#: dashboards/nova/access_and_security/security_groups/forms.py:84 msgid "CIDR" msgstr "" -#: dashboards/nova/access_and_security/security_groups/forms.py:88 +#: dashboards/nova/access_and_security/security_groups/forms.py:87 msgid "Classless Inter-Domain Routing (e.g. 192.168.0.0/24)" msgstr "" -#: dashboards/nova/access_and_security/security_groups/forms.py:115 +#: dashboards/nova/access_and_security/security_groups/forms.py:116 +msgid "The ICMP type is invalid." +msgstr "" + +#: dashboards/nova/access_and_security/security_groups/forms.py:119 +msgid "The ICMP code is invalid." +msgstr "" + +#: dashboards/nova/access_and_security/security_groups/forms.py:122 +msgid "The ICMP type not in range (-1, 255)" +msgstr "" + +#: dashboards/nova/access_and_security/security_groups/forms.py:125 +msgid "The ICMP code not in range (-1, 255)" +msgstr "" + +#: dashboards/nova/access_and_security/security_groups/forms.py:129 msgid "The \"from\" port number is invalid." msgstr "" -#: dashboards/nova/access_and_security/security_groups/forms.py:118 +#: dashboards/nova/access_and_security/security_groups/forms.py:132 msgid "The \"to\" port number is invalid." msgstr "" -#: dashboards/nova/access_and_security/security_groups/forms.py:121 +#: dashboards/nova/access_and_security/security_groups/forms.py:135 msgid "" "The \"to\" port number must be greater than or equal to the \"from\" port " "number." msgstr "" -#: dashboards/nova/access_and_security/security_groups/forms.py:127 +#: dashboards/nova/access_and_security/security_groups/forms.py:141 msgid "Either CIDR or Source Group may be specified, but not both." msgstr "" -#: dashboards/nova/access_and_security/security_groups/forms.py:148 +#: dashboards/nova/access_and_security/security_groups/forms.py:163 #, python-format msgid "Successfully added rule: %s" msgstr "" -#: dashboards/nova/access_and_security/security_groups/forms.py:152 +#: dashboards/nova/access_and_security/security_groups/forms.py:166 msgid "Unable to add rule to security group." msgstr "" @@ -418,15 +439,15 @@ msgstr "" #: dashboards/nova/access_and_security/security_groups/tables.py:31 #: dashboards/nova/access_and_security/security_groups/tables.py:65 -#: dashboards/nova/instances_and_volumes/instances/workflows.py:303 -#: dashboards/nova/templates/nova/instances_and_volumes/instances/_detail_overview.html:47 +#: dashboards/nova/instances/workflows.py:320 +#: dashboards/nova/instances/templates/instances/_detail_overview.html:49 msgid "Security Groups" msgstr "" #: dashboards/nova/access_and_security/security_groups/tables.py:44 -#: dashboards/nova/templates/nova/access_and_security/security_groups/_create.html:7 -#: dashboards/nova/templates/nova/access_and_security/security_groups/_create.html:23 -#: dashboards/nova/templates/nova/access_and_security/security_groups/create.html:6 +#: dashboards/nova/access_and_security/templates/access_and_security/security_groups/_create.html:7 +#: dashboards/nova/access_and_security/templates/access_and_security/security_groups/_create.html:23 +#: dashboards/nova/access_and_security/templates/access_and_security/security_groups/create.html:6 msgid "Create Security Group" msgstr "" @@ -454,69 +475,178 @@ msgstr "" msgid "Unable to retrieve security group." msgstr "" -#: dashboards/nova/access_and_security/security_groups/views.py:64 -msgid "Unable to retrieve security groups." +#: dashboards/nova/access_and_security/templates/access_and_security/index.html:6 +msgid "Access & Security" +msgstr "" + +#: dashboards/nova/access_and_security/templates/access_and_security/floating_ips/_allocate.html:8 +#: dashboards/nova/access_and_security/templates/access_and_security/floating_ips/allocate.html:3 +msgid "Allocate Floating IP" +msgstr "" + +#: dashboards/nova/access_and_security/templates/access_and_security/floating_ips/_allocate.html:17 +#: dashboards/nova/images_and_snapshots/templates/images_and_snapshots/images/_create.html:16 +#: dashboards/nova/images_and_snapshots/templates/images_and_snapshots/images/_update.html:16 +#: dashboards/nova/images_and_snapshots/templates/images_and_snapshots/snapshots/_create.html:17 +#: dashboards/nova/instances/templates/instances/_update.html:16 +#: dashboards/settings/ec2/templates/ec2/download_form.html:17 +#: dashboards/settings/project/templates/project/_openrc.html:24 +#: dashboards/settings/user/templates/user/_settings.html:17 +msgid "Description:" +msgstr "" + +#: dashboards/nova/access_and_security/templates/access_and_security/floating_ips/_allocate.html:18 +msgid "Allocate a floating IP from a given floating ip pool." +msgstr "" + +#: dashboards/nova/access_and_security/templates/access_and_security/floating_ips/_allocate.html:20 +#: dashboards/nova/instances/templates/instances/_launch_details_help.html:19 +msgid "Project Quotas" +msgstr "" + +#: dashboards/nova/access_and_security/templates/access_and_security/floating_ips/_allocate.html:31 +msgid "Allocate IP" +msgstr "" + +#: dashboards/nova/access_and_security/templates/access_and_security/floating_ips/_allocate.html:32 +#: dashboards/nova/access_and_security/templates/access_and_security/keypairs/_create.html:24 +#: dashboards/nova/access_and_security/templates/access_and_security/keypairs/_import.html:24 +#: dashboards/nova/access_and_security/templates/access_and_security/security_groups/_create.html:24 +#: dashboards/nova/access_and_security/templates/access_and_security/security_groups/_edit_rules.html:20 +#: dashboards/nova/containers/templates/containers/_copy.html:23 +#: dashboards/nova/containers/templates/containers/_create.html:23 +#: dashboards/nova/containers/templates/containers/_upload.html:24 +#: dashboards/nova/images_and_snapshots/templates/images_and_snapshots/images/_create.html:32 +#: dashboards/nova/images_and_snapshots/templates/images_and_snapshots/images/_update.html:23 +#: dashboards/nova/images_and_snapshots/templates/images_and_snapshots/snapshots/_create.html:24 +#: dashboards/nova/instances/templates/instances/_update.html:23 +#: dashboards/nova/volumes/templates/volumes/_attach.html:20 +#: dashboards/nova/volumes/templates/volumes/_create.html:56 +#: dashboards/nova/volumes/templates/volumes/_create_snapshot.html:24 +#: dashboards/settings/ec2/templates/ec2/download_form.html:24 +#: dashboards/settings/project/templates/project/_openrc.html:31 +#: dashboards/settings/user/templates/user/_settings.html:24 +#: dashboards/syspanel/flavors/templates/flavors/_create.html:24 +#: dashboards/syspanel/images/templates/images/_update.html:24 +#: dashboards/syspanel/projects/templates/projects/_add_user.html:24 +#: dashboards/syspanel/projects/templates/projects/_create.html:24 +#: dashboards/syspanel/projects/templates/projects/_quotas.html:23 +#: dashboards/syspanel/projects/templates/projects/_update.html:24 +#: dashboards/syspanel/users/templates/users/_create.html:23 +#: dashboards/syspanel/users/templates/users/_update.html:23 +#: templates/horizon/common/_workflow.html:30 +msgid "Cancel" +msgstr "" + +#: dashboards/nova/access_and_security/templates/access_and_security/keypairs/_create.html:17 +#: dashboards/nova/access_and_security/templates/access_and_security/keypairs/_import.html:17 +msgid "" +"Keypairs are ssh credentials which are injected into images when they are " +"launched. Creating a new key pair registers the public key and downloads the " +"private key (a .pem file)." +msgstr "" + +#: dashboards/nova/access_and_security/templates/access_and_security/keypairs/_create.html:18 +#: dashboards/nova/access_and_security/templates/access_and_security/keypairs/_import.html:18 +msgid "Protect and use the key as you would any normal ssh private key." +msgstr "" + +#: dashboards/nova/access_and_security/templates/access_and_security/keypairs/download.html:3 +#: dashboards/nova/access_and_security/templates/access_and_security/keypairs/download.html:6 +msgid "Download Keypair" +msgstr "" + +#: dashboards/nova/access_and_security/templates/access_and_security/keypairs/download.html:11 +#, python-format +msgid "" +"The keypair "%(keypair_name)s" should download automatically. If " +"not use the link below." +msgstr "" + +#: dashboards/nova/access_and_security/templates/access_and_security/keypairs/download.html:15 +#, python-format +msgid "Download keypair "%(keypair_name)s"" +msgstr "" + +#: dashboards/nova/access_and_security/templates/access_and_security/security_groups/_create.html:18 +msgid "From here you can create a new security group" +msgstr "" + +#: dashboards/nova/access_and_security/templates/access_and_security/security_groups/_edit_rules.html:9 +#: dashboards/nova/access_and_security/templates/access_and_security/security_groups/edit_rules.html:6 +msgid "Edit Security Group Rules" +msgstr "" + +#: dashboards/nova/access_and_security/templates/access_and_security/security_groups/_edit_rules.html:12 +#: dashboards/nova/access_and_security/templates/access_and_security/security_groups/_edit_rules.html:19 +msgid "Add Rule" msgstr "" #: dashboards/nova/containers/forms.py:38 msgid "Slash is not an allowed character." msgstr "" -#: dashboards/nova/containers/forms.py:45 -#: dashboards/nova/containers/tables.py:88 +#: dashboards/nova/containers/forms.py:48 +#: dashboards/nova/containers/tables.py:91 msgid "Container Name" msgstr "" -#: dashboards/nova/containers/forms.py:51 +#: dashboards/nova/containers/forms.py:56 msgid "Container created successfully." msgstr "" -#: dashboards/nova/containers/forms.py:53 -msgid "Unable to create container." -msgstr "" - -#: dashboards/nova/containers/forms.py:59 -#: dashboards/nova/containers/tables.py:155 -msgid "Object Name" -msgstr "" - -#: dashboards/nova/containers/forms.py:61 -msgid "File" -msgstr "" - -#: dashboards/nova/containers/forms.py:73 -msgid "Object was successfully uploaded." +#: dashboards/nova/containers/forms.py:67 +msgid "Folder created successfully." msgstr "" #: dashboards/nova/containers/forms.py:75 +msgid "Unable to create container." +msgstr "" + +#: dashboards/nova/containers/forms.py:85 +#: dashboards/nova/containers/tables.py:157 +msgid "Object Name" +msgstr "" + +#: dashboards/nova/containers/forms.py:87 +msgid "File" +msgstr "" + +#: dashboards/nova/containers/forms.py:103 +msgid "Object was successfully uploaded." +msgstr "" + +#: dashboards/nova/containers/forms.py:105 msgid "Unable to upload object." msgstr "" -#: dashboards/nova/containers/forms.py:81 +#: dashboards/nova/containers/forms.py:111 msgid "Destination container" msgstr "" -#: dashboards/nova/containers/forms.py:84 +#: dashboards/nova/containers/forms.py:115 msgid "Destination object name" msgstr "" -#: dashboards/nova/containers/forms.py:107 -#, python-format -msgid "Object \"%(obj)s\" copied to container \"%(container)s\"." +#: dashboards/nova/containers/forms.py:145 +#: dashboards/nova/containers/forms.py:169 +msgid "Unable to copy object." msgstr "" -#: dashboards/nova/containers/forms.py:115 -msgid "Unable to copy object." +#: dashboards/nova/containers/forms.py:161 +#, python-format +msgid "Copied \"%(orig)s\" to \"%(dest)s\" as \"%(new)s\"." msgstr "" #: dashboards/nova/containers/panel.py:28 #: dashboards/nova/containers/tables.py:35 -#: dashboards/nova/containers/tables.py:99 -#: dashboards/nova/templates/nova/containers/index.html:8 +#: dashboards/nova/containers/tables.py:102 +#: dashboards/nova/containers/templates/containers/index.html:6 msgid "Containers" msgstr "" #: dashboards/nova/containers/tables.py:34 +#: dashboards/nova/containers/templates/containers/detail.html:7 msgid "Container" msgstr "" @@ -525,67 +655,129 @@ msgid "Containers must be empty before deletion." msgstr "" #: dashboards/nova/containers/tables.py:48 -#: dashboards/nova/templates/nova/containers/_create.html:7 -#: dashboards/nova/templates/nova/containers/_create.html:22 -#: dashboards/nova/templates/nova/containers/create.html:6 +#: dashboards/nova/containers/templates/containers/_create.html:7 +#: dashboards/nova/containers/templates/containers/_create.html:22 +#: dashboards/nova/containers/templates/containers/create.html:6 msgid "Create Container" msgstr "" #: dashboards/nova/containers/tables.py:55 -msgid "List Objects" +msgid "View Container" msgstr "" #: dashboards/nova/containers/tables.py:62 -#: dashboards/nova/templates/nova/objects/_upload.html:23 -#: dashboards/nova/templates/nova/objects/upload.html:3 +#: dashboards/nova/containers/templates/containers/_upload.html:23 +#: dashboards/nova/containers/templates/containers/upload.html:3 msgid "Upload Object" msgstr "" -#: dashboards/nova/containers/tables.py:90 -#: dashboards/nova/containers/tables.py:106 -#: dashboards/nova/containers/tables.py:163 -#: dashboards/nova/templates/nova/objects/index.html:3 +#: dashboards/nova/containers/tables.py:93 +#: dashboards/nova/containers/tables.py:109 +#: dashboards/nova/containers/tables.py:169 +#: dashboards/nova/containers/templates/containers/detail.html:3 msgid "Objects" msgstr "" -#: dashboards/nova/containers/tables.py:92 -#: dashboards/nova/containers/tables.py:156 -#: dashboards/nova/instances_and_volumes/instances/tables.py:243 -#: dashboards/nova/instances_and_volumes/volumes/tables.py:114 -#: dashboards/nova/templates/nova/images_and_snapshots/images/_detail_overview.html:30 -#: dashboards/nova/templates/nova/instances_and_volumes/volumes/_detail_overview.html:26 +#: dashboards/nova/containers/tables.py:95 +#: dashboards/nova/containers/tables.py:160 +#: dashboards/nova/images_and_snapshots/templates/images_and_snapshots/images/_detail_overview.html:30 +#: dashboards/nova/instances/tables.py:271 +#: dashboards/nova/volumes/tables.py:140 +#: dashboards/nova/volumes/templates/volumes/_detail_overview.html:26 #: dashboards/syspanel/instances/tables.py:76 msgid "Size" msgstr "" -#: dashboards/nova/containers/tables.py:105 +#: dashboards/nova/containers/tables.py:108 msgid "Object" msgstr "" -#: dashboards/nova/containers/tables.py:116 +#: dashboards/nova/containers/tables.py:119 msgid "Copy" msgstr "" -#: dashboards/nova/containers/tables.py:127 +#: dashboards/nova/containers/tables.py:130 msgid "Download" msgstr "" -#: dashboards/nova/containers/views.py:57 +#: dashboards/nova/containers/tables.py:181 +msgid "Create Folder" +msgstr "" + +#: dashboards/nova/containers/tables.py:193 +msgid "Folder" +msgstr "" + +#: dashboards/nova/containers/tables.py:194 +msgid "Folders" +msgstr "" + +#: dashboards/nova/containers/tables.py:200 +msgid "Subfolder Name" +msgstr "" + +#: dashboards/nova/containers/tables.py:208 +msgid "Subfolders" +msgstr "" + +#: dashboards/nova/containers/views.py:58 msgid "Unable to retrieve container list." msgstr "" -#: dashboards/nova/containers/views.py:84 +#: dashboards/nova/containers/views.py:103 msgid "Unable to retrieve object list." msgstr "" -#: dashboards/nova/containers/views.py:122 +#: dashboards/nova/containers/views.py:161 msgid "Unable to retrieve object." msgstr "" -#: dashboards/nova/containers/views.py:144 +#: dashboards/nova/containers/views.py:183 msgid "Unable to list containers." msgstr "" +#: dashboards/nova/containers/templates/containers/_copy.html:7 +#: dashboards/nova/containers/templates/containers/_copy.html:22 +#: dashboards/nova/containers/templates/containers/copy.html:3 +#: dashboards/nova/containers/templates/containers/copy.html:6 +msgid "Copy Object" +msgstr "" + +#: dashboards/nova/containers/templates/containers/_copy.html:17 +msgid "" +"Make a new copy of an existing object to store in this or another container. " +"You may also specify a path at which the new copy should live inside of the " +"selected container." +msgstr "" + +#: dashboards/nova/containers/templates/containers/_create.html:17 +msgid "" +"A container is a storage compartment for your data and provides a way for " +"you to organize your data. You can think of a container as a folder in " +"Windows ® or a directory in UNIX ®. The primary difference between a " +"container and these other file system concepts is that containers cannot be " +"nested. You can, however, create an unlimited number of containers within " +"your account. Data must be stored in a container so you must have at least " +"one container defined in your account prior to uploading data." +msgstr "" + +#: dashboards/nova/containers/templates/containers/_upload.html:8 +msgid "Upload Object To Container" +msgstr "" + +#: dashboards/nova/containers/templates/containers/_upload.html:18 +msgid "" +"An object is the basic storage entity and any optional metadata that " +"represents the files you store in the OpenStack Object Storage system. When " +"you upload data to OpenStack Object Storage, the data is stored as-is (no " +"compression or encryption) and consists of a location (container), the " +"object's name, and any metadata consisting of key/value pairs." +msgstr "" + +#: dashboards/nova/containers/templates/containers/upload.html:6 +msgid "Upload Objects" +msgstr "" + #: dashboards/nova/images_and_snapshots/panel.py:25 msgid "Images & Snapshots" msgstr "" @@ -603,94 +795,147 @@ msgid "Unable to retrieve volume snapshots." msgstr "" #: dashboards/nova/images_and_snapshots/images/forms.py:44 -#: dashboards/nova/templates/nova/images_and_snapshots/images/_detail_overview.html:48 -msgid "Kernel ID" +msgid "Image Location" msgstr "" -#: dashboards/nova/images_and_snapshots/images/forms.py:49 -#: dashboards/nova/templates/nova/images_and_snapshots/images/_detail_overview.html:52 -msgid "Ramdisk ID" +#: dashboards/nova/images_and_snapshots/images/forms.py:45 +msgid "An external (HTTP) URL where the image should be loaded from." msgstr "" -#: dashboards/nova/images_and_snapshots/images/forms.py:54 -#: dashboards/nova/templates/nova/images_and_snapshots/images/_detail_overview.html:44 -msgid "Architecture" +#: dashboards/nova/images_and_snapshots/images/forms.py:48 +#: dashboards/nova/images_and_snapshots/images/forms.py:135 +#: dashboards/nova/images_and_snapshots/images/tables.py:125 +msgid "Format" +msgstr "" + +#: dashboards/nova/images_and_snapshots/images/forms.py:52 +msgid "AKI - Amazon Kernel Image" +msgstr "" + +#: dashboards/nova/images_and_snapshots/images/forms.py:55 +msgid "AMI - Amazon Machine Image" msgstr "" #: dashboards/nova/images_and_snapshots/images/forms.py:58 -#: dashboards/nova/images_and_snapshots/images/tables.py:98 -#: dashboards/nova/templates/nova/images_and_snapshots/images/_detail_overview.html:32 -msgid "Container Format" +msgid "ARI - Amazon Ramdisk Image" msgstr "" -#: dashboards/nova/images_and_snapshots/images/forms.py:62 -#: dashboards/nova/templates/nova/images_and_snapshots/images/_detail_overview.html:34 -msgid "Disk Format" +#: dashboards/nova/images_and_snapshots/images/forms.py:61 +msgid "ISO - Optical Disk Image" msgstr "" -#: dashboards/nova/images_and_snapshots/images/forms.py:66 -#: dashboards/nova/images_and_snapshots/images/tables.py:94 -#: dashboards/nova/templates/nova/images_and_snapshots/images/_detail_overview.html:15 +#: dashboards/nova/images_and_snapshots/images/forms.py:63 +msgid "QCOW2 - QEMU Emulator" +msgstr "" + +#: dashboards/nova/images_and_snapshots/images/forms.py:70 +msgid "Minimum Disk (GB)" +msgstr "" + +#: dashboards/nova/images_and_snapshots/images/forms.py:71 +#: dashboards/nova/images_and_snapshots/images/forms.py:78 +msgid "" +"The minimum disk size required to boot the image. If unspecified, this value " +"defaults to 0 (no minimum)." +msgstr "" + +#: dashboards/nova/images_and_snapshots/images/forms.py:77 +msgid "Minimum Ram (MB)" +msgstr "" + +#: dashboards/nova/images_and_snapshots/images/forms.py:84 +#: dashboards/nova/images_and_snapshots/images/forms.py:139 +#: dashboards/nova/images_and_snapshots/images/tables.py:122 +#: dashboards/nova/images_and_snapshots/templates/images_and_snapshots/images/_detail_overview.html:15 msgid "Public" msgstr "" -#: dashboards/nova/images_and_snapshots/images/forms.py:72 +#: dashboards/nova/images_and_snapshots/images/forms.py:108 +#, python-format +msgid "Your image %s has been queued for creation." +msgstr "" + +#: dashboards/nova/images_and_snapshots/images/forms.py:111 +msgid "Unable to create new image." +msgstr "" + +#: dashboards/nova/images_and_snapshots/images/forms.py:121 +#: dashboards/nova/images_and_snapshots/templates/images_and_snapshots/images/_detail_overview.html:48 +msgid "Kernel ID" +msgstr "" + +#: dashboards/nova/images_and_snapshots/images/forms.py:126 +#: dashboards/nova/images_and_snapshots/templates/images_and_snapshots/images/_detail_overview.html:52 +msgid "Ramdisk ID" +msgstr "" + +#: dashboards/nova/images_and_snapshots/images/forms.py:131 +#: dashboards/nova/images_and_snapshots/templates/images_and_snapshots/images/_detail_overview.html:44 +msgid "Architecture" +msgstr "" + +#: dashboards/nova/images_and_snapshots/images/forms.py:144 #, python-format msgid "Unable to update image \"%s\"." msgstr "" -#: dashboards/nova/images_and_snapshots/images/forms.py:88 +#: dashboards/nova/images_and_snapshots/images/forms.py:163 msgid "Image was successfully updated." msgstr "" #: dashboards/nova/images_and_snapshots/images/tables.py:33 #: dashboards/nova/images_and_snapshots/snapshots/tables.py:32 -#: dashboards/nova/instances_and_volumes/instances/workflows.py:377 +#: dashboards/nova/instances/workflows.py:394 msgid "Launch" msgstr "" #: dashboards/nova/images_and_snapshots/images/tables.py:45 -#: dashboards/nova/instances_and_volumes/instances/workflows.py:161 -#: dashboards/nova/instances_and_volumes/instances/workflows.py:166 +#: dashboards/nova/images_and_snapshots/images/tables.py:81 +#: dashboards/nova/instances/workflows.py:162 +#: dashboards/nova/instances/workflows.py:167 msgid "Image" msgstr "" #: dashboards/nova/images_and_snapshots/images/tables.py:46 -#: dashboards/nova/images_and_snapshots/images/tables.py:102 +#: dashboards/nova/images_and_snapshots/images/tables.py:131 #: dashboards/syspanel/images/panel.py:28 -#: dashboards/syspanel/images/tables.py:38 -#: dashboards/syspanel/templates/syspanel/images/index.html:3 -#: dashboards/syspanel/templates/syspanel/images/index.html:6 +#: dashboards/syspanel/images/tables.py:43 +#: dashboards/syspanel/images/templates/images/index.html:3 +#: dashboards/syspanel/images/templates/images/index.html:6 msgid "Images" msgstr "" #: dashboards/nova/images_and_snapshots/images/tables.py:60 +#: dashboards/nova/images_and_snapshots/templates/images_and_snapshots/images/_create.html:31 +msgid "Create Image" +msgstr "" + +#: dashboards/nova/images_and_snapshots/images/tables.py:67 #: dashboards/syspanel/users/tables.py:30 msgid "Edit" msgstr "" -#: dashboards/nova/images_and_snapshots/images/tables.py:87 -#: dashboards/nova/templates/nova/instances_and_volumes/instances/_detail_overview.html:72 +#: dashboards/nova/images_and_snapshots/images/tables.py:112 +#: dashboards/nova/instances/templates/instances/_detail_overview.html:74 +#: dashboards/syspanel/images/tables.py:39 msgid "Image Name" msgstr "" -#: dashboards/nova/images_and_snapshots/images/tables.py:92 -#: dashboards/nova/instances_and_volumes/instances/tables.py:246 -#: dashboards/nova/instances_and_volumes/volumes/tables.py:117 -#: dashboards/nova/templates/nova/images_and_snapshots/images/_detail_overview.html:13 -#: dashboards/nova/templates/nova/instances_and_volumes/instances/_detail_overview.html:13 -#: dashboards/nova/templates/nova/instances_and_volumes/volumes/_detail_overview.html:17 +#: dashboards/nova/images_and_snapshots/images/tables.py:118 +#: dashboards/nova/images_and_snapshots/templates/images_and_snapshots/images/_detail_overview.html:13 +#: dashboards/nova/instances/tables.py:275 +#: dashboards/nova/instances/templates/instances/_detail_overview.html:13 +#: dashboards/nova/volumes/tables.py:143 +#: dashboards/nova/volumes/templates/volumes/_detail_overview.html:17 #: dashboards/syspanel/instances/tables.py:80 msgid "Status" msgstr "" #: dashboards/nova/images_and_snapshots/images/tabs.py:26 -#: dashboards/nova/instances_and_volumes/instances/tabs.py:25 -#: dashboards/nova/instances_and_volumes/volumes/tabs.py:26 -#: dashboards/nova/overview/panel.py:28 -#: dashboards/nova/templates/nova/overview/usage.html:6 -#: dashboards/syspanel/overview/panel.py:28 -#: dashboards/syspanel/templates/syspanel/overview/usage.html:6 +#: dashboards/nova/instances/tabs.py:25 dashboards/nova/overview/panel.py:28 +#: dashboards/nova/overview/templates/overview/usage.html:6 +#: dashboards/nova/volumes/tabs.py:26 dashboards/syspanel/overview/panel.py:28 +#: dashboards/syspanel/overview/templates/overview/usage.html:6 msgid "Overview" msgstr "" @@ -698,12 +943,16 @@ msgstr "" msgid "Unable to retrieve image details." msgstr "" -#: dashboards/nova/images_and_snapshots/images/views.py:50 +#: dashboards/nova/images_and_snapshots/images/views.py:57 msgid "Unable to retrieve image." msgstr "" +#: dashboards/nova/images_and_snapshots/snapshots/forms.py:38 +msgid "Instance ID" +msgstr "" + #: dashboards/nova/images_and_snapshots/snapshots/forms.py:41 -#: dashboards/nova/instances_and_volumes/volumes/forms.py:101 +#: dashboards/nova/volumes/forms.py:123 msgid "Snapshot Name" msgstr "" @@ -717,9 +966,9 @@ msgid "Unable to create snapshot." msgstr "" #: dashboards/nova/images_and_snapshots/snapshots/tables.py:47 -#: dashboards/nova/instances_and_volumes/instances/tables.py:158 -#: dashboards/nova/instances_and_volumes/instances/workflows.py:101 -#: dashboards/nova/instances_and_volumes/instances/workflows.py:162 +#: dashboards/nova/instances/tables.py:162 +#: dashboards/nova/instances/workflows.py:101 +#: dashboards/nova/instances/workflows.py:163 msgid "Snapshot" msgstr "" @@ -740,905 +989,947 @@ msgstr "" msgid "To create a snapshot, the instance must be in the \"%s\" state." msgstr "" +#: dashboards/nova/images_and_snapshots/templates/images_and_snapshots/index.html:3 +#: dashboards/nova/images_and_snapshots/templates/images_and_snapshots/index.html:6 +msgid "Images & Snapshots" +msgstr "" + +#: dashboards/nova/images_and_snapshots/templates/images_and_snapshots/images/_create.html:7 +#: dashboards/nova/images_and_snapshots/templates/images_and_snapshots/images/create.html:3 +#: dashboards/nova/images_and_snapshots/templates/images_and_snapshots/images/create.html:6 +msgid "Create An Image" +msgstr "" + +#: dashboards/nova/images_and_snapshots/templates/images_and_snapshots/images/_create.html:18 +msgid "Specify an image to upload to the Image Service." +msgstr "" + +#: dashboards/nova/images_and_snapshots/templates/images_and_snapshots/images/_create.html:21 +msgid "" +"Currently only images available via an HTTP URL are supported. The image " +"location must be accessible to the Image Service. Compressed image binaries " +"are supported (.zip and .tar.gz.)" +msgstr "" + +#: dashboards/nova/images_and_snapshots/templates/images_and_snapshots/images/_create.html:24 +msgid "Please note: " +msgstr "" + +#: dashboards/nova/images_and_snapshots/templates/images_and_snapshots/images/_create.html:25 +msgid "" +"The Image Location field MUST be a valid and direct URL to the image binary. " +"URLs that redirect or serve error pages will results in unusable images." +msgstr "" + +#: dashboards/nova/images_and_snapshots/templates/images_and_snapshots/images/_detail_overview.html:3 +msgid "Image Overview" +msgstr "" + +#: dashboards/nova/images_and_snapshots/templates/images_and_snapshots/images/_detail_overview.html:6 +#: dashboards/nova/instances/templates/instances/_detail_overview.html:6 +#: dashboards/nova/volumes/templates/volumes/_detail_overview.html:6 +msgid "Info" +msgstr "" + +#: dashboards/nova/images_and_snapshots/templates/images_and_snapshots/images/_detail_overview.html:11 +#: dashboards/nova/instances/templates/instances/_detail_overview.html:11 +#: dashboards/nova/volumes/templates/volumes/_detail_overview.html:11 +#: dashboards/syspanel/projects/forms.py:83 +#: dashboards/syspanel/users/forms.py:113 +msgid "ID" +msgstr "" + +#: dashboards/nova/images_and_snapshots/templates/images_and_snapshots/images/_detail_overview.html:17 +msgid "Checksum" +msgstr "" + +#: dashboards/nova/images_and_snapshots/templates/images_and_snapshots/images/_detail_overview.html:19 +#: dashboards/nova/volumes/templates/volumes/_detail_overview.html:28 +msgid "Created" +msgstr "" + +#: dashboards/nova/images_and_snapshots/templates/images_and_snapshots/images/_detail_overview.html:21 +msgid "Updated" +msgstr "" + +#: dashboards/nova/images_and_snapshots/templates/images_and_snapshots/images/_detail_overview.html:27 +#: dashboards/nova/instances/templates/instances/_detail_overview.html:19 +#: dashboards/nova/volumes/templates/volumes/_detail_overview.html:23 +msgid "Specs" +msgstr "" + +#: dashboards/nova/images_and_snapshots/templates/images_and_snapshots/images/_detail_overview.html:32 +msgid "Container Format" +msgstr "" + +#: dashboards/nova/images_and_snapshots/templates/images_and_snapshots/images/_detail_overview.html:34 +msgid "Disk Format" +msgstr "" + +#: dashboards/nova/images_and_snapshots/templates/images_and_snapshots/images/_detail_overview.html:40 +msgid "Custom Properties" +msgstr "" + +#: dashboards/nova/images_and_snapshots/templates/images_and_snapshots/images/_detail_overview.html:56 +msgid "Euca2ools state" +msgstr "" + +#: dashboards/nova/images_and_snapshots/templates/images_and_snapshots/images/_detail_overview.html:60 +#: dashboards/syspanel/projects/tables.py:77 +msgid "Project ID" +msgstr "" + +#: dashboards/nova/images_and_snapshots/templates/images_and_snapshots/images/_detail_overview.html:64 +msgid "Image Type" +msgstr "" + +#: dashboards/nova/images_and_snapshots/templates/images_and_snapshots/images/_update.html:7 +#: dashboards/nova/images_and_snapshots/templates/images_and_snapshots/images/_update.html:22 +#: dashboards/nova/images_and_snapshots/templates/images_and_snapshots/images/update.html:3 +#: dashboards/nova/images_and_snapshots/templates/images_and_snapshots/images/update.html:6 +#: dashboards/syspanel/images/templates/images/_update.html:8 +#: dashboards/syspanel/images/templates/images/_update.html:23 +#: dashboards/syspanel/images/templates/images/update.html:4 +#: dashboards/syspanel/images/templates/images/update.html:7 +msgid "Update Image" +msgstr "" + +#: dashboards/nova/images_and_snapshots/templates/images_and_snapshots/images/_update.html:17 +#: dashboards/syspanel/images/templates/images/_update.html:18 +msgid "From here you can modify different properties of an image." +msgstr "" + +#: dashboards/nova/images_and_snapshots/templates/images_and_snapshots/images/detail.html:4 +msgid "Image Detail " +msgstr "" + +#: dashboards/nova/images_and_snapshots/templates/images_and_snapshots/snapshots/_create.html:8 +#: dashboards/nova/images_and_snapshots/templates/images_and_snapshots/snapshots/_create.html:23 +#: dashboards/nova/images_and_snapshots/templates/images_and_snapshots/snapshots/create.html:3 +#: dashboards/nova/volumes/tables.py:67 +msgid "Create Snapshot" +msgstr "" + +#: dashboards/nova/images_and_snapshots/templates/images_and_snapshots/snapshots/_create.html:18 +msgid "Snapshots preserve the disk state of a running instance." +msgstr "" + +#: dashboards/nova/images_and_snapshots/templates/images_and_snapshots/snapshots/create.html:6 +msgid "Create a Snapshot" +msgstr "" + #: dashboards/nova/images_and_snapshots/volume_snapshots/tables.py:30 -#: dashboards/nova/instances_and_volumes/instances/workflows.py:71 +#: dashboards/nova/instances/workflows.py:70 msgid "Volume Snapshot" msgstr "" #: dashboards/nova/images_and_snapshots/volume_snapshots/tables.py:31 -#: dashboards/nova/images_and_snapshots/volume_snapshots/tables.py:42 +#: dashboards/nova/images_and_snapshots/volume_snapshots/tables.py:52 msgid "Volume Snapshots" msgstr "" -#: dashboards/nova/images_and_snapshots/volume_snapshots/tables.py:38 +#: dashboards/nova/images_and_snapshots/volume_snapshots/tables.py:48 msgid "Volume ID" msgstr "" -#: dashboards/nova/instances_and_volumes/panel.py:24 -msgid "Instances & Volumes" -msgstr "" - -#: dashboards/nova/instances_and_volumes/views.py:52 -msgid "Unable to retrieve instances." -msgstr "" - -#: dashboards/nova/instances_and_volumes/views.py:62 -#: dashboards/syspanel/instances/views.py:65 -msgid "Unable to retrieve instance size information." -msgstr "" - -#: dashboards/nova/instances_and_volumes/views.py:78 -#, python-format -msgid "Unable to fetch volumes: %s" -msgstr "" - -#: dashboards/nova/instances_and_volumes/instances/forms.py:44 +#: dashboards/nova/instances/forms.py:44 #, python-format msgid "Instance \"%s\" updated." msgstr "" -#: dashboards/nova/instances_and_volumes/instances/forms.py:46 +#: dashboards/nova/instances/forms.py:46 msgid "Unable to update instance." msgstr "" -#: dashboards/nova/instances_and_volumes/instances/tables.py:56 -msgid "Terminate" -msgstr "" - -#: dashboards/nova/instances_and_volumes/instances/tables.py:57 -msgid "Terminated" -msgstr "" - -#: dashboards/nova/instances_and_volumes/instances/tables.py:59 -#: dashboards/nova/instances_and_volumes/instances/tables.py:76 -#: dashboards/nova/instances_and_volumes/instances/tables.py:91 -#: dashboards/nova/instances_and_volumes/instances/tables.py:119 -#: dashboards/nova/instances_and_volumes/instances/tables.py:261 +#: dashboards/nova/instances/panel.py:24 +#: dashboards/nova/instances/tables.py:63 +#: dashboards/nova/instances/tables.py:80 +#: dashboards/nova/instances/tables.py:95 +#: dashboards/nova/instances/tables.py:123 +#: dashboards/nova/instances/tables.py:290 +#: dashboards/nova/instances/templates/instances/index.html:3 +#: dashboards/nova/instances/templates/instances/index.html:6 #: dashboards/syspanel/instances/panel.py:28 #: dashboards/syspanel/instances/tables.py:95 +#: dashboards/syspanel/instances/templates/instances/index.html:3 #: dashboards/syspanel/projects/forms.py:115 -#: dashboards/syspanel/templates/syspanel/instances/index.html:3 msgid "Instances" msgstr "" -#: dashboards/nova/instances_and_volumes/instances/tables.py:73 +#: dashboards/nova/instances/tables.py:60 +msgid "Terminate" +msgstr "" + +#: dashboards/nova/instances/tables.py:61 +msgid "Scheduled termination of" +msgstr "" + +#: dashboards/nova/instances/tables.py:77 msgid "Reboot" msgstr "" -#: dashboards/nova/instances_and_volumes/instances/tables.py:74 +#: dashboards/nova/instances/tables.py:78 msgid "Rebooted" msgstr "" -#: dashboards/nova/instances_and_volumes/instances/tables.py:88 +#: dashboards/nova/instances/tables.py:92 msgid "Pause" msgstr "" -#: dashboards/nova/instances_and_volumes/instances/tables.py:88 +#: dashboards/nova/instances/tables.py:92 msgid "Unpause" msgstr "" -#: dashboards/nova/instances_and_volumes/instances/tables.py:89 +#: dashboards/nova/instances/tables.py:93 msgid "Paused" msgstr "" -#: dashboards/nova/instances_and_volumes/instances/tables.py:89 +#: dashboards/nova/instances/tables.py:93 msgid "Unpaused" msgstr "" -#: dashboards/nova/instances_and_volumes/instances/tables.py:116 +#: dashboards/nova/instances/tables.py:120 msgid "Suspend" msgstr "" -#: dashboards/nova/instances_and_volumes/instances/tables.py:116 +#: dashboards/nova/instances/tables.py:120 msgid "Resume" msgstr "" -#: dashboards/nova/instances_and_volumes/instances/tables.py:117 +#: dashboards/nova/instances/tables.py:121 msgid "Suspended" msgstr "" -#: dashboards/nova/instances_and_volumes/instances/tables.py:117 +#: dashboards/nova/instances/tables.py:121 msgid "Resumed" msgstr "" -#: dashboards/nova/instances_and_volumes/instances/tables.py:144 -#: dashboards/nova/instances_and_volumes/instances/workflows.py:376 -#: dashboards/nova/templates/nova/instances_and_volumes/instances/launch.html:3 -#: dashboards/nova/templates/nova/instances_and_volumes/instances/launch.html:6 +#: dashboards/nova/instances/tables.py:148 +#: dashboards/nova/instances/workflows.py:393 +#: dashboards/nova/instances/templates/instances/launch.html:3 +#: dashboards/nova/instances/templates/instances/launch.html:6 msgid "Launch Instance" msgstr "" -#: dashboards/nova/instances_and_volumes/instances/tables.py:151 -#: dashboards/nova/templates/nova/instances_and_volumes/instances/_update.html:7 +#: dashboards/nova/instances/tables.py:155 +#: dashboards/nova/instances/templates/instances/_update.html:7 msgid "Edit Instance" msgstr "" -#: dashboards/nova/instances_and_volumes/instances/tables.py:168 +#: dashboards/nova/instances/tables.py:172 msgid "VNC Console" msgstr "" -#: dashboards/nova/instances_and_volumes/instances/tables.py:183 +#: dashboards/nova/instances/tables.py:187 msgid "View Log" msgstr "" -#: dashboards/nova/instances_and_volumes/instances/tables.py:213 +#: dashboards/nova/instances/tables.py:232 #, python-format -msgid "%(RAM)s RAM | %(VCPU)s VCPU | %(disk)s Disk" +msgid "%(name)s | %(RAM)s RAM | %(VCPU)s VCPU | %(disk)s Disk" msgstr "" -#: dashboards/nova/instances_and_volumes/instances/tables.py:241 -#: dashboards/syspanel/instances/tables.py:73 usage/tables.py:47 +#: dashboards/nova/instances/tables.py:239 +#: dashboards/nova/instances/tables.py:246 +msgid "Not available" +msgstr "" + +#: dashboards/nova/instances/tables.py:269 +#: dashboards/syspanel/instances/tables.py:73 usage/tables.py:56 msgid "Instance Name" msgstr "" -#: dashboards/nova/instances_and_volumes/instances/tables.py:250 +#: dashboards/nova/instances/tables.py:279 #: dashboards/syspanel/instances/tables.py:84 msgid "Task" msgstr "" -#: dashboards/nova/instances_and_volumes/instances/tables.py:257 +#: dashboards/nova/instances/tables.py:286 #: dashboards/syspanel/instances/tables.py:91 msgid "Power State" msgstr "" -#: dashboards/nova/instances_and_volumes/instances/tabs.py:35 +#: dashboards/nova/instances/tabs.py:35 msgid "Log" msgstr "" -#: dashboards/nova/instances_and_volumes/instances/tabs.py:47 -#: dashboards/nova/instances_and_volumes/instances/views.py:63 +#: dashboards/nova/instances/tabs.py:47 dashboards/nova/instances/views.py:105 #, python-format msgid "Unable to get log for instance \"%s\"." msgstr "" -#: dashboards/nova/instances_and_volumes/instances/tabs.py:54 +#: dashboards/nova/instances/tabs.py:54 msgid "VNC" msgstr "" -#: dashboards/nova/instances_and_volumes/instances/tabs.py:69 -#: dashboards/nova/instances_and_volumes/instances/views.py:79 +#: dashboards/nova/instances/tabs.py:69 dashboards/nova/instances/views.py:121 #, python-format msgid "Unable to get VNC console for instance \"%s\"." msgstr "" -#: dashboards/nova/instances_and_volumes/instances/views.py:95 +#: dashboards/nova/instances/views.py:58 +msgid "Unable to retrieve instances." +msgstr "" + +#: dashboards/nova/instances/views.py:81 +#: dashboards/syspanel/instances/views.py:89 +msgid "Unable to retrieve instance size information." +msgstr "" + +#: dashboards/nova/instances/views.py:137 msgid "Unable to retrieve instance details." msgstr "" -#: dashboards/nova/instances_and_volumes/instances/views.py:130 +#: dashboards/nova/instances/views.py:172 #, python-format msgid "Unable to retrieve details for instance \"%s\"." msgstr "" -#: dashboards/nova/instances_and_volumes/instances/workflows.py:34 -#: dashboards/syspanel/projects/tables.py:91 +#: dashboards/nova/instances/workflows.py:33 +#: dashboards/syspanel/projects/tables.py:92 #: dashboards/syspanel/users/tables.py:39 #: dashboards/syspanel/users/tables.py:73 tests/workflows_tests.py:40 msgid "User" msgstr "" -#: dashboards/nova/instances_and_volumes/instances/workflows.py:48 +#: dashboards/nova/instances/workflows.py:47 msgid "Project & User" msgstr "" -#: dashboards/nova/instances_and_volumes/instances/workflows.py:50 +#: dashboards/nova/instances/workflows.py:49 msgid "" "Admin users may optionally select the project and user for whom the instance " "should be created." msgstr "" -#: dashboards/nova/instances_and_volumes/instances/workflows.py:61 +#: dashboards/nova/instances/workflows.py:60 msgid "Don't boot from a volume." msgstr "" -#: dashboards/nova/instances_and_volumes/instances/workflows.py:62 +#: dashboards/nova/instances/workflows.py:61 msgid "Boot from volume." msgstr "" -#: dashboards/nova/instances_and_volumes/instances/workflows.py:63 +#: dashboards/nova/instances/workflows.py:62 msgid "Boot from volume snapshot (creates a new volume)." msgstr "" -#: dashboards/nova/instances_and_volumes/instances/workflows.py:67 -#: dashboards/nova/instances_and_volumes/instances/workflows.py:85 +#: dashboards/nova/instances/workflows.py:66 +#: dashboards/nova/instances/workflows.py:84 msgid "Volume Options" msgstr "" -#: dashboards/nova/instances_and_volumes/instances/workflows.py:70 -#: dashboards/nova/instances_and_volumes/instances/workflows.py:104 -#: dashboards/nova/instances_and_volumes/volumes/tables.py:35 -#: dashboards/nova/instances_and_volumes/volumes/tables.py:145 -#: dashboards/nova/templates/nova/instances_and_volumes/instances/_detail_overview.html:83 +#: dashboards/nova/instances/workflows.py:69 +#: dashboards/nova/instances/workflows.py:104 +#: dashboards/nova/instances/templates/instances/_detail_overview.html:93 +#: dashboards/nova/volumes/tables.py:36 dashboards/nova/volumes/tables.py:171 msgid "Volume" msgstr "" -#: dashboards/nova/instances_and_volumes/instances/workflows.py:73 +#: dashboards/nova/instances/workflows.py:72 msgid "Device Name" msgstr "" -#: dashboards/nova/instances_and_volumes/instances/workflows.py:76 +#: dashboards/nova/instances/workflows.py:75 msgid "Volume mount point (e.g. 'vda' mounts at '/dev/vda')." msgstr "" -#: dashboards/nova/instances_and_volumes/instances/workflows.py:78 +#: dashboards/nova/instances/workflows.py:77 msgid "Delete on Terminate" msgstr "" -#: dashboards/nova/instances_and_volumes/instances/workflows.py:81 +#: dashboards/nova/instances/workflows.py:80 msgid "Delete volume on instance terminate" msgstr "" -#: dashboards/nova/instances_and_volumes/instances/workflows.py:111 +#: dashboards/nova/instances/workflows.py:111 msgid "Select Volume" msgstr "" -#: dashboards/nova/instances_and_volumes/instances/workflows.py:119 -#: dashboards/nova/instances_and_volumes/instances/workflows.py:132 -msgid "Unable to retrieve list of volumes" +#: dashboards/nova/instances/workflows.py:119 +msgid "Unable to retrieve list of volumes." msgstr "" -#: dashboards/nova/instances_and_volumes/instances/workflows.py:123 +#: dashboards/nova/instances/workflows.py:123 msgid "Select Volume Snapshot" msgstr "" -#: dashboards/nova/instances_and_volumes/instances/workflows.py:164 +#: dashboards/nova/instances/workflows.py:132 +msgid "Unable to retrieve list of volume snapshots." +msgstr "" + +#: dashboards/nova/instances/workflows.py:165 msgid "Instance Source" msgstr "" -#: dashboards/nova/instances_and_volumes/instances/workflows.py:167 +#: dashboards/nova/instances/workflows.py:168 msgid "Instance Snapshot" msgstr "" -#: dashboards/nova/instances_and_volumes/instances/workflows.py:169 +#: dashboards/nova/instances/workflows.py:170 msgid "Server Name" msgstr "" -#: dashboards/nova/instances_and_volumes/instances/workflows.py:170 +#: dashboards/nova/instances/workflows.py:171 +#: dashboards/nova/instances/templates/instances/_detail_overview.html:22 #: dashboards/syspanel/flavors/tables.py:13 msgid "Flavor" msgstr "" -#: dashboards/nova/instances_and_volumes/instances/workflows.py:171 +#: dashboards/nova/instances/workflows.py:172 msgid "Size of image to launch." msgstr "" -#: dashboards/nova/instances_and_volumes/instances/workflows.py:172 -#: dashboards/nova/templates/nova/instances_and_volumes/instances/_launch_details_help.html:21 +#: dashboards/nova/instances/workflows.py:173 msgid "Instance Count" msgstr "" -#: dashboards/nova/instances_and_volumes/instances/workflows.py:175 +#: dashboards/nova/instances/workflows.py:176 msgid "Number of instances to launch." msgstr "" -#: dashboards/nova/instances_and_volumes/instances/workflows.py:178 +#: dashboards/nova/instances/workflows.py:179 msgid "Details" msgstr "" -#: dashboards/nova/instances_and_volumes/instances/workflows.py:197 +#: dashboards/nova/instances/workflows.py:198 msgid "" "Launching multiple instances is only supported for images and instance " "snapshots." msgstr "" -#: dashboards/nova/instances_and_volumes/instances/workflows.py:240 +#: dashboards/nova/instances/workflows.py:214 +msgid "Unable to retrieve public images." +msgstr "" + +#: dashboards/nova/instances/workflows.py:228 +msgid "Unable to retrieve images for the current project." +msgstr "" + +#: dashboards/nova/instances/workflows.py:251 msgid "Select Image" msgstr "" -#: dashboards/nova/instances_and_volumes/instances/workflows.py:242 +#: dashboards/nova/instances/workflows.py:253 msgid "No images available." msgstr "" -#: dashboards/nova/instances_and_volumes/instances/workflows.py:251 +#: dashboards/nova/instances/workflows.py:262 msgid "Select Instance Snapshot" msgstr "" -#: dashboards/nova/instances_and_volumes/instances/workflows.py:253 +#: dashboards/nova/instances/workflows.py:264 msgid "No snapshots available." msgstr "" -#: dashboards/nova/instances_and_volumes/instances/workflows.py:264 +#: dashboards/nova/instances/workflows.py:275 msgid "Unable to retrieve instance flavors." msgstr "" -#: dashboards/nova/instances_and_volumes/instances/workflows.py:301 +#: dashboards/nova/instances/workflows.py:288 +msgid "Unable to retrieve quota information." +msgstr "" + +#: dashboards/nova/instances/workflows.py:318 msgid "Which keypair to use for authentication." msgstr "" -#: dashboards/nova/instances_and_volumes/instances/workflows.py:307 +#: dashboards/nova/instances/workflows.py:324 msgid "Launch instance in these security groups." msgstr "" -#: dashboards/nova/instances_and_volumes/instances/workflows.py:312 +#: dashboards/nova/instances/workflows.py:329 msgid "" "Control access to your instance via keypairs, security groups, and other " "mechanisms." msgstr "" -#: dashboards/nova/instances_and_volumes/instances/workflows.py:322 +#: dashboards/nova/instances/workflows.py:339 msgid "Unable to retrieve keypairs." msgstr "" -#: dashboards/nova/instances_and_volumes/instances/workflows.py:324 +#: dashboards/nova/instances/workflows.py:341 msgid "Select a keypair" msgstr "" -#: dashboards/nova/instances_and_volumes/instances/workflows.py:326 +#: dashboards/nova/instances/workflows.py:343 msgid "No keypairs available." msgstr "" -#: dashboards/nova/instances_and_volumes/instances/workflows.py:335 +#: dashboards/nova/instances/workflows.py:352 msgid "Unable to retrieve list of security groups" msgstr "" -#: dashboards/nova/instances_and_volumes/instances/workflows.py:355 +#: dashboards/nova/instances/workflows.py:372 msgid "Customization Script" msgstr "" -#: dashboards/nova/instances_and_volumes/instances/workflows.py:357 +#: dashboards/nova/instances/workflows.py:374 msgid "" "A script or set of commands to be executed after the instance has been built " "(max 16kb)." msgstr "" -#: dashboards/nova/instances_and_volumes/instances/workflows.py:364 +#: dashboards/nova/instances/workflows.py:381 msgid "Post-Creation" msgstr "" -#: dashboards/nova/instances_and_volumes/instances/workflows.py:378 +#: dashboards/nova/instances/workflows.py:395 #, python-format -msgid "Instance \"%s\" launched." +msgid "Launched %(count)s named \"%(name)s\"." msgstr "" -#: dashboards/nova/instances_and_volumes/instances/workflows.py:379 +#: dashboards/nova/instances/workflows.py:396 #, python-format -msgid "Unable to launch instance \"%s\"." +msgid "Unable to launch %(count)s named \"%(name)s\"." msgstr "" -#: dashboards/nova/instances_and_volumes/volumes/forms.py:42 +#: dashboards/nova/instances/workflows.py:408 #, python-format -msgid "Error Creating Volume: %s" +msgid "%s instances" msgstr "" -#: dashboards/nova/instances_and_volumes/volumes/forms.py:48 -msgid "Select an instance to attach to." +#: dashboards/nova/instances/workflows.py:411 +msgid "instance" msgstr "" -#: dashboards/nova/instances_and_volumes/volumes/forms.py:86 -#, python-format -msgid "Attaching volume %(vol)s to instance %(inst)s at %(dev)s" -msgstr "" - -#: dashboards/nova/instances_and_volumes/volumes/forms.py:95 -#, python-format -msgid "Error attaching volume: %s" -msgstr "" - -#: dashboards/nova/instances_and_volumes/volumes/forms.py:120 -#, python-format -msgid "Creating volume snapshot \"%s\"" -msgstr "" - -#: dashboards/nova/instances_and_volumes/volumes/forms.py:125 -#, python-format -msgid "Error Creating Volume Snapshot: %(exc)s" -msgstr "" - -#: dashboards/nova/instances_and_volumes/volumes/tables.py:36 -#: dashboards/nova/instances_and_volumes/volumes/tables.py:134 -#: dashboards/nova/instances_and_volumes/volumes/tables.py:146 -#: dashboards/nova/templates/nova/instances_and_volumes/instances/_detail_overview.html:78 -#: dashboards/syspanel/projects/forms.py:116 -msgid "Volumes" -msgstr "" - -#: dashboards/nova/instances_and_volumes/volumes/tables.py:49 -#: dashboards/nova/templates/nova/instances_and_volumes/volumes/_create.html:8 -#: dashboards/nova/templates/nova/instances_and_volumes/volumes/_create.html:23 -msgid "Create Volume" -msgstr "" - -#: dashboards/nova/instances_and_volumes/volumes/tables.py:56 -msgid "Edit Attachments" -msgstr "" - -#: dashboards/nova/instances_and_volumes/volumes/tables.py:66 -#: dashboards/nova/templates/nova/images_and_snapshots/snapshots/_create.html:8 -#: dashboards/nova/templates/nova/images_and_snapshots/snapshots/_create.html:23 -#: dashboards/nova/templates/nova/images_and_snapshots/snapshots/create.html:3 -msgid "Create Snapshot" -msgstr "" - -#: dashboards/nova/instances_and_volumes/volumes/tables.py:83 -#: templatetags/sizeformat.py:58 -#, python-format -msgid "%s GB" -msgstr "" - -#: dashboards/nova/instances_and_volumes/volumes/tables.py:130 -#: dashboards/nova/templates/nova/instances_and_volumes/volumes/_detail_overview.html:34 -msgid "Attachments" -msgstr "" - -#: dashboards/nova/instances_and_volumes/volumes/tables.py:143 -msgid "Detach" -msgstr "" - -#: dashboards/nova/instances_and_volumes/volumes/tables.py:144 -msgid "Detached" -msgstr "" - -#: dashboards/nova/instances_and_volumes/volumes/tabs.py:41 -msgid "Unable to retrieve volume details." -msgstr "" - -#: dashboards/nova/instances_and_volumes/volumes/views.py:71 -#: dashboards/nova/instances_and_volumes/volumes/views.py:81 -msgid "Unable to retrieve volume information." -msgstr "" - -#: dashboards/nova/templates/nova/access_and_security/index.html:6 -msgid "Access & Security" -msgstr "" - -#: dashboards/nova/templates/nova/access_and_security/floating_ips/_allocate.html:8 -#: dashboards/nova/templates/nova/access_and_security/floating_ips/allocate.html:3 -msgid "Allocate Floating IP" -msgstr "" - -#: dashboards/nova/templates/nova/access_and_security/floating_ips/_allocate.html:17 -#: dashboards/nova/templates/nova/access_and_security/floating_ips/_associate.html:16 -#: dashboards/nova/templates/nova/images_and_snapshots/images/_update.html:16 -#: dashboards/nova/templates/nova/images_and_snapshots/snapshots/_create.html:17 -#: dashboards/nova/templates/nova/instances_and_volumes/instances/_update.html:16 -#: dashboards/settings/templates/settings/ec2/download_form.html:17 -#: dashboards/settings/templates/settings/project/_openrc.html:17 -#: dashboards/settings/templates/settings/user/_language.html:30 -msgid "Description:" -msgstr "" - -#: dashboards/nova/templates/nova/access_and_security/floating_ips/_allocate.html:18 -msgid "Allocate a floating IP from a given floating ip pool." -msgstr "" - -#: dashboards/nova/templates/nova/access_and_security/floating_ips/_allocate.html:20 -#: dashboards/nova/templates/nova/instances_and_volumes/instances/_launch_details_help.html:19 -msgid "Project Quotas" -msgstr "" - -#: dashboards/nova/templates/nova/access_and_security/floating_ips/_allocate.html:31 -msgid "Allocate IP" -msgstr "" - -#: dashboards/nova/templates/nova/access_and_security/floating_ips/_allocate.html:32 -#: dashboards/nova/templates/nova/access_and_security/floating_ips/_associate.html:23 -#: dashboards/nova/templates/nova/access_and_security/keypairs/_create.html:24 -#: dashboards/nova/templates/nova/access_and_security/keypairs/_import.html:24 -#: dashboards/nova/templates/nova/access_and_security/security_groups/_create.html:24 -#: dashboards/nova/templates/nova/access_and_security/security_groups/_edit_rules.html:20 -#: dashboards/nova/templates/nova/containers/_create.html:23 -#: dashboards/nova/templates/nova/images_and_snapshots/images/_update.html:23 -#: dashboards/nova/templates/nova/images_and_snapshots/snapshots/_create.html:24 -#: dashboards/nova/templates/nova/instances_and_volumes/instances/_update.html:23 -#: dashboards/nova/templates/nova/instances_and_volumes/volumes/_attach.html:20 -#: dashboards/nova/templates/nova/instances_and_volumes/volumes/_create.html:24 -#: dashboards/nova/templates/nova/instances_and_volumes/volumes/_create_snapshot.html:24 -#: dashboards/nova/templates/nova/objects/_copy.html:23 -#: dashboards/nova/templates/nova/objects/_upload.html:24 -#: dashboards/settings/templates/settings/ec2/download_form.html:24 -#: dashboards/settings/templates/settings/project/_openrc.html:24 -#: dashboards/settings/templates/settings/user/_language.html:37 -#: dashboards/syspanel/templates/syspanel/flavors/_create.html:24 -#: dashboards/syspanel/templates/syspanel/images/_update.html:24 -#: dashboards/syspanel/templates/syspanel/projects/_add_user.html:24 -#: dashboards/syspanel/templates/syspanel/projects/_create.html:24 -#: dashboards/syspanel/templates/syspanel/projects/_quotas.html:23 -#: dashboards/syspanel/templates/syspanel/projects/_update.html:24 -#: dashboards/syspanel/templates/syspanel/users/_create.html:23 -#: dashboards/syspanel/templates/syspanel/users/_update.html:23 -#: templates/horizon/common/_workflow.html:29 -msgid "Cancel" -msgstr "" - -#: dashboards/nova/templates/nova/access_and_security/floating_ips/_associate.html:7 -#: dashboards/nova/templates/nova/access_and_security/floating_ips/associate.html:7 -msgid "Associate Floating IP" -msgstr "" - -#: dashboards/nova/templates/nova/access_and_security/floating_ips/_associate.html:17 -msgid "Associate a floating ip with an instance." -msgstr "" - -#: dashboards/nova/templates/nova/access_and_security/keypairs/_create.html:17 -#: dashboards/nova/templates/nova/access_and_security/keypairs/_import.html:17 -msgid "" -"Keypairs are ssh credentials which are injected into images when they are " -"launched. Creating a new key pair registers the public key and downloads the " -"private key (a .pem file)." -msgstr "" - -#: dashboards/nova/templates/nova/access_and_security/keypairs/_create.html:18 -#: dashboards/nova/templates/nova/access_and_security/keypairs/_import.html:18 -msgid "Protect and use the key as you would any normal ssh private key." -msgstr "" - -#: dashboards/nova/templates/nova/access_and_security/keypairs/download.html:3 -#: dashboards/nova/templates/nova/access_and_security/keypairs/download.html:6 -msgid "Download Keypair" -msgstr "" - -#: dashboards/nova/templates/nova/access_and_security/keypairs/download.html:11 -#, python-format -msgid "" -"The keypair "%(keypair_name)s" should download automatically. If " -"not use the link below." -msgstr "" - -#: dashboards/nova/templates/nova/access_and_security/keypairs/download.html:15 -#, python-format -msgid "Download keypair "%(keypair_name)s"" -msgstr "" - -#: dashboards/nova/templates/nova/access_and_security/security_groups/_create.html:18 -msgid "From here you can create a new security group" -msgstr "" - -#: dashboards/nova/templates/nova/access_and_security/security_groups/_edit_rules.html:9 -#: dashboards/nova/templates/nova/access_and_security/security_groups/edit_rules.html:6 -msgid "Edit Security Group Rules" -msgstr "" - -#: dashboards/nova/templates/nova/access_and_security/security_groups/_edit_rules.html:12 -#: dashboards/nova/templates/nova/access_and_security/security_groups/_edit_rules.html:19 -msgid "Add Rule" -msgstr "" - -#: dashboards/nova/templates/nova/containers/_create.html:17 -msgid "" -"A container is a storage compartment for your data and provides a way for " -"you to organize your data. You can think of a container as a folder in " -"Windows ® or a directory in UNIX ®. The primary difference between a " -"container and these other file system concepts is that containers cannot be " -"nested. You can, however, create an unlimited number of containers within " -"your account. Data must be stored in a container so you must have at least " -"one container defined in your account prior to uploading data." -msgstr "" - -#: dashboards/nova/templates/nova/images_and_snapshots/index.html:3 -#: dashboards/nova/templates/nova/images_and_snapshots/index.html:6 -msgid "Images & Snapshots" -msgstr "" - -#: dashboards/nova/templates/nova/images_and_snapshots/images/_detail_overview.html:3 -msgid "Image Overview" -msgstr "" - -#: dashboards/nova/templates/nova/images_and_snapshots/images/_detail_overview.html:6 -#: dashboards/nova/templates/nova/instances_and_volumes/instances/_detail_overview.html:6 -#: dashboards/nova/templates/nova/instances_and_volumes/volumes/_detail_overview.html:6 -msgid "Info" -msgstr "" - -#: dashboards/nova/templates/nova/images_and_snapshots/images/_detail_overview.html:11 -#: dashboards/nova/templates/nova/instances_and_volumes/instances/_detail_overview.html:11 -#: dashboards/nova/templates/nova/instances_and_volumes/volumes/_detail_overview.html:11 -#: dashboards/syspanel/projects/forms.py:83 -#: dashboards/syspanel/users/forms.py:104 -#: dashboards/syspanel/users/tables.py:106 -msgid "ID" -msgstr "" - -#: dashboards/nova/templates/nova/images_and_snapshots/images/_detail_overview.html:17 -msgid "Checksum" -msgstr "" - -#: dashboards/nova/templates/nova/images_and_snapshots/images/_detail_overview.html:19 -#: dashboards/nova/templates/nova/instances_and_volumes/volumes/_detail_overview.html:28 -msgid "Created" -msgstr "" - -#: dashboards/nova/templates/nova/images_and_snapshots/images/_detail_overview.html:21 -msgid "Updated" -msgstr "" - -#: dashboards/nova/templates/nova/images_and_snapshots/images/_detail_overview.html:27 -#: dashboards/nova/templates/nova/instances_and_volumes/instances/_detail_overview.html:19 -#: dashboards/nova/templates/nova/instances_and_volumes/volumes/_detail_overview.html:23 -msgid "Specs" -msgstr "" - -#: dashboards/nova/templates/nova/images_and_snapshots/images/_detail_overview.html:40 -msgid "Custom Properties" -msgstr "" - -#: dashboards/nova/templates/nova/images_and_snapshots/images/_detail_overview.html:56 -msgid "Euca2ools state" -msgstr "" - -#: dashboards/nova/templates/nova/images_and_snapshots/images/_detail_overview.html:60 -#: usage/tables.py:28 -msgid "Project ID" -msgstr "" - -#: dashboards/nova/templates/nova/images_and_snapshots/images/_detail_overview.html:64 -msgid "Image Type" -msgstr "" - -#: dashboards/nova/templates/nova/images_and_snapshots/images/_update.html:7 -#: dashboards/nova/templates/nova/images_and_snapshots/images/_update.html:22 -#: dashboards/nova/templates/nova/images_and_snapshots/images/update.html:3 -#: dashboards/nova/templates/nova/images_and_snapshots/images/update.html:6 -#: dashboards/syspanel/templates/syspanel/images/_update.html:8 -#: dashboards/syspanel/templates/syspanel/images/_update.html:23 -#: dashboards/syspanel/templates/syspanel/images/update.html:4 -#: dashboards/syspanel/templates/syspanel/images/update.html:7 -msgid "Update Image" -msgstr "" - -#: dashboards/nova/templates/nova/images_and_snapshots/images/_update.html:17 -#: dashboards/syspanel/templates/syspanel/images/_update.html:18 -msgid "From here you can modify different properties of an image." -msgstr "" - -#: dashboards/nova/templates/nova/images_and_snapshots/images/detail.html:4 -msgid "Image Detail " -msgstr "" - -#: dashboards/nova/templates/nova/images_and_snapshots/snapshots/_create.html:18 -msgid "Snapshots preserve the disk state of a running instance." -msgstr "" - -#: dashboards/nova/templates/nova/images_and_snapshots/snapshots/create.html:6 -msgid "Create a Snapshot" -msgstr "" - -#: dashboards/nova/templates/nova/instances_and_volumes/index.html:6 -msgid "Instances & Volumes" -msgstr "" - -#: dashboards/nova/templates/nova/instances_and_volumes/instances/_detail_log.html:7 +#: dashboards/nova/instances/templates/instances/_detail_log.html:7 msgid "View Full Log" msgstr "" -#: dashboards/nova/templates/nova/instances_and_volumes/instances/_detail_overview.html:3 +#: dashboards/nova/instances/templates/instances/_detail_overview.html:3 msgid "Instance Overview" msgstr "" -#: dashboards/nova/templates/nova/instances_and_volumes/instances/_detail_overview.html:22 -#: dashboards/nova/templates/nova/instances_and_volumes/instances/_launch_details_help.html:14 -#: usage/tables.py:21 +#: dashboards/nova/instances/templates/instances/_detail_overview.html:24 +#: dashboards/nova/instances/templates/instances/_launch_details_help.html:14 +#: usage/tables.py:22 msgid "RAM" msgstr "" -#: dashboards/nova/templates/nova/instances_and_volumes/instances/_detail_overview.html:24 -#: dashboards/nova/templates/nova/instances_and_volumes/instances/_launch_details_help.html:10 -#: dashboards/nova/templates/nova/instances_and_volumes/instances/_launch_details_help.html:28 +#: dashboards/nova/instances/templates/instances/_detail_overview.html:26 +#: dashboards/nova/instances/templates/instances/_launch_details_help.html:10 #: dashboards/syspanel/flavors/forms.py:38 #: dashboards/syspanel/flavors/tables.py:30 -#: dashboards/syspanel/projects/forms.py:114 usage/tables.py:18 +#: dashboards/syspanel/projects/forms.py:114 usage/tables.py:19 msgid "VCPUs" msgstr "" -#: dashboards/nova/templates/nova/instances_and_volumes/instances/_detail_overview.html:25 +#: dashboards/nova/instances/templates/instances/_detail_overview.html:27 msgid "VCPU" msgstr "" -#: dashboards/nova/templates/nova/instances_and_volumes/instances/_detail_overview.html:26 -#: dashboards/nova/templates/nova/instances_and_volumes/instances/_launch_details_help.html:35 -#: usage/tables.py:19 +#: dashboards/nova/instances/templates/instances/_detail_overview.html:28 +#: usage/tables.py:20 msgid "Disk" msgstr "" -#: dashboards/nova/templates/nova/instances_and_volumes/instances/_detail_overview.html:27 -#: dashboards/nova/templates/nova/instances_and_volumes/instances/_launch_details_help.html:11 -#: dashboards/nova/templates/nova/instances_and_volumes/instances/_launch_details_help.html:12 -#: dashboards/nova/templates/nova/instances_and_volumes/instances/_launch_details_help.html:13 -#: dashboards/nova/templates/nova/instances_and_volumes/instances/_launch_details_help.html:35 -#: dashboards/nova/templates/nova/instances_and_volumes/volumes/_detail_overview.html:27 +#: dashboards/nova/instances/templates/instances/_detail_overview.html:29 +#: dashboards/nova/instances/templates/instances/_launch_details_help.html:11 +#: dashboards/nova/instances/templates/instances/_launch_details_help.html:12 +#: dashboards/nova/instances/templates/instances/_launch_details_help.html:13 +#: dashboards/nova/volumes/templates/volumes/_detail_overview.html:27 msgid "GB" msgstr "" -#: dashboards/nova/templates/nova/instances_and_volumes/instances/_detail_overview.html:32 +#: dashboards/nova/instances/templates/instances/_detail_overview.html:34 msgid "IP Addresses" msgstr "" -#: dashboards/nova/templates/nova/instances_and_volumes/instances/_detail_overview.html:57 +#: dashboards/nova/instances/templates/instances/_detail_overview.html:59 msgid "No rules defined." msgstr "" -#: dashboards/nova/templates/nova/instances_and_volumes/instances/_detail_overview.html:66 +#: dashboards/nova/instances/templates/instances/_detail_overview.html:68 msgid "Meta" msgstr "" -#: dashboards/nova/templates/nova/instances_and_volumes/instances/_detail_overview.html:69 +#: dashboards/nova/instances/templates/instances/_detail_overview.html:71 msgid "Key Name" msgstr "" -#: dashboards/nova/templates/nova/instances_and_volumes/instances/_detail_overview.html:93 +#: dashboards/nova/instances/templates/instances/_detail_overview.html:84 +msgid "Volumes Attached" +msgstr "" + +#: dashboards/nova/instances/templates/instances/_detail_overview.html:88 +#: dashboards/nova/volumes/tables.py:156 +#: dashboards/nova/volumes/templates/volumes/_detail_overview.html:38 +#: dashboards/nova/volumes/templates/volumes/_detail_overview.html:45 +msgid "Attached To" +msgstr "" + +#: dashboards/nova/instances/templates/instances/_detail_overview.html:90 +#: dashboards/nova/volumes/templates/volumes/_detail_overview.html:42 +msgid "on" +msgstr "" + +#: dashboards/nova/instances/templates/instances/_detail_overview.html:94 msgid "No volumes attached." msgstr "" -#: dashboards/nova/templates/nova/instances_and_volumes/instances/_detail_vnc.html:3 +#: dashboards/nova/instances/templates/instances/_detail_vnc.html:3 msgid "Instance VNC Console" msgstr "" -#: dashboards/nova/templates/nova/instances_and_volumes/instances/_detail_vnc.html:5 +#: dashboards/nova/instances/templates/instances/_detail_vnc.html:5 msgid "" "If VNC console is not responding to keyboard input: click the grey status " "bar below." msgstr "" -#: dashboards/nova/templates/nova/instances_and_volumes/instances/_detail_vnc.html:5 +#: dashboards/nova/instances/templates/instances/_detail_vnc.html:5 msgid "Click here to show only VNC" msgstr "" -#: dashboards/nova/templates/nova/instances_and_volumes/instances/_detail_vnc.html:8 +#: dashboards/nova/instances/templates/instances/_detail_vnc.html:8 msgid "VNC console is currently unavailabe. Please try again later." msgstr "" -#: dashboards/nova/templates/nova/instances_and_volumes/instances/_detail_vnc.html:9 +#: dashboards/nova/instances/templates/instances/_detail_vnc.html:9 msgid "Reload" msgstr "" -#: dashboards/nova/templates/nova/instances_and_volumes/instances/_launch_customize_help.html:2 +#: dashboards/nova/instances/templates/instances/_launch_customize_help.html:2 msgid "" "You can customize your instance after it's launched using the options " "available here." msgstr "" -#: dashboards/nova/templates/nova/instances_and_volumes/instances/_launch_customize_help.html:3 +#: dashboards/nova/instances/templates/instances/_launch_customize_help.html:3 msgid "" "The \"Customization Script\" field is analogous to \"User Data\" in other " "systems." msgstr "" -#: dashboards/nova/templates/nova/instances_and_volumes/instances/_launch_details_help.html:3 +#: dashboards/nova/instances/templates/instances/_launch_details_help.html:3 msgid "Specify the details for launching an instance." msgstr "" -#: dashboards/nova/templates/nova/instances_and_volumes/instances/_launch_details_help.html:4 +#: dashboards/nova/instances/templates/instances/_launch_details_help.html:4 msgid "" "The chart below shows the resources used by this project in relation to the " "project's quotas." msgstr "" -#: dashboards/nova/templates/nova/instances_and_volumes/instances/_launch_details_help.html:6 +#: dashboards/nova/instances/templates/instances/_launch_details_help.html:6 msgid "Flavor Details" msgstr "" -#: dashboards/nova/templates/nova/instances_and_volumes/instances/_launch_details_help.html:11 +#: dashboards/nova/instances/templates/instances/_launch_details_help.html:11 #: dashboards/syspanel/flavors/tables.py:32 msgid "Root Disk" msgstr "" -#: dashboards/nova/templates/nova/instances_and_volumes/instances/_launch_details_help.html:12 +#: dashboards/nova/instances/templates/instances/_launch_details_help.html:12 #: dashboards/syspanel/flavors/tables.py:34 msgid "Ephemeral Disk" msgstr "" -#: dashboards/nova/templates/nova/instances_and_volumes/instances/_launch_details_help.html:13 +#: dashboards/nova/instances/templates/instances/_launch_details_help.html:13 msgid "Total Disk" msgstr "" -#: dashboards/nova/templates/nova/instances_and_volumes/instances/_launch_details_help.html:14 -#: dashboards/nova/templates/nova/instances_and_volumes/instances/_launch_details_help.html:42 +#: dashboards/nova/instances/templates/instances/_launch_details_help.html:14 +#: dashboards/nova/instances/templates/instances/_launch_details_help.html:37 msgid "MB" msgstr "" -#: dashboards/nova/templates/nova/instances_and_volumes/instances/_launch_details_help.html:42 -#: dashboards/syspanel/flavors/tables.py:31 -msgid "Memory" +#: dashboards/nova/instances/templates/instances/_launch_details_help.html:21 +msgid "Number of Instances" msgstr "" -#: dashboards/nova/templates/nova/instances_and_volumes/instances/_launch_volumes_help.html:3 +#: dashboards/nova/instances/templates/instances/_launch_details_help.html:29 +msgid "Number of VCPUs" +msgstr "" + +#: dashboards/nova/instances/templates/instances/_launch_details_help.html:37 +msgid "Total Memory" +msgstr "" + +#: dashboards/nova/instances/templates/instances/_launch_volumes_help.html:3 msgid "" "An instance can be launched with varying types of attached storage. You may " "select from those options here." msgstr "" -#: dashboards/nova/templates/nova/instances_and_volumes/instances/_update.html:17 +#: dashboards/nova/instances/templates/instances/_update.html:17 msgid "You may update the editable properties of your instance here." msgstr "" -#: dashboards/nova/templates/nova/instances_and_volumes/instances/_update.html:22 +#: dashboards/nova/instances/templates/instances/_update.html:22 msgid "Save Changes" msgstr "" -#: dashboards/nova/templates/nova/instances_and_volumes/instances/detail.html:3 +#: dashboards/nova/instances/templates/instances/detail.html:3 msgid "Instance Detail" msgstr "" -#: dashboards/nova/templates/nova/instances_and_volumes/instances/update.html:3 -#: dashboards/nova/templates/nova/instances_and_volumes/instances/update.html:6 +#: dashboards/nova/instances/templates/instances/update.html:3 +#: dashboards/nova/instances/templates/instances/update.html:6 msgid "Update Instance" msgstr "" -#: dashboards/nova/templates/nova/instances_and_volumes/volumes/_attach.html:9 -#: dashboards/nova/templates/nova/instances_and_volumes/volumes/attach.html:6 +#: dashboards/nova/templates/nova/_warning.html:6 +msgid "You currently have the power to damage your OpenStack cloud..." +msgstr "" + +#: dashboards/nova/templates/nova/_warning.html:9 +msgid "" +"Due to inconsistencies in the way Nova interacts with Keystone, a user with " +"an admin role has access to all resources in the system (volumes, snapshots, " +"keypairs, etc.), even in the Project dashboard where they should only see a " +"properly-scoped subset of those resources." +msgstr "" + +#: dashboards/nova/templates/nova/_warning.html:10 +msgid "" +"This means that Nova allows an admin user in the Project Dashboard to " +"successfully take actions which otherwise should not be permitted, causing " +"irresolvable conflicts in Nova." +msgstr "" + +#: dashboards/nova/templates/nova/_warning.html:11 +msgid "A list of the known problems are as follows:" +msgstr "" + +#: dashboards/nova/templates/nova/_warning.html:13 +msgid "" +"Attaching a volume owned by project A to an instance in project B can " +"completely hang Nova." +msgstr "" + +#: dashboards/nova/templates/nova/_warning.html:14 +msgid "" +"Assigning keypairs owned by project A to an instance in project B can result " +"in failed instances, problems in retrieving instance details for non-admin " +"users, and/or security holes should the instance succeed in spawning." +msgstr "" + +#: dashboards/nova/templates/nova/_warning.html:15 +msgid "" +"Attempting to launch an instance in project A from a snapshot or volume " +"snapshot owned by project B can hang Nova." +msgstr "" + +#: dashboards/nova/templates/nova/_warning.html:16 +msgid "" +"Attempting to boot from a volume owned by project A in project B can hang " +"Nova." +msgstr "" + +#: dashboards/nova/templates/nova/_warning.html:18 +msgid "" +"This is only a list of the reported inconsistencies. There may be others." +msgstr "" + +#: dashboards/nova/templates/nova/_warning.html:19 +msgid "" +"The recommended practice until this problem is resolved is to keep your " +"admin users and regular users separate. Create an \"admin\" project that " +"admin users have access to, and do not grant your admin users the admin role " +"on any other projects." +msgstr "" + +#: dashboards/nova/templates/nova/_warning.html:20 +msgid "" +"To follow the status of this bug, take a look at the following items on " +"launchpad:" +msgstr "" + +#: dashboards/nova/templates/nova/_warning.html:27 +msgid "" +"Thank you for reading this warning and operating your cloud responsibly." +msgstr "" + +#: dashboards/nova/templates/nova/_warning.html:30 +msgid "Close" +msgstr "" + +#: dashboards/nova/templates/nova/base.html:9 +msgid "Caution" +msgstr "" + +#: dashboards/nova/templates/nova/base.html:10 +msgid "You are acting as an admin user in the project dashboard." +msgstr "" + +#: dashboards/nova/templates/nova/base.html:12 +msgid "Learn More" +msgstr "" + +#: dashboards/nova/volumes/forms.py:40 +#, python-format +msgid "" +"A volume of %(req)iGB cannot be created as you only have %(avail)iGB of your " +"quota available." +msgstr "" + +#: dashboards/nova/volumes/forms.py:47 +msgid "You are already using all of your available volumes." +msgstr "" + +#: dashboards/nova/volumes/forms.py:60 +msgid "Unable to create volume." +msgstr "" + +#: dashboards/nova/volumes/forms.py:67 +msgid "Select an instance to attach to." +msgstr "" + +#: dashboards/nova/volumes/forms.py:100 +msgid "Unknown instance (None)" +msgstr "" + +#: dashboards/nova/volumes/forms.py:111 +#, python-format +msgid "Attaching volume %(vol)s to instance %(inst)s on %(dev)s." +msgstr "" + +#: dashboards/nova/volumes/forms.py:118 +msgid "Unable to attach volume." +msgstr "" + +#: dashboards/nova/volumes/forms.py:142 +#, python-format +msgid "Creating volume snapshot \"%s\"" +msgstr "" + +#: dashboards/nova/volumes/forms.py:146 +msgid "Unable to create volume snapshot." +msgstr "" + +#: dashboards/nova/volumes/panel.py:24 dashboards/nova/volumes/tables.py:37 +#: dashboards/nova/volumes/tables.py:160 dashboards/nova/volumes/tables.py:172 +#: dashboards/nova/volumes/templates/volumes/index.html:3 +#: dashboards/nova/volumes/templates/volumes/index.html:6 +#: dashboards/syspanel/projects/forms.py:116 +#: dashboards/syspanel/volumes/panel.py:9 +#: dashboards/syspanel/volumes/tables.py:15 +#: dashboards/syspanel/volumes/templates/volumes/index.html:3 +#: dashboards/syspanel/volumes/templates/volumes/index.html:6 +msgid "Volumes" +msgstr "" + +#: dashboards/nova/volumes/tables.py:50 +#: dashboards/nova/volumes/templates/volumes/_create.html:8 +#: dashboards/nova/volumes/templates/volumes/_create.html:55 +msgid "Create Volume" +msgstr "" + +#: dashboards/nova/volumes/tables.py:57 +msgid "Edit Attachments" +msgstr "" + +#: dashboards/nova/volumes/tables.py:84 +#, python-format +msgid "%sGB" +msgstr "" + +#: dashboards/nova/volumes/tables.py:97 +msgid "Unable to retrieve attachment information." +msgstr "" + +#: dashboards/nova/volumes/tables.py:114 +#, python-format +msgid "Attached to %(instance)s on %(dev)s" +msgstr "" + +#: dashboards/nova/volumes/tables.py:169 +msgid "Detach" +msgstr "" + +#: dashboards/nova/volumes/tables.py:170 +msgid "Detaching" +msgstr "" + +#: dashboards/nova/volumes/tables.py:205 +#, python-format +msgid "%(dev)s on instance %(instance_name)s" +msgstr "" + +#: dashboards/nova/volumes/tabs.py:41 +msgid "Unable to retrieve volume details." +msgstr "" + +#: dashboards/nova/volumes/views.py:50 +msgid "Unable to retrieve volume list." +msgstr "" + +#: dashboards/nova/volumes/views.py:56 +msgid "Unable to retrieve volume/instance attachment information" +msgstr "" + +#: dashboards/nova/volumes/views.py:114 dashboards/nova/volumes/views.py:124 +msgid "Unable to retrieve volume information." +msgstr "" + +#: dashboards/nova/volumes/templates/volumes/_attach.html:9 +#: dashboards/nova/volumes/templates/volumes/attach.html:6 msgid "Manage Volume Attachments" msgstr "" -#: dashboards/nova/templates/nova/instances_and_volumes/volumes/_attach.html:12 +#: dashboards/nova/volumes/templates/volumes/_attach.html:12 msgid "Attach To Instance" msgstr "" -#: dashboards/nova/templates/nova/instances_and_volumes/volumes/_attach.html:19 +#: dashboards/nova/volumes/templates/volumes/_attach.html:19 msgid "Attach Volume" msgstr "" -#: dashboards/nova/templates/nova/instances_and_volumes/volumes/_create.html:18 -#: dashboards/nova/templates/nova/instances_and_volumes/volumes/_create_snapshot.html:18 +#: dashboards/nova/volumes/templates/volumes/_create.html:20 +#: dashboards/nova/volumes/templates/volumes/_create_snapshot.html:18 msgid "Volumes are block devices that can be attached to instances." msgstr "" -#: dashboards/nova/templates/nova/instances_and_volumes/volumes/_create_snapshot.html:8 -#: dashboards/nova/templates/nova/instances_and_volumes/volumes/_create_snapshot.html:23 -#: dashboards/nova/templates/nova/instances_and_volumes/volumes/create_snapshot.html:3 +#: dashboards/nova/volumes/templates/volumes/_create.html:22 +msgid "Volume Quotas" +msgstr "" + +#: dashboards/nova/volumes/templates/volumes/_create.html:25 +msgid "Total Gigabytes" +msgstr "" + +#: dashboards/nova/volumes/templates/volumes/_create.html:34 +msgid "Number of Volumes" +msgstr "" + +#: dashboards/nova/volumes/templates/volumes/_create_snapshot.html:8 +#: dashboards/nova/volumes/templates/volumes/_create_snapshot.html:23 +#: dashboards/nova/volumes/templates/volumes/create_snapshot.html:3 msgid "Create Volume Snapshot" msgstr "" -#: dashboards/nova/templates/nova/instances_and_volumes/volumes/_detail_overview.html:3 +#: dashboards/nova/volumes/templates/volumes/_detail_overview.html:3 msgid "Volume Overview" msgstr "" -#: dashboards/nova/templates/nova/instances_and_volumes/volumes/_detail_overview.html:38 -msgid "Attached To" +#: dashboards/nova/volumes/templates/volumes/_detail_overview.html:34 +msgid "Attachments" msgstr "" -#: dashboards/nova/templates/nova/instances_and_volumes/volumes/_detail_overview.html:42 -msgid "on" -msgstr "" - -#: dashboards/nova/templates/nova/instances_and_volumes/volumes/_detail_overview.html:47 +#: dashboards/nova/volumes/templates/volumes/_detail_overview.html:46 msgid "Not attached" msgstr "" -#: dashboards/nova/templates/nova/instances_and_volumes/volumes/create.html:6 +#: dashboards/nova/volumes/templates/volumes/create.html:6 msgid "Create a Volume" msgstr "" -#: dashboards/nova/templates/nova/instances_and_volumes/volumes/create_snapshot.html:6 +#: dashboards/nova/volumes/templates/volumes/create_snapshot.html:6 msgid "Create a Volume Snapshot" msgstr "" -#: dashboards/nova/templates/nova/instances_and_volumes/volumes/detail.html:3 +#: dashboards/nova/volumes/templates/volumes/detail.html:3 +#: dashboards/syspanel/volumes/templates/volumes/detail.html:3 msgid "Volume Details" msgstr "" -#: dashboards/nova/templates/nova/instances_and_volumes/volumes/detail.html:6 +#: dashboards/nova/volumes/templates/volumes/detail.html:6 +#: dashboards/syspanel/volumes/templates/volumes/detail.html:6 msgid "Volume Detail" msgstr "" -#: dashboards/nova/templates/nova/objects/_copy.html:7 -#: dashboards/nova/templates/nova/objects/_copy.html:22 -#: dashboards/nova/templates/nova/objects/copy.html:3 -#: dashboards/nova/templates/nova/objects/copy.html:6 -msgid "Copy Object" -msgstr "" - -#: dashboards/nova/templates/nova/objects/_copy.html:17 -msgid "" -"You may make a new copy of an existing object to store in this or another " -"container." -msgstr "" - -#: dashboards/nova/templates/nova/objects/_upload.html:8 -msgid "Upload Object To Container" -msgstr "" - -#: dashboards/nova/templates/nova/objects/_upload.html:18 -msgid "" -"An object is the basic storage entity and any optional metadata that " -"represents the files you store in the OpenStack Object Storage system. When " -"you upload data to OpenStack Object Storage, the data is stored as-is (no " -"compression or encryption) and consists of a location (container), the " -"object's name, and any metadata consisting of key/value pairs." -msgstr "" - -#: dashboards/nova/templates/nova/objects/upload.html:6 -msgid "Upload Objects" -msgstr "" - #: dashboards/settings/dashboard.py:24 msgid "Settings" msgstr "" @@ -1651,11 +1942,11 @@ msgstr "" msgid "Unable to retrieve tenant list." msgstr "" -#: dashboards/settings/ec2/forms.py:95 +#: dashboards/settings/ec2/forms.py:93 msgid "Unable to fetch EC2 credentials." msgstr "" -#: dashboards/settings/ec2/forms.py:108 +#: dashboards/settings/ec2/forms.py:106 #, python-format msgid "Error writing zipfile: %(exc)s" msgstr "" @@ -1664,69 +1955,78 @@ msgstr "" msgid "EC2 Credentials" msgstr "" -#: dashboards/settings/project/forms.py:76 -#, python-format -msgid "Error Downloading RC File: %s" -msgstr "" - -#: dashboards/settings/project/panel.py:24 -msgid "OpenStack Credentials" -msgstr "" - -#: dashboards/settings/templates/settings/ec2/download_form.html:8 -#: dashboards/settings/templates/settings/ec2/download_form.html:23 -#: dashboards/settings/templates/settings/ec2/index.html:3 -#: dashboards/settings/templates/settings/ec2/index.html:6 +#: dashboards/settings/ec2/templates/ec2/download_form.html:8 +#: dashboards/settings/ec2/templates/ec2/download_form.html:23 +#: dashboards/settings/ec2/templates/ec2/index.html:3 +#: dashboards/settings/ec2/templates/ec2/index.html:6 msgid "Download EC2 Credentials" msgstr "" -#: dashboards/settings/templates/settings/ec2/download_form.html:18 +#: dashboards/settings/ec2/templates/ec2/download_form.html:18 msgid "" "Clicking \"Download EC2 Credentials\" will download a zip file which " "includes an rc file with your access/secret keys, as well as your x509 " "private key and certificate." msgstr "" -#: dashboards/settings/templates/settings/project/_openrc.html:8 -#: dashboards/settings/templates/settings/project/settings.html:6 +#: dashboards/settings/project/forms.py:76 +#, python-format +msgid "Error Downloading RC File: %s" +msgstr "" + +#: dashboards/settings/project/panel.py:24 +#: dashboards/settings/project/templates/project/_openrc.html:8 +#: dashboards/settings/project/templates/project/settings.html:3 +#: dashboards/settings/project/templates/project/settings.html:6 +msgid "OpenStack API" +msgstr "" + +#: dashboards/settings/project/tables.py:27 +msgid "Service Name" +msgstr "" + +#: dashboards/settings/project/tables.py:29 +msgid "Service Endpoint" +msgstr "" + +#: dashboards/settings/project/tables.py:33 +msgid "API Endpoints" +msgstr "" + +#: dashboards/settings/project/templates/project/_openrc.html:15 msgid "Download OpenStack RC File" msgstr "" -#: dashboards/settings/templates/settings/project/_openrc.html:18 +#: dashboards/settings/project/templates/project/_openrc.html:25 msgid "" "Download the RC file for the selected project, then type \"source openrc\" " "in the terminal to configure your environment to communicate with OpenStack." msgstr "" -#: dashboards/settings/templates/settings/project/_openrc.html:23 +#: dashboards/settings/project/templates/project/_openrc.html:30 msgid "Download RC File" msgstr "" -#: dashboards/settings/templates/settings/user/_language.html:8 -#: dashboards/settings/templates/settings/user/_language.html:36 -msgid "Select Language" -msgstr "" - -#: dashboards/settings/templates/settings/user/_language.html:12 -msgid "Dashboard User Interface Language" -msgstr "" - -#: dashboards/settings/templates/settings/user/_language.html:14 -msgid "Language Settings" -msgstr "" - -#: dashboards/settings/templates/settings/user/_language.html:31 -msgid "From here you can modify different settings for your dashboard." -msgstr "" - -#: dashboards/settings/templates/settings/user/settings.html:6 -msgid "Dashboard Settings" +#: dashboards/settings/user/forms.py:57 +msgid "Settings saved." msgstr "" #: dashboards/settings/user/panel.py:24 +#: dashboards/settings/user/templates/user/_settings.html:8 +#: dashboards/settings/user/templates/user/settings.html:3 +#: dashboards/settings/user/templates/user/settings.html:6 msgid "User Settings" msgstr "" +#: dashboards/settings/user/templates/user/_settings.html:18 +msgid "From here you can modify dashboard settings for your user." +msgstr "" + +#: dashboards/settings/user/templates/user/_settings.html:23 +#: workflows/base.py:510 +msgid "Save" +msgstr "" + #: dashboards/syspanel/dashboard.py:24 msgid "System Panel" msgstr "" @@ -1759,14 +2059,14 @@ msgstr "" #: dashboards/syspanel/flavors/panel.py:28 #: dashboards/syspanel/flavors/tables.py:14 #: dashboards/syspanel/flavors/tables.py:38 -#: dashboards/syspanel/templates/syspanel/flavors/index.html:8 +#: dashboards/syspanel/flavors/templates/flavors/index.html:8 msgid "Flavors" msgstr "" #: dashboards/syspanel/flavors/tables.py:22 -#: dashboards/syspanel/templates/syspanel/flavors/_create.html:8 -#: dashboards/syspanel/templates/syspanel/flavors/_create.html:23 -#: dashboards/syspanel/templates/syspanel/flavors/create.html:6 +#: dashboards/syspanel/flavors/templates/flavors/_create.html:8 +#: dashboards/syspanel/flavors/templates/flavors/_create.html:23 +#: dashboards/syspanel/flavors/templates/flavors/create.html:6 msgid "Create Flavor" msgstr "" @@ -1774,6 +2074,10 @@ msgstr "" msgid "Flavor Name" msgstr "" +#: dashboards/syspanel/flavors/tables.py:31 +msgid "Memory" +msgstr "" + #: dashboards/syspanel/flavors/views.py:48 msgid "Unauthorized." msgstr "" @@ -1783,12 +2087,16 @@ msgstr "" msgid "Unable to get flavor list: %s" msgstr "" +#: dashboards/syspanel/flavors/templates/flavors/_create.html:18 +msgid "From here you can define the sizing of a new flavor." +msgstr "" + #: dashboards/syspanel/images/views.py:52 msgid "Unable to retrieve image list." msgstr "" -#: dashboards/syspanel/instances/tables.py:62 -msgid "Tenant" +#: dashboards/syspanel/instances/tables.py:62 usage/tables.py:29 +msgid "Project Name" msgstr "" #: dashboards/syspanel/instances/tables.py:69 @@ -1800,21 +2108,34 @@ msgstr "" msgid "Unable to retrieve instance tenant information." msgstr "" +#: dashboards/syspanel/instances/templates/instances/index.html:6 +msgid "All Instances" +msgstr "" + +#: dashboards/syspanel/overview/templates/overview/usage.html:3 +msgid "Usage Overview" +msgstr "" + +#: dashboards/syspanel/overview/templates/overview/usage.html:12 +msgid "Monitoring" +msgstr "" + #: dashboards/syspanel/projects/forms.py:38 +#: dashboards/syspanel/users/forms.py:75 msgid "Role" msgstr "" #: dashboards/syspanel/projects/forms.py:52 -msgid "Successfully added user to tenant." +msgid "Successfully added user to project." msgstr "" #: dashboards/syspanel/projects/forms.py:54 -msgid "Unable to add user to tenant." +msgid "Unable to add user to project." msgstr "" #: dashboards/syspanel/projects/forms.py:64 #: dashboards/syspanel/projects/forms.py:89 -#: dashboards/syspanel/projects/tables.py:77 +#: dashboards/syspanel/projects/tables.py:78 #: dashboards/syspanel/services/tables.py:42 #: dashboards/syspanel/users/tables.py:38 #: dashboards/syspanel/users/tables.py:112 @@ -1827,7 +2148,7 @@ msgid "%s was successfully created." msgstr "" #: dashboards/syspanel/projects/forms.py:78 -msgid "Unable to create tenant." +msgid "Unable to create project." msgstr "" #: dashboards/syspanel/projects/forms.py:100 @@ -1836,7 +2157,7 @@ msgid "%s was successfully updated." msgstr "" #: dashboards/syspanel/projects/forms.py:103 -msgid "Unable to update tenant." +msgid "Unable to update project." msgstr "" #: dashboards/syspanel/projects/forms.py:108 @@ -1873,63 +2194,66 @@ msgid "Unable to update quotas." msgstr "" #: dashboards/syspanel/projects/panel.py:28 -#: dashboards/syspanel/projects/tables.py:52 -#: dashboards/syspanel/projects/tables.py:81 -#: dashboards/syspanel/templates/syspanel/projects/index.html:8 +#: dashboards/syspanel/projects/tables.py:53 +#: dashboards/syspanel/projects/tables.py:82 +#: dashboards/syspanel/projects/templates/projects/index.html:8 msgid "Projects" msgstr "" -#: dashboards/syspanel/projects/tables.py:17 +#: dashboards/syspanel/projects/tables.py:18 msgid "Modify Quotas" msgstr "" -#: dashboards/syspanel/projects/tables.py:24 +#: dashboards/syspanel/projects/tables.py:25 msgid "Modify Users" msgstr "" -#: dashboards/syspanel/projects/tables.py:31 +#: dashboards/syspanel/projects/tables.py:32 msgid "View Usage" msgstr "" -#: dashboards/syspanel/projects/tables.py:38 +#: dashboards/syspanel/projects/tables.py:39 msgid "Edit Project" msgstr "" -#: dashboards/syspanel/projects/tables.py:45 +#: dashboards/syspanel/projects/tables.py:46 msgid "Create New Project" msgstr "" -#: dashboards/syspanel/projects/tables.py:73 -#: dashboards/syspanel/services/tables.py:37 -msgid "Id" -msgstr "" - -#: dashboards/syspanel/projects/tables.py:89 +#: dashboards/syspanel/projects/tables.py:90 msgid "Remove" msgstr "" -#: dashboards/syspanel/projects/tables.py:90 +#: dashboards/syspanel/projects/tables.py:91 msgid "Removed" msgstr "" -#: dashboards/syspanel/projects/tables.py:92 -#: dashboards/syspanel/templates/syspanel/users/index.html:8 +#: dashboards/syspanel/projects/tables.py:93 #: dashboards/syspanel/users/panel.py:28 #: dashboards/syspanel/users/tables.py:40 #: dashboards/syspanel/users/tables.py:74 #: dashboards/syspanel/users/tables.py:119 +#: dashboards/syspanel/users/templates/users/index.html:8 msgid "Users" msgstr "" -#: dashboards/syspanel/projects/tables.py:103 +#: dashboards/syspanel/projects/tables.py:111 +msgid "Unable to retrieve role information." +msgstr "" + +#: dashboards/syspanel/projects/tables.py:116 +msgid "Roles" +msgstr "" + +#: dashboards/syspanel/projects/tables.py:120 msgid "Users For Project" msgstr "" -#: dashboards/syspanel/projects/tables.py:110 +#: dashboards/syspanel/projects/tables.py:128 msgid "Add To Project" msgstr "" -#: dashboards/syspanel/projects/tables.py:122 +#: dashboards/syspanel/projects/tables.py:140 msgid "Add New Users" msgstr "" @@ -1949,6 +2273,64 @@ msgstr "" msgid "Unable to retrieve roles." msgstr "" +#: dashboards/syspanel/projects/templates/projects/_add_user.html:8 +#: dashboards/syspanel/projects/templates/projects/add_user.html:3 +#: dashboards/syspanel/projects/templates/projects/add_user.html:6 +msgid "Add User To Project" +msgstr "" + +#: dashboards/syspanel/projects/templates/projects/_add_user.html:18 +msgid "Select the user role for the project." +msgstr "" + +#: dashboards/syspanel/projects/templates/projects/_add_user.html:23 +msgid "Add" +msgstr "" + +#: dashboards/syspanel/projects/templates/projects/_create.html:8 +#: dashboards/syspanel/projects/templates/projects/_create.html:23 +#: dashboards/syspanel/projects/templates/projects/create.html:6 +msgid "Create Project" +msgstr "" + +#: dashboards/syspanel/projects/templates/projects/_create.html:18 +msgid "From here you can create a new project to organize users." +msgstr "" + +#: dashboards/syspanel/projects/templates/projects/_quotas.html:7 +#: dashboards/syspanel/projects/templates/projects/_quotas.html:22 +msgid "Update Quota" +msgstr "" + +#: dashboards/syspanel/projects/templates/projects/_quotas.html:17 +#, python-format +msgid "" +"From here you can edit quotas (max limits) for the project %(tenant.name)s." +msgstr "" + +#: dashboards/syspanel/projects/templates/projects/_update.html:8 +#: dashboards/syspanel/projects/templates/projects/_update.html:23 +#: dashboards/syspanel/projects/templates/projects/quotas.html:6 +#: dashboards/syspanel/projects/templates/projects/update.html:6 +msgid "Update Project" +msgstr "" + +#: dashboards/syspanel/projects/templates/projects/_update.html:18 +msgid "From here you can edit a project." +msgstr "" + +#: dashboards/syspanel/projects/templates/projects/usage.html:3 +msgid "Project Usage Overview" +msgstr "" + +#: dashboards/syspanel/projects/templates/projects/usage.html:7 +msgid "Project Usage" +msgstr "" + +#: dashboards/syspanel/projects/templates/projects/users.html:7 +msgid "Users for Project" +msgstr "" + #: dashboards/syspanel/quotas/panel.py:28 #: dashboards/syspanel/quotas/tables.py:36 msgid "Quotas" @@ -1966,189 +2348,104 @@ msgstr "" msgid "Unable to get quota info." msgstr "" +#: dashboards/syspanel/quotas/templates/quotas/index.html:8 +msgid "Default Quotas" +msgstr "" + #: dashboards/syspanel/services/panel.py:28 #: dashboards/syspanel/services/tables.py:47 -#: dashboards/syspanel/templates/syspanel/services/index.html:8 +#: dashboards/syspanel/services/templates/services/index.html:8 msgid "Services" msgstr "" +#: dashboards/syspanel/services/tables.py:37 +msgid "Id" +msgstr "" + #: dashboards/syspanel/services/tables.py:39 msgid "Service" msgstr "" -#: dashboards/syspanel/templates/syspanel/flavors/_create.html:18 -msgid "From here you can define the sizing of a new flavor." -msgstr "" - -#: dashboards/syspanel/templates/syspanel/instances/index.html:6 -msgid "All Instances" -msgstr "" - -#: dashboards/syspanel/templates/syspanel/overview/usage.html:3 -msgid "Usage Overview" -msgstr "" - -#: dashboards/syspanel/templates/syspanel/overview/usage.html:12 -msgid "Monitoring" -msgstr "" - -#: dashboards/syspanel/templates/syspanel/projects/_add_user.html:8 -#: dashboards/syspanel/templates/syspanel/projects/add_user.html:3 -#: dashboards/syspanel/templates/syspanel/projects/add_user.html:6 -msgid "Add User To Project" -msgstr "" - -#: dashboards/syspanel/templates/syspanel/projects/_add_user.html:18 -msgid "Select the user role for the project." -msgstr "" - -#: dashboards/syspanel/templates/syspanel/projects/_add_user.html:23 -msgid "Add" -msgstr "" - -#: dashboards/syspanel/templates/syspanel/projects/_create.html:8 -#: dashboards/syspanel/templates/syspanel/projects/_create.html:23 -#: dashboards/syspanel/templates/syspanel/projects/create.html:6 -msgid "Create Project" -msgstr "" - -#: dashboards/syspanel/templates/syspanel/projects/_create.html:18 -msgid "From here you can create a new project to organize users." -msgstr "" - -#: dashboards/syspanel/templates/syspanel/projects/_quotas.html:7 -#: dashboards/syspanel/templates/syspanel/projects/_quotas.html:22 -msgid "Update Quota" -msgstr "" - -#: dashboards/syspanel/templates/syspanel/projects/_quotas.html:17 -#, python-format -msgid "" -"From here you can edit quotas (max limits) for the project %(tenant.name)s." -msgstr "" - -#: dashboards/syspanel/templates/syspanel/projects/_update.html:8 -#: dashboards/syspanel/templates/syspanel/projects/_update.html:23 -#: dashboards/syspanel/templates/syspanel/projects/quotas.html:6 -#: dashboards/syspanel/templates/syspanel/projects/update.html:6 -msgid "Update Project" -msgstr "" - -#: dashboards/syspanel/templates/syspanel/projects/_update.html:18 -msgid "From here you can edit a project." -msgstr "" - -#: dashboards/syspanel/templates/syspanel/projects/usage.html:3 -msgid "Project Usage Overview" -msgstr "" - -#: dashboards/syspanel/templates/syspanel/projects/usage.html:7 -msgid "Project Usage" -msgstr "" - -#: dashboards/syspanel/templates/syspanel/projects/users.html:7 -msgid "Users for Project" -msgstr "" - -#: dashboards/syspanel/templates/syspanel/quotas/index.html:8 -msgid "Default Quotas" -msgstr "" - -#: dashboards/syspanel/templates/syspanel/users/_create.html:7 -#: dashboards/syspanel/templates/syspanel/users/_create.html:22 -#: dashboards/syspanel/templates/syspanel/users/create.html:7 -#: dashboards/syspanel/users/tables.py:18 -msgid "Create User" -msgstr "" - -#: dashboards/syspanel/templates/syspanel/users/_create.html:17 -msgid "From here you can create a new user and assign them to a project." -msgstr "" - -#: dashboards/syspanel/templates/syspanel/users/_update.html:7 -#: dashboards/syspanel/templates/syspanel/users/_update.html:22 -#: dashboards/syspanel/templates/syspanel/users/update.html:7 -msgid "Update User" -msgstr "" - -#: dashboards/syspanel/templates/syspanel/users/_update.html:17 -msgid "" -"From here you can edit the user's details, including their default project." -msgstr "" - -#: dashboards/syspanel/users/forms.py:41 +#: dashboards/syspanel/users/forms.py:42 msgid "Select a project" msgstr "" -#: dashboards/syspanel/users/forms.py:57 +#: dashboards/syspanel/users/forms.py:58 msgid "Passwords do not match." msgstr "" -#: dashboards/syspanel/users/forms.py:62 -#: dashboards/syspanel/users/forms.py:105 -#: dashboards/syspanel/users/tables.py:107 views/auth_forms.py:64 +#: dashboards/syspanel/users/forms.py:63 +#: dashboards/syspanel/users/forms.py:114 +#: dashboards/syspanel/users/tables.py:106 msgid "User Name" msgstr "" -#: dashboards/syspanel/users/forms.py:63 -#: dashboards/syspanel/users/forms.py:106 -#: dashboards/syspanel/users/tables.py:108 +#: dashboards/syspanel/users/forms.py:64 +#: dashboards/syspanel/users/forms.py:115 +#: dashboards/syspanel/users/tables.py:107 msgid "Email" msgstr "" -#: dashboards/syspanel/users/forms.py:65 -#: dashboards/syspanel/users/forms.py:107 views/auth_forms.py:65 +#: dashboards/syspanel/users/forms.py:66 +#: dashboards/syspanel/users/forms.py:116 msgid "Password" msgstr "" -#: dashboards/syspanel/users/forms.py:70 -#: dashboards/syspanel/users/forms.py:114 +#: dashboards/syspanel/users/forms.py:71 +#: dashboards/syspanel/users/forms.py:123 msgid "Confirm Password" msgstr "" -#: dashboards/syspanel/users/forms.py:73 -#: dashboards/syspanel/users/forms.py:117 +#: dashboards/syspanel/users/forms.py:74 +#: dashboards/syspanel/users/forms.py:126 msgid "Primary Project" msgstr "" -#: dashboards/syspanel/users/forms.py:85 +#: dashboards/syspanel/users/forms.py:96 #, python-format msgid "User \"%s\" was successfully created." msgstr "" -#: dashboards/syspanel/users/forms.py:96 +#: dashboards/syspanel/users/forms.py:105 msgid "Unable to add user to primary project." msgstr "" -#: dashboards/syspanel/users/forms.py:99 +#: dashboards/syspanel/users/forms.py:108 msgid "Unable to create user." msgstr "" -#: dashboards/syspanel/users/forms.py:139 +#: dashboards/syspanel/users/forms.py:151 msgid "name" msgstr "" -#: dashboards/syspanel/users/forms.py:139 +#: dashboards/syspanel/users/forms.py:151 msgid "email" msgstr "" -#: dashboards/syspanel/users/forms.py:148 +#: dashboards/syspanel/users/forms.py:160 msgid "primary project" msgstr "" -#: dashboards/syspanel/users/forms.py:160 +#: dashboards/syspanel/users/forms.py:172 msgid "password" msgstr "" -#: dashboards/syspanel/users/forms.py:169 +#: dashboards/syspanel/users/forms.py:181 msgid "User has been updated successfully." msgstr "" -#: dashboards/syspanel/users/forms.py:173 +#: dashboards/syspanel/users/forms.py:185 #, python-format msgid "Unable to update %(attributes)s for the user." msgstr "" +#: dashboards/syspanel/users/tables.py:18 +#: dashboards/syspanel/users/templates/users/_create.html:7 +#: dashboards/syspanel/users/templates/users/_create.html:22 +#: dashboards/syspanel/users/templates/users/create.html:7 +msgid "Create User" +msgstr "" + #: dashboards/syspanel/users/tables.py:37 msgid "Enable" msgstr "" @@ -2165,14 +2462,37 @@ msgstr "" msgid "You cannot disable the user you are currently logged in as." msgstr "" -#: dashboards/syspanel/users/views.py:47 +#: dashboards/syspanel/users/tables.py:111 +msgid "User ID" +msgstr "" + +#: dashboards/syspanel/users/views.py:46 msgid "Unable to retrieve user list." msgstr "" -#: dashboards/syspanel/users/views.py:63 +#: dashboards/syspanel/users/views.py:67 msgid "Unable to update user." msgstr "" +#: dashboards/syspanel/users/views.py:93 +msgid "Unable to retrieve user roles." +msgstr "" + +#: dashboards/syspanel/users/templates/users/_create.html:17 +msgid "From here you can create a new user and assign them to a project." +msgstr "" + +#: dashboards/syspanel/users/templates/users/_update.html:7 +#: dashboards/syspanel/users/templates/users/_update.html:22 +#: dashboards/syspanel/users/templates/users/update.html:7 +msgid "Update User" +msgstr "" + +#: dashboards/syspanel/users/templates/users/_update.html:17 +msgid "" +"From here you can edit the user's details, including their default project." +msgstr "" + #: tables/actions.py:299 msgid "Filter" msgstr "" @@ -2200,25 +2520,25 @@ msgstr "" msgid "Deleted" msgstr "" -#: tables/base.py:231 +#: tables/base.py:257 #, python-format msgid "The attribute %(attr)s doesn't exist on %(obj)s." msgstr "" -#: tables/base.py:679 +#: tables/base.py:743 msgid "Actions" msgstr "" -#: tables/base.py:824 +#: tables/base.py:891 msgid "No items to display." msgstr "" -#: tables/base.py:841 +#: tables/base.py:908 #, python-format msgid "No match returned for the id \"%s\"." msgstr "" -#: tables/base.py:948 +#: tables/base.py:1015 msgid "Please select a row before taking that action." msgstr "" @@ -2238,25 +2558,25 @@ msgstr "" msgid "Error: " msgstr "" -#: templates/horizon/auth/_login.html:4 -msgid "Log In" +#: templates/horizon/client_side/_loading.html:9 +msgid "Loading…" msgstr "" -#: templates/horizon/auth/_login.html:18 -msgid "Sign In" +#: templates/horizon/common/_data_table.html:33 +msgid "Summary" msgstr "" -#: templates/horizon/auth/login.html:4 -msgid "Login" -msgstr "" - -#: templates/horizon/common/_data_table.html:31 +#: templates/horizon/common/_data_table.html:42 #, python-format msgid "Displaying %(counter)s item" msgid_plural "Displaying %(counter)s items" msgstr[0] "" msgstr[1] "" +#: templates/horizon/common/_sidebar.html:14 +msgid "Current Project" +msgstr "" + #: templates/horizon/common/_usage_summary.html:5 msgid "Select a month to query its usage" msgstr "" @@ -2281,11 +2601,11 @@ msgstr "" msgid "This Month's GB-Hours" msgstr "" -#: templatetags/horizon.py:121 +#: templatetags/horizon.py:108 msgid "No Limit" msgstr "" -#: templatetags/horizon.py:123 templatetags/horizon.py:125 +#: templatetags/horizon.py:110 templatetags/horizon.py:112 msgid "Available" msgstr "" @@ -2313,6 +2633,11 @@ msgstr "" msgid "%s MB" msgstr "" +#: templatetags/sizeformat.py:58 +#, python-format +msgid "%s GB" +msgstr "" + #: templatetags/sizeformat.py:61 #, python-format msgid "%s TB" @@ -2335,35 +2660,39 @@ msgstr "" msgid "Admin Panel" msgstr "" -#: tests/table_tests.py:94 +#: tests/message_tests.py:30 +msgid "Giant ants are attacking San Francisco!" +msgstr "" + +#: tests/table_tests.py:104 msgid "Batch" msgstr "" -#: tests/table_tests.py:95 +#: tests/table_tests.py:105 msgid "Batched" msgstr "" -#: tests/table_tests.py:96 tests/table_tests.py:107 +#: tests/table_tests.py:106 tests/table_tests.py:117 msgid "Item" msgstr "" -#: tests/table_tests.py:97 tests/table_tests.py:108 +#: tests/table_tests.py:107 tests/table_tests.py:118 msgid "Items" msgstr "" -#: tests/table_tests.py:105 +#: tests/table_tests.py:115 msgid "Down" msgstr "" -#: tests/table_tests.py:105 +#: tests/table_tests.py:115 msgid "Up" msgstr "" -#: tests/table_tests.py:106 +#: tests/table_tests.py:116 msgid "Downed" msgstr "" -#: tests/table_tests.py:106 +#: tests/table_tests.py:116 msgid "Upped" msgstr "" @@ -2391,7 +2720,7 @@ msgstr "" msgid "Recoverable Error Tab" msgstr "" -#: tests/testsettings.py:99 +#: tests/testsettings.py:111 msgid "Password must be between 8 and 18 characters." msgstr "" @@ -2445,31 +2774,31 @@ msgstr "" msgid "Puppies" msgstr "" -#: usage/base.py:94 +#: usage/base.py:97 msgid "Unable to retrieve usage information." msgstr "" -#: usage/base.py:97 +#: usage/base.py:100 msgid "You are viewing data for the future, which may or may not exist." msgstr "" -#: usage/tables.py:10 +#: usage/tables.py:11 msgid "Download CSV Summary" msgstr "" -#: usage/tables.py:23 +#: usage/tables.py:24 msgid "VCPU Hours" msgstr "" -#: usage/tables.py:30 +#: usage/tables.py:31 msgid "Disk GB Hours" msgstr "" -#: usage/tables.py:38 usage/tables.py:59 +#: usage/tables.py:39 usage/tables.py:67 msgid "Usage Summary" msgstr "" -#: usage/tables.py:51 +#: usage/tables.py:59 msgid "Uptime" msgstr "" @@ -2489,48 +2818,16 @@ msgstr "" msgid "Password is not accepted" msgstr "" -#: views/auth.py:92 -msgid "You are not authorized for that tenant." -msgstr "" - -#: views/auth_forms.py:63 -msgid "Region" -msgstr "" - -#: views/auth_forms.py:107 -msgid "Unable to authenticate for that project." -msgstr "" - -#: views/auth_forms.py:124 -msgid "Invalid user name or password." -msgstr "" - -#: views/auth_forms.py:131 -msgid "An error occurred authenticating. Please try again later." -msgstr "" - -#: views/auth_forms.py:150 -msgid "You are not authorized for any projects." -msgstr "" - -#: views/auth_forms.py:174 -msgid "You are not authorized for any available projects." -msgstr "" - -#: workflows/base.py:65 +#: workflows/base.py:69 msgid "Processing..." msgstr "" -#: workflows/base.py:478 -msgid "Save" -msgstr "" - -#: workflows/base.py:479 +#: workflows/base.py:511 #, python-format msgid "%s completed successfully." msgstr "" -#: workflows/base.py:480 +#: workflows/base.py:512 #, python-format msgid "%s did not complete." msgstr "" diff --git a/horizon/locale/es/LC_MESSAGES/django.po b/horizon/locale/es/LC_MESSAGES/django.po index 9f8b84668..f0056c54d 100644 --- a/horizon/locale/es/LC_MESSAGES/django.po +++ b/horizon/locale/es/LC_MESSAGES/django.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: openstack-dashboard\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2012-05-29 11:46-0700\n" +"POT-Creation-Date: 2012-07-09 02:29+0000\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -18,7 +18,7 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: base.py:449 +#: base.py:437 msgid "Other" msgstr "" @@ -26,24 +26,16 @@ msgstr "" msgid "Please log in to continue." msgstr "" -#: decorators.py:89 +#: decorators.py:87 #, python-format msgid "You are not authorized to access %s" msgstr "" -#: decorators.py:130 -msgid "The services for this view are not available." -msgstr "" - -#: exceptions.py:239 +#: exceptions.py:299 msgid "Unauthorized. Please try logging in again." msgstr "" -#: users.py:63 -msgid "Your session has expired. Please log in again." -msgstr "" - -#: api/keystone.py:53 +#: api/keystone.py:55 #, python-format msgid "%(type)s (%(backend)s backend)" msgstr "" @@ -58,7 +50,11 @@ msgstr "" msgid "ALLOW %(from)s:%(to)s from %(cidr)s" msgstr "" -#: api/swift.py:114 +#: api/nova.py:502 +msgid "Unknown instance" +msgstr "" + +#: api/swift.py:155 msgid "Unicode is not currently supported for object copy." msgstr "" @@ -66,191 +62,199 @@ msgstr "" msgid "Manage Compute" msgstr "" -#: dashboards/nova/dashboard.py:33 +#: dashboards/nova/dashboard.py:34 msgid "Object Store" msgstr "" -#: dashboards/nova/dashboard.py:38 -#: dashboards/nova/instances_and_volumes/instances/workflows.py:33 -#: dashboards/syspanel/projects/tables.py:51 -#: templates/horizon/common/_sidebar.html:11 tests/workflows_tests.py:39 +#: dashboards/nova/dashboard.py:39 dashboards/nova/instances/workflows.py:32 +#: dashboards/syspanel/projects/tables.py:52 tests/workflows_tests.py:39 msgid "Project" msgstr "" #: dashboards/nova/access_and_security/panel.py:25 -#: dashboards/nova/instances_and_volumes/instances/workflows.py:311 +#: dashboards/nova/instances/workflows.py:328 msgid "Access & Security" msgstr "" -#: dashboards/nova/access_and_security/views.py:52 +#: dashboards/nova/access_and_security/views.py:51 msgid "Unable to retrieve keypair list." msgstr "" -#: dashboards/nova/access_and_security/views.py:62 -#, python-format -msgid "Error fetching security_groups: %s" +#: dashboards/nova/access_and_security/views.py:60 +#: dashboards/nova/access_and_security/security_groups/views.py:64 +msgid "Unable to retrieve security groups." msgstr "" -#: dashboards/nova/access_and_security/views.py:72 -#, python-format -msgid "Error fetching floating ips: %s" +#: dashboards/nova/access_and_security/views.py:69 +#: dashboards/nova/access_and_security/floating_ips/workflows.py:44 +msgid "Unable to retrieve floating IP addresses." msgstr "" -#: dashboards/nova/access_and_security/views.py:79 -#: dashboards/nova/access_and_security/floating_ips/views.py:60 +#: dashboards/nova/access_and_security/views.py:76 +#: dashboards/nova/access_and_security/floating_ips/workflows.py:60 #: dashboards/syspanel/instances/views.py:58 msgid "Unable to retrieve instance list." msgstr "" #: dashboards/nova/access_and_security/floating_ips/forms.py:38 -#: dashboards/nova/access_and_security/floating_ips/tables.py:47 -#: dashboards/nova/templates/nova/access_and_security/floating_ips/_allocate.html:22 -msgid "Floating IP" -msgstr "" - -#: dashboards/nova/access_and_security/floating_ips/forms.py:41 -#: dashboards/nova/images_and_snapshots/snapshots/forms.py:38 -msgid "Instance ID" -msgstr "" - -#: dashboards/nova/access_and_security/floating_ips/forms.py:47 -#: dashboards/nova/instances_and_volumes/volumes/forms.py:73 -msgid "Select an instance" -msgstr "" - -#: dashboards/nova/access_and_security/floating_ips/forms.py:49 -#: dashboards/nova/instances_and_volumes/volumes/forms.py:75 -msgid "No instances available" -msgstr "" - -#: dashboards/nova/access_and_security/floating_ips/forms.py:52 -#: dashboards/nova/access_and_security/floating_ips/tables.py:112 -#: dashboards/nova/instances_and_volumes/instances/tables.py:58 -#: dashboards/nova/instances_and_volumes/instances/tables.py:75 -#: dashboards/nova/instances_and_volumes/instances/tables.py:90 -#: dashboards/nova/instances_and_volumes/instances/tables.py:118 -#: dashboards/nova/instances_and_volumes/volumes/tables.py:158 -#: dashboards/nova/templates/nova/instances_and_volumes/volumes/_detail_overview.html:41 -#: tests/workflows_tests.py:58 -msgid "Instance" -msgstr "" - -#: dashboards/nova/access_and_security/floating_ips/forms.py:63 -#, python-format -msgid "Successfully associated Floating IP %(ip)s with Instance: %(inst)s" -msgstr "" - -#: dashboards/nova/access_and_security/floating_ips/forms.py:69 -#: dashboards/nova/access_and_security/floating_ips/views.py:51 -msgid "Unable to associate floating IP." -msgstr "" - -#: dashboards/nova/access_and_security/floating_ips/forms.py:75 msgid "Pool" msgstr "" -#: dashboards/nova/access_and_security/floating_ips/forms.py:90 +#: dashboards/nova/access_and_security/floating_ips/forms.py:53 #, python-format msgid "" "Successfully allocated Floating IP \"%(ip)s\" to project \"%(project)s\"" msgstr "" -#: dashboards/nova/access_and_security/floating_ips/forms.py:94 +#: dashboards/nova/access_and_security/floating_ips/forms.py:57 msgid "Unable to allocate Floating IP." msgstr "" -#: dashboards/nova/access_and_security/floating_ips/tables.py:35 +#: dashboards/nova/access_and_security/floating_ips/tables.py:36 msgid "Allocate IP To Project" msgstr "" -#: dashboards/nova/access_and_security/floating_ips/tables.py:45 +#: dashboards/nova/access_and_security/floating_ips/tables.py:46 msgid "Release" msgstr "" -#: dashboards/nova/access_and_security/floating_ips/tables.py:46 +#: dashboards/nova/access_and_security/floating_ips/tables.py:47 msgid "Released" msgstr "" #: dashboards/nova/access_and_security/floating_ips/tables.py:48 -#: dashboards/nova/access_and_security/floating_ips/tables.py:126 +#: dashboards/nova/access_and_security/templates/access_and_security/floating_ips/_allocate.html:22 +msgid "Floating IP" +msgstr "" + +#: dashboards/nova/access_and_security/floating_ips/tables.py:49 +#: dashboards/nova/access_and_security/floating_ips/tables.py:132 #: dashboards/syspanel/projects/forms.py:119 msgid "Floating IPs" msgstr "" -#: dashboards/nova/access_and_security/floating_ips/tables.py:57 -#: dashboards/nova/templates/nova/access_and_security/floating_ips/_associate.html:22 +#: dashboards/nova/access_and_security/floating_ips/tables.py:58 +#: dashboards/nova/access_and_security/templates/access_and_security/floating_ips/associate.html:3 +#: dashboards/nova/access_and_security/templates/access_and_security/floating_ips/associate.html:6 +#: dashboards/nova/instances/tables.py:202 msgid "Associate Floating IP" msgstr "" -#: dashboards/nova/access_and_security/floating_ips/tables.py:69 +#: dashboards/nova/access_and_security/floating_ips/tables.py:75 msgid "Disassociate Floating IP" msgstr "" -#: dashboards/nova/access_and_security/floating_ips/tables.py:83 +#: dashboards/nova/access_and_security/floating_ips/tables.py:89 #, python-format msgid "Successfully disassociated Floating IP: %s" msgstr "" -#: dashboards/nova/access_and_security/floating_ips/tables.py:87 +#: dashboards/nova/access_and_security/floating_ips/tables.py:93 msgid "Unable to disassociate floating IP." msgstr "" -#: dashboards/nova/access_and_security/floating_ips/tables.py:92 +#: dashboards/nova/access_and_security/floating_ips/tables.py:98 #, python-format msgid "%(INSTANCE_NAME)s (%(INSTANCE_ID)s)" msgstr "" -#: dashboards/nova/access_and_security/floating_ips/tables.py:97 -#: dashboards/nova/instances_and_volumes/instances/tables.py:218 -msgid "Not available" -msgstr "" - -#: dashboards/nova/access_and_security/floating_ips/tables.py:109 -#: dashboards/nova/instances_and_volumes/instances/tables.py:242 +#: dashboards/nova/access_and_security/floating_ips/tables.py:115 +#: dashboards/nova/access_and_security/floating_ips/workflows.py:28 +#: dashboards/nova/access_and_security/floating_ips/workflows.py:34 +#: dashboards/nova/instances/tables.py:270 #: dashboards/syspanel/instances/tables.py:74 msgid "IP Address" msgstr "" -#: dashboards/nova/access_and_security/floating_ips/tables.py:115 +#: dashboards/nova/access_and_security/floating_ips/tables.py:118 +#: dashboards/nova/access_and_security/floating_ips/workflows.py:31 +#: dashboards/nova/instances/tables.py:62 +#: dashboards/nova/instances/tables.py:79 +#: dashboards/nova/instances/tables.py:94 +#: dashboards/nova/instances/tables.py:122 +#: dashboards/nova/volumes/tables.py:195 tests/workflows_tests.py:58 +msgid "Instance" +msgstr "" + +#: dashboards/nova/access_and_security/floating_ips/tables.py:121 msgid "Floating IP Pool" msgstr "" -#: dashboards/nova/access_and_security/floating_ips/views.py:100 +#: dashboards/nova/access_and_security/floating_ips/views.py:60 msgid "No floating IP pools available." msgstr "" -#: dashboards/nova/access_and_security/keypairs/forms.py:38 -#: dashboards/nova/access_and_security/keypairs/forms.py:57 +#: dashboards/nova/access_and_security/floating_ips/workflows.py:35 +msgid "Select the IP address you wish to associate with the selected instance." +msgstr "" + +#: dashboards/nova/access_and_security/floating_ips/workflows.py:48 +msgid "Select an IP address" +msgstr "" + +#: dashboards/nova/access_and_security/floating_ips/workflows.py:50 +msgid "No IP addresses available" +msgstr "" + +#: dashboards/nova/access_and_security/floating_ips/workflows.py:77 +#: dashboards/nova/volumes/forms.py:92 +msgid "Select an instance" +msgstr "" + +#: dashboards/nova/access_and_security/floating_ips/workflows.py:79 +#: dashboards/nova/volumes/forms.py:94 +msgid "No instances available" +msgstr "" + +#: dashboards/nova/access_and_security/floating_ips/workflows.py:98 +msgid "Manage Floating IP Associations" +msgstr "" + +#: dashboards/nova/access_and_security/floating_ips/workflows.py:99 +msgid "Associate" +msgstr "" + +#: dashboards/nova/access_and_security/floating_ips/workflows.py:100 +#, python-format +msgid "IP address %s associated." +msgstr "" + +#: dashboards/nova/access_and_security/floating_ips/workflows.py:101 +#, python-format +msgid "Unable to associate IP address %s." +msgstr "" + +#: dashboards/nova/access_and_security/keypairs/forms.py:40 +#: dashboards/nova/access_and_security/keypairs/forms.py:58 #: dashboards/nova/access_and_security/keypairs/tables.py:51 msgid "Keypair Name" msgstr "" -#: dashboards/nova/access_and_security/keypairs/forms.py:40 +#: dashboards/nova/access_and_security/keypairs/forms.py:42 msgid "" "Keypair names may only contain letters, numbers, underscores and hyphens." msgstr "" -#: dashboards/nova/access_and_security/keypairs/forms.py:52 -#, python-format -msgid "Error Creating Keypair: %s" +#: dashboards/nova/access_and_security/keypairs/forms.py:53 +msgid "Unable to create keypair." msgstr "" -#: dashboards/nova/access_and_security/keypairs/forms.py:59 +#: dashboards/nova/access_and_security/keypairs/forms.py:60 msgid "Public Key" msgstr "" -#: dashboards/nova/access_and_security/keypairs/forms.py:65 +#: dashboards/nova/access_and_security/keypairs/forms.py:68 #, python-format msgid "Successfully imported public key: %s" msgstr "" -#: dashboards/nova/access_and_security/keypairs/forms.py:72 -#, python-format -msgid "Error Importing Keypair: %s" +#: dashboards/nova/access_and_security/keypairs/forms.py:74 +msgid "Unable to import keypair." msgstr "" #: dashboards/nova/access_and_security/keypairs/tables.py:29 -#: dashboards/nova/instances_and_volumes/instances/workflows.py:299 +#: dashboards/nova/instances/tables.py:272 +#: dashboards/nova/instances/workflows.py:316 msgid "Keypair" msgstr "" @@ -260,16 +264,16 @@ msgid "Keypairs" msgstr "" #: dashboards/nova/access_and_security/keypairs/tables.py:38 -#: dashboards/nova/templates/nova/access_and_security/keypairs/_import.html:7 -#: dashboards/nova/templates/nova/access_and_security/keypairs/_import.html:23 -#: dashboards/nova/templates/nova/access_and_security/keypairs/import.html:6 +#: dashboards/nova/access_and_security/templates/access_and_security/keypairs/_import.html:7 +#: dashboards/nova/access_and_security/templates/access_and_security/keypairs/_import.html:23 +#: dashboards/nova/access_and_security/templates/access_and_security/keypairs/import.html:6 msgid "Import Keypair" msgstr "" #: dashboards/nova/access_and_security/keypairs/tables.py:45 -#: dashboards/nova/templates/nova/access_and_security/keypairs/_create.html:7 -#: dashboards/nova/templates/nova/access_and_security/keypairs/_create.html:23 -#: dashboards/nova/templates/nova/access_and_security/keypairs/create.html:6 +#: dashboards/nova/access_and_security/templates/access_and_security/keypairs/_create.html:7 +#: dashboards/nova/access_and_security/templates/access_and_security/keypairs/_create.html:23 +#: dashboards/nova/access_and_security/templates/access_and_security/keypairs/create.html:6 msgid "Create Keypair" msgstr "" @@ -282,134 +286,151 @@ msgstr "" msgid "Unable to create keypair: %(exc)s" msgstr "" -#: dashboards/nova/access_and_security/security_groups/forms.py:41 +#: dashboards/nova/access_and_security/security_groups/forms.py:40 #: dashboards/nova/access_and_security/security_groups/tables.py:57 -#: dashboards/nova/images_and_snapshots/images/forms.py:43 -#: dashboards/nova/instances_and_volumes/volumes/tables.py:110 -#: dashboards/nova/instances_and_volumes/volumes/tables.py:127 -#: dashboards/nova/templates/nova/images_and_snapshots/images/_detail_overview.html:9 -#: dashboards/nova/templates/nova/instances_and_volumes/instances/_detail_overview.html:9 -#: dashboards/nova/templates/nova/instances_and_volumes/instances/_launch_details_help.html:9 -#: dashboards/nova/templates/nova/instances_and_volumes/volumes/_detail_overview.html:9 +#: dashboards/nova/images_and_snapshots/images/forms.py:42 +#: dashboards/nova/images_and_snapshots/images/forms.py:120 +#: dashboards/nova/images_and_snapshots/templates/images_and_snapshots/images/_detail_overview.html:9 +#: dashboards/nova/images_and_snapshots/volume_snapshots/tables.py:46 +#: dashboards/nova/instances/templates/instances/_detail_overview.html:9 +#: dashboards/nova/instances/templates/instances/_launch_details_help.html:9 +#: dashboards/nova/volumes/tables.py:135 dashboards/nova/volumes/tables.py:153 +#: dashboards/nova/volumes/templates/volumes/_detail_overview.html:9 #: dashboards/syspanel/flavors/forms.py:37 #: dashboards/syspanel/projects/forms.py:60 #: dashboards/syspanel/projects/forms.py:85 #: dashboards/syspanel/projects/tables.py:74 #: dashboards/syspanel/services/tables.py:38 +#: dashboards/syspanel/volumes/tables.py:10 msgid "Name" msgstr "" -#: dashboards/nova/access_and_security/security_groups/forms.py:43 +#: dashboards/nova/access_and_security/security_groups/forms.py:42 #: dashboards/nova/access_and_security/security_groups/tables.py:58 -#: dashboards/nova/instances_and_volumes/volumes/forms.py:29 -#: dashboards/nova/instances_and_volumes/volumes/forms.py:103 -#: dashboards/nova/instances_and_volumes/volumes/tables.py:113 -#: dashboards/nova/templates/nova/access_and_security/keypairs/_create.html:16 -#: dashboards/nova/templates/nova/access_and_security/keypairs/_import.html:16 -#: dashboards/nova/templates/nova/access_and_security/security_groups/_create.html:17 -#: dashboards/nova/templates/nova/containers/_create.html:16 -#: dashboards/nova/templates/nova/instances_and_volumes/volumes/_create.html:17 -#: dashboards/nova/templates/nova/instances_and_volumes/volumes/_create_snapshot.html:17 -#: dashboards/nova/templates/nova/instances_and_volumes/volumes/_detail_overview.html:14 -#: dashboards/nova/templates/nova/objects/_copy.html:16 -#: dashboards/nova/templates/nova/objects/_upload.html:17 +#: dashboards/nova/access_and_security/templates/access_and_security/keypairs/_create.html:16 +#: dashboards/nova/access_and_security/templates/access_and_security/keypairs/_import.html:16 +#: dashboards/nova/access_and_security/templates/access_and_security/security_groups/_create.html:17 +#: dashboards/nova/containers/templates/containers/_copy.html:16 +#: dashboards/nova/containers/templates/containers/_create.html:16 +#: dashboards/nova/containers/templates/containers/_upload.html:17 +#: dashboards/nova/volumes/forms.py:25 dashboards/nova/volumes/forms.py:125 +#: dashboards/nova/volumes/tables.py:138 +#: dashboards/nova/volumes/templates/volumes/_create.html:18 +#: dashboards/nova/volumes/templates/volumes/_create_snapshot.html:17 +#: dashboards/nova/volumes/templates/volumes/_detail_overview.html:14 +#: dashboards/syspanel/flavors/templates/flavors/_create.html:17 +#: dashboards/syspanel/images/templates/images/_update.html:17 #: dashboards/syspanel/projects/forms.py:63 #: dashboards/syspanel/projects/forms.py:88 #: dashboards/syspanel/projects/tables.py:76 -#: dashboards/syspanel/templates/syspanel/flavors/_create.html:17 -#: dashboards/syspanel/templates/syspanel/images/_update.html:17 -#: dashboards/syspanel/templates/syspanel/projects/_add_user.html:17 -#: dashboards/syspanel/templates/syspanel/projects/_create.html:17 -#: dashboards/syspanel/templates/syspanel/projects/_quotas.html:16 -#: dashboards/syspanel/templates/syspanel/projects/_update.html:17 -#: dashboards/syspanel/templates/syspanel/users/_create.html:16 -#: dashboards/syspanel/templates/syspanel/users/_update.html:16 +#: dashboards/syspanel/projects/templates/projects/_add_user.html:17 +#: dashboards/syspanel/projects/templates/projects/_create.html:17 +#: dashboards/syspanel/projects/templates/projects/_quotas.html:16 +#: dashboards/syspanel/projects/templates/projects/_update.html:17 +#: dashboards/syspanel/users/templates/users/_create.html:16 +#: dashboards/syspanel/users/templates/users/_update.html:16 msgid "Description" msgstr "" -#: dashboards/nova/access_and_security/security_groups/forms.py:51 +#: dashboards/nova/access_and_security/security_groups/forms.py:50 #, python-format -msgid "Successfully created security_group: %s" +msgid "Successfully created security group: %s" msgstr "" -#: dashboards/nova/access_and_security/security_groups/forms.py:54 +#: dashboards/nova/access_and_security/security_groups/forms.py:53 msgid "Unable to create security group." msgstr "" -#: dashboards/nova/access_and_security/security_groups/forms.py:59 +#: dashboards/nova/access_and_security/security_groups/forms.py:58 #: dashboards/nova/access_and_security/security_groups/tables.py:92 msgid "IP Protocol" msgstr "" -#: dashboards/nova/access_and_security/security_groups/forms.py:65 -#: dashboards/nova/access_and_security/security_groups/forms.py:71 +#: dashboards/nova/access_and_security/security_groups/forms.py:64 +#: dashboards/nova/access_and_security/security_groups/forms.py:70 #: dashboards/nova/access_and_security/security_groups/tables.py:94 msgid "From Port" msgstr "" -#: dashboards/nova/access_and_security/security_groups/forms.py:66 +#: dashboards/nova/access_and_security/security_groups/forms.py:65 msgid "" "TCP/UDP: Enter integer value between 1 and 65535. ICMP: enter a value for " "ICMP type in the range (-1: 255)" msgstr "" -#: dashboards/nova/access_and_security/security_groups/forms.py:72 -#: dashboards/nova/images_and_snapshots/images/tables.py:89 +#: dashboards/nova/access_and_security/security_groups/forms.py:71 +#: dashboards/nova/images_and_snapshots/images/tables.py:114 msgid "Type" msgstr "" -#: dashboards/nova/access_and_security/security_groups/forms.py:74 -#: dashboards/nova/access_and_security/security_groups/forms.py:80 +#: dashboards/nova/access_and_security/security_groups/forms.py:73 +#: dashboards/nova/access_and_security/security_groups/forms.py:79 #: dashboards/nova/access_and_security/security_groups/tables.py:95 msgid "To Port" msgstr "" -#: dashboards/nova/access_and_security/security_groups/forms.py:75 +#: dashboards/nova/access_and_security/security_groups/forms.py:74 msgid "" "TCP/UDP: Enter integer value between 1 and 65535. ICMP: enter a value for " "ICMP code in the range (-1: 255)" msgstr "" -#: dashboards/nova/access_and_security/security_groups/forms.py:81 +#: dashboards/nova/access_and_security/security_groups/forms.py:80 msgid "Code" msgstr "" -#: dashboards/nova/access_and_security/security_groups/forms.py:84 +#: dashboards/nova/access_and_security/security_groups/forms.py:83 msgid "Source Group" msgstr "" -#: dashboards/nova/access_and_security/security_groups/forms.py:85 +#: dashboards/nova/access_and_security/security_groups/forms.py:84 msgid "CIDR" msgstr "" -#: dashboards/nova/access_and_security/security_groups/forms.py:88 +#: dashboards/nova/access_and_security/security_groups/forms.py:87 msgid "Classless Inter-Domain Routing (e.g. 192.168.0.0/24)" msgstr "" -#: dashboards/nova/access_and_security/security_groups/forms.py:115 +#: dashboards/nova/access_and_security/security_groups/forms.py:116 +msgid "The ICMP type is invalid." +msgstr "" + +#: dashboards/nova/access_and_security/security_groups/forms.py:119 +msgid "The ICMP code is invalid." +msgstr "" + +#: dashboards/nova/access_and_security/security_groups/forms.py:122 +msgid "The ICMP type not in range (-1, 255)" +msgstr "" + +#: dashboards/nova/access_and_security/security_groups/forms.py:125 +msgid "The ICMP code not in range (-1, 255)" +msgstr "" + +#: dashboards/nova/access_and_security/security_groups/forms.py:129 msgid "The \"from\" port number is invalid." msgstr "" -#: dashboards/nova/access_and_security/security_groups/forms.py:118 +#: dashboards/nova/access_and_security/security_groups/forms.py:132 msgid "The \"to\" port number is invalid." msgstr "" -#: dashboards/nova/access_and_security/security_groups/forms.py:121 +#: dashboards/nova/access_and_security/security_groups/forms.py:135 msgid "" "The \"to\" port number must be greater than or equal to the \"from\" port " "number." msgstr "" -#: dashboards/nova/access_and_security/security_groups/forms.py:127 +#: dashboards/nova/access_and_security/security_groups/forms.py:141 msgid "Either CIDR or Source Group may be specified, but not both." msgstr "" -#: dashboards/nova/access_and_security/security_groups/forms.py:148 +#: dashboards/nova/access_and_security/security_groups/forms.py:163 #, python-format msgid "Successfully added rule: %s" msgstr "" -#: dashboards/nova/access_and_security/security_groups/forms.py:152 +#: dashboards/nova/access_and_security/security_groups/forms.py:166 msgid "Unable to add rule to security group." msgstr "" @@ -419,15 +440,15 @@ msgstr "" #: dashboards/nova/access_and_security/security_groups/tables.py:31 #: dashboards/nova/access_and_security/security_groups/tables.py:65 -#: dashboards/nova/instances_and_volumes/instances/workflows.py:303 -#: dashboards/nova/templates/nova/instances_and_volumes/instances/_detail_overview.html:47 +#: dashboards/nova/instances/workflows.py:320 +#: dashboards/nova/instances/templates/instances/_detail_overview.html:49 msgid "Security Groups" msgstr "" #: dashboards/nova/access_and_security/security_groups/tables.py:44 -#: dashboards/nova/templates/nova/access_and_security/security_groups/_create.html:7 -#: dashboards/nova/templates/nova/access_and_security/security_groups/_create.html:23 -#: dashboards/nova/templates/nova/access_and_security/security_groups/create.html:6 +#: dashboards/nova/access_and_security/templates/access_and_security/security_groups/_create.html:7 +#: dashboards/nova/access_and_security/templates/access_and_security/security_groups/_create.html:23 +#: dashboards/nova/access_and_security/templates/access_and_security/security_groups/create.html:6 msgid "Create Security Group" msgstr "" @@ -455,69 +476,178 @@ msgstr "" msgid "Unable to retrieve security group." msgstr "" -#: dashboards/nova/access_and_security/security_groups/views.py:64 -msgid "Unable to retrieve security groups." +#: dashboards/nova/access_and_security/templates/access_and_security/index.html:6 +msgid "Access & Security" +msgstr "" + +#: dashboards/nova/access_and_security/templates/access_and_security/floating_ips/_allocate.html:8 +#: dashboards/nova/access_and_security/templates/access_and_security/floating_ips/allocate.html:3 +msgid "Allocate Floating IP" +msgstr "" + +#: dashboards/nova/access_and_security/templates/access_and_security/floating_ips/_allocate.html:17 +#: dashboards/nova/images_and_snapshots/templates/images_and_snapshots/images/_create.html:16 +#: dashboards/nova/images_and_snapshots/templates/images_and_snapshots/images/_update.html:16 +#: dashboards/nova/images_and_snapshots/templates/images_and_snapshots/snapshots/_create.html:17 +#: dashboards/nova/instances/templates/instances/_update.html:16 +#: dashboards/settings/ec2/templates/ec2/download_form.html:17 +#: dashboards/settings/project/templates/project/_openrc.html:24 +#: dashboards/settings/user/templates/user/_settings.html:17 +msgid "Description:" +msgstr "" + +#: dashboards/nova/access_and_security/templates/access_and_security/floating_ips/_allocate.html:18 +msgid "Allocate a floating IP from a given floating ip pool." +msgstr "" + +#: dashboards/nova/access_and_security/templates/access_and_security/floating_ips/_allocate.html:20 +#: dashboards/nova/instances/templates/instances/_launch_details_help.html:19 +msgid "Project Quotas" +msgstr "" + +#: dashboards/nova/access_and_security/templates/access_and_security/floating_ips/_allocate.html:31 +msgid "Allocate IP" +msgstr "" + +#: dashboards/nova/access_and_security/templates/access_and_security/floating_ips/_allocate.html:32 +#: dashboards/nova/access_and_security/templates/access_and_security/keypairs/_create.html:24 +#: dashboards/nova/access_and_security/templates/access_and_security/keypairs/_import.html:24 +#: dashboards/nova/access_and_security/templates/access_and_security/security_groups/_create.html:24 +#: dashboards/nova/access_and_security/templates/access_and_security/security_groups/_edit_rules.html:20 +#: dashboards/nova/containers/templates/containers/_copy.html:23 +#: dashboards/nova/containers/templates/containers/_create.html:23 +#: dashboards/nova/containers/templates/containers/_upload.html:24 +#: dashboards/nova/images_and_snapshots/templates/images_and_snapshots/images/_create.html:32 +#: dashboards/nova/images_and_snapshots/templates/images_and_snapshots/images/_update.html:23 +#: dashboards/nova/images_and_snapshots/templates/images_and_snapshots/snapshots/_create.html:24 +#: dashboards/nova/instances/templates/instances/_update.html:23 +#: dashboards/nova/volumes/templates/volumes/_attach.html:20 +#: dashboards/nova/volumes/templates/volumes/_create.html:56 +#: dashboards/nova/volumes/templates/volumes/_create_snapshot.html:24 +#: dashboards/settings/ec2/templates/ec2/download_form.html:24 +#: dashboards/settings/project/templates/project/_openrc.html:31 +#: dashboards/settings/user/templates/user/_settings.html:24 +#: dashboards/syspanel/flavors/templates/flavors/_create.html:24 +#: dashboards/syspanel/images/templates/images/_update.html:24 +#: dashboards/syspanel/projects/templates/projects/_add_user.html:24 +#: dashboards/syspanel/projects/templates/projects/_create.html:24 +#: dashboards/syspanel/projects/templates/projects/_quotas.html:23 +#: dashboards/syspanel/projects/templates/projects/_update.html:24 +#: dashboards/syspanel/users/templates/users/_create.html:23 +#: dashboards/syspanel/users/templates/users/_update.html:23 +#: templates/horizon/common/_workflow.html:30 +msgid "Cancel" +msgstr "" + +#: dashboards/nova/access_and_security/templates/access_and_security/keypairs/_create.html:17 +#: dashboards/nova/access_and_security/templates/access_and_security/keypairs/_import.html:17 +msgid "" +"Keypairs are ssh credentials which are injected into images when they are " +"launched. Creating a new key pair registers the public key and downloads the " +"private key (a .pem file)." +msgstr "" + +#: dashboards/nova/access_and_security/templates/access_and_security/keypairs/_create.html:18 +#: dashboards/nova/access_and_security/templates/access_and_security/keypairs/_import.html:18 +msgid "Protect and use the key as you would any normal ssh private key." +msgstr "" + +#: dashboards/nova/access_and_security/templates/access_and_security/keypairs/download.html:3 +#: dashboards/nova/access_and_security/templates/access_and_security/keypairs/download.html:6 +msgid "Download Keypair" +msgstr "" + +#: dashboards/nova/access_and_security/templates/access_and_security/keypairs/download.html:11 +#, python-format +msgid "" +"The keypair "%(keypair_name)s" should download automatically. If " +"not use the link below." +msgstr "" + +#: dashboards/nova/access_and_security/templates/access_and_security/keypairs/download.html:15 +#, python-format +msgid "Download keypair "%(keypair_name)s"" +msgstr "" + +#: dashboards/nova/access_and_security/templates/access_and_security/security_groups/_create.html:18 +msgid "From here you can create a new security group" +msgstr "" + +#: dashboards/nova/access_and_security/templates/access_and_security/security_groups/_edit_rules.html:9 +#: dashboards/nova/access_and_security/templates/access_and_security/security_groups/edit_rules.html:6 +msgid "Edit Security Group Rules" +msgstr "" + +#: dashboards/nova/access_and_security/templates/access_and_security/security_groups/_edit_rules.html:12 +#: dashboards/nova/access_and_security/templates/access_and_security/security_groups/_edit_rules.html:19 +msgid "Add Rule" msgstr "" #: dashboards/nova/containers/forms.py:38 msgid "Slash is not an allowed character." msgstr "" -#: dashboards/nova/containers/forms.py:45 -#: dashboards/nova/containers/tables.py:88 +#: dashboards/nova/containers/forms.py:48 +#: dashboards/nova/containers/tables.py:91 msgid "Container Name" msgstr "" -#: dashboards/nova/containers/forms.py:51 +#: dashboards/nova/containers/forms.py:56 msgid "Container created successfully." msgstr "" -#: dashboards/nova/containers/forms.py:53 -msgid "Unable to create container." -msgstr "" - -#: dashboards/nova/containers/forms.py:59 -#: dashboards/nova/containers/tables.py:155 -msgid "Object Name" -msgstr "" - -#: dashboards/nova/containers/forms.py:61 -msgid "File" -msgstr "" - -#: dashboards/nova/containers/forms.py:73 -msgid "Object was successfully uploaded." +#: dashboards/nova/containers/forms.py:67 +msgid "Folder created successfully." msgstr "" #: dashboards/nova/containers/forms.py:75 +msgid "Unable to create container." +msgstr "" + +#: dashboards/nova/containers/forms.py:85 +#: dashboards/nova/containers/tables.py:157 +msgid "Object Name" +msgstr "" + +#: dashboards/nova/containers/forms.py:87 +msgid "File" +msgstr "" + +#: dashboards/nova/containers/forms.py:103 +msgid "Object was successfully uploaded." +msgstr "" + +#: dashboards/nova/containers/forms.py:105 msgid "Unable to upload object." msgstr "" -#: dashboards/nova/containers/forms.py:81 +#: dashboards/nova/containers/forms.py:111 msgid "Destination container" msgstr "" -#: dashboards/nova/containers/forms.py:84 +#: dashboards/nova/containers/forms.py:115 msgid "Destination object name" msgstr "" -#: dashboards/nova/containers/forms.py:107 -#, python-format -msgid "Object \"%(obj)s\" copied to container \"%(container)s\"." +#: dashboards/nova/containers/forms.py:145 +#: dashboards/nova/containers/forms.py:169 +msgid "Unable to copy object." msgstr "" -#: dashboards/nova/containers/forms.py:115 -msgid "Unable to copy object." +#: dashboards/nova/containers/forms.py:161 +#, python-format +msgid "Copied \"%(orig)s\" to \"%(dest)s\" as \"%(new)s\"." msgstr "" #: dashboards/nova/containers/panel.py:28 #: dashboards/nova/containers/tables.py:35 -#: dashboards/nova/containers/tables.py:99 -#: dashboards/nova/templates/nova/containers/index.html:8 +#: dashboards/nova/containers/tables.py:102 +#: dashboards/nova/containers/templates/containers/index.html:6 msgid "Containers" msgstr "" #: dashboards/nova/containers/tables.py:34 +#: dashboards/nova/containers/templates/containers/detail.html:7 msgid "Container" msgstr "" @@ -526,67 +656,129 @@ msgid "Containers must be empty before deletion." msgstr "" #: dashboards/nova/containers/tables.py:48 -#: dashboards/nova/templates/nova/containers/_create.html:7 -#: dashboards/nova/templates/nova/containers/_create.html:22 -#: dashboards/nova/templates/nova/containers/create.html:6 +#: dashboards/nova/containers/templates/containers/_create.html:7 +#: dashboards/nova/containers/templates/containers/_create.html:22 +#: dashboards/nova/containers/templates/containers/create.html:6 msgid "Create Container" msgstr "" #: dashboards/nova/containers/tables.py:55 -msgid "List Objects" +msgid "View Container" msgstr "" #: dashboards/nova/containers/tables.py:62 -#: dashboards/nova/templates/nova/objects/_upload.html:23 -#: dashboards/nova/templates/nova/objects/upload.html:3 +#: dashboards/nova/containers/templates/containers/_upload.html:23 +#: dashboards/nova/containers/templates/containers/upload.html:3 msgid "Upload Object" msgstr "" -#: dashboards/nova/containers/tables.py:90 -#: dashboards/nova/containers/tables.py:106 -#: dashboards/nova/containers/tables.py:163 -#: dashboards/nova/templates/nova/objects/index.html:3 +#: dashboards/nova/containers/tables.py:93 +#: dashboards/nova/containers/tables.py:109 +#: dashboards/nova/containers/tables.py:169 +#: dashboards/nova/containers/templates/containers/detail.html:3 msgid "Objects" msgstr "" -#: dashboards/nova/containers/tables.py:92 -#: dashboards/nova/containers/tables.py:156 -#: dashboards/nova/instances_and_volumes/instances/tables.py:243 -#: dashboards/nova/instances_and_volumes/volumes/tables.py:114 -#: dashboards/nova/templates/nova/images_and_snapshots/images/_detail_overview.html:30 -#: dashboards/nova/templates/nova/instances_and_volumes/volumes/_detail_overview.html:26 +#: dashboards/nova/containers/tables.py:95 +#: dashboards/nova/containers/tables.py:160 +#: dashboards/nova/images_and_snapshots/templates/images_and_snapshots/images/_detail_overview.html:30 +#: dashboards/nova/instances/tables.py:271 +#: dashboards/nova/volumes/tables.py:140 +#: dashboards/nova/volumes/templates/volumes/_detail_overview.html:26 #: dashboards/syspanel/instances/tables.py:76 msgid "Size" msgstr "" -#: dashboards/nova/containers/tables.py:105 +#: dashboards/nova/containers/tables.py:108 msgid "Object" msgstr "" -#: dashboards/nova/containers/tables.py:116 +#: dashboards/nova/containers/tables.py:119 msgid "Copy" msgstr "" -#: dashboards/nova/containers/tables.py:127 +#: dashboards/nova/containers/tables.py:130 msgid "Download" msgstr "" -#: dashboards/nova/containers/views.py:57 +#: dashboards/nova/containers/tables.py:181 +msgid "Create Folder" +msgstr "" + +#: dashboards/nova/containers/tables.py:193 +msgid "Folder" +msgstr "" + +#: dashboards/nova/containers/tables.py:194 +msgid "Folders" +msgstr "" + +#: dashboards/nova/containers/tables.py:200 +msgid "Subfolder Name" +msgstr "" + +#: dashboards/nova/containers/tables.py:208 +msgid "Subfolders" +msgstr "" + +#: dashboards/nova/containers/views.py:58 msgid "Unable to retrieve container list." msgstr "" -#: dashboards/nova/containers/views.py:84 +#: dashboards/nova/containers/views.py:103 msgid "Unable to retrieve object list." msgstr "" -#: dashboards/nova/containers/views.py:122 +#: dashboards/nova/containers/views.py:161 msgid "Unable to retrieve object." msgstr "" -#: dashboards/nova/containers/views.py:144 +#: dashboards/nova/containers/views.py:183 msgid "Unable to list containers." msgstr "" +#: dashboards/nova/containers/templates/containers/_copy.html:7 +#: dashboards/nova/containers/templates/containers/_copy.html:22 +#: dashboards/nova/containers/templates/containers/copy.html:3 +#: dashboards/nova/containers/templates/containers/copy.html:6 +msgid "Copy Object" +msgstr "" + +#: dashboards/nova/containers/templates/containers/_copy.html:17 +msgid "" +"Make a new copy of an existing object to store in this or another container. " +"You may also specify a path at which the new copy should live inside of the " +"selected container." +msgstr "" + +#: dashboards/nova/containers/templates/containers/_create.html:17 +msgid "" +"A container is a storage compartment for your data and provides a way for " +"you to organize your data. You can think of a container as a folder in " +"Windows ® or a directory in UNIX ®. The primary difference between a " +"container and these other file system concepts is that containers cannot be " +"nested. You can, however, create an unlimited number of containers within " +"your account. Data must be stored in a container so you must have at least " +"one container defined in your account prior to uploading data." +msgstr "" + +#: dashboards/nova/containers/templates/containers/_upload.html:8 +msgid "Upload Object To Container" +msgstr "" + +#: dashboards/nova/containers/templates/containers/_upload.html:18 +msgid "" +"An object is the basic storage entity and any optional metadata that " +"represents the files you store in the OpenStack Object Storage system. When " +"you upload data to OpenStack Object Storage, the data is stored as-is (no " +"compression or encryption) and consists of a location (container), the " +"object's name, and any metadata consisting of key/value pairs." +msgstr "" + +#: dashboards/nova/containers/templates/containers/upload.html:6 +msgid "Upload Objects" +msgstr "" + #: dashboards/nova/images_and_snapshots/panel.py:25 msgid "Images & Snapshots" msgstr "" @@ -604,94 +796,147 @@ msgid "Unable to retrieve volume snapshots." msgstr "" #: dashboards/nova/images_and_snapshots/images/forms.py:44 -#: dashboards/nova/templates/nova/images_and_snapshots/images/_detail_overview.html:48 -msgid "Kernel ID" +msgid "Image Location" msgstr "" -#: dashboards/nova/images_and_snapshots/images/forms.py:49 -#: dashboards/nova/templates/nova/images_and_snapshots/images/_detail_overview.html:52 -msgid "Ramdisk ID" +#: dashboards/nova/images_and_snapshots/images/forms.py:45 +msgid "An external (HTTP) URL where the image should be loaded from." msgstr "" -#: dashboards/nova/images_and_snapshots/images/forms.py:54 -#: dashboards/nova/templates/nova/images_and_snapshots/images/_detail_overview.html:44 -msgid "Architecture" +#: dashboards/nova/images_and_snapshots/images/forms.py:48 +#: dashboards/nova/images_and_snapshots/images/forms.py:135 +#: dashboards/nova/images_and_snapshots/images/tables.py:125 +msgid "Format" +msgstr "" + +#: dashboards/nova/images_and_snapshots/images/forms.py:52 +msgid "AKI - Amazon Kernel Image" +msgstr "" + +#: dashboards/nova/images_and_snapshots/images/forms.py:55 +msgid "AMI - Amazon Machine Image" msgstr "" #: dashboards/nova/images_and_snapshots/images/forms.py:58 -#: dashboards/nova/images_and_snapshots/images/tables.py:98 -#: dashboards/nova/templates/nova/images_and_snapshots/images/_detail_overview.html:32 -msgid "Container Format" +msgid "ARI - Amazon Ramdisk Image" msgstr "" -#: dashboards/nova/images_and_snapshots/images/forms.py:62 -#: dashboards/nova/templates/nova/images_and_snapshots/images/_detail_overview.html:34 -msgid "Disk Format" +#: dashboards/nova/images_and_snapshots/images/forms.py:61 +msgid "ISO - Optical Disk Image" msgstr "" -#: dashboards/nova/images_and_snapshots/images/forms.py:66 -#: dashboards/nova/images_and_snapshots/images/tables.py:94 -#: dashboards/nova/templates/nova/images_and_snapshots/images/_detail_overview.html:15 +#: dashboards/nova/images_and_snapshots/images/forms.py:63 +msgid "QCOW2 - QEMU Emulator" +msgstr "" + +#: dashboards/nova/images_and_snapshots/images/forms.py:70 +msgid "Minimum Disk (GB)" +msgstr "" + +#: dashboards/nova/images_and_snapshots/images/forms.py:71 +#: dashboards/nova/images_and_snapshots/images/forms.py:78 +msgid "" +"The minimum disk size required to boot the image. If unspecified, this value " +"defaults to 0 (no minimum)." +msgstr "" + +#: dashboards/nova/images_and_snapshots/images/forms.py:77 +msgid "Minimum Ram (MB)" +msgstr "" + +#: dashboards/nova/images_and_snapshots/images/forms.py:84 +#: dashboards/nova/images_and_snapshots/images/forms.py:139 +#: dashboards/nova/images_and_snapshots/images/tables.py:122 +#: dashboards/nova/images_and_snapshots/templates/images_and_snapshots/images/_detail_overview.html:15 msgid "Public" msgstr "" -#: dashboards/nova/images_and_snapshots/images/forms.py:72 +#: dashboards/nova/images_and_snapshots/images/forms.py:108 +#, python-format +msgid "Your image %s has been queued for creation." +msgstr "" + +#: dashboards/nova/images_and_snapshots/images/forms.py:111 +msgid "Unable to create new image." +msgstr "" + +#: dashboards/nova/images_and_snapshots/images/forms.py:121 +#: dashboards/nova/images_and_snapshots/templates/images_and_snapshots/images/_detail_overview.html:48 +msgid "Kernel ID" +msgstr "" + +#: dashboards/nova/images_and_snapshots/images/forms.py:126 +#: dashboards/nova/images_and_snapshots/templates/images_and_snapshots/images/_detail_overview.html:52 +msgid "Ramdisk ID" +msgstr "" + +#: dashboards/nova/images_and_snapshots/images/forms.py:131 +#: dashboards/nova/images_and_snapshots/templates/images_and_snapshots/images/_detail_overview.html:44 +msgid "Architecture" +msgstr "" + +#: dashboards/nova/images_and_snapshots/images/forms.py:144 #, python-format msgid "Unable to update image \"%s\"." msgstr "" -#: dashboards/nova/images_and_snapshots/images/forms.py:88 +#: dashboards/nova/images_and_snapshots/images/forms.py:163 msgid "Image was successfully updated." msgstr "" #: dashboards/nova/images_and_snapshots/images/tables.py:33 #: dashboards/nova/images_and_snapshots/snapshots/tables.py:32 -#: dashboards/nova/instances_and_volumes/instances/workflows.py:377 +#: dashboards/nova/instances/workflows.py:394 msgid "Launch" msgstr "" #: dashboards/nova/images_and_snapshots/images/tables.py:45 -#: dashboards/nova/instances_and_volumes/instances/workflows.py:161 -#: dashboards/nova/instances_and_volumes/instances/workflows.py:166 +#: dashboards/nova/images_and_snapshots/images/tables.py:81 +#: dashboards/nova/instances/workflows.py:162 +#: dashboards/nova/instances/workflows.py:167 msgid "Image" msgstr "" #: dashboards/nova/images_and_snapshots/images/tables.py:46 -#: dashboards/nova/images_and_snapshots/images/tables.py:102 +#: dashboards/nova/images_and_snapshots/images/tables.py:131 #: dashboards/syspanel/images/panel.py:28 -#: dashboards/syspanel/images/tables.py:38 -#: dashboards/syspanel/templates/syspanel/images/index.html:3 -#: dashboards/syspanel/templates/syspanel/images/index.html:6 +#: dashboards/syspanel/images/tables.py:43 +#: dashboards/syspanel/images/templates/images/index.html:3 +#: dashboards/syspanel/images/templates/images/index.html:6 msgid "Images" msgstr "" #: dashboards/nova/images_and_snapshots/images/tables.py:60 +#: dashboards/nova/images_and_snapshots/templates/images_and_snapshots/images/_create.html:31 +msgid "Create Image" +msgstr "" + +#: dashboards/nova/images_and_snapshots/images/tables.py:67 #: dashboards/syspanel/users/tables.py:30 msgid "Edit" msgstr "" -#: dashboards/nova/images_and_snapshots/images/tables.py:87 -#: dashboards/nova/templates/nova/instances_and_volumes/instances/_detail_overview.html:72 +#: dashboards/nova/images_and_snapshots/images/tables.py:112 +#: dashboards/nova/instances/templates/instances/_detail_overview.html:74 +#: dashboards/syspanel/images/tables.py:39 msgid "Image Name" msgstr "" -#: dashboards/nova/images_and_snapshots/images/tables.py:92 -#: dashboards/nova/instances_and_volumes/instances/tables.py:246 -#: dashboards/nova/instances_and_volumes/volumes/tables.py:117 -#: dashboards/nova/templates/nova/images_and_snapshots/images/_detail_overview.html:13 -#: dashboards/nova/templates/nova/instances_and_volumes/instances/_detail_overview.html:13 -#: dashboards/nova/templates/nova/instances_and_volumes/volumes/_detail_overview.html:17 +#: dashboards/nova/images_and_snapshots/images/tables.py:118 +#: dashboards/nova/images_and_snapshots/templates/images_and_snapshots/images/_detail_overview.html:13 +#: dashboards/nova/instances/tables.py:275 +#: dashboards/nova/instances/templates/instances/_detail_overview.html:13 +#: dashboards/nova/volumes/tables.py:143 +#: dashboards/nova/volumes/templates/volumes/_detail_overview.html:17 #: dashboards/syspanel/instances/tables.py:80 msgid "Status" msgstr "" #: dashboards/nova/images_and_snapshots/images/tabs.py:26 -#: dashboards/nova/instances_and_volumes/instances/tabs.py:25 -#: dashboards/nova/instances_and_volumes/volumes/tabs.py:26 -#: dashboards/nova/overview/panel.py:28 -#: dashboards/nova/templates/nova/overview/usage.html:6 -#: dashboards/syspanel/overview/panel.py:28 -#: dashboards/syspanel/templates/syspanel/overview/usage.html:6 +#: dashboards/nova/instances/tabs.py:25 dashboards/nova/overview/panel.py:28 +#: dashboards/nova/overview/templates/overview/usage.html:6 +#: dashboards/nova/volumes/tabs.py:26 dashboards/syspanel/overview/panel.py:28 +#: dashboards/syspanel/overview/templates/overview/usage.html:6 msgid "Overview" msgstr "" @@ -699,12 +944,16 @@ msgstr "" msgid "Unable to retrieve image details." msgstr "" -#: dashboards/nova/images_and_snapshots/images/views.py:50 +#: dashboards/nova/images_and_snapshots/images/views.py:57 msgid "Unable to retrieve image." msgstr "" +#: dashboards/nova/images_and_snapshots/snapshots/forms.py:38 +msgid "Instance ID" +msgstr "" + #: dashboards/nova/images_and_snapshots/snapshots/forms.py:41 -#: dashboards/nova/instances_and_volumes/volumes/forms.py:101 +#: dashboards/nova/volumes/forms.py:123 msgid "Snapshot Name" msgstr "" @@ -718,9 +967,9 @@ msgid "Unable to create snapshot." msgstr "" #: dashboards/nova/images_and_snapshots/snapshots/tables.py:47 -#: dashboards/nova/instances_and_volumes/instances/tables.py:158 -#: dashboards/nova/instances_and_volumes/instances/workflows.py:101 -#: dashboards/nova/instances_and_volumes/instances/workflows.py:162 +#: dashboards/nova/instances/tables.py:162 +#: dashboards/nova/instances/workflows.py:101 +#: dashboards/nova/instances/workflows.py:163 msgid "Snapshot" msgstr "" @@ -741,905 +990,947 @@ msgstr "" msgid "To create a snapshot, the instance must be in the \"%s\" state." msgstr "" +#: dashboards/nova/images_and_snapshots/templates/images_and_snapshots/index.html:3 +#: dashboards/nova/images_and_snapshots/templates/images_and_snapshots/index.html:6 +msgid "Images & Snapshots" +msgstr "" + +#: dashboards/nova/images_and_snapshots/templates/images_and_snapshots/images/_create.html:7 +#: dashboards/nova/images_and_snapshots/templates/images_and_snapshots/images/create.html:3 +#: dashboards/nova/images_and_snapshots/templates/images_and_snapshots/images/create.html:6 +msgid "Create An Image" +msgstr "" + +#: dashboards/nova/images_and_snapshots/templates/images_and_snapshots/images/_create.html:18 +msgid "Specify an image to upload to the Image Service." +msgstr "" + +#: dashboards/nova/images_and_snapshots/templates/images_and_snapshots/images/_create.html:21 +msgid "" +"Currently only images available via an HTTP URL are supported. The image " +"location must be accessible to the Image Service. Compressed image binaries " +"are supported (.zip and .tar.gz.)" +msgstr "" + +#: dashboards/nova/images_and_snapshots/templates/images_and_snapshots/images/_create.html:24 +msgid "Please note: " +msgstr "" + +#: dashboards/nova/images_and_snapshots/templates/images_and_snapshots/images/_create.html:25 +msgid "" +"The Image Location field MUST be a valid and direct URL to the image binary. " +"URLs that redirect or serve error pages will results in unusable images." +msgstr "" + +#: dashboards/nova/images_and_snapshots/templates/images_and_snapshots/images/_detail_overview.html:3 +msgid "Image Overview" +msgstr "" + +#: dashboards/nova/images_and_snapshots/templates/images_and_snapshots/images/_detail_overview.html:6 +#: dashboards/nova/instances/templates/instances/_detail_overview.html:6 +#: dashboards/nova/volumes/templates/volumes/_detail_overview.html:6 +msgid "Info" +msgstr "" + +#: dashboards/nova/images_and_snapshots/templates/images_and_snapshots/images/_detail_overview.html:11 +#: dashboards/nova/instances/templates/instances/_detail_overview.html:11 +#: dashboards/nova/volumes/templates/volumes/_detail_overview.html:11 +#: dashboards/syspanel/projects/forms.py:83 +#: dashboards/syspanel/users/forms.py:113 +msgid "ID" +msgstr "" + +#: dashboards/nova/images_and_snapshots/templates/images_and_snapshots/images/_detail_overview.html:17 +msgid "Checksum" +msgstr "" + +#: dashboards/nova/images_and_snapshots/templates/images_and_snapshots/images/_detail_overview.html:19 +#: dashboards/nova/volumes/templates/volumes/_detail_overview.html:28 +msgid "Created" +msgstr "" + +#: dashboards/nova/images_and_snapshots/templates/images_and_snapshots/images/_detail_overview.html:21 +msgid "Updated" +msgstr "" + +#: dashboards/nova/images_and_snapshots/templates/images_and_snapshots/images/_detail_overview.html:27 +#: dashboards/nova/instances/templates/instances/_detail_overview.html:19 +#: dashboards/nova/volumes/templates/volumes/_detail_overview.html:23 +msgid "Specs" +msgstr "" + +#: dashboards/nova/images_and_snapshots/templates/images_and_snapshots/images/_detail_overview.html:32 +msgid "Container Format" +msgstr "" + +#: dashboards/nova/images_and_snapshots/templates/images_and_snapshots/images/_detail_overview.html:34 +msgid "Disk Format" +msgstr "" + +#: dashboards/nova/images_and_snapshots/templates/images_and_snapshots/images/_detail_overview.html:40 +msgid "Custom Properties" +msgstr "" + +#: dashboards/nova/images_and_snapshots/templates/images_and_snapshots/images/_detail_overview.html:56 +msgid "Euca2ools state" +msgstr "" + +#: dashboards/nova/images_and_snapshots/templates/images_and_snapshots/images/_detail_overview.html:60 +#: dashboards/syspanel/projects/tables.py:77 +msgid "Project ID" +msgstr "" + +#: dashboards/nova/images_and_snapshots/templates/images_and_snapshots/images/_detail_overview.html:64 +msgid "Image Type" +msgstr "" + +#: dashboards/nova/images_and_snapshots/templates/images_and_snapshots/images/_update.html:7 +#: dashboards/nova/images_and_snapshots/templates/images_and_snapshots/images/_update.html:22 +#: dashboards/nova/images_and_snapshots/templates/images_and_snapshots/images/update.html:3 +#: dashboards/nova/images_and_snapshots/templates/images_and_snapshots/images/update.html:6 +#: dashboards/syspanel/images/templates/images/_update.html:8 +#: dashboards/syspanel/images/templates/images/_update.html:23 +#: dashboards/syspanel/images/templates/images/update.html:4 +#: dashboards/syspanel/images/templates/images/update.html:7 +msgid "Update Image" +msgstr "" + +#: dashboards/nova/images_and_snapshots/templates/images_and_snapshots/images/_update.html:17 +#: dashboards/syspanel/images/templates/images/_update.html:18 +msgid "From here you can modify different properties of an image." +msgstr "" + +#: dashboards/nova/images_and_snapshots/templates/images_and_snapshots/images/detail.html:4 +msgid "Image Detail " +msgstr "" + +#: dashboards/nova/images_and_snapshots/templates/images_and_snapshots/snapshots/_create.html:8 +#: dashboards/nova/images_and_snapshots/templates/images_and_snapshots/snapshots/_create.html:23 +#: dashboards/nova/images_and_snapshots/templates/images_and_snapshots/snapshots/create.html:3 +#: dashboards/nova/volumes/tables.py:67 +msgid "Create Snapshot" +msgstr "" + +#: dashboards/nova/images_and_snapshots/templates/images_and_snapshots/snapshots/_create.html:18 +msgid "Snapshots preserve the disk state of a running instance." +msgstr "" + +#: dashboards/nova/images_and_snapshots/templates/images_and_snapshots/snapshots/create.html:6 +msgid "Create a Snapshot" +msgstr "" + #: dashboards/nova/images_and_snapshots/volume_snapshots/tables.py:30 -#: dashboards/nova/instances_and_volumes/instances/workflows.py:71 +#: dashboards/nova/instances/workflows.py:70 msgid "Volume Snapshot" msgstr "" #: dashboards/nova/images_and_snapshots/volume_snapshots/tables.py:31 -#: dashboards/nova/images_and_snapshots/volume_snapshots/tables.py:42 +#: dashboards/nova/images_and_snapshots/volume_snapshots/tables.py:52 msgid "Volume Snapshots" msgstr "" -#: dashboards/nova/images_and_snapshots/volume_snapshots/tables.py:38 +#: dashboards/nova/images_and_snapshots/volume_snapshots/tables.py:48 msgid "Volume ID" msgstr "" -#: dashboards/nova/instances_and_volumes/panel.py:24 -msgid "Instances & Volumes" -msgstr "" - -#: dashboards/nova/instances_and_volumes/views.py:52 -msgid "Unable to retrieve instances." -msgstr "" - -#: dashboards/nova/instances_and_volumes/views.py:62 -#: dashboards/syspanel/instances/views.py:65 -msgid "Unable to retrieve instance size information." -msgstr "" - -#: dashboards/nova/instances_and_volumes/views.py:78 -#, python-format -msgid "Unable to fetch volumes: %s" -msgstr "" - -#: dashboards/nova/instances_and_volumes/instances/forms.py:44 +#: dashboards/nova/instances/forms.py:44 #, python-format msgid "Instance \"%s\" updated." msgstr "" -#: dashboards/nova/instances_and_volumes/instances/forms.py:46 +#: dashboards/nova/instances/forms.py:46 msgid "Unable to update instance." msgstr "" -#: dashboards/nova/instances_and_volumes/instances/tables.py:56 -msgid "Terminate" -msgstr "" - -#: dashboards/nova/instances_and_volumes/instances/tables.py:57 -msgid "Terminated" -msgstr "" - -#: dashboards/nova/instances_and_volumes/instances/tables.py:59 -#: dashboards/nova/instances_and_volumes/instances/tables.py:76 -#: dashboards/nova/instances_and_volumes/instances/tables.py:91 -#: dashboards/nova/instances_and_volumes/instances/tables.py:119 -#: dashboards/nova/instances_and_volumes/instances/tables.py:261 +#: dashboards/nova/instances/panel.py:24 +#: dashboards/nova/instances/tables.py:63 +#: dashboards/nova/instances/tables.py:80 +#: dashboards/nova/instances/tables.py:95 +#: dashboards/nova/instances/tables.py:123 +#: dashboards/nova/instances/tables.py:290 +#: dashboards/nova/instances/templates/instances/index.html:3 +#: dashboards/nova/instances/templates/instances/index.html:6 #: dashboards/syspanel/instances/panel.py:28 #: dashboards/syspanel/instances/tables.py:95 +#: dashboards/syspanel/instances/templates/instances/index.html:3 #: dashboards/syspanel/projects/forms.py:115 -#: dashboards/syspanel/templates/syspanel/instances/index.html:3 msgid "Instances" msgstr "" -#: dashboards/nova/instances_and_volumes/instances/tables.py:73 +#: dashboards/nova/instances/tables.py:60 +msgid "Terminate" +msgstr "" + +#: dashboards/nova/instances/tables.py:61 +msgid "Scheduled termination of" +msgstr "" + +#: dashboards/nova/instances/tables.py:77 msgid "Reboot" msgstr "" -#: dashboards/nova/instances_and_volumes/instances/tables.py:74 +#: dashboards/nova/instances/tables.py:78 msgid "Rebooted" msgstr "" -#: dashboards/nova/instances_and_volumes/instances/tables.py:88 +#: dashboards/nova/instances/tables.py:92 msgid "Pause" msgstr "" -#: dashboards/nova/instances_and_volumes/instances/tables.py:88 +#: dashboards/nova/instances/tables.py:92 msgid "Unpause" msgstr "" -#: dashboards/nova/instances_and_volumes/instances/tables.py:89 +#: dashboards/nova/instances/tables.py:93 msgid "Paused" msgstr "" -#: dashboards/nova/instances_and_volumes/instances/tables.py:89 +#: dashboards/nova/instances/tables.py:93 msgid "Unpaused" msgstr "" -#: dashboards/nova/instances_and_volumes/instances/tables.py:116 +#: dashboards/nova/instances/tables.py:120 msgid "Suspend" msgstr "" -#: dashboards/nova/instances_and_volumes/instances/tables.py:116 +#: dashboards/nova/instances/tables.py:120 msgid "Resume" msgstr "" -#: dashboards/nova/instances_and_volumes/instances/tables.py:117 +#: dashboards/nova/instances/tables.py:121 msgid "Suspended" msgstr "" -#: dashboards/nova/instances_and_volumes/instances/tables.py:117 +#: dashboards/nova/instances/tables.py:121 msgid "Resumed" msgstr "" -#: dashboards/nova/instances_and_volumes/instances/tables.py:144 -#: dashboards/nova/instances_and_volumes/instances/workflows.py:376 -#: dashboards/nova/templates/nova/instances_and_volumes/instances/launch.html:3 -#: dashboards/nova/templates/nova/instances_and_volumes/instances/launch.html:6 +#: dashboards/nova/instances/tables.py:148 +#: dashboards/nova/instances/workflows.py:393 +#: dashboards/nova/instances/templates/instances/launch.html:3 +#: dashboards/nova/instances/templates/instances/launch.html:6 msgid "Launch Instance" msgstr "" -#: dashboards/nova/instances_and_volumes/instances/tables.py:151 -#: dashboards/nova/templates/nova/instances_and_volumes/instances/_update.html:7 +#: dashboards/nova/instances/tables.py:155 +#: dashboards/nova/instances/templates/instances/_update.html:7 msgid "Edit Instance" msgstr "" -#: dashboards/nova/instances_and_volumes/instances/tables.py:168 +#: dashboards/nova/instances/tables.py:172 msgid "VNC Console" msgstr "" -#: dashboards/nova/instances_and_volumes/instances/tables.py:183 +#: dashboards/nova/instances/tables.py:187 msgid "View Log" msgstr "" -#: dashboards/nova/instances_and_volumes/instances/tables.py:213 +#: dashboards/nova/instances/tables.py:232 #, python-format -msgid "%(RAM)s RAM | %(VCPU)s VCPU | %(disk)s Disk" +msgid "%(name)s | %(RAM)s RAM | %(VCPU)s VCPU | %(disk)s Disk" msgstr "" -#: dashboards/nova/instances_and_volumes/instances/tables.py:241 -#: dashboards/syspanel/instances/tables.py:73 usage/tables.py:47 +#: dashboards/nova/instances/tables.py:239 +#: dashboards/nova/instances/tables.py:246 +msgid "Not available" +msgstr "" + +#: dashboards/nova/instances/tables.py:269 +#: dashboards/syspanel/instances/tables.py:73 usage/tables.py:56 msgid "Instance Name" msgstr "" -#: dashboards/nova/instances_and_volumes/instances/tables.py:250 +#: dashboards/nova/instances/tables.py:279 #: dashboards/syspanel/instances/tables.py:84 msgid "Task" msgstr "" -#: dashboards/nova/instances_and_volumes/instances/tables.py:257 +#: dashboards/nova/instances/tables.py:286 #: dashboards/syspanel/instances/tables.py:91 msgid "Power State" msgstr "" -#: dashboards/nova/instances_and_volumes/instances/tabs.py:35 +#: dashboards/nova/instances/tabs.py:35 msgid "Log" msgstr "" -#: dashboards/nova/instances_and_volumes/instances/tabs.py:47 -#: dashboards/nova/instances_and_volumes/instances/views.py:63 +#: dashboards/nova/instances/tabs.py:47 dashboards/nova/instances/views.py:105 #, python-format msgid "Unable to get log for instance \"%s\"." msgstr "" -#: dashboards/nova/instances_and_volumes/instances/tabs.py:54 +#: dashboards/nova/instances/tabs.py:54 msgid "VNC" msgstr "" -#: dashboards/nova/instances_and_volumes/instances/tabs.py:69 -#: dashboards/nova/instances_and_volumes/instances/views.py:79 +#: dashboards/nova/instances/tabs.py:69 dashboards/nova/instances/views.py:121 #, python-format msgid "Unable to get VNC console for instance \"%s\"." msgstr "" -#: dashboards/nova/instances_and_volumes/instances/views.py:95 +#: dashboards/nova/instances/views.py:58 +msgid "Unable to retrieve instances." +msgstr "" + +#: dashboards/nova/instances/views.py:81 +#: dashboards/syspanel/instances/views.py:89 +msgid "Unable to retrieve instance size information." +msgstr "" + +#: dashboards/nova/instances/views.py:137 msgid "Unable to retrieve instance details." msgstr "" -#: dashboards/nova/instances_and_volumes/instances/views.py:130 +#: dashboards/nova/instances/views.py:172 #, python-format msgid "Unable to retrieve details for instance \"%s\"." msgstr "" -#: dashboards/nova/instances_and_volumes/instances/workflows.py:34 -#: dashboards/syspanel/projects/tables.py:91 +#: dashboards/nova/instances/workflows.py:33 +#: dashboards/syspanel/projects/tables.py:92 #: dashboards/syspanel/users/tables.py:39 #: dashboards/syspanel/users/tables.py:73 tests/workflows_tests.py:40 msgid "User" msgstr "" -#: dashboards/nova/instances_and_volumes/instances/workflows.py:48 +#: dashboards/nova/instances/workflows.py:47 msgid "Project & User" msgstr "" -#: dashboards/nova/instances_and_volumes/instances/workflows.py:50 +#: dashboards/nova/instances/workflows.py:49 msgid "" "Admin users may optionally select the project and user for whom the instance " "should be created." msgstr "" -#: dashboards/nova/instances_and_volumes/instances/workflows.py:61 +#: dashboards/nova/instances/workflows.py:60 msgid "Don't boot from a volume." msgstr "" -#: dashboards/nova/instances_and_volumes/instances/workflows.py:62 +#: dashboards/nova/instances/workflows.py:61 msgid "Boot from volume." msgstr "" -#: dashboards/nova/instances_and_volumes/instances/workflows.py:63 +#: dashboards/nova/instances/workflows.py:62 msgid "Boot from volume snapshot (creates a new volume)." msgstr "" -#: dashboards/nova/instances_and_volumes/instances/workflows.py:67 -#: dashboards/nova/instances_and_volumes/instances/workflows.py:85 +#: dashboards/nova/instances/workflows.py:66 +#: dashboards/nova/instances/workflows.py:84 msgid "Volume Options" msgstr "" -#: dashboards/nova/instances_and_volumes/instances/workflows.py:70 -#: dashboards/nova/instances_and_volumes/instances/workflows.py:104 -#: dashboards/nova/instances_and_volumes/volumes/tables.py:35 -#: dashboards/nova/instances_and_volumes/volumes/tables.py:145 -#: dashboards/nova/templates/nova/instances_and_volumes/instances/_detail_overview.html:83 +#: dashboards/nova/instances/workflows.py:69 +#: dashboards/nova/instances/workflows.py:104 +#: dashboards/nova/instances/templates/instances/_detail_overview.html:93 +#: dashboards/nova/volumes/tables.py:36 dashboards/nova/volumes/tables.py:171 msgid "Volume" msgstr "" -#: dashboards/nova/instances_and_volumes/instances/workflows.py:73 +#: dashboards/nova/instances/workflows.py:72 msgid "Device Name" msgstr "" -#: dashboards/nova/instances_and_volumes/instances/workflows.py:76 +#: dashboards/nova/instances/workflows.py:75 msgid "Volume mount point (e.g. 'vda' mounts at '/dev/vda')." msgstr "" -#: dashboards/nova/instances_and_volumes/instances/workflows.py:78 +#: dashboards/nova/instances/workflows.py:77 msgid "Delete on Terminate" msgstr "" -#: dashboards/nova/instances_and_volumes/instances/workflows.py:81 +#: dashboards/nova/instances/workflows.py:80 msgid "Delete volume on instance terminate" msgstr "" -#: dashboards/nova/instances_and_volumes/instances/workflows.py:111 +#: dashboards/nova/instances/workflows.py:111 msgid "Select Volume" msgstr "" -#: dashboards/nova/instances_and_volumes/instances/workflows.py:119 -#: dashboards/nova/instances_and_volumes/instances/workflows.py:132 -msgid "Unable to retrieve list of volumes" +#: dashboards/nova/instances/workflows.py:119 +msgid "Unable to retrieve list of volumes." msgstr "" -#: dashboards/nova/instances_and_volumes/instances/workflows.py:123 +#: dashboards/nova/instances/workflows.py:123 msgid "Select Volume Snapshot" msgstr "" -#: dashboards/nova/instances_and_volumes/instances/workflows.py:164 +#: dashboards/nova/instances/workflows.py:132 +msgid "Unable to retrieve list of volume snapshots." +msgstr "" + +#: dashboards/nova/instances/workflows.py:165 msgid "Instance Source" msgstr "" -#: dashboards/nova/instances_and_volumes/instances/workflows.py:167 +#: dashboards/nova/instances/workflows.py:168 msgid "Instance Snapshot" msgstr "" -#: dashboards/nova/instances_and_volumes/instances/workflows.py:169 +#: dashboards/nova/instances/workflows.py:170 msgid "Server Name" msgstr "" -#: dashboards/nova/instances_and_volumes/instances/workflows.py:170 +#: dashboards/nova/instances/workflows.py:171 +#: dashboards/nova/instances/templates/instances/_detail_overview.html:22 #: dashboards/syspanel/flavors/tables.py:13 msgid "Flavor" msgstr "" -#: dashboards/nova/instances_and_volumes/instances/workflows.py:171 +#: dashboards/nova/instances/workflows.py:172 msgid "Size of image to launch." msgstr "" -#: dashboards/nova/instances_and_volumes/instances/workflows.py:172 -#: dashboards/nova/templates/nova/instances_and_volumes/instances/_launch_details_help.html:21 +#: dashboards/nova/instances/workflows.py:173 msgid "Instance Count" msgstr "" -#: dashboards/nova/instances_and_volumes/instances/workflows.py:175 +#: dashboards/nova/instances/workflows.py:176 msgid "Number of instances to launch." msgstr "" -#: dashboards/nova/instances_and_volumes/instances/workflows.py:178 +#: dashboards/nova/instances/workflows.py:179 msgid "Details" msgstr "" -#: dashboards/nova/instances_and_volumes/instances/workflows.py:197 +#: dashboards/nova/instances/workflows.py:198 msgid "" "Launching multiple instances is only supported for images and instance " "snapshots." msgstr "" -#: dashboards/nova/instances_and_volumes/instances/workflows.py:240 +#: dashboards/nova/instances/workflows.py:214 +msgid "Unable to retrieve public images." +msgstr "" + +#: dashboards/nova/instances/workflows.py:228 +msgid "Unable to retrieve images for the current project." +msgstr "" + +#: dashboards/nova/instances/workflows.py:251 msgid "Select Image" msgstr "" -#: dashboards/nova/instances_and_volumes/instances/workflows.py:242 +#: dashboards/nova/instances/workflows.py:253 msgid "No images available." msgstr "" -#: dashboards/nova/instances_and_volumes/instances/workflows.py:251 +#: dashboards/nova/instances/workflows.py:262 msgid "Select Instance Snapshot" msgstr "" -#: dashboards/nova/instances_and_volumes/instances/workflows.py:253 +#: dashboards/nova/instances/workflows.py:264 msgid "No snapshots available." msgstr "" -#: dashboards/nova/instances_and_volumes/instances/workflows.py:264 +#: dashboards/nova/instances/workflows.py:275 msgid "Unable to retrieve instance flavors." msgstr "" -#: dashboards/nova/instances_and_volumes/instances/workflows.py:301 +#: dashboards/nova/instances/workflows.py:288 +msgid "Unable to retrieve quota information." +msgstr "" + +#: dashboards/nova/instances/workflows.py:318 msgid "Which keypair to use for authentication." msgstr "" -#: dashboards/nova/instances_and_volumes/instances/workflows.py:307 +#: dashboards/nova/instances/workflows.py:324 msgid "Launch instance in these security groups." msgstr "" -#: dashboards/nova/instances_and_volumes/instances/workflows.py:312 +#: dashboards/nova/instances/workflows.py:329 msgid "" "Control access to your instance via keypairs, security groups, and other " "mechanisms." msgstr "" -#: dashboards/nova/instances_and_volumes/instances/workflows.py:322 +#: dashboards/nova/instances/workflows.py:339 msgid "Unable to retrieve keypairs." msgstr "" -#: dashboards/nova/instances_and_volumes/instances/workflows.py:324 +#: dashboards/nova/instances/workflows.py:341 msgid "Select a keypair" msgstr "" -#: dashboards/nova/instances_and_volumes/instances/workflows.py:326 +#: dashboards/nova/instances/workflows.py:343 msgid "No keypairs available." msgstr "" -#: dashboards/nova/instances_and_volumes/instances/workflows.py:335 +#: dashboards/nova/instances/workflows.py:352 msgid "Unable to retrieve list of security groups" msgstr "" -#: dashboards/nova/instances_and_volumes/instances/workflows.py:355 +#: dashboards/nova/instances/workflows.py:372 msgid "Customization Script" msgstr "" -#: dashboards/nova/instances_and_volumes/instances/workflows.py:357 +#: dashboards/nova/instances/workflows.py:374 msgid "" "A script or set of commands to be executed after the instance has been built " "(max 16kb)." msgstr "" -#: dashboards/nova/instances_and_volumes/instances/workflows.py:364 +#: dashboards/nova/instances/workflows.py:381 msgid "Post-Creation" msgstr "" -#: dashboards/nova/instances_and_volumes/instances/workflows.py:378 +#: dashboards/nova/instances/workflows.py:395 #, python-format -msgid "Instance \"%s\" launched." +msgid "Launched %(count)s named \"%(name)s\"." msgstr "" -#: dashboards/nova/instances_and_volumes/instances/workflows.py:379 +#: dashboards/nova/instances/workflows.py:396 #, python-format -msgid "Unable to launch instance \"%s\"." +msgid "Unable to launch %(count)s named \"%(name)s\"." msgstr "" -#: dashboards/nova/instances_and_volumes/volumes/forms.py:42 +#: dashboards/nova/instances/workflows.py:408 #, python-format -msgid "Error Creating Volume: %s" +msgid "%s instances" msgstr "" -#: dashboards/nova/instances_and_volumes/volumes/forms.py:48 -msgid "Select an instance to attach to." +#: dashboards/nova/instances/workflows.py:411 +msgid "instance" msgstr "" -#: dashboards/nova/instances_and_volumes/volumes/forms.py:86 -#, python-format -msgid "Attaching volume %(vol)s to instance %(inst)s at %(dev)s" -msgstr "" - -#: dashboards/nova/instances_and_volumes/volumes/forms.py:95 -#, python-format -msgid "Error attaching volume: %s" -msgstr "" - -#: dashboards/nova/instances_and_volumes/volumes/forms.py:120 -#, python-format -msgid "Creating volume snapshot \"%s\"" -msgstr "" - -#: dashboards/nova/instances_and_volumes/volumes/forms.py:125 -#, python-format -msgid "Error Creating Volume Snapshot: %(exc)s" -msgstr "" - -#: dashboards/nova/instances_and_volumes/volumes/tables.py:36 -#: dashboards/nova/instances_and_volumes/volumes/tables.py:134 -#: dashboards/nova/instances_and_volumes/volumes/tables.py:146 -#: dashboards/nova/templates/nova/instances_and_volumes/instances/_detail_overview.html:78 -#: dashboards/syspanel/projects/forms.py:116 -msgid "Volumes" -msgstr "" - -#: dashboards/nova/instances_and_volumes/volumes/tables.py:49 -#: dashboards/nova/templates/nova/instances_and_volumes/volumes/_create.html:8 -#: dashboards/nova/templates/nova/instances_and_volumes/volumes/_create.html:23 -msgid "Create Volume" -msgstr "" - -#: dashboards/nova/instances_and_volumes/volumes/tables.py:56 -msgid "Edit Attachments" -msgstr "" - -#: dashboards/nova/instances_and_volumes/volumes/tables.py:66 -#: dashboards/nova/templates/nova/images_and_snapshots/snapshots/_create.html:8 -#: dashboards/nova/templates/nova/images_and_snapshots/snapshots/_create.html:23 -#: dashboards/nova/templates/nova/images_and_snapshots/snapshots/create.html:3 -msgid "Create Snapshot" -msgstr "" - -#: dashboards/nova/instances_and_volumes/volumes/tables.py:83 -#: templatetags/sizeformat.py:58 -#, python-format -msgid "%s GB" -msgstr "" - -#: dashboards/nova/instances_and_volumes/volumes/tables.py:130 -#: dashboards/nova/templates/nova/instances_and_volumes/volumes/_detail_overview.html:34 -msgid "Attachments" -msgstr "" - -#: dashboards/nova/instances_and_volumes/volumes/tables.py:143 -msgid "Detach" -msgstr "" - -#: dashboards/nova/instances_and_volumes/volumes/tables.py:144 -msgid "Detached" -msgstr "" - -#: dashboards/nova/instances_and_volumes/volumes/tabs.py:41 -msgid "Unable to retrieve volume details." -msgstr "" - -#: dashboards/nova/instances_and_volumes/volumes/views.py:71 -#: dashboards/nova/instances_and_volumes/volumes/views.py:81 -msgid "Unable to retrieve volume information." -msgstr "" - -#: dashboards/nova/templates/nova/access_and_security/index.html:6 -msgid "Access & Security" -msgstr "" - -#: dashboards/nova/templates/nova/access_and_security/floating_ips/_allocate.html:8 -#: dashboards/nova/templates/nova/access_and_security/floating_ips/allocate.html:3 -msgid "Allocate Floating IP" -msgstr "" - -#: dashboards/nova/templates/nova/access_and_security/floating_ips/_allocate.html:17 -#: dashboards/nova/templates/nova/access_and_security/floating_ips/_associate.html:16 -#: dashboards/nova/templates/nova/images_and_snapshots/images/_update.html:16 -#: dashboards/nova/templates/nova/images_and_snapshots/snapshots/_create.html:17 -#: dashboards/nova/templates/nova/instances_and_volumes/instances/_update.html:16 -#: dashboards/settings/templates/settings/ec2/download_form.html:17 -#: dashboards/settings/templates/settings/project/_openrc.html:17 -#: dashboards/settings/templates/settings/user/_language.html:30 -msgid "Description:" -msgstr "" - -#: dashboards/nova/templates/nova/access_and_security/floating_ips/_allocate.html:18 -msgid "Allocate a floating IP from a given floating ip pool." -msgstr "" - -#: dashboards/nova/templates/nova/access_and_security/floating_ips/_allocate.html:20 -#: dashboards/nova/templates/nova/instances_and_volumes/instances/_launch_details_help.html:19 -msgid "Project Quotas" -msgstr "" - -#: dashboards/nova/templates/nova/access_and_security/floating_ips/_allocate.html:31 -msgid "Allocate IP" -msgstr "" - -#: dashboards/nova/templates/nova/access_and_security/floating_ips/_allocate.html:32 -#: dashboards/nova/templates/nova/access_and_security/floating_ips/_associate.html:23 -#: dashboards/nova/templates/nova/access_and_security/keypairs/_create.html:24 -#: dashboards/nova/templates/nova/access_and_security/keypairs/_import.html:24 -#: dashboards/nova/templates/nova/access_and_security/security_groups/_create.html:24 -#: dashboards/nova/templates/nova/access_and_security/security_groups/_edit_rules.html:20 -#: dashboards/nova/templates/nova/containers/_create.html:23 -#: dashboards/nova/templates/nova/images_and_snapshots/images/_update.html:23 -#: dashboards/nova/templates/nova/images_and_snapshots/snapshots/_create.html:24 -#: dashboards/nova/templates/nova/instances_and_volumes/instances/_update.html:23 -#: dashboards/nova/templates/nova/instances_and_volumes/volumes/_attach.html:20 -#: dashboards/nova/templates/nova/instances_and_volumes/volumes/_create.html:24 -#: dashboards/nova/templates/nova/instances_and_volumes/volumes/_create_snapshot.html:24 -#: dashboards/nova/templates/nova/objects/_copy.html:23 -#: dashboards/nova/templates/nova/objects/_upload.html:24 -#: dashboards/settings/templates/settings/ec2/download_form.html:24 -#: dashboards/settings/templates/settings/project/_openrc.html:24 -#: dashboards/settings/templates/settings/user/_language.html:37 -#: dashboards/syspanel/templates/syspanel/flavors/_create.html:24 -#: dashboards/syspanel/templates/syspanel/images/_update.html:24 -#: dashboards/syspanel/templates/syspanel/projects/_add_user.html:24 -#: dashboards/syspanel/templates/syspanel/projects/_create.html:24 -#: dashboards/syspanel/templates/syspanel/projects/_quotas.html:23 -#: dashboards/syspanel/templates/syspanel/projects/_update.html:24 -#: dashboards/syspanel/templates/syspanel/users/_create.html:23 -#: dashboards/syspanel/templates/syspanel/users/_update.html:23 -#: templates/horizon/common/_workflow.html:29 -msgid "Cancel" -msgstr "" - -#: dashboards/nova/templates/nova/access_and_security/floating_ips/_associate.html:7 -#: dashboards/nova/templates/nova/access_and_security/floating_ips/associate.html:7 -msgid "Associate Floating IP" -msgstr "" - -#: dashboards/nova/templates/nova/access_and_security/floating_ips/_associate.html:17 -msgid "Associate a floating ip with an instance." -msgstr "" - -#: dashboards/nova/templates/nova/access_and_security/keypairs/_create.html:17 -#: dashboards/nova/templates/nova/access_and_security/keypairs/_import.html:17 -msgid "" -"Keypairs are ssh credentials which are injected into images when they are " -"launched. Creating a new key pair registers the public key and downloads the " -"private key (a .pem file)." -msgstr "" - -#: dashboards/nova/templates/nova/access_and_security/keypairs/_create.html:18 -#: dashboards/nova/templates/nova/access_and_security/keypairs/_import.html:18 -msgid "Protect and use the key as you would any normal ssh private key." -msgstr "" - -#: dashboards/nova/templates/nova/access_and_security/keypairs/download.html:3 -#: dashboards/nova/templates/nova/access_and_security/keypairs/download.html:6 -msgid "Download Keypair" -msgstr "" - -#: dashboards/nova/templates/nova/access_and_security/keypairs/download.html:11 -#, python-format -msgid "" -"The keypair "%(keypair_name)s" should download automatically. If " -"not use the link below." -msgstr "" - -#: dashboards/nova/templates/nova/access_and_security/keypairs/download.html:15 -#, python-format -msgid "Download keypair "%(keypair_name)s"" -msgstr "" - -#: dashboards/nova/templates/nova/access_and_security/security_groups/_create.html:18 -msgid "From here you can create a new security group" -msgstr "" - -#: dashboards/nova/templates/nova/access_and_security/security_groups/_edit_rules.html:9 -#: dashboards/nova/templates/nova/access_and_security/security_groups/edit_rules.html:6 -msgid "Edit Security Group Rules" -msgstr "" - -#: dashboards/nova/templates/nova/access_and_security/security_groups/_edit_rules.html:12 -#: dashboards/nova/templates/nova/access_and_security/security_groups/_edit_rules.html:19 -msgid "Add Rule" -msgstr "" - -#: dashboards/nova/templates/nova/containers/_create.html:17 -msgid "" -"A container is a storage compartment for your data and provides a way for " -"you to organize your data. You can think of a container as a folder in " -"Windows ® or a directory in UNIX ®. The primary difference between a " -"container and these other file system concepts is that containers cannot be " -"nested. You can, however, create an unlimited number of containers within " -"your account. Data must be stored in a container so you must have at least " -"one container defined in your account prior to uploading data." -msgstr "" - -#: dashboards/nova/templates/nova/images_and_snapshots/index.html:3 -#: dashboards/nova/templates/nova/images_and_snapshots/index.html:6 -msgid "Images & Snapshots" -msgstr "" - -#: dashboards/nova/templates/nova/images_and_snapshots/images/_detail_overview.html:3 -msgid "Image Overview" -msgstr "" - -#: dashboards/nova/templates/nova/images_and_snapshots/images/_detail_overview.html:6 -#: dashboards/nova/templates/nova/instances_and_volumes/instances/_detail_overview.html:6 -#: dashboards/nova/templates/nova/instances_and_volumes/volumes/_detail_overview.html:6 -msgid "Info" -msgstr "" - -#: dashboards/nova/templates/nova/images_and_snapshots/images/_detail_overview.html:11 -#: dashboards/nova/templates/nova/instances_and_volumes/instances/_detail_overview.html:11 -#: dashboards/nova/templates/nova/instances_and_volumes/volumes/_detail_overview.html:11 -#: dashboards/syspanel/projects/forms.py:83 -#: dashboards/syspanel/users/forms.py:104 -#: dashboards/syspanel/users/tables.py:106 -msgid "ID" -msgstr "" - -#: dashboards/nova/templates/nova/images_and_snapshots/images/_detail_overview.html:17 -msgid "Checksum" -msgstr "" - -#: dashboards/nova/templates/nova/images_and_snapshots/images/_detail_overview.html:19 -#: dashboards/nova/templates/nova/instances_and_volumes/volumes/_detail_overview.html:28 -msgid "Created" -msgstr "" - -#: dashboards/nova/templates/nova/images_and_snapshots/images/_detail_overview.html:21 -msgid "Updated" -msgstr "" - -#: dashboards/nova/templates/nova/images_and_snapshots/images/_detail_overview.html:27 -#: dashboards/nova/templates/nova/instances_and_volumes/instances/_detail_overview.html:19 -#: dashboards/nova/templates/nova/instances_and_volumes/volumes/_detail_overview.html:23 -msgid "Specs" -msgstr "" - -#: dashboards/nova/templates/nova/images_and_snapshots/images/_detail_overview.html:40 -msgid "Custom Properties" -msgstr "" - -#: dashboards/nova/templates/nova/images_and_snapshots/images/_detail_overview.html:56 -msgid "Euca2ools state" -msgstr "" - -#: dashboards/nova/templates/nova/images_and_snapshots/images/_detail_overview.html:60 -#: usage/tables.py:28 -msgid "Project ID" -msgstr "" - -#: dashboards/nova/templates/nova/images_and_snapshots/images/_detail_overview.html:64 -msgid "Image Type" -msgstr "" - -#: dashboards/nova/templates/nova/images_and_snapshots/images/_update.html:7 -#: dashboards/nova/templates/nova/images_and_snapshots/images/_update.html:22 -#: dashboards/nova/templates/nova/images_and_snapshots/images/update.html:3 -#: dashboards/nova/templates/nova/images_and_snapshots/images/update.html:6 -#: dashboards/syspanel/templates/syspanel/images/_update.html:8 -#: dashboards/syspanel/templates/syspanel/images/_update.html:23 -#: dashboards/syspanel/templates/syspanel/images/update.html:4 -#: dashboards/syspanel/templates/syspanel/images/update.html:7 -msgid "Update Image" -msgstr "" - -#: dashboards/nova/templates/nova/images_and_snapshots/images/_update.html:17 -#: dashboards/syspanel/templates/syspanel/images/_update.html:18 -msgid "From here you can modify different properties of an image." -msgstr "" - -#: dashboards/nova/templates/nova/images_and_snapshots/images/detail.html:4 -msgid "Image Detail " -msgstr "" - -#: dashboards/nova/templates/nova/images_and_snapshots/snapshots/_create.html:18 -msgid "Snapshots preserve the disk state of a running instance." -msgstr "" - -#: dashboards/nova/templates/nova/images_and_snapshots/snapshots/create.html:6 -msgid "Create a Snapshot" -msgstr "" - -#: dashboards/nova/templates/nova/instances_and_volumes/index.html:6 -msgid "Instances & Volumes" -msgstr "" - -#: dashboards/nova/templates/nova/instances_and_volumes/instances/_detail_log.html:7 +#: dashboards/nova/instances/templates/instances/_detail_log.html:7 msgid "View Full Log" msgstr "" -#: dashboards/nova/templates/nova/instances_and_volumes/instances/_detail_overview.html:3 +#: dashboards/nova/instances/templates/instances/_detail_overview.html:3 msgid "Instance Overview" msgstr "" -#: dashboards/nova/templates/nova/instances_and_volumes/instances/_detail_overview.html:22 -#: dashboards/nova/templates/nova/instances_and_volumes/instances/_launch_details_help.html:14 -#: usage/tables.py:21 +#: dashboards/nova/instances/templates/instances/_detail_overview.html:24 +#: dashboards/nova/instances/templates/instances/_launch_details_help.html:14 +#: usage/tables.py:22 msgid "RAM" msgstr "" -#: dashboards/nova/templates/nova/instances_and_volumes/instances/_detail_overview.html:24 -#: dashboards/nova/templates/nova/instances_and_volumes/instances/_launch_details_help.html:10 -#: dashboards/nova/templates/nova/instances_and_volumes/instances/_launch_details_help.html:28 +#: dashboards/nova/instances/templates/instances/_detail_overview.html:26 +#: dashboards/nova/instances/templates/instances/_launch_details_help.html:10 #: dashboards/syspanel/flavors/forms.py:38 #: dashboards/syspanel/flavors/tables.py:30 -#: dashboards/syspanel/projects/forms.py:114 usage/tables.py:18 +#: dashboards/syspanel/projects/forms.py:114 usage/tables.py:19 msgid "VCPUs" msgstr "" -#: dashboards/nova/templates/nova/instances_and_volumes/instances/_detail_overview.html:25 +#: dashboards/nova/instances/templates/instances/_detail_overview.html:27 msgid "VCPU" msgstr "" -#: dashboards/nova/templates/nova/instances_and_volumes/instances/_detail_overview.html:26 -#: dashboards/nova/templates/nova/instances_and_volumes/instances/_launch_details_help.html:35 -#: usage/tables.py:19 +#: dashboards/nova/instances/templates/instances/_detail_overview.html:28 +#: usage/tables.py:20 msgid "Disk" msgstr "" -#: dashboards/nova/templates/nova/instances_and_volumes/instances/_detail_overview.html:27 -#: dashboards/nova/templates/nova/instances_and_volumes/instances/_launch_details_help.html:11 -#: dashboards/nova/templates/nova/instances_and_volumes/instances/_launch_details_help.html:12 -#: dashboards/nova/templates/nova/instances_and_volumes/instances/_launch_details_help.html:13 -#: dashboards/nova/templates/nova/instances_and_volumes/instances/_launch_details_help.html:35 -#: dashboards/nova/templates/nova/instances_and_volumes/volumes/_detail_overview.html:27 +#: dashboards/nova/instances/templates/instances/_detail_overview.html:29 +#: dashboards/nova/instances/templates/instances/_launch_details_help.html:11 +#: dashboards/nova/instances/templates/instances/_launch_details_help.html:12 +#: dashboards/nova/instances/templates/instances/_launch_details_help.html:13 +#: dashboards/nova/volumes/templates/volumes/_detail_overview.html:27 msgid "GB" msgstr "" -#: dashboards/nova/templates/nova/instances_and_volumes/instances/_detail_overview.html:32 +#: dashboards/nova/instances/templates/instances/_detail_overview.html:34 msgid "IP Addresses" msgstr "" -#: dashboards/nova/templates/nova/instances_and_volumes/instances/_detail_overview.html:57 +#: dashboards/nova/instances/templates/instances/_detail_overview.html:59 msgid "No rules defined." msgstr "" -#: dashboards/nova/templates/nova/instances_and_volumes/instances/_detail_overview.html:66 +#: dashboards/nova/instances/templates/instances/_detail_overview.html:68 msgid "Meta" msgstr "" -#: dashboards/nova/templates/nova/instances_and_volumes/instances/_detail_overview.html:69 +#: dashboards/nova/instances/templates/instances/_detail_overview.html:71 msgid "Key Name" msgstr "" -#: dashboards/nova/templates/nova/instances_and_volumes/instances/_detail_overview.html:93 +#: dashboards/nova/instances/templates/instances/_detail_overview.html:84 +msgid "Volumes Attached" +msgstr "" + +#: dashboards/nova/instances/templates/instances/_detail_overview.html:88 +#: dashboards/nova/volumes/tables.py:156 +#: dashboards/nova/volumes/templates/volumes/_detail_overview.html:38 +#: dashboards/nova/volumes/templates/volumes/_detail_overview.html:45 +msgid "Attached To" +msgstr "" + +#: dashboards/nova/instances/templates/instances/_detail_overview.html:90 +#: dashboards/nova/volumes/templates/volumes/_detail_overview.html:42 +msgid "on" +msgstr "" + +#: dashboards/nova/instances/templates/instances/_detail_overview.html:94 msgid "No volumes attached." msgstr "" -#: dashboards/nova/templates/nova/instances_and_volumes/instances/_detail_vnc.html:3 +#: dashboards/nova/instances/templates/instances/_detail_vnc.html:3 msgid "Instance VNC Console" msgstr "" -#: dashboards/nova/templates/nova/instances_and_volumes/instances/_detail_vnc.html:5 +#: dashboards/nova/instances/templates/instances/_detail_vnc.html:5 msgid "" "If VNC console is not responding to keyboard input: click the grey status " "bar below." msgstr "" -#: dashboards/nova/templates/nova/instances_and_volumes/instances/_detail_vnc.html:5 +#: dashboards/nova/instances/templates/instances/_detail_vnc.html:5 msgid "Click here to show only VNC" msgstr "" -#: dashboards/nova/templates/nova/instances_and_volumes/instances/_detail_vnc.html:8 +#: dashboards/nova/instances/templates/instances/_detail_vnc.html:8 msgid "VNC console is currently unavailabe. Please try again later." msgstr "" -#: dashboards/nova/templates/nova/instances_and_volumes/instances/_detail_vnc.html:9 +#: dashboards/nova/instances/templates/instances/_detail_vnc.html:9 msgid "Reload" msgstr "" -#: dashboards/nova/templates/nova/instances_and_volumes/instances/_launch_customize_help.html:2 +#: dashboards/nova/instances/templates/instances/_launch_customize_help.html:2 msgid "" "You can customize your instance after it's launched using the options " "available here." msgstr "" -#: dashboards/nova/templates/nova/instances_and_volumes/instances/_launch_customize_help.html:3 +#: dashboards/nova/instances/templates/instances/_launch_customize_help.html:3 msgid "" "The \"Customization Script\" field is analogous to \"User Data\" in other " "systems." msgstr "" -#: dashboards/nova/templates/nova/instances_and_volumes/instances/_launch_details_help.html:3 +#: dashboards/nova/instances/templates/instances/_launch_details_help.html:3 msgid "Specify the details for launching an instance." msgstr "" -#: dashboards/nova/templates/nova/instances_and_volumes/instances/_launch_details_help.html:4 +#: dashboards/nova/instances/templates/instances/_launch_details_help.html:4 msgid "" "The chart below shows the resources used by this project in relation to the " "project's quotas." msgstr "" -#: dashboards/nova/templates/nova/instances_and_volumes/instances/_launch_details_help.html:6 +#: dashboards/nova/instances/templates/instances/_launch_details_help.html:6 msgid "Flavor Details" msgstr "" -#: dashboards/nova/templates/nova/instances_and_volumes/instances/_launch_details_help.html:11 +#: dashboards/nova/instances/templates/instances/_launch_details_help.html:11 #: dashboards/syspanel/flavors/tables.py:32 msgid "Root Disk" msgstr "" -#: dashboards/nova/templates/nova/instances_and_volumes/instances/_launch_details_help.html:12 +#: dashboards/nova/instances/templates/instances/_launch_details_help.html:12 #: dashboards/syspanel/flavors/tables.py:34 msgid "Ephemeral Disk" msgstr "" -#: dashboards/nova/templates/nova/instances_and_volumes/instances/_launch_details_help.html:13 +#: dashboards/nova/instances/templates/instances/_launch_details_help.html:13 msgid "Total Disk" msgstr "" -#: dashboards/nova/templates/nova/instances_and_volumes/instances/_launch_details_help.html:14 -#: dashboards/nova/templates/nova/instances_and_volumes/instances/_launch_details_help.html:42 +#: dashboards/nova/instances/templates/instances/_launch_details_help.html:14 +#: dashboards/nova/instances/templates/instances/_launch_details_help.html:37 msgid "MB" msgstr "" -#: dashboards/nova/templates/nova/instances_and_volumes/instances/_launch_details_help.html:42 -#: dashboards/syspanel/flavors/tables.py:31 -msgid "Memory" +#: dashboards/nova/instances/templates/instances/_launch_details_help.html:21 +msgid "Number of Instances" msgstr "" -#: dashboards/nova/templates/nova/instances_and_volumes/instances/_launch_volumes_help.html:3 +#: dashboards/nova/instances/templates/instances/_launch_details_help.html:29 +msgid "Number of VCPUs" +msgstr "" + +#: dashboards/nova/instances/templates/instances/_launch_details_help.html:37 +msgid "Total Memory" +msgstr "" + +#: dashboards/nova/instances/templates/instances/_launch_volumes_help.html:3 msgid "" "An instance can be launched with varying types of attached storage. You may " "select from those options here." msgstr "" -#: dashboards/nova/templates/nova/instances_and_volumes/instances/_update.html:17 +#: dashboards/nova/instances/templates/instances/_update.html:17 msgid "You may update the editable properties of your instance here." msgstr "" -#: dashboards/nova/templates/nova/instances_and_volumes/instances/_update.html:22 +#: dashboards/nova/instances/templates/instances/_update.html:22 msgid "Save Changes" msgstr "" -#: dashboards/nova/templates/nova/instances_and_volumes/instances/detail.html:3 +#: dashboards/nova/instances/templates/instances/detail.html:3 msgid "Instance Detail" msgstr "" -#: dashboards/nova/templates/nova/instances_and_volumes/instances/update.html:3 -#: dashboards/nova/templates/nova/instances_and_volumes/instances/update.html:6 +#: dashboards/nova/instances/templates/instances/update.html:3 +#: dashboards/nova/instances/templates/instances/update.html:6 msgid "Update Instance" msgstr "" -#: dashboards/nova/templates/nova/instances_and_volumes/volumes/_attach.html:9 -#: dashboards/nova/templates/nova/instances_and_volumes/volumes/attach.html:6 +#: dashboards/nova/templates/nova/_warning.html:6 +msgid "You currently have the power to damage your OpenStack cloud..." +msgstr "" + +#: dashboards/nova/templates/nova/_warning.html:9 +msgid "" +"Due to inconsistencies in the way Nova interacts with Keystone, a user with " +"an admin role has access to all resources in the system (volumes, snapshots, " +"keypairs, etc.), even in the Project dashboard where they should only see a " +"properly-scoped subset of those resources." +msgstr "" + +#: dashboards/nova/templates/nova/_warning.html:10 +msgid "" +"This means that Nova allows an admin user in the Project Dashboard to " +"successfully take actions which otherwise should not be permitted, causing " +"irresolvable conflicts in Nova." +msgstr "" + +#: dashboards/nova/templates/nova/_warning.html:11 +msgid "A list of the known problems are as follows:" +msgstr "" + +#: dashboards/nova/templates/nova/_warning.html:13 +msgid "" +"Attaching a volume owned by project A to an instance in project B can " +"completely hang Nova." +msgstr "" + +#: dashboards/nova/templates/nova/_warning.html:14 +msgid "" +"Assigning keypairs owned by project A to an instance in project B can result " +"in failed instances, problems in retrieving instance details for non-admin " +"users, and/or security holes should the instance succeed in spawning." +msgstr "" + +#: dashboards/nova/templates/nova/_warning.html:15 +msgid "" +"Attempting to launch an instance in project A from a snapshot or volume " +"snapshot owned by project B can hang Nova." +msgstr "" + +#: dashboards/nova/templates/nova/_warning.html:16 +msgid "" +"Attempting to boot from a volume owned by project A in project B can hang " +"Nova." +msgstr "" + +#: dashboards/nova/templates/nova/_warning.html:18 +msgid "" +"This is only a list of the reported inconsistencies. There may be others." +msgstr "" + +#: dashboards/nova/templates/nova/_warning.html:19 +msgid "" +"The recommended practice until this problem is resolved is to keep your " +"admin users and regular users separate. Create an \"admin\" project that " +"admin users have access to, and do not grant your admin users the admin role " +"on any other projects." +msgstr "" + +#: dashboards/nova/templates/nova/_warning.html:20 +msgid "" +"To follow the status of this bug, take a look at the following items on " +"launchpad:" +msgstr "" + +#: dashboards/nova/templates/nova/_warning.html:27 +msgid "" +"Thank you for reading this warning and operating your cloud responsibly." +msgstr "" + +#: dashboards/nova/templates/nova/_warning.html:30 +msgid "Close" +msgstr "" + +#: dashboards/nova/templates/nova/base.html:9 +msgid "Caution" +msgstr "" + +#: dashboards/nova/templates/nova/base.html:10 +msgid "You are acting as an admin user in the project dashboard." +msgstr "" + +#: dashboards/nova/templates/nova/base.html:12 +msgid "Learn More" +msgstr "" + +#: dashboards/nova/volumes/forms.py:40 +#, python-format +msgid "" +"A volume of %(req)iGB cannot be created as you only have %(avail)iGB of your " +"quota available." +msgstr "" + +#: dashboards/nova/volumes/forms.py:47 +msgid "You are already using all of your available volumes." +msgstr "" + +#: dashboards/nova/volumes/forms.py:60 +msgid "Unable to create volume." +msgstr "" + +#: dashboards/nova/volumes/forms.py:67 +msgid "Select an instance to attach to." +msgstr "" + +#: dashboards/nova/volumes/forms.py:100 +msgid "Unknown instance (None)" +msgstr "" + +#: dashboards/nova/volumes/forms.py:111 +#, python-format +msgid "Attaching volume %(vol)s to instance %(inst)s on %(dev)s." +msgstr "" + +#: dashboards/nova/volumes/forms.py:118 +msgid "Unable to attach volume." +msgstr "" + +#: dashboards/nova/volumes/forms.py:142 +#, python-format +msgid "Creating volume snapshot \"%s\"" +msgstr "" + +#: dashboards/nova/volumes/forms.py:146 +msgid "Unable to create volume snapshot." +msgstr "" + +#: dashboards/nova/volumes/panel.py:24 dashboards/nova/volumes/tables.py:37 +#: dashboards/nova/volumes/tables.py:160 dashboards/nova/volumes/tables.py:172 +#: dashboards/nova/volumes/templates/volumes/index.html:3 +#: dashboards/nova/volumes/templates/volumes/index.html:6 +#: dashboards/syspanel/projects/forms.py:116 +#: dashboards/syspanel/volumes/panel.py:9 +#: dashboards/syspanel/volumes/tables.py:15 +#: dashboards/syspanel/volumes/templates/volumes/index.html:3 +#: dashboards/syspanel/volumes/templates/volumes/index.html:6 +msgid "Volumes" +msgstr "" + +#: dashboards/nova/volumes/tables.py:50 +#: dashboards/nova/volumes/templates/volumes/_create.html:8 +#: dashboards/nova/volumes/templates/volumes/_create.html:55 +msgid "Create Volume" +msgstr "" + +#: dashboards/nova/volumes/tables.py:57 +msgid "Edit Attachments" +msgstr "" + +#: dashboards/nova/volumes/tables.py:84 +#, python-format +msgid "%sGB" +msgstr "" + +#: dashboards/nova/volumes/tables.py:97 +msgid "Unable to retrieve attachment information." +msgstr "" + +#: dashboards/nova/volumes/tables.py:114 +#, python-format +msgid "Attached to %(instance)s on %(dev)s" +msgstr "" + +#: dashboards/nova/volumes/tables.py:169 +msgid "Detach" +msgstr "" + +#: dashboards/nova/volumes/tables.py:170 +msgid "Detaching" +msgstr "" + +#: dashboards/nova/volumes/tables.py:205 +#, python-format +msgid "%(dev)s on instance %(instance_name)s" +msgstr "" + +#: dashboards/nova/volumes/tabs.py:41 +msgid "Unable to retrieve volume details." +msgstr "" + +#: dashboards/nova/volumes/views.py:50 +msgid "Unable to retrieve volume list." +msgstr "" + +#: dashboards/nova/volumes/views.py:56 +msgid "Unable to retrieve volume/instance attachment information" +msgstr "" + +#: dashboards/nova/volumes/views.py:114 dashboards/nova/volumes/views.py:124 +msgid "Unable to retrieve volume information." +msgstr "" + +#: dashboards/nova/volumes/templates/volumes/_attach.html:9 +#: dashboards/nova/volumes/templates/volumes/attach.html:6 msgid "Manage Volume Attachments" msgstr "" -#: dashboards/nova/templates/nova/instances_and_volumes/volumes/_attach.html:12 +#: dashboards/nova/volumes/templates/volumes/_attach.html:12 msgid "Attach To Instance" msgstr "" -#: dashboards/nova/templates/nova/instances_and_volumes/volumes/_attach.html:19 +#: dashboards/nova/volumes/templates/volumes/_attach.html:19 msgid "Attach Volume" msgstr "" -#: dashboards/nova/templates/nova/instances_and_volumes/volumes/_create.html:18 -#: dashboards/nova/templates/nova/instances_and_volumes/volumes/_create_snapshot.html:18 +#: dashboards/nova/volumes/templates/volumes/_create.html:20 +#: dashboards/nova/volumes/templates/volumes/_create_snapshot.html:18 msgid "Volumes are block devices that can be attached to instances." msgstr "" -#: dashboards/nova/templates/nova/instances_and_volumes/volumes/_create_snapshot.html:8 -#: dashboards/nova/templates/nova/instances_and_volumes/volumes/_create_snapshot.html:23 -#: dashboards/nova/templates/nova/instances_and_volumes/volumes/create_snapshot.html:3 +#: dashboards/nova/volumes/templates/volumes/_create.html:22 +msgid "Volume Quotas" +msgstr "" + +#: dashboards/nova/volumes/templates/volumes/_create.html:25 +msgid "Total Gigabytes" +msgstr "" + +#: dashboards/nova/volumes/templates/volumes/_create.html:34 +msgid "Number of Volumes" +msgstr "" + +#: dashboards/nova/volumes/templates/volumes/_create_snapshot.html:8 +#: dashboards/nova/volumes/templates/volumes/_create_snapshot.html:23 +#: dashboards/nova/volumes/templates/volumes/create_snapshot.html:3 msgid "Create Volume Snapshot" msgstr "" -#: dashboards/nova/templates/nova/instances_and_volumes/volumes/_detail_overview.html:3 +#: dashboards/nova/volumes/templates/volumes/_detail_overview.html:3 msgid "Volume Overview" msgstr "" -#: dashboards/nova/templates/nova/instances_and_volumes/volumes/_detail_overview.html:38 -msgid "Attached To" +#: dashboards/nova/volumes/templates/volumes/_detail_overview.html:34 +msgid "Attachments" msgstr "" -#: dashboards/nova/templates/nova/instances_and_volumes/volumes/_detail_overview.html:42 -msgid "on" -msgstr "" - -#: dashboards/nova/templates/nova/instances_and_volumes/volumes/_detail_overview.html:47 +#: dashboards/nova/volumes/templates/volumes/_detail_overview.html:46 msgid "Not attached" msgstr "" -#: dashboards/nova/templates/nova/instances_and_volumes/volumes/create.html:6 +#: dashboards/nova/volumes/templates/volumes/create.html:6 msgid "Create a Volume" msgstr "" -#: dashboards/nova/templates/nova/instances_and_volumes/volumes/create_snapshot.html:6 +#: dashboards/nova/volumes/templates/volumes/create_snapshot.html:6 msgid "Create a Volume Snapshot" msgstr "" -#: dashboards/nova/templates/nova/instances_and_volumes/volumes/detail.html:3 +#: dashboards/nova/volumes/templates/volumes/detail.html:3 +#: dashboards/syspanel/volumes/templates/volumes/detail.html:3 msgid "Volume Details" msgstr "" -#: dashboards/nova/templates/nova/instances_and_volumes/volumes/detail.html:6 +#: dashboards/nova/volumes/templates/volumes/detail.html:6 +#: dashboards/syspanel/volumes/templates/volumes/detail.html:6 msgid "Volume Detail" msgstr "" -#: dashboards/nova/templates/nova/objects/_copy.html:7 -#: dashboards/nova/templates/nova/objects/_copy.html:22 -#: dashboards/nova/templates/nova/objects/copy.html:3 -#: dashboards/nova/templates/nova/objects/copy.html:6 -msgid "Copy Object" -msgstr "" - -#: dashboards/nova/templates/nova/objects/_copy.html:17 -msgid "" -"You may make a new copy of an existing object to store in this or another " -"container." -msgstr "" - -#: dashboards/nova/templates/nova/objects/_upload.html:8 -msgid "Upload Object To Container" -msgstr "" - -#: dashboards/nova/templates/nova/objects/_upload.html:18 -msgid "" -"An object is the basic storage entity and any optional metadata that " -"represents the files you store in the OpenStack Object Storage system. When " -"you upload data to OpenStack Object Storage, the data is stored as-is (no " -"compression or encryption) and consists of a location (container), the " -"object's name, and any metadata consisting of key/value pairs." -msgstr "" - -#: dashboards/nova/templates/nova/objects/upload.html:6 -msgid "Upload Objects" -msgstr "" - #: dashboards/settings/dashboard.py:24 msgid "Settings" msgstr "" @@ -1652,11 +1943,11 @@ msgstr "" msgid "Unable to retrieve tenant list." msgstr "" -#: dashboards/settings/ec2/forms.py:95 +#: dashboards/settings/ec2/forms.py:93 msgid "Unable to fetch EC2 credentials." msgstr "" -#: dashboards/settings/ec2/forms.py:108 +#: dashboards/settings/ec2/forms.py:106 #, python-format msgid "Error writing zipfile: %(exc)s" msgstr "" @@ -1665,69 +1956,78 @@ msgstr "" msgid "EC2 Credentials" msgstr "" -#: dashboards/settings/project/forms.py:76 -#, python-format -msgid "Error Downloading RC File: %s" -msgstr "" - -#: dashboards/settings/project/panel.py:24 -msgid "OpenStack Credentials" -msgstr "" - -#: dashboards/settings/templates/settings/ec2/download_form.html:8 -#: dashboards/settings/templates/settings/ec2/download_form.html:23 -#: dashboards/settings/templates/settings/ec2/index.html:3 -#: dashboards/settings/templates/settings/ec2/index.html:6 +#: dashboards/settings/ec2/templates/ec2/download_form.html:8 +#: dashboards/settings/ec2/templates/ec2/download_form.html:23 +#: dashboards/settings/ec2/templates/ec2/index.html:3 +#: dashboards/settings/ec2/templates/ec2/index.html:6 msgid "Download EC2 Credentials" msgstr "" -#: dashboards/settings/templates/settings/ec2/download_form.html:18 +#: dashboards/settings/ec2/templates/ec2/download_form.html:18 msgid "" "Clicking \"Download EC2 Credentials\" will download a zip file which " "includes an rc file with your access/secret keys, as well as your x509 " "private key and certificate." msgstr "" -#: dashboards/settings/templates/settings/project/_openrc.html:8 -#: dashboards/settings/templates/settings/project/settings.html:6 +#: dashboards/settings/project/forms.py:76 +#, python-format +msgid "Error Downloading RC File: %s" +msgstr "" + +#: dashboards/settings/project/panel.py:24 +#: dashboards/settings/project/templates/project/_openrc.html:8 +#: dashboards/settings/project/templates/project/settings.html:3 +#: dashboards/settings/project/templates/project/settings.html:6 +msgid "OpenStack API" +msgstr "" + +#: dashboards/settings/project/tables.py:27 +msgid "Service Name" +msgstr "" + +#: dashboards/settings/project/tables.py:29 +msgid "Service Endpoint" +msgstr "" + +#: dashboards/settings/project/tables.py:33 +msgid "API Endpoints" +msgstr "" + +#: dashboards/settings/project/templates/project/_openrc.html:15 msgid "Download OpenStack RC File" msgstr "" -#: dashboards/settings/templates/settings/project/_openrc.html:18 +#: dashboards/settings/project/templates/project/_openrc.html:25 msgid "" "Download the RC file for the selected project, then type \"source openrc\" " "in the terminal to configure your environment to communicate with OpenStack." msgstr "" -#: dashboards/settings/templates/settings/project/_openrc.html:23 +#: dashboards/settings/project/templates/project/_openrc.html:30 msgid "Download RC File" msgstr "" -#: dashboards/settings/templates/settings/user/_language.html:8 -#: dashboards/settings/templates/settings/user/_language.html:36 -msgid "Select Language" -msgstr "" - -#: dashboards/settings/templates/settings/user/_language.html:12 -msgid "Dashboard User Interface Language" -msgstr "" - -#: dashboards/settings/templates/settings/user/_language.html:14 -msgid "Language Settings" -msgstr "" - -#: dashboards/settings/templates/settings/user/_language.html:31 -msgid "From here you can modify different settings for your dashboard." -msgstr "" - -#: dashboards/settings/templates/settings/user/settings.html:6 -msgid "Dashboard Settings" +#: dashboards/settings/user/forms.py:57 +msgid "Settings saved." msgstr "" #: dashboards/settings/user/panel.py:24 +#: dashboards/settings/user/templates/user/_settings.html:8 +#: dashboards/settings/user/templates/user/settings.html:3 +#: dashboards/settings/user/templates/user/settings.html:6 msgid "User Settings" msgstr "" +#: dashboards/settings/user/templates/user/_settings.html:18 +msgid "From here you can modify dashboard settings for your user." +msgstr "" + +#: dashboards/settings/user/templates/user/_settings.html:23 +#: workflows/base.py:510 +msgid "Save" +msgstr "" + #: dashboards/syspanel/dashboard.py:24 msgid "System Panel" msgstr "" @@ -1760,14 +2060,14 @@ msgstr "" #: dashboards/syspanel/flavors/panel.py:28 #: dashboards/syspanel/flavors/tables.py:14 #: dashboards/syspanel/flavors/tables.py:38 -#: dashboards/syspanel/templates/syspanel/flavors/index.html:8 +#: dashboards/syspanel/flavors/templates/flavors/index.html:8 msgid "Flavors" msgstr "" #: dashboards/syspanel/flavors/tables.py:22 -#: dashboards/syspanel/templates/syspanel/flavors/_create.html:8 -#: dashboards/syspanel/templates/syspanel/flavors/_create.html:23 -#: dashboards/syspanel/templates/syspanel/flavors/create.html:6 +#: dashboards/syspanel/flavors/templates/flavors/_create.html:8 +#: dashboards/syspanel/flavors/templates/flavors/_create.html:23 +#: dashboards/syspanel/flavors/templates/flavors/create.html:6 msgid "Create Flavor" msgstr "" @@ -1775,6 +2075,10 @@ msgstr "" msgid "Flavor Name" msgstr "" +#: dashboards/syspanel/flavors/tables.py:31 +msgid "Memory" +msgstr "" + #: dashboards/syspanel/flavors/views.py:48 msgid "Unauthorized." msgstr "" @@ -1784,12 +2088,16 @@ msgstr "" msgid "Unable to get flavor list: %s" msgstr "" +#: dashboards/syspanel/flavors/templates/flavors/_create.html:18 +msgid "From here you can define the sizing of a new flavor." +msgstr "" + #: dashboards/syspanel/images/views.py:52 msgid "Unable to retrieve image list." msgstr "" -#: dashboards/syspanel/instances/tables.py:62 -msgid "Tenant" +#: dashboards/syspanel/instances/tables.py:62 usage/tables.py:29 +msgid "Project Name" msgstr "" #: dashboards/syspanel/instances/tables.py:69 @@ -1801,21 +2109,34 @@ msgstr "" msgid "Unable to retrieve instance tenant information." msgstr "" +#: dashboards/syspanel/instances/templates/instances/index.html:6 +msgid "All Instances" +msgstr "" + +#: dashboards/syspanel/overview/templates/overview/usage.html:3 +msgid "Usage Overview" +msgstr "" + +#: dashboards/syspanel/overview/templates/overview/usage.html:12 +msgid "Monitoring" +msgstr "" + #: dashboards/syspanel/projects/forms.py:38 +#: dashboards/syspanel/users/forms.py:75 msgid "Role" msgstr "" #: dashboards/syspanel/projects/forms.py:52 -msgid "Successfully added user to tenant." +msgid "Successfully added user to project." msgstr "" #: dashboards/syspanel/projects/forms.py:54 -msgid "Unable to add user to tenant." +msgid "Unable to add user to project." msgstr "" #: dashboards/syspanel/projects/forms.py:64 #: dashboards/syspanel/projects/forms.py:89 -#: dashboards/syspanel/projects/tables.py:77 +#: dashboards/syspanel/projects/tables.py:78 #: dashboards/syspanel/services/tables.py:42 #: dashboards/syspanel/users/tables.py:38 #: dashboards/syspanel/users/tables.py:112 @@ -1828,7 +2149,7 @@ msgid "%s was successfully created." msgstr "" #: dashboards/syspanel/projects/forms.py:78 -msgid "Unable to create tenant." +msgid "Unable to create project." msgstr "" #: dashboards/syspanel/projects/forms.py:100 @@ -1837,7 +2158,7 @@ msgid "%s was successfully updated." msgstr "" #: dashboards/syspanel/projects/forms.py:103 -msgid "Unable to update tenant." +msgid "Unable to update project." msgstr "" #: dashboards/syspanel/projects/forms.py:108 @@ -1874,63 +2195,66 @@ msgid "Unable to update quotas." msgstr "" #: dashboards/syspanel/projects/panel.py:28 -#: dashboards/syspanel/projects/tables.py:52 -#: dashboards/syspanel/projects/tables.py:81 -#: dashboards/syspanel/templates/syspanel/projects/index.html:8 +#: dashboards/syspanel/projects/tables.py:53 +#: dashboards/syspanel/projects/tables.py:82 +#: dashboards/syspanel/projects/templates/projects/index.html:8 msgid "Projects" msgstr "" -#: dashboards/syspanel/projects/tables.py:17 +#: dashboards/syspanel/projects/tables.py:18 msgid "Modify Quotas" msgstr "" -#: dashboards/syspanel/projects/tables.py:24 +#: dashboards/syspanel/projects/tables.py:25 msgid "Modify Users" msgstr "" -#: dashboards/syspanel/projects/tables.py:31 +#: dashboards/syspanel/projects/tables.py:32 msgid "View Usage" msgstr "" -#: dashboards/syspanel/projects/tables.py:38 +#: dashboards/syspanel/projects/tables.py:39 msgid "Edit Project" msgstr "" -#: dashboards/syspanel/projects/tables.py:45 +#: dashboards/syspanel/projects/tables.py:46 msgid "Create New Project" msgstr "" -#: dashboards/syspanel/projects/tables.py:73 -#: dashboards/syspanel/services/tables.py:37 -msgid "Id" -msgstr "" - -#: dashboards/syspanel/projects/tables.py:89 +#: dashboards/syspanel/projects/tables.py:90 msgid "Remove" msgstr "" -#: dashboards/syspanel/projects/tables.py:90 +#: dashboards/syspanel/projects/tables.py:91 msgid "Removed" msgstr "" -#: dashboards/syspanel/projects/tables.py:92 -#: dashboards/syspanel/templates/syspanel/users/index.html:8 +#: dashboards/syspanel/projects/tables.py:93 #: dashboards/syspanel/users/panel.py:28 #: dashboards/syspanel/users/tables.py:40 #: dashboards/syspanel/users/tables.py:74 #: dashboards/syspanel/users/tables.py:119 +#: dashboards/syspanel/users/templates/users/index.html:8 msgid "Users" msgstr "" -#: dashboards/syspanel/projects/tables.py:103 +#: dashboards/syspanel/projects/tables.py:111 +msgid "Unable to retrieve role information." +msgstr "" + +#: dashboards/syspanel/projects/tables.py:116 +msgid "Roles" +msgstr "" + +#: dashboards/syspanel/projects/tables.py:120 msgid "Users For Project" msgstr "" -#: dashboards/syspanel/projects/tables.py:110 +#: dashboards/syspanel/projects/tables.py:128 msgid "Add To Project" msgstr "" -#: dashboards/syspanel/projects/tables.py:122 +#: dashboards/syspanel/projects/tables.py:140 msgid "Add New Users" msgstr "" @@ -1950,6 +2274,64 @@ msgstr "" msgid "Unable to retrieve roles." msgstr "" +#: dashboards/syspanel/projects/templates/projects/_add_user.html:8 +#: dashboards/syspanel/projects/templates/projects/add_user.html:3 +#: dashboards/syspanel/projects/templates/projects/add_user.html:6 +msgid "Add User To Project" +msgstr "" + +#: dashboards/syspanel/projects/templates/projects/_add_user.html:18 +msgid "Select the user role for the project." +msgstr "" + +#: dashboards/syspanel/projects/templates/projects/_add_user.html:23 +msgid "Add" +msgstr "" + +#: dashboards/syspanel/projects/templates/projects/_create.html:8 +#: dashboards/syspanel/projects/templates/projects/_create.html:23 +#: dashboards/syspanel/projects/templates/projects/create.html:6 +msgid "Create Project" +msgstr "" + +#: dashboards/syspanel/projects/templates/projects/_create.html:18 +msgid "From here you can create a new project to organize users." +msgstr "" + +#: dashboards/syspanel/projects/templates/projects/_quotas.html:7 +#: dashboards/syspanel/projects/templates/projects/_quotas.html:22 +msgid "Update Quota" +msgstr "" + +#: dashboards/syspanel/projects/templates/projects/_quotas.html:17 +#, python-format +msgid "" +"From here you can edit quotas (max limits) for the project %(tenant.name)s." +msgstr "" + +#: dashboards/syspanel/projects/templates/projects/_update.html:8 +#: dashboards/syspanel/projects/templates/projects/_update.html:23 +#: dashboards/syspanel/projects/templates/projects/quotas.html:6 +#: dashboards/syspanel/projects/templates/projects/update.html:6 +msgid "Update Project" +msgstr "" + +#: dashboards/syspanel/projects/templates/projects/_update.html:18 +msgid "From here you can edit a project." +msgstr "" + +#: dashboards/syspanel/projects/templates/projects/usage.html:3 +msgid "Project Usage Overview" +msgstr "" + +#: dashboards/syspanel/projects/templates/projects/usage.html:7 +msgid "Project Usage" +msgstr "" + +#: dashboards/syspanel/projects/templates/projects/users.html:7 +msgid "Users for Project" +msgstr "" + #: dashboards/syspanel/quotas/panel.py:28 #: dashboards/syspanel/quotas/tables.py:36 msgid "Quotas" @@ -1967,189 +2349,104 @@ msgstr "" msgid "Unable to get quota info." msgstr "" +#: dashboards/syspanel/quotas/templates/quotas/index.html:8 +msgid "Default Quotas" +msgstr "" + #: dashboards/syspanel/services/panel.py:28 #: dashboards/syspanel/services/tables.py:47 -#: dashboards/syspanel/templates/syspanel/services/index.html:8 +#: dashboards/syspanel/services/templates/services/index.html:8 msgid "Services" msgstr "" +#: dashboards/syspanel/services/tables.py:37 +msgid "Id" +msgstr "" + #: dashboards/syspanel/services/tables.py:39 msgid "Service" msgstr "" -#: dashboards/syspanel/templates/syspanel/flavors/_create.html:18 -msgid "From here you can define the sizing of a new flavor." -msgstr "" - -#: dashboards/syspanel/templates/syspanel/instances/index.html:6 -msgid "All Instances" -msgstr "" - -#: dashboards/syspanel/templates/syspanel/overview/usage.html:3 -msgid "Usage Overview" -msgstr "" - -#: dashboards/syspanel/templates/syspanel/overview/usage.html:12 -msgid "Monitoring" -msgstr "" - -#: dashboards/syspanel/templates/syspanel/projects/_add_user.html:8 -#: dashboards/syspanel/templates/syspanel/projects/add_user.html:3 -#: dashboards/syspanel/templates/syspanel/projects/add_user.html:6 -msgid "Add User To Project" -msgstr "" - -#: dashboards/syspanel/templates/syspanel/projects/_add_user.html:18 -msgid "Select the user role for the project." -msgstr "" - -#: dashboards/syspanel/templates/syspanel/projects/_add_user.html:23 -msgid "Add" -msgstr "" - -#: dashboards/syspanel/templates/syspanel/projects/_create.html:8 -#: dashboards/syspanel/templates/syspanel/projects/_create.html:23 -#: dashboards/syspanel/templates/syspanel/projects/create.html:6 -msgid "Create Project" -msgstr "" - -#: dashboards/syspanel/templates/syspanel/projects/_create.html:18 -msgid "From here you can create a new project to organize users." -msgstr "" - -#: dashboards/syspanel/templates/syspanel/projects/_quotas.html:7 -#: dashboards/syspanel/templates/syspanel/projects/_quotas.html:22 -msgid "Update Quota" -msgstr "" - -#: dashboards/syspanel/templates/syspanel/projects/_quotas.html:17 -#, python-format -msgid "" -"From here you can edit quotas (max limits) for the project %(tenant.name)s." -msgstr "" - -#: dashboards/syspanel/templates/syspanel/projects/_update.html:8 -#: dashboards/syspanel/templates/syspanel/projects/_update.html:23 -#: dashboards/syspanel/templates/syspanel/projects/quotas.html:6 -#: dashboards/syspanel/templates/syspanel/projects/update.html:6 -msgid "Update Project" -msgstr "" - -#: dashboards/syspanel/templates/syspanel/projects/_update.html:18 -msgid "From here you can edit a project." -msgstr "" - -#: dashboards/syspanel/templates/syspanel/projects/usage.html:3 -msgid "Project Usage Overview" -msgstr "" - -#: dashboards/syspanel/templates/syspanel/projects/usage.html:7 -msgid "Project Usage" -msgstr "" - -#: dashboards/syspanel/templates/syspanel/projects/users.html:7 -msgid "Users for Project" -msgstr "" - -#: dashboards/syspanel/templates/syspanel/quotas/index.html:8 -msgid "Default Quotas" -msgstr "" - -#: dashboards/syspanel/templates/syspanel/users/_create.html:7 -#: dashboards/syspanel/templates/syspanel/users/_create.html:22 -#: dashboards/syspanel/templates/syspanel/users/create.html:7 -#: dashboards/syspanel/users/tables.py:18 -msgid "Create User" -msgstr "" - -#: dashboards/syspanel/templates/syspanel/users/_create.html:17 -msgid "From here you can create a new user and assign them to a project." -msgstr "" - -#: dashboards/syspanel/templates/syspanel/users/_update.html:7 -#: dashboards/syspanel/templates/syspanel/users/_update.html:22 -#: dashboards/syspanel/templates/syspanel/users/update.html:7 -msgid "Update User" -msgstr "" - -#: dashboards/syspanel/templates/syspanel/users/_update.html:17 -msgid "" -"From here you can edit the user's details, including their default project." -msgstr "" - -#: dashboards/syspanel/users/forms.py:41 +#: dashboards/syspanel/users/forms.py:42 msgid "Select a project" msgstr "" -#: dashboards/syspanel/users/forms.py:57 +#: dashboards/syspanel/users/forms.py:58 msgid "Passwords do not match." msgstr "" -#: dashboards/syspanel/users/forms.py:62 -#: dashboards/syspanel/users/forms.py:105 -#: dashboards/syspanel/users/tables.py:107 views/auth_forms.py:64 +#: dashboards/syspanel/users/forms.py:63 +#: dashboards/syspanel/users/forms.py:114 +#: dashboards/syspanel/users/tables.py:106 msgid "User Name" msgstr "" -#: dashboards/syspanel/users/forms.py:63 -#: dashboards/syspanel/users/forms.py:106 -#: dashboards/syspanel/users/tables.py:108 +#: dashboards/syspanel/users/forms.py:64 +#: dashboards/syspanel/users/forms.py:115 +#: dashboards/syspanel/users/tables.py:107 msgid "Email" msgstr "" -#: dashboards/syspanel/users/forms.py:65 -#: dashboards/syspanel/users/forms.py:107 views/auth_forms.py:65 +#: dashboards/syspanel/users/forms.py:66 +#: dashboards/syspanel/users/forms.py:116 msgid "Password" msgstr "" -#: dashboards/syspanel/users/forms.py:70 -#: dashboards/syspanel/users/forms.py:114 +#: dashboards/syspanel/users/forms.py:71 +#: dashboards/syspanel/users/forms.py:123 msgid "Confirm Password" msgstr "" -#: dashboards/syspanel/users/forms.py:73 -#: dashboards/syspanel/users/forms.py:117 +#: dashboards/syspanel/users/forms.py:74 +#: dashboards/syspanel/users/forms.py:126 msgid "Primary Project" msgstr "" -#: dashboards/syspanel/users/forms.py:85 +#: dashboards/syspanel/users/forms.py:96 #, python-format msgid "User \"%s\" was successfully created." msgstr "" -#: dashboards/syspanel/users/forms.py:96 +#: dashboards/syspanel/users/forms.py:105 msgid "Unable to add user to primary project." msgstr "" -#: dashboards/syspanel/users/forms.py:99 +#: dashboards/syspanel/users/forms.py:108 msgid "Unable to create user." msgstr "" -#: dashboards/syspanel/users/forms.py:139 +#: dashboards/syspanel/users/forms.py:151 msgid "name" msgstr "" -#: dashboards/syspanel/users/forms.py:139 +#: dashboards/syspanel/users/forms.py:151 msgid "email" msgstr "" -#: dashboards/syspanel/users/forms.py:148 +#: dashboards/syspanel/users/forms.py:160 msgid "primary project" msgstr "" -#: dashboards/syspanel/users/forms.py:160 +#: dashboards/syspanel/users/forms.py:172 msgid "password" msgstr "" -#: dashboards/syspanel/users/forms.py:169 +#: dashboards/syspanel/users/forms.py:181 msgid "User has been updated successfully." msgstr "" -#: dashboards/syspanel/users/forms.py:173 +#: dashboards/syspanel/users/forms.py:185 #, python-format msgid "Unable to update %(attributes)s for the user." msgstr "" +#: dashboards/syspanel/users/tables.py:18 +#: dashboards/syspanel/users/templates/users/_create.html:7 +#: dashboards/syspanel/users/templates/users/_create.html:22 +#: dashboards/syspanel/users/templates/users/create.html:7 +msgid "Create User" +msgstr "" + #: dashboards/syspanel/users/tables.py:37 msgid "Enable" msgstr "" @@ -2166,14 +2463,37 @@ msgstr "" msgid "You cannot disable the user you are currently logged in as." msgstr "" -#: dashboards/syspanel/users/views.py:47 +#: dashboards/syspanel/users/tables.py:111 +msgid "User ID" +msgstr "" + +#: dashboards/syspanel/users/views.py:46 msgid "Unable to retrieve user list." msgstr "" -#: dashboards/syspanel/users/views.py:63 +#: dashboards/syspanel/users/views.py:67 msgid "Unable to update user." msgstr "" +#: dashboards/syspanel/users/views.py:93 +msgid "Unable to retrieve user roles." +msgstr "" + +#: dashboards/syspanel/users/templates/users/_create.html:17 +msgid "From here you can create a new user and assign them to a project." +msgstr "" + +#: dashboards/syspanel/users/templates/users/_update.html:7 +#: dashboards/syspanel/users/templates/users/_update.html:22 +#: dashboards/syspanel/users/templates/users/update.html:7 +msgid "Update User" +msgstr "" + +#: dashboards/syspanel/users/templates/users/_update.html:17 +msgid "" +"From here you can edit the user's details, including their default project." +msgstr "" + #: tables/actions.py:299 msgid "Filter" msgstr "" @@ -2201,25 +2521,25 @@ msgstr "" msgid "Deleted" msgstr "" -#: tables/base.py:231 +#: tables/base.py:257 #, python-format msgid "The attribute %(attr)s doesn't exist on %(obj)s." msgstr "" -#: tables/base.py:679 +#: tables/base.py:743 msgid "Actions" msgstr "" -#: tables/base.py:824 +#: tables/base.py:891 msgid "No items to display." msgstr "" -#: tables/base.py:841 +#: tables/base.py:908 #, python-format msgid "No match returned for the id \"%s\"." msgstr "" -#: tables/base.py:948 +#: tables/base.py:1015 msgid "Please select a row before taking that action." msgstr "" @@ -2239,25 +2559,25 @@ msgstr "" msgid "Error: " msgstr "" -#: templates/horizon/auth/_login.html:4 -msgid "Log In" +#: templates/horizon/client_side/_loading.html:9 +msgid "Loading…" msgstr "" -#: templates/horizon/auth/_login.html:18 -msgid "Sign In" +#: templates/horizon/common/_data_table.html:33 +msgid "Summary" msgstr "" -#: templates/horizon/auth/login.html:4 -msgid "Login" -msgstr "" - -#: templates/horizon/common/_data_table.html:31 +#: templates/horizon/common/_data_table.html:42 #, python-format msgid "Displaying %(counter)s item" msgid_plural "Displaying %(counter)s items" msgstr[0] "" msgstr[1] "" +#: templates/horizon/common/_sidebar.html:14 +msgid "Current Project" +msgstr "" + #: templates/horizon/common/_usage_summary.html:5 msgid "Select a month to query its usage" msgstr "" @@ -2282,11 +2602,11 @@ msgstr "" msgid "This Month's GB-Hours" msgstr "" -#: templatetags/horizon.py:121 +#: templatetags/horizon.py:108 msgid "No Limit" msgstr "" -#: templatetags/horizon.py:123 templatetags/horizon.py:125 +#: templatetags/horizon.py:110 templatetags/horizon.py:112 msgid "Available" msgstr "" @@ -2314,6 +2634,11 @@ msgstr "" msgid "%s MB" msgstr "" +#: templatetags/sizeformat.py:58 +#, python-format +msgid "%s GB" +msgstr "" + #: templatetags/sizeformat.py:61 #, python-format msgid "%s TB" @@ -2336,35 +2661,39 @@ msgstr "" msgid "Admin Panel" msgstr "" -#: tests/table_tests.py:94 +#: tests/message_tests.py:30 +msgid "Giant ants are attacking San Francisco!" +msgstr "" + +#: tests/table_tests.py:104 msgid "Batch" msgstr "" -#: tests/table_tests.py:95 +#: tests/table_tests.py:105 msgid "Batched" msgstr "" -#: tests/table_tests.py:96 tests/table_tests.py:107 +#: tests/table_tests.py:106 tests/table_tests.py:117 msgid "Item" msgstr "" -#: tests/table_tests.py:97 tests/table_tests.py:108 +#: tests/table_tests.py:107 tests/table_tests.py:118 msgid "Items" msgstr "" -#: tests/table_tests.py:105 +#: tests/table_tests.py:115 msgid "Down" msgstr "" -#: tests/table_tests.py:105 +#: tests/table_tests.py:115 msgid "Up" msgstr "" -#: tests/table_tests.py:106 +#: tests/table_tests.py:116 msgid "Downed" msgstr "" -#: tests/table_tests.py:106 +#: tests/table_tests.py:116 msgid "Upped" msgstr "" @@ -2392,7 +2721,7 @@ msgstr "" msgid "Recoverable Error Tab" msgstr "" -#: tests/testsettings.py:99 +#: tests/testsettings.py:111 msgid "Password must be between 8 and 18 characters." msgstr "" @@ -2446,31 +2775,31 @@ msgstr "" msgid "Puppies" msgstr "" -#: usage/base.py:94 +#: usage/base.py:97 msgid "Unable to retrieve usage information." msgstr "" -#: usage/base.py:97 +#: usage/base.py:100 msgid "You are viewing data for the future, which may or may not exist." msgstr "" -#: usage/tables.py:10 +#: usage/tables.py:11 msgid "Download CSV Summary" msgstr "" -#: usage/tables.py:23 +#: usage/tables.py:24 msgid "VCPU Hours" msgstr "" -#: usage/tables.py:30 +#: usage/tables.py:31 msgid "Disk GB Hours" msgstr "" -#: usage/tables.py:38 usage/tables.py:59 +#: usage/tables.py:39 usage/tables.py:67 msgid "Usage Summary" msgstr "" -#: usage/tables.py:51 +#: usage/tables.py:59 msgid "Uptime" msgstr "" @@ -2490,48 +2819,16 @@ msgstr "" msgid "Password is not accepted" msgstr "" -#: views/auth.py:92 -msgid "You are not authorized for that tenant." -msgstr "" - -#: views/auth_forms.py:63 -msgid "Region" -msgstr "" - -#: views/auth_forms.py:107 -msgid "Unable to authenticate for that project." -msgstr "" - -#: views/auth_forms.py:124 -msgid "Invalid user name or password." -msgstr "" - -#: views/auth_forms.py:131 -msgid "An error occurred authenticating. Please try again later." -msgstr "" - -#: views/auth_forms.py:150 -msgid "You are not authorized for any projects." -msgstr "" - -#: views/auth_forms.py:174 -msgid "You are not authorized for any available projects." -msgstr "" - -#: workflows/base.py:65 +#: workflows/base.py:69 msgid "Processing..." msgstr "" -#: workflows/base.py:478 -msgid "Save" -msgstr "" - -#: workflows/base.py:479 +#: workflows/base.py:511 #, python-format msgid "%s completed successfully." msgstr "" -#: workflows/base.py:480 +#: workflows/base.py:512 #, python-format msgid "%s did not complete." msgstr "" diff --git a/horizon/locale/fr/LC_MESSAGES/django.po b/horizon/locale/fr/LC_MESSAGES/django.po index 9e38a1148..e787984db 100644 --- a/horizon/locale/fr/LC_MESSAGES/django.po +++ b/horizon/locale/fr/LC_MESSAGES/django.po @@ -6,7 +6,7 @@ msgid "" msgstr "" "Project-Id-Version: openstack-dashboard\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2012-05-29 11:46-0700\n" +"POT-Creation-Date: 2012-07-09 02:28+0000\n" "PO-Revision-Date: 2012-05-10 16:05+0100\n" "Last-Translator: Erwan Gallen \n" "Language-Team: French \n" @@ -16,7 +16,7 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n>1;\n" -#: base.py:449 +#: base.py:437 msgid "Other" msgstr "Autre" @@ -24,24 +24,16 @@ msgstr "Autre" msgid "Please log in to continue." msgstr "Merci de vous connecter pour continuer." -#: decorators.py:89 +#: decorators.py:87 #, python-format msgid "You are not authorized to access %s" msgstr "Vous n'êtes pas autorisé à accéder à %s" -#: decorators.py:130 -msgid "The services for this view are not available." -msgstr "Les service de cette vue n'est pas disponible." - -#: exceptions.py:239 +#: exceptions.py:299 msgid "Unauthorized. Please try logging in again." msgstr "Accès non autorisé. Merci de vous reconnecter." -#: users.py:63 -msgid "Your session has expired. Please log in again." -msgstr "Votre session a expiré. Merci de vous reconnecter." - -#: api/keystone.py:53 +#: api/keystone.py:55 #, python-format msgid "%(type)s (%(backend)s backend)" msgstr "%(type)s (%(backend)s backend)" @@ -56,7 +48,11 @@ msgstr "AUTORISE %(from)s:%(to)s de %(group)s" msgid "ALLOW %(from)s:%(to)s from %(cidr)s" msgstr "AUTORISE %(from)s:%(to)s de %(cidr)s" -#: api/swift.py:114 +#: api/nova.py:502 +msgid "Unknown instance" +msgstr "" + +#: api/swift.py:155 msgid "Unicode is not currently supported for object copy." msgstr "L'Unicode n'est actuellement pas supporté pour la copie d'objet." @@ -64,196 +60,208 @@ msgstr "L'Unicode n'est actuellement pas supporté pour la copie d'objet." msgid "Manage Compute" msgstr "Gestion Compute" -#: dashboards/nova/dashboard.py:33 +#: dashboards/nova/dashboard.py:34 msgid "Object Store" msgstr "Stockage d'objet" -#: dashboards/nova/dashboard.py:38 -#: dashboards/nova/instances_and_volumes/instances/workflows.py:33 -#: dashboards/syspanel/projects/tables.py:51 -#: templates/horizon/common/_sidebar.html:11 tests/workflows_tests.py:39 +#: dashboards/nova/dashboard.py:39 dashboards/nova/instances/workflows.py:32 +#: dashboards/syspanel/projects/tables.py:52 tests/workflows_tests.py:39 msgid "Project" msgstr "Projet" #: dashboards/nova/access_and_security/panel.py:25 -#: dashboards/nova/instances_and_volumes/instances/workflows.py:311 +#: dashboards/nova/instances/workflows.py:328 msgid "Access & Security" msgstr "Accès & Sécurité" -#: dashboards/nova/access_and_security/views.py:52 +#: dashboards/nova/access_and_security/views.py:51 msgid "Unable to retrieve keypair list." msgstr "Impossible de récupérer la liste des clés." -#: dashboards/nova/access_and_security/views.py:62 -#, python-format -msgid "Error fetching security_groups: %s" -msgstr "Erreur de récupération des groupes de sécurité : %s" +#: dashboards/nova/access_and_security/views.py:60 +#: dashboards/nova/access_and_security/security_groups/views.py:64 +msgid "Unable to retrieve security groups." +msgstr "Impossible de récupérer les groupes de sécurité." -#: dashboards/nova/access_and_security/views.py:72 -#, python-format -msgid "Error fetching floating ips: %s" -msgstr "Erreur de récupération des adresses IP flottantes : %s" +#: dashboards/nova/access_and_security/views.py:69 +#: dashboards/nova/access_and_security/floating_ips/workflows.py:44 +#, fuzzy +msgid "Unable to retrieve floating IP addresses." +msgstr "Impossible de récupérer les images." -#: dashboards/nova/access_and_security/views.py:79 -#: dashboards/nova/access_and_security/floating_ips/views.py:60 +#: dashboards/nova/access_and_security/views.py:76 +#: dashboards/nova/access_and_security/floating_ips/workflows.py:60 #: dashboards/syspanel/instances/views.py:58 msgid "Unable to retrieve instance list." msgstr "Impossible de récupérer la liste des instances." #: dashboards/nova/access_and_security/floating_ips/forms.py:38 -#: dashboards/nova/access_and_security/floating_ips/tables.py:47 -#: dashboards/nova/templates/nova/access_and_security/floating_ips/_allocate.html:22 -msgid "Floating IP" -msgstr "IP flottante" - -#: dashboards/nova/access_and_security/floating_ips/forms.py:41 -#: dashboards/nova/images_and_snapshots/snapshots/forms.py:38 -msgid "Instance ID" -msgstr "ID d'instance" - -#: dashboards/nova/access_and_security/floating_ips/forms.py:47 -#: dashboards/nova/instances_and_volumes/volumes/forms.py:73 -msgid "Select an instance" -msgstr "Sélectionnez une instance" - -#: dashboards/nova/access_and_security/floating_ips/forms.py:49 -#: dashboards/nova/instances_and_volumes/volumes/forms.py:75 -msgid "No instances available" -msgstr "Aucune instance disponible" - -#: dashboards/nova/access_and_security/floating_ips/forms.py:52 -#: dashboards/nova/access_and_security/floating_ips/tables.py:112 -#: dashboards/nova/instances_and_volumes/instances/tables.py:58 -#: dashboards/nova/instances_and_volumes/instances/tables.py:75 -#: dashboards/nova/instances_and_volumes/instances/tables.py:90 -#: dashboards/nova/instances_and_volumes/instances/tables.py:118 -#: dashboards/nova/instances_and_volumes/volumes/tables.py:158 -#: dashboards/nova/templates/nova/instances_and_volumes/volumes/_detail_overview.html:41 -#: tests/workflows_tests.py:58 -msgid "Instance" -msgstr "Instance" - -#: dashboards/nova/access_and_security/floating_ips/forms.py:63 -#, python-format -msgid "Successfully associated Floating IP %(ip)s with Instance: %(inst)s" -msgstr "" -"Succès de l'association de l'adresse IP flottante %(ip)s avec l'instance : " -"%(inst)s" - -#: dashboards/nova/access_and_security/floating_ips/forms.py:69 -#: dashboards/nova/access_and_security/floating_ips/views.py:51 -msgid "Unable to associate floating IP." -msgstr "Impossible d'associer l'adresse IP flottante." - -#: dashboards/nova/access_and_security/floating_ips/forms.py:75 msgid "Pool" msgstr "Pool" -#: dashboards/nova/access_and_security/floating_ips/forms.py:90 +#: dashboards/nova/access_and_security/floating_ips/forms.py:53 #, python-format msgid "" "Successfully allocated Floating IP \"%(ip)s\" to project \"%(project)s\"" msgstr "" "Succès de l'allocation de l'IP flottante \"%(ip)s\" au projet \"%(project)s\"" -#: dashboards/nova/access_and_security/floating_ips/forms.py:94 +#: dashboards/nova/access_and_security/floating_ips/forms.py:57 msgid "Unable to allocate Floating IP." msgstr "Impossible d'allouer une adresse IP flottante." -#: dashboards/nova/access_and_security/floating_ips/tables.py:35 +#: dashboards/nova/access_and_security/floating_ips/tables.py:36 msgid "Allocate IP To Project" msgstr "Allouer une adresse IP à un projet" -#: dashboards/nova/access_and_security/floating_ips/tables.py:45 +#: dashboards/nova/access_and_security/floating_ips/tables.py:46 msgid "Release" msgstr "Version" -#: dashboards/nova/access_and_security/floating_ips/tables.py:46 +#: dashboards/nova/access_and_security/floating_ips/tables.py:47 msgid "Released" msgstr "Versioné" #: dashboards/nova/access_and_security/floating_ips/tables.py:48 -#: dashboards/nova/access_and_security/floating_ips/tables.py:126 +#: dashboards/nova/access_and_security/templates/access_and_security/floating_ips/_allocate.html:22 +msgid "Floating IP" +msgstr "IP flottante" + +#: dashboards/nova/access_and_security/floating_ips/tables.py:49 +#: dashboards/nova/access_and_security/floating_ips/tables.py:132 #: dashboards/syspanel/projects/forms.py:119 msgid "Floating IPs" msgstr "IPs flottantes" -#: dashboards/nova/access_and_security/floating_ips/tables.py:57 -#: dashboards/nova/templates/nova/access_and_security/floating_ips/_associate.html:22 +#: dashboards/nova/access_and_security/floating_ips/tables.py:58 +#: dashboards/nova/access_and_security/templates/access_and_security/floating_ips/associate.html:3 +#: dashboards/nova/access_and_security/templates/access_and_security/floating_ips/associate.html:6 +#: dashboards/nova/instances/tables.py:202 msgid "Associate Floating IP" msgstr "Associer une adresse IP" -#: dashboards/nova/access_and_security/floating_ips/tables.py:69 +#: dashboards/nova/access_and_security/floating_ips/tables.py:75 msgid "Disassociate Floating IP" msgstr "Désassocier une adresse IP" -#: dashboards/nova/access_and_security/floating_ips/tables.py:83 +#: dashboards/nova/access_and_security/floating_ips/tables.py:89 #, python-format msgid "Successfully disassociated Floating IP: %s" msgstr "Succès de désassociation de l'adresse IP flottante : %s" -#: dashboards/nova/access_and_security/floating_ips/tables.py:87 +#: dashboards/nova/access_and_security/floating_ips/tables.py:93 msgid "Unable to disassociate floating IP." msgstr "Impossible de désassocier l'adresse IP flottante." -#: dashboards/nova/access_and_security/floating_ips/tables.py:92 +#: dashboards/nova/access_and_security/floating_ips/tables.py:98 #, python-format msgid "%(INSTANCE_NAME)s (%(INSTANCE_ID)s)" msgstr "" -#: dashboards/nova/access_and_security/floating_ips/tables.py:97 -#: dashboards/nova/instances_and_volumes/instances/tables.py:218 -msgid "Not available" -msgstr "Non disponible" - -#: dashboards/nova/access_and_security/floating_ips/tables.py:109 -#: dashboards/nova/instances_and_volumes/instances/tables.py:242 +#: dashboards/nova/access_and_security/floating_ips/tables.py:115 +#: dashboards/nova/access_and_security/floating_ips/workflows.py:28 +#: dashboards/nova/access_and_security/floating_ips/workflows.py:34 +#: dashboards/nova/instances/tables.py:270 #: dashboards/syspanel/instances/tables.py:74 msgid "IP Address" msgstr "Adresse IP" -#: dashboards/nova/access_and_security/floating_ips/tables.py:115 +#: dashboards/nova/access_and_security/floating_ips/tables.py:118 +#: dashboards/nova/access_and_security/floating_ips/workflows.py:31 +#: dashboards/nova/instances/tables.py:62 +#: dashboards/nova/instances/tables.py:79 +#: dashboards/nova/instances/tables.py:94 +#: dashboards/nova/instances/tables.py:122 +#: dashboards/nova/volumes/tables.py:195 tests/workflows_tests.py:58 +msgid "Instance" +msgstr "Instance" + +#: dashboards/nova/access_and_security/floating_ips/tables.py:121 msgid "Floating IP Pool" msgstr "Adresse IP flottante" -#: dashboards/nova/access_and_security/floating_ips/views.py:100 +#: dashboards/nova/access_and_security/floating_ips/views.py:60 msgid "No floating IP pools available." msgstr "Aucun pool d'adresses IP disponible." -#: dashboards/nova/access_and_security/keypairs/forms.py:38 -#: dashboards/nova/access_and_security/keypairs/forms.py:57 +#: dashboards/nova/access_and_security/floating_ips/workflows.py:35 +msgid "Select the IP address you wish to associate with the selected instance." +msgstr "" + +#: dashboards/nova/access_and_security/floating_ips/workflows.py:48 +#, fuzzy +msgid "Select an IP address" +msgstr "Sélectionnez un projet" + +#: dashboards/nova/access_and_security/floating_ips/workflows.py:50 +#, fuzzy +msgid "No IP addresses available" +msgstr "Aucune instance disponible" + +#: dashboards/nova/access_and_security/floating_ips/workflows.py:77 +#: dashboards/nova/volumes/forms.py:92 +msgid "Select an instance" +msgstr "Sélectionnez une instance" + +#: dashboards/nova/access_and_security/floating_ips/workflows.py:79 +#: dashboards/nova/volumes/forms.py:94 +msgid "No instances available" +msgstr "Aucune instance disponible" + +#: dashboards/nova/access_and_security/floating_ips/workflows.py:98 +msgid "Manage Floating IP Associations" +msgstr "" + +#: dashboards/nova/access_and_security/floating_ips/workflows.py:99 +#, fuzzy +msgid "Associate" +msgstr "Associer une adresse IP" + +#: dashboards/nova/access_and_security/floating_ips/workflows.py:100 +#, python-format +msgid "IP address %s associated." +msgstr "" + +#: dashboards/nova/access_and_security/floating_ips/workflows.py:101 +#, fuzzy, python-format +msgid "Unable to associate IP address %s." +msgstr "Impossible d'associer l'adresse IP flottante." + +#: dashboards/nova/access_and_security/keypairs/forms.py:40 +#: dashboards/nova/access_and_security/keypairs/forms.py:58 #: dashboards/nova/access_and_security/keypairs/tables.py:51 msgid "Keypair Name" msgstr "Nom de paire de clés." -#: dashboards/nova/access_and_security/keypairs/forms.py:40 +#: dashboards/nova/access_and_security/keypairs/forms.py:42 msgid "" "Keypair names may only contain letters, numbers, underscores and hyphens." msgstr "" "Les noms des paires de clés ne peuvent que contenir que des lettres, " "nombres, underscore et tirets." -#: dashboards/nova/access_and_security/keypairs/forms.py:52 -#, python-format -msgid "Error Creating Keypair: %s" -msgstr "Echec de création de paire de clés : %s" +#: dashboards/nova/access_and_security/keypairs/forms.py:53 +#, fuzzy +msgid "Unable to create keypair." +msgstr "Impossible récupérer les paires de clé." -#: dashboards/nova/access_and_security/keypairs/forms.py:59 +#: dashboards/nova/access_and_security/keypairs/forms.py:60 msgid "Public Key" msgstr "Clé publique" -#: dashboards/nova/access_and_security/keypairs/forms.py:65 +#: dashboards/nova/access_and_security/keypairs/forms.py:68 #, python-format msgid "Successfully imported public key: %s" msgstr "Succès de l'import de la clé publique : %s" -#: dashboards/nova/access_and_security/keypairs/forms.py:72 -#, python-format -msgid "Error Importing Keypair: %s" -msgstr "Echec de l'import de la paire de clés : %s" +#: dashboards/nova/access_and_security/keypairs/forms.py:74 +#, fuzzy +msgid "Unable to import keypair." +msgstr "Impossible récupérer les paires de clé." #: dashboards/nova/access_and_security/keypairs/tables.py:29 -#: dashboards/nova/instances_and_volumes/instances/workflows.py:299 +#: dashboards/nova/instances/tables.py:272 +#: dashboards/nova/instances/workflows.py:316 msgid "Keypair" msgstr "Paire de clés" @@ -263,16 +271,16 @@ msgid "Keypairs" msgstr "Paires de clés" #: dashboards/nova/access_and_security/keypairs/tables.py:38 -#: dashboards/nova/templates/nova/access_and_security/keypairs/_import.html:7 -#: dashboards/nova/templates/nova/access_and_security/keypairs/_import.html:23 -#: dashboards/nova/templates/nova/access_and_security/keypairs/import.html:6 +#: dashboards/nova/access_and_security/templates/access_and_security/keypairs/_import.html:7 +#: dashboards/nova/access_and_security/templates/access_and_security/keypairs/_import.html:23 +#: dashboards/nova/access_and_security/templates/access_and_security/keypairs/import.html:6 msgid "Import Keypair" msgstr "Import de paire de clés" #: dashboards/nova/access_and_security/keypairs/tables.py:45 -#: dashboards/nova/templates/nova/access_and_security/keypairs/_create.html:7 -#: dashboards/nova/templates/nova/access_and_security/keypairs/_create.html:23 -#: dashboards/nova/templates/nova/access_and_security/keypairs/create.html:6 +#: dashboards/nova/access_and_security/templates/access_and_security/keypairs/_create.html:7 +#: dashboards/nova/access_and_security/templates/access_and_security/keypairs/_create.html:23 +#: dashboards/nova/access_and_security/templates/access_and_security/keypairs/create.html:6 msgid "Create Keypair" msgstr "Création de paire de clés" @@ -285,72 +293,73 @@ msgstr "Empreinte" msgid "Unable to create keypair: %(exc)s" msgstr "Impossible de créer la paire de clés : %(exc)s" -#: dashboards/nova/access_and_security/security_groups/forms.py:41 +#: dashboards/nova/access_and_security/security_groups/forms.py:40 #: dashboards/nova/access_and_security/security_groups/tables.py:57 -#: dashboards/nova/images_and_snapshots/images/forms.py:43 -#: dashboards/nova/instances_and_volumes/volumes/tables.py:110 -#: dashboards/nova/instances_and_volumes/volumes/tables.py:127 -#: dashboards/nova/templates/nova/images_and_snapshots/images/_detail_overview.html:9 -#: dashboards/nova/templates/nova/instances_and_volumes/instances/_detail_overview.html:9 -#: dashboards/nova/templates/nova/instances_and_volumes/instances/_launch_details_help.html:9 -#: dashboards/nova/templates/nova/instances_and_volumes/volumes/_detail_overview.html:9 +#: dashboards/nova/images_and_snapshots/images/forms.py:42 +#: dashboards/nova/images_and_snapshots/images/forms.py:120 +#: dashboards/nova/images_and_snapshots/templates/images_and_snapshots/images/_detail_overview.html:9 +#: dashboards/nova/images_and_snapshots/volume_snapshots/tables.py:46 +#: dashboards/nova/instances/templates/instances/_detail_overview.html:9 +#: dashboards/nova/instances/templates/instances/_launch_details_help.html:9 +#: dashboards/nova/volumes/tables.py:135 dashboards/nova/volumes/tables.py:153 +#: dashboards/nova/volumes/templates/volumes/_detail_overview.html:9 #: dashboards/syspanel/flavors/forms.py:37 #: dashboards/syspanel/projects/forms.py:60 #: dashboards/syspanel/projects/forms.py:85 #: dashboards/syspanel/projects/tables.py:74 #: dashboards/syspanel/services/tables.py:38 +#: dashboards/syspanel/volumes/tables.py:10 msgid "Name" msgstr "Nom" -#: dashboards/nova/access_and_security/security_groups/forms.py:43 +#: dashboards/nova/access_and_security/security_groups/forms.py:42 #: dashboards/nova/access_and_security/security_groups/tables.py:58 -#: dashboards/nova/instances_and_volumes/volumes/forms.py:29 -#: dashboards/nova/instances_and_volumes/volumes/forms.py:103 -#: dashboards/nova/instances_and_volumes/volumes/tables.py:113 -#: dashboards/nova/templates/nova/access_and_security/keypairs/_create.html:16 -#: dashboards/nova/templates/nova/access_and_security/keypairs/_import.html:16 -#: dashboards/nova/templates/nova/access_and_security/security_groups/_create.html:17 -#: dashboards/nova/templates/nova/containers/_create.html:16 -#: dashboards/nova/templates/nova/instances_and_volumes/volumes/_create.html:17 -#: dashboards/nova/templates/nova/instances_and_volumes/volumes/_create_snapshot.html:17 -#: dashboards/nova/templates/nova/instances_and_volumes/volumes/_detail_overview.html:14 -#: dashboards/nova/templates/nova/objects/_copy.html:16 -#: dashboards/nova/templates/nova/objects/_upload.html:17 +#: dashboards/nova/access_and_security/templates/access_and_security/keypairs/_create.html:16 +#: dashboards/nova/access_and_security/templates/access_and_security/keypairs/_import.html:16 +#: dashboards/nova/access_and_security/templates/access_and_security/security_groups/_create.html:17 +#: dashboards/nova/containers/templates/containers/_copy.html:16 +#: dashboards/nova/containers/templates/containers/_create.html:16 +#: dashboards/nova/containers/templates/containers/_upload.html:17 +#: dashboards/nova/volumes/forms.py:25 dashboards/nova/volumes/forms.py:125 +#: dashboards/nova/volumes/tables.py:138 +#: dashboards/nova/volumes/templates/volumes/_create.html:18 +#: dashboards/nova/volumes/templates/volumes/_create_snapshot.html:17 +#: dashboards/nova/volumes/templates/volumes/_detail_overview.html:14 +#: dashboards/syspanel/flavors/templates/flavors/_create.html:17 +#: dashboards/syspanel/images/templates/images/_update.html:17 #: dashboards/syspanel/projects/forms.py:63 #: dashboards/syspanel/projects/forms.py:88 #: dashboards/syspanel/projects/tables.py:76 -#: dashboards/syspanel/templates/syspanel/flavors/_create.html:17 -#: dashboards/syspanel/templates/syspanel/images/_update.html:17 -#: dashboards/syspanel/templates/syspanel/projects/_add_user.html:17 -#: dashboards/syspanel/templates/syspanel/projects/_create.html:17 -#: dashboards/syspanel/templates/syspanel/projects/_quotas.html:16 -#: dashboards/syspanel/templates/syspanel/projects/_update.html:17 -#: dashboards/syspanel/templates/syspanel/users/_create.html:16 -#: dashboards/syspanel/templates/syspanel/users/_update.html:16 +#: dashboards/syspanel/projects/templates/projects/_add_user.html:17 +#: dashboards/syspanel/projects/templates/projects/_create.html:17 +#: dashboards/syspanel/projects/templates/projects/_quotas.html:16 +#: dashboards/syspanel/projects/templates/projects/_update.html:17 +#: dashboards/syspanel/users/templates/users/_create.html:16 +#: dashboards/syspanel/users/templates/users/_update.html:16 msgid "Description" msgstr "Description" -#: dashboards/nova/access_and_security/security_groups/forms.py:51 -#, python-format -msgid "Successfully created security_group: %s" +#: dashboards/nova/access_and_security/security_groups/forms.py:50 +#, fuzzy, python-format +msgid "Successfully created security group: %s" msgstr "Succès de création du groupe de sécurité : %s" -#: dashboards/nova/access_and_security/security_groups/forms.py:54 +#: dashboards/nova/access_and_security/security_groups/forms.py:53 msgid "Unable to create security group." msgstr "Impossible de créer le groupe de sécurité." -#: dashboards/nova/access_and_security/security_groups/forms.py:59 +#: dashboards/nova/access_and_security/security_groups/forms.py:58 #: dashboards/nova/access_and_security/security_groups/tables.py:92 msgid "IP Protocol" msgstr "Protocole IP" -#: dashboards/nova/access_and_security/security_groups/forms.py:65 -#: dashboards/nova/access_and_security/security_groups/forms.py:71 +#: dashboards/nova/access_and_security/security_groups/forms.py:64 +#: dashboards/nova/access_and_security/security_groups/forms.py:70 #: dashboards/nova/access_and_security/security_groups/tables.py:94 msgid "From Port" msgstr "Du port" -#: dashboards/nova/access_and_security/security_groups/forms.py:66 +#: dashboards/nova/access_and_security/security_groups/forms.py:65 msgid "" "TCP/UDP: Enter integer value between 1 and 65535. ICMP: enter a value for " "ICMP type in the range (-1: 255)" @@ -358,18 +367,18 @@ msgstr "" "TCP/UDP : Saisissez un nombre entier entre 1 et 65535. ICMP : Saisissez une " "valeur dans la plage (-1:255)" -#: dashboards/nova/access_and_security/security_groups/forms.py:72 -#: dashboards/nova/images_and_snapshots/images/tables.py:89 +#: dashboards/nova/access_and_security/security_groups/forms.py:71 +#: dashboards/nova/images_and_snapshots/images/tables.py:114 msgid "Type" msgstr "Type" -#: dashboards/nova/access_and_security/security_groups/forms.py:74 -#: dashboards/nova/access_and_security/security_groups/forms.py:80 +#: dashboards/nova/access_and_security/security_groups/forms.py:73 +#: dashboards/nova/access_and_security/security_groups/forms.py:79 #: dashboards/nova/access_and_security/security_groups/tables.py:95 msgid "To Port" msgstr "Jusqu'au port" -#: dashboards/nova/access_and_security/security_groups/forms.py:75 +#: dashboards/nova/access_and_security/security_groups/forms.py:74 msgid "" "TCP/UDP: Enter integer value between 1 and 65535. ICMP: enter a value for " "ICMP code in the range (-1: 255)" @@ -377,31 +386,49 @@ msgstr "" "TCP/UDP : Saisissez un entier entre 1 et 65535. ICMP : Saisissez une valeur " "dans la plage (-1:255)" -#: dashboards/nova/access_and_security/security_groups/forms.py:81 +#: dashboards/nova/access_and_security/security_groups/forms.py:80 msgid "Code" msgstr "Code" -#: dashboards/nova/access_and_security/security_groups/forms.py:84 +#: dashboards/nova/access_and_security/security_groups/forms.py:83 msgid "Source Group" msgstr "Groupe source" -#: dashboards/nova/access_and_security/security_groups/forms.py:85 +#: dashboards/nova/access_and_security/security_groups/forms.py:84 msgid "CIDR" msgstr "Adresse IP en notation CIDR" -#: dashboards/nova/access_and_security/security_groups/forms.py:88 +#: dashboards/nova/access_and_security/security_groups/forms.py:87 msgid "Classless Inter-Domain Routing (e.g. 192.168.0.0/24)" msgstr "Adresse IP en notation CIDR (par exemple 192.168.0.0/24)" -#: dashboards/nova/access_and_security/security_groups/forms.py:115 +#: dashboards/nova/access_and_security/security_groups/forms.py:116 +#, fuzzy +msgid "The ICMP type is invalid." +msgstr "Le numéro de port \"to\" est invalide." + +#: dashboards/nova/access_and_security/security_groups/forms.py:119 +#, fuzzy +msgid "The ICMP code is invalid." +msgstr "Le numéro de port \"to\" est invalide." + +#: dashboards/nova/access_and_security/security_groups/forms.py:122 +msgid "The ICMP type not in range (-1, 255)" +msgstr "" + +#: dashboards/nova/access_and_security/security_groups/forms.py:125 +msgid "The ICMP code not in range (-1, 255)" +msgstr "" + +#: dashboards/nova/access_and_security/security_groups/forms.py:129 msgid "The \"from\" port number is invalid." msgstr "Le numéro de port \"from\" est invalide." -#: dashboards/nova/access_and_security/security_groups/forms.py:118 +#: dashboards/nova/access_and_security/security_groups/forms.py:132 msgid "The \"to\" port number is invalid." msgstr "Le numéro de port \"to\" est invalide." -#: dashboards/nova/access_and_security/security_groups/forms.py:121 +#: dashboards/nova/access_and_security/security_groups/forms.py:135 msgid "" "The \"to\" port number must be greater than or equal to the \"from\" port " "number." @@ -409,17 +436,17 @@ msgstr "" "Le numéro de port \"to\" doit être supérieur ou égal au numéro de port \"from" "\"" -#: dashboards/nova/access_and_security/security_groups/forms.py:127 +#: dashboards/nova/access_and_security/security_groups/forms.py:141 msgid "Either CIDR or Source Group may be specified, but not both." msgstr "" "Soit le CIDR ou le groupe source doivent être spécifiés, mais pas les deux." -#: dashboards/nova/access_and_security/security_groups/forms.py:148 +#: dashboards/nova/access_and_security/security_groups/forms.py:163 #, python-format msgid "Successfully added rule: %s" msgstr "Succès de l'ajout de la règle : %s" -#: dashboards/nova/access_and_security/security_groups/forms.py:152 +#: dashboards/nova/access_and_security/security_groups/forms.py:166 #, fuzzy msgid "Unable to add rule to security group." msgstr "Impossible de créer le groupe de sécurité." @@ -430,15 +457,15 @@ msgstr "Groupe de sécurité" #: dashboards/nova/access_and_security/security_groups/tables.py:31 #: dashboards/nova/access_and_security/security_groups/tables.py:65 -#: dashboards/nova/instances_and_volumes/instances/workflows.py:303 -#: dashboards/nova/templates/nova/instances_and_volumes/instances/_detail_overview.html:47 +#: dashboards/nova/instances/workflows.py:320 +#: dashboards/nova/instances/templates/instances/_detail_overview.html:49 msgid "Security Groups" msgstr "Groupes de sécurité" #: dashboards/nova/access_and_security/security_groups/tables.py:44 -#: dashboards/nova/templates/nova/access_and_security/security_groups/_create.html:7 -#: dashboards/nova/templates/nova/access_and_security/security_groups/_create.html:23 -#: dashboards/nova/templates/nova/access_and_security/security_groups/create.html:6 +#: dashboards/nova/access_and_security/templates/access_and_security/security_groups/_create.html:7 +#: dashboards/nova/access_and_security/templates/access_and_security/security_groups/_create.html:23 +#: dashboards/nova/access_and_security/templates/access_and_security/security_groups/create.html:6 msgid "Create Security Group" msgstr "Créer un groupe de sécurité" @@ -466,69 +493,188 @@ msgstr "Règles de groupes de sécurité" msgid "Unable to retrieve security group." msgstr "Impossible de récupérer le groupe de sécurité." -#: dashboards/nova/access_and_security/security_groups/views.py:64 -msgid "Unable to retrieve security groups." -msgstr "Impossible de récupérer les groupes de sécurité." +#: dashboards/nova/access_and_security/templates/access_and_security/index.html:6 +msgid "Access & Security" +msgstr "Accès & sécurité" + +#: dashboards/nova/access_and_security/templates/access_and_security/floating_ips/_allocate.html:8 +#: dashboards/nova/access_and_security/templates/access_and_security/floating_ips/allocate.html:3 +msgid "Allocate Floating IP" +msgstr "Allouer une adresse IP flottante" + +#: dashboards/nova/access_and_security/templates/access_and_security/floating_ips/_allocate.html:17 +#: dashboards/nova/images_and_snapshots/templates/images_and_snapshots/images/_create.html:16 +#: dashboards/nova/images_and_snapshots/templates/images_and_snapshots/images/_update.html:16 +#: dashboards/nova/images_and_snapshots/templates/images_and_snapshots/snapshots/_create.html:17 +#: dashboards/nova/instances/templates/instances/_update.html:16 +#: dashboards/settings/ec2/templates/ec2/download_form.html:17 +#: dashboards/settings/project/templates/project/_openrc.html:24 +#: dashboards/settings/user/templates/user/_settings.html:17 +msgid "Description:" +msgstr "Description :" + +#: dashboards/nova/access_and_security/templates/access_and_security/floating_ips/_allocate.html:18 +msgid "Allocate a floating IP from a given floating ip pool." +msgstr "" +"Allouer une adresse IP flottante à partir d'un pool donné d'adresses IP." + +#: dashboards/nova/access_and_security/templates/access_and_security/floating_ips/_allocate.html:20 +#: dashboards/nova/instances/templates/instances/_launch_details_help.html:19 +msgid "Project Quotas" +msgstr "Quotas de projet" + +#: dashboards/nova/access_and_security/templates/access_and_security/floating_ips/_allocate.html:31 +msgid "Allocate IP" +msgstr "Allouer une adresse IP" + +#: dashboards/nova/access_and_security/templates/access_and_security/floating_ips/_allocate.html:32 +#: dashboards/nova/access_and_security/templates/access_and_security/keypairs/_create.html:24 +#: dashboards/nova/access_and_security/templates/access_and_security/keypairs/_import.html:24 +#: dashboards/nova/access_and_security/templates/access_and_security/security_groups/_create.html:24 +#: dashboards/nova/access_and_security/templates/access_and_security/security_groups/_edit_rules.html:20 +#: dashboards/nova/containers/templates/containers/_copy.html:23 +#: dashboards/nova/containers/templates/containers/_create.html:23 +#: dashboards/nova/containers/templates/containers/_upload.html:24 +#: dashboards/nova/images_and_snapshots/templates/images_and_snapshots/images/_create.html:32 +#: dashboards/nova/images_and_snapshots/templates/images_and_snapshots/images/_update.html:23 +#: dashboards/nova/images_and_snapshots/templates/images_and_snapshots/snapshots/_create.html:24 +#: dashboards/nova/instances/templates/instances/_update.html:23 +#: dashboards/nova/volumes/templates/volumes/_attach.html:20 +#: dashboards/nova/volumes/templates/volumes/_create.html:56 +#: dashboards/nova/volumes/templates/volumes/_create_snapshot.html:24 +#: dashboards/settings/ec2/templates/ec2/download_form.html:24 +#: dashboards/settings/project/templates/project/_openrc.html:31 +#: dashboards/settings/user/templates/user/_settings.html:24 +#: dashboards/syspanel/flavors/templates/flavors/_create.html:24 +#: dashboards/syspanel/images/templates/images/_update.html:24 +#: dashboards/syspanel/projects/templates/projects/_add_user.html:24 +#: dashboards/syspanel/projects/templates/projects/_create.html:24 +#: dashboards/syspanel/projects/templates/projects/_quotas.html:23 +#: dashboards/syspanel/projects/templates/projects/_update.html:24 +#: dashboards/syspanel/users/templates/users/_create.html:23 +#: dashboards/syspanel/users/templates/users/_update.html:23 +#: templates/horizon/common/_workflow.html:30 +msgid "Cancel" +msgstr "Annuler" + +#: dashboards/nova/access_and_security/templates/access_and_security/keypairs/_create.html:17 +#: dashboards/nova/access_and_security/templates/access_and_security/keypairs/_import.html:17 +msgid "" +"Keypairs are ssh credentials which are injected into images when they are " +"launched. Creating a new key pair registers the public key and downloads the " +"private key (a .pem file)." +msgstr "" +"Les Paires de clés sont des informations d'identification ssh qui sont " +"injectées dans les images lorsqu'elles sont lancées. La création d'une " +"nouvelle paire de clés enregistre la clé publique et vous permet de " +"télécharger la clé privée (un fichier .pem)." + +#: dashboards/nova/access_and_security/templates/access_and_security/keypairs/_create.html:18 +#: dashboards/nova/access_and_security/templates/access_and_security/keypairs/_import.html:18 +msgid "Protect and use the key as you would any normal ssh private key." +msgstr "" +"Protégez et utilisez la clé comme vous le feriez pour n'importe quelle " +"utilisation de clé privée ssh." + +#: dashboards/nova/access_and_security/templates/access_and_security/keypairs/download.html:3 +#: dashboards/nova/access_and_security/templates/access_and_security/keypairs/download.html:6 +msgid "Download Keypair" +msgstr "Télécharger la paire de clés" + +#: dashboards/nova/access_and_security/templates/access_and_security/keypairs/download.html:11 +#, python-format +msgid "" +"The keypair "%(keypair_name)s" should download automatically. If " +"not use the link below." +msgstr "" +"Le téléchargement de la paire de clés \"%(keypair_name)s\" doit se lancer " +"automatiquement, sinon utilisez le lien ci-dessous." + +#: dashboards/nova/access_and_security/templates/access_and_security/keypairs/download.html:15 +#, python-format +msgid "Download keypair "%(keypair_name)s"" +msgstr "Télécharger la paire de clés "%(keypair_name)s"" + +#: dashboards/nova/access_and_security/templates/access_and_security/security_groups/_create.html:18 +msgid "From here you can create a new security group" +msgstr "D'ici vous pouvez créer un nouveau groupe de sécurité" + +#: dashboards/nova/access_and_security/templates/access_and_security/security_groups/_edit_rules.html:9 +#: dashboards/nova/access_and_security/templates/access_and_security/security_groups/edit_rules.html:6 +msgid "Edit Security Group Rules" +msgstr "Modifier les règles de groupe de sécurité" + +#: dashboards/nova/access_and_security/templates/access_and_security/security_groups/_edit_rules.html:12 +#: dashboards/nova/access_and_security/templates/access_and_security/security_groups/_edit_rules.html:19 +msgid "Add Rule" +msgstr "Ajouter une règle" #: dashboards/nova/containers/forms.py:38 msgid "Slash is not an allowed character." msgstr "Le caractère barre oblique n'est pas autorisé." -#: dashboards/nova/containers/forms.py:45 -#: dashboards/nova/containers/tables.py:88 +#: dashboards/nova/containers/forms.py:48 +#: dashboards/nova/containers/tables.py:91 msgid "Container Name" msgstr "Nom de conteneur" -#: dashboards/nova/containers/forms.py:51 +#: dashboards/nova/containers/forms.py:56 msgid "Container created successfully." msgstr "Succès de création du conteneur." -#: dashboards/nova/containers/forms.py:53 +#: dashboards/nova/containers/forms.py:67 +#, fuzzy +msgid "Folder created successfully." +msgstr "Succès de création du conteneur." + +#: dashboards/nova/containers/forms.py:75 msgid "Unable to create container." msgstr "Impossible de créer le conteneur." -#: dashboards/nova/containers/forms.py:59 -#: dashboards/nova/containers/tables.py:155 +#: dashboards/nova/containers/forms.py:85 +#: dashboards/nova/containers/tables.py:157 msgid "Object Name" msgstr "Nom de l'objet" -#: dashboards/nova/containers/forms.py:61 +#: dashboards/nova/containers/forms.py:87 msgid "File" msgstr "Fichier" -#: dashboards/nova/containers/forms.py:73 +#: dashboards/nova/containers/forms.py:103 msgid "Object was successfully uploaded." msgstr "L'objet a été uploadé avec succès." -#: dashboards/nova/containers/forms.py:75 +#: dashboards/nova/containers/forms.py:105 msgid "Unable to upload object." msgstr "Impossible d'uploader l'objet." -#: dashboards/nova/containers/forms.py:81 +#: dashboards/nova/containers/forms.py:111 msgid "Destination container" msgstr "Conteneur de destination" -#: dashboards/nova/containers/forms.py:84 +#: dashboards/nova/containers/forms.py:115 msgid "Destination object name" msgstr "Nom d'objet de destination" -#: dashboards/nova/containers/forms.py:107 -#, python-format -msgid "Object \"%(obj)s\" copied to container \"%(container)s\"." -msgstr "Objet \"%(obj)s\" copier dans le conteneur \"%(container)s\"." - -#: dashboards/nova/containers/forms.py:115 +#: dashboards/nova/containers/forms.py:145 +#: dashboards/nova/containers/forms.py:169 msgid "Unable to copy object." msgstr "Impossible de copier l'objet." +#: dashboards/nova/containers/forms.py:161 +#, python-format +msgid "Copied \"%(orig)s\" to \"%(dest)s\" as \"%(new)s\"." +msgstr "" + #: dashboards/nova/containers/panel.py:28 #: dashboards/nova/containers/tables.py:35 -#: dashboards/nova/containers/tables.py:99 -#: dashboards/nova/templates/nova/containers/index.html:8 +#: dashboards/nova/containers/tables.py:102 +#: dashboards/nova/containers/templates/containers/index.html:6 msgid "Containers" msgstr "Conteneurs" #: dashboards/nova/containers/tables.py:34 +#: dashboards/nova/containers/templates/containers/detail.html:7 msgid "Container" msgstr "Conteneur" @@ -537,67 +683,147 @@ msgid "Containers must be empty before deletion." msgstr "" #: dashboards/nova/containers/tables.py:48 -#: dashboards/nova/templates/nova/containers/_create.html:7 -#: dashboards/nova/templates/nova/containers/_create.html:22 -#: dashboards/nova/templates/nova/containers/create.html:6 +#: dashboards/nova/containers/templates/containers/_create.html:7 +#: dashboards/nova/containers/templates/containers/_create.html:22 +#: dashboards/nova/containers/templates/containers/create.html:6 msgid "Create Container" msgstr "Création d'un conteneur" #: dashboards/nova/containers/tables.py:55 -msgid "List Objects" -msgstr "Liste des objets" +#, fuzzy +msgid "View Container" +msgstr "Conteneur" #: dashboards/nova/containers/tables.py:62 -#: dashboards/nova/templates/nova/objects/_upload.html:23 -#: dashboards/nova/templates/nova/objects/upload.html:3 +#: dashboards/nova/containers/templates/containers/_upload.html:23 +#: dashboards/nova/containers/templates/containers/upload.html:3 msgid "Upload Object" msgstr "Uploader un objet" -#: dashboards/nova/containers/tables.py:90 -#: dashboards/nova/containers/tables.py:106 -#: dashboards/nova/containers/tables.py:163 -#: dashboards/nova/templates/nova/objects/index.html:3 +#: dashboards/nova/containers/tables.py:93 +#: dashboards/nova/containers/tables.py:109 +#: dashboards/nova/containers/tables.py:169 +#: dashboards/nova/containers/templates/containers/detail.html:3 msgid "Objects" msgstr "Objets" -#: dashboards/nova/containers/tables.py:92 -#: dashboards/nova/containers/tables.py:156 -#: dashboards/nova/instances_and_volumes/instances/tables.py:243 -#: dashboards/nova/instances_and_volumes/volumes/tables.py:114 -#: dashboards/nova/templates/nova/images_and_snapshots/images/_detail_overview.html:30 -#: dashboards/nova/templates/nova/instances_and_volumes/volumes/_detail_overview.html:26 +#: dashboards/nova/containers/tables.py:95 +#: dashboards/nova/containers/tables.py:160 +#: dashboards/nova/images_and_snapshots/templates/images_and_snapshots/images/_detail_overview.html:30 +#: dashboards/nova/instances/tables.py:271 +#: dashboards/nova/volumes/tables.py:140 +#: dashboards/nova/volumes/templates/volumes/_detail_overview.html:26 #: dashboards/syspanel/instances/tables.py:76 msgid "Size" msgstr "Taille" -#: dashboards/nova/containers/tables.py:105 +#: dashboards/nova/containers/tables.py:108 msgid "Object" msgstr "Objet" -#: dashboards/nova/containers/tables.py:116 +#: dashboards/nova/containers/tables.py:119 msgid "Copy" msgstr "Copie" -#: dashboards/nova/containers/tables.py:127 +#: dashboards/nova/containers/tables.py:130 msgid "Download" msgstr "Télécharger" -#: dashboards/nova/containers/views.py:57 +#: dashboards/nova/containers/tables.py:181 +#, fuzzy +msgid "Create Folder" +msgstr "Créer un type d'instance" + +#: dashboards/nova/containers/tables.py:193 +msgid "Folder" +msgstr "" + +#: dashboards/nova/containers/tables.py:194 +msgid "Folders" +msgstr "" + +#: dashboards/nova/containers/tables.py:200 +#, fuzzy +msgid "Subfolder Name" +msgstr "Nom du serveur" + +#: dashboards/nova/containers/tables.py:208 +msgid "Subfolders" +msgstr "" + +#: dashboards/nova/containers/views.py:58 msgid "Unable to retrieve container list." msgstr "Impossible de récupérer la liste des conteneurs." -#: dashboards/nova/containers/views.py:84 +#: dashboards/nova/containers/views.py:103 msgid "Unable to retrieve object list." msgstr "Impossible de récupérer la liste des objets." -#: dashboards/nova/containers/views.py:122 +#: dashboards/nova/containers/views.py:161 msgid "Unable to retrieve object." msgstr "Impossible de récupérer l'objet." -#: dashboards/nova/containers/views.py:144 +#: dashboards/nova/containers/views.py:183 msgid "Unable to list containers." msgstr "Impossible de lister les conteneurs." +#: dashboards/nova/containers/templates/containers/_copy.html:7 +#: dashboards/nova/containers/templates/containers/_copy.html:22 +#: dashboards/nova/containers/templates/containers/copy.html:3 +#: dashboards/nova/containers/templates/containers/copy.html:6 +msgid "Copy Object" +msgstr "Copier l'objet" + +#: dashboards/nova/containers/templates/containers/_copy.html:17 +msgid "" +"Make a new copy of an existing object to store in this or another container. " +"You may also specify a path at which the new copy should live inside of the " +"selected container." +msgstr "" + +#: dashboards/nova/containers/templates/containers/_create.html:17 +msgid "" +"A container is a storage compartment for your data and provides a way for " +"you to organize your data. You can think of a container as a folder in " +"Windows ® or a directory in UNIX ®. The primary difference between a " +"container and these other file system concepts is that containers cannot be " +"nested. You can, however, create an unlimited number of containers within " +"your account. Data must be stored in a container so you must have at least " +"one container defined in your account prior to uploading data." +msgstr "" +"Un conteneur est un espace de stockage qui vous permet d'organiser vos " +"données. Cet espace peut se rapprocher de la notion de dossier dans Windows " +"® ou de répertoire sous UNIX ®. La principale différence entre un conteneur " +"et ces autres concepts de système de fichiers est que les conteneurs ne " +"peuvent pas être imbriqués. Vous pouvez toutefois créer un nombre illimité " +"de conteneurs dans votre compte. Les données devant être impérativement " +"stockées dans un conteneur, vous devez donc avoir au moins un conteneur " +"défini dans votre compte avant tout téléchargement de données." + +#: dashboards/nova/containers/templates/containers/_upload.html:8 +msgid "Upload Object To Container" +msgstr "Uploader l'objet dans un conteneur" + +#: dashboards/nova/containers/templates/containers/_upload.html:18 +msgid "" +"An object is the basic storage entity and any optional metadata that " +"represents the files you store in the OpenStack Object Storage system. When " +"you upload data to OpenStack Object Storage, the data is stored as-is (no " +"compression or encryption) and consists of a location (container), the " +"object's name, and any metadata consisting of key/value pairs." +msgstr "" +"Un objet est l'entité de stockage de base. Dans le système de stockage " +"d'objets OpenStack, un objet est associé aux métadonnées optionnelles qui " +"permettent de représenter la notion de fichiers. Quand vous uploadez des " +"données dans le système de stockage d'objets d'OpenStack, les données sont " +"stockées en l'état (pas de compression ou de chiffrement) et se compose d'un " +"emplacement (conteneur), le nom de l'objet, et toutes les métadonnées " +"constituées de paires clé/valeur." + +#: dashboards/nova/containers/templates/containers/upload.html:6 +msgid "Upload Objects" +msgstr "Upload d'objets" + #: dashboards/nova/images_and_snapshots/panel.py:25 msgid "Images & Snapshots" msgstr "Images & Instantanés" @@ -615,94 +841,150 @@ msgid "Unable to retrieve volume snapshots." msgstr "Impossible de récupérer les instantanés de volume." #: dashboards/nova/images_and_snapshots/images/forms.py:44 -#: dashboards/nova/templates/nova/images_and_snapshots/images/_detail_overview.html:48 -msgid "Kernel ID" -msgstr "ID de Kernel" +msgid "Image Location" +msgstr "" -#: dashboards/nova/images_and_snapshots/images/forms.py:49 -#: dashboards/nova/templates/nova/images_and_snapshots/images/_detail_overview.html:52 -msgid "Ramdisk ID" -msgstr "ID de Ramdisk" +#: dashboards/nova/images_and_snapshots/images/forms.py:45 +msgid "An external (HTTP) URL where the image should be loaded from." +msgstr "" -#: dashboards/nova/images_and_snapshots/images/forms.py:54 -#: dashboards/nova/templates/nova/images_and_snapshots/images/_detail_overview.html:44 -msgid "Architecture" -msgstr "Architecture" - -#: dashboards/nova/images_and_snapshots/images/forms.py:58 -#: dashboards/nova/images_and_snapshots/images/tables.py:98 -#: dashboards/nova/templates/nova/images_and_snapshots/images/_detail_overview.html:32 -msgid "Container Format" -msgstr "Format de conteneur" - -#: dashboards/nova/images_and_snapshots/images/forms.py:62 -#: dashboards/nova/templates/nova/images_and_snapshots/images/_detail_overview.html:34 -msgid "Disk Format" +#: dashboards/nova/images_and_snapshots/images/forms.py:48 +#: dashboards/nova/images_and_snapshots/images/forms.py:135 +#: dashboards/nova/images_and_snapshots/images/tables.py:125 +#, fuzzy +msgid "Format" msgstr "Formatage de disque" -#: dashboards/nova/images_and_snapshots/images/forms.py:66 -#: dashboards/nova/images_and_snapshots/images/tables.py:94 -#: dashboards/nova/templates/nova/images_and_snapshots/images/_detail_overview.html:15 +#: dashboards/nova/images_and_snapshots/images/forms.py:52 +msgid "AKI - Amazon Kernel Image" +msgstr "" + +#: dashboards/nova/images_and_snapshots/images/forms.py:55 +msgid "AMI - Amazon Machine Image" +msgstr "" + +#: dashboards/nova/images_and_snapshots/images/forms.py:58 +msgid "ARI - Amazon Ramdisk Image" +msgstr "" + +#: dashboards/nova/images_and_snapshots/images/forms.py:61 +msgid "ISO - Optical Disk Image" +msgstr "" + +#: dashboards/nova/images_and_snapshots/images/forms.py:63 +msgid "QCOW2 - QEMU Emulator" +msgstr "" + +#: dashboards/nova/images_and_snapshots/images/forms.py:70 +msgid "Minimum Disk (GB)" +msgstr "" + +#: dashboards/nova/images_and_snapshots/images/forms.py:71 +#: dashboards/nova/images_and_snapshots/images/forms.py:78 +msgid "" +"The minimum disk size required to boot the image. If unspecified, this value " +"defaults to 0 (no minimum)." +msgstr "" + +#: dashboards/nova/images_and_snapshots/images/forms.py:77 +msgid "Minimum Ram (MB)" +msgstr "" + +#: dashboards/nova/images_and_snapshots/images/forms.py:84 +#: dashboards/nova/images_and_snapshots/images/forms.py:139 +#: dashboards/nova/images_and_snapshots/images/tables.py:122 +#: dashboards/nova/images_and_snapshots/templates/images_and_snapshots/images/_detail_overview.html:15 msgid "Public" msgstr "Publique" -#: dashboards/nova/images_and_snapshots/images/forms.py:72 +#: dashboards/nova/images_and_snapshots/images/forms.py:108 +#, python-format +msgid "Your image %s has been queued for creation." +msgstr "" + +#: dashboards/nova/images_and_snapshots/images/forms.py:111 +#, fuzzy +msgid "Unable to create new image." +msgstr "Impossible de récupérer les images." + +#: dashboards/nova/images_and_snapshots/images/forms.py:121 +#: dashboards/nova/images_and_snapshots/templates/images_and_snapshots/images/_detail_overview.html:48 +msgid "Kernel ID" +msgstr "ID de Kernel" + +#: dashboards/nova/images_and_snapshots/images/forms.py:126 +#: dashboards/nova/images_and_snapshots/templates/images_and_snapshots/images/_detail_overview.html:52 +msgid "Ramdisk ID" +msgstr "ID de Ramdisk" + +#: dashboards/nova/images_and_snapshots/images/forms.py:131 +#: dashboards/nova/images_and_snapshots/templates/images_and_snapshots/images/_detail_overview.html:44 +msgid "Architecture" +msgstr "Architecture" + +#: dashboards/nova/images_and_snapshots/images/forms.py:144 #, python-format msgid "Unable to update image \"%s\"." msgstr "Impossible de mettre à jour l'image \"%s\"." -#: dashboards/nova/images_and_snapshots/images/forms.py:88 +#: dashboards/nova/images_and_snapshots/images/forms.py:163 msgid "Image was successfully updated." msgstr "L'image a été mise à jour avec succès." #: dashboards/nova/images_and_snapshots/images/tables.py:33 #: dashboards/nova/images_and_snapshots/snapshots/tables.py:32 -#: dashboards/nova/instances_and_volumes/instances/workflows.py:377 +#: dashboards/nova/instances/workflows.py:394 msgid "Launch" msgstr "Lancer" #: dashboards/nova/images_and_snapshots/images/tables.py:45 -#: dashboards/nova/instances_and_volumes/instances/workflows.py:161 -#: dashboards/nova/instances_and_volumes/instances/workflows.py:166 +#: dashboards/nova/images_and_snapshots/images/tables.py:81 +#: dashboards/nova/instances/workflows.py:162 +#: dashboards/nova/instances/workflows.py:167 msgid "Image" msgstr "Image" #: dashboards/nova/images_and_snapshots/images/tables.py:46 -#: dashboards/nova/images_and_snapshots/images/tables.py:102 +#: dashboards/nova/images_and_snapshots/images/tables.py:131 #: dashboards/syspanel/images/panel.py:28 -#: dashboards/syspanel/images/tables.py:38 -#: dashboards/syspanel/templates/syspanel/images/index.html:3 -#: dashboards/syspanel/templates/syspanel/images/index.html:6 +#: dashboards/syspanel/images/tables.py:43 +#: dashboards/syspanel/images/templates/images/index.html:3 +#: dashboards/syspanel/images/templates/images/index.html:6 msgid "Images" msgstr "Images" #: dashboards/nova/images_and_snapshots/images/tables.py:60 +#: dashboards/nova/images_and_snapshots/templates/images_and_snapshots/images/_create.html:31 +#, fuzzy +msgid "Create Image" +msgstr "Mettre à jour l'image" + +#: dashboards/nova/images_and_snapshots/images/tables.py:67 #: dashboards/syspanel/users/tables.py:30 msgid "Edit" msgstr "Editer" -#: dashboards/nova/images_and_snapshots/images/tables.py:87 -#: dashboards/nova/templates/nova/instances_and_volumes/instances/_detail_overview.html:72 +#: dashboards/nova/images_and_snapshots/images/tables.py:112 +#: dashboards/nova/instances/templates/instances/_detail_overview.html:74 +#: dashboards/syspanel/images/tables.py:39 msgid "Image Name" msgstr "Nom d'image" -#: dashboards/nova/images_and_snapshots/images/tables.py:92 -#: dashboards/nova/instances_and_volumes/instances/tables.py:246 -#: dashboards/nova/instances_and_volumes/volumes/tables.py:117 -#: dashboards/nova/templates/nova/images_and_snapshots/images/_detail_overview.html:13 -#: dashboards/nova/templates/nova/instances_and_volumes/instances/_detail_overview.html:13 -#: dashboards/nova/templates/nova/instances_and_volumes/volumes/_detail_overview.html:17 +#: dashboards/nova/images_and_snapshots/images/tables.py:118 +#: dashboards/nova/images_and_snapshots/templates/images_and_snapshots/images/_detail_overview.html:13 +#: dashboards/nova/instances/tables.py:275 +#: dashboards/nova/instances/templates/instances/_detail_overview.html:13 +#: dashboards/nova/volumes/tables.py:143 +#: dashboards/nova/volumes/templates/volumes/_detail_overview.html:17 #: dashboards/syspanel/instances/tables.py:80 msgid "Status" msgstr "Etat" #: dashboards/nova/images_and_snapshots/images/tabs.py:26 -#: dashboards/nova/instances_and_volumes/instances/tabs.py:25 -#: dashboards/nova/instances_and_volumes/volumes/tabs.py:26 -#: dashboards/nova/overview/panel.py:28 -#: dashboards/nova/templates/nova/overview/usage.html:6 -#: dashboards/syspanel/overview/panel.py:28 -#: dashboards/syspanel/templates/syspanel/overview/usage.html:6 +#: dashboards/nova/instances/tabs.py:25 dashboards/nova/overview/panel.py:28 +#: dashboards/nova/overview/templates/overview/usage.html:6 +#: dashboards/nova/volumes/tabs.py:26 dashboards/syspanel/overview/panel.py:28 +#: dashboards/syspanel/overview/templates/overview/usage.html:6 msgid "Overview" msgstr "Vue d'ensemble" @@ -710,13 +992,17 @@ msgstr "Vue d'ensemble" msgid "Unable to retrieve image details." msgstr "Impossible de récupérer les détails de l'image." -#: dashboards/nova/images_and_snapshots/images/views.py:50 +#: dashboards/nova/images_and_snapshots/images/views.py:57 #, fuzzy msgid "Unable to retrieve image." msgstr "Impossible de récupérer les images." +#: dashboards/nova/images_and_snapshots/snapshots/forms.py:38 +msgid "Instance ID" +msgstr "ID d'instance" + #: dashboards/nova/images_and_snapshots/snapshots/forms.py:41 -#: dashboards/nova/instances_and_volumes/volumes/forms.py:101 +#: dashboards/nova/volumes/forms.py:123 msgid "Snapshot Name" msgstr "Nom d'instantané" @@ -730,9 +1016,9 @@ msgid "Unable to create snapshot." msgstr "Impossible de créer l'instantané." #: dashboards/nova/images_and_snapshots/snapshots/tables.py:47 -#: dashboards/nova/instances_and_volumes/instances/tables.py:158 -#: dashboards/nova/instances_and_volumes/instances/workflows.py:101 -#: dashboards/nova/instances_and_volumes/instances/workflows.py:162 +#: dashboards/nova/instances/tables.py:162 +#: dashboards/nova/instances/workflows.py:101 +#: dashboards/nova/instances/workflows.py:163 msgid "Snapshot" msgstr "Instantané" @@ -753,760 +1039,612 @@ msgstr "Echec de récupération de l'instance." msgid "To create a snapshot, the instance must be in the \"%s\" state." msgstr "Pour créer un instantané, l'instance doit être dans l'état \"%s\"." -#: dashboards/nova/images_and_snapshots/volume_snapshots/tables.py:30 -#: dashboards/nova/instances_and_volumes/instances/workflows.py:71 -msgid "Volume Snapshot" -msgstr "Instantané de volume" - -#: dashboards/nova/images_and_snapshots/volume_snapshots/tables.py:31 -#: dashboards/nova/images_and_snapshots/volume_snapshots/tables.py:42 -msgid "Volume Snapshots" -msgstr "Instantanés de volume" - -#: dashboards/nova/images_and_snapshots/volume_snapshots/tables.py:38 -msgid "Volume ID" -msgstr "ID de volume" - -#: dashboards/nova/instances_and_volumes/panel.py:24 -msgid "Instances & Volumes" -msgstr "Instances & Volumes" - -#: dashboards/nova/instances_and_volumes/views.py:52 -msgid "Unable to retrieve instances." -msgstr "Echec de récupération des instances." - -#: dashboards/nova/instances_and_volumes/views.py:62 -#: dashboards/syspanel/instances/views.py:65 -msgid "Unable to retrieve instance size information." -msgstr "Impossible de récupérer la taille de l'instance." - -#: dashboards/nova/instances_and_volumes/views.py:78 -#, python-format -msgid "Unable to fetch volumes: %s" -msgstr "Echec de parcours des volumes : %s" - -#: dashboards/nova/instances_and_volumes/instances/forms.py:44 -#, python-format -msgid "Instance \"%s\" updated." -msgstr "Instance \"%s\" mise à jour." - -#: dashboards/nova/instances_and_volumes/instances/forms.py:46 -msgid "Unable to update instance." -msgstr "Impossible de mettre à jour l'instance." - -#: dashboards/nova/instances_and_volumes/instances/tables.py:56 -msgid "Terminate" -msgstr "Arrêt" - -#: dashboards/nova/instances_and_volumes/instances/tables.py:57 -msgid "Terminated" -msgstr "Arrêté" - -#: dashboards/nova/instances_and_volumes/instances/tables.py:59 -#: dashboards/nova/instances_and_volumes/instances/tables.py:76 -#: dashboards/nova/instances_and_volumes/instances/tables.py:91 -#: dashboards/nova/instances_and_volumes/instances/tables.py:119 -#: dashboards/nova/instances_and_volumes/instances/tables.py:261 -#: dashboards/syspanel/instances/panel.py:28 -#: dashboards/syspanel/instances/tables.py:95 -#: dashboards/syspanel/projects/forms.py:115 -#: dashboards/syspanel/templates/syspanel/instances/index.html:3 -msgid "Instances" -msgstr "Instances" - -#: dashboards/nova/instances_and_volumes/instances/tables.py:73 -msgid "Reboot" -msgstr "Redémarrage" - -#: dashboards/nova/instances_and_volumes/instances/tables.py:74 -msgid "Rebooted" -msgstr "Redémarré" - -#: dashboards/nova/instances_and_volumes/instances/tables.py:88 -msgid "Pause" -msgstr "Pause" - -#: dashboards/nova/instances_and_volumes/instances/tables.py:88 -msgid "Unpause" -msgstr "Annuler la pause" - -#: dashboards/nova/instances_and_volumes/instances/tables.py:89 -msgid "Paused" -msgstr "Mis en pause" - -#: dashboards/nova/instances_and_volumes/instances/tables.py:89 -msgid "Unpaused" -msgstr "Pause annulée" - -#: dashboards/nova/instances_and_volumes/instances/tables.py:116 -msgid "Suspend" -msgstr "Suspendre" - -#: dashboards/nova/instances_and_volumes/instances/tables.py:116 -msgid "Resume" -msgstr "Reprendre" - -#: dashboards/nova/instances_and_volumes/instances/tables.py:117 -msgid "Suspended" -msgstr "Suspendu" - -#: dashboards/nova/instances_and_volumes/instances/tables.py:117 -msgid "Resumed" -msgstr "Repris" - -#: dashboards/nova/instances_and_volumes/instances/tables.py:144 -#: dashboards/nova/instances_and_volumes/instances/workflows.py:376 -#: dashboards/nova/templates/nova/instances_and_volumes/instances/launch.html:3 -#: dashboards/nova/templates/nova/instances_and_volumes/instances/launch.html:6 -#, fuzzy -msgid "Launch Instance" -msgstr "Démarrer l'instance" - -#: dashboards/nova/instances_and_volumes/instances/tables.py:151 -#: dashboards/nova/templates/nova/instances_and_volumes/instances/_update.html:7 -msgid "Edit Instance" -msgstr "Modifier l'instance" - -#: dashboards/nova/instances_and_volumes/instances/tables.py:168 -msgid "VNC Console" -msgstr "Console VNC" - -#: dashboards/nova/instances_and_volumes/instances/tables.py:183 -msgid "View Log" -msgstr "Afficher le journal" - -#: dashboards/nova/instances_and_volumes/instances/tables.py:213 -#, python-format -msgid "%(RAM)s RAM | %(VCPU)s VCPU | %(disk)s Disk" -msgstr "%(RAM)s RAM | %(VCPU)s VCPU | %(disk)s Disque" - -#: dashboards/nova/instances_and_volumes/instances/tables.py:241 -#: dashboards/syspanel/instances/tables.py:73 usage/tables.py:47 -msgid "Instance Name" -msgstr "Nom de l'instance" - -#: dashboards/nova/instances_and_volumes/instances/tables.py:250 -#: dashboards/syspanel/instances/tables.py:84 -msgid "Task" -msgstr "Tâche" - -#: dashboards/nova/instances_and_volumes/instances/tables.py:257 -#: dashboards/syspanel/instances/tables.py:91 -msgid "Power State" -msgstr "Etat d'alimentation" - -#: dashboards/nova/instances_and_volumes/instances/tabs.py:35 -msgid "Log" -msgstr "Journal" - -#: dashboards/nova/instances_and_volumes/instances/tabs.py:47 -#: dashboards/nova/instances_and_volumes/instances/views.py:63 -#, python-format -msgid "Unable to get log for instance \"%s\"." -msgstr "Impossible de récupérer le journal de log pour l'instance \"%s\"." - -#: dashboards/nova/instances_and_volumes/instances/tabs.py:54 -msgid "VNC" -msgstr "VNC" - -#: dashboards/nova/instances_and_volumes/instances/tabs.py:69 -#: dashboards/nova/instances_and_volumes/instances/views.py:79 -#, python-format -msgid "Unable to get VNC console for instance \"%s\"." -msgstr "Impossible de récupérer la console VNC pour l'instance \"%s\"." - -#: dashboards/nova/instances_and_volumes/instances/views.py:95 -msgid "Unable to retrieve instance details." -msgstr "Impossible de récupérer le détail de l'instance." - -#: dashboards/nova/instances_and_volumes/instances/views.py:130 -#, python-format -msgid "Unable to retrieve details for instance \"%s\"." -msgstr "Impossible de récupérer les informations sur l'instance \"%s\"." - -#: dashboards/nova/instances_and_volumes/instances/workflows.py:34 -#: dashboards/syspanel/projects/tables.py:91 -#: dashboards/syspanel/users/tables.py:39 -#: dashboards/syspanel/users/tables.py:73 tests/workflows_tests.py:40 -msgid "User" -msgstr "Utilisateur" - -#: dashboards/nova/instances_and_volumes/instances/workflows.py:48 -#, fuzzy -msgid "Project & User" -msgstr "Utilisation du projet" - -#: dashboards/nova/instances_and_volumes/instances/workflows.py:50 -msgid "" -"Admin users may optionally select the project and user for whom the instance " -"should be created." -msgstr "" - -#: dashboards/nova/instances_and_volumes/instances/workflows.py:61 -msgid "Don't boot from a volume." -msgstr "" - -#: dashboards/nova/instances_and_volumes/instances/workflows.py:62 -msgid "Boot from volume." -msgstr "" - -#: dashboards/nova/instances_and_volumes/instances/workflows.py:63 -msgid "Boot from volume snapshot (creates a new volume)." -msgstr "" - -#: dashboards/nova/instances_and_volumes/instances/workflows.py:67 -#: dashboards/nova/instances_and_volumes/instances/workflows.py:85 -#, fuzzy -msgid "Volume Options" -msgstr "Détails du volume" - -#: dashboards/nova/instances_and_volumes/instances/workflows.py:70 -#: dashboards/nova/instances_and_volumes/instances/workflows.py:104 -#: dashboards/nova/instances_and_volumes/volumes/tables.py:35 -#: dashboards/nova/instances_and_volumes/volumes/tables.py:145 -#: dashboards/nova/templates/nova/instances_and_volumes/instances/_detail_overview.html:83 -msgid "Volume" -msgstr "Volume" - -#: dashboards/nova/instances_and_volumes/instances/workflows.py:73 -msgid "Device Name" -msgstr "Nom de périphérique" - -#: dashboards/nova/instances_and_volumes/instances/workflows.py:76 -msgid "Volume mount point (e.g. 'vda' mounts at '/dev/vda')." -msgstr "" -"Point de montage de volume (exemple monter 'vda' à partir de '/dev/vda')." - -#: dashboards/nova/instances_and_volumes/instances/workflows.py:78 -msgid "Delete on Terminate" -msgstr "Supprimer après la mise à l'arrêt" - -#: dashboards/nova/instances_and_volumes/instances/workflows.py:81 -msgid "Delete volume on instance terminate" -msgstr "Supprimer le volume lors de la mise à l'arrêt de l'instance" - -#: dashboards/nova/instances_and_volumes/instances/workflows.py:111 -msgid "Select Volume" -msgstr "Sélectionner un volume" - -#: dashboards/nova/instances_and_volumes/instances/workflows.py:119 -#: dashboards/nova/instances_and_volumes/instances/workflows.py:132 -msgid "Unable to retrieve list of volumes" -msgstr "Echec de récupération de la liste des volumes" - -#: dashboards/nova/instances_and_volumes/instances/workflows.py:123 -#, fuzzy -msgid "Select Volume Snapshot" -msgstr "Créer un instantané de Volume" - -#: dashboards/nova/instances_and_volumes/instances/workflows.py:164 -#, fuzzy -msgid "Instance Source" -msgstr "Nombre d'instances" - -#: dashboards/nova/instances_and_volumes/instances/workflows.py:167 -#, fuzzy -msgid "Instance Snapshot" -msgstr "Instantané d'instance" - -#: dashboards/nova/instances_and_volumes/instances/workflows.py:169 -msgid "Server Name" -msgstr "Nom du serveur" - -#: dashboards/nova/instances_and_volumes/instances/workflows.py:170 -#: dashboards/syspanel/flavors/tables.py:13 -msgid "Flavor" -msgstr "Type d'instance" - -#: dashboards/nova/instances_and_volumes/instances/workflows.py:171 -msgid "Size of image to launch." -msgstr "Taille de l'image à lancer." - -#: dashboards/nova/instances_and_volumes/instances/workflows.py:172 -#: dashboards/nova/templates/nova/instances_and_volumes/instances/_launch_details_help.html:21 -msgid "Instance Count" -msgstr "Nombre d'instances" - -#: dashboards/nova/instances_and_volumes/instances/workflows.py:175 -msgid "Number of instances to launch." -msgstr "Nombre d'instances à lancer." - -#: dashboards/nova/instances_and_volumes/instances/workflows.py:178 -#, fuzzy -msgid "Details" -msgstr "Détails du volume" - -#: dashboards/nova/instances_and_volumes/instances/workflows.py:197 -msgid "" -"Launching multiple instances is only supported for images and instance " -"snapshots." -msgstr "" - -#: dashboards/nova/instances_and_volumes/instances/workflows.py:240 -#, fuzzy -msgid "Select Image" -msgstr "Sélectionnez la langue" - -#: dashboards/nova/instances_and_volumes/instances/workflows.py:242 -#, fuzzy -msgid "No images available." -msgstr "Aucune instance disponible" - -#: dashboards/nova/instances_and_volumes/instances/workflows.py:251 -#, fuzzy -msgid "Select Instance Snapshot" -msgstr "Instantané d'instance" - -#: dashboards/nova/instances_and_volumes/instances/workflows.py:253 -#, fuzzy -msgid "No snapshots available." -msgstr "Aucune instance disponible" - -#: dashboards/nova/instances_and_volumes/instances/workflows.py:264 -msgid "Unable to retrieve instance flavors." -msgstr "Impossible de récupérer la liste des types d'instance." - -#: dashboards/nova/instances_and_volumes/instances/workflows.py:301 -msgid "Which keypair to use for authentication." -msgstr "Quelle paire de clés utiliser pour l'authentification." - -#: dashboards/nova/instances_and_volumes/instances/workflows.py:307 -msgid "Launch instance in these security groups." -msgstr "Lancer une instance dans ce groupe de sécurité." - -#: dashboards/nova/instances_and_volumes/instances/workflows.py:312 -msgid "" -"Control access to your instance via keypairs, security groups, and other " -"mechanisms." -msgstr "" - -#: dashboards/nova/instances_and_volumes/instances/workflows.py:322 -msgid "Unable to retrieve keypairs." -msgstr "Impossible récupérer les paires de clé." - -#: dashboards/nova/instances_and_volumes/instances/workflows.py:324 -msgid "Select a keypair" -msgstr "Sélectionnez une paire de clés" - -#: dashboards/nova/instances_and_volumes/instances/workflows.py:326 -msgid "No keypairs available." -msgstr "Pas de paires de clés disponibles." - -#: dashboards/nova/instances_and_volumes/instances/workflows.py:335 -msgid "Unable to retrieve list of security groups" -msgstr "Impossible de récupérer la liste des groupes de sécurité" - -#: dashboards/nova/instances_and_volumes/instances/workflows.py:355 -msgid "Customization Script" -msgstr "" - -#: dashboards/nova/instances_and_volumes/instances/workflows.py:357 -msgid "" -"A script or set of commands to be executed after the instance has been built " -"(max 16kb)." -msgstr "" - -#: dashboards/nova/instances_and_volumes/instances/workflows.py:364 -msgid "Post-Creation" -msgstr "" - -#: dashboards/nova/instances_and_volumes/instances/workflows.py:378 -#, python-format -msgid "Instance \"%s\" launched." -msgstr "Instance \"%s\" lancée." - -#: dashboards/nova/instances_and_volumes/instances/workflows.py:379 -#, fuzzy, python-format -msgid "Unable to launch instance \"%s\"." -msgstr "Impossible de lancer l'instance: %(exc)s" - -#: dashboards/nova/instances_and_volumes/volumes/forms.py:42 -#, python-format -msgid "Error Creating Volume: %s" -msgstr "Echec de création du volume : %s" - -#: dashboards/nova/instances_and_volumes/volumes/forms.py:48 -msgid "Select an instance to attach to." -msgstr "Sélectionnez une instance à attacher." - -#: dashboards/nova/instances_and_volumes/volumes/forms.py:86 -#, python-format -msgid "Attaching volume %(vol)s to instance %(inst)s at %(dev)s" -msgstr "Attache le volume %(vol)s à l'instance %(inst)s à partir de %(dev)s" - -#: dashboards/nova/instances_and_volumes/volumes/forms.py:95 -#, python-format -msgid "Error attaching volume: %s" -msgstr "Erreur d'attachement du volume : %s" - -#: dashboards/nova/instances_and_volumes/volumes/forms.py:120 -#, python-format -msgid "Creating volume snapshot \"%s\"" -msgstr "Création de l'instantané de volume \"%s\"" - -#: dashboards/nova/instances_and_volumes/volumes/forms.py:125 -#, python-format -msgid "Error Creating Volume Snapshot: %(exc)s" -msgstr "Echec de création de l'instantané du volume %(exc)s" - -#: dashboards/nova/instances_and_volumes/volumes/tables.py:36 -#: dashboards/nova/instances_and_volumes/volumes/tables.py:134 -#: dashboards/nova/instances_and_volumes/volumes/tables.py:146 -#: dashboards/nova/templates/nova/instances_and_volumes/instances/_detail_overview.html:78 -#: dashboards/syspanel/projects/forms.py:116 -msgid "Volumes" -msgstr "Volumes" - -#: dashboards/nova/instances_and_volumes/volumes/tables.py:49 -#: dashboards/nova/templates/nova/instances_and_volumes/volumes/_create.html:8 -#: dashboards/nova/templates/nova/instances_and_volumes/volumes/_create.html:23 -msgid "Create Volume" -msgstr "Créer un volume" - -#: dashboards/nova/instances_and_volumes/volumes/tables.py:56 -msgid "Edit Attachments" -msgstr "Modifier les attachements" - -#: dashboards/nova/instances_and_volumes/volumes/tables.py:66 -#: dashboards/nova/templates/nova/images_and_snapshots/snapshots/_create.html:8 -#: dashboards/nova/templates/nova/images_and_snapshots/snapshots/_create.html:23 -#: dashboards/nova/templates/nova/images_and_snapshots/snapshots/create.html:3 -msgid "Create Snapshot" -msgstr "Créer un instantané" - -#: dashboards/nova/instances_and_volumes/volumes/tables.py:83 -#: templatetags/sizeformat.py:58 -#, python-format -msgid "%s GB" -msgstr "%s GB" - -#: dashboards/nova/instances_and_volumes/volumes/tables.py:130 -#: dashboards/nova/templates/nova/instances_and_volumes/volumes/_detail_overview.html:34 -msgid "Attachments" -msgstr "Attachements" - -#: dashboards/nova/instances_and_volumes/volumes/tables.py:143 -msgid "Detach" -msgstr "Détacher" - -#: dashboards/nova/instances_and_volumes/volumes/tables.py:144 -msgid "Detached" -msgstr "Détaché" - -#: dashboards/nova/instances_and_volumes/volumes/tabs.py:41 -msgid "Unable to retrieve volume details." -msgstr "Impossible de récupérer le détail du volume." - -#: dashboards/nova/instances_and_volumes/volumes/views.py:71 -#: dashboards/nova/instances_and_volumes/volumes/views.py:81 -msgid "Unable to retrieve volume information." -msgstr "Impossible de récupérer les informations du volume." - -#: dashboards/nova/templates/nova/access_and_security/index.html:6 -msgid "Access & Security" -msgstr "Accès & sécurité" - -#: dashboards/nova/templates/nova/access_and_security/floating_ips/_allocate.html:8 -#: dashboards/nova/templates/nova/access_and_security/floating_ips/allocate.html:3 -msgid "Allocate Floating IP" -msgstr "Allouer une adresse IP flottante" - -#: dashboards/nova/templates/nova/access_and_security/floating_ips/_allocate.html:17 -#: dashboards/nova/templates/nova/access_and_security/floating_ips/_associate.html:16 -#: dashboards/nova/templates/nova/images_and_snapshots/images/_update.html:16 -#: dashboards/nova/templates/nova/images_and_snapshots/snapshots/_create.html:17 -#: dashboards/nova/templates/nova/instances_and_volumes/instances/_update.html:16 -#: dashboards/settings/templates/settings/ec2/download_form.html:17 -#: dashboards/settings/templates/settings/project/_openrc.html:17 -#: dashboards/settings/templates/settings/user/_language.html:30 -msgid "Description:" -msgstr "Description :" - -#: dashboards/nova/templates/nova/access_and_security/floating_ips/_allocate.html:18 -msgid "Allocate a floating IP from a given floating ip pool." -msgstr "" -"Allouer une adresse IP flottante à partir d'un pool donné d'adresses IP." - -#: dashboards/nova/templates/nova/access_and_security/floating_ips/_allocate.html:20 -#: dashboards/nova/templates/nova/instances_and_volumes/instances/_launch_details_help.html:19 -msgid "Project Quotas" -msgstr "Quotas de projet" - -#: dashboards/nova/templates/nova/access_and_security/floating_ips/_allocate.html:31 -msgid "Allocate IP" -msgstr "Allouer une adresse IP" - -#: dashboards/nova/templates/nova/access_and_security/floating_ips/_allocate.html:32 -#: dashboards/nova/templates/nova/access_and_security/floating_ips/_associate.html:23 -#: dashboards/nova/templates/nova/access_and_security/keypairs/_create.html:24 -#: dashboards/nova/templates/nova/access_and_security/keypairs/_import.html:24 -#: dashboards/nova/templates/nova/access_and_security/security_groups/_create.html:24 -#: dashboards/nova/templates/nova/access_and_security/security_groups/_edit_rules.html:20 -#: dashboards/nova/templates/nova/containers/_create.html:23 -#: dashboards/nova/templates/nova/images_and_snapshots/images/_update.html:23 -#: dashboards/nova/templates/nova/images_and_snapshots/snapshots/_create.html:24 -#: dashboards/nova/templates/nova/instances_and_volumes/instances/_update.html:23 -#: dashboards/nova/templates/nova/instances_and_volumes/volumes/_attach.html:20 -#: dashboards/nova/templates/nova/instances_and_volumes/volumes/_create.html:24 -#: dashboards/nova/templates/nova/instances_and_volumes/volumes/_create_snapshot.html:24 -#: dashboards/nova/templates/nova/objects/_copy.html:23 -#: dashboards/nova/templates/nova/objects/_upload.html:24 -#: dashboards/settings/templates/settings/ec2/download_form.html:24 -#: dashboards/settings/templates/settings/project/_openrc.html:24 -#: dashboards/settings/templates/settings/user/_language.html:37 -#: dashboards/syspanel/templates/syspanel/flavors/_create.html:24 -#: dashboards/syspanel/templates/syspanel/images/_update.html:24 -#: dashboards/syspanel/templates/syspanel/projects/_add_user.html:24 -#: dashboards/syspanel/templates/syspanel/projects/_create.html:24 -#: dashboards/syspanel/templates/syspanel/projects/_quotas.html:23 -#: dashboards/syspanel/templates/syspanel/projects/_update.html:24 -#: dashboards/syspanel/templates/syspanel/users/_create.html:23 -#: dashboards/syspanel/templates/syspanel/users/_update.html:23 -#: templates/horizon/common/_workflow.html:29 -msgid "Cancel" -msgstr "Annuler" - -#: dashboards/nova/templates/nova/access_and_security/floating_ips/_associate.html:7 -#: dashboards/nova/templates/nova/access_and_security/floating_ips/associate.html:7 -msgid "Associate Floating IP" -msgstr "Associer une adresse IP" - -#: dashboards/nova/templates/nova/access_and_security/floating_ips/_associate.html:17 -msgid "Associate a floating ip with an instance." -msgstr "Associer une adresse IP flottante à une instance." - -#: dashboards/nova/templates/nova/access_and_security/keypairs/_create.html:17 -#: dashboards/nova/templates/nova/access_and_security/keypairs/_import.html:17 -msgid "" -"Keypairs are ssh credentials which are injected into images when they are " -"launched. Creating a new key pair registers the public key and downloads the " -"private key (a .pem file)." -msgstr "" -"Les Paires de clés sont des informations d'identification ssh qui sont " -"injectées dans les images lorsqu'elles sont lancées. La création d'une " -"nouvelle paire de clés enregistre la clé publique et vous permet de " -"télécharger la clé privée (un fichier .pem)." - -#: dashboards/nova/templates/nova/access_and_security/keypairs/_create.html:18 -#: dashboards/nova/templates/nova/access_and_security/keypairs/_import.html:18 -msgid "Protect and use the key as you would any normal ssh private key." -msgstr "" -"Protégez et utilisez la clé comme vous le feriez pour n'importe quelle " -"utilisation de clé privée ssh." - -#: dashboards/nova/templates/nova/access_and_security/keypairs/download.html:3 -#: dashboards/nova/templates/nova/access_and_security/keypairs/download.html:6 -msgid "Download Keypair" -msgstr "Télécharger la paire de clés" - -#: dashboards/nova/templates/nova/access_and_security/keypairs/download.html:11 -#, python-format -msgid "" -"The keypair "%(keypair_name)s" should download automatically. If " -"not use the link below." -msgstr "" -"Le téléchargement de la paire de clés \"%(keypair_name)s\" doit se lancer " -"automatiquement, sinon utilisez le lien ci-dessous." - -#: dashboards/nova/templates/nova/access_and_security/keypairs/download.html:15 -#, python-format -msgid "Download keypair "%(keypair_name)s"" -msgstr "Télécharger la paire de clés "%(keypair_name)s"" - -#: dashboards/nova/templates/nova/access_and_security/security_groups/_create.html:18 -msgid "From here you can create a new security group" -msgstr "D'ici vous pouvez créer un nouveau groupe de sécurité" - -#: dashboards/nova/templates/nova/access_and_security/security_groups/_edit_rules.html:9 -#: dashboards/nova/templates/nova/access_and_security/security_groups/edit_rules.html:6 -msgid "Edit Security Group Rules" -msgstr "Modifier les règles de groupe de sécurité" - -#: dashboards/nova/templates/nova/access_and_security/security_groups/_edit_rules.html:12 -#: dashboards/nova/templates/nova/access_and_security/security_groups/_edit_rules.html:19 -msgid "Add Rule" -msgstr "Ajouter une règle" - -#: dashboards/nova/templates/nova/containers/_create.html:17 -msgid "" -"A container is a storage compartment for your data and provides a way for " -"you to organize your data. You can think of a container as a folder in " -"Windows ® or a directory in UNIX ®. The primary difference between a " -"container and these other file system concepts is that containers cannot be " -"nested. You can, however, create an unlimited number of containers within " -"your account. Data must be stored in a container so you must have at least " -"one container defined in your account prior to uploading data." -msgstr "" -"Un conteneur est un espace de stockage qui vous permet d'organiser vos " -"données. Cet espace peut se rapprocher de la notion de dossier dans Windows " -"® ou de répertoire sous UNIX ®. La principale différence entre un conteneur " -"et ces autres concepts de système de fichiers est que les conteneurs ne " -"peuvent pas être imbriqués. Vous pouvez toutefois créer un nombre illimité " -"de conteneurs dans votre compte. Les données devant être impérativement " -"stockées dans un conteneur, vous devez donc avoir au moins un conteneur " -"défini dans votre compte avant tout téléchargement de données." - -#: dashboards/nova/templates/nova/images_and_snapshots/index.html:3 -#: dashboards/nova/templates/nova/images_and_snapshots/index.html:6 +#: dashboards/nova/images_and_snapshots/templates/images_and_snapshots/index.html:3 +#: dashboards/nova/images_and_snapshots/templates/images_and_snapshots/index.html:6 msgid "Images & Snapshots" msgstr "Images & Instantanés" -#: dashboards/nova/templates/nova/images_and_snapshots/images/_detail_overview.html:3 +#: dashboards/nova/images_and_snapshots/templates/images_and_snapshots/images/_create.html:7 +#: dashboards/nova/images_and_snapshots/templates/images_and_snapshots/images/create.html:3 +#: dashboards/nova/images_and_snapshots/templates/images_and_snapshots/images/create.html:6 +#, fuzzy +msgid "Create An Image" +msgstr "Mettre à jour l'image" + +#: dashboards/nova/images_and_snapshots/templates/images_and_snapshots/images/_create.html:18 +msgid "Specify an image to upload to the Image Service." +msgstr "" + +#: dashboards/nova/images_and_snapshots/templates/images_and_snapshots/images/_create.html:21 +msgid "" +"Currently only images available via an HTTP URL are supported. The image " +"location must be accessible to the Image Service. Compressed image binaries " +"are supported (.zip and .tar.gz.)" +msgstr "" + +#: dashboards/nova/images_and_snapshots/templates/images_and_snapshots/images/_create.html:24 +msgid "Please note: " +msgstr "" + +#: dashboards/nova/images_and_snapshots/templates/images_and_snapshots/images/_create.html:25 +msgid "" +"The Image Location field MUST be a valid and direct URL to the image binary. " +"URLs that redirect or serve error pages will results in unusable images." +msgstr "" + +#: dashboards/nova/images_and_snapshots/templates/images_and_snapshots/images/_detail_overview.html:3 msgid "Image Overview" msgstr "Vue d'ensemble de l'image" -#: dashboards/nova/templates/nova/images_and_snapshots/images/_detail_overview.html:6 -#: dashboards/nova/templates/nova/instances_and_volumes/instances/_detail_overview.html:6 -#: dashboards/nova/templates/nova/instances_and_volumes/volumes/_detail_overview.html:6 +#: dashboards/nova/images_and_snapshots/templates/images_and_snapshots/images/_detail_overview.html:6 +#: dashboards/nova/instances/templates/instances/_detail_overview.html:6 +#: dashboards/nova/volumes/templates/volumes/_detail_overview.html:6 msgid "Info" msgstr "Info" -#: dashboards/nova/templates/nova/images_and_snapshots/images/_detail_overview.html:11 -#: dashboards/nova/templates/nova/instances_and_volumes/instances/_detail_overview.html:11 -#: dashboards/nova/templates/nova/instances_and_volumes/volumes/_detail_overview.html:11 +#: dashboards/nova/images_and_snapshots/templates/images_and_snapshots/images/_detail_overview.html:11 +#: dashboards/nova/instances/templates/instances/_detail_overview.html:11 +#: dashboards/nova/volumes/templates/volumes/_detail_overview.html:11 #: dashboards/syspanel/projects/forms.py:83 -#: dashboards/syspanel/users/forms.py:104 -#: dashboards/syspanel/users/tables.py:106 +#: dashboards/syspanel/users/forms.py:113 msgid "ID" msgstr "ID" -#: dashboards/nova/templates/nova/images_and_snapshots/images/_detail_overview.html:17 +#: dashboards/nova/images_and_snapshots/templates/images_and_snapshots/images/_detail_overview.html:17 msgid "Checksum" msgstr "Somme de contrôle" -#: dashboards/nova/templates/nova/images_and_snapshots/images/_detail_overview.html:19 -#: dashboards/nova/templates/nova/instances_and_volumes/volumes/_detail_overview.html:28 +#: dashboards/nova/images_and_snapshots/templates/images_and_snapshots/images/_detail_overview.html:19 +#: dashboards/nova/volumes/templates/volumes/_detail_overview.html:28 msgid "Created" msgstr "Créé" -#: dashboards/nova/templates/nova/images_and_snapshots/images/_detail_overview.html:21 +#: dashboards/nova/images_and_snapshots/templates/images_and_snapshots/images/_detail_overview.html:21 msgid "Updated" msgstr "Mise à jour" -#: dashboards/nova/templates/nova/images_and_snapshots/images/_detail_overview.html:27 -#: dashboards/nova/templates/nova/instances_and_volumes/instances/_detail_overview.html:19 -#: dashboards/nova/templates/nova/instances_and_volumes/volumes/_detail_overview.html:23 +#: dashboards/nova/images_and_snapshots/templates/images_and_snapshots/images/_detail_overview.html:27 +#: dashboards/nova/instances/templates/instances/_detail_overview.html:19 +#: dashboards/nova/volumes/templates/volumes/_detail_overview.html:23 msgid "Specs" msgstr "Spécifications" -#: dashboards/nova/templates/nova/images_and_snapshots/images/_detail_overview.html:40 +#: dashboards/nova/images_and_snapshots/templates/images_and_snapshots/images/_detail_overview.html:32 +msgid "Container Format" +msgstr "Format de conteneur" + +#: dashboards/nova/images_and_snapshots/templates/images_and_snapshots/images/_detail_overview.html:34 +msgid "Disk Format" +msgstr "Formatage de disque" + +#: dashboards/nova/images_and_snapshots/templates/images_and_snapshots/images/_detail_overview.html:40 msgid "Custom Properties" msgstr "Propriétés personnalisées" -#: dashboards/nova/templates/nova/images_and_snapshots/images/_detail_overview.html:56 +#: dashboards/nova/images_and_snapshots/templates/images_and_snapshots/images/_detail_overview.html:56 msgid "Euca2ools state" msgstr "Etat Euca2ools" -#: dashboards/nova/templates/nova/images_and_snapshots/images/_detail_overview.html:60 -#: usage/tables.py:28 +#: dashboards/nova/images_and_snapshots/templates/images_and_snapshots/images/_detail_overview.html:60 +#: dashboards/syspanel/projects/tables.py:77 msgid "Project ID" msgstr "ID projet" -#: dashboards/nova/templates/nova/images_and_snapshots/images/_detail_overview.html:64 +#: dashboards/nova/images_and_snapshots/templates/images_and_snapshots/images/_detail_overview.html:64 msgid "Image Type" msgstr "Type d'image" -#: dashboards/nova/templates/nova/images_and_snapshots/images/_update.html:7 -#: dashboards/nova/templates/nova/images_and_snapshots/images/_update.html:22 -#: dashboards/nova/templates/nova/images_and_snapshots/images/update.html:3 -#: dashboards/nova/templates/nova/images_and_snapshots/images/update.html:6 -#: dashboards/syspanel/templates/syspanel/images/_update.html:8 -#: dashboards/syspanel/templates/syspanel/images/_update.html:23 -#: dashboards/syspanel/templates/syspanel/images/update.html:4 -#: dashboards/syspanel/templates/syspanel/images/update.html:7 +#: dashboards/nova/images_and_snapshots/templates/images_and_snapshots/images/_update.html:7 +#: dashboards/nova/images_and_snapshots/templates/images_and_snapshots/images/_update.html:22 +#: dashboards/nova/images_and_snapshots/templates/images_and_snapshots/images/update.html:3 +#: dashboards/nova/images_and_snapshots/templates/images_and_snapshots/images/update.html:6 +#: dashboards/syspanel/images/templates/images/_update.html:8 +#: dashboards/syspanel/images/templates/images/_update.html:23 +#: dashboards/syspanel/images/templates/images/update.html:4 +#: dashboards/syspanel/images/templates/images/update.html:7 msgid "Update Image" msgstr "Mettre à jour l'image" -#: dashboards/nova/templates/nova/images_and_snapshots/images/_update.html:17 -#: dashboards/syspanel/templates/syspanel/images/_update.html:18 +#: dashboards/nova/images_and_snapshots/templates/images_and_snapshots/images/_update.html:17 +#: dashboards/syspanel/images/templates/images/_update.html:18 msgid "From here you can modify different properties of an image." msgstr "D'ici vous pouvez modifier les propriétés d'une image." -#: dashboards/nova/templates/nova/images_and_snapshots/images/detail.html:4 +#: dashboards/nova/images_and_snapshots/templates/images_and_snapshots/images/detail.html:4 msgid "Image Detail " msgstr "Détail d'une image" -#: dashboards/nova/templates/nova/images_and_snapshots/snapshots/_create.html:18 +#: dashboards/nova/images_and_snapshots/templates/images_and_snapshots/snapshots/_create.html:8 +#: dashboards/nova/images_and_snapshots/templates/images_and_snapshots/snapshots/_create.html:23 +#: dashboards/nova/images_and_snapshots/templates/images_and_snapshots/snapshots/create.html:3 +#: dashboards/nova/volumes/tables.py:67 +msgid "Create Snapshot" +msgstr "Créer un instantané" + +#: dashboards/nova/images_and_snapshots/templates/images_and_snapshots/snapshots/_create.html:18 msgid "Snapshots preserve the disk state of a running instance." msgstr "" "Les instantanés préservent l'état du disque pour une instance en cours " "d'exécution." -#: dashboards/nova/templates/nova/images_and_snapshots/snapshots/create.html:6 +#: dashboards/nova/images_and_snapshots/templates/images_and_snapshots/snapshots/create.html:6 msgid "Create a Snapshot" msgstr "Création d'un instantané" -#: dashboards/nova/templates/nova/instances_and_volumes/index.html:6 -msgid "Instances & Volumes" -msgstr "Instances & Volumes" +#: dashboards/nova/images_and_snapshots/volume_snapshots/tables.py:30 +#: dashboards/nova/instances/workflows.py:70 +msgid "Volume Snapshot" +msgstr "Instantané de volume" -#: dashboards/nova/templates/nova/instances_and_volumes/instances/_detail_log.html:7 +#: dashboards/nova/images_and_snapshots/volume_snapshots/tables.py:31 +#: dashboards/nova/images_and_snapshots/volume_snapshots/tables.py:52 +msgid "Volume Snapshots" +msgstr "Instantanés de volume" + +#: dashboards/nova/images_and_snapshots/volume_snapshots/tables.py:48 +msgid "Volume ID" +msgstr "ID de volume" + +#: dashboards/nova/instances/forms.py:44 +#, python-format +msgid "Instance \"%s\" updated." +msgstr "Instance \"%s\" mise à jour." + +#: dashboards/nova/instances/forms.py:46 +msgid "Unable to update instance." +msgstr "Impossible de mettre à jour l'instance." + +#: dashboards/nova/instances/panel.py:24 +#: dashboards/nova/instances/tables.py:63 +#: dashboards/nova/instances/tables.py:80 +#: dashboards/nova/instances/tables.py:95 +#: dashboards/nova/instances/tables.py:123 +#: dashboards/nova/instances/tables.py:290 +#: dashboards/nova/instances/templates/instances/index.html:3 +#: dashboards/nova/instances/templates/instances/index.html:6 +#: dashboards/syspanel/instances/panel.py:28 +#: dashboards/syspanel/instances/tables.py:95 +#: dashboards/syspanel/instances/templates/instances/index.html:3 +#: dashboards/syspanel/projects/forms.py:115 +msgid "Instances" +msgstr "Instances" + +#: dashboards/nova/instances/tables.py:60 +msgid "Terminate" +msgstr "Arrêt" + +#: dashboards/nova/instances/tables.py:61 +msgid "Scheduled termination of" +msgstr "" + +#: dashboards/nova/instances/tables.py:77 +msgid "Reboot" +msgstr "Redémarrage" + +#: dashboards/nova/instances/tables.py:78 +msgid "Rebooted" +msgstr "Redémarré" + +#: dashboards/nova/instances/tables.py:92 +msgid "Pause" +msgstr "Pause" + +#: dashboards/nova/instances/tables.py:92 +msgid "Unpause" +msgstr "Annuler la pause" + +#: dashboards/nova/instances/tables.py:93 +msgid "Paused" +msgstr "Mis en pause" + +#: dashboards/nova/instances/tables.py:93 +msgid "Unpaused" +msgstr "Pause annulée" + +#: dashboards/nova/instances/tables.py:120 +msgid "Suspend" +msgstr "Suspendre" + +#: dashboards/nova/instances/tables.py:120 +msgid "Resume" +msgstr "Reprendre" + +#: dashboards/nova/instances/tables.py:121 +msgid "Suspended" +msgstr "Suspendu" + +#: dashboards/nova/instances/tables.py:121 +msgid "Resumed" +msgstr "Repris" + +#: dashboards/nova/instances/tables.py:148 +#: dashboards/nova/instances/workflows.py:393 +#: dashboards/nova/instances/templates/instances/launch.html:3 +#: dashboards/nova/instances/templates/instances/launch.html:6 +#, fuzzy +msgid "Launch Instance" +msgstr "Démarrer l'instance" + +#: dashboards/nova/instances/tables.py:155 +#: dashboards/nova/instances/templates/instances/_update.html:7 +msgid "Edit Instance" +msgstr "Modifier l'instance" + +#: dashboards/nova/instances/tables.py:172 +msgid "VNC Console" +msgstr "Console VNC" + +#: dashboards/nova/instances/tables.py:187 +msgid "View Log" +msgstr "Afficher le journal" + +#: dashboards/nova/instances/tables.py:232 +#, fuzzy, python-format +msgid "%(name)s | %(RAM)s RAM | %(VCPU)s VCPU | %(disk)s Disk" +msgstr "%(RAM)s RAM | %(VCPU)s VCPU | %(disk)s Disque" + +#: dashboards/nova/instances/tables.py:239 +#: dashboards/nova/instances/tables.py:246 +msgid "Not available" +msgstr "Non disponible" + +#: dashboards/nova/instances/tables.py:269 +#: dashboards/syspanel/instances/tables.py:73 usage/tables.py:56 +msgid "Instance Name" +msgstr "Nom de l'instance" + +#: dashboards/nova/instances/tables.py:279 +#: dashboards/syspanel/instances/tables.py:84 +msgid "Task" +msgstr "Tâche" + +#: dashboards/nova/instances/tables.py:286 +#: dashboards/syspanel/instances/tables.py:91 +msgid "Power State" +msgstr "Etat d'alimentation" + +#: dashboards/nova/instances/tabs.py:35 +msgid "Log" +msgstr "Journal" + +#: dashboards/nova/instances/tabs.py:47 dashboards/nova/instances/views.py:105 +#, python-format +msgid "Unable to get log for instance \"%s\"." +msgstr "Impossible de récupérer le journal de log pour l'instance \"%s\"." + +#: dashboards/nova/instances/tabs.py:54 +msgid "VNC" +msgstr "VNC" + +#: dashboards/nova/instances/tabs.py:69 dashboards/nova/instances/views.py:121 +#, python-format +msgid "Unable to get VNC console for instance \"%s\"." +msgstr "Impossible de récupérer la console VNC pour l'instance \"%s\"." + +#: dashboards/nova/instances/views.py:58 +msgid "Unable to retrieve instances." +msgstr "Echec de récupération des instances." + +#: dashboards/nova/instances/views.py:81 +#: dashboards/syspanel/instances/views.py:89 +msgid "Unable to retrieve instance size information." +msgstr "Impossible de récupérer la taille de l'instance." + +#: dashboards/nova/instances/views.py:137 +msgid "Unable to retrieve instance details." +msgstr "Impossible de récupérer le détail de l'instance." + +#: dashboards/nova/instances/views.py:172 +#, python-format +msgid "Unable to retrieve details for instance \"%s\"." +msgstr "Impossible de récupérer les informations sur l'instance \"%s\"." + +#: dashboards/nova/instances/workflows.py:33 +#: dashboards/syspanel/projects/tables.py:92 +#: dashboards/syspanel/users/tables.py:39 +#: dashboards/syspanel/users/tables.py:73 tests/workflows_tests.py:40 +msgid "User" +msgstr "Utilisateur" + +#: dashboards/nova/instances/workflows.py:47 +#, fuzzy +msgid "Project & User" +msgstr "Utilisation du projet" + +#: dashboards/nova/instances/workflows.py:49 +msgid "" +"Admin users may optionally select the project and user for whom the instance " +"should be created." +msgstr "" + +#: dashboards/nova/instances/workflows.py:60 +msgid "Don't boot from a volume." +msgstr "" + +#: dashboards/nova/instances/workflows.py:61 +msgid "Boot from volume." +msgstr "" + +#: dashboards/nova/instances/workflows.py:62 +msgid "Boot from volume snapshot (creates a new volume)." +msgstr "" + +#: dashboards/nova/instances/workflows.py:66 +#: dashboards/nova/instances/workflows.py:84 +#, fuzzy +msgid "Volume Options" +msgstr "Détails du volume" + +#: dashboards/nova/instances/workflows.py:69 +#: dashboards/nova/instances/workflows.py:104 +#: dashboards/nova/instances/templates/instances/_detail_overview.html:93 +#: dashboards/nova/volumes/tables.py:36 dashboards/nova/volumes/tables.py:171 +msgid "Volume" +msgstr "Volume" + +#: dashboards/nova/instances/workflows.py:72 +msgid "Device Name" +msgstr "Nom de périphérique" + +#: dashboards/nova/instances/workflows.py:75 +msgid "Volume mount point (e.g. 'vda' mounts at '/dev/vda')." +msgstr "" +"Point de montage de volume (exemple monter 'vda' à partir de '/dev/vda')." + +#: dashboards/nova/instances/workflows.py:77 +msgid "Delete on Terminate" +msgstr "Supprimer après la mise à l'arrêt" + +#: dashboards/nova/instances/workflows.py:80 +msgid "Delete volume on instance terminate" +msgstr "Supprimer le volume lors de la mise à l'arrêt de l'instance" + +#: dashboards/nova/instances/workflows.py:111 +msgid "Select Volume" +msgstr "Sélectionner un volume" + +#: dashboards/nova/instances/workflows.py:119 +#, fuzzy +msgid "Unable to retrieve list of volumes." +msgstr "Echec de récupération de la liste des volumes" + +#: dashboards/nova/instances/workflows.py:123 +#, fuzzy +msgid "Select Volume Snapshot" +msgstr "Créer un instantané de Volume" + +#: dashboards/nova/instances/workflows.py:132 +#, fuzzy +msgid "Unable to retrieve list of volume snapshots." +msgstr "Impossible de récupérer les instantanés de volume." + +#: dashboards/nova/instances/workflows.py:165 +#, fuzzy +msgid "Instance Source" +msgstr "Nombre d'instances" + +#: dashboards/nova/instances/workflows.py:168 +#, fuzzy +msgid "Instance Snapshot" +msgstr "Instantané d'instance" + +#: dashboards/nova/instances/workflows.py:170 +msgid "Server Name" +msgstr "Nom du serveur" + +#: dashboards/nova/instances/workflows.py:171 +#: dashboards/nova/instances/templates/instances/_detail_overview.html:22 +#: dashboards/syspanel/flavors/tables.py:13 +msgid "Flavor" +msgstr "Type d'instance" + +#: dashboards/nova/instances/workflows.py:172 +msgid "Size of image to launch." +msgstr "Taille de l'image à lancer." + +#: dashboards/nova/instances/workflows.py:173 +msgid "Instance Count" +msgstr "Nombre d'instances" + +#: dashboards/nova/instances/workflows.py:176 +msgid "Number of instances to launch." +msgstr "Nombre d'instances à lancer." + +#: dashboards/nova/instances/workflows.py:179 +#, fuzzy +msgid "Details" +msgstr "Détails du volume" + +#: dashboards/nova/instances/workflows.py:198 +msgid "" +"Launching multiple instances is only supported for images and instance " +"snapshots." +msgstr "" + +#: dashboards/nova/instances/workflows.py:214 +#, fuzzy +msgid "Unable to retrieve public images." +msgstr "Impossible de récupérer les images." + +#: dashboards/nova/instances/workflows.py:228 +#, fuzzy +msgid "Unable to retrieve images for the current project." +msgstr "Impossible de s'authentifier pour ce projet." + +#: dashboards/nova/instances/workflows.py:251 +#, fuzzy +msgid "Select Image" +msgstr "Sélectionnez la langue" + +#: dashboards/nova/instances/workflows.py:253 +#, fuzzy +msgid "No images available." +msgstr "Aucune instance disponible" + +#: dashboards/nova/instances/workflows.py:262 +#, fuzzy +msgid "Select Instance Snapshot" +msgstr "Instantané d'instance" + +#: dashboards/nova/instances/workflows.py:264 +#, fuzzy +msgid "No snapshots available." +msgstr "Aucune instance disponible" + +#: dashboards/nova/instances/workflows.py:275 +msgid "Unable to retrieve instance flavors." +msgstr "Impossible de récupérer la liste des types d'instance." + +#: dashboards/nova/instances/workflows.py:288 +#, fuzzy +msgid "Unable to retrieve quota information." +msgstr "Impossible de récupérer les informations d'utilisation." + +#: dashboards/nova/instances/workflows.py:318 +msgid "Which keypair to use for authentication." +msgstr "Quelle paire de clés utiliser pour l'authentification." + +#: dashboards/nova/instances/workflows.py:324 +msgid "Launch instance in these security groups." +msgstr "Lancer une instance dans ce groupe de sécurité." + +#: dashboards/nova/instances/workflows.py:329 +msgid "" +"Control access to your instance via keypairs, security groups, and other " +"mechanisms." +msgstr "" + +#: dashboards/nova/instances/workflows.py:339 +msgid "Unable to retrieve keypairs." +msgstr "Impossible récupérer les paires de clé." + +#: dashboards/nova/instances/workflows.py:341 +msgid "Select a keypair" +msgstr "Sélectionnez une paire de clés" + +#: dashboards/nova/instances/workflows.py:343 +msgid "No keypairs available." +msgstr "Pas de paires de clés disponibles." + +#: dashboards/nova/instances/workflows.py:352 +msgid "Unable to retrieve list of security groups" +msgstr "Impossible de récupérer la liste des groupes de sécurité" + +#: dashboards/nova/instances/workflows.py:372 +msgid "Customization Script" +msgstr "" + +#: dashboards/nova/instances/workflows.py:374 +msgid "" +"A script or set of commands to be executed after the instance has been built " +"(max 16kb)." +msgstr "" + +#: dashboards/nova/instances/workflows.py:381 +msgid "Post-Creation" +msgstr "" + +#: dashboards/nova/instances/workflows.py:395 +#, python-format +msgid "Launched %(count)s named \"%(name)s\"." +msgstr "" + +#: dashboards/nova/instances/workflows.py:396 +#, fuzzy, python-format +msgid "Unable to launch %(count)s named \"%(name)s\"." +msgstr "Impossible de lancer l'instance: %(exc)s" + +#: dashboards/nova/instances/workflows.py:408 +#, fuzzy, python-format +msgid "%s instances" +msgstr "Instances" + +#: dashboards/nova/instances/workflows.py:411 +#, fuzzy +msgid "instance" +msgstr "Instance" + +#: dashboards/nova/instances/templates/instances/_detail_log.html:7 msgid "View Full Log" msgstr "Visualiser les journaux complets" -#: dashboards/nova/templates/nova/instances_and_volumes/instances/_detail_overview.html:3 +#: dashboards/nova/instances/templates/instances/_detail_overview.html:3 msgid "Instance Overview" msgstr "Vue d'ensemble de l'instance" -#: dashboards/nova/templates/nova/instances_and_volumes/instances/_detail_overview.html:22 -#: dashboards/nova/templates/nova/instances_and_volumes/instances/_launch_details_help.html:14 -#: usage/tables.py:21 +#: dashboards/nova/instances/templates/instances/_detail_overview.html:24 +#: dashboards/nova/instances/templates/instances/_launch_details_help.html:14 +#: usage/tables.py:22 msgid "RAM" msgstr "Mémoire" -#: dashboards/nova/templates/nova/instances_and_volumes/instances/_detail_overview.html:24 -#: dashboards/nova/templates/nova/instances_and_volumes/instances/_launch_details_help.html:10 -#: dashboards/nova/templates/nova/instances_and_volumes/instances/_launch_details_help.html:28 +#: dashboards/nova/instances/templates/instances/_detail_overview.html:26 +#: dashboards/nova/instances/templates/instances/_launch_details_help.html:10 #: dashboards/syspanel/flavors/forms.py:38 #: dashboards/syspanel/flavors/tables.py:30 -#: dashboards/syspanel/projects/forms.py:114 usage/tables.py:18 +#: dashboards/syspanel/projects/forms.py:114 usage/tables.py:19 msgid "VCPUs" msgstr "VCPUs" -#: dashboards/nova/templates/nova/instances_and_volumes/instances/_detail_overview.html:25 +#: dashboards/nova/instances/templates/instances/_detail_overview.html:27 msgid "VCPU" msgstr "VCPU" -#: dashboards/nova/templates/nova/instances_and_volumes/instances/_detail_overview.html:26 -#: dashboards/nova/templates/nova/instances_and_volumes/instances/_launch_details_help.html:35 -#: usage/tables.py:19 +#: dashboards/nova/instances/templates/instances/_detail_overview.html:28 +#: usage/tables.py:20 msgid "Disk" msgstr "Disque" -#: dashboards/nova/templates/nova/instances_and_volumes/instances/_detail_overview.html:27 -#: dashboards/nova/templates/nova/instances_and_volumes/instances/_launch_details_help.html:11 -#: dashboards/nova/templates/nova/instances_and_volumes/instances/_launch_details_help.html:12 -#: dashboards/nova/templates/nova/instances_and_volumes/instances/_launch_details_help.html:13 -#: dashboards/nova/templates/nova/instances_and_volumes/instances/_launch_details_help.html:35 -#: dashboards/nova/templates/nova/instances_and_volumes/volumes/_detail_overview.html:27 +#: dashboards/nova/instances/templates/instances/_detail_overview.html:29 +#: dashboards/nova/instances/templates/instances/_launch_details_help.html:11 +#: dashboards/nova/instances/templates/instances/_launch_details_help.html:12 +#: dashboards/nova/instances/templates/instances/_launch_details_help.html:13 +#: dashboards/nova/volumes/templates/volumes/_detail_overview.html:27 msgid "GB" msgstr "Go" -#: dashboards/nova/templates/nova/instances_and_volumes/instances/_detail_overview.html:32 +#: dashboards/nova/instances/templates/instances/_detail_overview.html:34 msgid "IP Addresses" msgstr "Adresses IP" -#: dashboards/nova/templates/nova/instances_and_volumes/instances/_detail_overview.html:57 +#: dashboards/nova/instances/templates/instances/_detail_overview.html:59 msgid "No rules defined." msgstr "Pas de règles définies." -#: dashboards/nova/templates/nova/instances_and_volumes/instances/_detail_overview.html:66 +#: dashboards/nova/instances/templates/instances/_detail_overview.html:68 msgid "Meta" msgstr "Meta" -#: dashboards/nova/templates/nova/instances_and_volumes/instances/_detail_overview.html:69 +#: dashboards/nova/instances/templates/instances/_detail_overview.html:71 msgid "Key Name" msgstr "Nom de clé" -#: dashboards/nova/templates/nova/instances_and_volumes/instances/_detail_overview.html:93 +#: dashboards/nova/instances/templates/instances/_detail_overview.html:84 +#, fuzzy +msgid "Volumes Attached" +msgstr "Pas de volume attaché." + +#: dashboards/nova/instances/templates/instances/_detail_overview.html:88 +#: dashboards/nova/volumes/tables.py:156 +#: dashboards/nova/volumes/templates/volumes/_detail_overview.html:38 +#: dashboards/nova/volumes/templates/volumes/_detail_overview.html:45 +msgid "Attached To" +msgstr "Attaché à" + +#: dashboards/nova/instances/templates/instances/_detail_overview.html:90 +#: dashboards/nova/volumes/templates/volumes/_detail_overview.html:42 +msgid "on" +msgstr "sur" + +#: dashboards/nova/instances/templates/instances/_detail_overview.html:94 msgid "No volumes attached." msgstr "Pas de volume attaché." -#: dashboards/nova/templates/nova/instances_and_volumes/instances/_detail_vnc.html:3 +#: dashboards/nova/instances/templates/instances/_detail_vnc.html:3 msgid "Instance VNC Console" msgstr "Console VNC de l'instance" -#: dashboards/nova/templates/nova/instances_and_volumes/instances/_detail_vnc.html:5 +#: dashboards/nova/instances/templates/instances/_detail_vnc.html:5 msgid "" "If VNC console is not responding to keyboard input: click the grey status " "bar below." @@ -1514,37 +1652,37 @@ msgstr "" "Si la console VNC ne répond pas au clavier : cliquez sur la barre grise ci-" "dessous." -#: dashboards/nova/templates/nova/instances_and_volumes/instances/_detail_vnc.html:5 +#: dashboards/nova/instances/templates/instances/_detail_vnc.html:5 msgid "Click here to show only VNC" msgstr "" -#: dashboards/nova/templates/nova/instances_and_volumes/instances/_detail_vnc.html:8 +#: dashboards/nova/instances/templates/instances/_detail_vnc.html:8 msgid "VNC console is currently unavailabe. Please try again later." msgstr "" "La console VNC n'est actuellement pas disponible. Merci de réessayez plus " "tard." -#: dashboards/nova/templates/nova/instances_and_volumes/instances/_detail_vnc.html:9 +#: dashboards/nova/instances/templates/instances/_detail_vnc.html:9 msgid "Reload" msgstr "Recharger" -#: dashboards/nova/templates/nova/instances_and_volumes/instances/_launch_customize_help.html:2 +#: dashboards/nova/instances/templates/instances/_launch_customize_help.html:2 msgid "" "You can customize your instance after it's launched using the options " "available here." msgstr "" -#: dashboards/nova/templates/nova/instances_and_volumes/instances/_launch_customize_help.html:3 +#: dashboards/nova/instances/templates/instances/_launch_customize_help.html:3 msgid "" "The \"Customization Script\" field is analogous to \"User Data\" in other " "systems." msgstr "" -#: dashboards/nova/templates/nova/instances_and_volumes/instances/_launch_details_help.html:3 +#: dashboards/nova/instances/templates/instances/_launch_details_help.html:3 msgid "Specify the details for launching an instance." msgstr "" -#: dashboards/nova/templates/nova/instances_and_volumes/instances/_launch_details_help.html:4 +#: dashboards/nova/instances/templates/instances/_launch_details_help.html:4 #, fuzzy msgid "" "The chart below shows the resources used by this project in relation to the " @@ -1554,156 +1692,341 @@ msgstr "" "dessous montre les ressources utilisées par ce projet par rapport aux quotas " "du projet." -#: dashboards/nova/templates/nova/instances_and_volumes/instances/_launch_details_help.html:6 +#: dashboards/nova/instances/templates/instances/_launch_details_help.html:6 #, fuzzy msgid "Flavor Details" msgstr "ID de type d'instance" -#: dashboards/nova/templates/nova/instances_and_volumes/instances/_launch_details_help.html:11 +#: dashboards/nova/instances/templates/instances/_launch_details_help.html:11 #: dashboards/syspanel/flavors/tables.py:32 msgid "Root Disk" msgstr "Disque racine" -#: dashboards/nova/templates/nova/instances_and_volumes/instances/_launch_details_help.html:12 +#: dashboards/nova/instances/templates/instances/_launch_details_help.html:12 #: dashboards/syspanel/flavors/tables.py:34 msgid "Ephemeral Disk" msgstr "Disque éphémère" -#: dashboards/nova/templates/nova/instances_and_volumes/instances/_launch_details_help.html:13 +#: dashboards/nova/instances/templates/instances/_launch_details_help.html:13 #, fuzzy msgid "Total Disk" msgstr "Disque racine" -#: dashboards/nova/templates/nova/instances_and_volumes/instances/_launch_details_help.html:14 -#: dashboards/nova/templates/nova/instances_and_volumes/instances/_launch_details_help.html:42 +#: dashboards/nova/instances/templates/instances/_launch_details_help.html:14 +#: dashboards/nova/instances/templates/instances/_launch_details_help.html:37 msgid "MB" msgstr "Mo" -#: dashboards/nova/templates/nova/instances_and_volumes/instances/_launch_details_help.html:42 -#: dashboards/syspanel/flavors/tables.py:31 -msgid "Memory" +#: dashboards/nova/instances/templates/instances/_launch_details_help.html:21 +#, fuzzy +msgid "Number of Instances" +msgstr "Nombre d'instances à lancer." + +#: dashboards/nova/instances/templates/instances/_launch_details_help.html:29 +msgid "Number of VCPUs" +msgstr "" + +#: dashboards/nova/instances/templates/instances/_launch_details_help.html:37 +#, fuzzy +msgid "Total Memory" msgstr "Mémoire" -#: dashboards/nova/templates/nova/instances_and_volumes/instances/_launch_volumes_help.html:3 +#: dashboards/nova/instances/templates/instances/_launch_volumes_help.html:3 msgid "" "An instance can be launched with varying types of attached storage. You may " "select from those options here." msgstr "" -#: dashboards/nova/templates/nova/instances_and_volumes/instances/_update.html:17 +#: dashboards/nova/instances/templates/instances/_update.html:17 #, fuzzy msgid "You may update the editable properties of your instance here." msgstr "Mise à jour du nom de votre instance" -#: dashboards/nova/templates/nova/instances_and_volumes/instances/_update.html:22 +#: dashboards/nova/instances/templates/instances/_update.html:22 msgid "Save Changes" msgstr "" -#: dashboards/nova/templates/nova/instances_and_volumes/instances/detail.html:3 +#: dashboards/nova/instances/templates/instances/detail.html:3 msgid "Instance Detail" msgstr "Détail de l'instance" -#: dashboards/nova/templates/nova/instances_and_volumes/instances/update.html:3 -#: dashboards/nova/templates/nova/instances_and_volumes/instances/update.html:6 +#: dashboards/nova/instances/templates/instances/update.html:3 +#: dashboards/nova/instances/templates/instances/update.html:6 msgid "Update Instance" msgstr "Mettre à jour l'instance" -#: dashboards/nova/templates/nova/instances_and_volumes/volumes/_attach.html:9 -#: dashboards/nova/templates/nova/instances_and_volumes/volumes/attach.html:6 +#: dashboards/nova/templates/nova/_warning.html:6 +msgid "You currently have the power to damage your OpenStack cloud..." +msgstr "" + +#: dashboards/nova/templates/nova/_warning.html:9 +msgid "" +"Due to inconsistencies in the way Nova interacts with Keystone, a user with " +"an admin role has access to all resources in the system (volumes, snapshots, " +"keypairs, etc.), even in the Project dashboard where they should only see a " +"properly-scoped subset of those resources." +msgstr "" + +#: dashboards/nova/templates/nova/_warning.html:10 +msgid "" +"This means that Nova allows an admin user in the Project Dashboard to " +"successfully take actions which otherwise should not be permitted, causing " +"irresolvable conflicts in Nova." +msgstr "" + +#: dashboards/nova/templates/nova/_warning.html:11 +msgid "A list of the known problems are as follows:" +msgstr "" + +#: dashboards/nova/templates/nova/_warning.html:13 +msgid "" +"Attaching a volume owned by project A to an instance in project B can " +"completely hang Nova." +msgstr "" + +#: dashboards/nova/templates/nova/_warning.html:14 +msgid "" +"Assigning keypairs owned by project A to an instance in project B can result " +"in failed instances, problems in retrieving instance details for non-admin " +"users, and/or security holes should the instance succeed in spawning." +msgstr "" + +#: dashboards/nova/templates/nova/_warning.html:15 +msgid "" +"Attempting to launch an instance in project A from a snapshot or volume " +"snapshot owned by project B can hang Nova." +msgstr "" + +#: dashboards/nova/templates/nova/_warning.html:16 +msgid "" +"Attempting to boot from a volume owned by project A in project B can hang " +"Nova." +msgstr "" + +#: dashboards/nova/templates/nova/_warning.html:18 +msgid "" +"This is only a list of the reported inconsistencies. There may be others." +msgstr "" + +#: dashboards/nova/templates/nova/_warning.html:19 +msgid "" +"The recommended practice until this problem is resolved is to keep your " +"admin users and regular users separate. Create an \"admin\" project that " +"admin users have access to, and do not grant your admin users the admin role " +"on any other projects." +msgstr "" + +#: dashboards/nova/templates/nova/_warning.html:20 +msgid "" +"To follow the status of this bug, take a look at the following items on " +"launchpad:" +msgstr "" + +#: dashboards/nova/templates/nova/_warning.html:27 +msgid "" +"Thank you for reading this warning and operating your cloud responsibly." +msgstr "" + +#: dashboards/nova/templates/nova/_warning.html:30 +msgid "Close" +msgstr "" + +#: dashboards/nova/templates/nova/base.html:9 +msgid "Caution" +msgstr "" + +#: dashboards/nova/templates/nova/base.html:10 +msgid "You are acting as an admin user in the project dashboard." +msgstr "" + +#: dashboards/nova/templates/nova/base.html:12 +msgid "Learn More" +msgstr "" + +#: dashboards/nova/volumes/forms.py:40 +#, python-format +msgid "" +"A volume of %(req)iGB cannot be created as you only have %(avail)iGB of your " +"quota available." +msgstr "" + +#: dashboards/nova/volumes/forms.py:47 +#, fuzzy +msgid "You are already using all of your available volumes." +msgstr "Vous n'êtes pas autorisé pour tous les projets disponibles." + +#: dashboards/nova/volumes/forms.py:60 +#, fuzzy +msgid "Unable to create volume." +msgstr "Impossible de créer un utilisateur." + +#: dashboards/nova/volumes/forms.py:67 +msgid "Select an instance to attach to." +msgstr "Sélectionnez une instance à attacher." + +#: dashboards/nova/volumes/forms.py:100 +msgid "Unknown instance (None)" +msgstr "" + +#: dashboards/nova/volumes/forms.py:111 +#, fuzzy, python-format +msgid "Attaching volume %(vol)s to instance %(inst)s on %(dev)s." +msgstr "Attache le volume %(vol)s à l'instance %(inst)s à partir de %(dev)s" + +#: dashboards/nova/volumes/forms.py:118 +#, fuzzy +msgid "Unable to attach volume." +msgstr "Echec de parcours des volumes : %s" + +#: dashboards/nova/volumes/forms.py:142 +#, python-format +msgid "Creating volume snapshot \"%s\"" +msgstr "Création de l'instantané de volume \"%s\"" + +#: dashboards/nova/volumes/forms.py:146 +#, fuzzy +msgid "Unable to create volume snapshot." +msgstr "Impossible de récupérer les instantanés de volume." + +#: dashboards/nova/volumes/panel.py:24 dashboards/nova/volumes/tables.py:37 +#: dashboards/nova/volumes/tables.py:160 dashboards/nova/volumes/tables.py:172 +#: dashboards/nova/volumes/templates/volumes/index.html:3 +#: dashboards/nova/volumes/templates/volumes/index.html:6 +#: dashboards/syspanel/projects/forms.py:116 +#: dashboards/syspanel/volumes/panel.py:9 +#: dashboards/syspanel/volumes/tables.py:15 +#: dashboards/syspanel/volumes/templates/volumes/index.html:3 +#: dashboards/syspanel/volumes/templates/volumes/index.html:6 +msgid "Volumes" +msgstr "Volumes" + +#: dashboards/nova/volumes/tables.py:50 +#: dashboards/nova/volumes/templates/volumes/_create.html:8 +#: dashboards/nova/volumes/templates/volumes/_create.html:55 +msgid "Create Volume" +msgstr "Créer un volume" + +#: dashboards/nova/volumes/tables.py:57 +msgid "Edit Attachments" +msgstr "Modifier les attachements" + +#: dashboards/nova/volumes/tables.py:84 +#, python-format +msgid "%sGB" +msgstr "" + +#: dashboards/nova/volumes/tables.py:97 +#, fuzzy +msgid "Unable to retrieve attachment information." +msgstr "Impossible de récupérer les informations d'utilisation." + +#: dashboards/nova/volumes/tables.py:114 +#, fuzzy, python-format +msgid "Attached to %(instance)s on %(dev)s" +msgstr "Attache le volume %(vol)s à l'instance %(inst)s à partir de %(dev)s" + +#: dashboards/nova/volumes/tables.py:169 +msgid "Detach" +msgstr "Détacher" + +#: dashboards/nova/volumes/tables.py:170 +#, fuzzy +msgid "Detaching" +msgstr "Détacher" + +#: dashboards/nova/volumes/tables.py:205 +#, python-format +msgid "%(dev)s on instance %(instance_name)s" +msgstr "" + +#: dashboards/nova/volumes/tabs.py:41 +msgid "Unable to retrieve volume details." +msgstr "Impossible de récupérer le détail du volume." + +#: dashboards/nova/volumes/views.py:50 +#, fuzzy +msgid "Unable to retrieve volume list." +msgstr "Impossible de récupérer la liste des utilisateurs." + +#: dashboards/nova/volumes/views.py:56 +#, fuzzy +msgid "Unable to retrieve volume/instance attachment information" +msgstr "Impossible de récupérer les informations des tenants d'instance." + +#: dashboards/nova/volumes/views.py:114 dashboards/nova/volumes/views.py:124 +msgid "Unable to retrieve volume information." +msgstr "Impossible de récupérer les informations du volume." + +#: dashboards/nova/volumes/templates/volumes/_attach.html:9 +#: dashboards/nova/volumes/templates/volumes/attach.html:6 msgid "Manage Volume Attachments" msgstr "Gérer les attachements des volumes" -#: dashboards/nova/templates/nova/instances_and_volumes/volumes/_attach.html:12 +#: dashboards/nova/volumes/templates/volumes/_attach.html:12 msgid "Attach To Instance" msgstr "Attacher à une instance" -#: dashboards/nova/templates/nova/instances_and_volumes/volumes/_attach.html:19 +#: dashboards/nova/volumes/templates/volumes/_attach.html:19 msgid "Attach Volume" msgstr "Attacher un volume" -#: dashboards/nova/templates/nova/instances_and_volumes/volumes/_create.html:18 -#: dashboards/nova/templates/nova/instances_and_volumes/volumes/_create_snapshot.html:18 +#: dashboards/nova/volumes/templates/volumes/_create.html:20 +#: dashboards/nova/volumes/templates/volumes/_create_snapshot.html:18 msgid "Volumes are block devices that can be attached to instances." msgstr "" "Les volumes sont des blocks devices qui peuvent être attachés aux instances." -#: dashboards/nova/templates/nova/instances_and_volumes/volumes/_create_snapshot.html:8 -#: dashboards/nova/templates/nova/instances_and_volumes/volumes/_create_snapshot.html:23 -#: dashboards/nova/templates/nova/instances_and_volumes/volumes/create_snapshot.html:3 +#: dashboards/nova/volumes/templates/volumes/_create.html:22 +#, fuzzy +msgid "Volume Quotas" +msgstr "Détails du volume" + +#: dashboards/nova/volumes/templates/volumes/_create.html:25 +#, fuzzy +msgid "Total Gigabytes" +msgstr "Gigaoctets" + +#: dashboards/nova/volumes/templates/volumes/_create.html:34 +#, fuzzy +msgid "Number of Volumes" +msgstr "Volume ou Volume d'instantané" + +#: dashboards/nova/volumes/templates/volumes/_create_snapshot.html:8 +#: dashboards/nova/volumes/templates/volumes/_create_snapshot.html:23 +#: dashboards/nova/volumes/templates/volumes/create_snapshot.html:3 msgid "Create Volume Snapshot" msgstr "Créer un instantané de Volume" -#: dashboards/nova/templates/nova/instances_and_volumes/volumes/_detail_overview.html:3 +#: dashboards/nova/volumes/templates/volumes/_detail_overview.html:3 msgid "Volume Overview" msgstr "Vue d'ensemble du volume" -#: dashboards/nova/templates/nova/instances_and_volumes/volumes/_detail_overview.html:38 -msgid "Attached To" -msgstr "Attaché à" +#: dashboards/nova/volumes/templates/volumes/_detail_overview.html:34 +msgid "Attachments" +msgstr "Attachements" -#: dashboards/nova/templates/nova/instances_and_volumes/volumes/_detail_overview.html:42 -msgid "on" -msgstr "sur" - -#: dashboards/nova/templates/nova/instances_and_volumes/volumes/_detail_overview.html:47 +#: dashboards/nova/volumes/templates/volumes/_detail_overview.html:46 msgid "Not attached" msgstr "Pas attaché" -#: dashboards/nova/templates/nova/instances_and_volumes/volumes/create.html:6 +#: dashboards/nova/volumes/templates/volumes/create.html:6 msgid "Create a Volume" msgstr "Créer un volume" -#: dashboards/nova/templates/nova/instances_and_volumes/volumes/create_snapshot.html:6 +#: dashboards/nova/volumes/templates/volumes/create_snapshot.html:6 msgid "Create a Volume Snapshot" msgstr "Créer un instantané de volume" -#: dashboards/nova/templates/nova/instances_and_volumes/volumes/detail.html:3 +#: dashboards/nova/volumes/templates/volumes/detail.html:3 +#: dashboards/syspanel/volumes/templates/volumes/detail.html:3 msgid "Volume Details" msgstr "Détails du volume" -#: dashboards/nova/templates/nova/instances_and_volumes/volumes/detail.html:6 +#: dashboards/nova/volumes/templates/volumes/detail.html:6 +#: dashboards/syspanel/volumes/templates/volumes/detail.html:6 msgid "Volume Detail" msgstr "Détail du volume" -#: dashboards/nova/templates/nova/objects/_copy.html:7 -#: dashboards/nova/templates/nova/objects/_copy.html:22 -#: dashboards/nova/templates/nova/objects/copy.html:3 -#: dashboards/nova/templates/nova/objects/copy.html:6 -msgid "Copy Object" -msgstr "Copier l'objet" - -#: dashboards/nova/templates/nova/objects/_copy.html:17 -msgid "" -"You may make a new copy of an existing object to store in this or another " -"container." -msgstr "" -"Vous pouvez utiliser une nouvelle copie d'un objet existant ou un conteneur " -"pour le stockage." - -#: dashboards/nova/templates/nova/objects/_upload.html:8 -msgid "Upload Object To Container" -msgstr "Uploader l'objet dans un conteneur" - -#: dashboards/nova/templates/nova/objects/_upload.html:18 -msgid "" -"An object is the basic storage entity and any optional metadata that " -"represents the files you store in the OpenStack Object Storage system. When " -"you upload data to OpenStack Object Storage, the data is stored as-is (no " -"compression or encryption) and consists of a location (container), the " -"object's name, and any metadata consisting of key/value pairs." -msgstr "" -"Un objet est l'entité de stockage de base. Dans le système de stockage " -"d'objets OpenStack, un objet est associé aux métadonnées optionnelles qui " -"permettent de représenter la notion de fichiers. Quand vous uploadez des " -"données dans le système de stockage d'objets d'OpenStack, les données sont " -"stockées en l'état (pas de compression ou de chiffrement) et se compose d'un " -"emplacement (conteneur), le nom de l'objet, et toutes les métadonnées " -"constituées de paires clé/valeur." - -#: dashboards/nova/templates/nova/objects/upload.html:6 -msgid "Upload Objects" -msgstr "Upload d'objets" - #: dashboards/settings/dashboard.py:24 msgid "Settings" msgstr "Réglages" @@ -1716,11 +2039,11 @@ msgstr "Sélectionnez un projet" msgid "Unable to retrieve tenant list." msgstr "Impossible de récupérer la liste des tenants." -#: dashboards/settings/ec2/forms.py:95 +#: dashboards/settings/ec2/forms.py:93 msgid "Unable to fetch EC2 credentials." msgstr "Impossible de récupérer les informations d'identification d'EC2." -#: dashboards/settings/ec2/forms.py:108 +#: dashboards/settings/ec2/forms.py:106 #, python-format msgid "Error writing zipfile: %(exc)s" msgstr "Erreur d'écriture du fichier zip : %(exc)s" @@ -1729,23 +2052,14 @@ msgstr "Erreur d'écriture du fichier zip : %(exc)s" msgid "EC2 Credentials" msgstr "Identification EC2" -#: dashboards/settings/project/forms.py:76 -#, python-format -msgid "Error Downloading RC File: %s" -msgstr "Erreur de téléchargement du fichier RC : %s" - -#: dashboards/settings/project/panel.py:24 -msgid "OpenStack Credentials" -msgstr "Identification OpenStack" - -#: dashboards/settings/templates/settings/ec2/download_form.html:8 -#: dashboards/settings/templates/settings/ec2/download_form.html:23 -#: dashboards/settings/templates/settings/ec2/index.html:3 -#: dashboards/settings/templates/settings/ec2/index.html:6 +#: dashboards/settings/ec2/templates/ec2/download_form.html:8 +#: dashboards/settings/ec2/templates/ec2/download_form.html:23 +#: dashboards/settings/ec2/templates/ec2/index.html:3 +#: dashboards/settings/ec2/templates/ec2/index.html:6 msgid "Download EC2 Credentials" msgstr "Télécharger les informations d'identification d'EC2" -#: dashboards/settings/templates/settings/ec2/download_form.html:18 +#: dashboards/settings/ec2/templates/ec2/download_form.html:18 msgid "" "Clicking \"Download EC2 Credentials\" will download a zip file which " "includes an rc file with your access/secret keys, as well as your x509 " @@ -1755,12 +2069,37 @@ msgstr "" "télécharger un fichier zip qui contient un fichier RC avec vos informations " "d'accès/clés secrètes, ainsi que votre clé privée et le certificat X509." -#: dashboards/settings/templates/settings/project/_openrc.html:8 -#: dashboards/settings/templates/settings/project/settings.html:6 +#: dashboards/settings/project/forms.py:76 +#, python-format +msgid "Error Downloading RC File: %s" +msgstr "Erreur de téléchargement du fichier RC : %s" + +#: dashboards/settings/project/panel.py:24 +#: dashboards/settings/project/templates/project/_openrc.html:8 +#: dashboards/settings/project/templates/project/settings.html:3 +#: dashboards/settings/project/templates/project/settings.html:6 +msgid "OpenStack API" +msgstr "" + +#: dashboards/settings/project/tables.py:27 +#, fuzzy +msgid "Service Name" +msgstr "Nom de périphérique" + +#: dashboards/settings/project/tables.py:29 +#, fuzzy +msgid "Service Endpoint" +msgstr "Service" + +#: dashboards/settings/project/tables.py:33 +msgid "API Endpoints" +msgstr "" + +#: dashboards/settings/project/templates/project/_openrc.html:15 msgid "Download OpenStack RC File" msgstr "Télécharger le fichier RC d'OpenStack" -#: dashboards/settings/templates/settings/project/_openrc.html:18 +#: dashboards/settings/project/templates/project/_openrc.html:25 msgid "" "Download the RC file for the selected project, then type \"source openrc\" " "in the terminal to configure your environment to communicate with OpenStack." @@ -1769,36 +2108,33 @@ msgstr "" "openrc \" dans la console pour configurer votre environnement à communiquer " "avec OpenStack." -#: dashboards/settings/templates/settings/project/_openrc.html:23 +#: dashboards/settings/project/templates/project/_openrc.html:30 msgid "Download RC File" msgstr "Téléchargez le fichier RC" -#: dashboards/settings/templates/settings/user/_language.html:8 -#: dashboards/settings/templates/settings/user/_language.html:36 -msgid "Select Language" -msgstr "Sélectionnez la langue" +#: dashboards/settings/user/forms.py:57 +#, fuzzy +msgid "Settings saved." +msgstr "Réglages" -#: dashboards/settings/templates/settings/user/_language.html:12 -msgid "Dashboard User Interface Language" -msgstr "Langue du tableau de bord utilisateur" +#: dashboards/settings/user/panel.py:24 +#: dashboards/settings/user/templates/user/_settings.html:8 +#: dashboards/settings/user/templates/user/settings.html:3 +#: dashboards/settings/user/templates/user/settings.html:6 +msgid "User Settings" +msgstr "Paramètres utilisateur" -#: dashboards/settings/templates/settings/user/_language.html:14 -msgid "Language Settings" -msgstr "Réglages de langue" - -#: dashboards/settings/templates/settings/user/_language.html:31 -msgid "From here you can modify different settings for your dashboard." +#: dashboards/settings/user/templates/user/_settings.html:18 +#, fuzzy +msgid "From here you can modify dashboard settings for your user." msgstr "" "A partir de là, vous pouvez modifier différents paramètres de votre tableau " "de bord." -#: dashboards/settings/templates/settings/user/settings.html:6 -msgid "Dashboard Settings" -msgstr "Paramètres du tableau de bord" - -#: dashboards/settings/user/panel.py:24 -msgid "User Settings" -msgstr "Paramètres utilisateur" +#: dashboards/settings/user/templates/user/_settings.html:23 +#: workflows/base.py:510 +msgid "Save" +msgstr "" #: dashboards/syspanel/dashboard.py:24 msgid "System Panel" @@ -1832,14 +2168,14 @@ msgstr "%s a été ajouté avec succès aux types d'instance." #: dashboards/syspanel/flavors/panel.py:28 #: dashboards/syspanel/flavors/tables.py:14 #: dashboards/syspanel/flavors/tables.py:38 -#: dashboards/syspanel/templates/syspanel/flavors/index.html:8 +#: dashboards/syspanel/flavors/templates/flavors/index.html:8 msgid "Flavors" msgstr "Types d'instance" #: dashboards/syspanel/flavors/tables.py:22 -#: dashboards/syspanel/templates/syspanel/flavors/_create.html:8 -#: dashboards/syspanel/templates/syspanel/flavors/_create.html:23 -#: dashboards/syspanel/templates/syspanel/flavors/create.html:6 +#: dashboards/syspanel/flavors/templates/flavors/_create.html:8 +#: dashboards/syspanel/flavors/templates/flavors/_create.html:23 +#: dashboards/syspanel/flavors/templates/flavors/create.html:6 msgid "Create Flavor" msgstr "Créer un type d'instance" @@ -1847,6 +2183,10 @@ msgstr "Créer un type d'instance" msgid "Flavor Name" msgstr "Nom de type d'instance" +#: dashboards/syspanel/flavors/tables.py:31 +msgid "Memory" +msgstr "Mémoire" + #: dashboards/syspanel/flavors/views.py:48 msgid "Unauthorized." msgstr "Non autorisé." @@ -1856,13 +2196,19 @@ msgstr "Non autorisé." msgid "Unable to get flavor list: %s" msgstr "Impossible de récupérer la liste des types d'instance : %s" +#: dashboards/syspanel/flavors/templates/flavors/_create.html:18 +msgid "From here you can define the sizing of a new flavor." +msgstr "" +"D'ici vous pouvez définir la configuration d'un nouveau type d'instance." + #: dashboards/syspanel/images/views.py:52 msgid "Unable to retrieve image list." msgstr "Impossible de récupérer la liste des images." -#: dashboards/syspanel/instances/tables.py:62 -msgid "Tenant" -msgstr "Tenant" +#: dashboards/syspanel/instances/tables.py:62 usage/tables.py:29 +#, fuzzy +msgid "Project Name" +msgstr "Utilisation du projet" #: dashboards/syspanel/instances/tables.py:69 #: dashboards/syspanel/services/tables.py:40 @@ -1873,21 +2219,36 @@ msgstr "Hôte" msgid "Unable to retrieve instance tenant information." msgstr "Impossible de récupérer les informations des tenants d'instance." +#: dashboards/syspanel/instances/templates/instances/index.html:6 +msgid "All Instances" +msgstr "Toutes les instances" + +#: dashboards/syspanel/overview/templates/overview/usage.html:3 +msgid "Usage Overview" +msgstr "Vue d'ensemble de l'utilisation" + +#: dashboards/syspanel/overview/templates/overview/usage.html:12 +msgid "Monitoring" +msgstr "Monitoring" + #: dashboards/syspanel/projects/forms.py:38 +#: dashboards/syspanel/users/forms.py:75 msgid "Role" msgstr "Rôle" #: dashboards/syspanel/projects/forms.py:52 -msgid "Successfully added user to tenant." +#, fuzzy +msgid "Successfully added user to project." msgstr "Utilisateur ajouté avec succès au tenant." #: dashboards/syspanel/projects/forms.py:54 -msgid "Unable to add user to tenant." -msgstr "Impossible d'ajouter un utilisateur au tenant." +#, fuzzy +msgid "Unable to add user to project." +msgstr "Impossible d'ajouter un utilisateur au projet principal." #: dashboards/syspanel/projects/forms.py:64 #: dashboards/syspanel/projects/forms.py:89 -#: dashboards/syspanel/projects/tables.py:77 +#: dashboards/syspanel/projects/tables.py:78 #: dashboards/syspanel/services/tables.py:42 #: dashboards/syspanel/users/tables.py:38 #: dashboards/syspanel/users/tables.py:112 @@ -1900,8 +2261,9 @@ msgid "%s was successfully created." msgstr "%s a été créé avec succès." #: dashboards/syspanel/projects/forms.py:78 -msgid "Unable to create tenant." -msgstr "Impossible de créer le tenant" +#, fuzzy +msgid "Unable to create project." +msgstr "Impossible de récupérer le projet." #: dashboards/syspanel/projects/forms.py:100 #, python-format @@ -1909,7 +2271,8 @@ msgid "%s was successfully updated." msgstr "%s a été mis à jour avec succès." #: dashboards/syspanel/projects/forms.py:103 -msgid "Unable to update tenant." +#, fuzzy +msgid "Unable to update project." msgstr "Impossible de mettre à jour le tenant." #: dashboards/syspanel/projects/forms.py:108 @@ -1946,63 +2309,68 @@ msgid "Unable to update quotas." msgstr "Impossible de mettre à jour les quotas." #: dashboards/syspanel/projects/panel.py:28 -#: dashboards/syspanel/projects/tables.py:52 -#: dashboards/syspanel/projects/tables.py:81 -#: dashboards/syspanel/templates/syspanel/projects/index.html:8 +#: dashboards/syspanel/projects/tables.py:53 +#: dashboards/syspanel/projects/tables.py:82 +#: dashboards/syspanel/projects/templates/projects/index.html:8 msgid "Projects" msgstr "Projets" -#: dashboards/syspanel/projects/tables.py:17 +#: dashboards/syspanel/projects/tables.py:18 msgid "Modify Quotas" msgstr "Modifier les quotas" -#: dashboards/syspanel/projects/tables.py:24 +#: dashboards/syspanel/projects/tables.py:25 msgid "Modify Users" msgstr "Modifier les utilisateurs" -#: dashboards/syspanel/projects/tables.py:31 +#: dashboards/syspanel/projects/tables.py:32 msgid "View Usage" msgstr "Utilisation de la vue" -#: dashboards/syspanel/projects/tables.py:38 +#: dashboards/syspanel/projects/tables.py:39 msgid "Edit Project" msgstr "Modifier le projet" -#: dashboards/syspanel/projects/tables.py:45 +#: dashboards/syspanel/projects/tables.py:46 msgid "Create New Project" msgstr "Créer un nouveau projet" -#: dashboards/syspanel/projects/tables.py:73 -#: dashboards/syspanel/services/tables.py:37 -msgid "Id" -msgstr "Id" - -#: dashboards/syspanel/projects/tables.py:89 +#: dashboards/syspanel/projects/tables.py:90 msgid "Remove" msgstr "Supprimer" -#: dashboards/syspanel/projects/tables.py:90 +#: dashboards/syspanel/projects/tables.py:91 msgid "Removed" msgstr "Supprimé" -#: dashboards/syspanel/projects/tables.py:92 -#: dashboards/syspanel/templates/syspanel/users/index.html:8 +#: dashboards/syspanel/projects/tables.py:93 #: dashboards/syspanel/users/panel.py:28 #: dashboards/syspanel/users/tables.py:40 #: dashboards/syspanel/users/tables.py:74 #: dashboards/syspanel/users/tables.py:119 +#: dashboards/syspanel/users/templates/users/index.html:8 msgid "Users" msgstr "Utilisateurs" -#: dashboards/syspanel/projects/tables.py:103 +#: dashboards/syspanel/projects/tables.py:111 +#, fuzzy +msgid "Unable to retrieve role information." +msgstr "Impossible de récupérer les informations du volume." + +#: dashboards/syspanel/projects/tables.py:116 +#, fuzzy +msgid "Roles" +msgstr "Rôle" + +#: dashboards/syspanel/projects/tables.py:120 msgid "Users For Project" msgstr "Utilisateurs du projet" -#: dashboards/syspanel/projects/tables.py:110 +#: dashboards/syspanel/projects/tables.py:128 msgid "Add To Project" msgstr "Ajouter au projet" -#: dashboards/syspanel/projects/tables.py:122 +#: dashboards/syspanel/projects/tables.py:140 msgid "Add New Users" msgstr "Ajouter des nouveaux utilisateurs" @@ -2022,6 +2390,67 @@ msgstr "Impossible de récupérer les utilisateurs." msgid "Unable to retrieve roles." msgstr "Impossible de récupérer les rôles." +#: dashboards/syspanel/projects/templates/projects/_add_user.html:8 +#: dashboards/syspanel/projects/templates/projects/add_user.html:3 +#: dashboards/syspanel/projects/templates/projects/add_user.html:6 +msgid "Add User To Project" +msgstr "Ajouter un utilisateur au projet" + +#: dashboards/syspanel/projects/templates/projects/_add_user.html:18 +msgid "Select the user role for the project." +msgstr "Sélectionnez le rôle d'utilisateur pour le projet." + +#: dashboards/syspanel/projects/templates/projects/_add_user.html:23 +msgid "Add" +msgstr "Ajouter" + +#: dashboards/syspanel/projects/templates/projects/_create.html:8 +#: dashboards/syspanel/projects/templates/projects/_create.html:23 +#: dashboards/syspanel/projects/templates/projects/create.html:6 +msgid "Create Project" +msgstr "Créer un projet" + +#: dashboards/syspanel/projects/templates/projects/_create.html:18 +msgid "From here you can create a new project to organize users." +msgstr "" +"D'ici vous pouvez créer un nouveau projet pour organiser les utilisateurs." + +#: dashboards/syspanel/projects/templates/projects/_quotas.html:7 +#: dashboards/syspanel/projects/templates/projects/_quotas.html:22 +msgid "Update Quota" +msgstr "Mettre à jour les quotas" + +#: dashboards/syspanel/projects/templates/projects/_quotas.html:17 +#, python-format +msgid "" +"From here you can edit quotas (max limits) for the project %(tenant.name)s." +msgstr "" +"D'ici vous pouvez modifier les quotas (limite maximum) pour le projet " +"%(tenant.name)s." + +#: dashboards/syspanel/projects/templates/projects/_update.html:8 +#: dashboards/syspanel/projects/templates/projects/_update.html:23 +#: dashboards/syspanel/projects/templates/projects/quotas.html:6 +#: dashboards/syspanel/projects/templates/projects/update.html:6 +msgid "Update Project" +msgstr "Mettre à jour le projet" + +#: dashboards/syspanel/projects/templates/projects/_update.html:18 +msgid "From here you can edit a project." +msgstr "D'ici vous pouvez éditer un projet." + +#: dashboards/syspanel/projects/templates/projects/usage.html:3 +msgid "Project Usage Overview" +msgstr "Vue d'ensemble de l'utilisation du projet" + +#: dashboards/syspanel/projects/templates/projects/usage.html:7 +msgid "Project Usage" +msgstr "Utilisation du projet" + +#: dashboards/syspanel/projects/templates/projects/users.html:7 +msgid "Users for Project" +msgstr "Utilisateurs du projet" + #: dashboards/syspanel/quotas/panel.py:28 #: dashboards/syspanel/quotas/tables.py:36 msgid "Quotas" @@ -2039,198 +2468,105 @@ msgstr "Limite" msgid "Unable to get quota info." msgstr "Impossible de récupérer les informations de quota." +#: dashboards/syspanel/quotas/templates/quotas/index.html:8 +msgid "Default Quotas" +msgstr "Quotas par défaut" + #: dashboards/syspanel/services/panel.py:28 #: dashboards/syspanel/services/tables.py:47 -#: dashboards/syspanel/templates/syspanel/services/index.html:8 +#: dashboards/syspanel/services/templates/services/index.html:8 msgid "Services" msgstr "Services" +#: dashboards/syspanel/services/tables.py:37 +msgid "Id" +msgstr "Id" + #: dashboards/syspanel/services/tables.py:39 msgid "Service" msgstr "Service" -#: dashboards/syspanel/templates/syspanel/flavors/_create.html:18 -msgid "From here you can define the sizing of a new flavor." -msgstr "" -"D'ici vous pouvez définir la configuration d'un nouveau type d'instance." - -#: dashboards/syspanel/templates/syspanel/instances/index.html:6 -msgid "All Instances" -msgstr "Toutes les instances" - -#: dashboards/syspanel/templates/syspanel/overview/usage.html:3 -msgid "Usage Overview" -msgstr "Vue d'ensemble de l'utilisation" - -#: dashboards/syspanel/templates/syspanel/overview/usage.html:12 -msgid "Monitoring" -msgstr "Monitoring" - -#: dashboards/syspanel/templates/syspanel/projects/_add_user.html:8 -#: dashboards/syspanel/templates/syspanel/projects/add_user.html:3 -#: dashboards/syspanel/templates/syspanel/projects/add_user.html:6 -msgid "Add User To Project" -msgstr "Ajouter un utilisateur au projet" - -#: dashboards/syspanel/templates/syspanel/projects/_add_user.html:18 -msgid "Select the user role for the project." -msgstr "Sélectionnez le rôle d'utilisateur pour le projet." - -#: dashboards/syspanel/templates/syspanel/projects/_add_user.html:23 -msgid "Add" -msgstr "Ajouter" - -#: dashboards/syspanel/templates/syspanel/projects/_create.html:8 -#: dashboards/syspanel/templates/syspanel/projects/_create.html:23 -#: dashboards/syspanel/templates/syspanel/projects/create.html:6 -msgid "Create Project" -msgstr "Créer un projet" - -#: dashboards/syspanel/templates/syspanel/projects/_create.html:18 -msgid "From here you can create a new project to organize users." -msgstr "" -"D'ici vous pouvez créer un nouveau projet pour organiser les utilisateurs." - -#: dashboards/syspanel/templates/syspanel/projects/_quotas.html:7 -#: dashboards/syspanel/templates/syspanel/projects/_quotas.html:22 -msgid "Update Quota" -msgstr "Mettre à jour les quotas" - -#: dashboards/syspanel/templates/syspanel/projects/_quotas.html:17 -#, python-format -msgid "" -"From here you can edit quotas (max limits) for the project %(tenant.name)s." -msgstr "" -"D'ici vous pouvez modifier les quotas (limite maximum) pour le projet " -"%(tenant.name)s." - -#: dashboards/syspanel/templates/syspanel/projects/_update.html:8 -#: dashboards/syspanel/templates/syspanel/projects/_update.html:23 -#: dashboards/syspanel/templates/syspanel/projects/quotas.html:6 -#: dashboards/syspanel/templates/syspanel/projects/update.html:6 -msgid "Update Project" -msgstr "Mettre à jour le projet" - -#: dashboards/syspanel/templates/syspanel/projects/_update.html:18 -msgid "From here you can edit a project." -msgstr "D'ici vous pouvez éditer un projet." - -#: dashboards/syspanel/templates/syspanel/projects/usage.html:3 -msgid "Project Usage Overview" -msgstr "Vue d'ensemble de l'utilisation du projet" - -#: dashboards/syspanel/templates/syspanel/projects/usage.html:7 -msgid "Project Usage" -msgstr "Utilisation du projet" - -#: dashboards/syspanel/templates/syspanel/projects/users.html:7 -msgid "Users for Project" -msgstr "Utilisateurs du projet" - -#: dashboards/syspanel/templates/syspanel/quotas/index.html:8 -msgid "Default Quotas" -msgstr "Quotas par défaut" - -#: dashboards/syspanel/templates/syspanel/users/_create.html:7 -#: dashboards/syspanel/templates/syspanel/users/_create.html:22 -#: dashboards/syspanel/templates/syspanel/users/create.html:7 -#: dashboards/syspanel/users/tables.py:18 -msgid "Create User" -msgstr "Créer un utilisateur" - -#: dashboards/syspanel/templates/syspanel/users/_create.html:17 -msgid "From here you can create a new user and assign them to a project." -msgstr "" -"D'ici vous pouvez créer un nouvel utilisateur et l'assigner à un projet." - -#: dashboards/syspanel/templates/syspanel/users/_update.html:7 -#: dashboards/syspanel/templates/syspanel/users/_update.html:22 -#: dashboards/syspanel/templates/syspanel/users/update.html:7 -msgid "Update User" -msgstr "Mettre à jour l'utilisateur" - -#: dashboards/syspanel/templates/syspanel/users/_update.html:17 -#, fuzzy -msgid "" -"From here you can edit the user's details, including their default project." -msgstr "" -"D'ici vous pouvez modifier l'utilisateur en changeant son nom, email, mot de " -"passe et projet par défaut." - -#: dashboards/syspanel/users/forms.py:41 +#: dashboards/syspanel/users/forms.py:42 msgid "Select a project" msgstr "Sélectionnez un projet" -#: dashboards/syspanel/users/forms.py:57 +#: dashboards/syspanel/users/forms.py:58 msgid "Passwords do not match." msgstr "Les mots de passe ne correspondent pas." -#: dashboards/syspanel/users/forms.py:62 -#: dashboards/syspanel/users/forms.py:105 -#: dashboards/syspanel/users/tables.py:107 views/auth_forms.py:64 +#: dashboards/syspanel/users/forms.py:63 +#: dashboards/syspanel/users/forms.py:114 +#: dashboards/syspanel/users/tables.py:106 msgid "User Name" msgstr "Nom d'utilisateur" -#: dashboards/syspanel/users/forms.py:63 -#: dashboards/syspanel/users/forms.py:106 -#: dashboards/syspanel/users/tables.py:108 +#: dashboards/syspanel/users/forms.py:64 +#: dashboards/syspanel/users/forms.py:115 +#: dashboards/syspanel/users/tables.py:107 msgid "Email" msgstr "Email" -#: dashboards/syspanel/users/forms.py:65 -#: dashboards/syspanel/users/forms.py:107 views/auth_forms.py:65 +#: dashboards/syspanel/users/forms.py:66 +#: dashboards/syspanel/users/forms.py:116 msgid "Password" msgstr "Mot de passe" -#: dashboards/syspanel/users/forms.py:70 -#: dashboards/syspanel/users/forms.py:114 +#: dashboards/syspanel/users/forms.py:71 +#: dashboards/syspanel/users/forms.py:123 msgid "Confirm Password" msgstr "Confirmez le mot de passe" -#: dashboards/syspanel/users/forms.py:73 -#: dashboards/syspanel/users/forms.py:117 +#: dashboards/syspanel/users/forms.py:74 +#: dashboards/syspanel/users/forms.py:126 msgid "Primary Project" msgstr "Projet principal." -#: dashboards/syspanel/users/forms.py:85 +#: dashboards/syspanel/users/forms.py:96 #, python-format msgid "User \"%s\" was successfully created." msgstr "L'utilisateur \"%s\" a été créé avec succès." -#: dashboards/syspanel/users/forms.py:96 +#: dashboards/syspanel/users/forms.py:105 msgid "Unable to add user to primary project." msgstr "Impossible d'ajouter un utilisateur au projet principal." -#: dashboards/syspanel/users/forms.py:99 +#: dashboards/syspanel/users/forms.py:108 msgid "Unable to create user." msgstr "Impossible de créer un utilisateur." -#: dashboards/syspanel/users/forms.py:139 +#: dashboards/syspanel/users/forms.py:151 msgid "name" msgstr "nom" -#: dashboards/syspanel/users/forms.py:139 +#: dashboards/syspanel/users/forms.py:151 msgid "email" msgstr "email" -#: dashboards/syspanel/users/forms.py:148 +#: dashboards/syspanel/users/forms.py:160 msgid "primary project" msgstr "projet principal" -#: dashboards/syspanel/users/forms.py:160 +#: dashboards/syspanel/users/forms.py:172 msgid "password" msgstr "mot de passe" -#: dashboards/syspanel/users/forms.py:169 +#: dashboards/syspanel/users/forms.py:181 #, fuzzy msgid "User has been updated successfully." msgstr "Succès de création du conteneur." -#: dashboards/syspanel/users/forms.py:173 +#: dashboards/syspanel/users/forms.py:185 #, fuzzy, python-format msgid "Unable to update %(attributes)s for the user." msgstr "Impossible de mettre à jour %(attributes)s pour \"%(user)s\"." +#: dashboards/syspanel/users/tables.py:18 +#: dashboards/syspanel/users/templates/users/_create.html:7 +#: dashboards/syspanel/users/templates/users/_create.html:22 +#: dashboards/syspanel/users/templates/users/create.html:7 +msgid "Create User" +msgstr "Créer un utilisateur" + #: dashboards/syspanel/users/tables.py:37 msgid "Enable" msgstr "Activer" @@ -2249,14 +2585,43 @@ msgid "You cannot disable the user you are currently logged in as." msgstr "" "Vous ne pouvez pas désactiver l'utilisateur avec lequel vous êtes connecté." -#: dashboards/syspanel/users/views.py:47 +#: dashboards/syspanel/users/tables.py:111 +#, fuzzy +msgid "User ID" +msgstr "Données de l'utilisateur" + +#: dashboards/syspanel/users/views.py:46 msgid "Unable to retrieve user list." msgstr "Impossible de récupérer la liste des utilisateurs." -#: dashboards/syspanel/users/views.py:63 +#: dashboards/syspanel/users/views.py:67 msgid "Unable to update user." msgstr "Impossible de mettre à jour l'utilisateur." +#: dashboards/syspanel/users/views.py:93 +#, fuzzy +msgid "Unable to retrieve user roles." +msgstr "Impossible de récupérer la liste des utilisateurs." + +#: dashboards/syspanel/users/templates/users/_create.html:17 +msgid "From here you can create a new user and assign them to a project." +msgstr "" +"D'ici vous pouvez créer un nouvel utilisateur et l'assigner à un projet." + +#: dashboards/syspanel/users/templates/users/_update.html:7 +#: dashboards/syspanel/users/templates/users/_update.html:22 +#: dashboards/syspanel/users/templates/users/update.html:7 +msgid "Update User" +msgstr "Mettre à jour l'utilisateur" + +#: dashboards/syspanel/users/templates/users/_update.html:17 +#, fuzzy +msgid "" +"From here you can edit the user's details, including their default project." +msgstr "" +"D'ici vous pouvez modifier l'utilisateur en changeant son nom, email, mot de " +"passe et projet par défaut." + #: tables/actions.py:299 msgid "Filter" msgstr "Filtre" @@ -2284,25 +2649,25 @@ msgstr "Supprimer" msgid "Deleted" msgstr "Supprimé" -#: tables/base.py:231 +#: tables/base.py:257 #, python-format msgid "The attribute %(attr)s doesn't exist on %(obj)s." msgstr "L'attribut %(attr)s n'existe pas sur %(obj)s." -#: tables/base.py:679 +#: tables/base.py:743 msgid "Actions" msgstr "Actions" -#: tables/base.py:824 +#: tables/base.py:891 msgid "No items to display." msgstr "Aucun élément à afficher." -#: tables/base.py:841 +#: tables/base.py:908 #, python-format msgid "No match returned for the id \"%s\"." msgstr "Aucun résultat retourné pour l'id \"%s\"." -#: tables/base.py:948 +#: tables/base.py:1015 msgid "Please select a row before taking that action." msgstr "Merci de sélectionner une ligne avant de faire cette action." @@ -2322,25 +2687,27 @@ msgstr "Succès :" msgid "Error: " msgstr "Erreur :" -#: templates/horizon/auth/_login.html:4 -msgid "Log In" -msgstr "Connexion" +#: templates/horizon/client_side/_loading.html:9 +msgid "Loading…" +msgstr "" -#: templates/horizon/auth/_login.html:18 -msgid "Sign In" -msgstr "Inscription" +#: templates/horizon/common/_data_table.html:33 +#, fuzzy +msgid "Summary" +msgstr "Synthèse d'utilisation" -#: templates/horizon/auth/login.html:4 -msgid "Login" -msgstr "Identifiant" - -#: templates/horizon/common/_data_table.html:31 +#: templates/horizon/common/_data_table.html:42 #, python-format msgid "Displaying %(counter)s item" msgid_plural "Displaying %(counter)s items" msgstr[0] "Affichage de l'élément %(counter)s" msgstr[1] "Affichage des éléments %(counter)s" +#: templates/horizon/common/_sidebar.html:14 +#, fuzzy +msgid "Current Project" +msgstr "Créer un projet" + #: templates/horizon/common/_usage_summary.html:5 msgid "Select a month to query its usage" msgstr "Sélectionnez un mois pour détailler son utilisation" @@ -2365,11 +2732,11 @@ msgstr "Heures-VCPU de ce mois" msgid "This Month's GB-Hours" msgstr "Heures-Go de ce mois" -#: templatetags/horizon.py:121 +#: templatetags/horizon.py:108 msgid "No Limit" msgstr "Pas de limite" -#: templatetags/horizon.py:123 templatetags/horizon.py:125 +#: templatetags/horizon.py:110 templatetags/horizon.py:112 msgid "Available" msgstr "Disponible" @@ -2397,6 +2764,11 @@ msgstr "%s Ko" msgid "%s MB" msgstr "%s Mo" +#: templatetags/sizeformat.py:58 +#, python-format +msgid "%s GB" +msgstr "%s GB" + #: templatetags/sizeformat.py:61 #, python-format msgid "%s TB" @@ -2422,35 +2794,39 @@ msgstr "Panneau de configuration" msgid "Admin Panel" msgstr "Administration" -#: tests/table_tests.py:94 +#: tests/message_tests.py:30 +msgid "Giant ants are attacking San Francisco!" +msgstr "" + +#: tests/table_tests.py:104 msgid "Batch" msgstr "Lot" -#: tests/table_tests.py:95 +#: tests/table_tests.py:105 msgid "Batched" msgstr "En lots" -#: tests/table_tests.py:96 tests/table_tests.py:107 +#: tests/table_tests.py:106 tests/table_tests.py:117 msgid "Item" msgstr "Elément" -#: tests/table_tests.py:97 tests/table_tests.py:108 +#: tests/table_tests.py:107 tests/table_tests.py:118 msgid "Items" msgstr "Eléments" -#: tests/table_tests.py:105 +#: tests/table_tests.py:115 msgid "Down" msgstr "Bas" -#: tests/table_tests.py:105 +#: tests/table_tests.py:115 msgid "Up" msgstr "Haut" -#: tests/table_tests.py:106 +#: tests/table_tests.py:116 msgid "Downed" msgstr "Mis en bas" -#: tests/table_tests.py:106 +#: tests/table_tests.py:116 msgid "Upped" msgstr "Mis en haut" @@ -2478,7 +2854,7 @@ msgstr "Onglet avec mon tableau" msgid "Recoverable Error Tab" msgstr "Onglet avec erreur récupérable" -#: tests/testsettings.py:99 +#: tests/testsettings.py:111 msgid "Password must be between 8 and 18 characters." msgstr "Le mot de passe doit être entre 8 et 18 caractères." @@ -2533,33 +2909,33 @@ msgstr "" msgid "Puppies" msgstr "" -#: usage/base.py:94 +#: usage/base.py:97 msgid "Unable to retrieve usage information." msgstr "Impossible de récupérer les informations d'utilisation." -#: usage/base.py:97 +#: usage/base.py:100 msgid "You are viewing data for the future, which may or may not exist." msgstr "" "Vous visualisez des données avec une date dans le futur qui pourraient ne " "pas exister." -#: usage/tables.py:10 +#: usage/tables.py:11 msgid "Download CSV Summary" msgstr "Télécharger CSV" -#: usage/tables.py:23 +#: usage/tables.py:24 msgid "VCPU Hours" msgstr "Heures-VCPU" -#: usage/tables.py:30 +#: usage/tables.py:31 msgid "Disk GB Hours" msgstr "Heures-Go disque" -#: usage/tables.py:38 usage/tables.py:59 +#: usage/tables.py:39 usage/tables.py:67 msgid "Usage Summary" msgstr "Synthèse d'utilisation" -#: usage/tables.py:51 +#: usage/tables.py:59 msgid "Uptime" msgstr "Temps de fonctionnement" @@ -2580,106 +2956,16 @@ msgstr "" msgid "Password is not accepted" msgstr "Le mot de passe n'est pas accepté" -#: views/auth.py:92 -msgid "You are not authorized for that tenant." -msgstr "Vous n'êtes pas autorisé pour ce tenant." - -#: views/auth_forms.py:63 -msgid "Region" -msgstr "Région" - -#: views/auth_forms.py:107 -msgid "Unable to authenticate for that project." -msgstr "Impossible de s'authentifier pour ce projet." - -#: views/auth_forms.py:124 -msgid "Invalid user name or password." -msgstr "Nom d'utilisateur ou mot de passe invalide." - -#: views/auth_forms.py:131 -msgid "An error occurred authenticating. Please try again later." -msgstr "" -"Une erreur s'est produite à l'authentification. Merci de réessayer plus tard." - -#: views/auth_forms.py:150 -msgid "You are not authorized for any projects." -msgstr "Vous n'êtes pas autorisé pour tous les projets." - -#: views/auth_forms.py:174 -msgid "You are not authorized for any available projects." -msgstr "Vous n'êtes pas autorisé pour tous les projets disponibles." - -#: workflows/base.py:65 +#: workflows/base.py:69 msgid "Processing..." msgstr "" -#: workflows/base.py:478 -msgid "Save" -msgstr "" - -#: workflows/base.py:479 +#: workflows/base.py:511 #, fuzzy, python-format msgid "%s completed successfully." msgstr "Succès de création du conteneur." -#: workflows/base.py:480 +#: workflows/base.py:512 #, python-format msgid "%s did not complete." msgstr "" - -#~ msgid "Error associating Floating IP: %s" -#~ msgstr "Erreur d'association de l'adresse IP flottante : %s" - -#~ msgid "Error adding rule security group: %s" -#~ msgstr "Echec de l'ajout de la règle de groupe de sécurité : %s" - -#~ msgid "Unable to delete non-empty container: %s" -#~ msgstr "Impossible de supprimer un conteneur non vide : %s" - -#~ msgid "Successfully deleted containers: %s" -#~ msgstr "Succès de suppression des conteneurs : %s" - -#~ msgid "User Data" -#~ msgstr "Données de l'utilisateur" - -#~ msgid "Volume or Volume Snapshot" -#~ msgstr "Volume ou Volume d'instantané" - -#~ msgid "Volume to boot from." -#~ msgstr "Volume à utiliser pour le boot." - -#~ msgid "Cannot launch more than one instance if volume is specified." -#~ msgstr "Impossible de lancer plus d'une instance si un volume est spécifié." - -#~ msgid "Unable to retrieve image \"%s\"." -#~ msgstr "Impossible de récupérer l'image \"%s\"." - -#~ msgid "Launch Instances" -#~ msgstr "Lancement des instances" - -#~ msgid "Updated %(attributes)s for \"%(user)s\"." -#~ msgstr "%(attributes)s mis à jour pour \"%(user)s\"." - -#~ msgid "Enable Users" -#~ msgstr "Activer les utilisateurs" - -#~ msgid "Error enabling user: %s" -#~ msgstr "Erreur d'activation de l'utilisateur : %s" - -#~ msgid "Enabled the following users: %s" -#~ msgstr "Activation des utilisateurs sélectionnés : %s" - -#~ msgid "Successfully enabled users: %s" -#~ msgstr "Succès de l'activation des utilisateurs : %s" - -#~ msgid "Disable Users" -#~ msgstr "Utilisateurs désactivés" - -#~ msgid "Error disabling user: %s" -#~ msgstr "Erreur de désactivation de l'utilisateur : %s" - -#~ msgid "Disabled the following users: %s" -#~ msgstr "Désactivation des utilisateurs sélectionnés : %s" - -#~ msgid "Successfully disabled users: %s" -#~ msgstr "Succès de la désactivation des utilisateurs : %s" diff --git a/horizon/locale/ja/LC_MESSAGES/django.po b/horizon/locale/ja/LC_MESSAGES/django.po index 0c8982f99..3839fbea6 100644 --- a/horizon/locale/ja/LC_MESSAGES/django.po +++ b/horizon/locale/ja/LC_MESSAGES/django.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: openstack-dashboard\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2012-05-29 11:47-0700\n" +"POT-Creation-Date: 2012-07-09 02:29+0000\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: Takeshi Nakajima \n" "Language-Team: LANGUAGE \n" @@ -18,7 +18,7 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=1; plural=0;\n" -#: base.py:449 +#: base.py:437 msgid "Other" msgstr "" @@ -27,24 +27,16 @@ msgstr "" msgid "Please log in to continue." msgstr "キー%sを削除できません。" -#: decorators.py:89 +#: decorators.py:87 #, python-format msgid "You are not authorized to access %s" msgstr "" -#: decorators.py:130 -msgid "The services for this view are not available." -msgstr "" - -#: exceptions.py:239 +#: exceptions.py:299 msgid "Unauthorized. Please try logging in again." msgstr "" -#: users.py:63 -msgid "Your session has expired. Please log in again." -msgstr "" - -#: api/keystone.py:53 +#: api/keystone.py:55 #, python-format msgid "%(type)s (%(backend)s backend)" msgstr "" @@ -59,7 +51,11 @@ msgstr "" msgid "ALLOW %(from)s:%(to)s from %(cidr)s" msgstr "" -#: api/swift.py:114 +#: api/nova.py:502 +msgid "Unknown instance" +msgstr "" + +#: api/swift.py:155 msgid "Unicode is not currently supported for object copy." msgstr "" @@ -67,207 +63,219 @@ msgstr "" msgid "Manage Compute" msgstr "" -#: dashboards/nova/dashboard.py:33 +#: dashboards/nova/dashboard.py:34 #, fuzzy msgid "Object Store" msgstr "ユーザ名" -#: dashboards/nova/dashboard.py:38 -#: dashboards/nova/instances_and_volumes/instances/workflows.py:33 -#: dashboards/syspanel/projects/tables.py:51 -#: templates/horizon/common/_sidebar.html:11 tests/workflows_tests.py:39 +#: dashboards/nova/dashboard.py:39 dashboards/nova/instances/workflows.py:32 +#: dashboards/syspanel/projects/tables.py:52 tests/workflows_tests.py:39 #, fuzzy msgid "Project" msgstr "プロジェクトを削除" #: dashboards/nova/access_and_security/panel.py:25 -#: dashboards/nova/instances_and_volumes/instances/workflows.py:311 +#: dashboards/nova/instances/workflows.py:328 msgid "Access & Security" msgstr "" -#: dashboards/nova/access_and_security/views.py:52 +#: dashboards/nova/access_and_security/views.py:51 #, fuzzy msgid "Unable to retrieve keypair list." msgstr "キー%sを作成できません。" -#: dashboards/nova/access_and_security/views.py:62 -#, fuzzy, python-format -msgid "Error fetching security_groups: %s" -msgstr "セキュリティグループ%sを作成できません。" +#: dashboards/nova/access_and_security/views.py:60 +#: dashboards/nova/access_and_security/security_groups/views.py:64 +#, fuzzy +msgid "Unable to retrieve security groups." +msgstr "キー%sを作成できません。" -#: dashboards/nova/access_and_security/views.py:72 -#, python-format -msgid "Error fetching floating ips: %s" -msgstr "" +#: dashboards/nova/access_and_security/views.py:69 +#: dashboards/nova/access_and_security/floating_ips/workflows.py:44 +#, fuzzy +msgid "Unable to retrieve floating IP addresses." +msgstr "%sをリボーク(無効化)できません。" -#: dashboards/nova/access_and_security/views.py:79 -#: dashboards/nova/access_and_security/floating_ips/views.py:60 +#: dashboards/nova/access_and_security/views.py:76 +#: dashboards/nova/access_and_security/floating_ips/workflows.py:60 #: dashboards/syspanel/instances/views.py:58 #, fuzzy msgid "Unable to retrieve instance list." msgstr "%sをリボーク(無効化)できません。" #: dashboards/nova/access_and_security/floating_ips/forms.py:38 -#: dashboards/nova/access_and_security/floating_ips/tables.py:47 -#: dashboards/nova/templates/nova/access_and_security/floating_ips/_allocate.html:22 -msgid "Floating IP" -msgstr "" - -#: dashboards/nova/access_and_security/floating_ips/forms.py:41 -#: dashboards/nova/images_and_snapshots/snapshots/forms.py:38 -#, fuzzy -msgid "Instance ID" -msgstr "インスタンスID:" - -#: dashboards/nova/access_and_security/floating_ips/forms.py:47 -#: dashboards/nova/instances_and_volumes/volumes/forms.py:73 -#, fuzzy -msgid "Select an instance" -msgstr "言語を選択" - -#: dashboards/nova/access_and_security/floating_ips/forms.py:49 -#: dashboards/nova/instances_and_volumes/volumes/forms.py:75 -#, fuzzy -msgid "No instances available" -msgstr "現在イメージがありません。" - -#: dashboards/nova/access_and_security/floating_ips/forms.py:52 -#: dashboards/nova/access_and_security/floating_ips/tables.py:112 -#: dashboards/nova/instances_and_volumes/instances/tables.py:58 -#: dashboards/nova/instances_and_volumes/instances/tables.py:75 -#: dashboards/nova/instances_and_volumes/instances/tables.py:90 -#: dashboards/nova/instances_and_volumes/instances/tables.py:118 -#: dashboards/nova/instances_and_volumes/volumes/tables.py:158 -#: dashboards/nova/templates/nova/instances_and_volumes/volumes/_detail_overview.html:41 -#: tests/workflows_tests.py:58 -#, fuzzy -msgid "Instance" -msgstr "インスタンス" - -#: dashboards/nova/access_and_security/floating_ips/forms.py:63 -#, python-format -msgid "Successfully associated Floating IP %(ip)s with Instance: %(inst)s" -msgstr "" - -#: dashboards/nova/access_and_security/floating_ips/forms.py:69 -#: dashboards/nova/access_and_security/floating_ips/views.py:51 -#, fuzzy -msgid "Unable to associate floating IP." -msgstr "イメージ%sを更新できません。" - -#: dashboards/nova/access_and_security/floating_ips/forms.py:75 msgid "Pool" msgstr "" -#: dashboards/nova/access_and_security/floating_ips/forms.py:90 +#: dashboards/nova/access_and_security/floating_ips/forms.py:53 #, fuzzy, python-format msgid "" "Successfully allocated Floating IP \"%(ip)s\" to project \"%(project)s\"" msgstr "正常にVPNプロジェクト%(proj)sを開始しました。" -#: dashboards/nova/access_and_security/floating_ips/forms.py:94 +#: dashboards/nova/access_and_security/floating_ips/forms.py:57 #, fuzzy msgid "Unable to allocate Floating IP." msgstr "キー%sを作成できません。" -#: dashboards/nova/access_and_security/floating_ips/tables.py:35 +#: dashboards/nova/access_and_security/floating_ips/tables.py:36 #, fuzzy msgid "Allocate IP To Project" msgstr "プロジェクトを削除" -#: dashboards/nova/access_and_security/floating_ips/tables.py:45 +#: dashboards/nova/access_and_security/floating_ips/tables.py:46 msgid "Release" msgstr "リリース" -#: dashboards/nova/access_and_security/floating_ips/tables.py:46 +#: dashboards/nova/access_and_security/floating_ips/tables.py:47 #, fuzzy msgid "Released" msgstr "リリース" #: dashboards/nova/access_and_security/floating_ips/tables.py:48 -#: dashboards/nova/access_and_security/floating_ips/tables.py:126 +#: dashboards/nova/access_and_security/templates/access_and_security/floating_ips/_allocate.html:22 +msgid "Floating IP" +msgstr "" + +#: dashboards/nova/access_and_security/floating_ips/tables.py:49 +#: dashboards/nova/access_and_security/floating_ips/tables.py:132 #: dashboards/syspanel/projects/forms.py:119 msgid "Floating IPs" msgstr "" -#: dashboards/nova/access_and_security/floating_ips/tables.py:57 -#: dashboards/nova/templates/nova/access_and_security/floating_ips/_associate.html:22 +#: dashboards/nova/access_and_security/floating_ips/tables.py:58 +#: dashboards/nova/access_and_security/templates/access_and_security/floating_ips/associate.html:3 +#: dashboards/nova/access_and_security/templates/access_and_security/floating_ips/associate.html:6 +#: dashboards/nova/instances/tables.py:202 msgid "Associate Floating IP" msgstr "" -#: dashboards/nova/access_and_security/floating_ips/tables.py:69 +#: dashboards/nova/access_and_security/floating_ips/tables.py:75 msgid "Disassociate Floating IP" msgstr "" -#: dashboards/nova/access_and_security/floating_ips/tables.py:83 +#: dashboards/nova/access_and_security/floating_ips/tables.py:89 #, python-format msgid "Successfully disassociated Floating IP: %s" msgstr "" -#: dashboards/nova/access_and_security/floating_ips/tables.py:87 +#: dashboards/nova/access_and_security/floating_ips/tables.py:93 #, fuzzy msgid "Unable to disassociate floating IP." msgstr "イメージ%sを更新できません。" -#: dashboards/nova/access_and_security/floating_ips/tables.py:92 +#: dashboards/nova/access_and_security/floating_ips/tables.py:98 #, python-format msgid "%(INSTANCE_NAME)s (%(INSTANCE_ID)s)" msgstr "" -#: dashboards/nova/access_and_security/floating_ips/tables.py:97 -#: dashboards/nova/instances_and_volumes/instances/tables.py:218 -#, fuzzy -msgid "Not available" -msgstr "現在イメージがありません。" - -#: dashboards/nova/access_and_security/floating_ips/tables.py:109 -#: dashboards/nova/instances_and_volumes/instances/tables.py:242 +#: dashboards/nova/access_and_security/floating_ips/tables.py:115 +#: dashboards/nova/access_and_security/floating_ips/workflows.py:28 +#: dashboards/nova/access_and_security/floating_ips/workflows.py:34 +#: dashboards/nova/instances/tables.py:270 #: dashboards/syspanel/instances/tables.py:74 msgid "IP Address" msgstr "" -#: dashboards/nova/access_and_security/floating_ips/tables.py:115 +#: dashboards/nova/access_and_security/floating_ips/tables.py:118 +#: dashboards/nova/access_and_security/floating_ips/workflows.py:31 +#: dashboards/nova/instances/tables.py:62 +#: dashboards/nova/instances/tables.py:79 +#: dashboards/nova/instances/tables.py:94 +#: dashboards/nova/instances/tables.py:122 +#: dashboards/nova/volumes/tables.py:195 tests/workflows_tests.py:58 +#, fuzzy +msgid "Instance" +msgstr "インスタンス" + +#: dashboards/nova/access_and_security/floating_ips/tables.py:121 msgid "Floating IP Pool" msgstr "" -#: dashboards/nova/access_and_security/floating_ips/views.py:100 +#: dashboards/nova/access_and_security/floating_ips/views.py:60 msgid "No floating IP pools available." msgstr "" -#: dashboards/nova/access_and_security/keypairs/forms.py:38 -#: dashboards/nova/access_and_security/keypairs/forms.py:57 +#: dashboards/nova/access_and_security/floating_ips/workflows.py:35 +msgid "Select the IP address you wish to associate with the selected instance." +msgstr "" + +#: dashboards/nova/access_and_security/floating_ips/workflows.py:48 +#, fuzzy +msgid "Select an IP address" +msgstr "プロジェクトを削除" + +#: dashboards/nova/access_and_security/floating_ips/workflows.py:50 +#, fuzzy +msgid "No IP addresses available" +msgstr "現在イメージがありません。" + +#: dashboards/nova/access_and_security/floating_ips/workflows.py:77 +#: dashboards/nova/volumes/forms.py:92 +#, fuzzy +msgid "Select an instance" +msgstr "言語を選択" + +#: dashboards/nova/access_and_security/floating_ips/workflows.py:79 +#: dashboards/nova/volumes/forms.py:94 +#, fuzzy +msgid "No instances available" +msgstr "現在イメージがありません。" + +#: dashboards/nova/access_and_security/floating_ips/workflows.py:98 +msgid "Manage Floating IP Associations" +msgstr "" + +#: dashboards/nova/access_and_security/floating_ips/workflows.py:99 +#, fuzzy +msgid "Associate" +msgstr "インスタンスを更新" + +#: dashboards/nova/access_and_security/floating_ips/workflows.py:100 +#, python-format +msgid "IP address %s associated." +msgstr "" + +#: dashboards/nova/access_and_security/floating_ips/workflows.py:101 +#, fuzzy, python-format +msgid "Unable to associate IP address %s." +msgstr "イメージ%sを更新できません。" + +#: dashboards/nova/access_and_security/keypairs/forms.py:40 +#: dashboards/nova/access_and_security/keypairs/forms.py:58 #: dashboards/nova/access_and_security/keypairs/tables.py:51 #, fuzzy msgid "Keypair Name" msgstr "キーペア" -#: dashboards/nova/access_and_security/keypairs/forms.py:40 +#: dashboards/nova/access_and_security/keypairs/forms.py:42 msgid "" "Keypair names may only contain letters, numbers, underscores and hyphens." msgstr "" -#: dashboards/nova/access_and_security/keypairs/forms.py:52 -#, python-format -msgid "Error Creating Keypair: %s" -msgstr "" +#: dashboards/nova/access_and_security/keypairs/forms.py:53 +#, fuzzy +msgid "Unable to create keypair." +msgstr "キー%sを作成できません。" -#: dashboards/nova/access_and_security/keypairs/forms.py:59 +#: dashboards/nova/access_and_security/keypairs/forms.py:60 #, fuzzy msgid "Public Key" msgstr "公開する" -#: dashboards/nova/access_and_security/keypairs/forms.py:65 +#: dashboards/nova/access_and_security/keypairs/forms.py:68 #, python-format msgid "Successfully imported public key: %s" msgstr "" -#: dashboards/nova/access_and_security/keypairs/forms.py:72 -#, python-format -msgid "Error Importing Keypair: %s" -msgstr "" +#: dashboards/nova/access_and_security/keypairs/forms.py:74 +#, fuzzy +msgid "Unable to import keypair." +msgstr "キー%sを作成できません。" #: dashboards/nova/access_and_security/keypairs/tables.py:29 -#: dashboards/nova/instances_and_volumes/instances/workflows.py:299 +#: dashboards/nova/instances/tables.py:272 +#: dashboards/nova/instances/workflows.py:316 #, fuzzy msgid "Keypair" msgstr "キーペア" @@ -278,16 +286,16 @@ msgid "Keypairs" msgstr "キーペア" #: dashboards/nova/access_and_security/keypairs/tables.py:38 -#: dashboards/nova/templates/nova/access_and_security/keypairs/_import.html:7 -#: dashboards/nova/templates/nova/access_and_security/keypairs/_import.html:23 -#: dashboards/nova/templates/nova/access_and_security/keypairs/import.html:6 +#: dashboards/nova/access_and_security/templates/access_and_security/keypairs/_import.html:7 +#: dashboards/nova/access_and_security/templates/access_and_security/keypairs/_import.html:23 +#: dashboards/nova/access_and_security/templates/access_and_security/keypairs/import.html:6 msgid "Import Keypair" msgstr "" #: dashboards/nova/access_and_security/keypairs/tables.py:45 -#: dashboards/nova/templates/nova/access_and_security/keypairs/_create.html:7 -#: dashboards/nova/templates/nova/access_and_security/keypairs/_create.html:23 -#: dashboards/nova/templates/nova/access_and_security/keypairs/create.html:6 +#: dashboards/nova/access_and_security/templates/access_and_security/keypairs/_create.html:7 +#: dashboards/nova/access_and_security/templates/access_and_security/keypairs/_create.html:23 +#: dashboards/nova/access_and_security/templates/access_and_security/keypairs/create.html:6 msgid "Create Keypair" msgstr "キーペアを作成" @@ -300,136 +308,153 @@ msgstr "" msgid "Unable to create keypair: %(exc)s" msgstr "キー%sを作成できません。" -#: dashboards/nova/access_and_security/security_groups/forms.py:41 +#: dashboards/nova/access_and_security/security_groups/forms.py:40 #: dashboards/nova/access_and_security/security_groups/tables.py:57 -#: dashboards/nova/images_and_snapshots/images/forms.py:43 -#: dashboards/nova/instances_and_volumes/volumes/tables.py:110 -#: dashboards/nova/instances_and_volumes/volumes/tables.py:127 -#: dashboards/nova/templates/nova/images_and_snapshots/images/_detail_overview.html:9 -#: dashboards/nova/templates/nova/instances_and_volumes/instances/_detail_overview.html:9 -#: dashboards/nova/templates/nova/instances_and_volumes/instances/_launch_details_help.html:9 -#: dashboards/nova/templates/nova/instances_and_volumes/volumes/_detail_overview.html:9 +#: dashboards/nova/images_and_snapshots/images/forms.py:42 +#: dashboards/nova/images_and_snapshots/images/forms.py:120 +#: dashboards/nova/images_and_snapshots/templates/images_and_snapshots/images/_detail_overview.html:9 +#: dashboards/nova/images_and_snapshots/volume_snapshots/tables.py:46 +#: dashboards/nova/instances/templates/instances/_detail_overview.html:9 +#: dashboards/nova/instances/templates/instances/_launch_details_help.html:9 +#: dashboards/nova/volumes/tables.py:135 dashboards/nova/volumes/tables.py:153 +#: dashboards/nova/volumes/templates/volumes/_detail_overview.html:9 #: dashboards/syspanel/flavors/forms.py:37 #: dashboards/syspanel/projects/forms.py:60 #: dashboards/syspanel/projects/forms.py:85 #: dashboards/syspanel/projects/tables.py:74 #: dashboards/syspanel/services/tables.py:38 +#: dashboards/syspanel/volumes/tables.py:10 msgid "Name" msgstr "名前" -#: dashboards/nova/access_and_security/security_groups/forms.py:43 +#: dashboards/nova/access_and_security/security_groups/forms.py:42 #: dashboards/nova/access_and_security/security_groups/tables.py:58 -#: dashboards/nova/instances_and_volumes/volumes/forms.py:29 -#: dashboards/nova/instances_and_volumes/volumes/forms.py:103 -#: dashboards/nova/instances_and_volumes/volumes/tables.py:113 -#: dashboards/nova/templates/nova/access_and_security/keypairs/_create.html:16 -#: dashboards/nova/templates/nova/access_and_security/keypairs/_import.html:16 -#: dashboards/nova/templates/nova/access_and_security/security_groups/_create.html:17 -#: dashboards/nova/templates/nova/containers/_create.html:16 -#: dashboards/nova/templates/nova/instances_and_volumes/volumes/_create.html:17 -#: dashboards/nova/templates/nova/instances_and_volumes/volumes/_create_snapshot.html:17 -#: dashboards/nova/templates/nova/instances_and_volumes/volumes/_detail_overview.html:14 -#: dashboards/nova/templates/nova/objects/_copy.html:16 -#: dashboards/nova/templates/nova/objects/_upload.html:17 +#: dashboards/nova/access_and_security/templates/access_and_security/keypairs/_create.html:16 +#: dashboards/nova/access_and_security/templates/access_and_security/keypairs/_import.html:16 +#: dashboards/nova/access_and_security/templates/access_and_security/security_groups/_create.html:17 +#: dashboards/nova/containers/templates/containers/_copy.html:16 +#: dashboards/nova/containers/templates/containers/_create.html:16 +#: dashboards/nova/containers/templates/containers/_upload.html:17 +#: dashboards/nova/volumes/forms.py:25 dashboards/nova/volumes/forms.py:125 +#: dashboards/nova/volumes/tables.py:138 +#: dashboards/nova/volumes/templates/volumes/_create.html:18 +#: dashboards/nova/volumes/templates/volumes/_create_snapshot.html:17 +#: dashboards/nova/volumes/templates/volumes/_detail_overview.html:14 +#: dashboards/syspanel/flavors/templates/flavors/_create.html:17 +#: dashboards/syspanel/images/templates/images/_update.html:17 #: dashboards/syspanel/projects/forms.py:63 #: dashboards/syspanel/projects/forms.py:88 #: dashboards/syspanel/projects/tables.py:76 -#: dashboards/syspanel/templates/syspanel/flavors/_create.html:17 -#: dashboards/syspanel/templates/syspanel/images/_update.html:17 -#: dashboards/syspanel/templates/syspanel/projects/_add_user.html:17 -#: dashboards/syspanel/templates/syspanel/projects/_create.html:17 -#: dashboards/syspanel/templates/syspanel/projects/_quotas.html:16 -#: dashboards/syspanel/templates/syspanel/projects/_update.html:17 -#: dashboards/syspanel/templates/syspanel/users/_create.html:16 -#: dashboards/syspanel/templates/syspanel/users/_update.html:16 +#: dashboards/syspanel/projects/templates/projects/_add_user.html:17 +#: dashboards/syspanel/projects/templates/projects/_create.html:17 +#: dashboards/syspanel/projects/templates/projects/_quotas.html:16 +#: dashboards/syspanel/projects/templates/projects/_update.html:17 +#: dashboards/syspanel/users/templates/users/_create.html:16 +#: dashboards/syspanel/users/templates/users/_update.html:16 msgid "Description" msgstr "説明" -#: dashboards/nova/access_and_security/security_groups/forms.py:51 +#: dashboards/nova/access_and_security/security_groups/forms.py:50 #, fuzzy, python-format -msgid "Successfully created security_group: %s" +msgid "Successfully created security group: %s" msgstr "セキュリティグループ%sを作成できません。" -#: dashboards/nova/access_and_security/security_groups/forms.py:54 +#: dashboards/nova/access_and_security/security_groups/forms.py:53 #, fuzzy msgid "Unable to create security group." msgstr "セキュリティグループ" -#: dashboards/nova/access_and_security/security_groups/forms.py:59 +#: dashboards/nova/access_and_security/security_groups/forms.py:58 #: dashboards/nova/access_and_security/security_groups/tables.py:92 msgid "IP Protocol" msgstr "" -#: dashboards/nova/access_and_security/security_groups/forms.py:65 -#: dashboards/nova/access_and_security/security_groups/forms.py:71 +#: dashboards/nova/access_and_security/security_groups/forms.py:64 +#: dashboards/nova/access_and_security/security_groups/forms.py:70 #: dashboards/nova/access_and_security/security_groups/tables.py:94 msgid "From Port" msgstr "" -#: dashboards/nova/access_and_security/security_groups/forms.py:66 +#: dashboards/nova/access_and_security/security_groups/forms.py:65 msgid "" "TCP/UDP: Enter integer value between 1 and 65535. ICMP: enter a value for " "ICMP type in the range (-1: 255)" msgstr "" -#: dashboards/nova/access_and_security/security_groups/forms.py:72 -#: dashboards/nova/images_and_snapshots/images/tables.py:89 +#: dashboards/nova/access_and_security/security_groups/forms.py:71 +#: dashboards/nova/images_and_snapshots/images/tables.py:114 msgid "Type" msgstr "" -#: dashboards/nova/access_and_security/security_groups/forms.py:74 -#: dashboards/nova/access_and_security/security_groups/forms.py:80 +#: dashboards/nova/access_and_security/security_groups/forms.py:73 +#: dashboards/nova/access_and_security/security_groups/forms.py:79 #: dashboards/nova/access_and_security/security_groups/tables.py:95 msgid "To Port" msgstr "" -#: dashboards/nova/access_and_security/security_groups/forms.py:75 +#: dashboards/nova/access_and_security/security_groups/forms.py:74 msgid "" "TCP/UDP: Enter integer value between 1 and 65535. ICMP: enter a value for " "ICMP code in the range (-1: 255)" msgstr "" -#: dashboards/nova/access_and_security/security_groups/forms.py:81 +#: dashboards/nova/access_and_security/security_groups/forms.py:80 msgid "Code" msgstr "" -#: dashboards/nova/access_and_security/security_groups/forms.py:84 +#: dashboards/nova/access_and_security/security_groups/forms.py:83 #, fuzzy msgid "Source Group" msgstr "セキュリティグループ" -#: dashboards/nova/access_and_security/security_groups/forms.py:85 +#: dashboards/nova/access_and_security/security_groups/forms.py:84 msgid "CIDR" msgstr "" -#: dashboards/nova/access_and_security/security_groups/forms.py:88 +#: dashboards/nova/access_and_security/security_groups/forms.py:87 msgid "Classless Inter-Domain Routing (e.g. 192.168.0.0/24)" msgstr "" -#: dashboards/nova/access_and_security/security_groups/forms.py:115 +#: dashboards/nova/access_and_security/security_groups/forms.py:116 +msgid "The ICMP type is invalid." +msgstr "" + +#: dashboards/nova/access_and_security/security_groups/forms.py:119 +msgid "The ICMP code is invalid." +msgstr "" + +#: dashboards/nova/access_and_security/security_groups/forms.py:122 +msgid "The ICMP type not in range (-1, 255)" +msgstr "" + +#: dashboards/nova/access_and_security/security_groups/forms.py:125 +msgid "The ICMP code not in range (-1, 255)" +msgstr "" + +#: dashboards/nova/access_and_security/security_groups/forms.py:129 msgid "The \"from\" port number is invalid." msgstr "" -#: dashboards/nova/access_and_security/security_groups/forms.py:118 +#: dashboards/nova/access_and_security/security_groups/forms.py:132 msgid "The \"to\" port number is invalid." msgstr "" -#: dashboards/nova/access_and_security/security_groups/forms.py:121 +#: dashboards/nova/access_and_security/security_groups/forms.py:135 msgid "" "The \"to\" port number must be greater than or equal to the \"from\" port " "number." msgstr "" -#: dashboards/nova/access_and_security/security_groups/forms.py:127 +#: dashboards/nova/access_and_security/security_groups/forms.py:141 msgid "Either CIDR or Source Group may be specified, but not both." msgstr "" -#: dashboards/nova/access_and_security/security_groups/forms.py:148 +#: dashboards/nova/access_and_security/security_groups/forms.py:163 #, fuzzy, python-format msgid "Successfully added rule: %s" msgstr "プロジェクト%(proj)sを正常に修正しました。" -#: dashboards/nova/access_and_security/security_groups/forms.py:152 +#: dashboards/nova/access_and_security/security_groups/forms.py:166 #, fuzzy msgid "Unable to add rule to security group." msgstr "セキュリティグループ" @@ -441,15 +466,15 @@ msgstr "セキュリティグループ" #: dashboards/nova/access_and_security/security_groups/tables.py:31 #: dashboards/nova/access_and_security/security_groups/tables.py:65 -#: dashboards/nova/instances_and_volumes/instances/workflows.py:303 -#: dashboards/nova/templates/nova/instances_and_volumes/instances/_detail_overview.html:47 +#: dashboards/nova/instances/workflows.py:320 +#: dashboards/nova/instances/templates/instances/_detail_overview.html:49 msgid "Security Groups" msgstr "セキュリティグループ" #: dashboards/nova/access_and_security/security_groups/tables.py:44 -#: dashboards/nova/templates/nova/access_and_security/security_groups/_create.html:7 -#: dashboards/nova/templates/nova/access_and_security/security_groups/_create.html:23 -#: dashboards/nova/templates/nova/access_and_security/security_groups/create.html:6 +#: dashboards/nova/access_and_security/templates/access_and_security/security_groups/_create.html:7 +#: dashboards/nova/access_and_security/templates/access_and_security/security_groups/_create.html:23 +#: dashboards/nova/access_and_security/templates/access_and_security/security_groups/create.html:6 #, fuzzy msgid "Create Security Group" msgstr "セキュリティグループ" @@ -482,76 +507,194 @@ msgstr "セキュリティグループ" msgid "Unable to retrieve security group." msgstr "キー%sを作成できません。" -#: dashboards/nova/access_and_security/security_groups/views.py:64 +#: dashboards/nova/access_and_security/templates/access_and_security/index.html:6 +msgid "Access & Security" +msgstr "" + +#: dashboards/nova/access_and_security/templates/access_and_security/floating_ips/_allocate.html:8 +#: dashboards/nova/access_and_security/templates/access_and_security/floating_ips/allocate.html:3 #, fuzzy -msgid "Unable to retrieve security groups." -msgstr "キー%sを作成できません。" +msgid "Allocate Floating IP" +msgstr "イメージ%sを更新できません。" + +#: dashboards/nova/access_and_security/templates/access_and_security/floating_ips/_allocate.html:17 +#: dashboards/nova/images_and_snapshots/templates/images_and_snapshots/images/_create.html:16 +#: dashboards/nova/images_and_snapshots/templates/images_and_snapshots/images/_update.html:16 +#: dashboards/nova/images_and_snapshots/templates/images_and_snapshots/snapshots/_create.html:17 +#: dashboards/nova/instances/templates/instances/_update.html:16 +#: dashboards/settings/ec2/templates/ec2/download_form.html:17 +#: dashboards/settings/project/templates/project/_openrc.html:24 +#: dashboards/settings/user/templates/user/_settings.html:17 +msgid "Description:" +msgstr "説明:" + +#: dashboards/nova/access_and_security/templates/access_and_security/floating_ips/_allocate.html:18 +msgid "Allocate a floating IP from a given floating ip pool." +msgstr "" + +#: dashboards/nova/access_and_security/templates/access_and_security/floating_ips/_allocate.html:20 +#: dashboards/nova/instances/templates/instances/_launch_details_help.html:19 +#, fuzzy +msgid "Project Quotas" +msgstr "クォータ" + +#: dashboards/nova/access_and_security/templates/access_and_security/floating_ips/_allocate.html:31 +msgid "Allocate IP" +msgstr "" + +#: dashboards/nova/access_and_security/templates/access_and_security/floating_ips/_allocate.html:32 +#: dashboards/nova/access_and_security/templates/access_and_security/keypairs/_create.html:24 +#: dashboards/nova/access_and_security/templates/access_and_security/keypairs/_import.html:24 +#: dashboards/nova/access_and_security/templates/access_and_security/security_groups/_create.html:24 +#: dashboards/nova/access_and_security/templates/access_and_security/security_groups/_edit_rules.html:20 +#: dashboards/nova/containers/templates/containers/_copy.html:23 +#: dashboards/nova/containers/templates/containers/_create.html:23 +#: dashboards/nova/containers/templates/containers/_upload.html:24 +#: dashboards/nova/images_and_snapshots/templates/images_and_snapshots/images/_create.html:32 +#: dashboards/nova/images_and_snapshots/templates/images_and_snapshots/images/_update.html:23 +#: dashboards/nova/images_and_snapshots/templates/images_and_snapshots/snapshots/_create.html:24 +#: dashboards/nova/instances/templates/instances/_update.html:23 +#: dashboards/nova/volumes/templates/volumes/_attach.html:20 +#: dashboards/nova/volumes/templates/volumes/_create.html:56 +#: dashboards/nova/volumes/templates/volumes/_create_snapshot.html:24 +#: dashboards/settings/ec2/templates/ec2/download_form.html:24 +#: dashboards/settings/project/templates/project/_openrc.html:31 +#: dashboards/settings/user/templates/user/_settings.html:24 +#: dashboards/syspanel/flavors/templates/flavors/_create.html:24 +#: dashboards/syspanel/images/templates/images/_update.html:24 +#: dashboards/syspanel/projects/templates/projects/_add_user.html:24 +#: dashboards/syspanel/projects/templates/projects/_create.html:24 +#: dashboards/syspanel/projects/templates/projects/_quotas.html:23 +#: dashboards/syspanel/projects/templates/projects/_update.html:24 +#: dashboards/syspanel/users/templates/users/_create.html:23 +#: dashboards/syspanel/users/templates/users/_update.html:23 +#: templates/horizon/common/_workflow.html:30 +msgid "Cancel" +msgstr "" + +#: dashboards/nova/access_and_security/templates/access_and_security/keypairs/_create.html:17 +#: dashboards/nova/access_and_security/templates/access_and_security/keypairs/_import.html:17 +#, fuzzy +msgid "" +"Keypairs are ssh credentials which are injected into images when they are " +"launched. Creating a new key pair registers the public key and downloads the " +"private key (a .pem file)." +msgstr "" +"キーペアは、ssh形式の資格情報で、イメージを起動した時に、挿入されます。新しい" +"キーペアを作成するとき、公開キーを登録し、秘密キー(pemファイル)をダウンロード" +"します。これは、通常の秘密キーの様に保護した上でご使用ください。" + +#: dashboards/nova/access_and_security/templates/access_and_security/keypairs/_create.html:18 +#: dashboards/nova/access_and_security/templates/access_and_security/keypairs/_import.html:18 +msgid "Protect and use the key as you would any normal ssh private key." +msgstr "" + +#: dashboards/nova/access_and_security/templates/access_and_security/keypairs/download.html:3 +#: dashboards/nova/access_and_security/templates/access_and_security/keypairs/download.html:6 +#, fuzzy +msgid "Download Keypair" +msgstr "キーペアを作成" + +#: dashboards/nova/access_and_security/templates/access_and_security/keypairs/download.html:11 +#, python-format +msgid "" +"The keypair "%(keypair_name)s" should download automatically. If " +"not use the link below." +msgstr "" + +#: dashboards/nova/access_and_security/templates/access_and_security/keypairs/download.html:15 +#, python-format +msgid "Download keypair "%(keypair_name)s"" +msgstr "" + +#: dashboards/nova/access_and_security/templates/access_and_security/security_groups/_create.html:18 +#, fuzzy +msgid "From here you can create a new security group" +msgstr "ここで、複数のユーザ資格を編集できます。" + +#: dashboards/nova/access_and_security/templates/access_and_security/security_groups/_edit_rules.html:9 +#: dashboards/nova/access_and_security/templates/access_and_security/security_groups/edit_rules.html:6 +#, fuzzy +msgid "Edit Security Group Rules" +msgstr "セキュリティグループ" + +#: dashboards/nova/access_and_security/templates/access_and_security/security_groups/_edit_rules.html:12 +#: dashboards/nova/access_and_security/templates/access_and_security/security_groups/_edit_rules.html:19 +msgid "Add Rule" +msgstr "" #: dashboards/nova/containers/forms.py:38 msgid "Slash is not an allowed character." msgstr "" -#: dashboards/nova/containers/forms.py:45 -#: dashboards/nova/containers/tables.py:88 +#: dashboards/nova/containers/forms.py:48 +#: dashboards/nova/containers/tables.py:91 #, fuzzy msgid "Container Name" msgstr "ユーザ名" -#: dashboards/nova/containers/forms.py:51 +#: dashboards/nova/containers/forms.py:56 #, fuzzy msgid "Container created successfully." msgstr "ボリューム %(id)s %(name)s は正常に作成されました。" -#: dashboards/nova/containers/forms.py:53 +#: dashboards/nova/containers/forms.py:67 +#, fuzzy +msgid "Folder created successfully." +msgstr "ボリューム %(id)s %(name)s は正常に作成されました。" + +#: dashboards/nova/containers/forms.py:75 #, fuzzy msgid "Unable to create container." msgstr "キー%sを作成できません。" -#: dashboards/nova/containers/forms.py:59 -#: dashboards/nova/containers/tables.py:155 +#: dashboards/nova/containers/forms.py:85 +#: dashboards/nova/containers/tables.py:157 #, fuzzy msgid "Object Name" msgstr "ユーザ名" -#: dashboards/nova/containers/forms.py:61 +#: dashboards/nova/containers/forms.py:87 msgid "File" msgstr "" -#: dashboards/nova/containers/forms.py:73 +#: dashboards/nova/containers/forms.py:103 #, fuzzy msgid "Object was successfully uploaded." msgstr "セキュリティグループ%sが正常に削除されました。" -#: dashboards/nova/containers/forms.py:75 +#: dashboards/nova/containers/forms.py:105 #, fuzzy msgid "Unable to upload object." msgstr "イメージ%sを更新できません。" -#: dashboards/nova/containers/forms.py:81 +#: dashboards/nova/containers/forms.py:111 msgid "Destination container" msgstr "" -#: dashboards/nova/containers/forms.py:84 +#: dashboards/nova/containers/forms.py:115 msgid "Destination object name" msgstr "" -#: dashboards/nova/containers/forms.py:107 -#, python-format -msgid "Object \"%(obj)s\" copied to container \"%(container)s\"." +#: dashboards/nova/containers/forms.py:145 +#: dashboards/nova/containers/forms.py:169 +msgid "Unable to copy object." msgstr "" -#: dashboards/nova/containers/forms.py:115 -msgid "Unable to copy object." +#: dashboards/nova/containers/forms.py:161 +#, python-format +msgid "Copied \"%(orig)s\" to \"%(dest)s\" as \"%(new)s\"." msgstr "" #: dashboards/nova/containers/panel.py:28 #: dashboards/nova/containers/tables.py:35 -#: dashboards/nova/containers/tables.py:99 -#: dashboards/nova/templates/nova/containers/index.html:8 +#: dashboards/nova/containers/tables.py:102 +#: dashboards/nova/containers/templates/containers/index.html:6 msgid "Containers" msgstr "" #: dashboards/nova/containers/tables.py:34 +#: dashboards/nova/containers/templates/containers/detail.html:7 #, fuzzy msgid "Container" msgstr "ユーザ名" @@ -561,73 +704,139 @@ msgid "Containers must be empty before deletion." msgstr "" #: dashboards/nova/containers/tables.py:48 -#: dashboards/nova/templates/nova/containers/_create.html:7 -#: dashboards/nova/templates/nova/containers/_create.html:22 -#: dashboards/nova/templates/nova/containers/create.html:6 +#: dashboards/nova/containers/templates/containers/_create.html:7 +#: dashboards/nova/containers/templates/containers/_create.html:22 +#: dashboards/nova/containers/templates/containers/create.html:6 msgid "Create Container" msgstr "" #: dashboards/nova/containers/tables.py:55 -msgid "List Objects" -msgstr "" +#, fuzzy +msgid "View Container" +msgstr "ユーザ名" #: dashboards/nova/containers/tables.py:62 -#: dashboards/nova/templates/nova/objects/_upload.html:23 -#: dashboards/nova/templates/nova/objects/upload.html:3 +#: dashboards/nova/containers/templates/containers/_upload.html:23 +#: dashboards/nova/containers/templates/containers/upload.html:3 msgid "Upload Object" msgstr "" -#: dashboards/nova/containers/tables.py:90 -#: dashboards/nova/containers/tables.py:106 -#: dashboards/nova/containers/tables.py:163 -#: dashboards/nova/templates/nova/objects/index.html:3 +#: dashboards/nova/containers/tables.py:93 +#: dashboards/nova/containers/tables.py:109 +#: dashboards/nova/containers/tables.py:169 +#: dashboards/nova/containers/templates/containers/detail.html:3 #, fuzzy msgid "Objects" msgstr "ユーザ名" -#: dashboards/nova/containers/tables.py:92 -#: dashboards/nova/containers/tables.py:156 -#: dashboards/nova/instances_and_volumes/instances/tables.py:243 -#: dashboards/nova/instances_and_volumes/volumes/tables.py:114 -#: dashboards/nova/templates/nova/images_and_snapshots/images/_detail_overview.html:30 -#: dashboards/nova/templates/nova/instances_and_volumes/volumes/_detail_overview.html:26 +#: dashboards/nova/containers/tables.py:95 +#: dashboards/nova/containers/tables.py:160 +#: dashboards/nova/images_and_snapshots/templates/images_and_snapshots/images/_detail_overview.html:30 +#: dashboards/nova/instances/tables.py:271 +#: dashboards/nova/volumes/tables.py:140 +#: dashboards/nova/volumes/templates/volumes/_detail_overview.html:26 #: dashboards/syspanel/instances/tables.py:76 msgid "Size" msgstr "" -#: dashboards/nova/containers/tables.py:105 +#: dashboards/nova/containers/tables.py:108 #, fuzzy msgid "Object" msgstr "ユーザ名" -#: dashboards/nova/containers/tables.py:116 +#: dashboards/nova/containers/tables.py:119 msgid "Copy" msgstr "" -#: dashboards/nova/containers/tables.py:127 +#: dashboards/nova/containers/tables.py:130 msgid "Download" msgstr "" -#: dashboards/nova/containers/views.py:57 +#: dashboards/nova/containers/tables.py:181 +#, fuzzy +msgid "Create Folder" +msgstr "作成" + +#: dashboards/nova/containers/tables.py:193 +msgid "Folder" +msgstr "" + +#: dashboards/nova/containers/tables.py:194 +msgid "Folders" +msgstr "" + +#: dashboards/nova/containers/tables.py:200 +#, fuzzy +msgid "Subfolder Name" +msgstr "ユーザ名" + +#: dashboards/nova/containers/tables.py:208 +msgid "Subfolders" +msgstr "" + +#: dashboards/nova/containers/views.py:58 #, fuzzy msgid "Unable to retrieve container list." msgstr "キー%sを作成できません。" -#: dashboards/nova/containers/views.py:84 +#: dashboards/nova/containers/views.py:103 #, fuzzy msgid "Unable to retrieve object list." msgstr "キー%sを作成できません。" -#: dashboards/nova/containers/views.py:122 +#: dashboards/nova/containers/views.py:161 #, fuzzy msgid "Unable to retrieve object." msgstr "キー%sを作成できません。" -#: dashboards/nova/containers/views.py:144 +#: dashboards/nova/containers/views.py:183 #, fuzzy msgid "Unable to list containers." msgstr "キー%sを削除できません。" +#: dashboards/nova/containers/templates/containers/_copy.html:7 +#: dashboards/nova/containers/templates/containers/_copy.html:22 +#: dashboards/nova/containers/templates/containers/copy.html:3 +#: dashboards/nova/containers/templates/containers/copy.html:6 +msgid "Copy Object" +msgstr "" + +#: dashboards/nova/containers/templates/containers/_copy.html:17 +msgid "" +"Make a new copy of an existing object to store in this or another container. " +"You may also specify a path at which the new copy should live inside of the " +"selected container." +msgstr "" + +#: dashboards/nova/containers/templates/containers/_create.html:17 +msgid "" +"A container is a storage compartment for your data and provides a way for " +"you to organize your data. You can think of a container as a folder in " +"Windows ® or a directory in UNIX ®. The primary difference between a " +"container and these other file system concepts is that containers cannot be " +"nested. You can, however, create an unlimited number of containers within " +"your account. Data must be stored in a container so you must have at least " +"one container defined in your account prior to uploading data." +msgstr "" + +#: dashboards/nova/containers/templates/containers/_upload.html:8 +#, fuzzy +msgid "Upload Object To Container" +msgstr "新規ボリュームを作成する。" + +#: dashboards/nova/containers/templates/containers/_upload.html:18 +msgid "" +"An object is the basic storage entity and any optional metadata that " +"represents the files you store in the OpenStack Object Storage system. When " +"you upload data to OpenStack Object Storage, the data is stored as-is (no " +"compression or encryption) and consists of a location (container), the " +"object's name, and any metadata consisting of key/value pairs." +msgstr "" + +#: dashboards/nova/containers/templates/containers/upload.html:6 +msgid "Upload Objects" +msgstr "" + #: dashboards/nova/images_and_snapshots/panel.py:25 #, fuzzy msgid "Images & Snapshots" @@ -649,99 +858,155 @@ msgid "Unable to retrieve volume snapshots." msgstr "ボリューム%sを作成できません。" #: dashboards/nova/images_and_snapshots/images/forms.py:44 -#: dashboards/nova/templates/nova/images_and_snapshots/images/_detail_overview.html:48 -msgid "Kernel ID" +#, fuzzy +msgid "Image Location" +msgstr "ロケーション" + +#: dashboards/nova/images_and_snapshots/images/forms.py:45 +msgid "An external (HTTP) URL where the image should be loaded from." msgstr "" -#: dashboards/nova/images_and_snapshots/images/forms.py:49 -#: dashboards/nova/templates/nova/images_and_snapshots/images/_detail_overview.html:52 -msgid "Ramdisk ID" +#: dashboards/nova/images_and_snapshots/images/forms.py:48 +#: dashboards/nova/images_and_snapshots/images/forms.py:135 +#: dashboards/nova/images_and_snapshots/images/tables.py:125 +msgid "Format" msgstr "" -#: dashboards/nova/images_and_snapshots/images/forms.py:54 -#: dashboards/nova/templates/nova/images_and_snapshots/images/_detail_overview.html:44 -msgid "Architecture" +#: dashboards/nova/images_and_snapshots/images/forms.py:52 +msgid "AKI - Amazon Kernel Image" +msgstr "" + +#: dashboards/nova/images_and_snapshots/images/forms.py:55 +msgid "AMI - Amazon Machine Image" msgstr "" #: dashboards/nova/images_and_snapshots/images/forms.py:58 -#: dashboards/nova/images_and_snapshots/images/tables.py:98 -#: dashboards/nova/templates/nova/images_and_snapshots/images/_detail_overview.html:32 -msgid "Container Format" +msgid "ARI - Amazon Ramdisk Image" msgstr "" -#: dashboards/nova/images_and_snapshots/images/forms.py:62 -#: dashboards/nova/templates/nova/images_and_snapshots/images/_detail_overview.html:34 -msgid "Disk Format" +#: dashboards/nova/images_and_snapshots/images/forms.py:61 +msgid "ISO - Optical Disk Image" msgstr "" -#: dashboards/nova/images_and_snapshots/images/forms.py:66 -#: dashboards/nova/images_and_snapshots/images/tables.py:94 -#: dashboards/nova/templates/nova/images_and_snapshots/images/_detail_overview.html:15 +#: dashboards/nova/images_and_snapshots/images/forms.py:63 +msgid "QCOW2 - QEMU Emulator" +msgstr "" + +#: dashboards/nova/images_and_snapshots/images/forms.py:70 +msgid "Minimum Disk (GB)" +msgstr "" + +#: dashboards/nova/images_and_snapshots/images/forms.py:71 +#: dashboards/nova/images_and_snapshots/images/forms.py:78 +msgid "" +"The minimum disk size required to boot the image. If unspecified, this value " +"defaults to 0 (no minimum)." +msgstr "" + +#: dashboards/nova/images_and_snapshots/images/forms.py:77 +msgid "Minimum Ram (MB)" +msgstr "" + +#: dashboards/nova/images_and_snapshots/images/forms.py:84 +#: dashboards/nova/images_and_snapshots/images/forms.py:139 +#: dashboards/nova/images_and_snapshots/images/tables.py:122 +#: dashboards/nova/images_and_snapshots/templates/images_and_snapshots/images/_detail_overview.html:15 #, fuzzy msgid "Public" msgstr "公開する" -#: dashboards/nova/images_and_snapshots/images/forms.py:72 +#: dashboards/nova/images_and_snapshots/images/forms.py:108 +#, python-format +msgid "Your image %s has been queued for creation." +msgstr "" + +#: dashboards/nova/images_and_snapshots/images/forms.py:111 +#, fuzzy +msgid "Unable to create new image." +msgstr "%sをリボーク(無効化)できません。" + +#: dashboards/nova/images_and_snapshots/images/forms.py:121 +#: dashboards/nova/images_and_snapshots/templates/images_and_snapshots/images/_detail_overview.html:48 +msgid "Kernel ID" +msgstr "" + +#: dashboards/nova/images_and_snapshots/images/forms.py:126 +#: dashboards/nova/images_and_snapshots/templates/images_and_snapshots/images/_detail_overview.html:52 +msgid "Ramdisk ID" +msgstr "" + +#: dashboards/nova/images_and_snapshots/images/forms.py:131 +#: dashboards/nova/images_and_snapshots/templates/images_and_snapshots/images/_detail_overview.html:44 +msgid "Architecture" +msgstr "" + +#: dashboards/nova/images_and_snapshots/images/forms.py:144 #, fuzzy, python-format msgid "Unable to update image \"%s\"." msgstr "イメージ%sを更新できません。" -#: dashboards/nova/images_and_snapshots/images/forms.py:88 +#: dashboards/nova/images_and_snapshots/images/forms.py:163 #, fuzzy msgid "Image was successfully updated." msgstr "イメージ%sが正常に登録削除されました。" #: dashboards/nova/images_and_snapshots/images/tables.py:33 #: dashboards/nova/images_and_snapshots/snapshots/tables.py:32 -#: dashboards/nova/instances_and_volumes/instances/workflows.py:377 +#: dashboards/nova/instances/workflows.py:394 #, fuzzy msgid "Launch" msgstr "イメージを起動します。" #: dashboards/nova/images_and_snapshots/images/tables.py:45 -#: dashboards/nova/instances_and_volumes/instances/workflows.py:161 -#: dashboards/nova/instances_and_volumes/instances/workflows.py:166 +#: dashboards/nova/images_and_snapshots/images/tables.py:81 +#: dashboards/nova/instances/workflows.py:162 +#: dashboards/nova/instances/workflows.py:167 #, fuzzy msgid "Image" msgstr "イメージ" #: dashboards/nova/images_and_snapshots/images/tables.py:46 -#: dashboards/nova/images_and_snapshots/images/tables.py:102 +#: dashboards/nova/images_and_snapshots/images/tables.py:131 #: dashboards/syspanel/images/panel.py:28 -#: dashboards/syspanel/images/tables.py:38 -#: dashboards/syspanel/templates/syspanel/images/index.html:3 -#: dashboards/syspanel/templates/syspanel/images/index.html:6 +#: dashboards/syspanel/images/tables.py:43 +#: dashboards/syspanel/images/templates/images/index.html:3 +#: dashboards/syspanel/images/templates/images/index.html:6 msgid "Images" msgstr "イメージ" #: dashboards/nova/images_and_snapshots/images/tables.py:60 +#: dashboards/nova/images_and_snapshots/templates/images_and_snapshots/images/_create.html:31 +#, fuzzy +msgid "Create Image" +msgstr "イメージを更新" + +#: dashboards/nova/images_and_snapshots/images/tables.py:67 #: dashboards/syspanel/users/tables.py:30 msgid "Edit" msgstr "編集" -#: dashboards/nova/images_and_snapshots/images/tables.py:87 -#: dashboards/nova/templates/nova/instances_and_volumes/instances/_detail_overview.html:72 +#: dashboards/nova/images_and_snapshots/images/tables.py:112 +#: dashboards/nova/instances/templates/instances/_detail_overview.html:74 +#: dashboards/syspanel/images/tables.py:39 #, fuzzy msgid "Image Name" msgstr "ユーザ名" -#: dashboards/nova/images_and_snapshots/images/tables.py:92 -#: dashboards/nova/instances_and_volumes/instances/tables.py:246 -#: dashboards/nova/instances_and_volumes/volumes/tables.py:117 -#: dashboards/nova/templates/nova/images_and_snapshots/images/_detail_overview.html:13 -#: dashboards/nova/templates/nova/instances_and_volumes/instances/_detail_overview.html:13 -#: dashboards/nova/templates/nova/instances_and_volumes/volumes/_detail_overview.html:17 +#: dashboards/nova/images_and_snapshots/images/tables.py:118 +#: dashboards/nova/images_and_snapshots/templates/images_and_snapshots/images/_detail_overview.html:13 +#: dashboards/nova/instances/tables.py:275 +#: dashboards/nova/instances/templates/instances/_detail_overview.html:13 +#: dashboards/nova/volumes/tables.py:143 +#: dashboards/nova/volumes/templates/volumes/_detail_overview.html:17 #: dashboards/syspanel/instances/tables.py:80 msgid "Status" msgstr "ステータス" #: dashboards/nova/images_and_snapshots/images/tabs.py:26 -#: dashboards/nova/instances_and_volumes/instances/tabs.py:25 -#: dashboards/nova/instances_and_volumes/volumes/tabs.py:26 -#: dashboards/nova/overview/panel.py:28 -#: dashboards/nova/templates/nova/overview/usage.html:6 -#: dashboards/syspanel/overview/panel.py:28 -#: dashboards/syspanel/templates/syspanel/overview/usage.html:6 +#: dashboards/nova/instances/tabs.py:25 dashboards/nova/overview/panel.py:28 +#: dashboards/nova/overview/templates/overview/usage.html:6 +#: dashboards/nova/volumes/tabs.py:26 dashboards/syspanel/overview/panel.py:28 +#: dashboards/syspanel/overview/templates/overview/usage.html:6 msgid "Overview" msgstr "概要" @@ -750,13 +1015,18 @@ msgstr "概要" msgid "Unable to retrieve image details." msgstr "%sをリボーク(無効化)できません。" -#: dashboards/nova/images_and_snapshots/images/views.py:50 +#: dashboards/nova/images_and_snapshots/images/views.py:57 #, fuzzy msgid "Unable to retrieve image." msgstr "%sをリボーク(無効化)できません。" +#: dashboards/nova/images_and_snapshots/snapshots/forms.py:38 +#, fuzzy +msgid "Instance ID" +msgstr "インスタンスID:" + #: dashboards/nova/images_and_snapshots/snapshots/forms.py:41 -#: dashboards/nova/instances_and_volumes/volumes/forms.py:101 +#: dashboards/nova/volumes/forms.py:123 #, fuzzy msgid "Snapshot Name" msgstr "スナップショット" @@ -772,9 +1042,9 @@ msgid "Unable to create snapshot." msgstr "キー%sを作成できません。" #: dashboards/nova/images_and_snapshots/snapshots/tables.py:47 -#: dashboards/nova/instances_and_volumes/instances/tables.py:158 -#: dashboards/nova/instances_and_volumes/instances/workflows.py:101 -#: dashboards/nova/instances_and_volumes/instances/workflows.py:162 +#: dashboards/nova/instances/tables.py:162 +#: dashboards/nova/instances/workflows.py:101 +#: dashboards/nova/instances/workflows.py:163 msgid "Snapshot" msgstr "スナップショット" @@ -797,975 +1067,1023 @@ msgstr "%sをリボーク(無効化)できません。" msgid "To create a snapshot, the instance must be in the \"%s\" state." msgstr "" +#: dashboards/nova/images_and_snapshots/templates/images_and_snapshots/index.html:3 +#: dashboards/nova/images_and_snapshots/templates/images_and_snapshots/index.html:6 +msgid "Images & Snapshots" +msgstr "" + +#: dashboards/nova/images_and_snapshots/templates/images_and_snapshots/images/_create.html:7 +#: dashboards/nova/images_and_snapshots/templates/images_and_snapshots/images/create.html:3 +#: dashboards/nova/images_and_snapshots/templates/images_and_snapshots/images/create.html:6 +#, fuzzy +msgid "Create An Image" +msgstr "イメージを更新" + +#: dashboards/nova/images_and_snapshots/templates/images_and_snapshots/images/_create.html:18 +msgid "Specify an image to upload to the Image Service." +msgstr "" + +#: dashboards/nova/images_and_snapshots/templates/images_and_snapshots/images/_create.html:21 +msgid "" +"Currently only images available via an HTTP URL are supported. The image " +"location must be accessible to the Image Service. Compressed image binaries " +"are supported (.zip and .tar.gz.)" +msgstr "" + +#: dashboards/nova/images_and_snapshots/templates/images_and_snapshots/images/_create.html:24 +msgid "Please note: " +msgstr "" + +#: dashboards/nova/images_and_snapshots/templates/images_and_snapshots/images/_create.html:25 +msgid "" +"The Image Location field MUST be a valid and direct URL to the image binary. " +"URLs that redirect or serve error pages will results in unusable images." +msgstr "" + +#: dashboards/nova/images_and_snapshots/templates/images_and_snapshots/images/_detail_overview.html:3 +#, fuzzy +msgid "Image Overview" +msgstr "概要" + +#: dashboards/nova/images_and_snapshots/templates/images_and_snapshots/images/_detail_overview.html:6 +#: dashboards/nova/instances/templates/instances/_detail_overview.html:6 +#: dashboards/nova/volumes/templates/volumes/_detail_overview.html:6 +#, fuzzy +msgid "Info" +msgstr "情報" + +#: dashboards/nova/images_and_snapshots/templates/images_and_snapshots/images/_detail_overview.html:11 +#: dashboards/nova/instances/templates/instances/_detail_overview.html:11 +#: dashboards/nova/volumes/templates/volumes/_detail_overview.html:11 +#: dashboards/syspanel/projects/forms.py:83 +#: dashboards/syspanel/users/forms.py:113 +msgid "ID" +msgstr "" + +#: dashboards/nova/images_and_snapshots/templates/images_and_snapshots/images/_detail_overview.html:17 +msgid "Checksum" +msgstr "" + +#: dashboards/nova/images_and_snapshots/templates/images_and_snapshots/images/_detail_overview.html:19 +#: dashboards/nova/volumes/templates/volumes/_detail_overview.html:28 +#, fuzzy +msgid "Created" +msgstr "作成" + +#: dashboards/nova/images_and_snapshots/templates/images_and_snapshots/images/_detail_overview.html:21 +#, fuzzy +msgid "Updated" +msgstr "イメージを更新" + +#: dashboards/nova/images_and_snapshots/templates/images_and_snapshots/images/_detail_overview.html:27 +#: dashboards/nova/instances/templates/instances/_detail_overview.html:19 +#: dashboards/nova/volumes/templates/volumes/_detail_overview.html:23 +msgid "Specs" +msgstr "" + +#: dashboards/nova/images_and_snapshots/templates/images_and_snapshots/images/_detail_overview.html:32 +msgid "Container Format" +msgstr "" + +#: dashboards/nova/images_and_snapshots/templates/images_and_snapshots/images/_detail_overview.html:34 +msgid "Disk Format" +msgstr "" + +#: dashboards/nova/images_and_snapshots/templates/images_and_snapshots/images/_detail_overview.html:40 +msgid "Custom Properties" +msgstr "" + +#: dashboards/nova/images_and_snapshots/templates/images_and_snapshots/images/_detail_overview.html:56 +msgid "Euca2ools state" +msgstr "" + +#: dashboards/nova/images_and_snapshots/templates/images_and_snapshots/images/_detail_overview.html:60 +#: dashboards/syspanel/projects/tables.py:77 +msgid "Project ID" +msgstr "" + +#: dashboards/nova/images_and_snapshots/templates/images_and_snapshots/images/_detail_overview.html:64 +#, fuzzy +msgid "Image Type" +msgstr "イメージ" + +#: dashboards/nova/images_and_snapshots/templates/images_and_snapshots/images/_update.html:7 +#: dashboards/nova/images_and_snapshots/templates/images_and_snapshots/images/_update.html:22 +#: dashboards/nova/images_and_snapshots/templates/images_and_snapshots/images/update.html:3 +#: dashboards/nova/images_and_snapshots/templates/images_and_snapshots/images/update.html:6 +#: dashboards/syspanel/images/templates/images/_update.html:8 +#: dashboards/syspanel/images/templates/images/_update.html:23 +#: dashboards/syspanel/images/templates/images/update.html:4 +#: dashboards/syspanel/images/templates/images/update.html:7 +msgid "Update Image" +msgstr "イメージを更新" + +#: dashboards/nova/images_and_snapshots/templates/images_and_snapshots/images/_update.html:17 +#: dashboards/syspanel/images/templates/images/_update.html:18 +#, fuzzy +msgid "From here you can modify different properties of an image." +msgstr "ここより、ユーザとその資格を管理できます。" + +#: dashboards/nova/images_and_snapshots/templates/images_and_snapshots/images/detail.html:4 +msgid "Image Detail " +msgstr "" + +#: dashboards/nova/images_and_snapshots/templates/images_and_snapshots/snapshots/_create.html:8 +#: dashboards/nova/images_and_snapshots/templates/images_and_snapshots/snapshots/_create.html:23 +#: dashboards/nova/images_and_snapshots/templates/images_and_snapshots/snapshots/create.html:3 +#: dashboards/nova/volumes/tables.py:67 +msgid "Create Snapshot" +msgstr "" + +#: dashboards/nova/images_and_snapshots/templates/images_and_snapshots/snapshots/_create.html:18 +msgid "Snapshots preserve the disk state of a running instance." +msgstr "" + +#: dashboards/nova/images_and_snapshots/templates/images_and_snapshots/snapshots/create.html:6 +msgid "Create a Snapshot" +msgstr "" + #: dashboards/nova/images_and_snapshots/volume_snapshots/tables.py:30 -#: dashboards/nova/instances_and_volumes/instances/workflows.py:71 +#: dashboards/nova/instances/workflows.py:70 #, fuzzy msgid "Volume Snapshot" msgstr "スナップショット" #: dashboards/nova/images_and_snapshots/volume_snapshots/tables.py:31 -#: dashboards/nova/images_and_snapshots/volume_snapshots/tables.py:42 +#: dashboards/nova/images_and_snapshots/volume_snapshots/tables.py:52 #, fuzzy msgid "Volume Snapshots" msgstr "スナップショット" -#: dashboards/nova/images_and_snapshots/volume_snapshots/tables.py:38 +#: dashboards/nova/images_and_snapshots/volume_snapshots/tables.py:48 #, fuzzy msgid "Volume ID" msgstr "ボリューム" -#: dashboards/nova/instances_and_volumes/panel.py:24 -#, fuzzy -msgid "Instances & Volumes" -msgstr "インスタンス" - -#: dashboards/nova/instances_and_volumes/views.py:52 -#, fuzzy -msgid "Unable to retrieve instances." -msgstr "%sをリボーク(無効化)できません。" - -#: dashboards/nova/instances_and_volumes/views.py:62 -#: dashboards/syspanel/instances/views.py:65 -#, fuzzy -msgid "Unable to retrieve instance size information." -msgstr "%sをリボーク(無効化)できません。" - -#: dashboards/nova/instances_and_volumes/views.py:78 -#, fuzzy, python-format -msgid "Unable to fetch volumes: %s" -msgstr "ボリューム%sを取り外す事ができません。" - -#: dashboards/nova/instances_and_volumes/instances/forms.py:44 +#: dashboards/nova/instances/forms.py:44 #, fuzzy, python-format msgid "Instance \"%s\" updated." msgstr "インスタンス%sが開始しました。" -#: dashboards/nova/instances_and_volumes/instances/forms.py:46 +#: dashboards/nova/instances/forms.py:46 #, fuzzy msgid "Unable to update instance." msgstr "イメージ%sを更新できません。" -#: dashboards/nova/instances_and_volumes/instances/tables.py:56 -msgid "Terminate" -msgstr "削除" - -#: dashboards/nova/instances_and_volumes/instances/tables.py:57 -#, fuzzy -msgid "Terminated" -msgstr "削除" - -#: dashboards/nova/instances_and_volumes/instances/tables.py:59 -#: dashboards/nova/instances_and_volumes/instances/tables.py:76 -#: dashboards/nova/instances_and_volumes/instances/tables.py:91 -#: dashboards/nova/instances_and_volumes/instances/tables.py:119 -#: dashboards/nova/instances_and_volumes/instances/tables.py:261 +#: dashboards/nova/instances/panel.py:24 +#: dashboards/nova/instances/tables.py:63 +#: dashboards/nova/instances/tables.py:80 +#: dashboards/nova/instances/tables.py:95 +#: dashboards/nova/instances/tables.py:123 +#: dashboards/nova/instances/tables.py:290 +#: dashboards/nova/instances/templates/instances/index.html:3 +#: dashboards/nova/instances/templates/instances/index.html:6 #: dashboards/syspanel/instances/panel.py:28 #: dashboards/syspanel/instances/tables.py:95 +#: dashboards/syspanel/instances/templates/instances/index.html:3 #: dashboards/syspanel/projects/forms.py:115 -#: dashboards/syspanel/templates/syspanel/instances/index.html:3 msgid "Instances" msgstr "インスタンス" -#: dashboards/nova/instances_and_volumes/instances/tables.py:73 +#: dashboards/nova/instances/tables.py:60 +msgid "Terminate" +msgstr "削除" + +#: dashboards/nova/instances/tables.py:61 +msgid "Scheduled termination of" +msgstr "" + +#: dashboards/nova/instances/tables.py:77 msgid "Reboot" msgstr "リストを再読み込みする" -#: dashboards/nova/instances_and_volumes/instances/tables.py:74 +#: dashboards/nova/instances/tables.py:78 #, fuzzy msgid "Rebooted" msgstr "リストを再読み込みする" -#: dashboards/nova/instances_and_volumes/instances/tables.py:88 +#: dashboards/nova/instances/tables.py:92 msgid "Pause" msgstr "" -#: dashboards/nova/instances_and_volumes/instances/tables.py:88 +#: dashboards/nova/instances/tables.py:92 msgid "Unpause" msgstr "" -#: dashboards/nova/instances_and_volumes/instances/tables.py:89 +#: dashboards/nova/instances/tables.py:93 msgid "Paused" msgstr "" -#: dashboards/nova/instances_and_volumes/instances/tables.py:89 +#: dashboards/nova/instances/tables.py:93 msgid "Unpaused" msgstr "" -#: dashboards/nova/instances_and_volumes/instances/tables.py:116 +#: dashboards/nova/instances/tables.py:120 msgid "Suspend" msgstr "" -#: dashboards/nova/instances_and_volumes/instances/tables.py:116 +#: dashboards/nova/instances/tables.py:120 msgid "Resume" msgstr "" -#: dashboards/nova/instances_and_volumes/instances/tables.py:117 +#: dashboards/nova/instances/tables.py:121 msgid "Suspended" msgstr "" -#: dashboards/nova/instances_and_volumes/instances/tables.py:117 +#: dashboards/nova/instances/tables.py:121 msgid "Resumed" msgstr "" -#: dashboards/nova/instances_and_volumes/instances/tables.py:144 -#: dashboards/nova/instances_and_volumes/instances/workflows.py:376 -#: dashboards/nova/templates/nova/instances_and_volumes/instances/launch.html:3 -#: dashboards/nova/templates/nova/instances_and_volumes/instances/launch.html:6 +#: dashboards/nova/instances/tables.py:148 +#: dashboards/nova/instances/workflows.py:393 +#: dashboards/nova/instances/templates/instances/launch.html:3 +#: dashboards/nova/instances/templates/instances/launch.html:6 msgid "Launch Instance" msgstr "イメージを起動します。" -#: dashboards/nova/instances_and_volumes/instances/tables.py:151 -#: dashboards/nova/templates/nova/instances_and_volumes/instances/_update.html:7 +#: dashboards/nova/instances/tables.py:155 +#: dashboards/nova/instances/templates/instances/_update.html:7 msgid "Edit Instance" msgstr "インスタンスを編集" -#: dashboards/nova/instances_and_volumes/instances/tables.py:168 +#: dashboards/nova/instances/tables.py:172 msgid "VNC Console" msgstr "" -#: dashboards/nova/instances_and_volumes/instances/tables.py:183 +#: dashboards/nova/instances/tables.py:187 msgid "View Log" msgstr "" -#: dashboards/nova/instances_and_volumes/instances/tables.py:213 +#: dashboards/nova/instances/tables.py:232 #, python-format -msgid "%(RAM)s RAM | %(VCPU)s VCPU | %(disk)s Disk" +msgid "%(name)s | %(RAM)s RAM | %(VCPU)s VCPU | %(disk)s Disk" msgstr "" -#: dashboards/nova/instances_and_volumes/instances/tables.py:241 -#: dashboards/syspanel/instances/tables.py:73 usage/tables.py:47 +#: dashboards/nova/instances/tables.py:239 +#: dashboards/nova/instances/tables.py:246 +#, fuzzy +msgid "Not available" +msgstr "現在イメージがありません。" + +#: dashboards/nova/instances/tables.py:269 +#: dashboards/syspanel/instances/tables.py:73 usage/tables.py:56 #, fuzzy msgid "Instance Name" msgstr "インスタンス" -#: dashboards/nova/instances_and_volumes/instances/tables.py:250 +#: dashboards/nova/instances/tables.py:279 #: dashboards/syspanel/instances/tables.py:84 msgid "Task" msgstr "" -#: dashboards/nova/instances_and_volumes/instances/tables.py:257 +#: dashboards/nova/instances/tables.py:286 #: dashboards/syspanel/instances/tables.py:91 #, fuzzy msgid "Power State" msgstr "状態" -#: dashboards/nova/instances_and_volumes/instances/tabs.py:35 +#: dashboards/nova/instances/tabs.py:35 msgid "Log" msgstr "" -#: dashboards/nova/instances_and_volumes/instances/tabs.py:47 -#: dashboards/nova/instances_and_volumes/instances/views.py:63 +#: dashboards/nova/instances/tabs.py:47 dashboards/nova/instances/views.py:105 #, fuzzy, python-format msgid "Unable to get log for instance \"%s\"." msgstr "インスタンス%(inst)s: %(msg)sを更新する事ができません。" -#: dashboards/nova/instances_and_volumes/instances/tabs.py:54 +#: dashboards/nova/instances/tabs.py:54 msgid "VNC" msgstr "" -#: dashboards/nova/instances_and_volumes/instances/tabs.py:69 -#: dashboards/nova/instances_and_volumes/instances/views.py:79 +#: dashboards/nova/instances/tabs.py:69 dashboards/nova/instances/views.py:121 #, fuzzy, python-format msgid "Unable to get VNC console for instance \"%s\"." msgstr "インスタンス%(inst)s: %(msg)sを更新する事ができません。" -#: dashboards/nova/instances_and_volumes/instances/views.py:95 +#: dashboards/nova/instances/views.py:58 +#, fuzzy +msgid "Unable to retrieve instances." +msgstr "%sをリボーク(無効化)できません。" + +#: dashboards/nova/instances/views.py:81 +#: dashboards/syspanel/instances/views.py:89 +#, fuzzy +msgid "Unable to retrieve instance size information." +msgstr "%sをリボーク(無効化)できません。" + +#: dashboards/nova/instances/views.py:137 #, fuzzy msgid "Unable to retrieve instance details." msgstr "%sをリボーク(無効化)できません。" -#: dashboards/nova/instances_and_volumes/instances/views.py:130 +#: dashboards/nova/instances/views.py:172 #, fuzzy, python-format msgid "Unable to retrieve details for instance \"%s\"." msgstr "%sをリボーク(無効化)できません。" -#: dashboards/nova/instances_and_volumes/instances/workflows.py:34 -#: dashboards/syspanel/projects/tables.py:91 +#: dashboards/nova/instances/workflows.py:33 +#: dashboards/syspanel/projects/tables.py:92 #: dashboards/syspanel/users/tables.py:39 #: dashboards/syspanel/users/tables.py:73 tests/workflows_tests.py:40 msgid "User" msgstr "" -#: dashboards/nova/instances_and_volumes/instances/workflows.py:48 +#: dashboards/nova/instances/workflows.py:47 #, fuzzy msgid "Project & User" msgstr "プロジェクトを削除" -#: dashboards/nova/instances_and_volumes/instances/workflows.py:50 +#: dashboards/nova/instances/workflows.py:49 msgid "" "Admin users may optionally select the project and user for whom the instance " "should be created." msgstr "" -#: dashboards/nova/instances_and_volumes/instances/workflows.py:61 +#: dashboards/nova/instances/workflows.py:60 msgid "Don't boot from a volume." msgstr "" -#: dashboards/nova/instances_and_volumes/instances/workflows.py:62 +#: dashboards/nova/instances/workflows.py:61 msgid "Boot from volume." msgstr "" -#: dashboards/nova/instances_and_volumes/instances/workflows.py:63 +#: dashboards/nova/instances/workflows.py:62 msgid "Boot from volume snapshot (creates a new volume)." msgstr "" -#: dashboards/nova/instances_and_volumes/instances/workflows.py:67 -#: dashboards/nova/instances_and_volumes/instances/workflows.py:85 +#: dashboards/nova/instances/workflows.py:66 +#: dashboards/nova/instances/workflows.py:84 #, fuzzy msgid "Volume Options" msgstr "ボリューム" -#: dashboards/nova/instances_and_volumes/instances/workflows.py:70 -#: dashboards/nova/instances_and_volumes/instances/workflows.py:104 -#: dashboards/nova/instances_and_volumes/volumes/tables.py:35 -#: dashboards/nova/instances_and_volumes/volumes/tables.py:145 -#: dashboards/nova/templates/nova/instances_and_volumes/instances/_detail_overview.html:83 +#: dashboards/nova/instances/workflows.py:69 +#: dashboards/nova/instances/workflows.py:104 +#: dashboards/nova/instances/templates/instances/_detail_overview.html:93 +#: dashboards/nova/volumes/tables.py:36 dashboards/nova/volumes/tables.py:171 #, fuzzy msgid "Volume" msgstr "ボリューム" -#: dashboards/nova/instances_and_volumes/instances/workflows.py:73 +#: dashboards/nova/instances/workflows.py:72 #, fuzzy msgid "Device Name" msgstr "ユーザ名" -#: dashboards/nova/instances_and_volumes/instances/workflows.py:76 +#: dashboards/nova/instances/workflows.py:75 msgid "Volume mount point (e.g. 'vda' mounts at '/dev/vda')." msgstr "" -#: dashboards/nova/instances_and_volumes/instances/workflows.py:78 +#: dashboards/nova/instances/workflows.py:77 #, fuzzy msgid "Delete on Terminate" msgstr "削除" -#: dashboards/nova/instances_and_volumes/instances/workflows.py:81 +#: dashboards/nova/instances/workflows.py:80 msgid "Delete volume on instance terminate" msgstr "" -#: dashboards/nova/instances_and_volumes/instances/workflows.py:111 +#: dashboards/nova/instances/workflows.py:111 #, fuzzy msgid "Select Volume" msgstr "言語を選択" -#: dashboards/nova/instances_and_volumes/instances/workflows.py:119 -#: dashboards/nova/instances_and_volumes/instances/workflows.py:132 +#: dashboards/nova/instances/workflows.py:119 #, fuzzy -msgid "Unable to retrieve list of volumes" +msgid "Unable to retrieve list of volumes." msgstr "キー%sを作成できません。" -#: dashboards/nova/instances_and_volumes/instances/workflows.py:123 +#: dashboards/nova/instances/workflows.py:123 #, fuzzy msgid "Select Volume Snapshot" msgstr "新規ボリュームを作成する。" -#: dashboards/nova/instances_and_volumes/instances/workflows.py:164 +#: dashboards/nova/instances/workflows.py:132 +#, fuzzy +msgid "Unable to retrieve list of volume snapshots." +msgstr "ボリューム%sを作成できません。" + +#: dashboards/nova/instances/workflows.py:165 #, fuzzy msgid "Instance Source" msgstr "インスタンス" -#: dashboards/nova/instances_and_volumes/instances/workflows.py:167 +#: dashboards/nova/instances/workflows.py:168 #, fuzzy msgid "Instance Snapshot" msgstr "スナップショット" -#: dashboards/nova/instances_and_volumes/instances/workflows.py:169 +#: dashboards/nova/instances/workflows.py:170 #, fuzzy msgid "Server Name" msgstr "ユーザ名" -#: dashboards/nova/instances_and_volumes/instances/workflows.py:170 +#: dashboards/nova/instances/workflows.py:171 +#: dashboards/nova/instances/templates/instances/_detail_overview.html:22 #: dashboards/syspanel/flavors/tables.py:13 msgid "Flavor" msgstr "" -#: dashboards/nova/instances_and_volumes/instances/workflows.py:171 +#: dashboards/nova/instances/workflows.py:172 msgid "Size of image to launch." msgstr "" -#: dashboards/nova/instances_and_volumes/instances/workflows.py:172 -#: dashboards/nova/templates/nova/instances_and_volumes/instances/_launch_details_help.html:21 +#: dashboards/nova/instances/workflows.py:173 #, fuzzy msgid "Instance Count" msgstr "インスタンス" -#: dashboards/nova/instances_and_volumes/instances/workflows.py:175 +#: dashboards/nova/instances/workflows.py:176 msgid "Number of instances to launch." msgstr "" -#: dashboards/nova/instances_and_volumes/instances/workflows.py:178 +#: dashboards/nova/instances/workflows.py:179 #, fuzzy msgid "Details" msgstr "ボリューム" -#: dashboards/nova/instances_and_volumes/instances/workflows.py:197 +#: dashboards/nova/instances/workflows.py:198 msgid "" "Launching multiple instances is only supported for images and instance " "snapshots." msgstr "" -#: dashboards/nova/instances_and_volumes/instances/workflows.py:240 +#: dashboards/nova/instances/workflows.py:214 +#, fuzzy +msgid "Unable to retrieve public images." +msgstr "%sをリボーク(無効化)できません。" + +#: dashboards/nova/instances/workflows.py:228 +#, fuzzy +msgid "Unable to retrieve images for the current project." +msgstr "キー%sを作成できません。" + +#: dashboards/nova/instances/workflows.py:251 #, fuzzy msgid "Select Image" msgstr "言語を選択" -#: dashboards/nova/instances_and_volumes/instances/workflows.py:242 +#: dashboards/nova/instances/workflows.py:253 #, fuzzy msgid "No images available." msgstr "現在イメージがありません。" -#: dashboards/nova/instances_and_volumes/instances/workflows.py:251 +#: dashboards/nova/instances/workflows.py:262 #, fuzzy msgid "Select Instance Snapshot" msgstr "スナップショット" -#: dashboards/nova/instances_and_volumes/instances/workflows.py:253 +#: dashboards/nova/instances/workflows.py:264 #, fuzzy msgid "No snapshots available." msgstr "現在イメージがありません。" -#: dashboards/nova/instances_and_volumes/instances/workflows.py:264 +#: dashboards/nova/instances/workflows.py:275 #, fuzzy msgid "Unable to retrieve instance flavors." msgstr "%sをリボーク(無効化)できません。" -#: dashboards/nova/instances_and_volumes/instances/workflows.py:301 +#: dashboards/nova/instances/workflows.py:288 +#, fuzzy +msgid "Unable to retrieve quota information." +msgstr "イメージ%sの登録削除ができませんでした。" + +#: dashboards/nova/instances/workflows.py:318 msgid "Which keypair to use for authentication." msgstr "" -#: dashboards/nova/instances_and_volumes/instances/workflows.py:307 +#: dashboards/nova/instances/workflows.py:324 #, fuzzy msgid "Launch instance in these security groups." msgstr "セキュリティグループ%sを作成できません。" -#: dashboards/nova/instances_and_volumes/instances/workflows.py:312 +#: dashboards/nova/instances/workflows.py:329 msgid "" "Control access to your instance via keypairs, security groups, and other " "mechanisms." msgstr "" -#: dashboards/nova/instances_and_volumes/instances/workflows.py:322 +#: dashboards/nova/instances/workflows.py:339 #, fuzzy msgid "Unable to retrieve keypairs." msgstr "キー%sを作成できません。" -#: dashboards/nova/instances_and_volumes/instances/workflows.py:324 +#: dashboards/nova/instances/workflows.py:341 #, fuzzy msgid "Select a keypair" msgstr "プロジェクトを削除" -#: dashboards/nova/instances_and_volumes/instances/workflows.py:326 +#: dashboards/nova/instances/workflows.py:343 #, fuzzy msgid "No keypairs available." msgstr "現在イメージがありません。" -#: dashboards/nova/instances_and_volumes/instances/workflows.py:335 +#: dashboards/nova/instances/workflows.py:352 #, fuzzy msgid "Unable to retrieve list of security groups" msgstr "キー%sを作成できません。" -#: dashboards/nova/instances_and_volumes/instances/workflows.py:355 +#: dashboards/nova/instances/workflows.py:372 msgid "Customization Script" msgstr "" -#: dashboards/nova/instances_and_volumes/instances/workflows.py:357 +#: dashboards/nova/instances/workflows.py:374 msgid "" "A script or set of commands to be executed after the instance has been built " "(max 16kb)." msgstr "" -#: dashboards/nova/instances_and_volumes/instances/workflows.py:364 +#: dashboards/nova/instances/workflows.py:381 msgid "Post-Creation" msgstr "" -#: dashboards/nova/instances_and_volumes/instances/workflows.py:378 -#, fuzzy, python-format -msgid "Instance \"%s\" launched." -msgstr "インスタンス%sが開始しました。" +#: dashboards/nova/instances/workflows.py:395 +#, python-format +msgid "Launched %(count)s named \"%(name)s\"." +msgstr "" -#: dashboards/nova/instances_and_volumes/instances/workflows.py:379 +#: dashboards/nova/instances/workflows.py:396 #, fuzzy, python-format -msgid "Unable to launch instance \"%s\"." +msgid "Unable to launch %(count)s named \"%(name)s\"." msgstr "イメージ%sを更新できません。" -#: dashboards/nova/instances_and_volumes/volumes/forms.py:42 +#: dashboards/nova/instances/workflows.py:408 #, fuzzy, python-format -msgid "Error Creating Volume: %s" -msgstr "ユーザ%sを作成中..." +msgid "%s instances" +msgstr "インスタンス" -#: dashboards/nova/instances_and_volumes/volumes/forms.py:48 -msgid "Select an instance to attach to." -msgstr "" - -#: dashboards/nova/instances_and_volumes/volumes/forms.py:86 -#, python-format -msgid "Attaching volume %(vol)s to instance %(inst)s at %(dev)s" -msgstr "" - -#: dashboards/nova/instances_and_volumes/volumes/forms.py:95 -#, fuzzy, python-format -msgid "Error attaching volume: %s" -msgstr "ユーザ%sを作成中..." - -#: dashboards/nova/instances_and_volumes/volumes/forms.py:120 -#, fuzzy, python-format -msgid "Creating volume snapshot \"%s\"" -msgstr "ユーザ%sを作成中..." - -#: dashboards/nova/instances_and_volumes/volumes/forms.py:125 -#, fuzzy, python-format -msgid "Error Creating Volume Snapshot: %(exc)s" -msgstr "ユーザ%sを作成中..." - -#: dashboards/nova/instances_and_volumes/volumes/tables.py:36 -#: dashboards/nova/instances_and_volumes/volumes/tables.py:134 -#: dashboards/nova/instances_and_volumes/volumes/tables.py:146 -#: dashboards/nova/templates/nova/instances_and_volumes/instances/_detail_overview.html:78 -#: dashboards/syspanel/projects/forms.py:116 -msgid "Volumes" -msgstr "ボリューム" - -#: dashboards/nova/instances_and_volumes/volumes/tables.py:49 -#: dashboards/nova/templates/nova/instances_and_volumes/volumes/_create.html:8 -#: dashboards/nova/templates/nova/instances_and_volumes/volumes/_create.html:23 +#: dashboards/nova/instances/workflows.py:411 #, fuzzy -msgid "Create Volume" -msgstr "作成" +msgid "instance" +msgstr "インスタンス" -#: dashboards/nova/instances_and_volumes/volumes/tables.py:56 -#, fuzzy -msgid "Edit Attachments" -msgstr "ボリュームを付与する。" - -#: dashboards/nova/instances_and_volumes/volumes/tables.py:66 -#: dashboards/nova/templates/nova/images_and_snapshots/snapshots/_create.html:8 -#: dashboards/nova/templates/nova/images_and_snapshots/snapshots/_create.html:23 -#: dashboards/nova/templates/nova/images_and_snapshots/snapshots/create.html:3 -msgid "Create Snapshot" -msgstr "" - -#: dashboards/nova/instances_and_volumes/volumes/tables.py:83 -#: templatetags/sizeformat.py:58 -#, python-format -msgid "%s GB" -msgstr "" - -#: dashboards/nova/instances_and_volumes/volumes/tables.py:130 -#: dashboards/nova/templates/nova/instances_and_volumes/volumes/_detail_overview.html:34 -#, fuzzy -msgid "Attachments" -msgstr "ボリュームを付与する。" - -#: dashboards/nova/instances_and_volumes/volumes/tables.py:143 -msgid "Detach" -msgstr "" - -#: dashboards/nova/instances_and_volumes/volumes/tables.py:144 -msgid "Detached" -msgstr "" - -#: dashboards/nova/instances_and_volumes/volumes/tabs.py:41 -#, fuzzy -msgid "Unable to retrieve volume details." -msgstr "ボリューム%sを作成できません。" - -#: dashboards/nova/instances_and_volumes/volumes/views.py:71 -#: dashboards/nova/instances_and_volumes/volumes/views.py:81 -#, fuzzy -msgid "Unable to retrieve volume information." -msgstr "イメージ%sの登録削除ができませんでした。" - -#: dashboards/nova/templates/nova/access_and_security/index.html:6 -msgid "Access & Security" -msgstr "" - -#: dashboards/nova/templates/nova/access_and_security/floating_ips/_allocate.html:8 -#: dashboards/nova/templates/nova/access_and_security/floating_ips/allocate.html:3 -#, fuzzy -msgid "Allocate Floating IP" -msgstr "イメージ%sを更新できません。" - -#: dashboards/nova/templates/nova/access_and_security/floating_ips/_allocate.html:17 -#: dashboards/nova/templates/nova/access_and_security/floating_ips/_associate.html:16 -#: dashboards/nova/templates/nova/images_and_snapshots/images/_update.html:16 -#: dashboards/nova/templates/nova/images_and_snapshots/snapshots/_create.html:17 -#: dashboards/nova/templates/nova/instances_and_volumes/instances/_update.html:16 -#: dashboards/settings/templates/settings/ec2/download_form.html:17 -#: dashboards/settings/templates/settings/project/_openrc.html:17 -#: dashboards/settings/templates/settings/user/_language.html:30 -msgid "Description:" -msgstr "説明:" - -#: dashboards/nova/templates/nova/access_and_security/floating_ips/_allocate.html:18 -msgid "Allocate a floating IP from a given floating ip pool." -msgstr "" - -#: dashboards/nova/templates/nova/access_and_security/floating_ips/_allocate.html:20 -#: dashboards/nova/templates/nova/instances_and_volumes/instances/_launch_details_help.html:19 -#, fuzzy -msgid "Project Quotas" -msgstr "クォータ" - -#: dashboards/nova/templates/nova/access_and_security/floating_ips/_allocate.html:31 -msgid "Allocate IP" -msgstr "" - -#: dashboards/nova/templates/nova/access_and_security/floating_ips/_allocate.html:32 -#: dashboards/nova/templates/nova/access_and_security/floating_ips/_associate.html:23 -#: dashboards/nova/templates/nova/access_and_security/keypairs/_create.html:24 -#: dashboards/nova/templates/nova/access_and_security/keypairs/_import.html:24 -#: dashboards/nova/templates/nova/access_and_security/security_groups/_create.html:24 -#: dashboards/nova/templates/nova/access_and_security/security_groups/_edit_rules.html:20 -#: dashboards/nova/templates/nova/containers/_create.html:23 -#: dashboards/nova/templates/nova/images_and_snapshots/images/_update.html:23 -#: dashboards/nova/templates/nova/images_and_snapshots/snapshots/_create.html:24 -#: dashboards/nova/templates/nova/instances_and_volumes/instances/_update.html:23 -#: dashboards/nova/templates/nova/instances_and_volumes/volumes/_attach.html:20 -#: dashboards/nova/templates/nova/instances_and_volumes/volumes/_create.html:24 -#: dashboards/nova/templates/nova/instances_and_volumes/volumes/_create_snapshot.html:24 -#: dashboards/nova/templates/nova/objects/_copy.html:23 -#: dashboards/nova/templates/nova/objects/_upload.html:24 -#: dashboards/settings/templates/settings/ec2/download_form.html:24 -#: dashboards/settings/templates/settings/project/_openrc.html:24 -#: dashboards/settings/templates/settings/user/_language.html:37 -#: dashboards/syspanel/templates/syspanel/flavors/_create.html:24 -#: dashboards/syspanel/templates/syspanel/images/_update.html:24 -#: dashboards/syspanel/templates/syspanel/projects/_add_user.html:24 -#: dashboards/syspanel/templates/syspanel/projects/_create.html:24 -#: dashboards/syspanel/templates/syspanel/projects/_quotas.html:23 -#: dashboards/syspanel/templates/syspanel/projects/_update.html:24 -#: dashboards/syspanel/templates/syspanel/users/_create.html:23 -#: dashboards/syspanel/templates/syspanel/users/_update.html:23 -#: templates/horizon/common/_workflow.html:29 -msgid "Cancel" -msgstr "" - -#: dashboards/nova/templates/nova/access_and_security/floating_ips/_associate.html:7 -#: dashboards/nova/templates/nova/access_and_security/floating_ips/associate.html:7 -msgid "Associate Floating IP" -msgstr "" - -#: dashboards/nova/templates/nova/access_and_security/floating_ips/_associate.html:17 -msgid "Associate a floating ip with an instance." -msgstr "" - -#: dashboards/nova/templates/nova/access_and_security/keypairs/_create.html:17 -#: dashboards/nova/templates/nova/access_and_security/keypairs/_import.html:17 -#, fuzzy -msgid "" -"Keypairs are ssh credentials which are injected into images when they are " -"launched. Creating a new key pair registers the public key and downloads the " -"private key (a .pem file)." -msgstr "" -"キーペアは、ssh形式の資格情報で、イメージを起動した時に、挿入されます。新しい" -"キーペアを作成するとき、公開キーを登録し、秘密キー(pemファイル)をダウンロード" -"します。これは、通常の秘密キーの様に保護した上でご使用ください。" - -#: dashboards/nova/templates/nova/access_and_security/keypairs/_create.html:18 -#: dashboards/nova/templates/nova/access_and_security/keypairs/_import.html:18 -msgid "Protect and use the key as you would any normal ssh private key." -msgstr "" - -#: dashboards/nova/templates/nova/access_and_security/keypairs/download.html:3 -#: dashboards/nova/templates/nova/access_and_security/keypairs/download.html:6 -#, fuzzy -msgid "Download Keypair" -msgstr "キーペアを作成" - -#: dashboards/nova/templates/nova/access_and_security/keypairs/download.html:11 -#, python-format -msgid "" -"The keypair "%(keypair_name)s" should download automatically. If " -"not use the link below." -msgstr "" - -#: dashboards/nova/templates/nova/access_and_security/keypairs/download.html:15 -#, python-format -msgid "Download keypair "%(keypair_name)s"" -msgstr "" - -#: dashboards/nova/templates/nova/access_and_security/security_groups/_create.html:18 -#, fuzzy -msgid "From here you can create a new security group" -msgstr "ここで、複数のユーザ資格を編集できます。" - -#: dashboards/nova/templates/nova/access_and_security/security_groups/_edit_rules.html:9 -#: dashboards/nova/templates/nova/access_and_security/security_groups/edit_rules.html:6 -#, fuzzy -msgid "Edit Security Group Rules" -msgstr "セキュリティグループ" - -#: dashboards/nova/templates/nova/access_and_security/security_groups/_edit_rules.html:12 -#: dashboards/nova/templates/nova/access_and_security/security_groups/_edit_rules.html:19 -msgid "Add Rule" -msgstr "" - -#: dashboards/nova/templates/nova/containers/_create.html:17 -msgid "" -"A container is a storage compartment for your data and provides a way for " -"you to organize your data. You can think of a container as a folder in " -"Windows ® or a directory in UNIX ®. The primary difference between a " -"container and these other file system concepts is that containers cannot be " -"nested. You can, however, create an unlimited number of containers within " -"your account. Data must be stored in a container so you must have at least " -"one container defined in your account prior to uploading data." -msgstr "" - -#: dashboards/nova/templates/nova/images_and_snapshots/index.html:3 -#: dashboards/nova/templates/nova/images_and_snapshots/index.html:6 -msgid "Images & Snapshots" -msgstr "" - -#: dashboards/nova/templates/nova/images_and_snapshots/images/_detail_overview.html:3 -#, fuzzy -msgid "Image Overview" -msgstr "概要" - -#: dashboards/nova/templates/nova/images_and_snapshots/images/_detail_overview.html:6 -#: dashboards/nova/templates/nova/instances_and_volumes/instances/_detail_overview.html:6 -#: dashboards/nova/templates/nova/instances_and_volumes/volumes/_detail_overview.html:6 -#, fuzzy -msgid "Info" -msgstr "情報" - -#: dashboards/nova/templates/nova/images_and_snapshots/images/_detail_overview.html:11 -#: dashboards/nova/templates/nova/instances_and_volumes/instances/_detail_overview.html:11 -#: dashboards/nova/templates/nova/instances_and_volumes/volumes/_detail_overview.html:11 -#: dashboards/syspanel/projects/forms.py:83 -#: dashboards/syspanel/users/forms.py:104 -#: dashboards/syspanel/users/tables.py:106 -msgid "ID" -msgstr "" - -#: dashboards/nova/templates/nova/images_and_snapshots/images/_detail_overview.html:17 -msgid "Checksum" -msgstr "" - -#: dashboards/nova/templates/nova/images_and_snapshots/images/_detail_overview.html:19 -#: dashboards/nova/templates/nova/instances_and_volumes/volumes/_detail_overview.html:28 -#, fuzzy -msgid "Created" -msgstr "作成" - -#: dashboards/nova/templates/nova/images_and_snapshots/images/_detail_overview.html:21 -#, fuzzy -msgid "Updated" -msgstr "イメージを更新" - -#: dashboards/nova/templates/nova/images_and_snapshots/images/_detail_overview.html:27 -#: dashboards/nova/templates/nova/instances_and_volumes/instances/_detail_overview.html:19 -#: dashboards/nova/templates/nova/instances_and_volumes/volumes/_detail_overview.html:23 -msgid "Specs" -msgstr "" - -#: dashboards/nova/templates/nova/images_and_snapshots/images/_detail_overview.html:40 -msgid "Custom Properties" -msgstr "" - -#: dashboards/nova/templates/nova/images_and_snapshots/images/_detail_overview.html:56 -msgid "Euca2ools state" -msgstr "" - -#: dashboards/nova/templates/nova/images_and_snapshots/images/_detail_overview.html:60 -#: usage/tables.py:28 -msgid "Project ID" -msgstr "" - -#: dashboards/nova/templates/nova/images_and_snapshots/images/_detail_overview.html:64 -#, fuzzy -msgid "Image Type" -msgstr "イメージ" - -#: dashboards/nova/templates/nova/images_and_snapshots/images/_update.html:7 -#: dashboards/nova/templates/nova/images_and_snapshots/images/_update.html:22 -#: dashboards/nova/templates/nova/images_and_snapshots/images/update.html:3 -#: dashboards/nova/templates/nova/images_and_snapshots/images/update.html:6 -#: dashboards/syspanel/templates/syspanel/images/_update.html:8 -#: dashboards/syspanel/templates/syspanel/images/_update.html:23 -#: dashboards/syspanel/templates/syspanel/images/update.html:4 -#: dashboards/syspanel/templates/syspanel/images/update.html:7 -msgid "Update Image" -msgstr "イメージを更新" - -#: dashboards/nova/templates/nova/images_and_snapshots/images/_update.html:17 -#: dashboards/syspanel/templates/syspanel/images/_update.html:18 -#, fuzzy -msgid "From here you can modify different properties of an image." -msgstr "ここより、ユーザとその資格を管理できます。" - -#: dashboards/nova/templates/nova/images_and_snapshots/images/detail.html:4 -msgid "Image Detail " -msgstr "" - -#: dashboards/nova/templates/nova/images_and_snapshots/snapshots/_create.html:18 -msgid "Snapshots preserve the disk state of a running instance." -msgstr "" - -#: dashboards/nova/templates/nova/images_and_snapshots/snapshots/create.html:6 -msgid "Create a Snapshot" -msgstr "" - -#: dashboards/nova/templates/nova/instances_and_volumes/index.html:6 -msgid "Instances & Volumes" -msgstr "" - -#: dashboards/nova/templates/nova/instances_and_volumes/instances/_detail_log.html:7 +#: dashboards/nova/instances/templates/instances/_detail_log.html:7 msgid "View Full Log" msgstr "" -#: dashboards/nova/templates/nova/instances_and_volumes/instances/_detail_overview.html:3 +#: dashboards/nova/instances/templates/instances/_detail_overview.html:3 #, fuzzy msgid "Instance Overview" msgstr "インスタンス" -#: dashboards/nova/templates/nova/instances_and_volumes/instances/_detail_overview.html:22 -#: dashboards/nova/templates/nova/instances_and_volumes/instances/_launch_details_help.html:14 -#: usage/tables.py:21 +#: dashboards/nova/instances/templates/instances/_detail_overview.html:24 +#: dashboards/nova/instances/templates/instances/_launch_details_help.html:14 +#: usage/tables.py:22 msgid "RAM" msgstr "" -#: dashboards/nova/templates/nova/instances_and_volumes/instances/_detail_overview.html:24 -#: dashboards/nova/templates/nova/instances_and_volumes/instances/_launch_details_help.html:10 -#: dashboards/nova/templates/nova/instances_and_volumes/instances/_launch_details_help.html:28 +#: dashboards/nova/instances/templates/instances/_detail_overview.html:26 +#: dashboards/nova/instances/templates/instances/_launch_details_help.html:10 #: dashboards/syspanel/flavors/forms.py:38 #: dashboards/syspanel/flavors/tables.py:30 -#: dashboards/syspanel/projects/forms.py:114 usage/tables.py:18 +#: dashboards/syspanel/projects/forms.py:114 usage/tables.py:19 msgid "VCPUs" msgstr "" -#: dashboards/nova/templates/nova/instances_and_volumes/instances/_detail_overview.html:25 +#: dashboards/nova/instances/templates/instances/_detail_overview.html:27 msgid "VCPU" msgstr "" -#: dashboards/nova/templates/nova/instances_and_volumes/instances/_detail_overview.html:26 -#: dashboards/nova/templates/nova/instances_and_volumes/instances/_launch_details_help.html:35 -#: usage/tables.py:19 +#: dashboards/nova/instances/templates/instances/_detail_overview.html:28 +#: usage/tables.py:20 msgid "Disk" msgstr "" -#: dashboards/nova/templates/nova/instances_and_volumes/instances/_detail_overview.html:27 -#: dashboards/nova/templates/nova/instances_and_volumes/instances/_launch_details_help.html:11 -#: dashboards/nova/templates/nova/instances_and_volumes/instances/_launch_details_help.html:12 -#: dashboards/nova/templates/nova/instances_and_volumes/instances/_launch_details_help.html:13 -#: dashboards/nova/templates/nova/instances_and_volumes/instances/_launch_details_help.html:35 -#: dashboards/nova/templates/nova/instances_and_volumes/volumes/_detail_overview.html:27 +#: dashboards/nova/instances/templates/instances/_detail_overview.html:29 +#: dashboards/nova/instances/templates/instances/_launch_details_help.html:11 +#: dashboards/nova/instances/templates/instances/_launch_details_help.html:12 +#: dashboards/nova/instances/templates/instances/_launch_details_help.html:13 +#: dashboards/nova/volumes/templates/volumes/_detail_overview.html:27 msgid "GB" msgstr "" -#: dashboards/nova/templates/nova/instances_and_volumes/instances/_detail_overview.html:32 +#: dashboards/nova/instances/templates/instances/_detail_overview.html:34 msgid "IP Addresses" msgstr "" -#: dashboards/nova/templates/nova/instances_and_volumes/instances/_detail_overview.html:57 +#: dashboards/nova/instances/templates/instances/_detail_overview.html:59 msgid "No rules defined." msgstr "" -#: dashboards/nova/templates/nova/instances_and_volumes/instances/_detail_overview.html:66 +#: dashboards/nova/instances/templates/instances/_detail_overview.html:68 msgid "Meta" msgstr "" -#: dashboards/nova/templates/nova/instances_and_volumes/instances/_detail_overview.html:69 +#: dashboards/nova/instances/templates/instances/_detail_overview.html:71 #, fuzzy msgid "Key Name" msgstr "ユーザ名" -#: dashboards/nova/templates/nova/instances_and_volumes/instances/_detail_overview.html:93 +#: dashboards/nova/instances/templates/instances/_detail_overview.html:84 +#, fuzzy +msgid "Volumes Attached" +msgstr "ボリュームを付与する。" + +#: dashboards/nova/instances/templates/instances/_detail_overview.html:88 +#: dashboards/nova/volumes/tables.py:156 +#: dashboards/nova/volumes/templates/volumes/_detail_overview.html:38 +#: dashboards/nova/volumes/templates/volumes/_detail_overview.html:45 +#, fuzzy +msgid "Attached To" +msgstr "ボリュームを付与する。" + +#: dashboards/nova/instances/templates/instances/_detail_overview.html:90 +#: dashboards/nova/volumes/templates/volumes/_detail_overview.html:42 +msgid "on" +msgstr "" + +#: dashboards/nova/instances/templates/instances/_detail_overview.html:94 msgid "No volumes attached." msgstr "" -#: dashboards/nova/templates/nova/instances_and_volumes/instances/_detail_vnc.html:3 +#: dashboards/nova/instances/templates/instances/_detail_vnc.html:3 #, fuzzy msgid "Instance VNC Console" msgstr "インスタンス" -#: dashboards/nova/templates/nova/instances_and_volumes/instances/_detail_vnc.html:5 +#: dashboards/nova/instances/templates/instances/_detail_vnc.html:5 msgid "" "If VNC console is not responding to keyboard input: click the grey status " "bar below." msgstr "" -#: dashboards/nova/templates/nova/instances_and_volumes/instances/_detail_vnc.html:5 +#: dashboards/nova/instances/templates/instances/_detail_vnc.html:5 msgid "Click here to show only VNC" msgstr "" -#: dashboards/nova/templates/nova/instances_and_volumes/instances/_detail_vnc.html:8 +#: dashboards/nova/instances/templates/instances/_detail_vnc.html:8 msgid "VNC console is currently unavailabe. Please try again later." msgstr "" -#: dashboards/nova/templates/nova/instances_and_volumes/instances/_detail_vnc.html:9 +#: dashboards/nova/instances/templates/instances/_detail_vnc.html:9 msgid "Reload" msgstr "" -#: dashboards/nova/templates/nova/instances_and_volumes/instances/_launch_customize_help.html:2 +#: dashboards/nova/instances/templates/instances/_launch_customize_help.html:2 msgid "" "You can customize your instance after it's launched using the options " "available here." msgstr "" -#: dashboards/nova/templates/nova/instances_and_volumes/instances/_launch_customize_help.html:3 +#: dashboards/nova/instances/templates/instances/_launch_customize_help.html:3 msgid "" "The \"Customization Script\" field is analogous to \"User Data\" in other " "systems." msgstr "" -#: dashboards/nova/templates/nova/instances_and_volumes/instances/_launch_details_help.html:3 +#: dashboards/nova/instances/templates/instances/_launch_details_help.html:3 msgid "Specify the details for launching an instance." msgstr "" -#: dashboards/nova/templates/nova/instances_and_volumes/instances/_launch_details_help.html:4 +#: dashboards/nova/instances/templates/instances/_launch_details_help.html:4 msgid "" "The chart below shows the resources used by this project in relation to the " "project's quotas." msgstr "" -#: dashboards/nova/templates/nova/instances_and_volumes/instances/_launch_details_help.html:6 +#: dashboards/nova/instances/templates/instances/_launch_details_help.html:6 #, fuzzy msgid "Flavor Details" msgstr "インスタンスタイプ" -#: dashboards/nova/templates/nova/instances_and_volumes/instances/_launch_details_help.html:11 +#: dashboards/nova/instances/templates/instances/_launch_details_help.html:11 #: dashboards/syspanel/flavors/tables.py:32 msgid "Root Disk" msgstr "" -#: dashboards/nova/templates/nova/instances_and_volumes/instances/_launch_details_help.html:12 +#: dashboards/nova/instances/templates/instances/_launch_details_help.html:12 #: dashboards/syspanel/flavors/tables.py:34 msgid "Ephemeral Disk" msgstr "" -#: dashboards/nova/templates/nova/instances_and_volumes/instances/_launch_details_help.html:13 +#: dashboards/nova/instances/templates/instances/_launch_details_help.html:13 msgid "Total Disk" msgstr "" -#: dashboards/nova/templates/nova/instances_and_volumes/instances/_launch_details_help.html:14 -#: dashboards/nova/templates/nova/instances_and_volumes/instances/_launch_details_help.html:42 +#: dashboards/nova/instances/templates/instances/_launch_details_help.html:14 +#: dashboards/nova/instances/templates/instances/_launch_details_help.html:37 msgid "MB" msgstr "" -#: dashboards/nova/templates/nova/instances_and_volumes/instances/_launch_details_help.html:42 -#: dashboards/syspanel/flavors/tables.py:31 -msgid "Memory" +#: dashboards/nova/instances/templates/instances/_launch_details_help.html:21 +#, fuzzy +msgid "Number of Instances" +msgstr "インスタンス" + +#: dashboards/nova/instances/templates/instances/_launch_details_help.html:29 +msgid "Number of VCPUs" msgstr "" -#: dashboards/nova/templates/nova/instances_and_volumes/instances/_launch_volumes_help.html:3 +#: dashboards/nova/instances/templates/instances/_launch_details_help.html:37 +msgid "Total Memory" +msgstr "" + +#: dashboards/nova/instances/templates/instances/_launch_volumes_help.html:3 msgid "" "An instance can be launched with varying types of attached storage. You may " "select from those options here." msgstr "" -#: dashboards/nova/templates/nova/instances_and_volumes/instances/_update.html:17 +#: dashboards/nova/instances/templates/instances/_update.html:17 msgid "You may update the editable properties of your instance here." msgstr "" -#: dashboards/nova/templates/nova/instances_and_volumes/instances/_update.html:22 +#: dashboards/nova/instances/templates/instances/_update.html:22 msgid "Save Changes" msgstr "" -#: dashboards/nova/templates/nova/instances_and_volumes/instances/detail.html:3 +#: dashboards/nova/instances/templates/instances/detail.html:3 #, fuzzy msgid "Instance Detail" msgstr "インスタンスID:" -#: dashboards/nova/templates/nova/instances_and_volumes/instances/update.html:3 -#: dashboards/nova/templates/nova/instances_and_volumes/instances/update.html:6 +#: dashboards/nova/instances/templates/instances/update.html:3 +#: dashboards/nova/instances/templates/instances/update.html:6 msgid "Update Instance" msgstr "インスタンスを更新" -#: dashboards/nova/templates/nova/instances_and_volumes/volumes/_attach.html:9 -#: dashboards/nova/templates/nova/instances_and_volumes/volumes/attach.html:6 +#: dashboards/nova/templates/nova/_warning.html:6 +msgid "You currently have the power to damage your OpenStack cloud..." +msgstr "" + +#: dashboards/nova/templates/nova/_warning.html:9 +msgid "" +"Due to inconsistencies in the way Nova interacts with Keystone, a user with " +"an admin role has access to all resources in the system (volumes, snapshots, " +"keypairs, etc.), even in the Project dashboard where they should only see a " +"properly-scoped subset of those resources." +msgstr "" + +#: dashboards/nova/templates/nova/_warning.html:10 +msgid "" +"This means that Nova allows an admin user in the Project Dashboard to " +"successfully take actions which otherwise should not be permitted, causing " +"irresolvable conflicts in Nova." +msgstr "" + +#: dashboards/nova/templates/nova/_warning.html:11 +msgid "A list of the known problems are as follows:" +msgstr "" + +#: dashboards/nova/templates/nova/_warning.html:13 +msgid "" +"Attaching a volume owned by project A to an instance in project B can " +"completely hang Nova." +msgstr "" + +#: dashboards/nova/templates/nova/_warning.html:14 +msgid "" +"Assigning keypairs owned by project A to an instance in project B can result " +"in failed instances, problems in retrieving instance details for non-admin " +"users, and/or security holes should the instance succeed in spawning." +msgstr "" + +#: dashboards/nova/templates/nova/_warning.html:15 +msgid "" +"Attempting to launch an instance in project A from a snapshot or volume " +"snapshot owned by project B can hang Nova." +msgstr "" + +#: dashboards/nova/templates/nova/_warning.html:16 +msgid "" +"Attempting to boot from a volume owned by project A in project B can hang " +"Nova." +msgstr "" + +#: dashboards/nova/templates/nova/_warning.html:18 +msgid "" +"This is only a list of the reported inconsistencies. There may be others." +msgstr "" + +#: dashboards/nova/templates/nova/_warning.html:19 +msgid "" +"The recommended practice until this problem is resolved is to keep your " +"admin users and regular users separate. Create an \"admin\" project that " +"admin users have access to, and do not grant your admin users the admin role " +"on any other projects." +msgstr "" + +#: dashboards/nova/templates/nova/_warning.html:20 +msgid "" +"To follow the status of this bug, take a look at the following items on " +"launchpad:" +msgstr "" + +#: dashboards/nova/templates/nova/_warning.html:27 +msgid "" +"Thank you for reading this warning and operating your cloud responsibly." +msgstr "" + +#: dashboards/nova/templates/nova/_warning.html:30 +msgid "Close" +msgstr "" + +#: dashboards/nova/templates/nova/base.html:9 +#, fuzzy +msgid "Caution" +msgstr "ロケーション" + +#: dashboards/nova/templates/nova/base.html:10 +msgid "You are acting as an admin user in the project dashboard." +msgstr "" + +#: dashboards/nova/templates/nova/base.html:12 +msgid "Learn More" +msgstr "" + +#: dashboards/nova/volumes/forms.py:40 +#, python-format +msgid "" +"A volume of %(req)iGB cannot be created as you only have %(avail)iGB of your " +"quota available." +msgstr "" + +#: dashboards/nova/volumes/forms.py:47 +msgid "You are already using all of your available volumes." +msgstr "" + +#: dashboards/nova/volumes/forms.py:60 +#, fuzzy +msgid "Unable to create volume." +msgstr "ボリューム%sを作成できません。" + +#: dashboards/nova/volumes/forms.py:67 +msgid "Select an instance to attach to." +msgstr "" + +#: dashboards/nova/volumes/forms.py:100 +msgid "Unknown instance (None)" +msgstr "" + +#: dashboards/nova/volumes/forms.py:111 +#, python-format +msgid "Attaching volume %(vol)s to instance %(inst)s on %(dev)s." +msgstr "" + +#: dashboards/nova/volumes/forms.py:118 +#, fuzzy +msgid "Unable to attach volume." +msgstr "ボリューム%sを付与できません。" + +#: dashboards/nova/volumes/forms.py:142 +#, fuzzy, python-format +msgid "Creating volume snapshot \"%s\"" +msgstr "ユーザ%sを作成中..." + +#: dashboards/nova/volumes/forms.py:146 +#, fuzzy +msgid "Unable to create volume snapshot." +msgstr "ボリューム%sを作成できません。" + +#: dashboards/nova/volumes/panel.py:24 dashboards/nova/volumes/tables.py:37 +#: dashboards/nova/volumes/tables.py:160 dashboards/nova/volumes/tables.py:172 +#: dashboards/nova/volumes/templates/volumes/index.html:3 +#: dashboards/nova/volumes/templates/volumes/index.html:6 +#: dashboards/syspanel/projects/forms.py:116 +#: dashboards/syspanel/volumes/panel.py:9 +#: dashboards/syspanel/volumes/tables.py:15 +#: dashboards/syspanel/volumes/templates/volumes/index.html:3 +#: dashboards/syspanel/volumes/templates/volumes/index.html:6 +msgid "Volumes" +msgstr "ボリューム" + +#: dashboards/nova/volumes/tables.py:50 +#: dashboards/nova/volumes/templates/volumes/_create.html:8 +#: dashboards/nova/volumes/templates/volumes/_create.html:55 +#, fuzzy +msgid "Create Volume" +msgstr "作成" + +#: dashboards/nova/volumes/tables.py:57 +#, fuzzy +msgid "Edit Attachments" +msgstr "ボリュームを付与する。" + +#: dashboards/nova/volumes/tables.py:84 +#, python-format +msgid "%sGB" +msgstr "" + +#: dashboards/nova/volumes/tables.py:97 +#, fuzzy +msgid "Unable to retrieve attachment information." +msgstr "イメージ%sの登録削除ができませんでした。" + +#: dashboards/nova/volumes/tables.py:114 +#, fuzzy, python-format +msgid "Attached to %(instance)s on %(dev)s" +msgstr "イメージを起動します。" + +#: dashboards/nova/volumes/tables.py:169 +msgid "Detach" +msgstr "" + +#: dashboards/nova/volumes/tables.py:170 +#, fuzzy +msgid "Detaching" +msgstr "ボリューム" + +#: dashboards/nova/volumes/tables.py:205 +#, python-format +msgid "%(dev)s on instance %(instance_name)s" +msgstr "" + +#: dashboards/nova/volumes/tabs.py:41 +#, fuzzy +msgid "Unable to retrieve volume details." +msgstr "ボリューム%sを作成できません。" + +#: dashboards/nova/volumes/views.py:50 +#, fuzzy +msgid "Unable to retrieve volume list." +msgstr "%sをリボーク(無効化)できません。" + +#: dashboards/nova/volumes/views.py:56 +#, fuzzy +msgid "Unable to retrieve volume/instance attachment information" +msgstr "%sをリボーク(無効化)できません。" + +#: dashboards/nova/volumes/views.py:114 dashboards/nova/volumes/views.py:124 +#, fuzzy +msgid "Unable to retrieve volume information." +msgstr "イメージ%sの登録削除ができませんでした。" + +#: dashboards/nova/volumes/templates/volumes/_attach.html:9 +#: dashboards/nova/volumes/templates/volumes/attach.html:6 msgid "Manage Volume Attachments" msgstr "" -#: dashboards/nova/templates/nova/instances_and_volumes/volumes/_attach.html:12 +#: dashboards/nova/volumes/templates/volumes/_attach.html:12 #, fuzzy msgid "Attach To Instance" msgstr "イメージを起動します。" -#: dashboards/nova/templates/nova/instances_and_volumes/volumes/_attach.html:19 +#: dashboards/nova/volumes/templates/volumes/_attach.html:19 #, fuzzy msgid "Attach Volume" msgstr "ボリュームを付与する。" -#: dashboards/nova/templates/nova/instances_and_volumes/volumes/_create.html:18 -#: dashboards/nova/templates/nova/instances_and_volumes/volumes/_create_snapshot.html:18 +#: dashboards/nova/volumes/templates/volumes/_create.html:20 +#: dashboards/nova/volumes/templates/volumes/_create_snapshot.html:18 msgid "Volumes are block devices that can be attached to instances." msgstr "" -#: dashboards/nova/templates/nova/instances_and_volumes/volumes/_create_snapshot.html:8 -#: dashboards/nova/templates/nova/instances_and_volumes/volumes/_create_snapshot.html:23 -#: dashboards/nova/templates/nova/instances_and_volumes/volumes/create_snapshot.html:3 +#: dashboards/nova/volumes/templates/volumes/_create.html:22 +#, fuzzy +msgid "Volume Quotas" +msgstr "ボリューム" + +#: dashboards/nova/volumes/templates/volumes/_create.html:25 +msgid "Total Gigabytes" +msgstr "" + +#: dashboards/nova/volumes/templates/volumes/_create.html:34 +msgid "Number of Volumes" +msgstr "" + +#: dashboards/nova/volumes/templates/volumes/_create_snapshot.html:8 +#: dashboards/nova/volumes/templates/volumes/_create_snapshot.html:23 +#: dashboards/nova/volumes/templates/volumes/create_snapshot.html:3 #, fuzzy msgid "Create Volume Snapshot" msgstr "新規ボリュームを作成する。" -#: dashboards/nova/templates/nova/instances_and_volumes/volumes/_detail_overview.html:3 +#: dashboards/nova/volumes/templates/volumes/_detail_overview.html:3 #, fuzzy msgid "Volume Overview" msgstr "概要" -#: dashboards/nova/templates/nova/instances_and_volumes/volumes/_detail_overview.html:38 +#: dashboards/nova/volumes/templates/volumes/_detail_overview.html:34 #, fuzzy -msgid "Attached To" +msgid "Attachments" msgstr "ボリュームを付与する。" -#: dashboards/nova/templates/nova/instances_and_volumes/volumes/_detail_overview.html:42 -msgid "on" -msgstr "" - -#: dashboards/nova/templates/nova/instances_and_volumes/volumes/_detail_overview.html:47 +#: dashboards/nova/volumes/templates/volumes/_detail_overview.html:46 #, fuzzy msgid "Not attached" msgstr "ボリュームを付与する。" -#: dashboards/nova/templates/nova/instances_and_volumes/volumes/create.html:6 +#: dashboards/nova/volumes/templates/volumes/create.html:6 #, fuzzy msgid "Create a Volume" msgstr "新規ボリュームを作成する。" -#: dashboards/nova/templates/nova/instances_and_volumes/volumes/create_snapshot.html:6 +#: dashboards/nova/volumes/templates/volumes/create_snapshot.html:6 msgid "Create a Volume Snapshot" msgstr "" -#: dashboards/nova/templates/nova/instances_and_volumes/volumes/detail.html:3 +#: dashboards/nova/volumes/templates/volumes/detail.html:3 +#: dashboards/syspanel/volumes/templates/volumes/detail.html:3 #, fuzzy msgid "Volume Details" msgstr "ボリューム" -#: dashboards/nova/templates/nova/instances_and_volumes/volumes/detail.html:6 +#: dashboards/nova/volumes/templates/volumes/detail.html:6 +#: dashboards/syspanel/volumes/templates/volumes/detail.html:6 #, fuzzy msgid "Volume Detail" msgstr "ボリューム" -#: dashboards/nova/templates/nova/objects/_copy.html:7 -#: dashboards/nova/templates/nova/objects/_copy.html:22 -#: dashboards/nova/templates/nova/objects/copy.html:3 -#: dashboards/nova/templates/nova/objects/copy.html:6 -msgid "Copy Object" -msgstr "" - -#: dashboards/nova/templates/nova/objects/_copy.html:17 -msgid "" -"You may make a new copy of an existing object to store in this or another " -"container." -msgstr "" - -#: dashboards/nova/templates/nova/objects/_upload.html:8 -#, fuzzy -msgid "Upload Object To Container" -msgstr "新規ボリュームを作成する。" - -#: dashboards/nova/templates/nova/objects/_upload.html:18 -msgid "" -"An object is the basic storage entity and any optional metadata that " -"represents the files you store in the OpenStack Object Storage system. When " -"you upload data to OpenStack Object Storage, the data is stored as-is (no " -"compression or encryption) and consists of a location (container), the " -"object's name, and any metadata consisting of key/value pairs." -msgstr "" - -#: dashboards/nova/templates/nova/objects/upload.html:6 -msgid "Upload Objects" -msgstr "" - #: dashboards/settings/dashboard.py:24 #, fuzzy msgid "Settings" @@ -1781,12 +2099,12 @@ msgstr "プロジェクトを削除" msgid "Unable to retrieve tenant list." msgstr "キー%sを作成できません。" -#: dashboards/settings/ec2/forms.py:95 +#: dashboards/settings/ec2/forms.py:93 #, fuzzy msgid "Unable to fetch EC2 credentials." msgstr "X509資格情報生成する。" -#: dashboards/settings/ec2/forms.py:108 +#: dashboards/settings/ec2/forms.py:106 #, fuzzy, python-format msgid "Error writing zipfile: %(exc)s" msgstr "ユーザ%sを作成中..." @@ -1796,75 +2114,84 @@ msgstr "ユーザ%sを作成中..." msgid "EC2 Credentials" msgstr "認証情報を送信" -#: dashboards/settings/project/forms.py:76 -#, fuzzy, python-format -msgid "Error Downloading RC File: %s" -msgstr "イメージ%sを更新できません。" - -#: dashboards/settings/project/panel.py:24 -#, fuzzy -msgid "OpenStack Credentials" -msgstr "認証情報を送信" - -#: dashboards/settings/templates/settings/ec2/download_form.html:8 -#: dashboards/settings/templates/settings/ec2/download_form.html:23 -#: dashboards/settings/templates/settings/ec2/index.html:3 -#: dashboards/settings/templates/settings/ec2/index.html:6 +#: dashboards/settings/ec2/templates/ec2/download_form.html:8 +#: dashboards/settings/ec2/templates/ec2/download_form.html:23 +#: dashboards/settings/ec2/templates/ec2/index.html:3 +#: dashboards/settings/ec2/templates/ec2/index.html:6 #, fuzzy msgid "Download EC2 Credentials" msgstr "認証情報を送信" -#: dashboards/settings/templates/settings/ec2/download_form.html:18 +#: dashboards/settings/ec2/templates/ec2/download_form.html:18 msgid "" "Clicking \"Download EC2 Credentials\" will download a zip file which " "includes an rc file with your access/secret keys, as well as your x509 " "private key and certificate." msgstr "" -#: dashboards/settings/templates/settings/project/_openrc.html:8 -#: dashboards/settings/templates/settings/project/settings.html:6 +#: dashboards/settings/project/forms.py:76 +#, fuzzy, python-format +msgid "Error Downloading RC File: %s" +msgstr "イメージ%sを更新できません。" + +#: dashboards/settings/project/panel.py:24 +#: dashboards/settings/project/templates/project/_openrc.html:8 +#: dashboards/settings/project/templates/project/settings.html:3 +#: dashboards/settings/project/templates/project/settings.html:6 +msgid "OpenStack API" +msgstr "" + +#: dashboards/settings/project/tables.py:27 +#, fuzzy +msgid "Service Name" +msgstr "ユーザ名" + +#: dashboards/settings/project/tables.py:29 +msgid "Service Endpoint" +msgstr "" + +#: dashboards/settings/project/tables.py:33 +msgid "API Endpoints" +msgstr "" + +#: dashboards/settings/project/templates/project/_openrc.html:15 #, fuzzy msgid "Download OpenStack RC File" msgstr "イメージ%sを更新できません。" -#: dashboards/settings/templates/settings/project/_openrc.html:18 +#: dashboards/settings/project/templates/project/_openrc.html:25 msgid "" "Download the RC file for the selected project, then type \"source openrc\" " "in the terminal to configure your environment to communicate with OpenStack." msgstr "" -#: dashboards/settings/templates/settings/project/_openrc.html:23 +#: dashboards/settings/project/templates/project/_openrc.html:30 msgid "Download RC File" msgstr "" -#: dashboards/settings/templates/settings/user/_language.html:8 -#: dashboards/settings/templates/settings/user/_language.html:36 -msgid "Select Language" -msgstr "言語を選択" - -#: dashboards/settings/templates/settings/user/_language.html:12 -msgid "Dashboard User Interface Language" -msgstr "" - -#: dashboards/settings/templates/settings/user/_language.html:14 +#: dashboards/settings/user/forms.py:57 #, fuzzy -msgid "Language Settings" -msgstr "ダッシュボードの設定" - -#: dashboards/settings/templates/settings/user/_language.html:31 -#, fuzzy -msgid "From here you can modify different settings for your dashboard." -msgstr "ここより、ユーザとその資格を管理できます。" - -#: dashboards/settings/templates/settings/user/settings.html:6 -msgid "Dashboard Settings" +msgid "Settings saved." msgstr "ダッシュボードの設定" #: dashboards/settings/user/panel.py:24 +#: dashboards/settings/user/templates/user/_settings.html:8 +#: dashboards/settings/user/templates/user/settings.html:3 +#: dashboards/settings/user/templates/user/settings.html:6 #, fuzzy msgid "User Settings" msgstr "ダッシュボードの設定" +#: dashboards/settings/user/templates/user/_settings.html:18 +#, fuzzy +msgid "From here you can modify dashboard settings for your user." +msgstr "ここより、ユーザとその資格を管理できます。" + +#: dashboards/settings/user/templates/user/_settings.html:23 +#: workflows/base.py:510 +msgid "Save" +msgstr "" + #: dashboards/syspanel/dashboard.py:24 msgid "System Panel" msgstr "" @@ -1898,14 +2225,14 @@ msgstr "キー%sは正常に削除されました。" #: dashboards/syspanel/flavors/panel.py:28 #: dashboards/syspanel/flavors/tables.py:14 #: dashboards/syspanel/flavors/tables.py:38 -#: dashboards/syspanel/templates/syspanel/flavors/index.html:8 +#: dashboards/syspanel/flavors/templates/flavors/index.html:8 msgid "Flavors" msgstr "インスタンスタイプ" #: dashboards/syspanel/flavors/tables.py:22 -#: dashboards/syspanel/templates/syspanel/flavors/_create.html:8 -#: dashboards/syspanel/templates/syspanel/flavors/_create.html:23 -#: dashboards/syspanel/templates/syspanel/flavors/create.html:6 +#: dashboards/syspanel/flavors/templates/flavors/_create.html:8 +#: dashboards/syspanel/flavors/templates/flavors/_create.html:23 +#: dashboards/syspanel/flavors/templates/flavors/create.html:6 msgid "Create Flavor" msgstr "" @@ -1914,6 +2241,10 @@ msgstr "" msgid "Flavor Name" msgstr "インスタンスタイプ" +#: dashboards/syspanel/flavors/tables.py:31 +msgid "Memory" +msgstr "" + #: dashboards/syspanel/flavors/views.py:48 #, fuzzy msgid "Unauthorized." @@ -1924,14 +2255,20 @@ msgstr "%sを認証できません。" msgid "Unable to get flavor list: %s" msgstr "%sをリボーク(無効化)できません。" +#: dashboards/syspanel/flavors/templates/flavors/_create.html:18 +#, fuzzy +msgid "From here you can define the sizing of a new flavor." +msgstr "ここより、ユーザとその資格を管理できます。" + #: dashboards/syspanel/images/views.py:52 #, fuzzy msgid "Unable to retrieve image list." msgstr "キー%sを作成できません。" -#: dashboards/syspanel/instances/tables.py:62 -msgid "Tenant" -msgstr "テナント" +#: dashboards/syspanel/instances/tables.py:62 usage/tables.py:29 +#, fuzzy +msgid "Project Name" +msgstr "ユーザ名" #: dashboards/syspanel/instances/tables.py:69 #: dashboards/syspanel/services/tables.py:40 @@ -1943,23 +2280,38 @@ msgstr "" msgid "Unable to retrieve instance tenant information." msgstr "%sをリボーク(無効化)できません。" +#: dashboards/syspanel/instances/templates/instances/index.html:6 +#, fuzzy +msgid "All Instances" +msgstr "インスタンス" + +#: dashboards/syspanel/overview/templates/overview/usage.html:3 +#, fuzzy +msgid "Usage Overview" +msgstr "概要" + +#: dashboards/syspanel/overview/templates/overview/usage.html:12 +msgid "Monitoring" +msgstr "" + #: dashboards/syspanel/projects/forms.py:38 +#: dashboards/syspanel/users/forms.py:75 msgid "Role" msgstr "" #: dashboards/syspanel/projects/forms.py:52 #, fuzzy -msgid "Successfully added user to tenant." +msgid "Successfully added user to project." msgstr "プロジェクト%(proj)sを正常に修正しました。" #: dashboards/syspanel/projects/forms.py:54 #, fuzzy -msgid "Unable to add user to tenant." -msgstr "キー%sを作成できません。" +msgid "Unable to add user to project." +msgstr "イメージ%sを更新できません。" #: dashboards/syspanel/projects/forms.py:64 #: dashboards/syspanel/projects/forms.py:89 -#: dashboards/syspanel/projects/tables.py:77 +#: dashboards/syspanel/projects/tables.py:78 #: dashboards/syspanel/services/tables.py:42 #: dashboards/syspanel/users/tables.py:38 #: dashboards/syspanel/users/tables.py:112 @@ -1973,7 +2325,7 @@ msgstr "キー%sは正常に削除されました。" #: dashboards/syspanel/projects/forms.py:78 #, fuzzy -msgid "Unable to create tenant." +msgid "Unable to create project." msgstr "キー%sを作成できません。" #: dashboards/syspanel/projects/forms.py:100 @@ -1983,7 +2335,7 @@ msgstr "キー%sは正常に削除されました。" #: dashboards/syspanel/projects/forms.py:103 #, fuzzy -msgid "Unable to update tenant." +msgid "Unable to update project." msgstr "イメージ%sを更新できません。" #: dashboards/syspanel/projects/forms.py:108 @@ -2021,69 +2373,73 @@ msgid "Unable to update quotas." msgstr "イメージ%sを更新できません。" #: dashboards/syspanel/projects/panel.py:28 -#: dashboards/syspanel/projects/tables.py:52 -#: dashboards/syspanel/projects/tables.py:81 -#: dashboards/syspanel/templates/syspanel/projects/index.html:8 +#: dashboards/syspanel/projects/tables.py:53 +#: dashboards/syspanel/projects/tables.py:82 +#: dashboards/syspanel/projects/templates/projects/index.html:8 #, fuzzy msgid "Projects" msgstr "プロジェクトを削除" -#: dashboards/syspanel/projects/tables.py:17 +#: dashboards/syspanel/projects/tables.py:18 msgid "Modify Quotas" msgstr "" -#: dashboards/syspanel/projects/tables.py:24 +#: dashboards/syspanel/projects/tables.py:25 msgid "Modify Users" msgstr "" -#: dashboards/syspanel/projects/tables.py:31 +#: dashboards/syspanel/projects/tables.py:32 msgid "View Usage" msgstr "" -#: dashboards/syspanel/projects/tables.py:38 +#: dashboards/syspanel/projects/tables.py:39 #, fuzzy msgid "Edit Project" msgstr "プロジェクトを削除" -#: dashboards/syspanel/projects/tables.py:45 +#: dashboards/syspanel/projects/tables.py:46 #, fuzzy msgid "Create New Project" msgstr "新規ボリュームを作成する。" -#: dashboards/syspanel/projects/tables.py:73 -#: dashboards/syspanel/services/tables.py:37 -msgid "Id" -msgstr "" - -#: dashboards/syspanel/projects/tables.py:89 +#: dashboards/syspanel/projects/tables.py:90 #, fuzzy msgid "Remove" msgstr "イメージを削除する" -#: dashboards/syspanel/projects/tables.py:90 +#: dashboards/syspanel/projects/tables.py:91 #, fuzzy msgid "Removed" msgstr "イメージを削除する" -#: dashboards/syspanel/projects/tables.py:92 -#: dashboards/syspanel/templates/syspanel/users/index.html:8 +#: dashboards/syspanel/projects/tables.py:93 #: dashboards/syspanel/users/panel.py:28 #: dashboards/syspanel/users/tables.py:40 #: dashboards/syspanel/users/tables.py:74 #: dashboards/syspanel/users/tables.py:119 +#: dashboards/syspanel/users/templates/users/index.html:8 msgid "Users" msgstr "ユーザー" -#: dashboards/syspanel/projects/tables.py:103 +#: dashboards/syspanel/projects/tables.py:111 +#, fuzzy +msgid "Unable to retrieve role information." +msgstr "イメージ%sの登録削除ができませんでした。" + +#: dashboards/syspanel/projects/tables.py:116 +msgid "Roles" +msgstr "" + +#: dashboards/syspanel/projects/tables.py:120 #, fuzzy msgid "Users For Project" msgstr "プロジェクトからユーザを削除します。" -#: dashboards/syspanel/projects/tables.py:110 +#: dashboards/syspanel/projects/tables.py:128 msgid "Add To Project" msgstr "" -#: dashboards/syspanel/projects/tables.py:122 +#: dashboards/syspanel/projects/tables.py:140 #, fuzzy msgid "Add New Users" msgstr "新規ボリュームを作成する。" @@ -2108,6 +2464,71 @@ msgstr "%sをリボーク(無効化)できません。" msgid "Unable to retrieve roles." msgstr "ボリューム%sを作成できません。" +#: dashboards/syspanel/projects/templates/projects/_add_user.html:8 +#: dashboards/syspanel/projects/templates/projects/add_user.html:3 +#: dashboards/syspanel/projects/templates/projects/add_user.html:6 +#, fuzzy +msgid "Add User To Project" +msgstr "プロジェクトからユーザを削除します。" + +#: dashboards/syspanel/projects/templates/projects/_add_user.html:18 +msgid "Select the user role for the project." +msgstr "" + +#: dashboards/syspanel/projects/templates/projects/_add_user.html:23 +msgid "Add" +msgstr "" + +#: dashboards/syspanel/projects/templates/projects/_create.html:8 +#: dashboards/syspanel/projects/templates/projects/_create.html:23 +#: dashboards/syspanel/projects/templates/projects/create.html:6 +#, fuzzy +msgid "Create Project" +msgstr "プロジェクトを削除" + +#: dashboards/syspanel/projects/templates/projects/_create.html:18 +#, fuzzy +msgid "From here you can create a new project to organize users." +msgstr "ここで、複数のユーザ資格を編集できます。" + +#: dashboards/syspanel/projects/templates/projects/_quotas.html:7 +#: dashboards/syspanel/projects/templates/projects/_quotas.html:22 +#, fuzzy +msgid "Update Quota" +msgstr "インスタンスを更新" + +#: dashboards/syspanel/projects/templates/projects/_quotas.html:17 +#, fuzzy, python-format +msgid "" +"From here you can edit quotas (max limits) for the project %(tenant.name)s." +msgstr "ここで、複数のユーザ資格を編集できます。" + +#: dashboards/syspanel/projects/templates/projects/_update.html:8 +#: dashboards/syspanel/projects/templates/projects/_update.html:23 +#: dashboards/syspanel/projects/templates/projects/quotas.html:6 +#: dashboards/syspanel/projects/templates/projects/update.html:6 +#, fuzzy +msgid "Update Project" +msgstr "プロジェクトを削除" + +#: dashboards/syspanel/projects/templates/projects/_update.html:18 +#, fuzzy +msgid "From here you can edit a project." +msgstr "ここで、複数のユーザ資格を編集できます。" + +#: dashboards/syspanel/projects/templates/projects/usage.html:3 +msgid "Project Usage Overview" +msgstr "" + +#: dashboards/syspanel/projects/templates/projects/usage.html:7 +msgid "Project Usage" +msgstr "" + +#: dashboards/syspanel/projects/templates/projects/users.html:7 +#, fuzzy +msgid "Users for Project" +msgstr "プロジェクトからユーザを削除します。" + #: dashboards/syspanel/quotas/panel.py:28 #: dashboards/syspanel/quotas/tables.py:36 msgid "Quotas" @@ -2126,210 +2547,112 @@ msgstr "" msgid "Unable to get quota info." msgstr "イメージ%sを公開できません。" +#: dashboards/syspanel/quotas/templates/quotas/index.html:8 +msgid "Default Quotas" +msgstr "" + #: dashboards/syspanel/services/panel.py:28 #: dashboards/syspanel/services/tables.py:47 -#: dashboards/syspanel/templates/syspanel/services/index.html:8 +#: dashboards/syspanel/services/templates/services/index.html:8 msgid "Services" msgstr "サービス" +#: dashboards/syspanel/services/tables.py:37 +msgid "Id" +msgstr "" + #: dashboards/syspanel/services/tables.py:39 msgid "Service" msgstr "" -#: dashboards/syspanel/templates/syspanel/flavors/_create.html:18 -#, fuzzy -msgid "From here you can define the sizing of a new flavor." -msgstr "ここより、ユーザとその資格を管理できます。" - -#: dashboards/syspanel/templates/syspanel/instances/index.html:6 -#, fuzzy -msgid "All Instances" -msgstr "インスタンス" - -#: dashboards/syspanel/templates/syspanel/overview/usage.html:3 -#, fuzzy -msgid "Usage Overview" -msgstr "概要" - -#: dashboards/syspanel/templates/syspanel/overview/usage.html:12 -msgid "Monitoring" -msgstr "" - -#: dashboards/syspanel/templates/syspanel/projects/_add_user.html:8 -#: dashboards/syspanel/templates/syspanel/projects/add_user.html:3 -#: dashboards/syspanel/templates/syspanel/projects/add_user.html:6 -#, fuzzy -msgid "Add User To Project" -msgstr "プロジェクトからユーザを削除します。" - -#: dashboards/syspanel/templates/syspanel/projects/_add_user.html:18 -msgid "Select the user role for the project." -msgstr "" - -#: dashboards/syspanel/templates/syspanel/projects/_add_user.html:23 -msgid "Add" -msgstr "" - -#: dashboards/syspanel/templates/syspanel/projects/_create.html:8 -#: dashboards/syspanel/templates/syspanel/projects/_create.html:23 -#: dashboards/syspanel/templates/syspanel/projects/create.html:6 -#, fuzzy -msgid "Create Project" -msgstr "プロジェクトを削除" - -#: dashboards/syspanel/templates/syspanel/projects/_create.html:18 -#, fuzzy -msgid "From here you can create a new project to organize users." -msgstr "ここで、複数のユーザ資格を編集できます。" - -#: dashboards/syspanel/templates/syspanel/projects/_quotas.html:7 -#: dashboards/syspanel/templates/syspanel/projects/_quotas.html:22 -#, fuzzy -msgid "Update Quota" -msgstr "インスタンスを更新" - -#: dashboards/syspanel/templates/syspanel/projects/_quotas.html:17 -#, fuzzy, python-format -msgid "" -"From here you can edit quotas (max limits) for the project %(tenant.name)s." -msgstr "ここで、複数のユーザ資格を編集できます。" - -#: dashboards/syspanel/templates/syspanel/projects/_update.html:8 -#: dashboards/syspanel/templates/syspanel/projects/_update.html:23 -#: dashboards/syspanel/templates/syspanel/projects/quotas.html:6 -#: dashboards/syspanel/templates/syspanel/projects/update.html:6 -#, fuzzy -msgid "Update Project" -msgstr "プロジェクトを削除" - -#: dashboards/syspanel/templates/syspanel/projects/_update.html:18 -#, fuzzy -msgid "From here you can edit a project." -msgstr "ここで、複数のユーザ資格を編集できます。" - -#: dashboards/syspanel/templates/syspanel/projects/usage.html:3 -msgid "Project Usage Overview" -msgstr "" - -#: dashboards/syspanel/templates/syspanel/projects/usage.html:7 -msgid "Project Usage" -msgstr "" - -#: dashboards/syspanel/templates/syspanel/projects/users.html:7 -#, fuzzy -msgid "Users for Project" -msgstr "プロジェクトからユーザを削除します。" - -#: dashboards/syspanel/templates/syspanel/quotas/index.html:8 -msgid "Default Quotas" -msgstr "" - -#: dashboards/syspanel/templates/syspanel/users/_create.html:7 -#: dashboards/syspanel/templates/syspanel/users/_create.html:22 -#: dashboards/syspanel/templates/syspanel/users/create.html:7 -#: dashboards/syspanel/users/tables.py:18 -msgid "Create User" -msgstr "" - -#: dashboards/syspanel/templates/syspanel/users/_create.html:17 -#, fuzzy -msgid "From here you can create a new user and assign them to a project." -msgstr "ここで、複数のユーザ資格を編集できます。" - -#: dashboards/syspanel/templates/syspanel/users/_update.html:7 -#: dashboards/syspanel/templates/syspanel/users/_update.html:22 -#: dashboards/syspanel/templates/syspanel/users/update.html:7 -#, fuzzy -msgid "Update User" -msgstr "イメージを更新" - -#: dashboards/syspanel/templates/syspanel/users/_update.html:17 -#, fuzzy -msgid "" -"From here you can edit the user's details, including their default project." -msgstr "ここで、複数のユーザ資格を編集できます。" - -#: dashboards/syspanel/users/forms.py:41 +#: dashboards/syspanel/users/forms.py:42 #, fuzzy msgid "Select a project" msgstr "プロジェクトを削除" -#: dashboards/syspanel/users/forms.py:57 +#: dashboards/syspanel/users/forms.py:58 msgid "Passwords do not match." msgstr "" -#: dashboards/syspanel/users/forms.py:62 -#: dashboards/syspanel/users/forms.py:105 -#: dashboards/syspanel/users/tables.py:107 views/auth_forms.py:64 +#: dashboards/syspanel/users/forms.py:63 +#: dashboards/syspanel/users/forms.py:114 +#: dashboards/syspanel/users/tables.py:106 msgid "User Name" msgstr "ユーザ名" -#: dashboards/syspanel/users/forms.py:63 -#: dashboards/syspanel/users/forms.py:106 -#: dashboards/syspanel/users/tables.py:108 +#: dashboards/syspanel/users/forms.py:64 +#: dashboards/syspanel/users/forms.py:115 +#: dashboards/syspanel/users/tables.py:107 msgid "Email" msgstr "" -#: dashboards/syspanel/users/forms.py:65 -#: dashboards/syspanel/users/forms.py:107 views/auth_forms.py:65 +#: dashboards/syspanel/users/forms.py:66 +#: dashboards/syspanel/users/forms.py:116 msgid "Password" msgstr "パスワード" -#: dashboards/syspanel/users/forms.py:70 -#: dashboards/syspanel/users/forms.py:114 +#: dashboards/syspanel/users/forms.py:71 +#: dashboards/syspanel/users/forms.py:123 #, fuzzy msgid "Confirm Password" msgstr "パスワード" -#: dashboards/syspanel/users/forms.py:73 -#: dashboards/syspanel/users/forms.py:117 +#: dashboards/syspanel/users/forms.py:74 +#: dashboards/syspanel/users/forms.py:126 #, fuzzy msgid "Primary Project" msgstr "テナント" -#: dashboards/syspanel/users/forms.py:85 +#: dashboards/syspanel/users/forms.py:96 #, fuzzy, python-format msgid "User \"%s\" was successfully created." msgstr "キー%sは正常に削除されました。" -#: dashboards/syspanel/users/forms.py:96 +#: dashboards/syspanel/users/forms.py:105 #, fuzzy msgid "Unable to add user to primary project." msgstr "イメージ%sを更新できません。" -#: dashboards/syspanel/users/forms.py:99 +#: dashboards/syspanel/users/forms.py:108 #, fuzzy msgid "Unable to create user." msgstr "ボリューム%sを作成できません。" -#: dashboards/syspanel/users/forms.py:139 +#: dashboards/syspanel/users/forms.py:151 msgid "name" msgstr "" -#: dashboards/syspanel/users/forms.py:139 +#: dashboards/syspanel/users/forms.py:151 msgid "email" msgstr "" -#: dashboards/syspanel/users/forms.py:148 +#: dashboards/syspanel/users/forms.py:160 #, fuzzy msgid "primary project" msgstr "テナント" -#: dashboards/syspanel/users/forms.py:160 +#: dashboards/syspanel/users/forms.py:172 #, fuzzy msgid "password" msgstr "パスワード" -#: dashboards/syspanel/users/forms.py:169 +#: dashboards/syspanel/users/forms.py:181 #, fuzzy msgid "User has been updated successfully." msgstr "ボリューム %(id)s %(name)s は正常に作成されました。" -#: dashboards/syspanel/users/forms.py:173 +#: dashboards/syspanel/users/forms.py:185 #, fuzzy, python-format msgid "Unable to update %(attributes)s for the user." msgstr "キー%sを削除できません。" +#: dashboards/syspanel/users/tables.py:18 +#: dashboards/syspanel/users/templates/users/_create.html:7 +#: dashboards/syspanel/users/templates/users/_create.html:22 +#: dashboards/syspanel/users/templates/users/create.html:7 +msgid "Create User" +msgstr "" + #: dashboards/syspanel/users/tables.py:37 msgid "Enable" msgstr "" @@ -2346,16 +2669,44 @@ msgstr "" msgid "You cannot disable the user you are currently logged in as." msgstr "" -#: dashboards/syspanel/users/views.py:47 +#: dashboards/syspanel/users/tables.py:111 +#, fuzzy +msgid "User ID" +msgstr "ユーザ名" + +#: dashboards/syspanel/users/views.py:46 #, fuzzy msgid "Unable to retrieve user list." msgstr "%sをリボーク(無効化)できません。" -#: dashboards/syspanel/users/views.py:63 +#: dashboards/syspanel/users/views.py:67 #, fuzzy msgid "Unable to update user." msgstr "イメージ%sを更新できません。" +#: dashboards/syspanel/users/views.py:93 +#, fuzzy +msgid "Unable to retrieve user roles." +msgstr "%sをリボーク(無効化)できません。" + +#: dashboards/syspanel/users/templates/users/_create.html:17 +#, fuzzy +msgid "From here you can create a new user and assign them to a project." +msgstr "ここで、複数のユーザ資格を編集できます。" + +#: dashboards/syspanel/users/templates/users/_update.html:7 +#: dashboards/syspanel/users/templates/users/_update.html:22 +#: dashboards/syspanel/users/templates/users/update.html:7 +#, fuzzy +msgid "Update User" +msgstr "イメージを更新" + +#: dashboards/syspanel/users/templates/users/_update.html:17 +#, fuzzy +msgid "" +"From here you can edit the user's details, including their default project." +msgstr "ここで、複数のユーザ資格を編集できます。" + #: tables/actions.py:299 msgid "Filter" msgstr "" @@ -2384,25 +2735,25 @@ msgstr "削除" msgid "Deleted" msgstr "削除" -#: tables/base.py:231 +#: tables/base.py:257 #, python-format msgid "The attribute %(attr)s doesn't exist on %(obj)s." msgstr "" -#: tables/base.py:679 +#: tables/base.py:743 msgid "Actions" msgstr "アクション" -#: tables/base.py:824 +#: tables/base.py:891 msgid "No items to display." msgstr "" -#: tables/base.py:841 +#: tables/base.py:908 #, python-format msgid "No match returned for the id \"%s\"." msgstr "" -#: tables/base.py:948 +#: tables/base.py:1015 msgid "Please select a row before taking that action." msgstr "" @@ -2423,24 +2774,25 @@ msgstr "" msgid "Error: " msgstr "" -#: templates/horizon/auth/_login.html:4 -msgid "Log In" +#: templates/horizon/client_side/_loading.html:9 +msgid "Loading…" msgstr "" -#: templates/horizon/auth/_login.html:18 -msgid "Sign In" +#: templates/horizon/common/_data_table.html:33 +msgid "Summary" msgstr "" -#: templates/horizon/auth/login.html:4 -msgid "Login" -msgstr "" - -#: templates/horizon/common/_data_table.html:31 +#: templates/horizon/common/_data_table.html:42 #, python-format msgid "Displaying %(counter)s item" msgid_plural "Displaying %(counter)s items" msgstr[0] "" +#: templates/horizon/common/_sidebar.html:14 +#, fuzzy +msgid "Current Project" +msgstr "プロジェクトを削除" + #: templates/horizon/common/_usage_summary.html:5 msgid "Select a month to query its usage" msgstr "" @@ -2466,11 +2818,11 @@ msgstr "" msgid "This Month's GB-Hours" msgstr "" -#: templatetags/horizon.py:121 +#: templatetags/horizon.py:108 msgid "No Limit" msgstr "" -#: templatetags/horizon.py:123 templatetags/horizon.py:125 +#: templatetags/horizon.py:110 templatetags/horizon.py:112 msgid "Available" msgstr "" @@ -2496,6 +2848,11 @@ msgstr "" msgid "%s MB" msgstr "" +#: templatetags/sizeformat.py:58 +#, python-format +msgid "%s GB" +msgstr "" + #: templatetags/sizeformat.py:61 #, python-format msgid "%s TB" @@ -2519,35 +2876,39 @@ msgstr "" msgid "Admin Panel" msgstr "" -#: tests/table_tests.py:94 +#: tests/message_tests.py:30 +msgid "Giant ants are attacking San Francisco!" +msgstr "" + +#: tests/table_tests.py:104 msgid "Batch" msgstr "" -#: tests/table_tests.py:95 +#: tests/table_tests.py:105 msgid "Batched" msgstr "" -#: tests/table_tests.py:96 tests/table_tests.py:107 +#: tests/table_tests.py:106 tests/table_tests.py:117 msgid "Item" msgstr "" -#: tests/table_tests.py:97 tests/table_tests.py:108 +#: tests/table_tests.py:107 tests/table_tests.py:118 msgid "Items" msgstr "" -#: tests/table_tests.py:105 +#: tests/table_tests.py:115 msgid "Down" msgstr "" -#: tests/table_tests.py:105 +#: tests/table_tests.py:115 msgid "Up" msgstr "" -#: tests/table_tests.py:106 +#: tests/table_tests.py:116 msgid "Downed" msgstr "" -#: tests/table_tests.py:106 +#: tests/table_tests.py:116 msgid "Upped" msgstr "" @@ -2575,7 +2936,7 @@ msgstr "" msgid "Recoverable Error Tab" msgstr "" -#: tests/testsettings.py:99 +#: tests/testsettings.py:111 msgid "Password must be between 8 and 18 characters." msgstr "" @@ -2630,32 +2991,32 @@ msgstr "" msgid "Puppies" msgstr "" -#: usage/base.py:94 +#: usage/base.py:97 #, fuzzy msgid "Unable to retrieve usage information." msgstr "イメージ%sの登録削除ができませんでした。" -#: usage/base.py:97 +#: usage/base.py:100 msgid "You are viewing data for the future, which may or may not exist." msgstr "" -#: usage/tables.py:10 +#: usage/tables.py:11 msgid "Download CSV Summary" msgstr "" -#: usage/tables.py:23 +#: usage/tables.py:24 msgid "VCPU Hours" msgstr "" -#: usage/tables.py:30 +#: usage/tables.py:31 msgid "Disk GB Hours" msgstr "" -#: usage/tables.py:38 usage/tables.py:59 +#: usage/tables.py:39 usage/tables.py:67 msgid "Usage Summary" msgstr "" -#: usage/tables.py:51 +#: usage/tables.py:59 msgid "Uptime" msgstr "" @@ -2675,694 +3036,16 @@ msgstr "" msgid "Password is not accepted" msgstr "" -#: views/auth.py:92 -msgid "You are not authorized for that tenant." -msgstr "" - -#: views/auth_forms.py:63 -msgid "Region" -msgstr "" - -#: views/auth_forms.py:107 -#, fuzzy -msgid "Unable to authenticate for that project." -msgstr "キー%sを作成できません。" - -#: views/auth_forms.py:124 -msgid "Invalid user name or password." -msgstr "" - -#: views/auth_forms.py:131 -msgid "An error occurred authenticating. Please try again later." -msgstr "" - -#: views/auth_forms.py:150 -msgid "You are not authorized for any projects." -msgstr "" - -#: views/auth_forms.py:174 -msgid "You are not authorized for any available projects." -msgstr "" - -#: workflows/base.py:65 +#: workflows/base.py:69 msgid "Processing..." msgstr "" -#: workflows/base.py:478 -msgid "Save" -msgstr "" - -#: workflows/base.py:479 +#: workflows/base.py:511 #, fuzzy, python-format msgid "%s completed successfully." msgstr "ボリューム %(id)s %(name)s は正常に作成されました。" -#: workflows/base.py:480 +#: workflows/base.py:512 #, python-format msgid "%s did not complete." msgstr "" - -#, fuzzy -#~ msgid "Error associating Floating IP: %s" -#~ msgstr "イメージ%sを更新できません。" - -#, fuzzy -#~ msgid "Error adding rule security group: %s" -#~ msgstr "セキュリティグループ%sを削除できません" - -#, fuzzy -#~ msgid "Unable to delete non-empty container: %s" -#~ msgstr "キー%sを削除できません。" - -#, fuzzy -#~ msgid "Successfully deleted containers: %s" -#~ msgstr "プロジェクト%(proj)sを正常に修正しました。" - -#, fuzzy -#~ msgid "User Data" -#~ msgstr "ユーザ名" - -#, fuzzy -#~ msgid "Unable to retrieve image \"%s\"." -#~ msgstr "%sをリボーク(無効化)できません。" - -#, fuzzy -#~ msgid "Launch Instances" -#~ msgstr "イメージを起動します。" - -#, fuzzy -#~ msgid "Updated %(attributes)s for \"%(user)s\"." -#~ msgstr "キー%sを削除できません。" - -#, fuzzy -#~ msgid "Enable Users" -#~ msgstr "イメージを更新" - -#, fuzzy -#~ msgid "Error enabling user: %s" -#~ msgstr "ユーザ%sを作成中..." - -#, fuzzy -#~ msgid "Enabled the following users: %s" -#~ msgstr "キー%sを削除できません。" - -#, fuzzy -#~ msgid "Successfully enabled users: %s" -#~ msgstr "プロジェクト%(proj)sを正常に修正しました。" - -#, fuzzy -#~ msgid "Error disabling user: %s" -#~ msgstr "ユーザ%sを作成中..." - -#, fuzzy -#~ msgid "Disabled the following users: %s" -#~ msgstr "キー%sを削除できません。" - -#, fuzzy -#~ msgid "Successfully disabled users: %s" -#~ msgstr "プロジェクト%(proj)sを正常に修正しました。" - -#, fuzzy -#~ msgid "Unable to retrieve tenant." -#~ msgstr "キー%sを作成できません。" - -#, fuzzy -#~ msgid "Unable to get user info: %s" -#~ msgstr "イメージ%sを公開できません。" - -#, fuzzy -#~ msgid "Image ID:" -#~ msgstr "イメージ" - -#, fuzzy -#~ msgid "Image Status:" -#~ msgstr "ステータス" - -#, fuzzy -#~ msgid "Image Name:" -#~ msgstr "ユーザ名" - -#, fuzzy -#~ msgid "Public:" -#~ msgstr "公開する" - -#, fuzzy -#~ msgid "Created At:" -#~ msgstr "作成" - -#, fuzzy -#~ msgid "Last Updated At:" -#~ msgstr "イメージを更新" - -#, fuzzy -#~ msgid "Container Format:" -#~ msgstr "ユーザ名" - -#, fuzzy -#~ msgid "Volume Name:" -#~ msgstr "ユーザ名" - -#, fuzzy -#~ msgid "Created at:" -#~ msgstr "作成" - -#, fuzzy -#~ msgid "Delete Objects" -#~ msgstr "プロジェクトを削除" - -#, fuzzy -#~ msgid "Unable to delete object." -#~ msgstr "ボリューム%sを削除できません。" - -#, fuzzy -#~ msgid "Successfully deleted objects: %s" -#~ msgstr "プロジェクト%(proj)sを正常に修正しました。" - -#, fuzzy -#~ msgid "Error fetching volume: %s" -#~ msgstr "ユーザ%sを作成中..." - -#, fuzzy -#~ msgid "Name:" -#~ msgstr "名前" - -#, fuzzy -#~ msgid "Status:" -#~ msgstr "ステータス" - -#, fuzzy -#~ msgid "Unable to %s." -#~ msgstr "%sを起動できません。" - -#, fuzzy -#~ msgid "Network" -#~ msgstr "ネットワーク" - -#, fuzzy -#~ msgid "Network Name" -#~ msgstr "ネットワーク" - -#, fuzzy -#~ msgid "Network %s has been created." -#~ msgstr "イメージ%sが更新されました。" - -#, fuzzy -#~ msgid "Unable to create network." -#~ msgstr "キー%sを作成できません。" - -#, fuzzy -#~ msgid "Unable to rename network %(network)s: %(msg)s" -#~ msgstr "(%(inst)s: %(msg)sを停止する事ができません。" - -#, fuzzy -#~ msgid "Unable to create ports on network %(network)s: %(msg)s" -#~ msgstr "(%(inst)s: %(msg)sを停止する事ができません。" - -#, fuzzy -#~ msgid "Unable to attach port." -#~ msgstr "ボリューム%sを付与できません。" - -#, fuzzy -#~ msgid "Create New Network" -#~ msgstr "新規ボリュームを作成する。" - -#~ msgid "Networks" -#~ msgstr "ネットワーク" - -#, fuzzy -#~ msgid "Network Id" -#~ msgstr "ネットワーク" - -#, fuzzy -#~ msgid "Attach Port" -#~ msgstr "ボリュームを付与する。" - -#~ msgid "State" -#~ msgstr "状態" - -#, fuzzy -#~ msgid "Attachment" -#~ msgstr "ボリュームを付与する。" - -#, fuzzy -#~ msgid "Unable to get network list: %s" -#~ msgstr "%sをリボーク(無効化)できません。" - -#, fuzzy -#~ msgid "Unable to retrieve network information." -#~ msgstr "イメージ%sの登録削除ができませんでした。" - -#, fuzzy -#~ msgid "Create Network" -#~ msgstr "新規ボリュームを作成する。" - -#, fuzzy -#~ msgid "Network Detail" -#~ msgstr "ネットワーク" - -#, fuzzy -#~ msgid "Unable to get vnc console for instance \"%s\"." -#~ msgstr "インスタンス%(inst)s: %(msg)sを更新する事ができません。" - -#, fuzzy -#~ msgid "Volume Snaphots" -#~ msgstr "スナップショット" - -#, fuzzy -#~ msgid "Role does not exist: %s" -#~ msgstr "プロジェクト%sは存在しません。" - -#, fuzzy -#~ msgid "Instance was successfully launched" -#~ msgstr "イメージ%sが正常に登録削除されました。" - -#, fuzzy -#~ msgid "Error deleting image: %(image)s: %i(msg)s" -#~ msgstr "イメージ%sを更新できません。" - -#, fuzzy -#~ msgid "There are currently no images." -#~ msgstr "キーペアが存在しません。" - -#, fuzzy -#~ msgid "Error parsing quota for %(image)s: %(msg)s" -#~ msgstr "イメージ%sを更新できません。" - -#~ msgid "Unable to terminate %(inst)s: %(message)s" -#~ msgstr "(%(inst)s: %(message)sを停止する事ができません。" - -#~ msgid "Instance %s has been terminated." -#~ msgstr "インスタンス%sは停止されました。" - -#, fuzzy -#~ msgid "Instance rebooting" -#~ msgstr "インスタンス%(inst)sが更新されました。" - -#, fuzzy -#~ msgid "ApiException while rebooting instance \"%s\"" -#~ msgstr "%sをリボーク(無効化)できません。" - -#, fuzzy -#~ msgid "Unable to reboot instance: %s" -#~ msgstr "%sをリボーク(無効化)できません。" - -#, fuzzy -#~ msgid "Instance %s has been rebooted." -#~ msgstr "インスタンス%(inst)sが更新されました。" - -#, fuzzy -#~ msgid "Unable to get instance list: %s" -#~ msgstr "インスタンス%(inst)s: %(msg)sを更新する事ができません。" - -#, fuzzy -#~ msgid "Unable to get vnc console for instance %(inst)s: %(message)s" -#~ msgstr "インスタンス%(inst)s: %(msg)sを更新する事ができません。" - -#, fuzzy -#~ msgid "Unable to get information for instance %(inst)s: %(message)s" -#~ msgstr "インスタンス%(inst)s: %(msg)sを更新する事ができません。" - -#, fuzzy -#~ msgid "Unable to get information for instance %(inst)s: %(msg)s" -#~ msgstr "インスタンス%(inst)s: %(msg)sを更新する事ができません。" - -#, fuzzy -#~ msgid "Successfully deleted keypair: %s" -#~ msgstr "プロジェクト%(proj)sを正常に修正しました。" - -#, fuzzy -#~ msgid "Error deleting keypair: %s" -#~ msgstr "キー%sを削除できません。" - -#, fuzzy -#~ msgid "Unable to create network %(network)s: %(msg)s" -#~ msgstr "(%(inst)s: %(msg)sを停止する事ができません。" - -#, fuzzy -#~ msgid "Unable to delete network %(network)s: %(msg)s" -#~ msgstr "(%(inst)s: %(msg)sを停止する事ができません。" - -#, fuzzy -#~ msgid "Network %s has been deleted." -#~ msgstr "イメージ%sが更新されました。" - -#, fuzzy -#~ msgid "Unable to delete port %(port)s: %(msg)s" -#~ msgstr "(%(inst)s: %(msg)sを停止する事ができません。" - -#, fuzzy -#~ msgid "Unable to attach port %(port)s to VIF %(vif)s: %(msg)s" -#~ msgstr "(%(inst)s: %(msg)sを停止する事ができません。" - -#, fuzzy -#~ msgid "Unable to detach port %(port)s: %(message)s" -#~ msgstr "(%(inst)s: %(msg)sを停止する事ができません。" - -#, fuzzy -#~ msgid "Unable to set port state to %(state)s: %(message)s" -#~ msgstr "(%(inst)s: %(message)sを停止する事ができません。" - -#, fuzzy -#~ msgid "Unable to get network details: %s" -#~ msgstr "%sをリボーク(無効化)できません。" - -#, fuzzy -#~ msgid "Error creating security group: %s" -#~ msgstr "セキュリティグループ%sを作成できません。" - -#, fuzzy -#~ msgid "Successfully deleted security_group: %s" -#~ msgstr "セキュリティグループ%sを削除できません" - -#, fuzzy -#~ msgid "Error deleting security group: %s" -#~ msgstr "セキュリティグループ%sを削除できません" - -#, fuzzy -#~ msgid "Error authorizing security group: %s" -#~ msgstr "セキュリティグループ%sを作成できません。" - -#, fuzzy -#~ msgid "Error getting security_group: %s" -#~ msgstr "セキュリティグループ%sを作成できません。" - -#, fuzzy -#~ msgid "Associate to instance" -#~ msgstr "インスタンスを更新" - -#, fuzzy -#~ msgid "No active instances." -#~ msgstr "インスタンスを表示する" - -#, fuzzy -#~ msgid "There are currently no keypairs." -#~ msgstr "キーペアが存在しません。" - -#, fuzzy -#~ msgid "There are currently no ports in this network." -#~ msgstr "ユーザがいない現在、このプロジェクトに関連付けられている。" - -#, fuzzy -#~ msgid "Create A Network" -#~ msgstr "新規ボリュームを作成する。" - -#, fuzzy -#~ msgid "Rules for Security Group" -#~ msgstr "セキュリティグループ" - -#, fuzzy -#~ msgid "Image was successfully uploaded." -#~ msgstr "イメージ%sが正常に登録削除されました。" - -#, fuzzy -#~ msgid "Unable to get service info: %s" -#~ msgstr "セキュリティグループ%sを作成できません。" - -#, fuzzy -#~ msgid "Service '%s' has been enabled" -#~ msgstr "イメージ%sが更新されました。" - -#, fuzzy -#~ msgid "Service '%s' has been disabled" -#~ msgstr "イメージ%sが更新されました。" - -#, fuzzy -#~ msgid "Unable to update service '%(name)s': %(msg)s" -#~ msgstr "インスタンス%(inst)s: %(msg)sを更新する事ができません。" - -#, fuzzy -#~ msgid "Create New Flavor" -#~ msgstr "新規ボリュームを作成する。" - -#~ msgid "Location" -#~ msgstr "ロケーション" - -#, fuzzy -#~ msgid "Toggle Public" -#~ msgstr "公開する" - -#, fuzzy -#~ msgid "View Members" -#~ msgstr "イメージの表示" - -#, fuzzy -#~ msgid "Update Tenant" -#~ msgstr "インスタンスを更新" - -#~ msgid "Tenants" -#~ msgstr "テナント" - -#, fuzzy -#~ msgid "%(user)s was successfully added to %(tenant)s." -#~ msgstr "キー%sは正常に削除されました。" - -#, fuzzy -#~ msgid "Unable to create user association: %s" -#~ msgstr "セキュリティグループ%sを作成できません。" - -#, fuzzy -#~ msgid "%(user)s was successfully removed from %(tenant)s." -#~ msgstr "キー%sは正常に削除されました。" - -#, fuzzy -#~ msgid "Error deleting tenant: %s" -#~ msgstr "キー%sを削除できません。" - -#, fuzzy -#~ msgid "Unable to get tenant info: %s" -#~ msgstr "キー%sを作成できません。" - -#, fuzzy -#~ msgid "%(user)s was successfully deleted." -#~ msgstr "キー%sは正常に削除されました。" - -#~ msgid "Search" -#~ msgstr "検索" - -#, fuzzy -#~ msgid "Error authenticating: %s" -#~ msgstr "ユーザが認証されておりません。" - -#~ msgid "Creates nova users for all users in the django auth database." -#~ msgstr "" -#~ "Djangoの認証データベース内のすべてのユーザーに対してnovaユーザーを作成しま" -#~ "す。" - -#~ msgid "A key named %s already exists." -#~ msgstr "%sという名前のキーは既に存在します。" - -#~ msgid "A security group named %s already exists." -#~ msgstr "%sというセキュリティグループは既に存在します。" - -#~ msgid "Unable to start VPN for the project %(proj)s: %(code)s - %(msg)s" -#~ msgstr "" -#~ "プロジェクト%(proj)s: %(code)s - %(msg)sのVPNを開始する事ができませんでし" -#~ "た。" - -#~ msgid "Unable modify the project %(proj)s: %(code)s - %(msg)s" -#~ msgstr "プロジェクト%(proj)s: %(code)s - %(msg)sを修正できませんでした。" - -#~ msgid "Unable to make image private: %s" -#~ msgstr "イメージ%sを非公開にすることができません。" - -#~ msgid "You are now using the region \"%s\"." -#~ msgstr "リージョン\"%s\"を使用中です。" - -#~ msgid "Security Group %s has been succesfully created." -#~ msgstr "セキュリティグループ%sが正常に作成されました。" - -#~ msgid "" -#~ "Security Group %(grp)s: Access to %(proto)s ports %(fr)d - %(to)d has " -#~ "been authorized." -#~ msgstr "" -#~ "セキュリティグループ %(grp)s の %(proto)s ポート %(fr)d - %(to)d へのアク" -#~ "セスは許可されました。" - -#~ msgid "" -#~ "Security Group %(grp)s: Access to %(proto)s ports %(fr)d - %(to)d has " -#~ "been revoked." -#~ msgstr "" -#~ "セキュリティグループ %(grp)s の %(proto)s ポート %(fr)d - %(to)d へのアク" -#~ "セスはリボーク(無効化)されました。" - -#~ msgid "Volume %s has been successfully deleted." -#~ msgstr "ボリューム%sが正常に削除されました。" - -#~ msgid "" -#~ "Volume %s is scheduled to be attached. If it doesn't become attached in " -#~ "two minutes, please try again (you may need to specify a different " -#~ "device)." -#~ msgstr "" -#~ "ボリューム%sが付与される予定です。それが2分に実行されない場合は、もう一度" -#~ "お試しください。(別のデバイスを指定する必要がある場合があります。)" - -#~ msgid "Volume %s has been successfully detached." -#~ msgstr "ボリューム%sが正常に取り外されました。" - -#~ msgid "Do you really want to delete this project?<" -#~ msgstr "本当にこのプロジェクトを削除しますか?<" - -#~ msgid "Do you really want to remove this user from project?" -#~ msgstr "本当にこのユーザをプロジェクトから削除しますか?" - -#~ msgid "" -#~ "\"Select which users you would like to send credentials to from the " -#~ "'%(proj)s' project.\"" -#~ msgstr "'%(proj)s'より、認証情報を送信するユーザを選択してください。" - -#~ msgid "Credentials sent successfully" -#~ msgstr "認証情報が正常に送信されました。" - -#~ msgid "Expired Token" -#~ msgstr "トークンの期限が切れています。" - -#~ msgid "The link you clicked has expired." -#~ msgstr "クリックしたリンクは有効期限が切れています。" - -#~ msgid "" -#~ "This credentials download link you have reached\n" -#~ " is either invalid or has expired. Each link is only good for one " -#~ "use. If\n" -#~ " you need to download your credentials again, please contact the\n" -#~ " %(brand)s support team." -#~ msgstr "" -#~ "指定された認証資格のダウンロードリンクは、無効か有効期限が切れています。\n" -#~ " 各リンクは一度だけ使用する事ができます。再度資格情報をダウンロードす" -#~ "る必要が\n" -#~ " ある場合は、%(brand)sのサポートにお問い合わせください。" - -#~ msgid "Make Private" -#~ msgstr "非公開にする" - -#~ msgid "Edit Image" -#~ msgstr "イメージを編集する" - -#~ msgid "" -#~ "From this page you can edit the name and description of an image that " -#~ "belongs to you." -#~ msgstr "" -#~ "このページでは、ご自身が所有するイメージの名前と説明文を編集する事ができま" -#~ "す。" - -#~ msgid "Edit Image:" -#~ msgstr "イメージを編集:" - -#~ msgid "Launch an Image" -#~ msgstr "イメージを起動します。" - -#~ msgid "" -#~ "Images are snapshots of running systems which can easily be deployed to " -#~ "run one or more instances." -#~ msgstr "" -#~ "イメージとは、実行するシステムのスナップショットで、1つもしくは複数のイン" -#~ "スタンスとして容易に実行する事ができます。" - -#~ msgid "" -#~ "You can launch up to five instances of an image at a time. Some images " -#~ "allow for custom configuration to be passed in via User data." -#~ msgstr "" -#~ "1つのイメージを一度に5つのインスタンスとして起動する事ができます。一部のイ" -#~ "メージは、ユーザデータとしてカスタム設定を送信する事ができます。" - -#~ msgid "" -#~ "No instances are currently running. You may start a new instance from the" -#~ msgstr "" -#~ "インスタンスが現在実行されていません。... より新しいインスタンスを起動でき" -#~ "ます。" - -#~ msgid "" -#~ "Here you can see up to the minute performance data about your instance." -#~ msgstr "各インスタンスの分単位のパーフォーマンスデータを見る事ができます。" - -#~ msgid "Edit Instance:" -#~ msgstr "インスタンスを編集:" - -#~ msgid "" -#~ "From this page you can give your instance an alias, so you don't have to " -#~ "remember its unique id." -#~ msgstr "" -#~ "このページでは、インスタンスにエーリアスを設定する事ができ、独自のIDの代わ" -#~ "りに覚えておく事ができます。" - -#~ msgid "" -#~ "Instances are virtual servers launched from images. You can launch " -#~ "instances from the" -#~ msgstr "" -#~ "インスタンスは、イメージから起動する仮想サーバーです。... よりインスタンス" -#~ "を起動する事ができます。" - -#~ msgid "Are you sure you wish to terminate instance" -#~ msgstr "インスタンスを終了して宜しいですか?" - -#~ msgid "" -#~ "A connection error has occurred. Please ensure you are still connected to " -#~ "VPN." -#~ msgstr "通信エラーが発生しました。VPNに接続しているか確認してください。" - -#~ msgid "Instance ID: %(instance.id)s Performance\" " -#~ msgstr "インスタンスID: %(instance.id)s Performance\" " - -#~ msgid "Keys" -#~ msgstr "キー" - -#~ msgid "Are you sure you wish to delete key" -#~ msgstr "キーを削除してよろしいですか。" - -#~ msgid "Edit Roles for User:" -#~ msgstr "ユーザのロールの編集:" - -#~ msgid "" -#~ "Welcome to the %(proj)s Overview. From here you can manage " -#~ "your instances, images, keys, and security groups." -#~ msgstr "" -#~ "%(proj)sのオーバービューページにようこそ。ここで、インスタン" -#~ "ス、イメージ、キー、セキュリティーグループを管理できます。" - -#~ msgid "" -#~ "To get started using the command line management tools, you can download euca2ools and use them with your x509 " -#~ "credentials." -#~ msgstr "" -#~ "コマンドライン形式の管理ツールで利用開始される場合は、download " -#~ "euca2oolsでツールをダウンロードし、あなたのx509資格情報を利用してお使" -#~ "い頂けます。" - -#~ msgid "Manage Users and Roles" -#~ msgstr "ユーザとその資格の管理" - -#~ msgid " Security Group: %(securitygroup.name)s " -#~ msgstr "セキュリティグループは、:%(securitygroup.name)s です" - -#~ msgid "" -#~ "Add and remove protocols to the security group by authorizing and " -#~ "revoking port forwarding. For instance
[tcp, 80, 80] will allow " -#~ "access to HTTP from devices outside this security group." -#~ msgstr "" -#~ "ポートフォワーディングを認可・不許可する事で、セキュリティーグループのプロ" -#~ "トコルを追加・削除します。 例 :
[tcp, 80, 80] と設定することでこの" -#~ "セキュリティーグループ外のデバイスからHTTPアクセスを許可する事ができます。" - -#~ msgid "" -#~ "Security groups are firewall rules which allow access to your instances " -#~ "from other groups as well as the internet. All ports/protocols are " -#~ "denied by default." -#~ msgstr "" -#~ "セキュリティーグループは、他のグループやインターネットより起動されているイ" -#~ "ンスタンスへのアクセス許可を設定するファイヤーウォールのルールです。初期設" -#~ "定値は、全てのポート/プロトコルを拒否する様になっています。" - -#~ msgid "" -#~ "Volumes provide persistent block storage. Creating a new volume gives you " -#~ "a raw block device which you may format with your choice of filesystems " -#~ "(ext3 is recommended). A volume may only be attached to a single instance " -#~ "at a time." -#~ msgstr "" -#~ "ボリュームは、パーシスタントブロックストレージを提供します。新しいボリュー" -#~ "ムを作成すると、ブロックデバイスが確保され、利用されるファイルシステムにそ" -#~ "のデバイスをフォーマットする事ができます。(ext3が推奨フォーマットです。)1" -#~ "つのボリュームを毎回1つのインスタンスにのみ付与する事ができます。" - -#~ msgid "No volumes currently exist." -#~ msgstr "ボリュームが存在しません。" diff --git a/horizon/locale/pl/LC_MESSAGES/django.po b/horizon/locale/pl/LC_MESSAGES/django.po index 6608f2f09..72b8e58f7 100644 --- a/horizon/locale/pl/LC_MESSAGES/django.po +++ b/horizon/locale/pl/LC_MESSAGES/django.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: openstack-dashboard\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2012-05-29 11:47-0700\n" +"POT-Creation-Date: 2012-07-09 02:29+0000\n" "PO-Revision-Date: 2011-09-24 14:41+0100\n" "Last-Translator: Tomasz 'Zen' Napierala \n" "Language-Team: Polish OpenStack translations team Należy " +"chronić i używać ten klucza tak jak normalnego klucza prywantego." + +#: dashboards/nova/access_and_security/templates/access_and_security/keypairs/_create.html:18 +#: dashboards/nova/access_and_security/templates/access_and_security/keypairs/_import.html:18 +msgid "Protect and use the key as you would any normal ssh private key." +msgstr "" + +#: dashboards/nova/access_and_security/templates/access_and_security/keypairs/download.html:3 +#: dashboards/nova/access_and_security/templates/access_and_security/keypairs/download.html:6 +msgid "Download Keypair" +msgstr "" + +#: dashboards/nova/access_and_security/templates/access_and_security/keypairs/download.html:11 +#, python-format +msgid "" +"The keypair "%(keypair_name)s" should download automatically. If " +"not use the link below." +msgstr "" + +#: dashboards/nova/access_and_security/templates/access_and_security/keypairs/download.html:15 +#, python-format +msgid "Download keypair "%(keypair_name)s"" +msgstr "" + +#: dashboards/nova/access_and_security/templates/access_and_security/security_groups/_create.html:18 +#, fuzzy +msgid "From here you can create a new security group" +msgstr "Tutaj można edytować wiele ról użytkowników." + +#: dashboards/nova/access_and_security/templates/access_and_security/security_groups/_edit_rules.html:9 +#: dashboards/nova/access_and_security/templates/access_and_security/security_groups/edit_rules.html:6 +#, fuzzy +msgid "Edit Security Group Rules" +msgstr "Grupy bezpieczeństwa" + +#: dashboards/nova/access_and_security/templates/access_and_security/security_groups/_edit_rules.html:12 +#: dashboards/nova/access_and_security/templates/access_and_security/security_groups/_edit_rules.html:19 +msgid "Add Rule" +msgstr "" #: dashboards/nova/containers/forms.py:38 msgid "Slash is not an allowed character." msgstr "" -#: dashboards/nova/containers/forms.py:45 -#: dashboards/nova/containers/tables.py:88 +#: dashboards/nova/containers/forms.py:48 +#: dashboards/nova/containers/tables.py:91 msgid "Container Name" msgstr "" -#: dashboards/nova/containers/forms.py:51 +#: dashboards/nova/containers/forms.py:56 #, fuzzy msgid "Container created successfully." msgstr "Wolumen %(id)s %(name)s został pomyślnie utworzony." -#: dashboards/nova/containers/forms.py:53 +#: dashboards/nova/containers/forms.py:67 +#, fuzzy +msgid "Folder created successfully." +msgstr "Wolumen %(id)s %(name)s został pomyślnie utworzony." + +#: dashboards/nova/containers/forms.py:75 #, fuzzy msgid "Unable to create container." msgstr "Nie można utworzyć klucza: %s" -#: dashboards/nova/containers/forms.py:59 -#: dashboards/nova/containers/tables.py:155 +#: dashboards/nova/containers/forms.py:85 +#: dashboards/nova/containers/tables.py:157 msgid "Object Name" msgstr "" -#: dashboards/nova/containers/forms.py:61 +#: dashboards/nova/containers/forms.py:87 msgid "File" msgstr "" -#: dashboards/nova/containers/forms.py:73 +#: dashboards/nova/containers/forms.py:103 #, fuzzy msgid "Object was successfully uploaded." msgstr "Grupa bezpieczeństwa %s została pomyślnie usunięta." -#: dashboards/nova/containers/forms.py:75 +#: dashboards/nova/containers/forms.py:105 #, fuzzy msgid "Unable to upload object." msgstr "Nie można zaktualizować obrazu: %s" -#: dashboards/nova/containers/forms.py:81 +#: dashboards/nova/containers/forms.py:111 msgid "Destination container" msgstr "" -#: dashboards/nova/containers/forms.py:84 +#: dashboards/nova/containers/forms.py:115 msgid "Destination object name" msgstr "" -#: dashboards/nova/containers/forms.py:107 -#, python-format -msgid "Object \"%(obj)s\" copied to container \"%(container)s\"." +#: dashboards/nova/containers/forms.py:145 +#: dashboards/nova/containers/forms.py:169 +msgid "Unable to copy object." msgstr "" -#: dashboards/nova/containers/forms.py:115 -msgid "Unable to copy object." +#: dashboards/nova/containers/forms.py:161 +#, python-format +msgid "Copied \"%(orig)s\" to \"%(dest)s\" as \"%(new)s\"." msgstr "" #: dashboards/nova/containers/panel.py:28 #: dashboards/nova/containers/tables.py:35 -#: dashboards/nova/containers/tables.py:99 -#: dashboards/nova/templates/nova/containers/index.html:8 +#: dashboards/nova/containers/tables.py:102 +#: dashboards/nova/containers/templates/containers/index.html:6 msgid "Containers" msgstr "" #: dashboards/nova/containers/tables.py:34 +#: dashboards/nova/containers/templates/containers/detail.html:7 #, fuzzy msgid "Container" msgstr "Utwórz nowy wolumen." @@ -557,72 +699,137 @@ msgid "Containers must be empty before deletion." msgstr "" #: dashboards/nova/containers/tables.py:48 -#: dashboards/nova/templates/nova/containers/_create.html:7 -#: dashboards/nova/templates/nova/containers/_create.html:22 -#: dashboards/nova/templates/nova/containers/create.html:6 +#: dashboards/nova/containers/templates/containers/_create.html:7 +#: dashboards/nova/containers/templates/containers/_create.html:22 +#: dashboards/nova/containers/templates/containers/create.html:6 msgid "Create Container" msgstr "" #: dashboards/nova/containers/tables.py:55 -msgid "List Objects" -msgstr "" +#, fuzzy +msgid "View Container" +msgstr "Utwórz nowy wolumen." #: dashboards/nova/containers/tables.py:62 -#: dashboards/nova/templates/nova/objects/_upload.html:23 -#: dashboards/nova/templates/nova/objects/upload.html:3 +#: dashboards/nova/containers/templates/containers/_upload.html:23 +#: dashboards/nova/containers/templates/containers/upload.html:3 msgid "Upload Object" msgstr "" -#: dashboards/nova/containers/tables.py:90 -#: dashboards/nova/containers/tables.py:106 -#: dashboards/nova/containers/tables.py:163 -#: dashboards/nova/templates/nova/objects/index.html:3 +#: dashboards/nova/containers/tables.py:93 +#: dashboards/nova/containers/tables.py:109 +#: dashboards/nova/containers/tables.py:169 +#: dashboards/nova/containers/templates/containers/detail.html:3 msgid "Objects" msgstr "" -#: dashboards/nova/containers/tables.py:92 -#: dashboards/nova/containers/tables.py:156 -#: dashboards/nova/instances_and_volumes/instances/tables.py:243 -#: dashboards/nova/instances_and_volumes/volumes/tables.py:114 -#: dashboards/nova/templates/nova/images_and_snapshots/images/_detail_overview.html:30 -#: dashboards/nova/templates/nova/instances_and_volumes/volumes/_detail_overview.html:26 +#: dashboards/nova/containers/tables.py:95 +#: dashboards/nova/containers/tables.py:160 +#: dashboards/nova/images_and_snapshots/templates/images_and_snapshots/images/_detail_overview.html:30 +#: dashboards/nova/instances/tables.py:271 +#: dashboards/nova/volumes/tables.py:140 +#: dashboards/nova/volumes/templates/volumes/_detail_overview.html:26 #: dashboards/syspanel/instances/tables.py:76 msgid "Size" msgstr "" -#: dashboards/nova/containers/tables.py:105 +#: dashboards/nova/containers/tables.py:108 #, fuzzy msgid "Object" msgstr "Usuń projekt" -#: dashboards/nova/containers/tables.py:116 +#: dashboards/nova/containers/tables.py:119 msgid "Copy" msgstr "" -#: dashboards/nova/containers/tables.py:127 +#: dashboards/nova/containers/tables.py:130 msgid "Download" msgstr "" -#: dashboards/nova/containers/views.py:57 +#: dashboards/nova/containers/tables.py:181 +#, fuzzy +msgid "Create Folder" +msgstr "Wolumeny" + +#: dashboards/nova/containers/tables.py:193 +msgid "Folder" +msgstr "" + +#: dashboards/nova/containers/tables.py:194 +msgid "Folders" +msgstr "" + +#: dashboards/nova/containers/tables.py:200 +#, fuzzy +msgid "Subfolder Name" +msgstr "Obrazy" + +#: dashboards/nova/containers/tables.py:208 +msgid "Subfolders" +msgstr "" + +#: dashboards/nova/containers/views.py:58 #, fuzzy msgid "Unable to retrieve container list." msgstr "Nie można utworzyć klucza: %s" -#: dashboards/nova/containers/views.py:84 +#: dashboards/nova/containers/views.py:103 #, fuzzy msgid "Unable to retrieve object list." msgstr "Nie można utworzyć klucza: %s" -#: dashboards/nova/containers/views.py:122 +#: dashboards/nova/containers/views.py:161 #, fuzzy msgid "Unable to retrieve object." msgstr "Nie można utworzyć klucza: %s" -#: dashboards/nova/containers/views.py:144 +#: dashboards/nova/containers/views.py:183 #, fuzzy msgid "Unable to list containers." msgstr "Nie można usunąć klucza: %s" +#: dashboards/nova/containers/templates/containers/_copy.html:7 +#: dashboards/nova/containers/templates/containers/_copy.html:22 +#: dashboards/nova/containers/templates/containers/copy.html:3 +#: dashboards/nova/containers/templates/containers/copy.html:6 +msgid "Copy Object" +msgstr "" + +#: dashboards/nova/containers/templates/containers/_copy.html:17 +msgid "" +"Make a new copy of an existing object to store in this or another container. " +"You may also specify a path at which the new copy should live inside of the " +"selected container." +msgstr "" + +#: dashboards/nova/containers/templates/containers/_create.html:17 +msgid "" +"A container is a storage compartment for your data and provides a way for " +"you to organize your data. You can think of a container as a folder in " +"Windows ® or a directory in UNIX ®. The primary difference between a " +"container and these other file system concepts is that containers cannot be " +"nested. You can, however, create an unlimited number of containers within " +"your account. Data must be stored in a container so you must have at least " +"one container defined in your account prior to uploading data." +msgstr "" + +#: dashboards/nova/containers/templates/containers/_upload.html:8 +msgid "Upload Object To Container" +msgstr "" + +#: dashboards/nova/containers/templates/containers/_upload.html:18 +msgid "" +"An object is the basic storage entity and any optional metadata that " +"represents the files you store in the OpenStack Object Storage system. When " +"you upload data to OpenStack Object Storage, the data is stored as-is (no " +"compression or encryption) and consists of a location (container), the " +"object's name, and any metadata consisting of key/value pairs." +msgstr "" + +#: dashboards/nova/containers/templates/containers/upload.html:6 +msgid "Upload Objects" +msgstr "" + #: dashboards/nova/images_and_snapshots/panel.py:25 #, fuzzy msgid "Images & Snapshots" @@ -644,99 +851,155 @@ msgid "Unable to retrieve volume snapshots." msgstr "Nie można utworzyć wolumenu: %s" #: dashboards/nova/images_and_snapshots/images/forms.py:44 -#: dashboards/nova/templates/nova/images_and_snapshots/images/_detail_overview.html:48 -msgid "Kernel ID" +#, fuzzy +msgid "Image Location" +msgstr "Położenie" + +#: dashboards/nova/images_and_snapshots/images/forms.py:45 +msgid "An external (HTTP) URL where the image should be loaded from." msgstr "" -#: dashboards/nova/images_and_snapshots/images/forms.py:49 -#: dashboards/nova/templates/nova/images_and_snapshots/images/_detail_overview.html:52 -msgid "Ramdisk ID" +#: dashboards/nova/images_and_snapshots/images/forms.py:48 +#: dashboards/nova/images_and_snapshots/images/forms.py:135 +#: dashboards/nova/images_and_snapshots/images/tables.py:125 +msgid "Format" msgstr "" -#: dashboards/nova/images_and_snapshots/images/forms.py:54 -#: dashboards/nova/templates/nova/images_and_snapshots/images/_detail_overview.html:44 -msgid "Architecture" +#: dashboards/nova/images_and_snapshots/images/forms.py:52 +msgid "AKI - Amazon Kernel Image" +msgstr "" + +#: dashboards/nova/images_and_snapshots/images/forms.py:55 +msgid "AMI - Amazon Machine Image" msgstr "" #: dashboards/nova/images_and_snapshots/images/forms.py:58 -#: dashboards/nova/images_and_snapshots/images/tables.py:98 -#: dashboards/nova/templates/nova/images_and_snapshots/images/_detail_overview.html:32 -msgid "Container Format" +msgid "ARI - Amazon Ramdisk Image" msgstr "" -#: dashboards/nova/images_and_snapshots/images/forms.py:62 -#: dashboards/nova/templates/nova/images_and_snapshots/images/_detail_overview.html:34 -msgid "Disk Format" +#: dashboards/nova/images_and_snapshots/images/forms.py:61 +msgid "ISO - Optical Disk Image" msgstr "" -#: dashboards/nova/images_and_snapshots/images/forms.py:66 -#: dashboards/nova/images_and_snapshots/images/tables.py:94 -#: dashboards/nova/templates/nova/images_and_snapshots/images/_detail_overview.html:15 +#: dashboards/nova/images_and_snapshots/images/forms.py:63 +msgid "QCOW2 - QEMU Emulator" +msgstr "" + +#: dashboards/nova/images_and_snapshots/images/forms.py:70 +msgid "Minimum Disk (GB)" +msgstr "" + +#: dashboards/nova/images_and_snapshots/images/forms.py:71 +#: dashboards/nova/images_and_snapshots/images/forms.py:78 +msgid "" +"The minimum disk size required to boot the image. If unspecified, this value " +"defaults to 0 (no minimum)." +msgstr "" + +#: dashboards/nova/images_and_snapshots/images/forms.py:77 +msgid "Minimum Ram (MB)" +msgstr "" + +#: dashboards/nova/images_and_snapshots/images/forms.py:84 +#: dashboards/nova/images_and_snapshots/images/forms.py:139 +#: dashboards/nova/images_and_snapshots/images/tables.py:122 +#: dashboards/nova/images_and_snapshots/templates/images_and_snapshots/images/_detail_overview.html:15 #, fuzzy msgid "Public" msgstr "Uczyń publicznym" -#: dashboards/nova/images_and_snapshots/images/forms.py:72 +#: dashboards/nova/images_and_snapshots/images/forms.py:108 +#, python-format +msgid "Your image %s has been queued for creation." +msgstr "" + +#: dashboards/nova/images_and_snapshots/images/forms.py:111 +#, fuzzy +msgid "Unable to create new image." +msgstr "Nie można cofnąć: %s" + +#: dashboards/nova/images_and_snapshots/images/forms.py:121 +#: dashboards/nova/images_and_snapshots/templates/images_and_snapshots/images/_detail_overview.html:48 +msgid "Kernel ID" +msgstr "" + +#: dashboards/nova/images_and_snapshots/images/forms.py:126 +#: dashboards/nova/images_and_snapshots/templates/images_and_snapshots/images/_detail_overview.html:52 +msgid "Ramdisk ID" +msgstr "" + +#: dashboards/nova/images_and_snapshots/images/forms.py:131 +#: dashboards/nova/images_and_snapshots/templates/images_and_snapshots/images/_detail_overview.html:44 +msgid "Architecture" +msgstr "" + +#: dashboards/nova/images_and_snapshots/images/forms.py:144 #, fuzzy, python-format msgid "Unable to update image \"%s\"." msgstr "Nie można zaktualizować obrazu: %s" -#: dashboards/nova/images_and_snapshots/images/forms.py:88 +#: dashboards/nova/images_and_snapshots/images/forms.py:163 #, fuzzy msgid "Image was successfully updated." msgstr "Obraz %s został pomyślnie wyrejestrowany." #: dashboards/nova/images_and_snapshots/images/tables.py:33 #: dashboards/nova/images_and_snapshots/snapshots/tables.py:32 -#: dashboards/nova/instances_and_volumes/instances/workflows.py:377 +#: dashboards/nova/instances/workflows.py:394 #, fuzzy msgid "Launch" msgstr "Uruchom obraz" #: dashboards/nova/images_and_snapshots/images/tables.py:45 -#: dashboards/nova/instances_and_volumes/instances/workflows.py:161 -#: dashboards/nova/instances_and_volumes/instances/workflows.py:166 +#: dashboards/nova/images_and_snapshots/images/tables.py:81 +#: dashboards/nova/instances/workflows.py:162 +#: dashboards/nova/instances/workflows.py:167 #, fuzzy msgid "Image" msgstr "Obrazy" #: dashboards/nova/images_and_snapshots/images/tables.py:46 -#: dashboards/nova/images_and_snapshots/images/tables.py:102 +#: dashboards/nova/images_and_snapshots/images/tables.py:131 #: dashboards/syspanel/images/panel.py:28 -#: dashboards/syspanel/images/tables.py:38 -#: dashboards/syspanel/templates/syspanel/images/index.html:3 -#: dashboards/syspanel/templates/syspanel/images/index.html:6 +#: dashboards/syspanel/images/tables.py:43 +#: dashboards/syspanel/images/templates/images/index.html:3 +#: dashboards/syspanel/images/templates/images/index.html:6 msgid "Images" msgstr "Obrazy" #: dashboards/nova/images_and_snapshots/images/tables.py:60 +#: dashboards/nova/images_and_snapshots/templates/images_and_snapshots/images/_create.html:31 +#, fuzzy +msgid "Create Image" +msgstr "Aktualizuj obraz" + +#: dashboards/nova/images_and_snapshots/images/tables.py:67 #: dashboards/syspanel/users/tables.py:30 msgid "Edit" msgstr "" -#: dashboards/nova/images_and_snapshots/images/tables.py:87 -#: dashboards/nova/templates/nova/instances_and_volumes/instances/_detail_overview.html:72 +#: dashboards/nova/images_and_snapshots/images/tables.py:112 +#: dashboards/nova/instances/templates/instances/_detail_overview.html:74 +#: dashboards/syspanel/images/tables.py:39 #, fuzzy msgid "Image Name" msgstr "Obrazy" -#: dashboards/nova/images_and_snapshots/images/tables.py:92 -#: dashboards/nova/instances_and_volumes/instances/tables.py:246 -#: dashboards/nova/instances_and_volumes/volumes/tables.py:117 -#: dashboards/nova/templates/nova/images_and_snapshots/images/_detail_overview.html:13 -#: dashboards/nova/templates/nova/instances_and_volumes/instances/_detail_overview.html:13 -#: dashboards/nova/templates/nova/instances_and_volumes/volumes/_detail_overview.html:17 +#: dashboards/nova/images_and_snapshots/images/tables.py:118 +#: dashboards/nova/images_and_snapshots/templates/images_and_snapshots/images/_detail_overview.html:13 +#: dashboards/nova/instances/tables.py:275 +#: dashboards/nova/instances/templates/instances/_detail_overview.html:13 +#: dashboards/nova/volumes/tables.py:143 +#: dashboards/nova/volumes/templates/volumes/_detail_overview.html:17 #: dashboards/syspanel/instances/tables.py:80 msgid "Status" msgstr "" #: dashboards/nova/images_and_snapshots/images/tabs.py:26 -#: dashboards/nova/instances_and_volumes/instances/tabs.py:25 -#: dashboards/nova/instances_and_volumes/volumes/tabs.py:26 -#: dashboards/nova/overview/panel.py:28 -#: dashboards/nova/templates/nova/overview/usage.html:6 -#: dashboards/syspanel/overview/panel.py:28 -#: dashboards/syspanel/templates/syspanel/overview/usage.html:6 +#: dashboards/nova/instances/tabs.py:25 dashboards/nova/overview/panel.py:28 +#: dashboards/nova/overview/templates/overview/usage.html:6 +#: dashboards/nova/volumes/tabs.py:26 dashboards/syspanel/overview/panel.py:28 +#: dashboards/syspanel/overview/templates/overview/usage.html:6 msgid "Overview" msgstr "" @@ -745,13 +1008,18 @@ msgstr "" msgid "Unable to retrieve image details." msgstr "Nie można cofnąć: %s" -#: dashboards/nova/images_and_snapshots/images/views.py:50 +#: dashboards/nova/images_and_snapshots/images/views.py:57 #, fuzzy msgid "Unable to retrieve image." msgstr "Nie można cofnąć: %s" +#: dashboards/nova/images_and_snapshots/snapshots/forms.py:38 +#, fuzzy +msgid "Instance ID" +msgstr "ID instancji:" + #: dashboards/nova/images_and_snapshots/snapshots/forms.py:41 -#: dashboards/nova/instances_and_volumes/volumes/forms.py:101 +#: dashboards/nova/volumes/forms.py:123 msgid "Snapshot Name" msgstr "" @@ -766,9 +1034,9 @@ msgid "Unable to create snapshot." msgstr "Nie można utworzyć klucza: %s" #: dashboards/nova/images_and_snapshots/snapshots/tables.py:47 -#: dashboards/nova/instances_and_volumes/instances/tables.py:158 -#: dashboards/nova/instances_and_volumes/instances/workflows.py:101 -#: dashboards/nova/instances_and_volumes/instances/workflows.py:162 +#: dashboards/nova/instances/tables.py:162 +#: dashboards/nova/instances/workflows.py:101 +#: dashboards/nova/instances/workflows.py:163 msgid "Snapshot" msgstr "" @@ -791,968 +1059,1019 @@ msgstr "Nie można cofnąć: %s" msgid "To create a snapshot, the instance must be in the \"%s\" state." msgstr "" +#: dashboards/nova/images_and_snapshots/templates/images_and_snapshots/index.html:3 +#: dashboards/nova/images_and_snapshots/templates/images_and_snapshots/index.html:6 +msgid "Images & Snapshots" +msgstr "" + +#: dashboards/nova/images_and_snapshots/templates/images_and_snapshots/images/_create.html:7 +#: dashboards/nova/images_and_snapshots/templates/images_and_snapshots/images/create.html:3 +#: dashboards/nova/images_and_snapshots/templates/images_and_snapshots/images/create.html:6 +#, fuzzy +msgid "Create An Image" +msgstr "Aktualizuj obraz" + +#: dashboards/nova/images_and_snapshots/templates/images_and_snapshots/images/_create.html:18 +msgid "Specify an image to upload to the Image Service." +msgstr "" + +#: dashboards/nova/images_and_snapshots/templates/images_and_snapshots/images/_create.html:21 +msgid "" +"Currently only images available via an HTTP URL are supported. The image " +"location must be accessible to the Image Service. Compressed image binaries " +"are supported (.zip and .tar.gz.)" +msgstr "" + +#: dashboards/nova/images_and_snapshots/templates/images_and_snapshots/images/_create.html:24 +msgid "Please note: " +msgstr "" + +#: dashboards/nova/images_and_snapshots/templates/images_and_snapshots/images/_create.html:25 +msgid "" +"The Image Location field MUST be a valid and direct URL to the image binary. " +"URLs that redirect or serve error pages will results in unusable images." +msgstr "" + +#: dashboards/nova/images_and_snapshots/templates/images_and_snapshots/images/_detail_overview.html:3 +#, fuzzy +msgid "Image Overview" +msgstr "Instancje" + +#: dashboards/nova/images_and_snapshots/templates/images_and_snapshots/images/_detail_overview.html:6 +#: dashboards/nova/instances/templates/instances/_detail_overview.html:6 +#: dashboards/nova/volumes/templates/volumes/_detail_overview.html:6 +msgid "Info" +msgstr "" + +#: dashboards/nova/images_and_snapshots/templates/images_and_snapshots/images/_detail_overview.html:11 +#: dashboards/nova/instances/templates/instances/_detail_overview.html:11 +#: dashboards/nova/volumes/templates/volumes/_detail_overview.html:11 +#: dashboards/syspanel/projects/forms.py:83 +#: dashboards/syspanel/users/forms.py:113 +msgid "ID" +msgstr "" + +#: dashboards/nova/images_and_snapshots/templates/images_and_snapshots/images/_detail_overview.html:17 +msgid "Checksum" +msgstr "" + +#: dashboards/nova/images_and_snapshots/templates/images_and_snapshots/images/_detail_overview.html:19 +#: dashboards/nova/volumes/templates/volumes/_detail_overview.html:28 +#, fuzzy +msgid "Created" +msgstr "Utwórz nowy wolumen." + +#: dashboards/nova/images_and_snapshots/templates/images_and_snapshots/images/_detail_overview.html:21 +#, fuzzy +msgid "Updated" +msgstr "Aktualizuj obraz" + +#: dashboards/nova/images_and_snapshots/templates/images_and_snapshots/images/_detail_overview.html:27 +#: dashboards/nova/instances/templates/instances/_detail_overview.html:19 +#: dashboards/nova/volumes/templates/volumes/_detail_overview.html:23 +msgid "Specs" +msgstr "" + +#: dashboards/nova/images_and_snapshots/templates/images_and_snapshots/images/_detail_overview.html:32 +msgid "Container Format" +msgstr "" + +#: dashboards/nova/images_and_snapshots/templates/images_and_snapshots/images/_detail_overview.html:34 +msgid "Disk Format" +msgstr "" + +#: dashboards/nova/images_and_snapshots/templates/images_and_snapshots/images/_detail_overview.html:40 +msgid "Custom Properties" +msgstr "" + +#: dashboards/nova/images_and_snapshots/templates/images_and_snapshots/images/_detail_overview.html:56 +msgid "Euca2ools state" +msgstr "" + +#: dashboards/nova/images_and_snapshots/templates/images_and_snapshots/images/_detail_overview.html:60 +#: dashboards/syspanel/projects/tables.py:77 +msgid "Project ID" +msgstr "" + +#: dashboards/nova/images_and_snapshots/templates/images_and_snapshots/images/_detail_overview.html:64 +#, fuzzy +msgid "Image Type" +msgstr "Obrazy" + +#: dashboards/nova/images_and_snapshots/templates/images_and_snapshots/images/_update.html:7 +#: dashboards/nova/images_and_snapshots/templates/images_and_snapshots/images/_update.html:22 +#: dashboards/nova/images_and_snapshots/templates/images_and_snapshots/images/update.html:3 +#: dashboards/nova/images_and_snapshots/templates/images_and_snapshots/images/update.html:6 +#: dashboards/syspanel/images/templates/images/_update.html:8 +#: dashboards/syspanel/images/templates/images/_update.html:23 +#: dashboards/syspanel/images/templates/images/update.html:4 +#: dashboards/syspanel/images/templates/images/update.html:7 +msgid "Update Image" +msgstr "Aktualizuj obraz" + +#: dashboards/nova/images_and_snapshots/templates/images_and_snapshots/images/_update.html:17 +#: dashboards/syspanel/images/templates/images/_update.html:18 +#, fuzzy +msgid "From here you can modify different properties of an image." +msgstr "Tutaj można zarządzać użytkownikami i rolami." + +#: dashboards/nova/images_and_snapshots/templates/images_and_snapshots/images/detail.html:4 +msgid "Image Detail " +msgstr "" + +#: dashboards/nova/images_and_snapshots/templates/images_and_snapshots/snapshots/_create.html:8 +#: dashboards/nova/images_and_snapshots/templates/images_and_snapshots/snapshots/_create.html:23 +#: dashboards/nova/images_and_snapshots/templates/images_and_snapshots/snapshots/create.html:3 +#: dashboards/nova/volumes/tables.py:67 +msgid "Create Snapshot" +msgstr "" + +#: dashboards/nova/images_and_snapshots/templates/images_and_snapshots/snapshots/_create.html:18 +msgid "Snapshots preserve the disk state of a running instance." +msgstr "" + +#: dashboards/nova/images_and_snapshots/templates/images_and_snapshots/snapshots/create.html:6 +msgid "Create a Snapshot" +msgstr "" + #: dashboards/nova/images_and_snapshots/volume_snapshots/tables.py:30 -#: dashboards/nova/instances_and_volumes/instances/workflows.py:71 +#: dashboards/nova/instances/workflows.py:70 #, fuzzy msgid "Volume Snapshot" msgstr "Wolumeny" #: dashboards/nova/images_and_snapshots/volume_snapshots/tables.py:31 -#: dashboards/nova/images_and_snapshots/volume_snapshots/tables.py:42 +#: dashboards/nova/images_and_snapshots/volume_snapshots/tables.py:52 #, fuzzy msgid "Volume Snapshots" msgstr "Wolumeny" -#: dashboards/nova/images_and_snapshots/volume_snapshots/tables.py:38 +#: dashboards/nova/images_and_snapshots/volume_snapshots/tables.py:48 #, fuzzy msgid "Volume ID" msgstr "Wolumeny" -#: dashboards/nova/instances_and_volumes/panel.py:24 -#, fuzzy -msgid "Instances & Volumes" -msgstr "Instancje" - -#: dashboards/nova/instances_and_volumes/views.py:52 -#, fuzzy -msgid "Unable to retrieve instances." -msgstr "Nie można cofnąć: %s" - -#: dashboards/nova/instances_and_volumes/views.py:62 -#: dashboards/syspanel/instances/views.py:65 -#, fuzzy -msgid "Unable to retrieve instance size information." -msgstr "Nie można cofnąć: %s" - -#: dashboards/nova/instances_and_volumes/views.py:78 -#, fuzzy, python-format -msgid "Unable to fetch volumes: %s" -msgstr "Nie można odłączyć wolumenu: %s" - -#: dashboards/nova/instances_and_volumes/instances/forms.py:44 +#: dashboards/nova/instances/forms.py:44 #, fuzzy, python-format msgid "Instance \"%s\" updated." msgstr "Instancja %s uruchomiona." -#: dashboards/nova/instances_and_volumes/instances/forms.py:46 +#: dashboards/nova/instances/forms.py:46 #, fuzzy msgid "Unable to update instance." msgstr "Nie można zaktualizować obrazu: %s" -#: dashboards/nova/instances_and_volumes/instances/tables.py:56 -msgid "Terminate" -msgstr "" - -#: dashboards/nova/instances_and_volumes/instances/tables.py:57 -msgid "Terminated" -msgstr "" - -#: dashboards/nova/instances_and_volumes/instances/tables.py:59 -#: dashboards/nova/instances_and_volumes/instances/tables.py:76 -#: dashboards/nova/instances_and_volumes/instances/tables.py:91 -#: dashboards/nova/instances_and_volumes/instances/tables.py:119 -#: dashboards/nova/instances_and_volumes/instances/tables.py:261 +#: dashboards/nova/instances/panel.py:24 +#: dashboards/nova/instances/tables.py:63 +#: dashboards/nova/instances/tables.py:80 +#: dashboards/nova/instances/tables.py:95 +#: dashboards/nova/instances/tables.py:123 +#: dashboards/nova/instances/tables.py:290 +#: dashboards/nova/instances/templates/instances/index.html:3 +#: dashboards/nova/instances/templates/instances/index.html:6 #: dashboards/syspanel/instances/panel.py:28 #: dashboards/syspanel/instances/tables.py:95 +#: dashboards/syspanel/instances/templates/instances/index.html:3 #: dashboards/syspanel/projects/forms.py:115 -#: dashboards/syspanel/templates/syspanel/instances/index.html:3 msgid "Instances" msgstr "Instancje" -#: dashboards/nova/instances_and_volumes/instances/tables.py:73 +#: dashboards/nova/instances/tables.py:60 +msgid "Terminate" +msgstr "" + +#: dashboards/nova/instances/tables.py:61 +msgid "Scheduled termination of" +msgstr "" + +#: dashboards/nova/instances/tables.py:77 msgid "Reboot" msgstr "" -#: dashboards/nova/instances_and_volumes/instances/tables.py:74 +#: dashboards/nova/instances/tables.py:78 msgid "Rebooted" msgstr "" -#: dashboards/nova/instances_and_volumes/instances/tables.py:88 +#: dashboards/nova/instances/tables.py:92 msgid "Pause" msgstr "" -#: dashboards/nova/instances_and_volumes/instances/tables.py:88 +#: dashboards/nova/instances/tables.py:92 msgid "Unpause" msgstr "" -#: dashboards/nova/instances_and_volumes/instances/tables.py:89 +#: dashboards/nova/instances/tables.py:93 msgid "Paused" msgstr "" -#: dashboards/nova/instances_and_volumes/instances/tables.py:89 +#: dashboards/nova/instances/tables.py:93 msgid "Unpaused" msgstr "" -#: dashboards/nova/instances_and_volumes/instances/tables.py:116 +#: dashboards/nova/instances/tables.py:120 msgid "Suspend" msgstr "" -#: dashboards/nova/instances_and_volumes/instances/tables.py:116 +#: dashboards/nova/instances/tables.py:120 msgid "Resume" msgstr "" -#: dashboards/nova/instances_and_volumes/instances/tables.py:117 +#: dashboards/nova/instances/tables.py:121 msgid "Suspended" msgstr "" -#: dashboards/nova/instances_and_volumes/instances/tables.py:117 +#: dashboards/nova/instances/tables.py:121 msgid "Resumed" msgstr "" -#: dashboards/nova/instances_and_volumes/instances/tables.py:144 -#: dashboards/nova/instances_and_volumes/instances/workflows.py:376 -#: dashboards/nova/templates/nova/instances_and_volumes/instances/launch.html:3 -#: dashboards/nova/templates/nova/instances_and_volumes/instances/launch.html:6 +#: dashboards/nova/instances/tables.py:148 +#: dashboards/nova/instances/workflows.py:393 +#: dashboards/nova/instances/templates/instances/launch.html:3 +#: dashboards/nova/instances/templates/instances/launch.html:6 #, fuzzy msgid "Launch Instance" msgstr "Uruchom obraz" -#: dashboards/nova/instances_and_volumes/instances/tables.py:151 -#: dashboards/nova/templates/nova/instances_and_volumes/instances/_update.html:7 +#: dashboards/nova/instances/tables.py:155 +#: dashboards/nova/instances/templates/instances/_update.html:7 msgid "Edit Instance" msgstr "Edytuj instancję" -#: dashboards/nova/instances_and_volumes/instances/tables.py:168 +#: dashboards/nova/instances/tables.py:172 msgid "VNC Console" msgstr "" -#: dashboards/nova/instances_and_volumes/instances/tables.py:183 +#: dashboards/nova/instances/tables.py:187 msgid "View Log" msgstr "" -#: dashboards/nova/instances_and_volumes/instances/tables.py:213 +#: dashboards/nova/instances/tables.py:232 #, python-format -msgid "%(RAM)s RAM | %(VCPU)s VCPU | %(disk)s Disk" +msgid "%(name)s | %(RAM)s RAM | %(VCPU)s VCPU | %(disk)s Disk" msgstr "" -#: dashboards/nova/instances_and_volumes/instances/tables.py:241 -#: dashboards/syspanel/instances/tables.py:73 usage/tables.py:47 +#: dashboards/nova/instances/tables.py:239 +#: dashboards/nova/instances/tables.py:246 +#, fuzzy +msgid "Not available" +msgstr "brak dostępnych" + +#: dashboards/nova/instances/tables.py:269 +#: dashboards/syspanel/instances/tables.py:73 usage/tables.py:56 #, fuzzy msgid "Instance Name" msgstr "Instancje" -#: dashboards/nova/instances_and_volumes/instances/tables.py:250 +#: dashboards/nova/instances/tables.py:279 #: dashboards/syspanel/instances/tables.py:84 msgid "Task" msgstr "" -#: dashboards/nova/instances_and_volumes/instances/tables.py:257 +#: dashboards/nova/instances/tables.py:286 #: dashboards/syspanel/instances/tables.py:91 msgid "Power State" msgstr "" -#: dashboards/nova/instances_and_volumes/instances/tabs.py:35 +#: dashboards/nova/instances/tabs.py:35 msgid "Log" msgstr "" -#: dashboards/nova/instances_and_volumes/instances/tabs.py:47 -#: dashboards/nova/instances_and_volumes/instances/views.py:63 +#: dashboards/nova/instances/tabs.py:47 dashboards/nova/instances/views.py:105 #, fuzzy, python-format msgid "Unable to get log for instance \"%s\"." msgstr "Nie można zaktualizować instancji %(inst)s: %(msg)s" -#: dashboards/nova/instances_and_volumes/instances/tabs.py:54 +#: dashboards/nova/instances/tabs.py:54 msgid "VNC" msgstr "" -#: dashboards/nova/instances_and_volumes/instances/tabs.py:69 -#: dashboards/nova/instances_and_volumes/instances/views.py:79 +#: dashboards/nova/instances/tabs.py:69 dashboards/nova/instances/views.py:121 #, fuzzy, python-format msgid "Unable to get VNC console for instance \"%s\"." msgstr "Nie można zaktualizować instancji %(inst)s: %(msg)s" -#: dashboards/nova/instances_and_volumes/instances/views.py:95 +#: dashboards/nova/instances/views.py:58 +#, fuzzy +msgid "Unable to retrieve instances." +msgstr "Nie można cofnąć: %s" + +#: dashboards/nova/instances/views.py:81 +#: dashboards/syspanel/instances/views.py:89 +#, fuzzy +msgid "Unable to retrieve instance size information." +msgstr "Nie można cofnąć: %s" + +#: dashboards/nova/instances/views.py:137 #, fuzzy msgid "Unable to retrieve instance details." msgstr "Nie można cofnąć: %s" -#: dashboards/nova/instances_and_volumes/instances/views.py:130 +#: dashboards/nova/instances/views.py:172 #, fuzzy, python-format msgid "Unable to retrieve details for instance \"%s\"." msgstr "Nie można cofnąć: %s" -#: dashboards/nova/instances_and_volumes/instances/workflows.py:34 -#: dashboards/syspanel/projects/tables.py:91 +#: dashboards/nova/instances/workflows.py:33 +#: dashboards/syspanel/projects/tables.py:92 #: dashboards/syspanel/users/tables.py:39 #: dashboards/syspanel/users/tables.py:73 tests/workflows_tests.py:40 msgid "User" msgstr "" -#: dashboards/nova/instances_and_volumes/instances/workflows.py:48 +#: dashboards/nova/instances/workflows.py:47 #, fuzzy msgid "Project & User" msgstr "Usuń projekt" -#: dashboards/nova/instances_and_volumes/instances/workflows.py:50 +#: dashboards/nova/instances/workflows.py:49 msgid "" "Admin users may optionally select the project and user for whom the instance " "should be created." msgstr "" -#: dashboards/nova/instances_and_volumes/instances/workflows.py:61 +#: dashboards/nova/instances/workflows.py:60 msgid "Don't boot from a volume." msgstr "" -#: dashboards/nova/instances_and_volumes/instances/workflows.py:62 +#: dashboards/nova/instances/workflows.py:61 msgid "Boot from volume." msgstr "" -#: dashboards/nova/instances_and_volumes/instances/workflows.py:63 +#: dashboards/nova/instances/workflows.py:62 msgid "Boot from volume snapshot (creates a new volume)." msgstr "" -#: dashboards/nova/instances_and_volumes/instances/workflows.py:67 -#: dashboards/nova/instances_and_volumes/instances/workflows.py:85 +#: dashboards/nova/instances/workflows.py:66 +#: dashboards/nova/instances/workflows.py:84 #, fuzzy msgid "Volume Options" msgstr "Wolumeny" -#: dashboards/nova/instances_and_volumes/instances/workflows.py:70 -#: dashboards/nova/instances_and_volumes/instances/workflows.py:104 -#: dashboards/nova/instances_and_volumes/volumes/tables.py:35 -#: dashboards/nova/instances_and_volumes/volumes/tables.py:145 -#: dashboards/nova/templates/nova/instances_and_volumes/instances/_detail_overview.html:83 +#: dashboards/nova/instances/workflows.py:69 +#: dashboards/nova/instances/workflows.py:104 +#: dashboards/nova/instances/templates/instances/_detail_overview.html:93 +#: dashboards/nova/volumes/tables.py:36 dashboards/nova/volumes/tables.py:171 #, fuzzy msgid "Volume" msgstr "Wolumeny" -#: dashboards/nova/instances_and_volumes/instances/workflows.py:73 +#: dashboards/nova/instances/workflows.py:72 msgid "Device Name" msgstr "" -#: dashboards/nova/instances_and_volumes/instances/workflows.py:76 +#: dashboards/nova/instances/workflows.py:75 msgid "Volume mount point (e.g. 'vda' mounts at '/dev/vda')." msgstr "" -#: dashboards/nova/instances_and_volumes/instances/workflows.py:78 +#: dashboards/nova/instances/workflows.py:77 #, fuzzy msgid "Delete on Terminate" msgstr "Usuń projekt" -#: dashboards/nova/instances_and_volumes/instances/workflows.py:81 +#: dashboards/nova/instances/workflows.py:80 msgid "Delete volume on instance terminate" msgstr "" -#: dashboards/nova/instances_and_volumes/instances/workflows.py:111 +#: dashboards/nova/instances/workflows.py:111 #, fuzzy msgid "Select Volume" msgstr "Wolumeny" -#: dashboards/nova/instances_and_volumes/instances/workflows.py:119 -#: dashboards/nova/instances_and_volumes/instances/workflows.py:132 +#: dashboards/nova/instances/workflows.py:119 #, fuzzy -msgid "Unable to retrieve list of volumes" +msgid "Unable to retrieve list of volumes." msgstr "Nie można utworzyć klucza: %s" -#: dashboards/nova/instances_and_volumes/instances/workflows.py:123 +#: dashboards/nova/instances/workflows.py:123 #, fuzzy msgid "Select Volume Snapshot" msgstr "Utwórz nowy wolumen." -#: dashboards/nova/instances_and_volumes/instances/workflows.py:164 +#: dashboards/nova/instances/workflows.py:132 +#, fuzzy +msgid "Unable to retrieve list of volume snapshots." +msgstr "Nie można utworzyć wolumenu: %s" + +#: dashboards/nova/instances/workflows.py:165 #, fuzzy msgid "Instance Source" msgstr "Instancje" -#: dashboards/nova/instances_and_volumes/instances/workflows.py:167 +#: dashboards/nova/instances/workflows.py:168 #, fuzzy msgid "Instance Snapshot" msgstr "Instancje" -#: dashboards/nova/instances_and_volumes/instances/workflows.py:169 +#: dashboards/nova/instances/workflows.py:170 msgid "Server Name" msgstr "" -#: dashboards/nova/instances_and_volumes/instances/workflows.py:170 +#: dashboards/nova/instances/workflows.py:171 +#: dashboards/nova/instances/templates/instances/_detail_overview.html:22 #: dashboards/syspanel/flavors/tables.py:13 msgid "Flavor" msgstr "" -#: dashboards/nova/instances_and_volumes/instances/workflows.py:171 +#: dashboards/nova/instances/workflows.py:172 msgid "Size of image to launch." msgstr "" -#: dashboards/nova/instances_and_volumes/instances/workflows.py:172 -#: dashboards/nova/templates/nova/instances_and_volumes/instances/_launch_details_help.html:21 +#: dashboards/nova/instances/workflows.py:173 #, fuzzy msgid "Instance Count" msgstr "Instancje" -#: dashboards/nova/instances_and_volumes/instances/workflows.py:175 +#: dashboards/nova/instances/workflows.py:176 msgid "Number of instances to launch." msgstr "" -#: dashboards/nova/instances_and_volumes/instances/workflows.py:178 +#: dashboards/nova/instances/workflows.py:179 #, fuzzy msgid "Details" msgstr "Wolumeny" -#: dashboards/nova/instances_and_volumes/instances/workflows.py:197 +#: dashboards/nova/instances/workflows.py:198 msgid "" "Launching multiple instances is only supported for images and instance " "snapshots." msgstr "" -#: dashboards/nova/instances_and_volumes/instances/workflows.py:240 +#: dashboards/nova/instances/workflows.py:214 +#, fuzzy +msgid "Unable to retrieve public images." +msgstr "Nie można cofnąć: %s" + +#: dashboards/nova/instances/workflows.py:228 +#, fuzzy +msgid "Unable to retrieve images for the current project." +msgstr "Nie można utworzyć klucza: %s" + +#: dashboards/nova/instances/workflows.py:251 #, fuzzy msgid "Select Image" msgstr "Wolumeny" -#: dashboards/nova/instances_and_volumes/instances/workflows.py:242 +#: dashboards/nova/instances/workflows.py:253 #, fuzzy msgid "No images available." msgstr "brak dostępnych" -#: dashboards/nova/instances_and_volumes/instances/workflows.py:251 +#: dashboards/nova/instances/workflows.py:262 #, fuzzy msgid "Select Instance Snapshot" msgstr "Instancje" -#: dashboards/nova/instances_and_volumes/instances/workflows.py:253 +#: dashboards/nova/instances/workflows.py:264 #, fuzzy msgid "No snapshots available." msgstr "brak dostępnych" -#: dashboards/nova/instances_and_volumes/instances/workflows.py:264 +#: dashboards/nova/instances/workflows.py:275 #, fuzzy msgid "Unable to retrieve instance flavors." msgstr "Nie można cofnąć: %s" -#: dashboards/nova/instances_and_volumes/instances/workflows.py:301 +#: dashboards/nova/instances/workflows.py:288 +#, fuzzy +msgid "Unable to retrieve quota information." +msgstr "Nie można wyrejestrować obrazu: %s" + +#: dashboards/nova/instances/workflows.py:318 msgid "Which keypair to use for authentication." msgstr "" -#: dashboards/nova/instances_and_volumes/instances/workflows.py:307 +#: dashboards/nova/instances/workflows.py:324 #, fuzzy msgid "Launch instance in these security groups." msgstr "Nie można utworzyć grupy bezpieczeństwa: %s" -#: dashboards/nova/instances_and_volumes/instances/workflows.py:312 +#: dashboards/nova/instances/workflows.py:329 msgid "" "Control access to your instance via keypairs, security groups, and other " "mechanisms." msgstr "" -#: dashboards/nova/instances_and_volumes/instances/workflows.py:322 +#: dashboards/nova/instances/workflows.py:339 #, fuzzy msgid "Unable to retrieve keypairs." msgstr "Nie można utworzyć klucza: %s" -#: dashboards/nova/instances_and_volumes/instances/workflows.py:324 +#: dashboards/nova/instances/workflows.py:341 #, fuzzy msgid "Select a keypair" msgstr "Usuń projekt" -#: dashboards/nova/instances_and_volumes/instances/workflows.py:326 +#: dashboards/nova/instances/workflows.py:343 #, fuzzy msgid "No keypairs available." msgstr "brak dostępnych" -#: dashboards/nova/instances_and_volumes/instances/workflows.py:335 +#: dashboards/nova/instances/workflows.py:352 #, fuzzy msgid "Unable to retrieve list of security groups" msgstr "Nie można utworzyć klucza: %s" -#: dashboards/nova/instances_and_volumes/instances/workflows.py:355 +#: dashboards/nova/instances/workflows.py:372 msgid "Customization Script" msgstr "" -#: dashboards/nova/instances_and_volumes/instances/workflows.py:357 +#: dashboards/nova/instances/workflows.py:374 msgid "" "A script or set of commands to be executed after the instance has been built " "(max 16kb)." msgstr "" -#: dashboards/nova/instances_and_volumes/instances/workflows.py:364 +#: dashboards/nova/instances/workflows.py:381 msgid "Post-Creation" msgstr "" -#: dashboards/nova/instances_and_volumes/instances/workflows.py:378 -#, fuzzy, python-format -msgid "Instance \"%s\" launched." -msgstr "Instancja %s uruchomiona." +#: dashboards/nova/instances/workflows.py:395 +#, python-format +msgid "Launched %(count)s named \"%(name)s\"." +msgstr "" -#: dashboards/nova/instances_and_volumes/instances/workflows.py:379 +#: dashboards/nova/instances/workflows.py:396 #, fuzzy, python-format -msgid "Unable to launch instance \"%s\"." +msgid "Unable to launch %(count)s named \"%(name)s\"." msgstr "Nie można zaktualizować obrazu: %s" -#: dashboards/nova/instances_and_volumes/volumes/forms.py:42 +#: dashboards/nova/instances/workflows.py:408 #, fuzzy, python-format -msgid "Error Creating Volume: %s" -msgstr "tworzenie użytkownika %s..." - -#: dashboards/nova/instances_and_volumes/volumes/forms.py:48 -msgid "Select an instance to attach to." -msgstr "" - -#: dashboards/nova/instances_and_volumes/volumes/forms.py:86 -#, python-format -msgid "Attaching volume %(vol)s to instance %(inst)s at %(dev)s" -msgstr "" - -#: dashboards/nova/instances_and_volumes/volumes/forms.py:95 -#, fuzzy, python-format -msgid "Error attaching volume: %s" -msgstr "tworzenie użytkownika %s..." - -#: dashboards/nova/instances_and_volumes/volumes/forms.py:120 -#, fuzzy, python-format -msgid "Creating volume snapshot \"%s\"" -msgstr "tworzenie użytkownika %s..." - -#: dashboards/nova/instances_and_volumes/volumes/forms.py:125 -#, fuzzy, python-format -msgid "Error Creating Volume Snapshot: %(exc)s" -msgstr "tworzenie użytkownika %s..." - -#: dashboards/nova/instances_and_volumes/volumes/tables.py:36 -#: dashboards/nova/instances_and_volumes/volumes/tables.py:134 -#: dashboards/nova/instances_and_volumes/volumes/tables.py:146 -#: dashboards/nova/templates/nova/instances_and_volumes/instances/_detail_overview.html:78 -#: dashboards/syspanel/projects/forms.py:116 -msgid "Volumes" -msgstr "Wolumeny" - -#: dashboards/nova/instances_and_volumes/volumes/tables.py:49 -#: dashboards/nova/templates/nova/instances_and_volumes/volumes/_create.html:8 -#: dashboards/nova/templates/nova/instances_and_volumes/volumes/_create.html:23 -#, fuzzy -msgid "Create Volume" -msgstr "Wolumeny" - -#: dashboards/nova/instances_and_volumes/volumes/tables.py:56 -#, fuzzy -msgid "Edit Attachments" -msgstr "Dołącz wolumen" - -#: dashboards/nova/instances_and_volumes/volumes/tables.py:66 -#: dashboards/nova/templates/nova/images_and_snapshots/snapshots/_create.html:8 -#: dashboards/nova/templates/nova/images_and_snapshots/snapshots/_create.html:23 -#: dashboards/nova/templates/nova/images_and_snapshots/snapshots/create.html:3 -msgid "Create Snapshot" -msgstr "" - -#: dashboards/nova/instances_and_volumes/volumes/tables.py:83 -#: templatetags/sizeformat.py:58 -#, python-format -msgid "%s GB" -msgstr "" - -#: dashboards/nova/instances_and_volumes/volumes/tables.py:130 -#: dashboards/nova/templates/nova/instances_and_volumes/volumes/_detail_overview.html:34 -#, fuzzy -msgid "Attachments" -msgstr "Dołącz wolumen" - -#: dashboards/nova/instances_and_volumes/volumes/tables.py:143 -msgid "Detach" -msgstr "" - -#: dashboards/nova/instances_and_volumes/volumes/tables.py:144 -msgid "Detached" -msgstr "" - -#: dashboards/nova/instances_and_volumes/volumes/tabs.py:41 -#, fuzzy -msgid "Unable to retrieve volume details." -msgstr "Nie można utworzyć wolumenu: %s" - -#: dashboards/nova/instances_and_volumes/volumes/views.py:71 -#: dashboards/nova/instances_and_volumes/volumes/views.py:81 -#, fuzzy -msgid "Unable to retrieve volume information." -msgstr "Nie można wyrejestrować obrazu: %s" - -#: dashboards/nova/templates/nova/access_and_security/index.html:6 -msgid "Access & Security" -msgstr "" - -#: dashboards/nova/templates/nova/access_and_security/floating_ips/_allocate.html:8 -#: dashboards/nova/templates/nova/access_and_security/floating_ips/allocate.html:3 -#, fuzzy -msgid "Allocate Floating IP" -msgstr "Nie można zaktualizować obrazu: %s" - -#: dashboards/nova/templates/nova/access_and_security/floating_ips/_allocate.html:17 -#: dashboards/nova/templates/nova/access_and_security/floating_ips/_associate.html:16 -#: dashboards/nova/templates/nova/images_and_snapshots/images/_update.html:16 -#: dashboards/nova/templates/nova/images_and_snapshots/snapshots/_create.html:17 -#: dashboards/nova/templates/nova/instances_and_volumes/instances/_update.html:16 -#: dashboards/settings/templates/settings/ec2/download_form.html:17 -#: dashboards/settings/templates/settings/project/_openrc.html:17 -#: dashboards/settings/templates/settings/user/_language.html:30 -msgid "Description:" -msgstr "" - -#: dashboards/nova/templates/nova/access_and_security/floating_ips/_allocate.html:18 -msgid "Allocate a floating IP from a given floating ip pool." -msgstr "" - -#: dashboards/nova/templates/nova/access_and_security/floating_ips/_allocate.html:20 -#: dashboards/nova/templates/nova/instances_and_volumes/instances/_launch_details_help.html:19 -msgid "Project Quotas" -msgstr "" - -#: dashboards/nova/templates/nova/access_and_security/floating_ips/_allocate.html:31 -msgid "Allocate IP" -msgstr "" - -#: dashboards/nova/templates/nova/access_and_security/floating_ips/_allocate.html:32 -#: dashboards/nova/templates/nova/access_and_security/floating_ips/_associate.html:23 -#: dashboards/nova/templates/nova/access_and_security/keypairs/_create.html:24 -#: dashboards/nova/templates/nova/access_and_security/keypairs/_import.html:24 -#: dashboards/nova/templates/nova/access_and_security/security_groups/_create.html:24 -#: dashboards/nova/templates/nova/access_and_security/security_groups/_edit_rules.html:20 -#: dashboards/nova/templates/nova/containers/_create.html:23 -#: dashboards/nova/templates/nova/images_and_snapshots/images/_update.html:23 -#: dashboards/nova/templates/nova/images_and_snapshots/snapshots/_create.html:24 -#: dashboards/nova/templates/nova/instances_and_volumes/instances/_update.html:23 -#: dashboards/nova/templates/nova/instances_and_volumes/volumes/_attach.html:20 -#: dashboards/nova/templates/nova/instances_and_volumes/volumes/_create.html:24 -#: dashboards/nova/templates/nova/instances_and_volumes/volumes/_create_snapshot.html:24 -#: dashboards/nova/templates/nova/objects/_copy.html:23 -#: dashboards/nova/templates/nova/objects/_upload.html:24 -#: dashboards/settings/templates/settings/ec2/download_form.html:24 -#: dashboards/settings/templates/settings/project/_openrc.html:24 -#: dashboards/settings/templates/settings/user/_language.html:37 -#: dashboards/syspanel/templates/syspanel/flavors/_create.html:24 -#: dashboards/syspanel/templates/syspanel/images/_update.html:24 -#: dashboards/syspanel/templates/syspanel/projects/_add_user.html:24 -#: dashboards/syspanel/templates/syspanel/projects/_create.html:24 -#: dashboards/syspanel/templates/syspanel/projects/_quotas.html:23 -#: dashboards/syspanel/templates/syspanel/projects/_update.html:24 -#: dashboards/syspanel/templates/syspanel/users/_create.html:23 -#: dashboards/syspanel/templates/syspanel/users/_update.html:23 -#: templates/horizon/common/_workflow.html:29 -msgid "Cancel" -msgstr "" - -#: dashboards/nova/templates/nova/access_and_security/floating_ips/_associate.html:7 -#: dashboards/nova/templates/nova/access_and_security/floating_ips/associate.html:7 -msgid "Associate Floating IP" -msgstr "" - -#: dashboards/nova/templates/nova/access_and_security/floating_ips/_associate.html:17 -msgid "Associate a floating ip with an instance." -msgstr "" - -#: dashboards/nova/templates/nova/access_and_security/keypairs/_create.html:17 -#: dashboards/nova/templates/nova/access_and_security/keypairs/_import.html:17 -#, fuzzy -msgid "" -"Keypairs are ssh credentials which are injected into images when they are " -"launched. Creating a new key pair registers the public key and downloads the " -"private key (a .pem file)." -msgstr "" -"Pary kluczy to dane uwierzytelniające ssh, które są wstrzykiwane do " -"instancji podczas uruchomienia. Utworzenie nowej pary rejestruje klucz " -"publiczny umożliwia pobranie klucza prywatnego (pliku pem). Należy " -"chronić i używać ten klucza tak jak normalnego klucza prywantego." - -#: dashboards/nova/templates/nova/access_and_security/keypairs/_create.html:18 -#: dashboards/nova/templates/nova/access_and_security/keypairs/_import.html:18 -msgid "Protect and use the key as you would any normal ssh private key." -msgstr "" - -#: dashboards/nova/templates/nova/access_and_security/keypairs/download.html:3 -#: dashboards/nova/templates/nova/access_and_security/keypairs/download.html:6 -msgid "Download Keypair" -msgstr "" - -#: dashboards/nova/templates/nova/access_and_security/keypairs/download.html:11 -#, python-format -msgid "" -"The keypair "%(keypair_name)s" should download automatically. If " -"not use the link below." -msgstr "" - -#: dashboards/nova/templates/nova/access_and_security/keypairs/download.html:15 -#, python-format -msgid "Download keypair "%(keypair_name)s"" -msgstr "" - -#: dashboards/nova/templates/nova/access_and_security/security_groups/_create.html:18 -#, fuzzy -msgid "From here you can create a new security group" -msgstr "Tutaj można edytować wiele ról użytkowników." - -#: dashboards/nova/templates/nova/access_and_security/security_groups/_edit_rules.html:9 -#: dashboards/nova/templates/nova/access_and_security/security_groups/edit_rules.html:6 -#, fuzzy -msgid "Edit Security Group Rules" -msgstr "Grupy bezpieczeństwa" - -#: dashboards/nova/templates/nova/access_and_security/security_groups/_edit_rules.html:12 -#: dashboards/nova/templates/nova/access_and_security/security_groups/_edit_rules.html:19 -msgid "Add Rule" -msgstr "" - -#: dashboards/nova/templates/nova/containers/_create.html:17 -msgid "" -"A container is a storage compartment for your data and provides a way for " -"you to organize your data. You can think of a container as a folder in " -"Windows ® or a directory in UNIX ®. The primary difference between a " -"container and these other file system concepts is that containers cannot be " -"nested. You can, however, create an unlimited number of containers within " -"your account. Data must be stored in a container so you must have at least " -"one container defined in your account prior to uploading data." -msgstr "" - -#: dashboards/nova/templates/nova/images_and_snapshots/index.html:3 -#: dashboards/nova/templates/nova/images_and_snapshots/index.html:6 -msgid "Images & Snapshots" -msgstr "" - -#: dashboards/nova/templates/nova/images_and_snapshots/images/_detail_overview.html:3 -#, fuzzy -msgid "Image Overview" +msgid "%s instances" msgstr "Instancje" -#: dashboards/nova/templates/nova/images_and_snapshots/images/_detail_overview.html:6 -#: dashboards/nova/templates/nova/instances_and_volumes/instances/_detail_overview.html:6 -#: dashboards/nova/templates/nova/instances_and_volumes/volumes/_detail_overview.html:6 -msgid "Info" -msgstr "" - -#: dashboards/nova/templates/nova/images_and_snapshots/images/_detail_overview.html:11 -#: dashboards/nova/templates/nova/instances_and_volumes/instances/_detail_overview.html:11 -#: dashboards/nova/templates/nova/instances_and_volumes/volumes/_detail_overview.html:11 -#: dashboards/syspanel/projects/forms.py:83 -#: dashboards/syspanel/users/forms.py:104 -#: dashboards/syspanel/users/tables.py:106 -msgid "ID" -msgstr "" - -#: dashboards/nova/templates/nova/images_and_snapshots/images/_detail_overview.html:17 -msgid "Checksum" -msgstr "" - -#: dashboards/nova/templates/nova/images_and_snapshots/images/_detail_overview.html:19 -#: dashboards/nova/templates/nova/instances_and_volumes/volumes/_detail_overview.html:28 +#: dashboards/nova/instances/workflows.py:411 #, fuzzy -msgid "Created" -msgstr "Utwórz nowy wolumen." +msgid "instance" +msgstr "Instancje" -#: dashboards/nova/templates/nova/images_and_snapshots/images/_detail_overview.html:21 -#, fuzzy -msgid "Updated" -msgstr "Aktualizuj obraz" - -#: dashboards/nova/templates/nova/images_and_snapshots/images/_detail_overview.html:27 -#: dashboards/nova/templates/nova/instances_and_volumes/instances/_detail_overview.html:19 -#: dashboards/nova/templates/nova/instances_and_volumes/volumes/_detail_overview.html:23 -msgid "Specs" -msgstr "" - -#: dashboards/nova/templates/nova/images_and_snapshots/images/_detail_overview.html:40 -msgid "Custom Properties" -msgstr "" - -#: dashboards/nova/templates/nova/images_and_snapshots/images/_detail_overview.html:56 -msgid "Euca2ools state" -msgstr "" - -#: dashboards/nova/templates/nova/images_and_snapshots/images/_detail_overview.html:60 -#: usage/tables.py:28 -msgid "Project ID" -msgstr "" - -#: dashboards/nova/templates/nova/images_and_snapshots/images/_detail_overview.html:64 -#, fuzzy -msgid "Image Type" -msgstr "Obrazy" - -#: dashboards/nova/templates/nova/images_and_snapshots/images/_update.html:7 -#: dashboards/nova/templates/nova/images_and_snapshots/images/_update.html:22 -#: dashboards/nova/templates/nova/images_and_snapshots/images/update.html:3 -#: dashboards/nova/templates/nova/images_and_snapshots/images/update.html:6 -#: dashboards/syspanel/templates/syspanel/images/_update.html:8 -#: dashboards/syspanel/templates/syspanel/images/_update.html:23 -#: dashboards/syspanel/templates/syspanel/images/update.html:4 -#: dashboards/syspanel/templates/syspanel/images/update.html:7 -msgid "Update Image" -msgstr "Aktualizuj obraz" - -#: dashboards/nova/templates/nova/images_and_snapshots/images/_update.html:17 -#: dashboards/syspanel/templates/syspanel/images/_update.html:18 -#, fuzzy -msgid "From here you can modify different properties of an image." -msgstr "Tutaj można zarządzać użytkownikami i rolami." - -#: dashboards/nova/templates/nova/images_and_snapshots/images/detail.html:4 -msgid "Image Detail " -msgstr "" - -#: dashboards/nova/templates/nova/images_and_snapshots/snapshots/_create.html:18 -msgid "Snapshots preserve the disk state of a running instance." -msgstr "" - -#: dashboards/nova/templates/nova/images_and_snapshots/snapshots/create.html:6 -msgid "Create a Snapshot" -msgstr "" - -#: dashboards/nova/templates/nova/instances_and_volumes/index.html:6 -msgid "Instances & Volumes" -msgstr "" - -#: dashboards/nova/templates/nova/instances_and_volumes/instances/_detail_log.html:7 +#: dashboards/nova/instances/templates/instances/_detail_log.html:7 msgid "View Full Log" msgstr "" -#: dashboards/nova/templates/nova/instances_and_volumes/instances/_detail_overview.html:3 +#: dashboards/nova/instances/templates/instances/_detail_overview.html:3 #, fuzzy msgid "Instance Overview" msgstr "Instancje" -#: dashboards/nova/templates/nova/instances_and_volumes/instances/_detail_overview.html:22 -#: dashboards/nova/templates/nova/instances_and_volumes/instances/_launch_details_help.html:14 -#: usage/tables.py:21 +#: dashboards/nova/instances/templates/instances/_detail_overview.html:24 +#: dashboards/nova/instances/templates/instances/_launch_details_help.html:14 +#: usage/tables.py:22 msgid "RAM" msgstr "" -#: dashboards/nova/templates/nova/instances_and_volumes/instances/_detail_overview.html:24 -#: dashboards/nova/templates/nova/instances_and_volumes/instances/_launch_details_help.html:10 -#: dashboards/nova/templates/nova/instances_and_volumes/instances/_launch_details_help.html:28 +#: dashboards/nova/instances/templates/instances/_detail_overview.html:26 +#: dashboards/nova/instances/templates/instances/_launch_details_help.html:10 #: dashboards/syspanel/flavors/forms.py:38 #: dashboards/syspanel/flavors/tables.py:30 -#: dashboards/syspanel/projects/forms.py:114 usage/tables.py:18 +#: dashboards/syspanel/projects/forms.py:114 usage/tables.py:19 msgid "VCPUs" msgstr "" -#: dashboards/nova/templates/nova/instances_and_volumes/instances/_detail_overview.html:25 +#: dashboards/nova/instances/templates/instances/_detail_overview.html:27 msgid "VCPU" msgstr "" -#: dashboards/nova/templates/nova/instances_and_volumes/instances/_detail_overview.html:26 -#: dashboards/nova/templates/nova/instances_and_volumes/instances/_launch_details_help.html:35 -#: usage/tables.py:19 +#: dashboards/nova/instances/templates/instances/_detail_overview.html:28 +#: usage/tables.py:20 msgid "Disk" msgstr "" -#: dashboards/nova/templates/nova/instances_and_volumes/instances/_detail_overview.html:27 -#: dashboards/nova/templates/nova/instances_and_volumes/instances/_launch_details_help.html:11 -#: dashboards/nova/templates/nova/instances_and_volumes/instances/_launch_details_help.html:12 -#: dashboards/nova/templates/nova/instances_and_volumes/instances/_launch_details_help.html:13 -#: dashboards/nova/templates/nova/instances_and_volumes/instances/_launch_details_help.html:35 -#: dashboards/nova/templates/nova/instances_and_volumes/volumes/_detail_overview.html:27 +#: dashboards/nova/instances/templates/instances/_detail_overview.html:29 +#: dashboards/nova/instances/templates/instances/_launch_details_help.html:11 +#: dashboards/nova/instances/templates/instances/_launch_details_help.html:12 +#: dashboards/nova/instances/templates/instances/_launch_details_help.html:13 +#: dashboards/nova/volumes/templates/volumes/_detail_overview.html:27 msgid "GB" msgstr "" -#: dashboards/nova/templates/nova/instances_and_volumes/instances/_detail_overview.html:32 +#: dashboards/nova/instances/templates/instances/_detail_overview.html:34 msgid "IP Addresses" msgstr "" -#: dashboards/nova/templates/nova/instances_and_volumes/instances/_detail_overview.html:57 +#: dashboards/nova/instances/templates/instances/_detail_overview.html:59 msgid "No rules defined." msgstr "" -#: dashboards/nova/templates/nova/instances_and_volumes/instances/_detail_overview.html:66 +#: dashboards/nova/instances/templates/instances/_detail_overview.html:68 msgid "Meta" msgstr "" -#: dashboards/nova/templates/nova/instances_and_volumes/instances/_detail_overview.html:69 +#: dashboards/nova/instances/templates/instances/_detail_overview.html:71 #, fuzzy msgid "Key Name" msgstr "Obrazy" -#: dashboards/nova/templates/nova/instances_and_volumes/instances/_detail_overview.html:93 +#: dashboards/nova/instances/templates/instances/_detail_overview.html:84 +#, fuzzy +msgid "Volumes Attached" +msgstr "Dołącz wolumen" + +#: dashboards/nova/instances/templates/instances/_detail_overview.html:88 +#: dashboards/nova/volumes/tables.py:156 +#: dashboards/nova/volumes/templates/volumes/_detail_overview.html:38 +#: dashboards/nova/volumes/templates/volumes/_detail_overview.html:45 +#, fuzzy +msgid "Attached To" +msgstr "Dołącz wolumen" + +#: dashboards/nova/instances/templates/instances/_detail_overview.html:90 +#: dashboards/nova/volumes/templates/volumes/_detail_overview.html:42 +msgid "on" +msgstr "" + +#: dashboards/nova/instances/templates/instances/_detail_overview.html:94 msgid "No volumes attached." msgstr "" -#: dashboards/nova/templates/nova/instances_and_volumes/instances/_detail_vnc.html:3 +#: dashboards/nova/instances/templates/instances/_detail_vnc.html:3 #, fuzzy msgid "Instance VNC Console" msgstr "Instancje" -#: dashboards/nova/templates/nova/instances_and_volumes/instances/_detail_vnc.html:5 +#: dashboards/nova/instances/templates/instances/_detail_vnc.html:5 msgid "" "If VNC console is not responding to keyboard input: click the grey status " "bar below." msgstr "" -#: dashboards/nova/templates/nova/instances_and_volumes/instances/_detail_vnc.html:5 +#: dashboards/nova/instances/templates/instances/_detail_vnc.html:5 msgid "Click here to show only VNC" msgstr "" -#: dashboards/nova/templates/nova/instances_and_volumes/instances/_detail_vnc.html:8 +#: dashboards/nova/instances/templates/instances/_detail_vnc.html:8 msgid "VNC console is currently unavailabe. Please try again later." msgstr "" -#: dashboards/nova/templates/nova/instances_and_volumes/instances/_detail_vnc.html:9 +#: dashboards/nova/instances/templates/instances/_detail_vnc.html:9 msgid "Reload" msgstr "" -#: dashboards/nova/templates/nova/instances_and_volumes/instances/_launch_customize_help.html:2 +#: dashboards/nova/instances/templates/instances/_launch_customize_help.html:2 msgid "" "You can customize your instance after it's launched using the options " "available here." msgstr "" -#: dashboards/nova/templates/nova/instances_and_volumes/instances/_launch_customize_help.html:3 +#: dashboards/nova/instances/templates/instances/_launch_customize_help.html:3 msgid "" "The \"Customization Script\" field is analogous to \"User Data\" in other " "systems." msgstr "" -#: dashboards/nova/templates/nova/instances_and_volumes/instances/_launch_details_help.html:3 +#: dashboards/nova/instances/templates/instances/_launch_details_help.html:3 msgid "Specify the details for launching an instance." msgstr "" -#: dashboards/nova/templates/nova/instances_and_volumes/instances/_launch_details_help.html:4 +#: dashboards/nova/instances/templates/instances/_launch_details_help.html:4 msgid "" "The chart below shows the resources used by this project in relation to the " "project's quotas." msgstr "" -#: dashboards/nova/templates/nova/instances_and_volumes/instances/_launch_details_help.html:6 +#: dashboards/nova/instances/templates/instances/_launch_details_help.html:6 #, fuzzy msgid "Flavor Details" msgstr "Wolumeny" -#: dashboards/nova/templates/nova/instances_and_volumes/instances/_launch_details_help.html:11 +#: dashboards/nova/instances/templates/instances/_launch_details_help.html:11 #: dashboards/syspanel/flavors/tables.py:32 msgid "Root Disk" msgstr "" -#: dashboards/nova/templates/nova/instances_and_volumes/instances/_launch_details_help.html:12 +#: dashboards/nova/instances/templates/instances/_launch_details_help.html:12 #: dashboards/syspanel/flavors/tables.py:34 msgid "Ephemeral Disk" msgstr "" -#: dashboards/nova/templates/nova/instances_and_volumes/instances/_launch_details_help.html:13 +#: dashboards/nova/instances/templates/instances/_launch_details_help.html:13 msgid "Total Disk" msgstr "" -#: dashboards/nova/templates/nova/instances_and_volumes/instances/_launch_details_help.html:14 -#: dashboards/nova/templates/nova/instances_and_volumes/instances/_launch_details_help.html:42 +#: dashboards/nova/instances/templates/instances/_launch_details_help.html:14 +#: dashboards/nova/instances/templates/instances/_launch_details_help.html:37 msgid "MB" msgstr "" -#: dashboards/nova/templates/nova/instances_and_volumes/instances/_launch_details_help.html:42 -#: dashboards/syspanel/flavors/tables.py:31 -msgid "Memory" +#: dashboards/nova/instances/templates/instances/_launch_details_help.html:21 +#, fuzzy +msgid "Number of Instances" +msgstr "Instancje" + +#: dashboards/nova/instances/templates/instances/_launch_details_help.html:29 +msgid "Number of VCPUs" msgstr "" -#: dashboards/nova/templates/nova/instances_and_volumes/instances/_launch_volumes_help.html:3 +#: dashboards/nova/instances/templates/instances/_launch_details_help.html:37 +msgid "Total Memory" +msgstr "" + +#: dashboards/nova/instances/templates/instances/_launch_volumes_help.html:3 msgid "" "An instance can be launched with varying types of attached storage. You may " "select from those options here." msgstr "" -#: dashboards/nova/templates/nova/instances_and_volumes/instances/_update.html:17 +#: dashboards/nova/instances/templates/instances/_update.html:17 msgid "You may update the editable properties of your instance here." msgstr "" -#: dashboards/nova/templates/nova/instances_and_volumes/instances/_update.html:22 +#: dashboards/nova/instances/templates/instances/_update.html:22 msgid "Save Changes" msgstr "" -#: dashboards/nova/templates/nova/instances_and_volumes/instances/detail.html:3 +#: dashboards/nova/instances/templates/instances/detail.html:3 #, fuzzy msgid "Instance Detail" msgstr "ID instancji:" -#: dashboards/nova/templates/nova/instances_and_volumes/instances/update.html:3 -#: dashboards/nova/templates/nova/instances_and_volumes/instances/update.html:6 +#: dashboards/nova/instances/templates/instances/update.html:3 +#: dashboards/nova/instances/templates/instances/update.html:6 msgid "Update Instance" msgstr "Aktualizuj instncję" -#: dashboards/nova/templates/nova/instances_and_volumes/volumes/_attach.html:9 -#: dashboards/nova/templates/nova/instances_and_volumes/volumes/attach.html:6 +#: dashboards/nova/templates/nova/_warning.html:6 +msgid "You currently have the power to damage your OpenStack cloud..." +msgstr "" + +#: dashboards/nova/templates/nova/_warning.html:9 +msgid "" +"Due to inconsistencies in the way Nova interacts with Keystone, a user with " +"an admin role has access to all resources in the system (volumes, snapshots, " +"keypairs, etc.), even in the Project dashboard where they should only see a " +"properly-scoped subset of those resources." +msgstr "" + +#: dashboards/nova/templates/nova/_warning.html:10 +msgid "" +"This means that Nova allows an admin user in the Project Dashboard to " +"successfully take actions which otherwise should not be permitted, causing " +"irresolvable conflicts in Nova." +msgstr "" + +#: dashboards/nova/templates/nova/_warning.html:11 +msgid "A list of the known problems are as follows:" +msgstr "" + +#: dashboards/nova/templates/nova/_warning.html:13 +msgid "" +"Attaching a volume owned by project A to an instance in project B can " +"completely hang Nova." +msgstr "" + +#: dashboards/nova/templates/nova/_warning.html:14 +msgid "" +"Assigning keypairs owned by project A to an instance in project B can result " +"in failed instances, problems in retrieving instance details for non-admin " +"users, and/or security holes should the instance succeed in spawning." +msgstr "" + +#: dashboards/nova/templates/nova/_warning.html:15 +msgid "" +"Attempting to launch an instance in project A from a snapshot or volume " +"snapshot owned by project B can hang Nova." +msgstr "" + +#: dashboards/nova/templates/nova/_warning.html:16 +msgid "" +"Attempting to boot from a volume owned by project A in project B can hang " +"Nova." +msgstr "" + +#: dashboards/nova/templates/nova/_warning.html:18 +msgid "" +"This is only a list of the reported inconsistencies. There may be others." +msgstr "" + +#: dashboards/nova/templates/nova/_warning.html:19 +msgid "" +"The recommended practice until this problem is resolved is to keep your " +"admin users and regular users separate. Create an \"admin\" project that " +"admin users have access to, and do not grant your admin users the admin role " +"on any other projects." +msgstr "" + +#: dashboards/nova/templates/nova/_warning.html:20 +msgid "" +"To follow the status of this bug, take a look at the following items on " +"launchpad:" +msgstr "" + +#: dashboards/nova/templates/nova/_warning.html:27 +msgid "" +"Thank you for reading this warning and operating your cloud responsibly." +msgstr "" + +#: dashboards/nova/templates/nova/_warning.html:30 +msgid "Close" +msgstr "" + +#: dashboards/nova/templates/nova/base.html:9 +#, fuzzy +msgid "Caution" +msgstr "Położenie" + +#: dashboards/nova/templates/nova/base.html:10 +msgid "You are acting as an admin user in the project dashboard." +msgstr "" + +#: dashboards/nova/templates/nova/base.html:12 +msgid "Learn More" +msgstr "" + +#: dashboards/nova/volumes/forms.py:40 +#, python-format +msgid "" +"A volume of %(req)iGB cannot be created as you only have %(avail)iGB of your " +"quota available." +msgstr "" + +#: dashboards/nova/volumes/forms.py:47 +msgid "You are already using all of your available volumes." +msgstr "" + +#: dashboards/nova/volumes/forms.py:60 +#, fuzzy +msgid "Unable to create volume." +msgstr "Nie można utworzyć wolumenu: %s" + +#: dashboards/nova/volumes/forms.py:67 +msgid "Select an instance to attach to." +msgstr "" + +#: dashboards/nova/volumes/forms.py:100 +msgid "Unknown instance (None)" +msgstr "" + +#: dashboards/nova/volumes/forms.py:111 +#, python-format +msgid "Attaching volume %(vol)s to instance %(inst)s on %(dev)s." +msgstr "" + +#: dashboards/nova/volumes/forms.py:118 +#, fuzzy +msgid "Unable to attach volume." +msgstr "Nie można dołączyć wolumenu: %s" + +#: dashboards/nova/volumes/forms.py:142 +#, fuzzy, python-format +msgid "Creating volume snapshot \"%s\"" +msgstr "tworzenie użytkownika %s..." + +#: dashboards/nova/volumes/forms.py:146 +#, fuzzy +msgid "Unable to create volume snapshot." +msgstr "Nie można utworzyć wolumenu: %s" + +#: dashboards/nova/volumes/panel.py:24 dashboards/nova/volumes/tables.py:37 +#: dashboards/nova/volumes/tables.py:160 dashboards/nova/volumes/tables.py:172 +#: dashboards/nova/volumes/templates/volumes/index.html:3 +#: dashboards/nova/volumes/templates/volumes/index.html:6 +#: dashboards/syspanel/projects/forms.py:116 +#: dashboards/syspanel/volumes/panel.py:9 +#: dashboards/syspanel/volumes/tables.py:15 +#: dashboards/syspanel/volumes/templates/volumes/index.html:3 +#: dashboards/syspanel/volumes/templates/volumes/index.html:6 +msgid "Volumes" +msgstr "Wolumeny" + +#: dashboards/nova/volumes/tables.py:50 +#: dashboards/nova/volumes/templates/volumes/_create.html:8 +#: dashboards/nova/volumes/templates/volumes/_create.html:55 +#, fuzzy +msgid "Create Volume" +msgstr "Wolumeny" + +#: dashboards/nova/volumes/tables.py:57 +#, fuzzy +msgid "Edit Attachments" +msgstr "Dołącz wolumen" + +#: dashboards/nova/volumes/tables.py:84 +#, python-format +msgid "%sGB" +msgstr "" + +#: dashboards/nova/volumes/tables.py:97 +#, fuzzy +msgid "Unable to retrieve attachment information." +msgstr "Nie można wyrejestrować obrazu: %s" + +#: dashboards/nova/volumes/tables.py:114 +#, fuzzy, python-format +msgid "Attached to %(instance)s on %(dev)s" +msgstr "Uruchom obraz" + +#: dashboards/nova/volumes/tables.py:169 +msgid "Detach" +msgstr "" + +#: dashboards/nova/volumes/tables.py:170 +#, fuzzy +msgid "Detaching" +msgstr "Wolumeny" + +#: dashboards/nova/volumes/tables.py:205 +#, python-format +msgid "%(dev)s on instance %(instance_name)s" +msgstr "" + +#: dashboards/nova/volumes/tabs.py:41 +#, fuzzy +msgid "Unable to retrieve volume details." +msgstr "Nie można utworzyć wolumenu: %s" + +#: dashboards/nova/volumes/views.py:50 +#, fuzzy +msgid "Unable to retrieve volume list." +msgstr "Nie można cofnąć: %s" + +#: dashboards/nova/volumes/views.py:56 +#, fuzzy +msgid "Unable to retrieve volume/instance attachment information" +msgstr "Nie można cofnąć: %s" + +#: dashboards/nova/volumes/views.py:114 dashboards/nova/volumes/views.py:124 +#, fuzzy +msgid "Unable to retrieve volume information." +msgstr "Nie można wyrejestrować obrazu: %s" + +#: dashboards/nova/volumes/templates/volumes/_attach.html:9 +#: dashboards/nova/volumes/templates/volumes/attach.html:6 msgid "Manage Volume Attachments" msgstr "" -#: dashboards/nova/templates/nova/instances_and_volumes/volumes/_attach.html:12 +#: dashboards/nova/volumes/templates/volumes/_attach.html:12 #, fuzzy msgid "Attach To Instance" msgstr "Uruchom obraz" -#: dashboards/nova/templates/nova/instances_and_volumes/volumes/_attach.html:19 +#: dashboards/nova/volumes/templates/volumes/_attach.html:19 #, fuzzy msgid "Attach Volume" msgstr "Dołącz wolumen" -#: dashboards/nova/templates/nova/instances_and_volumes/volumes/_create.html:18 -#: dashboards/nova/templates/nova/instances_and_volumes/volumes/_create_snapshot.html:18 +#: dashboards/nova/volumes/templates/volumes/_create.html:20 +#: dashboards/nova/volumes/templates/volumes/_create_snapshot.html:18 msgid "Volumes are block devices that can be attached to instances." msgstr "" -#: dashboards/nova/templates/nova/instances_and_volumes/volumes/_create_snapshot.html:8 -#: dashboards/nova/templates/nova/instances_and_volumes/volumes/_create_snapshot.html:23 -#: dashboards/nova/templates/nova/instances_and_volumes/volumes/create_snapshot.html:3 +#: dashboards/nova/volumes/templates/volumes/_create.html:22 +#, fuzzy +msgid "Volume Quotas" +msgstr "Wolumeny" + +#: dashboards/nova/volumes/templates/volumes/_create.html:25 +msgid "Total Gigabytes" +msgstr "" + +#: dashboards/nova/volumes/templates/volumes/_create.html:34 +msgid "Number of Volumes" +msgstr "" + +#: dashboards/nova/volumes/templates/volumes/_create_snapshot.html:8 +#: dashboards/nova/volumes/templates/volumes/_create_snapshot.html:23 +#: dashboards/nova/volumes/templates/volumes/create_snapshot.html:3 #, fuzzy msgid "Create Volume Snapshot" msgstr "Utwórz nowy wolumen." -#: dashboards/nova/templates/nova/instances_and_volumes/volumes/_detail_overview.html:3 +#: dashboards/nova/volumes/templates/volumes/_detail_overview.html:3 #, fuzzy msgid "Volume Overview" msgstr "Instancje" -#: dashboards/nova/templates/nova/instances_and_volumes/volumes/_detail_overview.html:38 +#: dashboards/nova/volumes/templates/volumes/_detail_overview.html:34 #, fuzzy -msgid "Attached To" +msgid "Attachments" msgstr "Dołącz wolumen" -#: dashboards/nova/templates/nova/instances_and_volumes/volumes/_detail_overview.html:42 -msgid "on" -msgstr "" - -#: dashboards/nova/templates/nova/instances_and_volumes/volumes/_detail_overview.html:47 +#: dashboards/nova/volumes/templates/volumes/_detail_overview.html:46 #, fuzzy msgid "Not attached" msgstr "Dołącz wolumen" -#: dashboards/nova/templates/nova/instances_and_volumes/volumes/create.html:6 +#: dashboards/nova/volumes/templates/volumes/create.html:6 #, fuzzy msgid "Create a Volume" msgstr "Utwórz nowy wolumen." -#: dashboards/nova/templates/nova/instances_and_volumes/volumes/create_snapshot.html:6 +#: dashboards/nova/volumes/templates/volumes/create_snapshot.html:6 msgid "Create a Volume Snapshot" msgstr "" -#: dashboards/nova/templates/nova/instances_and_volumes/volumes/detail.html:3 +#: dashboards/nova/volumes/templates/volumes/detail.html:3 +#: dashboards/syspanel/volumes/templates/volumes/detail.html:3 #, fuzzy msgid "Volume Details" msgstr "Wolumeny" -#: dashboards/nova/templates/nova/instances_and_volumes/volumes/detail.html:6 +#: dashboards/nova/volumes/templates/volumes/detail.html:6 +#: dashboards/syspanel/volumes/templates/volumes/detail.html:6 #, fuzzy msgid "Volume Detail" msgstr "Wolumeny" -#: dashboards/nova/templates/nova/objects/_copy.html:7 -#: dashboards/nova/templates/nova/objects/_copy.html:22 -#: dashboards/nova/templates/nova/objects/copy.html:3 -#: dashboards/nova/templates/nova/objects/copy.html:6 -msgid "Copy Object" -msgstr "" - -#: dashboards/nova/templates/nova/objects/_copy.html:17 -msgid "" -"You may make a new copy of an existing object to store in this or another " -"container." -msgstr "" - -#: dashboards/nova/templates/nova/objects/_upload.html:8 -msgid "Upload Object To Container" -msgstr "" - -#: dashboards/nova/templates/nova/objects/_upload.html:18 -msgid "" -"An object is the basic storage entity and any optional metadata that " -"represents the files you store in the OpenStack Object Storage system. When " -"you upload data to OpenStack Object Storage, the data is stored as-is (no " -"compression or encryption) and consists of a location (container), the " -"object's name, and any metadata consisting of key/value pairs." -msgstr "" - -#: dashboards/nova/templates/nova/objects/upload.html:6 -msgid "Upload Objects" -msgstr "" - #: dashboards/settings/dashboard.py:24 msgid "Settings" msgstr "" @@ -1767,12 +2086,12 @@ msgstr "Usuń projekt" msgid "Unable to retrieve tenant list." msgstr "Nie można utworzyć klucza: %s" -#: dashboards/settings/ec2/forms.py:95 +#: dashboards/settings/ec2/forms.py:93 #, fuzzy msgid "Unable to fetch EC2 credentials." msgstr "Wygeneruj dane uwierzytelniające x509." -#: dashboards/settings/ec2/forms.py:108 +#: dashboards/settings/ec2/forms.py:106 #, fuzzy, python-format msgid "Error writing zipfile: %(exc)s" msgstr "tworzenie użytkownika %s..." @@ -1782,73 +2101,82 @@ msgstr "tworzenie użytkownika %s..." msgid "EC2 Credentials" msgstr "Wyślij dane uwierzytelniające" -#: dashboards/settings/project/forms.py:76 -#, fuzzy, python-format -msgid "Error Downloading RC File: %s" -msgstr "Nie można zaktualizować obrazu: %s" - -#: dashboards/settings/project/panel.py:24 -#, fuzzy -msgid "OpenStack Credentials" -msgstr "Wyślij dane uwierzytelniające" - -#: dashboards/settings/templates/settings/ec2/download_form.html:8 -#: dashboards/settings/templates/settings/ec2/download_form.html:23 -#: dashboards/settings/templates/settings/ec2/index.html:3 -#: dashboards/settings/templates/settings/ec2/index.html:6 +#: dashboards/settings/ec2/templates/ec2/download_form.html:8 +#: dashboards/settings/ec2/templates/ec2/download_form.html:23 +#: dashboards/settings/ec2/templates/ec2/index.html:3 +#: dashboards/settings/ec2/templates/ec2/index.html:6 #, fuzzy msgid "Download EC2 Credentials" msgstr "Wyślij dane uwierzytelniające" -#: dashboards/settings/templates/settings/ec2/download_form.html:18 +#: dashboards/settings/ec2/templates/ec2/download_form.html:18 msgid "" "Clicking \"Download EC2 Credentials\" will download a zip file which " "includes an rc file with your access/secret keys, as well as your x509 " "private key and certificate." msgstr "" -#: dashboards/settings/templates/settings/project/_openrc.html:8 -#: dashboards/settings/templates/settings/project/settings.html:6 +#: dashboards/settings/project/forms.py:76 +#, fuzzy, python-format +msgid "Error Downloading RC File: %s" +msgstr "Nie można zaktualizować obrazu: %s" + +#: dashboards/settings/project/panel.py:24 +#: dashboards/settings/project/templates/project/_openrc.html:8 +#: dashboards/settings/project/templates/project/settings.html:3 +#: dashboards/settings/project/templates/project/settings.html:6 +msgid "OpenStack API" +msgstr "" + +#: dashboards/settings/project/tables.py:27 +#, fuzzy +msgid "Service Name" +msgstr "Obrazy" + +#: dashboards/settings/project/tables.py:29 +msgid "Service Endpoint" +msgstr "" + +#: dashboards/settings/project/tables.py:33 +msgid "API Endpoints" +msgstr "" + +#: dashboards/settings/project/templates/project/_openrc.html:15 #, fuzzy msgid "Download OpenStack RC File" msgstr "Nie można zaktualizować obrazu: %s" -#: dashboards/settings/templates/settings/project/_openrc.html:18 +#: dashboards/settings/project/templates/project/_openrc.html:25 msgid "" "Download the RC file for the selected project, then type \"source openrc\" " "in the terminal to configure your environment to communicate with OpenStack." msgstr "" -#: dashboards/settings/templates/settings/project/_openrc.html:23 +#: dashboards/settings/project/templates/project/_openrc.html:30 msgid "Download RC File" msgstr "" -#: dashboards/settings/templates/settings/user/_language.html:8 -#: dashboards/settings/templates/settings/user/_language.html:36 -msgid "Select Language" -msgstr "" - -#: dashboards/settings/templates/settings/user/_language.html:12 -msgid "Dashboard User Interface Language" -msgstr "" - -#: dashboards/settings/templates/settings/user/_language.html:14 -msgid "Language Settings" -msgstr "" - -#: dashboards/settings/templates/settings/user/_language.html:31 -#, fuzzy -msgid "From here you can modify different settings for your dashboard." -msgstr "Tutaj można zarządzać użytkownikami i rolami." - -#: dashboards/settings/templates/settings/user/settings.html:6 -msgid "Dashboard Settings" +#: dashboards/settings/user/forms.py:57 +msgid "Settings saved." msgstr "" #: dashboards/settings/user/panel.py:24 +#: dashboards/settings/user/templates/user/_settings.html:8 +#: dashboards/settings/user/templates/user/settings.html:3 +#: dashboards/settings/user/templates/user/settings.html:6 msgid "User Settings" msgstr "" +#: dashboards/settings/user/templates/user/_settings.html:18 +#, fuzzy +msgid "From here you can modify dashboard settings for your user." +msgstr "Tutaj można zarządzać użytkownikami i rolami." + +#: dashboards/settings/user/templates/user/_settings.html:23 +#: workflows/base.py:510 +msgid "Save" +msgstr "" + #: dashboards/syspanel/dashboard.py:24 msgid "System Panel" msgstr "" @@ -1881,14 +2209,14 @@ msgstr "Klucz %s został pomyślnie usunięty." #: dashboards/syspanel/flavors/panel.py:28 #: dashboards/syspanel/flavors/tables.py:14 #: dashboards/syspanel/flavors/tables.py:38 -#: dashboards/syspanel/templates/syspanel/flavors/index.html:8 +#: dashboards/syspanel/flavors/templates/flavors/index.html:8 msgid "Flavors" msgstr "" #: dashboards/syspanel/flavors/tables.py:22 -#: dashboards/syspanel/templates/syspanel/flavors/_create.html:8 -#: dashboards/syspanel/templates/syspanel/flavors/_create.html:23 -#: dashboards/syspanel/templates/syspanel/flavors/create.html:6 +#: dashboards/syspanel/flavors/templates/flavors/_create.html:8 +#: dashboards/syspanel/flavors/templates/flavors/_create.html:23 +#: dashboards/syspanel/flavors/templates/flavors/create.html:6 msgid "Create Flavor" msgstr "" @@ -1896,6 +2224,10 @@ msgstr "" msgid "Flavor Name" msgstr "" +#: dashboards/syspanel/flavors/tables.py:31 +msgid "Memory" +msgstr "" + #: dashboards/syspanel/flavors/views.py:48 #, fuzzy msgid "Unauthorized." @@ -1906,14 +2238,20 @@ msgstr "Nie można autoryzować: %s" msgid "Unable to get flavor list: %s" msgstr "Nie można cofnąć: %s" +#: dashboards/syspanel/flavors/templates/flavors/_create.html:18 +#, fuzzy +msgid "From here you can define the sizing of a new flavor." +msgstr "Tutaj można zarządzać użytkownikami i rolami." + #: dashboards/syspanel/images/views.py:52 #, fuzzy msgid "Unable to retrieve image list." msgstr "Nie można utworzyć klucza: %s" -#: dashboards/syspanel/instances/tables.py:62 -msgid "Tenant" -msgstr "" +#: dashboards/syspanel/instances/tables.py:62 usage/tables.py:29 +#, fuzzy +msgid "Project Name" +msgstr "Usuń projekt" #: dashboards/syspanel/instances/tables.py:69 #: dashboards/syspanel/services/tables.py:40 @@ -1925,23 +2263,37 @@ msgstr "" msgid "Unable to retrieve instance tenant information." msgstr "Nie można cofnąć: %s" +#: dashboards/syspanel/instances/templates/instances/index.html:6 +#, fuzzy +msgid "All Instances" +msgstr "Instancje" + +#: dashboards/syspanel/overview/templates/overview/usage.html:3 +msgid "Usage Overview" +msgstr "" + +#: dashboards/syspanel/overview/templates/overview/usage.html:12 +msgid "Monitoring" +msgstr "" + #: dashboards/syspanel/projects/forms.py:38 +#: dashboards/syspanel/users/forms.py:75 msgid "Role" msgstr "" #: dashboards/syspanel/projects/forms.py:52 #, fuzzy -msgid "Successfully added user to tenant." +msgid "Successfully added user to project." msgstr "Pomyślnie zmodyfikowano projekt %(proj)s." #: dashboards/syspanel/projects/forms.py:54 #, fuzzy -msgid "Unable to add user to tenant." -msgstr "Nie można utworzyć klucza: %s" +msgid "Unable to add user to project." +msgstr "Nie można zaktualizować obrazu: %s" #: dashboards/syspanel/projects/forms.py:64 #: dashboards/syspanel/projects/forms.py:89 -#: dashboards/syspanel/projects/tables.py:77 +#: dashboards/syspanel/projects/tables.py:78 #: dashboards/syspanel/services/tables.py:42 #: dashboards/syspanel/users/tables.py:38 #: dashboards/syspanel/users/tables.py:112 @@ -1955,7 +2307,7 @@ msgstr "Klucz %s został pomyślnie usunięty." #: dashboards/syspanel/projects/forms.py:78 #, fuzzy -msgid "Unable to create tenant." +msgid "Unable to create project." msgstr "Nie można utworzyć klucza: %s" #: dashboards/syspanel/projects/forms.py:100 @@ -1965,7 +2317,7 @@ msgstr "Klucz %s został pomyślnie usunięty." #: dashboards/syspanel/projects/forms.py:103 #, fuzzy -msgid "Unable to update tenant." +msgid "Unable to update project." msgstr "Nie można zaktualizować obrazu: %s" #: dashboards/syspanel/projects/forms.py:108 @@ -2003,69 +2355,73 @@ msgid "Unable to update quotas." msgstr "Nie można zaktualizować obrazu: %s" #: dashboards/syspanel/projects/panel.py:28 -#: dashboards/syspanel/projects/tables.py:52 -#: dashboards/syspanel/projects/tables.py:81 -#: dashboards/syspanel/templates/syspanel/projects/index.html:8 +#: dashboards/syspanel/projects/tables.py:53 +#: dashboards/syspanel/projects/tables.py:82 +#: dashboards/syspanel/projects/templates/projects/index.html:8 #, fuzzy msgid "Projects" msgstr "Usuń projekt" -#: dashboards/syspanel/projects/tables.py:17 +#: dashboards/syspanel/projects/tables.py:18 msgid "Modify Quotas" msgstr "" -#: dashboards/syspanel/projects/tables.py:24 +#: dashboards/syspanel/projects/tables.py:25 msgid "Modify Users" msgstr "" -#: dashboards/syspanel/projects/tables.py:31 +#: dashboards/syspanel/projects/tables.py:32 msgid "View Usage" msgstr "" -#: dashboards/syspanel/projects/tables.py:38 +#: dashboards/syspanel/projects/tables.py:39 #, fuzzy msgid "Edit Project" msgstr "Usuń projekt" -#: dashboards/syspanel/projects/tables.py:45 +#: dashboards/syspanel/projects/tables.py:46 #, fuzzy msgid "Create New Project" msgstr "Utwórz nowy wolumen." -#: dashboards/syspanel/projects/tables.py:73 -#: dashboards/syspanel/services/tables.py:37 -msgid "Id" -msgstr "" - -#: dashboards/syspanel/projects/tables.py:89 +#: dashboards/syspanel/projects/tables.py:90 #, fuzzy msgid "Remove" msgstr "Usuń obraz" -#: dashboards/syspanel/projects/tables.py:90 +#: dashboards/syspanel/projects/tables.py:91 #, fuzzy msgid "Removed" msgstr "Usuń obraz" -#: dashboards/syspanel/projects/tables.py:92 -#: dashboards/syspanel/templates/syspanel/users/index.html:8 +#: dashboards/syspanel/projects/tables.py:93 #: dashboards/syspanel/users/panel.py:28 #: dashboards/syspanel/users/tables.py:40 #: dashboards/syspanel/users/tables.py:74 #: dashboards/syspanel/users/tables.py:119 +#: dashboards/syspanel/users/templates/users/index.html:8 msgid "Users" msgstr "" -#: dashboards/syspanel/projects/tables.py:103 +#: dashboards/syspanel/projects/tables.py:111 +#, fuzzy +msgid "Unable to retrieve role information." +msgstr "Nie można wyrejestrować obrazu: %s" + +#: dashboards/syspanel/projects/tables.py:116 +msgid "Roles" +msgstr "" + +#: dashboards/syspanel/projects/tables.py:120 #, fuzzy msgid "Users For Project" msgstr "Usuń użytkownika z projektu" -#: dashboards/syspanel/projects/tables.py:110 +#: dashboards/syspanel/projects/tables.py:128 msgid "Add To Project" msgstr "" -#: dashboards/syspanel/projects/tables.py:122 +#: dashboards/syspanel/projects/tables.py:140 #, fuzzy msgid "Add New Users" msgstr "Utwórz nowy wolumen." @@ -2090,6 +2446,71 @@ msgstr "Nie można cofnąć: %s" msgid "Unable to retrieve roles." msgstr "Nie można utworzyć wolumenu: %s" +#: dashboards/syspanel/projects/templates/projects/_add_user.html:8 +#: dashboards/syspanel/projects/templates/projects/add_user.html:3 +#: dashboards/syspanel/projects/templates/projects/add_user.html:6 +#, fuzzy +msgid "Add User To Project" +msgstr "Usuń użytkownika z projektu" + +#: dashboards/syspanel/projects/templates/projects/_add_user.html:18 +msgid "Select the user role for the project." +msgstr "" + +#: dashboards/syspanel/projects/templates/projects/_add_user.html:23 +msgid "Add" +msgstr "" + +#: dashboards/syspanel/projects/templates/projects/_create.html:8 +#: dashboards/syspanel/projects/templates/projects/_create.html:23 +#: dashboards/syspanel/projects/templates/projects/create.html:6 +#, fuzzy +msgid "Create Project" +msgstr "Usuń projekt" + +#: dashboards/syspanel/projects/templates/projects/_create.html:18 +#, fuzzy +msgid "From here you can create a new project to organize users." +msgstr "Tutaj można edytować wiele ról użytkowników." + +#: dashboards/syspanel/projects/templates/projects/_quotas.html:7 +#: dashboards/syspanel/projects/templates/projects/_quotas.html:22 +#, fuzzy +msgid "Update Quota" +msgstr "Aktualizuj instncję" + +#: dashboards/syspanel/projects/templates/projects/_quotas.html:17 +#, fuzzy, python-format +msgid "" +"From here you can edit quotas (max limits) for the project %(tenant.name)s." +msgstr "Tutaj można edytować wiele ról użytkowników." + +#: dashboards/syspanel/projects/templates/projects/_update.html:8 +#: dashboards/syspanel/projects/templates/projects/_update.html:23 +#: dashboards/syspanel/projects/templates/projects/quotas.html:6 +#: dashboards/syspanel/projects/templates/projects/update.html:6 +#, fuzzy +msgid "Update Project" +msgstr "Usuń projekt" + +#: dashboards/syspanel/projects/templates/projects/_update.html:18 +#, fuzzy +msgid "From here you can edit a project." +msgstr "Tutaj można edytować wiele ról użytkowników." + +#: dashboards/syspanel/projects/templates/projects/usage.html:3 +msgid "Project Usage Overview" +msgstr "" + +#: dashboards/syspanel/projects/templates/projects/usage.html:7 +msgid "Project Usage" +msgstr "" + +#: dashboards/syspanel/projects/templates/projects/users.html:7 +#, fuzzy +msgid "Users for Project" +msgstr "Usuń użytkownika z projektu" + #: dashboards/syspanel/quotas/panel.py:28 #: dashboards/syspanel/quotas/tables.py:36 #, fuzzy @@ -2109,205 +2530,108 @@ msgstr "" msgid "Unable to get quota info." msgstr "Nie można ustawić widoczności obrazu na publiczną: %s" +#: dashboards/syspanel/quotas/templates/quotas/index.html:8 +msgid "Default Quotas" +msgstr "" + #: dashboards/syspanel/services/panel.py:28 #: dashboards/syspanel/services/tables.py:47 -#: dashboards/syspanel/templates/syspanel/services/index.html:8 +#: dashboards/syspanel/services/templates/services/index.html:8 msgid "Services" msgstr "" +#: dashboards/syspanel/services/tables.py:37 +msgid "Id" +msgstr "" + #: dashboards/syspanel/services/tables.py:39 msgid "Service" msgstr "" -#: dashboards/syspanel/templates/syspanel/flavors/_create.html:18 -#, fuzzy -msgid "From here you can define the sizing of a new flavor." -msgstr "Tutaj można zarządzać użytkownikami i rolami." - -#: dashboards/syspanel/templates/syspanel/instances/index.html:6 -#, fuzzy -msgid "All Instances" -msgstr "Instancje" - -#: dashboards/syspanel/templates/syspanel/overview/usage.html:3 -msgid "Usage Overview" -msgstr "" - -#: dashboards/syspanel/templates/syspanel/overview/usage.html:12 -msgid "Monitoring" -msgstr "" - -#: dashboards/syspanel/templates/syspanel/projects/_add_user.html:8 -#: dashboards/syspanel/templates/syspanel/projects/add_user.html:3 -#: dashboards/syspanel/templates/syspanel/projects/add_user.html:6 -#, fuzzy -msgid "Add User To Project" -msgstr "Usuń użytkownika z projektu" - -#: dashboards/syspanel/templates/syspanel/projects/_add_user.html:18 -msgid "Select the user role for the project." -msgstr "" - -#: dashboards/syspanel/templates/syspanel/projects/_add_user.html:23 -msgid "Add" -msgstr "" - -#: dashboards/syspanel/templates/syspanel/projects/_create.html:8 -#: dashboards/syspanel/templates/syspanel/projects/_create.html:23 -#: dashboards/syspanel/templates/syspanel/projects/create.html:6 -#, fuzzy -msgid "Create Project" -msgstr "Usuń projekt" - -#: dashboards/syspanel/templates/syspanel/projects/_create.html:18 -#, fuzzy -msgid "From here you can create a new project to organize users." -msgstr "Tutaj można edytować wiele ról użytkowników." - -#: dashboards/syspanel/templates/syspanel/projects/_quotas.html:7 -#: dashboards/syspanel/templates/syspanel/projects/_quotas.html:22 -#, fuzzy -msgid "Update Quota" -msgstr "Aktualizuj instncję" - -#: dashboards/syspanel/templates/syspanel/projects/_quotas.html:17 -#, fuzzy, python-format -msgid "" -"From here you can edit quotas (max limits) for the project %(tenant.name)s." -msgstr "Tutaj można edytować wiele ról użytkowników." - -#: dashboards/syspanel/templates/syspanel/projects/_update.html:8 -#: dashboards/syspanel/templates/syspanel/projects/_update.html:23 -#: dashboards/syspanel/templates/syspanel/projects/quotas.html:6 -#: dashboards/syspanel/templates/syspanel/projects/update.html:6 -#, fuzzy -msgid "Update Project" -msgstr "Usuń projekt" - -#: dashboards/syspanel/templates/syspanel/projects/_update.html:18 -#, fuzzy -msgid "From here you can edit a project." -msgstr "Tutaj można edytować wiele ról użytkowników." - -#: dashboards/syspanel/templates/syspanel/projects/usage.html:3 -msgid "Project Usage Overview" -msgstr "" - -#: dashboards/syspanel/templates/syspanel/projects/usage.html:7 -msgid "Project Usage" -msgstr "" - -#: dashboards/syspanel/templates/syspanel/projects/users.html:7 -#, fuzzy -msgid "Users for Project" -msgstr "Usuń użytkownika z projektu" - -#: dashboards/syspanel/templates/syspanel/quotas/index.html:8 -msgid "Default Quotas" -msgstr "" - -#: dashboards/syspanel/templates/syspanel/users/_create.html:7 -#: dashboards/syspanel/templates/syspanel/users/_create.html:22 -#: dashboards/syspanel/templates/syspanel/users/create.html:7 -#: dashboards/syspanel/users/tables.py:18 -msgid "Create User" -msgstr "" - -#: dashboards/syspanel/templates/syspanel/users/_create.html:17 -#, fuzzy -msgid "From here you can create a new user and assign them to a project." -msgstr "Tutaj można edytować wiele ról użytkowników." - -#: dashboards/syspanel/templates/syspanel/users/_update.html:7 -#: dashboards/syspanel/templates/syspanel/users/_update.html:22 -#: dashboards/syspanel/templates/syspanel/users/update.html:7 -#, fuzzy -msgid "Update User" -msgstr "Aktualizuj obraz" - -#: dashboards/syspanel/templates/syspanel/users/_update.html:17 -#, fuzzy -msgid "" -"From here you can edit the user's details, including their default project." -msgstr "Tutaj można edytować wiele ról użytkowników." - -#: dashboards/syspanel/users/forms.py:41 +#: dashboards/syspanel/users/forms.py:42 #, fuzzy msgid "Select a project" msgstr "Usuń projekt" -#: dashboards/syspanel/users/forms.py:57 +#: dashboards/syspanel/users/forms.py:58 msgid "Passwords do not match." msgstr "" -#: dashboards/syspanel/users/forms.py:62 -#: dashboards/syspanel/users/forms.py:105 -#: dashboards/syspanel/users/tables.py:107 views/auth_forms.py:64 +#: dashboards/syspanel/users/forms.py:63 +#: dashboards/syspanel/users/forms.py:114 +#: dashboards/syspanel/users/tables.py:106 msgid "User Name" msgstr "" -#: dashboards/syspanel/users/forms.py:63 -#: dashboards/syspanel/users/forms.py:106 -#: dashboards/syspanel/users/tables.py:108 +#: dashboards/syspanel/users/forms.py:64 +#: dashboards/syspanel/users/forms.py:115 +#: dashboards/syspanel/users/tables.py:107 msgid "Email" msgstr "" -#: dashboards/syspanel/users/forms.py:65 -#: dashboards/syspanel/users/forms.py:107 views/auth_forms.py:65 +#: dashboards/syspanel/users/forms.py:66 +#: dashboards/syspanel/users/forms.py:116 msgid "Password" msgstr "" -#: dashboards/syspanel/users/forms.py:70 -#: dashboards/syspanel/users/forms.py:114 +#: dashboards/syspanel/users/forms.py:71 +#: dashboards/syspanel/users/forms.py:123 msgid "Confirm Password" msgstr "" -#: dashboards/syspanel/users/forms.py:73 -#: dashboards/syspanel/users/forms.py:117 +#: dashboards/syspanel/users/forms.py:74 +#: dashboards/syspanel/users/forms.py:126 msgid "Primary Project" msgstr "" -#: dashboards/syspanel/users/forms.py:85 +#: dashboards/syspanel/users/forms.py:96 #, fuzzy, python-format msgid "User \"%s\" was successfully created." msgstr "Klucz %s został pomyślnie usunięty." -#: dashboards/syspanel/users/forms.py:96 +#: dashboards/syspanel/users/forms.py:105 #, fuzzy msgid "Unable to add user to primary project." msgstr "Nie można zaktualizować obrazu: %s" -#: dashboards/syspanel/users/forms.py:99 +#: dashboards/syspanel/users/forms.py:108 #, fuzzy msgid "Unable to create user." msgstr "Nie można utworzyć wolumenu: %s" -#: dashboards/syspanel/users/forms.py:139 +#: dashboards/syspanel/users/forms.py:151 msgid "name" msgstr "" -#: dashboards/syspanel/users/forms.py:139 +#: dashboards/syspanel/users/forms.py:151 msgid "email" msgstr "" -#: dashboards/syspanel/users/forms.py:148 +#: dashboards/syspanel/users/forms.py:160 msgid "primary project" msgstr "" -#: dashboards/syspanel/users/forms.py:160 +#: dashboards/syspanel/users/forms.py:172 msgid "password" msgstr "" -#: dashboards/syspanel/users/forms.py:169 +#: dashboards/syspanel/users/forms.py:181 #, fuzzy msgid "User has been updated successfully." msgstr "Wolumen %(id)s %(name)s został pomyślnie utworzony." -#: dashboards/syspanel/users/forms.py:173 +#: dashboards/syspanel/users/forms.py:185 #, fuzzy, python-format msgid "Unable to update %(attributes)s for the user." msgstr "Nie można usunąć klucza: %s" +#: dashboards/syspanel/users/tables.py:18 +#: dashboards/syspanel/users/templates/users/_create.html:7 +#: dashboards/syspanel/users/templates/users/_create.html:22 +#: dashboards/syspanel/users/templates/users/create.html:7 +msgid "Create User" +msgstr "" + #: dashboards/syspanel/users/tables.py:37 msgid "Enable" msgstr "" @@ -2324,16 +2648,43 @@ msgstr "" msgid "You cannot disable the user you are currently logged in as." msgstr "" -#: dashboards/syspanel/users/views.py:47 +#: dashboards/syspanel/users/tables.py:111 +msgid "User ID" +msgstr "" + +#: dashboards/syspanel/users/views.py:46 #, fuzzy msgid "Unable to retrieve user list." msgstr "Nie można cofnąć: %s" -#: dashboards/syspanel/users/views.py:63 +#: dashboards/syspanel/users/views.py:67 #, fuzzy msgid "Unable to update user." msgstr "Nie można zaktualizować obrazu: %s" +#: dashboards/syspanel/users/views.py:93 +#, fuzzy +msgid "Unable to retrieve user roles." +msgstr "Nie można cofnąć: %s" + +#: dashboards/syspanel/users/templates/users/_create.html:17 +#, fuzzy +msgid "From here you can create a new user and assign them to a project." +msgstr "Tutaj można edytować wiele ról użytkowników." + +#: dashboards/syspanel/users/templates/users/_update.html:7 +#: dashboards/syspanel/users/templates/users/_update.html:22 +#: dashboards/syspanel/users/templates/users/update.html:7 +#, fuzzy +msgid "Update User" +msgstr "Aktualizuj obraz" + +#: dashboards/syspanel/users/templates/users/_update.html:17 +#, fuzzy +msgid "" +"From here you can edit the user's details, including their default project." +msgstr "Tutaj można edytować wiele ról użytkowników." + #: tables/actions.py:299 msgid "Filter" msgstr "" @@ -2362,26 +2713,26 @@ msgstr "Usuń" msgid "Deleted" msgstr "Usuń" -#: tables/base.py:231 +#: tables/base.py:257 #, python-format msgid "The attribute %(attr)s doesn't exist on %(obj)s." msgstr "" -#: tables/base.py:679 +#: tables/base.py:743 #, fuzzy msgid "Actions" msgstr "Położenie" -#: tables/base.py:824 +#: tables/base.py:891 msgid "No items to display." msgstr "" -#: tables/base.py:841 +#: tables/base.py:908 #, python-format msgid "No match returned for the id \"%s\"." msgstr "" -#: tables/base.py:948 +#: tables/base.py:1015 msgid "Please select a row before taking that action." msgstr "" @@ -2401,25 +2752,26 @@ msgstr "" msgid "Error: " msgstr "" -#: templates/horizon/auth/_login.html:4 -msgid "Log In" +#: templates/horizon/client_side/_loading.html:9 +msgid "Loading…" msgstr "" -#: templates/horizon/auth/_login.html:18 -msgid "Sign In" +#: templates/horizon/common/_data_table.html:33 +msgid "Summary" msgstr "" -#: templates/horizon/auth/login.html:4 -msgid "Login" -msgstr "" - -#: templates/horizon/common/_data_table.html:31 +#: templates/horizon/common/_data_table.html:42 #, python-format msgid "Displaying %(counter)s item" msgid_plural "Displaying %(counter)s items" msgstr[0] "" msgstr[1] "" +#: templates/horizon/common/_sidebar.html:14 +#, fuzzy +msgid "Current Project" +msgstr "Usuń projekt" + #: templates/horizon/common/_usage_summary.html:5 msgid "Select a month to query its usage" msgstr "" @@ -2445,11 +2797,11 @@ msgstr "" msgid "This Month's GB-Hours" msgstr "" -#: templatetags/horizon.py:121 +#: templatetags/horizon.py:108 msgid "No Limit" msgstr "" -#: templatetags/horizon.py:123 templatetags/horizon.py:125 +#: templatetags/horizon.py:110 templatetags/horizon.py:112 #, fuzzy msgid "Available" msgstr "brak dostępnych" @@ -2478,6 +2830,11 @@ msgstr "" msgid "%s MB" msgstr "" +#: templatetags/sizeformat.py:58 +#, python-format +msgid "%s GB" +msgstr "" + #: templatetags/sizeformat.py:61 #, python-format msgid "%s TB" @@ -2500,35 +2857,39 @@ msgstr "" msgid "Admin Panel" msgstr "" -#: tests/table_tests.py:94 +#: tests/message_tests.py:30 +msgid "Giant ants are attacking San Francisco!" +msgstr "" + +#: tests/table_tests.py:104 msgid "Batch" msgstr "" -#: tests/table_tests.py:95 +#: tests/table_tests.py:105 msgid "Batched" msgstr "" -#: tests/table_tests.py:96 tests/table_tests.py:107 +#: tests/table_tests.py:106 tests/table_tests.py:117 msgid "Item" msgstr "" -#: tests/table_tests.py:97 tests/table_tests.py:108 +#: tests/table_tests.py:107 tests/table_tests.py:118 msgid "Items" msgstr "" -#: tests/table_tests.py:105 +#: tests/table_tests.py:115 msgid "Down" msgstr "" -#: tests/table_tests.py:105 +#: tests/table_tests.py:115 msgid "Up" msgstr "" -#: tests/table_tests.py:106 +#: tests/table_tests.py:116 msgid "Downed" msgstr "" -#: tests/table_tests.py:106 +#: tests/table_tests.py:116 msgid "Upped" msgstr "" @@ -2556,7 +2917,7 @@ msgstr "" msgid "Recoverable Error Tab" msgstr "" -#: tests/testsettings.py:99 +#: tests/testsettings.py:111 msgid "Password must be between 8 and 18 characters." msgstr "" @@ -2611,32 +2972,32 @@ msgstr "" msgid "Puppies" msgstr "" -#: usage/base.py:94 +#: usage/base.py:97 #, fuzzy msgid "Unable to retrieve usage information." msgstr "Nie można wyrejestrować obrazu: %s" -#: usage/base.py:97 +#: usage/base.py:100 msgid "You are viewing data for the future, which may or may not exist." msgstr "" -#: usage/tables.py:10 +#: usage/tables.py:11 msgid "Download CSV Summary" msgstr "" -#: usage/tables.py:23 +#: usage/tables.py:24 msgid "VCPU Hours" msgstr "" -#: usage/tables.py:30 +#: usage/tables.py:31 msgid "Disk GB Hours" msgstr "" -#: usage/tables.py:38 usage/tables.py:59 +#: usage/tables.py:39 usage/tables.py:67 msgid "Usage Summary" msgstr "" -#: usage/tables.py:51 +#: usage/tables.py:59 msgid "Uptime" msgstr "" @@ -2656,652 +3017,16 @@ msgstr "" msgid "Password is not accepted" msgstr "" -#: views/auth.py:92 -msgid "You are not authorized for that tenant." -msgstr "" - -#: views/auth_forms.py:63 -msgid "Region" -msgstr "" - -#: views/auth_forms.py:107 -#, fuzzy -msgid "Unable to authenticate for that project." -msgstr "Nie można utworzyć klucza: %s" - -#: views/auth_forms.py:124 -msgid "Invalid user name or password." -msgstr "" - -#: views/auth_forms.py:131 -msgid "An error occurred authenticating. Please try again later." -msgstr "" - -#: views/auth_forms.py:150 -msgid "You are not authorized for any projects." -msgstr "" - -#: views/auth_forms.py:174 -msgid "You are not authorized for any available projects." -msgstr "" - -#: workflows/base.py:65 +#: workflows/base.py:69 msgid "Processing..." msgstr "" -#: workflows/base.py:478 -msgid "Save" -msgstr "" - -#: workflows/base.py:479 +#: workflows/base.py:511 #, fuzzy, python-format msgid "%s completed successfully." msgstr "Wolumen %(id)s %(name)s został pomyślnie utworzony." -#: workflows/base.py:480 +#: workflows/base.py:512 #, python-format msgid "%s did not complete." msgstr "" - -#, fuzzy -#~ msgid "Error associating Floating IP: %s" -#~ msgstr "Nie można zaktualizować obrazu: %s" - -#, fuzzy -#~ msgid "Error adding rule security group: %s" -#~ msgstr "Nie można usunąć grupy bezpieczeństwa: %s" - -#, fuzzy -#~ msgid "Unable to delete non-empty container: %s" -#~ msgstr "Nie można usunąć klucza: %s" - -#, fuzzy -#~ msgid "Successfully deleted containers: %s" -#~ msgstr "Pomyślnie zmodyfikowano projekt %(proj)s." - -#, fuzzy -#~ msgid "Unable to retrieve image \"%s\"." -#~ msgstr "Nie można cofnąć: %s" - -#, fuzzy -#~ msgid "Launch Instances" -#~ msgstr "Uruchom obraz" - -#, fuzzy -#~ msgid "Updated %(attributes)s for \"%(user)s\"." -#~ msgstr "Nie można usunąć klucza: %s" - -#, fuzzy -#~ msgid "Enable Users" -#~ msgstr "Aktualizuj obraz" - -#, fuzzy -#~ msgid "Error enabling user: %s" -#~ msgstr "tworzenie użytkownika %s..." - -#, fuzzy -#~ msgid "Enabled the following users: %s" -#~ msgstr "Nie można usunąć klucza: %s" - -#, fuzzy -#~ msgid "Successfully enabled users: %s" -#~ msgstr "Pomyślnie zmodyfikowano projekt %(proj)s." - -#, fuzzy -#~ msgid "Error disabling user: %s" -#~ msgstr "tworzenie użytkownika %s..." - -#, fuzzy -#~ msgid "Disabled the following users: %s" -#~ msgstr "Nie można usunąć klucza: %s" - -#, fuzzy -#~ msgid "Successfully disabled users: %s" -#~ msgstr "Pomyślnie zmodyfikowano projekt %(proj)s." - -#, fuzzy -#~ msgid "Unable to retrieve tenant." -#~ msgstr "Nie można utworzyć klucza: %s" - -#, fuzzy -#~ msgid "Unable to get user info: %s" -#~ msgstr "Nie można ustawić widoczności obrazu na publiczną: %s" - -#, fuzzy -#~ msgid "Image ID:" -#~ msgstr "Obrazy" - -#, fuzzy -#~ msgid "Image Status:" -#~ msgstr "Obrazy" - -#, fuzzy -#~ msgid "Image Name:" -#~ msgstr "Obrazy" - -#, fuzzy -#~ msgid "Public:" -#~ msgstr "Uczyń publicznym" - -#, fuzzy -#~ msgid "Last Updated At:" -#~ msgstr "Aktualizuj obraz" - -#, fuzzy -#~ msgid "Volume Name:" -#~ msgstr "Obrazy" - -#, fuzzy -#~ msgid "Created at:" -#~ msgstr "Utwórz nowy wolumen." - -#, fuzzy -#~ msgid "Delete Objects" -#~ msgstr "Usuń projekt" - -#, fuzzy -#~ msgid "Unable to delete object." -#~ msgstr "Nie można usunąć wolumenu: %s" - -#, fuzzy -#~ msgid "Successfully deleted objects: %s" -#~ msgstr "Pomyślnie zmodyfikowano projekt %(proj)s." - -#, fuzzy -#~ msgid "Error fetching volume: %s" -#~ msgstr "tworzenie użytkownika %s..." - -#, fuzzy -#~ msgid "Unable to %s." -#~ msgstr "Nie można uruchomić: %s" - -#, fuzzy -#~ msgid "Network" -#~ msgstr "Utwórz nowy wolumen." - -#, fuzzy -#~ msgid "Network %s has been created." -#~ msgstr "Obraz %s został zaktualizowany." - -#, fuzzy -#~ msgid "Unable to create network." -#~ msgstr "Nie można utworzyć klucza: %s" - -#, fuzzy -#~ msgid "Unable to rename network %(network)s: %(msg)s" -#~ msgstr "Nie można zakończyć %(inst)s: %(msg)s" - -#, fuzzy -#~ msgid "Unable to create ports on network %(network)s: %(msg)s" -#~ msgstr "Nie można zakończyć %(inst)s: %(msg)s" - -#, fuzzy -#~ msgid "Unable to attach port." -#~ msgstr "Nie można dołączyć wolumenu: %s" - -#, fuzzy -#~ msgid "Create New Network" -#~ msgstr "Utwórz nowy wolumen." - -#, fuzzy -#~ msgid "Network Id" -#~ msgstr "Utwórz nowy wolumen." - -#, fuzzy -#~ msgid "Attach Port" -#~ msgstr "Dołącz wolumen" - -#, fuzzy -#~ msgid "Attachment" -#~ msgstr "Dołącz wolumen" - -#, fuzzy -#~ msgid "Unable to get network list: %s" -#~ msgstr "Nie można cofnąć: %s" - -#, fuzzy -#~ msgid "Unable to retrieve network information." -#~ msgstr "Nie można wyrejestrować obrazu: %s" - -#, fuzzy -#~ msgid "Create Network" -#~ msgstr "Utwórz nowy wolumen." - -#, fuzzy -#~ msgid "Network Detail" -#~ msgstr "Utwórz nowy wolumen." - -#, fuzzy -#~ msgid "Unable to get vnc console for instance \"%s\"." -#~ msgstr "Nie można zaktualizować instancji %(inst)s: %(msg)s" - -#, fuzzy -#~ msgid "Volume Snaphots" -#~ msgstr "Wolumeny" - -#, fuzzy -#~ msgid "Role does not exist: %s" -#~ msgstr "Projekt %s nie istnieje." - -#, fuzzy -#~ msgid "Instance was successfully launched" -#~ msgstr "Obraz %s został pomyślnie wyrejestrowany." - -#, fuzzy -#~ msgid "Error deleting image: %(image)s: %i(msg)s" -#~ msgstr "Nie można zaktualizować obrazu: %s" - -#, fuzzy -#~ msgid "There are currently no images." -#~ msgstr "Brak istniejących par kluczy." - -#, fuzzy -#~ msgid "Error parsing quota for %(image)s: %(msg)s" -#~ msgstr "Nie można zaktualizować obrazu: %s" - -#, fuzzy -#~ msgid "Unable to terminate %(inst)s: %(message)s" -#~ msgstr "Nie można zakończyć %(inst)s: %(msg)s" - -#, fuzzy -#~ msgid "Instance %s has been terminated." -#~ msgstr "Instancja %(inst)s została zakończona." - -#, fuzzy -#~ msgid "Instance rebooting" -#~ msgstr "Instancja %(inst)s została zaktualizowana." - -#, fuzzy -#~ msgid "ApiException while rebooting instance \"%s\"" -#~ msgstr "Nie można cofnąć: %s" - -#, fuzzy -#~ msgid "Unable to reboot instance: %s" -#~ msgstr "Nie można cofnąć: %s" - -#, fuzzy -#~ msgid "Instance %s has been rebooted." -#~ msgstr "Instancja %(inst)s została zaktualizowana." - -#, fuzzy -#~ msgid "Unable to get instance list: %s" -#~ msgstr "Nie można zaktualizować instancji %(inst)s: %(msg)s" - -#, fuzzy -#~ msgid "Unable to get vnc console for instance %(inst)s: %(message)s" -#~ msgstr "Nie można zaktualizować instancji %(inst)s: %(msg)s" - -#, fuzzy -#~ msgid "Unable to get information for instance %(inst)s: %(message)s" -#~ msgstr "Nie można zaktualizować instancji %(inst)s: %(msg)s" - -#, fuzzy -#~ msgid "Unable to get information for instance %(inst)s: %(msg)s" -#~ msgstr "Nie można zaktualizować instancji %(inst)s: %(msg)s" - -#, fuzzy -#~ msgid "Successfully deleted keypair: %s" -#~ msgstr "Pomyślnie zmodyfikowano projekt %(proj)s." - -#, fuzzy -#~ msgid "Error deleting keypair: %s" -#~ msgstr "Nie można usunąć klucza: %s" - -#, fuzzy -#~ msgid "Unable to create network %(network)s: %(msg)s" -#~ msgstr "Nie można zakończyć %(inst)s: %(msg)s" - -#, fuzzy -#~ msgid "Unable to delete network %(network)s: %(msg)s" -#~ msgstr "Nie można zakończyć %(inst)s: %(msg)s" - -#, fuzzy -#~ msgid "Network %s has been deleted." -#~ msgstr "Obraz %s został zaktualizowany." - -#, fuzzy -#~ msgid "Unable to delete port %(port)s: %(msg)s" -#~ msgstr "Nie można zakończyć %(inst)s: %(msg)s" - -#, fuzzy -#~ msgid "Unable to attach port %(port)s to VIF %(vif)s: %(msg)s" -#~ msgstr "Nie można zakończyć %(inst)s: %(msg)s" - -#, fuzzy -#~ msgid "Unable to detach port %(port)s: %(message)s" -#~ msgstr "Nie można zakończyć %(inst)s: %(msg)s" - -#, fuzzy -#~ msgid "Unable to set port state to %(state)s: %(message)s" -#~ msgstr "Nie można zakończyć %(inst)s: %(msg)s" - -#, fuzzy -#~ msgid "Unable to get network details: %s" -#~ msgstr "Nie można cofnąć: %s" - -#, fuzzy -#~ msgid "Error creating security group: %s" -#~ msgstr "Nie można utworzyć grupy bezpieczeństwa: %s" - -#, fuzzy -#~ msgid "Successfully deleted security_group: %s" -#~ msgstr "Nie można usunąć grupy bezpieczeństwa: %s" - -#, fuzzy -#~ msgid "Error deleting security group: %s" -#~ msgstr "Nie można usunąć grupy bezpieczeństwa: %s" - -#, fuzzy -#~ msgid "Error authorizing security group: %s" -#~ msgstr "Nie można utworzyć grupy bezpieczeństwa: %s" - -#, fuzzy -#~ msgid "Error getting security_group: %s" -#~ msgstr "Nie można utworzyć grupy bezpieczeństwa: %s" - -#, fuzzy -#~ msgid "Associate to instance" -#~ msgstr "Aktualizuj instncję" - -#, fuzzy -#~ msgid "No active instances." -#~ msgstr "Zobacz instancje" - -#, fuzzy -#~ msgid "There are currently no keypairs." -#~ msgstr "Brak istniejących par kluczy." - -#, fuzzy -#~ msgid "There are currently no ports in this network." -#~ msgstr "Brak użytkowników aktualnie powiązanych z projektem." - -#, fuzzy -#~ msgid "Rules for Security Group" -#~ msgstr "Grupy bezpieczeństwa" - -#, fuzzy -#~ msgid "Image was successfully uploaded." -#~ msgstr "Obraz %s został pomyślnie wyrejestrowany." - -#, fuzzy -#~ msgid "Unable to get service info: %s" -#~ msgstr "Nie można utworzyć grupy bezpieczeństwa: %s" - -#, fuzzy -#~ msgid "Service '%s' has been enabled" -#~ msgstr "Obraz %s został zaktualizowany." - -#, fuzzy -#~ msgid "Service '%s' has been disabled" -#~ msgstr "Obraz %s został zaktualizowany." - -#, fuzzy -#~ msgid "Unable to update service '%(name)s': %(msg)s" -#~ msgstr "Nie można zaktualizować instancji %(inst)s: %(msg)s" - -#, fuzzy -#~ msgid "Create New Flavor" -#~ msgstr "Utwórz nowy wolumen." - -#~ msgid "Location" -#~ msgstr "Położenie" - -#, fuzzy -#~ msgid "Toggle Public" -#~ msgstr "Uczyń publicznym" - -#, fuzzy -#~ msgid "View Members" -#~ msgstr "Zobacz obrazy" - -#, fuzzy -#~ msgid "Update Tenant" -#~ msgstr "Aktualizuj instncję" - -#, fuzzy -#~ msgid "%(user)s was successfully added to %(tenant)s." -#~ msgstr "Klucz %s został pomyślnie usunięty." - -#, fuzzy -#~ msgid "Unable to create user association: %s" -#~ msgstr "Nie można utworzyć grupy bezpieczeństwa: %s" - -#, fuzzy -#~ msgid "%(user)s was successfully removed from %(tenant)s." -#~ msgstr "Klucz %s został pomyślnie usunięty." - -#, fuzzy -#~ msgid "Error deleting tenant: %s" -#~ msgstr "Nie można usunąć klucza: %s" - -#, fuzzy -#~ msgid "Unable to get tenant info: %s" -#~ msgstr "Nie można utworzyć klucza: %s" - -#, fuzzy -#~ msgid "%(user)s was successfully deleted." -#~ msgstr "Klucz %s został pomyślnie usunięty." - -#, fuzzy -#~ msgid "Error authenticating: %s" -#~ msgstr "Użytkownik nie jest uwierzytelniony" - -#~ msgid "Creates nova users for all users in the django auth database." -#~ msgstr "Tworzy użytkowników nova dla wszystkich użytkowników w baze django." - -#~ msgid "A key named %s already exists." -#~ msgstr "Klucz o nazwie %s już istnieje." - -#~ msgid "A security group named %s already exists." -#~ msgstr "Grupa bezpieczeństwa %s juz istnieje." - -#~ msgid "Unable to start VPN for the project %(proj)s: %(code)s - %(msg)s" -#~ msgstr "Nie można uruchomić VPN dla projektu %(proj)s: %(code)s - %(msg)s" - -#~ msgid "Unable modify the project %(proj)s: %(code)s - %(msg)s" -#~ msgstr "Nie można zmodyfikować projektu %(proj)s: %(code)s - %(msg)s" - -#~ msgid "Unable to make image private: %s" -#~ msgstr "Nie można ustawić widoczności obrazu na prywatną: %s" - -#~ msgid "You are now using the region \"%s\"." -#~ msgstr "Używasz teraz regionu \"%s\"." - -#~ msgid "Security Group %s has been succesfully created." -#~ msgstr "Grupa bezpieczeństwa %s została pomyślnie utworzona." - -#~ msgid "" -#~ "Security Group %(grp)s: Access to %(proto)s ports %(fr)d - %(to)d has " -#~ "been authorized." -#~ msgstr "" -#~ "Grupa bezpieczeństwa %(grp)s: Dostęp do %(proto)s porty %(fr)d - %(to)d " -#~ "został autoryzowany." - -#~ msgid "" -#~ "Security Group %(grp)s: Access to %(proto)s ports %(fr)d - %(to)d has " -#~ "been revoked." -#~ msgstr "" -#~ "Grupa bezpieczeństwa %(grp)s: Dostęp do %(proto)s porty %(fr)d - %(to)d " -#~ "został cofnięty." - -#~ msgid "Volume %s has been successfully deleted." -#~ msgstr "Wolumen %s został pomyślnie usunięty." - -#~ msgid "" -#~ "Volume %s is scheduled to be attached. If it doesn't become attached in " -#~ "two minutes, please try again (you may need to specify a different " -#~ "device)." -#~ msgstr "" -#~ "Wolumen %s został zaplanowany do dołączenia. Jeśli nie zostanie dołączony " -#~ "w ciągu 2 minut, należy spróbować ponownie (może zajść potrzeba podania " -#~ "innego urządzenia)" - -#~ msgid "Volume %s has been successfully detached." -#~ msgstr "Wolumen %s został pomyślnie odłączony." - -#~ msgid "Do you really want to delete this project?<" -#~ msgstr "Czy na pewno chcesz usunąć ten projekt?<" - -#~ msgid "Do you really want to remove this user from project?" -#~ msgstr "Czy na pewno chcesz usunąć tego użytkownika z projektu?" - -#~ msgid "" -#~ "\"Select which users you would like to send credentials to from the " -#~ "'%(proj)s' project.\"" -#~ msgstr "" -#~ "\"Wybierz użytkowników, którym chcesz wysłać dane uwierzytelniające do " -#~ "'%(proj)s' project.\"" - -#~ msgid "Credentials sent successfully" -#~ msgstr "Pomyślnie wysłano dane uwierzytelniające." - -#~ msgid "Expired Token" -#~ msgstr "Token stracił ważność" - -#~ msgid "The link you clicked has expired." -#~ msgstr "Odnośnik, na który kliknąłeś stracił ważność." - -#~ msgid "" -#~ "This credentials download link you have reached\n" -#~ " is either invalid or has expired. Each link is only good for one " -#~ "use. If\n" -#~ " you need to download your credentials again, please contact the\n" -#~ " %(brand)s support team." -#~ msgstr "" -#~ "Odnośnik do danych uwierzytelniających, którego\n" -#~ " którego użyłeś jest nieprawidłowy lub wygasł. Każdy odnośnik może\n" -#~ " być użyty tylko raz. Jeśli musisz ponownie pobrać dane " -#~ "uwierzytelniające\n" -#~ " skontaktuj się z zespołem wsparcia %(brand)s." - -#~ msgid "Make Private" -#~ msgstr "Uczyń prywatnym" - -#~ msgid "No images currently available." -#~ msgstr "Brak dostępnych obrazów." - -#~ msgid "Edit Image" -#~ msgstr "Edytuj obraz" - -#~ msgid "" -#~ "From this page you can edit the name and description of an image that " -#~ "belongs to you." -#~ msgstr "Na tej stronie można edytować nazwę i opis własnego obrazu." - -#~ msgid "Edit Image:" -#~ msgstr "Edytuj obraz:" - -#~ msgid "Launch an Image" -#~ msgstr "Uruchom obraz" - -#~ msgid "" -#~ "Images are snapshots of running systems which can easily be deployed to " -#~ "run one or more instances." -#~ msgstr "" -#~ "Obrazy są zrzutami działających systemów, które łatwo można użyć do " -#~ "uruchamiania nowych instancji." - -#~ msgid "" -#~ "You can launch up to five instances of an image at a time. Some images " -#~ "allow for custom configuration to be passed in via User data." -#~ msgstr "" -#~ "Można uruchomić do 5 instancji obrazu na raz. Niektóre obraz umożliwiają " -#~ "przekazywanie własnej konfiguracji poprzez Dane użytkownika." - -#~ msgid "" -#~ "No instances are currently running. You may start a new instance from the" -#~ msgstr "Brak uruchomionych instancji. Można uruchomić nową instancję z" - -#~ msgid "" -#~ "Here you can see up to the minute performance data about your instance." -#~ msgstr "Tutaj można obejrzeć minutowe dane nt. wydajności instancji." - -#~ msgid "Edit Instance:" -#~ msgstr "Edytuj instancję:" - -#~ msgid "" -#~ "From this page you can give your instance an alias, so you don't have to " -#~ "remember its unique id." -#~ msgstr "Tutaj można nadać instancji alias dla łatwiejszego jej odróżnienia." - -#~ msgid "" -#~ "Instances are virtual servers launched from images. You can launch " -#~ "instances from the" -#~ msgstr "" -#~ "Instancje są wirtualnymi serwerami uruchomionymi z obrazów. Można " -#~ "uruchamiać instancje z" - -#~ msgid "Are you sure you wish to terminate instance" -#~ msgstr "Jesteś pewien, że chcesz usunąć instancję" - -#~ msgid "" -#~ "A connection error has occurred. Please ensure you are still connected to " -#~ "VPN." -#~ msgstr "Wystąpił błąd połączenia. Należy sprawdzić połączenie VPN." - -#~ msgid "Instance ID: %(instance.id)s Performance\" " -#~ msgstr "ID instancji: %(instance.id)s wydajność\" " - -#~ msgid "Keys" -#~ msgstr "Klucze" - -#~ msgid "Are you sure you wish to delete key" -#~ msgstr "Czy na pewno usunąć klucz" - -#~ msgid "Edit Roles for User:" -#~ msgstr "Edytuj role dla użytkownika:" - -#~ msgid "" -#~ "Welcome to the %(proj)s Overview. From here you can manage " -#~ "your instances, images, keys, and security groups." -#~ msgstr "" -#~ "Witaj w posumowaniu %(proj)s. Tutaj można zarządzać swoimi " -#~ "instancjami, obrazami, kluczami i grupami bezpieczeństwa." - -#~ msgid "" -#~ "To get started using the command line management tools, you can download euca2ools and use them with your x509 " -#~ "credentials." -#~ msgstr "" -#~ "Aby zacząć pracę z narzędziami linii poleceń, możesz pobrać " -#~ "euca2ools i używać ich z danymi uwierzytelniającymi x509." - -#~ msgid "Manage Users and Roles" -#~ msgstr "Zarządzaj użytkownikami i rolami" - -#~ msgid " Security Group: %(securitygroup.name)s " -#~ msgstr "Grup abezpieczeństwa: %(securitygroup.name)s " - -#~ msgid "" -#~ "Add and remove protocols to the security group by authorizing and " -#~ "revoking port forwarding. For instance
[tcp, 80, 80] will allow " -#~ "access to HTTP from devices outside this security group." -#~ msgstr "" -#~ "Dodawaj i usuwaj protokoły do grupy bezpieczeństwa poprzez dopuszczanie " -#~ "lub blokowanie przekazywania portów. Na przykład
[tcp, 80, 80] " -#~ "pozwoli na dostęp do HTTP dla urządzeń spoza tej grupy bezpieczeństwa." - -#~ msgid "" -#~ "Security groups are firewall rules which allow access to your instances " -#~ "from other groups as well as the internet. All ports/protocols are " -#~ "denied by default." -#~ msgstr "" -#~ "Grypu bezpieczeństwa do reguły firewall'a, które zezwalają na dostęp do " -#~ "twojej instancji z innych grup oraz z Internetu. Wszystkie porty/" -#~ "protokoły są domyślnie zablokowane." - -#~ msgid "" -#~ "Volumes provide persistent block storage. Creating a new volume gives you " -#~ "a raw block device which you may format with your choice of filesystems " -#~ "(ext3 is recommended). A volume may only be attached to a single instance " -#~ "at a time." -#~ msgstr "" -#~ "Wolumeny dostarczają trwałe miejsce przechowywania danych. Utworzenie " -#~ "nowego wolumenu daje udostępnia nowe urządzenie blokowe, które możesz " -#~ "sformatować na dowolny system plików (zalecany jest ext3). Wolumen może " -#~ "być dołączony tylko do jednej instancji na raz." - -#~ msgid "No volumes currently exist." -#~ msgstr "Brak wolumenów." diff --git a/horizon/locale/pt/LC_MESSAGES/django.po b/horizon/locale/pt/LC_MESSAGES/django.po index 014cd6d87..6ab682283 100644 --- a/horizon/locale/pt/LC_MESSAGES/django.po +++ b/horizon/locale/pt/LC_MESSAGES/django.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: openstack-dashboard\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2012-05-29 11:47-0700\n" +"POT-Creation-Date: 2012-07-09 02:28+0000\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -17,7 +17,7 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -#: base.py:449 +#: base.py:437 msgid "Other" msgstr "" @@ -25,24 +25,16 @@ msgstr "" msgid "Please log in to continue." msgstr "" -#: decorators.py:89 +#: decorators.py:87 #, python-format msgid "You are not authorized to access %s" msgstr "" -#: decorators.py:130 -msgid "The services for this view are not available." -msgstr "" - -#: exceptions.py:239 +#: exceptions.py:299 msgid "Unauthorized. Please try logging in again." msgstr "" -#: users.py:63 -msgid "Your session has expired. Please log in again." -msgstr "" - -#: api/keystone.py:53 +#: api/keystone.py:55 #, python-format msgid "%(type)s (%(backend)s backend)" msgstr "" @@ -57,7 +49,11 @@ msgstr "" msgid "ALLOW %(from)s:%(to)s from %(cidr)s" msgstr "" -#: api/swift.py:114 +#: api/nova.py:502 +msgid "Unknown instance" +msgstr "" + +#: api/swift.py:155 msgid "Unicode is not currently supported for object copy." msgstr "" @@ -65,191 +61,200 @@ msgstr "" msgid "Manage Compute" msgstr "" -#: dashboards/nova/dashboard.py:33 +#: dashboards/nova/dashboard.py:34 msgid "Object Store" msgstr "" -#: dashboards/nova/dashboard.py:38 -#: dashboards/nova/instances_and_volumes/instances/workflows.py:33 -#: dashboards/syspanel/projects/tables.py:51 -#: templates/horizon/common/_sidebar.html:11 tests/workflows_tests.py:39 +#: dashboards/nova/dashboard.py:39 dashboards/nova/instances/workflows.py:32 +#: dashboards/syspanel/projects/tables.py:52 tests/workflows_tests.py:39 msgid "Project" msgstr "" #: dashboards/nova/access_and_security/panel.py:25 -#: dashboards/nova/instances_and_volumes/instances/workflows.py:311 +#: dashboards/nova/instances/workflows.py:328 msgid "Access & Security" msgstr "" -#: dashboards/nova/access_and_security/views.py:52 +#: dashboards/nova/access_and_security/views.py:51 msgid "Unable to retrieve keypair list." msgstr "" -#: dashboards/nova/access_and_security/views.py:62 -#, python-format -msgid "Error fetching security_groups: %s" +#: dashboards/nova/access_and_security/views.py:60 +#: dashboards/nova/access_and_security/security_groups/views.py:64 +msgid "Unable to retrieve security groups." msgstr "" -#: dashboards/nova/access_and_security/views.py:72 -#, python-format -msgid "Error fetching floating ips: %s" +#: dashboards/nova/access_and_security/views.py:69 +#: dashboards/nova/access_and_security/floating_ips/workflows.py:44 +msgid "Unable to retrieve floating IP addresses." msgstr "" -#: dashboards/nova/access_and_security/views.py:79 -#: dashboards/nova/access_and_security/floating_ips/views.py:60 +#: dashboards/nova/access_and_security/views.py:76 +#: dashboards/nova/access_and_security/floating_ips/workflows.py:60 #: dashboards/syspanel/instances/views.py:58 msgid "Unable to retrieve instance list." msgstr "" #: dashboards/nova/access_and_security/floating_ips/forms.py:38 -#: dashboards/nova/access_and_security/floating_ips/tables.py:47 -#: dashboards/nova/templates/nova/access_and_security/floating_ips/_allocate.html:22 -msgid "Floating IP" -msgstr "" - -#: dashboards/nova/access_and_security/floating_ips/forms.py:41 -#: dashboards/nova/images_and_snapshots/snapshots/forms.py:38 -msgid "Instance ID" -msgstr "" - -#: dashboards/nova/access_and_security/floating_ips/forms.py:47 -#: dashboards/nova/instances_and_volumes/volumes/forms.py:73 -msgid "Select an instance" -msgstr "" - -#: dashboards/nova/access_and_security/floating_ips/forms.py:49 -#: dashboards/nova/instances_and_volumes/volumes/forms.py:75 -msgid "No instances available" -msgstr "" - -#: dashboards/nova/access_and_security/floating_ips/forms.py:52 -#: dashboards/nova/access_and_security/floating_ips/tables.py:112 -#: dashboards/nova/instances_and_volumes/instances/tables.py:58 -#: dashboards/nova/instances_and_volumes/instances/tables.py:75 -#: dashboards/nova/instances_and_volumes/instances/tables.py:90 -#: dashboards/nova/instances_and_volumes/instances/tables.py:118 -#: dashboards/nova/instances_and_volumes/volumes/tables.py:158 -#: dashboards/nova/templates/nova/instances_and_volumes/volumes/_detail_overview.html:41 -#: tests/workflows_tests.py:58 -msgid "Instance" -msgstr "" - -#: dashboards/nova/access_and_security/floating_ips/forms.py:63 -#, python-format -msgid "Successfully associated Floating IP %(ip)s with Instance: %(inst)s" -msgstr "" - -#: dashboards/nova/access_and_security/floating_ips/forms.py:69 -#: dashboards/nova/access_and_security/floating_ips/views.py:51 -msgid "Unable to associate floating IP." -msgstr "" - -#: dashboards/nova/access_and_security/floating_ips/forms.py:75 msgid "Pool" msgstr "" -#: dashboards/nova/access_and_security/floating_ips/forms.py:90 +#: dashboards/nova/access_and_security/floating_ips/forms.py:53 #, python-format msgid "" "Successfully allocated Floating IP \"%(ip)s\" to project \"%(project)s\"" msgstr "" -#: dashboards/nova/access_and_security/floating_ips/forms.py:94 +#: dashboards/nova/access_and_security/floating_ips/forms.py:57 msgid "Unable to allocate Floating IP." msgstr "" -#: dashboards/nova/access_and_security/floating_ips/tables.py:35 +#: dashboards/nova/access_and_security/floating_ips/tables.py:36 msgid "Allocate IP To Project" msgstr "" -#: dashboards/nova/access_and_security/floating_ips/tables.py:45 +#: dashboards/nova/access_and_security/floating_ips/tables.py:46 msgid "Release" msgstr "" -#: dashboards/nova/access_and_security/floating_ips/tables.py:46 +#: dashboards/nova/access_and_security/floating_ips/tables.py:47 msgid "Released" msgstr "" #: dashboards/nova/access_and_security/floating_ips/tables.py:48 -#: dashboards/nova/access_and_security/floating_ips/tables.py:126 +#: dashboards/nova/access_and_security/templates/access_and_security/floating_ips/_allocate.html:22 +msgid "Floating IP" +msgstr "" + +#: dashboards/nova/access_and_security/floating_ips/tables.py:49 +#: dashboards/nova/access_and_security/floating_ips/tables.py:132 #: dashboards/syspanel/projects/forms.py:119 msgid "Floating IPs" msgstr "" -#: dashboards/nova/access_and_security/floating_ips/tables.py:57 -#: dashboards/nova/templates/nova/access_and_security/floating_ips/_associate.html:22 +#: dashboards/nova/access_and_security/floating_ips/tables.py:58 +#: dashboards/nova/access_and_security/templates/access_and_security/floating_ips/associate.html:3 +#: dashboards/nova/access_and_security/templates/access_and_security/floating_ips/associate.html:6 +#: dashboards/nova/instances/tables.py:202 msgid "Associate Floating IP" msgstr "Associado IP Flutuante" -#: dashboards/nova/access_and_security/floating_ips/tables.py:69 +#: dashboards/nova/access_and_security/floating_ips/tables.py:75 msgid "Disassociate Floating IP" msgstr "Dissociado IP Flutuante" -#: dashboards/nova/access_and_security/floating_ips/tables.py:83 +#: dashboards/nova/access_and_security/floating_ips/tables.py:89 #, python-format msgid "Successfully disassociated Floating IP: %s" msgstr "" -#: dashboards/nova/access_and_security/floating_ips/tables.py:87 +#: dashboards/nova/access_and_security/floating_ips/tables.py:93 msgid "Unable to disassociate floating IP." msgstr "" -#: dashboards/nova/access_and_security/floating_ips/tables.py:92 +#: dashboards/nova/access_and_security/floating_ips/tables.py:98 #, python-format msgid "%(INSTANCE_NAME)s (%(INSTANCE_ID)s)" msgstr "" -#: dashboards/nova/access_and_security/floating_ips/tables.py:97 -#: dashboards/nova/instances_and_volumes/instances/tables.py:218 -msgid "Not available" -msgstr "" - -#: dashboards/nova/access_and_security/floating_ips/tables.py:109 -#: dashboards/nova/instances_and_volumes/instances/tables.py:242 +#: dashboards/nova/access_and_security/floating_ips/tables.py:115 +#: dashboards/nova/access_and_security/floating_ips/workflows.py:28 +#: dashboards/nova/access_and_security/floating_ips/workflows.py:34 +#: dashboards/nova/instances/tables.py:270 #: dashboards/syspanel/instances/tables.py:74 msgid "IP Address" msgstr "" -#: dashboards/nova/access_and_security/floating_ips/tables.py:115 +#: dashboards/nova/access_and_security/floating_ips/tables.py:118 +#: dashboards/nova/access_and_security/floating_ips/workflows.py:31 +#: dashboards/nova/instances/tables.py:62 +#: dashboards/nova/instances/tables.py:79 +#: dashboards/nova/instances/tables.py:94 +#: dashboards/nova/instances/tables.py:122 +#: dashboards/nova/volumes/tables.py:195 tests/workflows_tests.py:58 +msgid "Instance" +msgstr "" + +#: dashboards/nova/access_and_security/floating_ips/tables.py:121 msgid "Floating IP Pool" msgstr "" -#: dashboards/nova/access_and_security/floating_ips/views.py:100 +#: dashboards/nova/access_and_security/floating_ips/views.py:60 msgid "No floating IP pools available." msgstr "" -#: dashboards/nova/access_and_security/keypairs/forms.py:38 -#: dashboards/nova/access_and_security/keypairs/forms.py:57 +#: dashboards/nova/access_and_security/floating_ips/workflows.py:35 +msgid "Select the IP address you wish to associate with the selected instance." +msgstr "" + +#: dashboards/nova/access_and_security/floating_ips/workflows.py:48 +msgid "Select an IP address" +msgstr "" + +#: dashboards/nova/access_and_security/floating_ips/workflows.py:50 +msgid "No IP addresses available" +msgstr "" + +#: dashboards/nova/access_and_security/floating_ips/workflows.py:77 +#: dashboards/nova/volumes/forms.py:92 +msgid "Select an instance" +msgstr "" + +#: dashboards/nova/access_and_security/floating_ips/workflows.py:79 +#: dashboards/nova/volumes/forms.py:94 +msgid "No instances available" +msgstr "" + +#: dashboards/nova/access_and_security/floating_ips/workflows.py:98 +msgid "Manage Floating IP Associations" +msgstr "" + +#: dashboards/nova/access_and_security/floating_ips/workflows.py:99 +#, fuzzy +msgid "Associate" +msgstr "Associado IP Flutuante" + +#: dashboards/nova/access_and_security/floating_ips/workflows.py:100 +#, python-format +msgid "IP address %s associated." +msgstr "" + +#: dashboards/nova/access_and_security/floating_ips/workflows.py:101 +#, python-format +msgid "Unable to associate IP address %s." +msgstr "" + +#: dashboards/nova/access_and_security/keypairs/forms.py:40 +#: dashboards/nova/access_and_security/keypairs/forms.py:58 #: dashboards/nova/access_and_security/keypairs/tables.py:51 msgid "Keypair Name" msgstr "" -#: dashboards/nova/access_and_security/keypairs/forms.py:40 +#: dashboards/nova/access_and_security/keypairs/forms.py:42 msgid "" "Keypair names may only contain letters, numbers, underscores and hyphens." msgstr "" -#: dashboards/nova/access_and_security/keypairs/forms.py:52 -#, python-format -msgid "Error Creating Keypair: %s" +#: dashboards/nova/access_and_security/keypairs/forms.py:53 +msgid "Unable to create keypair." msgstr "" -#: dashboards/nova/access_and_security/keypairs/forms.py:59 +#: dashboards/nova/access_and_security/keypairs/forms.py:60 msgid "Public Key" msgstr "" -#: dashboards/nova/access_and_security/keypairs/forms.py:65 +#: dashboards/nova/access_and_security/keypairs/forms.py:68 #, python-format msgid "Successfully imported public key: %s" msgstr "" -#: dashboards/nova/access_and_security/keypairs/forms.py:72 -#, python-format -msgid "Error Importing Keypair: %s" +#: dashboards/nova/access_and_security/keypairs/forms.py:74 +msgid "Unable to import keypair." msgstr "" #: dashboards/nova/access_and_security/keypairs/tables.py:29 -#: dashboards/nova/instances_and_volumes/instances/workflows.py:299 +#: dashboards/nova/instances/tables.py:272 +#: dashboards/nova/instances/workflows.py:316 msgid "Keypair" msgstr "" @@ -259,16 +264,16 @@ msgid "Keypairs" msgstr "" #: dashboards/nova/access_and_security/keypairs/tables.py:38 -#: dashboards/nova/templates/nova/access_and_security/keypairs/_import.html:7 -#: dashboards/nova/templates/nova/access_and_security/keypairs/_import.html:23 -#: dashboards/nova/templates/nova/access_and_security/keypairs/import.html:6 +#: dashboards/nova/access_and_security/templates/access_and_security/keypairs/_import.html:7 +#: dashboards/nova/access_and_security/templates/access_and_security/keypairs/_import.html:23 +#: dashboards/nova/access_and_security/templates/access_and_security/keypairs/import.html:6 msgid "Import Keypair" msgstr "" #: dashboards/nova/access_and_security/keypairs/tables.py:45 -#: dashboards/nova/templates/nova/access_and_security/keypairs/_create.html:7 -#: dashboards/nova/templates/nova/access_and_security/keypairs/_create.html:23 -#: dashboards/nova/templates/nova/access_and_security/keypairs/create.html:6 +#: dashboards/nova/access_and_security/templates/access_and_security/keypairs/_create.html:7 +#: dashboards/nova/access_and_security/templates/access_and_security/keypairs/_create.html:23 +#: dashboards/nova/access_and_security/templates/access_and_security/keypairs/create.html:6 msgid "Create Keypair" msgstr "" @@ -281,134 +286,151 @@ msgstr "" msgid "Unable to create keypair: %(exc)s" msgstr "" -#: dashboards/nova/access_and_security/security_groups/forms.py:41 +#: dashboards/nova/access_and_security/security_groups/forms.py:40 #: dashboards/nova/access_and_security/security_groups/tables.py:57 -#: dashboards/nova/images_and_snapshots/images/forms.py:43 -#: dashboards/nova/instances_and_volumes/volumes/tables.py:110 -#: dashboards/nova/instances_and_volumes/volumes/tables.py:127 -#: dashboards/nova/templates/nova/images_and_snapshots/images/_detail_overview.html:9 -#: dashboards/nova/templates/nova/instances_and_volumes/instances/_detail_overview.html:9 -#: dashboards/nova/templates/nova/instances_and_volumes/instances/_launch_details_help.html:9 -#: dashboards/nova/templates/nova/instances_and_volumes/volumes/_detail_overview.html:9 +#: dashboards/nova/images_and_snapshots/images/forms.py:42 +#: dashboards/nova/images_and_snapshots/images/forms.py:120 +#: dashboards/nova/images_and_snapshots/templates/images_and_snapshots/images/_detail_overview.html:9 +#: dashboards/nova/images_and_snapshots/volume_snapshots/tables.py:46 +#: dashboards/nova/instances/templates/instances/_detail_overview.html:9 +#: dashboards/nova/instances/templates/instances/_launch_details_help.html:9 +#: dashboards/nova/volumes/tables.py:135 dashboards/nova/volumes/tables.py:153 +#: dashboards/nova/volumes/templates/volumes/_detail_overview.html:9 #: dashboards/syspanel/flavors/forms.py:37 #: dashboards/syspanel/projects/forms.py:60 #: dashboards/syspanel/projects/forms.py:85 #: dashboards/syspanel/projects/tables.py:74 #: dashboards/syspanel/services/tables.py:38 +#: dashboards/syspanel/volumes/tables.py:10 msgid "Name" msgstr "" -#: dashboards/nova/access_and_security/security_groups/forms.py:43 +#: dashboards/nova/access_and_security/security_groups/forms.py:42 #: dashboards/nova/access_and_security/security_groups/tables.py:58 -#: dashboards/nova/instances_and_volumes/volumes/forms.py:29 -#: dashboards/nova/instances_and_volumes/volumes/forms.py:103 -#: dashboards/nova/instances_and_volumes/volumes/tables.py:113 -#: dashboards/nova/templates/nova/access_and_security/keypairs/_create.html:16 -#: dashboards/nova/templates/nova/access_and_security/keypairs/_import.html:16 -#: dashboards/nova/templates/nova/access_and_security/security_groups/_create.html:17 -#: dashboards/nova/templates/nova/containers/_create.html:16 -#: dashboards/nova/templates/nova/instances_and_volumes/volumes/_create.html:17 -#: dashboards/nova/templates/nova/instances_and_volumes/volumes/_create_snapshot.html:17 -#: dashboards/nova/templates/nova/instances_and_volumes/volumes/_detail_overview.html:14 -#: dashboards/nova/templates/nova/objects/_copy.html:16 -#: dashboards/nova/templates/nova/objects/_upload.html:17 +#: dashboards/nova/access_and_security/templates/access_and_security/keypairs/_create.html:16 +#: dashboards/nova/access_and_security/templates/access_and_security/keypairs/_import.html:16 +#: dashboards/nova/access_and_security/templates/access_and_security/security_groups/_create.html:17 +#: dashboards/nova/containers/templates/containers/_copy.html:16 +#: dashboards/nova/containers/templates/containers/_create.html:16 +#: dashboards/nova/containers/templates/containers/_upload.html:17 +#: dashboards/nova/volumes/forms.py:25 dashboards/nova/volumes/forms.py:125 +#: dashboards/nova/volumes/tables.py:138 +#: dashboards/nova/volumes/templates/volumes/_create.html:18 +#: dashboards/nova/volumes/templates/volumes/_create_snapshot.html:17 +#: dashboards/nova/volumes/templates/volumes/_detail_overview.html:14 +#: dashboards/syspanel/flavors/templates/flavors/_create.html:17 +#: dashboards/syspanel/images/templates/images/_update.html:17 #: dashboards/syspanel/projects/forms.py:63 #: dashboards/syspanel/projects/forms.py:88 #: dashboards/syspanel/projects/tables.py:76 -#: dashboards/syspanel/templates/syspanel/flavors/_create.html:17 -#: dashboards/syspanel/templates/syspanel/images/_update.html:17 -#: dashboards/syspanel/templates/syspanel/projects/_add_user.html:17 -#: dashboards/syspanel/templates/syspanel/projects/_create.html:17 -#: dashboards/syspanel/templates/syspanel/projects/_quotas.html:16 -#: dashboards/syspanel/templates/syspanel/projects/_update.html:17 -#: dashboards/syspanel/templates/syspanel/users/_create.html:16 -#: dashboards/syspanel/templates/syspanel/users/_update.html:16 +#: dashboards/syspanel/projects/templates/projects/_add_user.html:17 +#: dashboards/syspanel/projects/templates/projects/_create.html:17 +#: dashboards/syspanel/projects/templates/projects/_quotas.html:16 +#: dashboards/syspanel/projects/templates/projects/_update.html:17 +#: dashboards/syspanel/users/templates/users/_create.html:16 +#: dashboards/syspanel/users/templates/users/_update.html:16 msgid "Description" msgstr "" -#: dashboards/nova/access_and_security/security_groups/forms.py:51 +#: dashboards/nova/access_and_security/security_groups/forms.py:50 #, python-format -msgid "Successfully created security_group: %s" +msgid "Successfully created security group: %s" msgstr "" -#: dashboards/nova/access_and_security/security_groups/forms.py:54 +#: dashboards/nova/access_and_security/security_groups/forms.py:53 msgid "Unable to create security group." msgstr "" -#: dashboards/nova/access_and_security/security_groups/forms.py:59 +#: dashboards/nova/access_and_security/security_groups/forms.py:58 #: dashboards/nova/access_and_security/security_groups/tables.py:92 msgid "IP Protocol" msgstr "" -#: dashboards/nova/access_and_security/security_groups/forms.py:65 -#: dashboards/nova/access_and_security/security_groups/forms.py:71 +#: dashboards/nova/access_and_security/security_groups/forms.py:64 +#: dashboards/nova/access_and_security/security_groups/forms.py:70 #: dashboards/nova/access_and_security/security_groups/tables.py:94 msgid "From Port" msgstr "" -#: dashboards/nova/access_and_security/security_groups/forms.py:66 +#: dashboards/nova/access_and_security/security_groups/forms.py:65 msgid "" "TCP/UDP: Enter integer value between 1 and 65535. ICMP: enter a value for " "ICMP type in the range (-1: 255)" msgstr "" -#: dashboards/nova/access_and_security/security_groups/forms.py:72 -#: dashboards/nova/images_and_snapshots/images/tables.py:89 +#: dashboards/nova/access_and_security/security_groups/forms.py:71 +#: dashboards/nova/images_and_snapshots/images/tables.py:114 msgid "Type" msgstr "" -#: dashboards/nova/access_and_security/security_groups/forms.py:74 -#: dashboards/nova/access_and_security/security_groups/forms.py:80 +#: dashboards/nova/access_and_security/security_groups/forms.py:73 +#: dashboards/nova/access_and_security/security_groups/forms.py:79 #: dashboards/nova/access_and_security/security_groups/tables.py:95 msgid "To Port" msgstr "" -#: dashboards/nova/access_and_security/security_groups/forms.py:75 +#: dashboards/nova/access_and_security/security_groups/forms.py:74 msgid "" "TCP/UDP: Enter integer value between 1 and 65535. ICMP: enter a value for " "ICMP code in the range (-1: 255)" msgstr "" -#: dashboards/nova/access_and_security/security_groups/forms.py:81 +#: dashboards/nova/access_and_security/security_groups/forms.py:80 msgid "Code" msgstr "" -#: dashboards/nova/access_and_security/security_groups/forms.py:84 +#: dashboards/nova/access_and_security/security_groups/forms.py:83 msgid "Source Group" msgstr "" -#: dashboards/nova/access_and_security/security_groups/forms.py:85 +#: dashboards/nova/access_and_security/security_groups/forms.py:84 msgid "CIDR" msgstr "" -#: dashboards/nova/access_and_security/security_groups/forms.py:88 +#: dashboards/nova/access_and_security/security_groups/forms.py:87 msgid "Classless Inter-Domain Routing (e.g. 192.168.0.0/24)" msgstr "" -#: dashboards/nova/access_and_security/security_groups/forms.py:115 +#: dashboards/nova/access_and_security/security_groups/forms.py:116 +msgid "The ICMP type is invalid." +msgstr "" + +#: dashboards/nova/access_and_security/security_groups/forms.py:119 +msgid "The ICMP code is invalid." +msgstr "" + +#: dashboards/nova/access_and_security/security_groups/forms.py:122 +msgid "The ICMP type not in range (-1, 255)" +msgstr "" + +#: dashboards/nova/access_and_security/security_groups/forms.py:125 +msgid "The ICMP code not in range (-1, 255)" +msgstr "" + +#: dashboards/nova/access_and_security/security_groups/forms.py:129 msgid "The \"from\" port number is invalid." msgstr "" -#: dashboards/nova/access_and_security/security_groups/forms.py:118 +#: dashboards/nova/access_and_security/security_groups/forms.py:132 msgid "The \"to\" port number is invalid." msgstr "" -#: dashboards/nova/access_and_security/security_groups/forms.py:121 +#: dashboards/nova/access_and_security/security_groups/forms.py:135 msgid "" "The \"to\" port number must be greater than or equal to the \"from\" port " "number." msgstr "" -#: dashboards/nova/access_and_security/security_groups/forms.py:127 +#: dashboards/nova/access_and_security/security_groups/forms.py:141 msgid "Either CIDR or Source Group may be specified, but not both." msgstr "" -#: dashboards/nova/access_and_security/security_groups/forms.py:148 +#: dashboards/nova/access_and_security/security_groups/forms.py:163 #, python-format msgid "Successfully added rule: %s" msgstr "" -#: dashboards/nova/access_and_security/security_groups/forms.py:152 +#: dashboards/nova/access_and_security/security_groups/forms.py:166 msgid "Unable to add rule to security group." msgstr "" @@ -418,15 +440,15 @@ msgstr "" #: dashboards/nova/access_and_security/security_groups/tables.py:31 #: dashboards/nova/access_and_security/security_groups/tables.py:65 -#: dashboards/nova/instances_and_volumes/instances/workflows.py:303 -#: dashboards/nova/templates/nova/instances_and_volumes/instances/_detail_overview.html:47 +#: dashboards/nova/instances/workflows.py:320 +#: dashboards/nova/instances/templates/instances/_detail_overview.html:49 msgid "Security Groups" msgstr "" #: dashboards/nova/access_and_security/security_groups/tables.py:44 -#: dashboards/nova/templates/nova/access_and_security/security_groups/_create.html:7 -#: dashboards/nova/templates/nova/access_and_security/security_groups/_create.html:23 -#: dashboards/nova/templates/nova/access_and_security/security_groups/create.html:6 +#: dashboards/nova/access_and_security/templates/access_and_security/security_groups/_create.html:7 +#: dashboards/nova/access_and_security/templates/access_and_security/security_groups/_create.html:23 +#: dashboards/nova/access_and_security/templates/access_and_security/security_groups/create.html:6 msgid "Create Security Group" msgstr "" @@ -454,69 +476,178 @@ msgstr "" msgid "Unable to retrieve security group." msgstr "" -#: dashboards/nova/access_and_security/security_groups/views.py:64 -msgid "Unable to retrieve security groups." +#: dashboards/nova/access_and_security/templates/access_and_security/index.html:6 +msgid "Access & Security" +msgstr "" + +#: dashboards/nova/access_and_security/templates/access_and_security/floating_ips/_allocate.html:8 +#: dashboards/nova/access_and_security/templates/access_and_security/floating_ips/allocate.html:3 +msgid "Allocate Floating IP" +msgstr "" + +#: dashboards/nova/access_and_security/templates/access_and_security/floating_ips/_allocate.html:17 +#: dashboards/nova/images_and_snapshots/templates/images_and_snapshots/images/_create.html:16 +#: dashboards/nova/images_and_snapshots/templates/images_and_snapshots/images/_update.html:16 +#: dashboards/nova/images_and_snapshots/templates/images_and_snapshots/snapshots/_create.html:17 +#: dashboards/nova/instances/templates/instances/_update.html:16 +#: dashboards/settings/ec2/templates/ec2/download_form.html:17 +#: dashboards/settings/project/templates/project/_openrc.html:24 +#: dashboards/settings/user/templates/user/_settings.html:17 +msgid "Description:" +msgstr "" + +#: dashboards/nova/access_and_security/templates/access_and_security/floating_ips/_allocate.html:18 +msgid "Allocate a floating IP from a given floating ip pool." +msgstr "" + +#: dashboards/nova/access_and_security/templates/access_and_security/floating_ips/_allocate.html:20 +#: dashboards/nova/instances/templates/instances/_launch_details_help.html:19 +msgid "Project Quotas" +msgstr "" + +#: dashboards/nova/access_and_security/templates/access_and_security/floating_ips/_allocate.html:31 +msgid "Allocate IP" +msgstr "" + +#: dashboards/nova/access_and_security/templates/access_and_security/floating_ips/_allocate.html:32 +#: dashboards/nova/access_and_security/templates/access_and_security/keypairs/_create.html:24 +#: dashboards/nova/access_and_security/templates/access_and_security/keypairs/_import.html:24 +#: dashboards/nova/access_and_security/templates/access_and_security/security_groups/_create.html:24 +#: dashboards/nova/access_and_security/templates/access_and_security/security_groups/_edit_rules.html:20 +#: dashboards/nova/containers/templates/containers/_copy.html:23 +#: dashboards/nova/containers/templates/containers/_create.html:23 +#: dashboards/nova/containers/templates/containers/_upload.html:24 +#: dashboards/nova/images_and_snapshots/templates/images_and_snapshots/images/_create.html:32 +#: dashboards/nova/images_and_snapshots/templates/images_and_snapshots/images/_update.html:23 +#: dashboards/nova/images_and_snapshots/templates/images_and_snapshots/snapshots/_create.html:24 +#: dashboards/nova/instances/templates/instances/_update.html:23 +#: dashboards/nova/volumes/templates/volumes/_attach.html:20 +#: dashboards/nova/volumes/templates/volumes/_create.html:56 +#: dashboards/nova/volumes/templates/volumes/_create_snapshot.html:24 +#: dashboards/settings/ec2/templates/ec2/download_form.html:24 +#: dashboards/settings/project/templates/project/_openrc.html:31 +#: dashboards/settings/user/templates/user/_settings.html:24 +#: dashboards/syspanel/flavors/templates/flavors/_create.html:24 +#: dashboards/syspanel/images/templates/images/_update.html:24 +#: dashboards/syspanel/projects/templates/projects/_add_user.html:24 +#: dashboards/syspanel/projects/templates/projects/_create.html:24 +#: dashboards/syspanel/projects/templates/projects/_quotas.html:23 +#: dashboards/syspanel/projects/templates/projects/_update.html:24 +#: dashboards/syspanel/users/templates/users/_create.html:23 +#: dashboards/syspanel/users/templates/users/_update.html:23 +#: templates/horizon/common/_workflow.html:30 +msgid "Cancel" +msgstr "" + +#: dashboards/nova/access_and_security/templates/access_and_security/keypairs/_create.html:17 +#: dashboards/nova/access_and_security/templates/access_and_security/keypairs/_import.html:17 +msgid "" +"Keypairs are ssh credentials which are injected into images when they are " +"launched. Creating a new key pair registers the public key and downloads the " +"private key (a .pem file)." +msgstr "" + +#: dashboards/nova/access_and_security/templates/access_and_security/keypairs/_create.html:18 +#: dashboards/nova/access_and_security/templates/access_and_security/keypairs/_import.html:18 +msgid "Protect and use the key as you would any normal ssh private key." +msgstr "" + +#: dashboards/nova/access_and_security/templates/access_and_security/keypairs/download.html:3 +#: dashboards/nova/access_and_security/templates/access_and_security/keypairs/download.html:6 +msgid "Download Keypair" +msgstr "" + +#: dashboards/nova/access_and_security/templates/access_and_security/keypairs/download.html:11 +#, python-format +msgid "" +"The keypair "%(keypair_name)s" should download automatically. If " +"not use the link below." +msgstr "" + +#: dashboards/nova/access_and_security/templates/access_and_security/keypairs/download.html:15 +#, python-format +msgid "Download keypair "%(keypair_name)s"" +msgstr "" + +#: dashboards/nova/access_and_security/templates/access_and_security/security_groups/_create.html:18 +msgid "From here you can create a new security group" +msgstr "" + +#: dashboards/nova/access_and_security/templates/access_and_security/security_groups/_edit_rules.html:9 +#: dashboards/nova/access_and_security/templates/access_and_security/security_groups/edit_rules.html:6 +msgid "Edit Security Group Rules" +msgstr "" + +#: dashboards/nova/access_and_security/templates/access_and_security/security_groups/_edit_rules.html:12 +#: dashboards/nova/access_and_security/templates/access_and_security/security_groups/_edit_rules.html:19 +msgid "Add Rule" msgstr "" #: dashboards/nova/containers/forms.py:38 msgid "Slash is not an allowed character." msgstr "" -#: dashboards/nova/containers/forms.py:45 -#: dashboards/nova/containers/tables.py:88 +#: dashboards/nova/containers/forms.py:48 +#: dashboards/nova/containers/tables.py:91 msgid "Container Name" msgstr "" -#: dashboards/nova/containers/forms.py:51 +#: dashboards/nova/containers/forms.py:56 msgid "Container created successfully." msgstr "" -#: dashboards/nova/containers/forms.py:53 -msgid "Unable to create container." -msgstr "" - -#: dashboards/nova/containers/forms.py:59 -#: dashboards/nova/containers/tables.py:155 -msgid "Object Name" -msgstr "" - -#: dashboards/nova/containers/forms.py:61 -msgid "File" -msgstr "" - -#: dashboards/nova/containers/forms.py:73 -msgid "Object was successfully uploaded." +#: dashboards/nova/containers/forms.py:67 +msgid "Folder created successfully." msgstr "" #: dashboards/nova/containers/forms.py:75 +msgid "Unable to create container." +msgstr "" + +#: dashboards/nova/containers/forms.py:85 +#: dashboards/nova/containers/tables.py:157 +msgid "Object Name" +msgstr "" + +#: dashboards/nova/containers/forms.py:87 +msgid "File" +msgstr "" + +#: dashboards/nova/containers/forms.py:103 +msgid "Object was successfully uploaded." +msgstr "" + +#: dashboards/nova/containers/forms.py:105 msgid "Unable to upload object." msgstr "" -#: dashboards/nova/containers/forms.py:81 +#: dashboards/nova/containers/forms.py:111 msgid "Destination container" msgstr "" -#: dashboards/nova/containers/forms.py:84 +#: dashboards/nova/containers/forms.py:115 msgid "Destination object name" msgstr "" -#: dashboards/nova/containers/forms.py:107 -#, python-format -msgid "Object \"%(obj)s\" copied to container \"%(container)s\"." +#: dashboards/nova/containers/forms.py:145 +#: dashboards/nova/containers/forms.py:169 +msgid "Unable to copy object." msgstr "" -#: dashboards/nova/containers/forms.py:115 -msgid "Unable to copy object." +#: dashboards/nova/containers/forms.py:161 +#, python-format +msgid "Copied \"%(orig)s\" to \"%(dest)s\" as \"%(new)s\"." msgstr "" #: dashboards/nova/containers/panel.py:28 #: dashboards/nova/containers/tables.py:35 -#: dashboards/nova/containers/tables.py:99 -#: dashboards/nova/templates/nova/containers/index.html:8 +#: dashboards/nova/containers/tables.py:102 +#: dashboards/nova/containers/templates/containers/index.html:6 msgid "Containers" msgstr "" #: dashboards/nova/containers/tables.py:34 +#: dashboards/nova/containers/templates/containers/detail.html:7 msgid "Container" msgstr "" @@ -525,67 +656,129 @@ msgid "Containers must be empty before deletion." msgstr "" #: dashboards/nova/containers/tables.py:48 -#: dashboards/nova/templates/nova/containers/_create.html:7 -#: dashboards/nova/templates/nova/containers/_create.html:22 -#: dashboards/nova/templates/nova/containers/create.html:6 +#: dashboards/nova/containers/templates/containers/_create.html:7 +#: dashboards/nova/containers/templates/containers/_create.html:22 +#: dashboards/nova/containers/templates/containers/create.html:6 msgid "Create Container" msgstr "" #: dashboards/nova/containers/tables.py:55 -msgid "List Objects" +msgid "View Container" msgstr "" #: dashboards/nova/containers/tables.py:62 -#: dashboards/nova/templates/nova/objects/_upload.html:23 -#: dashboards/nova/templates/nova/objects/upload.html:3 +#: dashboards/nova/containers/templates/containers/_upload.html:23 +#: dashboards/nova/containers/templates/containers/upload.html:3 msgid "Upload Object" msgstr "" -#: dashboards/nova/containers/tables.py:90 -#: dashboards/nova/containers/tables.py:106 -#: dashboards/nova/containers/tables.py:163 -#: dashboards/nova/templates/nova/objects/index.html:3 +#: dashboards/nova/containers/tables.py:93 +#: dashboards/nova/containers/tables.py:109 +#: dashboards/nova/containers/tables.py:169 +#: dashboards/nova/containers/templates/containers/detail.html:3 msgid "Objects" msgstr "" -#: dashboards/nova/containers/tables.py:92 -#: dashboards/nova/containers/tables.py:156 -#: dashboards/nova/instances_and_volumes/instances/tables.py:243 -#: dashboards/nova/instances_and_volumes/volumes/tables.py:114 -#: dashboards/nova/templates/nova/images_and_snapshots/images/_detail_overview.html:30 -#: dashboards/nova/templates/nova/instances_and_volumes/volumes/_detail_overview.html:26 +#: dashboards/nova/containers/tables.py:95 +#: dashboards/nova/containers/tables.py:160 +#: dashboards/nova/images_and_snapshots/templates/images_and_snapshots/images/_detail_overview.html:30 +#: dashboards/nova/instances/tables.py:271 +#: dashboards/nova/volumes/tables.py:140 +#: dashboards/nova/volumes/templates/volumes/_detail_overview.html:26 #: dashboards/syspanel/instances/tables.py:76 msgid "Size" msgstr "" -#: dashboards/nova/containers/tables.py:105 +#: dashboards/nova/containers/tables.py:108 msgid "Object" msgstr "" -#: dashboards/nova/containers/tables.py:116 +#: dashboards/nova/containers/tables.py:119 msgid "Copy" msgstr "" -#: dashboards/nova/containers/tables.py:127 +#: dashboards/nova/containers/tables.py:130 msgid "Download" msgstr "" -#: dashboards/nova/containers/views.py:57 +#: dashboards/nova/containers/tables.py:181 +msgid "Create Folder" +msgstr "" + +#: dashboards/nova/containers/tables.py:193 +msgid "Folder" +msgstr "" + +#: dashboards/nova/containers/tables.py:194 +msgid "Folders" +msgstr "" + +#: dashboards/nova/containers/tables.py:200 +msgid "Subfolder Name" +msgstr "" + +#: dashboards/nova/containers/tables.py:208 +msgid "Subfolders" +msgstr "" + +#: dashboards/nova/containers/views.py:58 msgid "Unable to retrieve container list." msgstr "" -#: dashboards/nova/containers/views.py:84 +#: dashboards/nova/containers/views.py:103 msgid "Unable to retrieve object list." msgstr "" -#: dashboards/nova/containers/views.py:122 +#: dashboards/nova/containers/views.py:161 msgid "Unable to retrieve object." msgstr "" -#: dashboards/nova/containers/views.py:144 +#: dashboards/nova/containers/views.py:183 msgid "Unable to list containers." msgstr "" +#: dashboards/nova/containers/templates/containers/_copy.html:7 +#: dashboards/nova/containers/templates/containers/_copy.html:22 +#: dashboards/nova/containers/templates/containers/copy.html:3 +#: dashboards/nova/containers/templates/containers/copy.html:6 +msgid "Copy Object" +msgstr "" + +#: dashboards/nova/containers/templates/containers/_copy.html:17 +msgid "" +"Make a new copy of an existing object to store in this or another container. " +"You may also specify a path at which the new copy should live inside of the " +"selected container." +msgstr "" + +#: dashboards/nova/containers/templates/containers/_create.html:17 +msgid "" +"A container is a storage compartment for your data and provides a way for " +"you to organize your data. You can think of a container as a folder in " +"Windows ® or a directory in UNIX ®. The primary difference between a " +"container and these other file system concepts is that containers cannot be " +"nested. You can, however, create an unlimited number of containers within " +"your account. Data must be stored in a container so you must have at least " +"one container defined in your account prior to uploading data." +msgstr "" + +#: dashboards/nova/containers/templates/containers/_upload.html:8 +msgid "Upload Object To Container" +msgstr "" + +#: dashboards/nova/containers/templates/containers/_upload.html:18 +msgid "" +"An object is the basic storage entity and any optional metadata that " +"represents the files you store in the OpenStack Object Storage system. When " +"you upload data to OpenStack Object Storage, the data is stored as-is (no " +"compression or encryption) and consists of a location (container), the " +"object's name, and any metadata consisting of key/value pairs." +msgstr "" + +#: dashboards/nova/containers/templates/containers/upload.html:6 +msgid "Upload Objects" +msgstr "" + #: dashboards/nova/images_and_snapshots/panel.py:25 msgid "Images & Snapshots" msgstr "" @@ -603,94 +796,147 @@ msgid "Unable to retrieve volume snapshots." msgstr "" #: dashboards/nova/images_and_snapshots/images/forms.py:44 -#: dashboards/nova/templates/nova/images_and_snapshots/images/_detail_overview.html:48 -msgid "Kernel ID" +msgid "Image Location" msgstr "" -#: dashboards/nova/images_and_snapshots/images/forms.py:49 -#: dashboards/nova/templates/nova/images_and_snapshots/images/_detail_overview.html:52 -msgid "Ramdisk ID" +#: dashboards/nova/images_and_snapshots/images/forms.py:45 +msgid "An external (HTTP) URL where the image should be loaded from." msgstr "" -#: dashboards/nova/images_and_snapshots/images/forms.py:54 -#: dashboards/nova/templates/nova/images_and_snapshots/images/_detail_overview.html:44 -msgid "Architecture" +#: dashboards/nova/images_and_snapshots/images/forms.py:48 +#: dashboards/nova/images_and_snapshots/images/forms.py:135 +#: dashboards/nova/images_and_snapshots/images/tables.py:125 +msgid "Format" +msgstr "" + +#: dashboards/nova/images_and_snapshots/images/forms.py:52 +msgid "AKI - Amazon Kernel Image" +msgstr "" + +#: dashboards/nova/images_and_snapshots/images/forms.py:55 +msgid "AMI - Amazon Machine Image" msgstr "" #: dashboards/nova/images_and_snapshots/images/forms.py:58 -#: dashboards/nova/images_and_snapshots/images/tables.py:98 -#: dashboards/nova/templates/nova/images_and_snapshots/images/_detail_overview.html:32 -msgid "Container Format" +msgid "ARI - Amazon Ramdisk Image" msgstr "" -#: dashboards/nova/images_and_snapshots/images/forms.py:62 -#: dashboards/nova/templates/nova/images_and_snapshots/images/_detail_overview.html:34 -msgid "Disk Format" +#: dashboards/nova/images_and_snapshots/images/forms.py:61 +msgid "ISO - Optical Disk Image" msgstr "" -#: dashboards/nova/images_and_snapshots/images/forms.py:66 -#: dashboards/nova/images_and_snapshots/images/tables.py:94 -#: dashboards/nova/templates/nova/images_and_snapshots/images/_detail_overview.html:15 +#: dashboards/nova/images_and_snapshots/images/forms.py:63 +msgid "QCOW2 - QEMU Emulator" +msgstr "" + +#: dashboards/nova/images_and_snapshots/images/forms.py:70 +msgid "Minimum Disk (GB)" +msgstr "" + +#: dashboards/nova/images_and_snapshots/images/forms.py:71 +#: dashboards/nova/images_and_snapshots/images/forms.py:78 +msgid "" +"The minimum disk size required to boot the image. If unspecified, this value " +"defaults to 0 (no minimum)." +msgstr "" + +#: dashboards/nova/images_and_snapshots/images/forms.py:77 +msgid "Minimum Ram (MB)" +msgstr "" + +#: dashboards/nova/images_and_snapshots/images/forms.py:84 +#: dashboards/nova/images_and_snapshots/images/forms.py:139 +#: dashboards/nova/images_and_snapshots/images/tables.py:122 +#: dashboards/nova/images_and_snapshots/templates/images_and_snapshots/images/_detail_overview.html:15 msgid "Public" msgstr "" -#: dashboards/nova/images_and_snapshots/images/forms.py:72 +#: dashboards/nova/images_and_snapshots/images/forms.py:108 +#, python-format +msgid "Your image %s has been queued for creation." +msgstr "" + +#: dashboards/nova/images_and_snapshots/images/forms.py:111 +msgid "Unable to create new image." +msgstr "" + +#: dashboards/nova/images_and_snapshots/images/forms.py:121 +#: dashboards/nova/images_and_snapshots/templates/images_and_snapshots/images/_detail_overview.html:48 +msgid "Kernel ID" +msgstr "" + +#: dashboards/nova/images_and_snapshots/images/forms.py:126 +#: dashboards/nova/images_and_snapshots/templates/images_and_snapshots/images/_detail_overview.html:52 +msgid "Ramdisk ID" +msgstr "" + +#: dashboards/nova/images_and_snapshots/images/forms.py:131 +#: dashboards/nova/images_and_snapshots/templates/images_and_snapshots/images/_detail_overview.html:44 +msgid "Architecture" +msgstr "" + +#: dashboards/nova/images_and_snapshots/images/forms.py:144 #, python-format msgid "Unable to update image \"%s\"." msgstr "" -#: dashboards/nova/images_and_snapshots/images/forms.py:88 +#: dashboards/nova/images_and_snapshots/images/forms.py:163 msgid "Image was successfully updated." msgstr "" #: dashboards/nova/images_and_snapshots/images/tables.py:33 #: dashboards/nova/images_and_snapshots/snapshots/tables.py:32 -#: dashboards/nova/instances_and_volumes/instances/workflows.py:377 +#: dashboards/nova/instances/workflows.py:394 msgid "Launch" msgstr "" #: dashboards/nova/images_and_snapshots/images/tables.py:45 -#: dashboards/nova/instances_and_volumes/instances/workflows.py:161 -#: dashboards/nova/instances_and_volumes/instances/workflows.py:166 +#: dashboards/nova/images_and_snapshots/images/tables.py:81 +#: dashboards/nova/instances/workflows.py:162 +#: dashboards/nova/instances/workflows.py:167 msgid "Image" msgstr "" #: dashboards/nova/images_and_snapshots/images/tables.py:46 -#: dashboards/nova/images_and_snapshots/images/tables.py:102 +#: dashboards/nova/images_and_snapshots/images/tables.py:131 #: dashboards/syspanel/images/panel.py:28 -#: dashboards/syspanel/images/tables.py:38 -#: dashboards/syspanel/templates/syspanel/images/index.html:3 -#: dashboards/syspanel/templates/syspanel/images/index.html:6 +#: dashboards/syspanel/images/tables.py:43 +#: dashboards/syspanel/images/templates/images/index.html:3 +#: dashboards/syspanel/images/templates/images/index.html:6 msgid "Images" msgstr "" #: dashboards/nova/images_and_snapshots/images/tables.py:60 +#: dashboards/nova/images_and_snapshots/templates/images_and_snapshots/images/_create.html:31 +msgid "Create Image" +msgstr "" + +#: dashboards/nova/images_and_snapshots/images/tables.py:67 #: dashboards/syspanel/users/tables.py:30 msgid "Edit" msgstr "" -#: dashboards/nova/images_and_snapshots/images/tables.py:87 -#: dashboards/nova/templates/nova/instances_and_volumes/instances/_detail_overview.html:72 +#: dashboards/nova/images_and_snapshots/images/tables.py:112 +#: dashboards/nova/instances/templates/instances/_detail_overview.html:74 +#: dashboards/syspanel/images/tables.py:39 msgid "Image Name" msgstr "" -#: dashboards/nova/images_and_snapshots/images/tables.py:92 -#: dashboards/nova/instances_and_volumes/instances/tables.py:246 -#: dashboards/nova/instances_and_volumes/volumes/tables.py:117 -#: dashboards/nova/templates/nova/images_and_snapshots/images/_detail_overview.html:13 -#: dashboards/nova/templates/nova/instances_and_volumes/instances/_detail_overview.html:13 -#: dashboards/nova/templates/nova/instances_and_volumes/volumes/_detail_overview.html:17 +#: dashboards/nova/images_and_snapshots/images/tables.py:118 +#: dashboards/nova/images_and_snapshots/templates/images_and_snapshots/images/_detail_overview.html:13 +#: dashboards/nova/instances/tables.py:275 +#: dashboards/nova/instances/templates/instances/_detail_overview.html:13 +#: dashboards/nova/volumes/tables.py:143 +#: dashboards/nova/volumes/templates/volumes/_detail_overview.html:17 #: dashboards/syspanel/instances/tables.py:80 msgid "Status" msgstr "" #: dashboards/nova/images_and_snapshots/images/tabs.py:26 -#: dashboards/nova/instances_and_volumes/instances/tabs.py:25 -#: dashboards/nova/instances_and_volumes/volumes/tabs.py:26 -#: dashboards/nova/overview/panel.py:28 -#: dashboards/nova/templates/nova/overview/usage.html:6 -#: dashboards/syspanel/overview/panel.py:28 -#: dashboards/syspanel/templates/syspanel/overview/usage.html:6 +#: dashboards/nova/instances/tabs.py:25 dashboards/nova/overview/panel.py:28 +#: dashboards/nova/overview/templates/overview/usage.html:6 +#: dashboards/nova/volumes/tabs.py:26 dashboards/syspanel/overview/panel.py:28 +#: dashboards/syspanel/overview/templates/overview/usage.html:6 msgid "Overview" msgstr "" @@ -698,12 +944,16 @@ msgstr "" msgid "Unable to retrieve image details." msgstr "" -#: dashboards/nova/images_and_snapshots/images/views.py:50 +#: dashboards/nova/images_and_snapshots/images/views.py:57 msgid "Unable to retrieve image." msgstr "" +#: dashboards/nova/images_and_snapshots/snapshots/forms.py:38 +msgid "Instance ID" +msgstr "" + #: dashboards/nova/images_and_snapshots/snapshots/forms.py:41 -#: dashboards/nova/instances_and_volumes/volumes/forms.py:101 +#: dashboards/nova/volumes/forms.py:123 msgid "Snapshot Name" msgstr "" @@ -717,9 +967,9 @@ msgid "Unable to create snapshot." msgstr "" #: dashboards/nova/images_and_snapshots/snapshots/tables.py:47 -#: dashboards/nova/instances_and_volumes/instances/tables.py:158 -#: dashboards/nova/instances_and_volumes/instances/workflows.py:101 -#: dashboards/nova/instances_and_volumes/instances/workflows.py:162 +#: dashboards/nova/instances/tables.py:162 +#: dashboards/nova/instances/workflows.py:101 +#: dashboards/nova/instances/workflows.py:163 msgid "Snapshot" msgstr "" @@ -740,905 +990,947 @@ msgstr "" msgid "To create a snapshot, the instance must be in the \"%s\" state." msgstr "" +#: dashboards/nova/images_and_snapshots/templates/images_and_snapshots/index.html:3 +#: dashboards/nova/images_and_snapshots/templates/images_and_snapshots/index.html:6 +msgid "Images & Snapshots" +msgstr "" + +#: dashboards/nova/images_and_snapshots/templates/images_and_snapshots/images/_create.html:7 +#: dashboards/nova/images_and_snapshots/templates/images_and_snapshots/images/create.html:3 +#: dashboards/nova/images_and_snapshots/templates/images_and_snapshots/images/create.html:6 +msgid "Create An Image" +msgstr "" + +#: dashboards/nova/images_and_snapshots/templates/images_and_snapshots/images/_create.html:18 +msgid "Specify an image to upload to the Image Service." +msgstr "" + +#: dashboards/nova/images_and_snapshots/templates/images_and_snapshots/images/_create.html:21 +msgid "" +"Currently only images available via an HTTP URL are supported. The image " +"location must be accessible to the Image Service. Compressed image binaries " +"are supported (.zip and .tar.gz.)" +msgstr "" + +#: dashboards/nova/images_and_snapshots/templates/images_and_snapshots/images/_create.html:24 +msgid "Please note: " +msgstr "" + +#: dashboards/nova/images_and_snapshots/templates/images_and_snapshots/images/_create.html:25 +msgid "" +"The Image Location field MUST be a valid and direct URL to the image binary. " +"URLs that redirect or serve error pages will results in unusable images." +msgstr "" + +#: dashboards/nova/images_and_snapshots/templates/images_and_snapshots/images/_detail_overview.html:3 +msgid "Image Overview" +msgstr "" + +#: dashboards/nova/images_and_snapshots/templates/images_and_snapshots/images/_detail_overview.html:6 +#: dashboards/nova/instances/templates/instances/_detail_overview.html:6 +#: dashboards/nova/volumes/templates/volumes/_detail_overview.html:6 +msgid "Info" +msgstr "" + +#: dashboards/nova/images_and_snapshots/templates/images_and_snapshots/images/_detail_overview.html:11 +#: dashboards/nova/instances/templates/instances/_detail_overview.html:11 +#: dashboards/nova/volumes/templates/volumes/_detail_overview.html:11 +#: dashboards/syspanel/projects/forms.py:83 +#: dashboards/syspanel/users/forms.py:113 +msgid "ID" +msgstr "" + +#: dashboards/nova/images_and_snapshots/templates/images_and_snapshots/images/_detail_overview.html:17 +msgid "Checksum" +msgstr "" + +#: dashboards/nova/images_and_snapshots/templates/images_and_snapshots/images/_detail_overview.html:19 +#: dashboards/nova/volumes/templates/volumes/_detail_overview.html:28 +msgid "Created" +msgstr "" + +#: dashboards/nova/images_and_snapshots/templates/images_and_snapshots/images/_detail_overview.html:21 +msgid "Updated" +msgstr "" + +#: dashboards/nova/images_and_snapshots/templates/images_and_snapshots/images/_detail_overview.html:27 +#: dashboards/nova/instances/templates/instances/_detail_overview.html:19 +#: dashboards/nova/volumes/templates/volumes/_detail_overview.html:23 +msgid "Specs" +msgstr "" + +#: dashboards/nova/images_and_snapshots/templates/images_and_snapshots/images/_detail_overview.html:32 +msgid "Container Format" +msgstr "" + +#: dashboards/nova/images_and_snapshots/templates/images_and_snapshots/images/_detail_overview.html:34 +msgid "Disk Format" +msgstr "" + +#: dashboards/nova/images_and_snapshots/templates/images_and_snapshots/images/_detail_overview.html:40 +msgid "Custom Properties" +msgstr "" + +#: dashboards/nova/images_and_snapshots/templates/images_and_snapshots/images/_detail_overview.html:56 +msgid "Euca2ools state" +msgstr "" + +#: dashboards/nova/images_and_snapshots/templates/images_and_snapshots/images/_detail_overview.html:60 +#: dashboards/syspanel/projects/tables.py:77 +msgid "Project ID" +msgstr "" + +#: dashboards/nova/images_and_snapshots/templates/images_and_snapshots/images/_detail_overview.html:64 +msgid "Image Type" +msgstr "" + +#: dashboards/nova/images_and_snapshots/templates/images_and_snapshots/images/_update.html:7 +#: dashboards/nova/images_and_snapshots/templates/images_and_snapshots/images/_update.html:22 +#: dashboards/nova/images_and_snapshots/templates/images_and_snapshots/images/update.html:3 +#: dashboards/nova/images_and_snapshots/templates/images_and_snapshots/images/update.html:6 +#: dashboards/syspanel/images/templates/images/_update.html:8 +#: dashboards/syspanel/images/templates/images/_update.html:23 +#: dashboards/syspanel/images/templates/images/update.html:4 +#: dashboards/syspanel/images/templates/images/update.html:7 +msgid "Update Image" +msgstr "" + +#: dashboards/nova/images_and_snapshots/templates/images_and_snapshots/images/_update.html:17 +#: dashboards/syspanel/images/templates/images/_update.html:18 +msgid "From here you can modify different properties of an image." +msgstr "" + +#: dashboards/nova/images_and_snapshots/templates/images_and_snapshots/images/detail.html:4 +msgid "Image Detail " +msgstr "" + +#: dashboards/nova/images_and_snapshots/templates/images_and_snapshots/snapshots/_create.html:8 +#: dashboards/nova/images_and_snapshots/templates/images_and_snapshots/snapshots/_create.html:23 +#: dashboards/nova/images_and_snapshots/templates/images_and_snapshots/snapshots/create.html:3 +#: dashboards/nova/volumes/tables.py:67 +msgid "Create Snapshot" +msgstr "" + +#: dashboards/nova/images_and_snapshots/templates/images_and_snapshots/snapshots/_create.html:18 +msgid "Snapshots preserve the disk state of a running instance." +msgstr "" + +#: dashboards/nova/images_and_snapshots/templates/images_and_snapshots/snapshots/create.html:6 +msgid "Create a Snapshot" +msgstr "" + #: dashboards/nova/images_and_snapshots/volume_snapshots/tables.py:30 -#: dashboards/nova/instances_and_volumes/instances/workflows.py:71 +#: dashboards/nova/instances/workflows.py:70 msgid "Volume Snapshot" msgstr "" #: dashboards/nova/images_and_snapshots/volume_snapshots/tables.py:31 -#: dashboards/nova/images_and_snapshots/volume_snapshots/tables.py:42 +#: dashboards/nova/images_and_snapshots/volume_snapshots/tables.py:52 msgid "Volume Snapshots" msgstr "" -#: dashboards/nova/images_and_snapshots/volume_snapshots/tables.py:38 +#: dashboards/nova/images_and_snapshots/volume_snapshots/tables.py:48 msgid "Volume ID" msgstr "" -#: dashboards/nova/instances_and_volumes/panel.py:24 -msgid "Instances & Volumes" -msgstr "" - -#: dashboards/nova/instances_and_volumes/views.py:52 -msgid "Unable to retrieve instances." -msgstr "" - -#: dashboards/nova/instances_and_volumes/views.py:62 -#: dashboards/syspanel/instances/views.py:65 -msgid "Unable to retrieve instance size information." -msgstr "" - -#: dashboards/nova/instances_and_volumes/views.py:78 -#, python-format -msgid "Unable to fetch volumes: %s" -msgstr "" - -#: dashboards/nova/instances_and_volumes/instances/forms.py:44 +#: dashboards/nova/instances/forms.py:44 #, python-format msgid "Instance \"%s\" updated." msgstr "" -#: dashboards/nova/instances_and_volumes/instances/forms.py:46 +#: dashboards/nova/instances/forms.py:46 msgid "Unable to update instance." msgstr "" -#: dashboards/nova/instances_and_volumes/instances/tables.py:56 -msgid "Terminate" -msgstr "" - -#: dashboards/nova/instances_and_volumes/instances/tables.py:57 -msgid "Terminated" -msgstr "" - -#: dashboards/nova/instances_and_volumes/instances/tables.py:59 -#: dashboards/nova/instances_and_volumes/instances/tables.py:76 -#: dashboards/nova/instances_and_volumes/instances/tables.py:91 -#: dashboards/nova/instances_and_volumes/instances/tables.py:119 -#: dashboards/nova/instances_and_volumes/instances/tables.py:261 +#: dashboards/nova/instances/panel.py:24 +#: dashboards/nova/instances/tables.py:63 +#: dashboards/nova/instances/tables.py:80 +#: dashboards/nova/instances/tables.py:95 +#: dashboards/nova/instances/tables.py:123 +#: dashboards/nova/instances/tables.py:290 +#: dashboards/nova/instances/templates/instances/index.html:3 +#: dashboards/nova/instances/templates/instances/index.html:6 #: dashboards/syspanel/instances/panel.py:28 #: dashboards/syspanel/instances/tables.py:95 +#: dashboards/syspanel/instances/templates/instances/index.html:3 #: dashboards/syspanel/projects/forms.py:115 -#: dashboards/syspanel/templates/syspanel/instances/index.html:3 msgid "Instances" msgstr "" -#: dashboards/nova/instances_and_volumes/instances/tables.py:73 +#: dashboards/nova/instances/tables.py:60 +msgid "Terminate" +msgstr "" + +#: dashboards/nova/instances/tables.py:61 +msgid "Scheduled termination of" +msgstr "" + +#: dashboards/nova/instances/tables.py:77 msgid "Reboot" msgstr "" -#: dashboards/nova/instances_and_volumes/instances/tables.py:74 +#: dashboards/nova/instances/tables.py:78 msgid "Rebooted" msgstr "" -#: dashboards/nova/instances_and_volumes/instances/tables.py:88 +#: dashboards/nova/instances/tables.py:92 msgid "Pause" msgstr "" -#: dashboards/nova/instances_and_volumes/instances/tables.py:88 +#: dashboards/nova/instances/tables.py:92 msgid "Unpause" msgstr "" -#: dashboards/nova/instances_and_volumes/instances/tables.py:89 +#: dashboards/nova/instances/tables.py:93 msgid "Paused" msgstr "" -#: dashboards/nova/instances_and_volumes/instances/tables.py:89 +#: dashboards/nova/instances/tables.py:93 msgid "Unpaused" msgstr "" -#: dashboards/nova/instances_and_volumes/instances/tables.py:116 +#: dashboards/nova/instances/tables.py:120 msgid "Suspend" msgstr "" -#: dashboards/nova/instances_and_volumes/instances/tables.py:116 +#: dashboards/nova/instances/tables.py:120 msgid "Resume" msgstr "" -#: dashboards/nova/instances_and_volumes/instances/tables.py:117 +#: dashboards/nova/instances/tables.py:121 msgid "Suspended" msgstr "" -#: dashboards/nova/instances_and_volumes/instances/tables.py:117 +#: dashboards/nova/instances/tables.py:121 msgid "Resumed" msgstr "" -#: dashboards/nova/instances_and_volumes/instances/tables.py:144 -#: dashboards/nova/instances_and_volumes/instances/workflows.py:376 -#: dashboards/nova/templates/nova/instances_and_volumes/instances/launch.html:3 -#: dashboards/nova/templates/nova/instances_and_volumes/instances/launch.html:6 +#: dashboards/nova/instances/tables.py:148 +#: dashboards/nova/instances/workflows.py:393 +#: dashboards/nova/instances/templates/instances/launch.html:3 +#: dashboards/nova/instances/templates/instances/launch.html:6 msgid "Launch Instance" msgstr "" -#: dashboards/nova/instances_and_volumes/instances/tables.py:151 -#: dashboards/nova/templates/nova/instances_and_volumes/instances/_update.html:7 +#: dashboards/nova/instances/tables.py:155 +#: dashboards/nova/instances/templates/instances/_update.html:7 msgid "Edit Instance" msgstr "" -#: dashboards/nova/instances_and_volumes/instances/tables.py:168 +#: dashboards/nova/instances/tables.py:172 msgid "VNC Console" msgstr "" -#: dashboards/nova/instances_and_volumes/instances/tables.py:183 +#: dashboards/nova/instances/tables.py:187 msgid "View Log" msgstr "" -#: dashboards/nova/instances_and_volumes/instances/tables.py:213 +#: dashboards/nova/instances/tables.py:232 #, python-format -msgid "%(RAM)s RAM | %(VCPU)s VCPU | %(disk)s Disk" +msgid "%(name)s | %(RAM)s RAM | %(VCPU)s VCPU | %(disk)s Disk" msgstr "" -#: dashboards/nova/instances_and_volumes/instances/tables.py:241 -#: dashboards/syspanel/instances/tables.py:73 usage/tables.py:47 +#: dashboards/nova/instances/tables.py:239 +#: dashboards/nova/instances/tables.py:246 +msgid "Not available" +msgstr "" + +#: dashboards/nova/instances/tables.py:269 +#: dashboards/syspanel/instances/tables.py:73 usage/tables.py:56 msgid "Instance Name" msgstr "" -#: dashboards/nova/instances_and_volumes/instances/tables.py:250 +#: dashboards/nova/instances/tables.py:279 #: dashboards/syspanel/instances/tables.py:84 msgid "Task" msgstr "" -#: dashboards/nova/instances_and_volumes/instances/tables.py:257 +#: dashboards/nova/instances/tables.py:286 #: dashboards/syspanel/instances/tables.py:91 msgid "Power State" msgstr "" -#: dashboards/nova/instances_and_volumes/instances/tabs.py:35 +#: dashboards/nova/instances/tabs.py:35 msgid "Log" msgstr "" -#: dashboards/nova/instances_and_volumes/instances/tabs.py:47 -#: dashboards/nova/instances_and_volumes/instances/views.py:63 +#: dashboards/nova/instances/tabs.py:47 dashboards/nova/instances/views.py:105 #, python-format msgid "Unable to get log for instance \"%s\"." msgstr "" -#: dashboards/nova/instances_and_volumes/instances/tabs.py:54 +#: dashboards/nova/instances/tabs.py:54 msgid "VNC" msgstr "" -#: dashboards/nova/instances_and_volumes/instances/tabs.py:69 -#: dashboards/nova/instances_and_volumes/instances/views.py:79 +#: dashboards/nova/instances/tabs.py:69 dashboards/nova/instances/views.py:121 #, python-format msgid "Unable to get VNC console for instance \"%s\"." msgstr "" -#: dashboards/nova/instances_and_volumes/instances/views.py:95 +#: dashboards/nova/instances/views.py:58 +msgid "Unable to retrieve instances." +msgstr "" + +#: dashboards/nova/instances/views.py:81 +#: dashboards/syspanel/instances/views.py:89 +msgid "Unable to retrieve instance size information." +msgstr "" + +#: dashboards/nova/instances/views.py:137 msgid "Unable to retrieve instance details." msgstr "" -#: dashboards/nova/instances_and_volumes/instances/views.py:130 +#: dashboards/nova/instances/views.py:172 #, python-format msgid "Unable to retrieve details for instance \"%s\"." msgstr "" -#: dashboards/nova/instances_and_volumes/instances/workflows.py:34 -#: dashboards/syspanel/projects/tables.py:91 +#: dashboards/nova/instances/workflows.py:33 +#: dashboards/syspanel/projects/tables.py:92 #: dashboards/syspanel/users/tables.py:39 #: dashboards/syspanel/users/tables.py:73 tests/workflows_tests.py:40 msgid "User" msgstr "" -#: dashboards/nova/instances_and_volumes/instances/workflows.py:48 +#: dashboards/nova/instances/workflows.py:47 msgid "Project & User" msgstr "" -#: dashboards/nova/instances_and_volumes/instances/workflows.py:50 +#: dashboards/nova/instances/workflows.py:49 msgid "" "Admin users may optionally select the project and user for whom the instance " "should be created." msgstr "" -#: dashboards/nova/instances_and_volumes/instances/workflows.py:61 +#: dashboards/nova/instances/workflows.py:60 msgid "Don't boot from a volume." msgstr "" -#: dashboards/nova/instances_and_volumes/instances/workflows.py:62 +#: dashboards/nova/instances/workflows.py:61 msgid "Boot from volume." msgstr "" -#: dashboards/nova/instances_and_volumes/instances/workflows.py:63 +#: dashboards/nova/instances/workflows.py:62 msgid "Boot from volume snapshot (creates a new volume)." msgstr "" -#: dashboards/nova/instances_and_volumes/instances/workflows.py:67 -#: dashboards/nova/instances_and_volumes/instances/workflows.py:85 +#: dashboards/nova/instances/workflows.py:66 +#: dashboards/nova/instances/workflows.py:84 msgid "Volume Options" msgstr "" -#: dashboards/nova/instances_and_volumes/instances/workflows.py:70 -#: dashboards/nova/instances_and_volumes/instances/workflows.py:104 -#: dashboards/nova/instances_and_volumes/volumes/tables.py:35 -#: dashboards/nova/instances_and_volumes/volumes/tables.py:145 -#: dashboards/nova/templates/nova/instances_and_volumes/instances/_detail_overview.html:83 +#: dashboards/nova/instances/workflows.py:69 +#: dashboards/nova/instances/workflows.py:104 +#: dashboards/nova/instances/templates/instances/_detail_overview.html:93 +#: dashboards/nova/volumes/tables.py:36 dashboards/nova/volumes/tables.py:171 msgid "Volume" msgstr "" -#: dashboards/nova/instances_and_volumes/instances/workflows.py:73 +#: dashboards/nova/instances/workflows.py:72 msgid "Device Name" msgstr "" -#: dashboards/nova/instances_and_volumes/instances/workflows.py:76 +#: dashboards/nova/instances/workflows.py:75 msgid "Volume mount point (e.g. 'vda' mounts at '/dev/vda')." msgstr "" -#: dashboards/nova/instances_and_volumes/instances/workflows.py:78 +#: dashboards/nova/instances/workflows.py:77 msgid "Delete on Terminate" msgstr "" -#: dashboards/nova/instances_and_volumes/instances/workflows.py:81 +#: dashboards/nova/instances/workflows.py:80 msgid "Delete volume on instance terminate" msgstr "" -#: dashboards/nova/instances_and_volumes/instances/workflows.py:111 +#: dashboards/nova/instances/workflows.py:111 msgid "Select Volume" msgstr "" -#: dashboards/nova/instances_and_volumes/instances/workflows.py:119 -#: dashboards/nova/instances_and_volumes/instances/workflows.py:132 -msgid "Unable to retrieve list of volumes" +#: dashboards/nova/instances/workflows.py:119 +msgid "Unable to retrieve list of volumes." msgstr "" -#: dashboards/nova/instances_and_volumes/instances/workflows.py:123 +#: dashboards/nova/instances/workflows.py:123 msgid "Select Volume Snapshot" msgstr "" -#: dashboards/nova/instances_and_volumes/instances/workflows.py:164 +#: dashboards/nova/instances/workflows.py:132 +msgid "Unable to retrieve list of volume snapshots." +msgstr "" + +#: dashboards/nova/instances/workflows.py:165 msgid "Instance Source" msgstr "" -#: dashboards/nova/instances_and_volumes/instances/workflows.py:167 +#: dashboards/nova/instances/workflows.py:168 msgid "Instance Snapshot" msgstr "" -#: dashboards/nova/instances_and_volumes/instances/workflows.py:169 +#: dashboards/nova/instances/workflows.py:170 msgid "Server Name" msgstr "" -#: dashboards/nova/instances_and_volumes/instances/workflows.py:170 +#: dashboards/nova/instances/workflows.py:171 +#: dashboards/nova/instances/templates/instances/_detail_overview.html:22 #: dashboards/syspanel/flavors/tables.py:13 msgid "Flavor" msgstr "" -#: dashboards/nova/instances_and_volumes/instances/workflows.py:171 +#: dashboards/nova/instances/workflows.py:172 msgid "Size of image to launch." msgstr "" -#: dashboards/nova/instances_and_volumes/instances/workflows.py:172 -#: dashboards/nova/templates/nova/instances_and_volumes/instances/_launch_details_help.html:21 +#: dashboards/nova/instances/workflows.py:173 msgid "Instance Count" msgstr "" -#: dashboards/nova/instances_and_volumes/instances/workflows.py:175 +#: dashboards/nova/instances/workflows.py:176 msgid "Number of instances to launch." msgstr "" -#: dashboards/nova/instances_and_volumes/instances/workflows.py:178 +#: dashboards/nova/instances/workflows.py:179 msgid "Details" msgstr "" -#: dashboards/nova/instances_and_volumes/instances/workflows.py:197 +#: dashboards/nova/instances/workflows.py:198 msgid "" "Launching multiple instances is only supported for images and instance " "snapshots." msgstr "" -#: dashboards/nova/instances_and_volumes/instances/workflows.py:240 +#: dashboards/nova/instances/workflows.py:214 +msgid "Unable to retrieve public images." +msgstr "" + +#: dashboards/nova/instances/workflows.py:228 +msgid "Unable to retrieve images for the current project." +msgstr "" + +#: dashboards/nova/instances/workflows.py:251 msgid "Select Image" msgstr "" -#: dashboards/nova/instances_and_volumes/instances/workflows.py:242 +#: dashboards/nova/instances/workflows.py:253 msgid "No images available." msgstr "" -#: dashboards/nova/instances_and_volumes/instances/workflows.py:251 +#: dashboards/nova/instances/workflows.py:262 msgid "Select Instance Snapshot" msgstr "" -#: dashboards/nova/instances_and_volumes/instances/workflows.py:253 +#: dashboards/nova/instances/workflows.py:264 msgid "No snapshots available." msgstr "" -#: dashboards/nova/instances_and_volumes/instances/workflows.py:264 +#: dashboards/nova/instances/workflows.py:275 msgid "Unable to retrieve instance flavors." msgstr "" -#: dashboards/nova/instances_and_volumes/instances/workflows.py:301 +#: dashboards/nova/instances/workflows.py:288 +msgid "Unable to retrieve quota information." +msgstr "" + +#: dashboards/nova/instances/workflows.py:318 msgid "Which keypair to use for authentication." msgstr "" -#: dashboards/nova/instances_and_volumes/instances/workflows.py:307 +#: dashboards/nova/instances/workflows.py:324 msgid "Launch instance in these security groups." msgstr "" -#: dashboards/nova/instances_and_volumes/instances/workflows.py:312 +#: dashboards/nova/instances/workflows.py:329 msgid "" "Control access to your instance via keypairs, security groups, and other " "mechanisms." msgstr "" -#: dashboards/nova/instances_and_volumes/instances/workflows.py:322 +#: dashboards/nova/instances/workflows.py:339 msgid "Unable to retrieve keypairs." msgstr "" -#: dashboards/nova/instances_and_volumes/instances/workflows.py:324 +#: dashboards/nova/instances/workflows.py:341 msgid "Select a keypair" msgstr "" -#: dashboards/nova/instances_and_volumes/instances/workflows.py:326 +#: dashboards/nova/instances/workflows.py:343 msgid "No keypairs available." msgstr "" -#: dashboards/nova/instances_and_volumes/instances/workflows.py:335 +#: dashboards/nova/instances/workflows.py:352 msgid "Unable to retrieve list of security groups" msgstr "" -#: dashboards/nova/instances_and_volumes/instances/workflows.py:355 +#: dashboards/nova/instances/workflows.py:372 msgid "Customization Script" msgstr "" -#: dashboards/nova/instances_and_volumes/instances/workflows.py:357 +#: dashboards/nova/instances/workflows.py:374 msgid "" "A script or set of commands to be executed after the instance has been built " "(max 16kb)." msgstr "" -#: dashboards/nova/instances_and_volumes/instances/workflows.py:364 +#: dashboards/nova/instances/workflows.py:381 msgid "Post-Creation" msgstr "" -#: dashboards/nova/instances_and_volumes/instances/workflows.py:378 +#: dashboards/nova/instances/workflows.py:395 #, python-format -msgid "Instance \"%s\" launched." +msgid "Launched %(count)s named \"%(name)s\"." msgstr "" -#: dashboards/nova/instances_and_volumes/instances/workflows.py:379 +#: dashboards/nova/instances/workflows.py:396 #, python-format -msgid "Unable to launch instance \"%s\"." +msgid "Unable to launch %(count)s named \"%(name)s\"." msgstr "" -#: dashboards/nova/instances_and_volumes/volumes/forms.py:42 +#: dashboards/nova/instances/workflows.py:408 #, python-format -msgid "Error Creating Volume: %s" +msgid "%s instances" msgstr "" -#: dashboards/nova/instances_and_volumes/volumes/forms.py:48 -msgid "Select an instance to attach to." +#: dashboards/nova/instances/workflows.py:411 +msgid "instance" msgstr "" -#: dashboards/nova/instances_and_volumes/volumes/forms.py:86 -#, python-format -msgid "Attaching volume %(vol)s to instance %(inst)s at %(dev)s" -msgstr "" - -#: dashboards/nova/instances_and_volumes/volumes/forms.py:95 -#, python-format -msgid "Error attaching volume: %s" -msgstr "" - -#: dashboards/nova/instances_and_volumes/volumes/forms.py:120 -#, python-format -msgid "Creating volume snapshot \"%s\"" -msgstr "" - -#: dashboards/nova/instances_and_volumes/volumes/forms.py:125 -#, python-format -msgid "Error Creating Volume Snapshot: %(exc)s" -msgstr "" - -#: dashboards/nova/instances_and_volumes/volumes/tables.py:36 -#: dashboards/nova/instances_and_volumes/volumes/tables.py:134 -#: dashboards/nova/instances_and_volumes/volumes/tables.py:146 -#: dashboards/nova/templates/nova/instances_and_volumes/instances/_detail_overview.html:78 -#: dashboards/syspanel/projects/forms.py:116 -msgid "Volumes" -msgstr "" - -#: dashboards/nova/instances_and_volumes/volumes/tables.py:49 -#: dashboards/nova/templates/nova/instances_and_volumes/volumes/_create.html:8 -#: dashboards/nova/templates/nova/instances_and_volumes/volumes/_create.html:23 -msgid "Create Volume" -msgstr "" - -#: dashboards/nova/instances_and_volumes/volumes/tables.py:56 -msgid "Edit Attachments" -msgstr "" - -#: dashboards/nova/instances_and_volumes/volumes/tables.py:66 -#: dashboards/nova/templates/nova/images_and_snapshots/snapshots/_create.html:8 -#: dashboards/nova/templates/nova/images_and_snapshots/snapshots/_create.html:23 -#: dashboards/nova/templates/nova/images_and_snapshots/snapshots/create.html:3 -msgid "Create Snapshot" -msgstr "" - -#: dashboards/nova/instances_and_volumes/volumes/tables.py:83 -#: templatetags/sizeformat.py:58 -#, python-format -msgid "%s GB" -msgstr "" - -#: dashboards/nova/instances_and_volumes/volumes/tables.py:130 -#: dashboards/nova/templates/nova/instances_and_volumes/volumes/_detail_overview.html:34 -msgid "Attachments" -msgstr "" - -#: dashboards/nova/instances_and_volumes/volumes/tables.py:143 -msgid "Detach" -msgstr "" - -#: dashboards/nova/instances_and_volumes/volumes/tables.py:144 -msgid "Detached" -msgstr "" - -#: dashboards/nova/instances_and_volumes/volumes/tabs.py:41 -msgid "Unable to retrieve volume details." -msgstr "" - -#: dashboards/nova/instances_and_volumes/volumes/views.py:71 -#: dashboards/nova/instances_and_volumes/volumes/views.py:81 -msgid "Unable to retrieve volume information." -msgstr "" - -#: dashboards/nova/templates/nova/access_and_security/index.html:6 -msgid "Access & Security" -msgstr "" - -#: dashboards/nova/templates/nova/access_and_security/floating_ips/_allocate.html:8 -#: dashboards/nova/templates/nova/access_and_security/floating_ips/allocate.html:3 -msgid "Allocate Floating IP" -msgstr "" - -#: dashboards/nova/templates/nova/access_and_security/floating_ips/_allocate.html:17 -#: dashboards/nova/templates/nova/access_and_security/floating_ips/_associate.html:16 -#: dashboards/nova/templates/nova/images_and_snapshots/images/_update.html:16 -#: dashboards/nova/templates/nova/images_and_snapshots/snapshots/_create.html:17 -#: dashboards/nova/templates/nova/instances_and_volumes/instances/_update.html:16 -#: dashboards/settings/templates/settings/ec2/download_form.html:17 -#: dashboards/settings/templates/settings/project/_openrc.html:17 -#: dashboards/settings/templates/settings/user/_language.html:30 -msgid "Description:" -msgstr "" - -#: dashboards/nova/templates/nova/access_and_security/floating_ips/_allocate.html:18 -msgid "Allocate a floating IP from a given floating ip pool." -msgstr "" - -#: dashboards/nova/templates/nova/access_and_security/floating_ips/_allocate.html:20 -#: dashboards/nova/templates/nova/instances_and_volumes/instances/_launch_details_help.html:19 -msgid "Project Quotas" -msgstr "" - -#: dashboards/nova/templates/nova/access_and_security/floating_ips/_allocate.html:31 -msgid "Allocate IP" -msgstr "" - -#: dashboards/nova/templates/nova/access_and_security/floating_ips/_allocate.html:32 -#: dashboards/nova/templates/nova/access_and_security/floating_ips/_associate.html:23 -#: dashboards/nova/templates/nova/access_and_security/keypairs/_create.html:24 -#: dashboards/nova/templates/nova/access_and_security/keypairs/_import.html:24 -#: dashboards/nova/templates/nova/access_and_security/security_groups/_create.html:24 -#: dashboards/nova/templates/nova/access_and_security/security_groups/_edit_rules.html:20 -#: dashboards/nova/templates/nova/containers/_create.html:23 -#: dashboards/nova/templates/nova/images_and_snapshots/images/_update.html:23 -#: dashboards/nova/templates/nova/images_and_snapshots/snapshots/_create.html:24 -#: dashboards/nova/templates/nova/instances_and_volumes/instances/_update.html:23 -#: dashboards/nova/templates/nova/instances_and_volumes/volumes/_attach.html:20 -#: dashboards/nova/templates/nova/instances_and_volumes/volumes/_create.html:24 -#: dashboards/nova/templates/nova/instances_and_volumes/volumes/_create_snapshot.html:24 -#: dashboards/nova/templates/nova/objects/_copy.html:23 -#: dashboards/nova/templates/nova/objects/_upload.html:24 -#: dashboards/settings/templates/settings/ec2/download_form.html:24 -#: dashboards/settings/templates/settings/project/_openrc.html:24 -#: dashboards/settings/templates/settings/user/_language.html:37 -#: dashboards/syspanel/templates/syspanel/flavors/_create.html:24 -#: dashboards/syspanel/templates/syspanel/images/_update.html:24 -#: dashboards/syspanel/templates/syspanel/projects/_add_user.html:24 -#: dashboards/syspanel/templates/syspanel/projects/_create.html:24 -#: dashboards/syspanel/templates/syspanel/projects/_quotas.html:23 -#: dashboards/syspanel/templates/syspanel/projects/_update.html:24 -#: dashboards/syspanel/templates/syspanel/users/_create.html:23 -#: dashboards/syspanel/templates/syspanel/users/_update.html:23 -#: templates/horizon/common/_workflow.html:29 -msgid "Cancel" -msgstr "" - -#: dashboards/nova/templates/nova/access_and_security/floating_ips/_associate.html:7 -#: dashboards/nova/templates/nova/access_and_security/floating_ips/associate.html:7 -msgid "Associate Floating IP" -msgstr "" - -#: dashboards/nova/templates/nova/access_and_security/floating_ips/_associate.html:17 -msgid "Associate a floating ip with an instance." -msgstr "" - -#: dashboards/nova/templates/nova/access_and_security/keypairs/_create.html:17 -#: dashboards/nova/templates/nova/access_and_security/keypairs/_import.html:17 -msgid "" -"Keypairs are ssh credentials which are injected into images when they are " -"launched. Creating a new key pair registers the public key and downloads the " -"private key (a .pem file)." -msgstr "" - -#: dashboards/nova/templates/nova/access_and_security/keypairs/_create.html:18 -#: dashboards/nova/templates/nova/access_and_security/keypairs/_import.html:18 -msgid "Protect and use the key as you would any normal ssh private key." -msgstr "" - -#: dashboards/nova/templates/nova/access_and_security/keypairs/download.html:3 -#: dashboards/nova/templates/nova/access_and_security/keypairs/download.html:6 -msgid "Download Keypair" -msgstr "" - -#: dashboards/nova/templates/nova/access_and_security/keypairs/download.html:11 -#, python-format -msgid "" -"The keypair "%(keypair_name)s" should download automatically. If " -"not use the link below." -msgstr "" - -#: dashboards/nova/templates/nova/access_and_security/keypairs/download.html:15 -#, python-format -msgid "Download keypair "%(keypair_name)s"" -msgstr "" - -#: dashboards/nova/templates/nova/access_and_security/security_groups/_create.html:18 -msgid "From here you can create a new security group" -msgstr "" - -#: dashboards/nova/templates/nova/access_and_security/security_groups/_edit_rules.html:9 -#: dashboards/nova/templates/nova/access_and_security/security_groups/edit_rules.html:6 -msgid "Edit Security Group Rules" -msgstr "" - -#: dashboards/nova/templates/nova/access_and_security/security_groups/_edit_rules.html:12 -#: dashboards/nova/templates/nova/access_and_security/security_groups/_edit_rules.html:19 -msgid "Add Rule" -msgstr "" - -#: dashboards/nova/templates/nova/containers/_create.html:17 -msgid "" -"A container is a storage compartment for your data and provides a way for " -"you to organize your data. You can think of a container as a folder in " -"Windows ® or a directory in UNIX ®. The primary difference between a " -"container and these other file system concepts is that containers cannot be " -"nested. You can, however, create an unlimited number of containers within " -"your account. Data must be stored in a container so you must have at least " -"one container defined in your account prior to uploading data." -msgstr "" - -#: dashboards/nova/templates/nova/images_and_snapshots/index.html:3 -#: dashboards/nova/templates/nova/images_and_snapshots/index.html:6 -msgid "Images & Snapshots" -msgstr "" - -#: dashboards/nova/templates/nova/images_and_snapshots/images/_detail_overview.html:3 -msgid "Image Overview" -msgstr "" - -#: dashboards/nova/templates/nova/images_and_snapshots/images/_detail_overview.html:6 -#: dashboards/nova/templates/nova/instances_and_volumes/instances/_detail_overview.html:6 -#: dashboards/nova/templates/nova/instances_and_volumes/volumes/_detail_overview.html:6 -msgid "Info" -msgstr "" - -#: dashboards/nova/templates/nova/images_and_snapshots/images/_detail_overview.html:11 -#: dashboards/nova/templates/nova/instances_and_volumes/instances/_detail_overview.html:11 -#: dashboards/nova/templates/nova/instances_and_volumes/volumes/_detail_overview.html:11 -#: dashboards/syspanel/projects/forms.py:83 -#: dashboards/syspanel/users/forms.py:104 -#: dashboards/syspanel/users/tables.py:106 -msgid "ID" -msgstr "" - -#: dashboards/nova/templates/nova/images_and_snapshots/images/_detail_overview.html:17 -msgid "Checksum" -msgstr "" - -#: dashboards/nova/templates/nova/images_and_snapshots/images/_detail_overview.html:19 -#: dashboards/nova/templates/nova/instances_and_volumes/volumes/_detail_overview.html:28 -msgid "Created" -msgstr "" - -#: dashboards/nova/templates/nova/images_and_snapshots/images/_detail_overview.html:21 -msgid "Updated" -msgstr "" - -#: dashboards/nova/templates/nova/images_and_snapshots/images/_detail_overview.html:27 -#: dashboards/nova/templates/nova/instances_and_volumes/instances/_detail_overview.html:19 -#: dashboards/nova/templates/nova/instances_and_volumes/volumes/_detail_overview.html:23 -msgid "Specs" -msgstr "" - -#: dashboards/nova/templates/nova/images_and_snapshots/images/_detail_overview.html:40 -msgid "Custom Properties" -msgstr "" - -#: dashboards/nova/templates/nova/images_and_snapshots/images/_detail_overview.html:56 -msgid "Euca2ools state" -msgstr "" - -#: dashboards/nova/templates/nova/images_and_snapshots/images/_detail_overview.html:60 -#: usage/tables.py:28 -msgid "Project ID" -msgstr "" - -#: dashboards/nova/templates/nova/images_and_snapshots/images/_detail_overview.html:64 -msgid "Image Type" -msgstr "" - -#: dashboards/nova/templates/nova/images_and_snapshots/images/_update.html:7 -#: dashboards/nova/templates/nova/images_and_snapshots/images/_update.html:22 -#: dashboards/nova/templates/nova/images_and_snapshots/images/update.html:3 -#: dashboards/nova/templates/nova/images_and_snapshots/images/update.html:6 -#: dashboards/syspanel/templates/syspanel/images/_update.html:8 -#: dashboards/syspanel/templates/syspanel/images/_update.html:23 -#: dashboards/syspanel/templates/syspanel/images/update.html:4 -#: dashboards/syspanel/templates/syspanel/images/update.html:7 -msgid "Update Image" -msgstr "" - -#: dashboards/nova/templates/nova/images_and_snapshots/images/_update.html:17 -#: dashboards/syspanel/templates/syspanel/images/_update.html:18 -msgid "From here you can modify different properties of an image." -msgstr "" - -#: dashboards/nova/templates/nova/images_and_snapshots/images/detail.html:4 -msgid "Image Detail " -msgstr "" - -#: dashboards/nova/templates/nova/images_and_snapshots/snapshots/_create.html:18 -msgid "Snapshots preserve the disk state of a running instance." -msgstr "" - -#: dashboards/nova/templates/nova/images_and_snapshots/snapshots/create.html:6 -msgid "Create a Snapshot" -msgstr "" - -#: dashboards/nova/templates/nova/instances_and_volumes/index.html:6 -msgid "Instances & Volumes" -msgstr "" - -#: dashboards/nova/templates/nova/instances_and_volumes/instances/_detail_log.html:7 +#: dashboards/nova/instances/templates/instances/_detail_log.html:7 msgid "View Full Log" msgstr "" -#: dashboards/nova/templates/nova/instances_and_volumes/instances/_detail_overview.html:3 +#: dashboards/nova/instances/templates/instances/_detail_overview.html:3 msgid "Instance Overview" msgstr "" -#: dashboards/nova/templates/nova/instances_and_volumes/instances/_detail_overview.html:22 -#: dashboards/nova/templates/nova/instances_and_volumes/instances/_launch_details_help.html:14 -#: usage/tables.py:21 +#: dashboards/nova/instances/templates/instances/_detail_overview.html:24 +#: dashboards/nova/instances/templates/instances/_launch_details_help.html:14 +#: usage/tables.py:22 msgid "RAM" msgstr "" -#: dashboards/nova/templates/nova/instances_and_volumes/instances/_detail_overview.html:24 -#: dashboards/nova/templates/nova/instances_and_volumes/instances/_launch_details_help.html:10 -#: dashboards/nova/templates/nova/instances_and_volumes/instances/_launch_details_help.html:28 +#: dashboards/nova/instances/templates/instances/_detail_overview.html:26 +#: dashboards/nova/instances/templates/instances/_launch_details_help.html:10 #: dashboards/syspanel/flavors/forms.py:38 #: dashboards/syspanel/flavors/tables.py:30 -#: dashboards/syspanel/projects/forms.py:114 usage/tables.py:18 +#: dashboards/syspanel/projects/forms.py:114 usage/tables.py:19 msgid "VCPUs" msgstr "" -#: dashboards/nova/templates/nova/instances_and_volumes/instances/_detail_overview.html:25 +#: dashboards/nova/instances/templates/instances/_detail_overview.html:27 msgid "VCPU" msgstr "" -#: dashboards/nova/templates/nova/instances_and_volumes/instances/_detail_overview.html:26 -#: dashboards/nova/templates/nova/instances_and_volumes/instances/_launch_details_help.html:35 -#: usage/tables.py:19 +#: dashboards/nova/instances/templates/instances/_detail_overview.html:28 +#: usage/tables.py:20 msgid "Disk" msgstr "" -#: dashboards/nova/templates/nova/instances_and_volumes/instances/_detail_overview.html:27 -#: dashboards/nova/templates/nova/instances_and_volumes/instances/_launch_details_help.html:11 -#: dashboards/nova/templates/nova/instances_and_volumes/instances/_launch_details_help.html:12 -#: dashboards/nova/templates/nova/instances_and_volumes/instances/_launch_details_help.html:13 -#: dashboards/nova/templates/nova/instances_and_volumes/instances/_launch_details_help.html:35 -#: dashboards/nova/templates/nova/instances_and_volumes/volumes/_detail_overview.html:27 +#: dashboards/nova/instances/templates/instances/_detail_overview.html:29 +#: dashboards/nova/instances/templates/instances/_launch_details_help.html:11 +#: dashboards/nova/instances/templates/instances/_launch_details_help.html:12 +#: dashboards/nova/instances/templates/instances/_launch_details_help.html:13 +#: dashboards/nova/volumes/templates/volumes/_detail_overview.html:27 msgid "GB" msgstr "" -#: dashboards/nova/templates/nova/instances_and_volumes/instances/_detail_overview.html:32 +#: dashboards/nova/instances/templates/instances/_detail_overview.html:34 msgid "IP Addresses" msgstr "" -#: dashboards/nova/templates/nova/instances_and_volumes/instances/_detail_overview.html:57 +#: dashboards/nova/instances/templates/instances/_detail_overview.html:59 msgid "No rules defined." msgstr "" -#: dashboards/nova/templates/nova/instances_and_volumes/instances/_detail_overview.html:66 +#: dashboards/nova/instances/templates/instances/_detail_overview.html:68 msgid "Meta" msgstr "" -#: dashboards/nova/templates/nova/instances_and_volumes/instances/_detail_overview.html:69 +#: dashboards/nova/instances/templates/instances/_detail_overview.html:71 msgid "Key Name" msgstr "" -#: dashboards/nova/templates/nova/instances_and_volumes/instances/_detail_overview.html:93 +#: dashboards/nova/instances/templates/instances/_detail_overview.html:84 +msgid "Volumes Attached" +msgstr "" + +#: dashboards/nova/instances/templates/instances/_detail_overview.html:88 +#: dashboards/nova/volumes/tables.py:156 +#: dashboards/nova/volumes/templates/volumes/_detail_overview.html:38 +#: dashboards/nova/volumes/templates/volumes/_detail_overview.html:45 +msgid "Attached To" +msgstr "" + +#: dashboards/nova/instances/templates/instances/_detail_overview.html:90 +#: dashboards/nova/volumes/templates/volumes/_detail_overview.html:42 +msgid "on" +msgstr "" + +#: dashboards/nova/instances/templates/instances/_detail_overview.html:94 msgid "No volumes attached." msgstr "" -#: dashboards/nova/templates/nova/instances_and_volumes/instances/_detail_vnc.html:3 +#: dashboards/nova/instances/templates/instances/_detail_vnc.html:3 msgid "Instance VNC Console" msgstr "" -#: dashboards/nova/templates/nova/instances_and_volumes/instances/_detail_vnc.html:5 +#: dashboards/nova/instances/templates/instances/_detail_vnc.html:5 msgid "" "If VNC console is not responding to keyboard input: click the grey status " "bar below." msgstr "" -#: dashboards/nova/templates/nova/instances_and_volumes/instances/_detail_vnc.html:5 +#: dashboards/nova/instances/templates/instances/_detail_vnc.html:5 msgid "Click here to show only VNC" msgstr "" -#: dashboards/nova/templates/nova/instances_and_volumes/instances/_detail_vnc.html:8 +#: dashboards/nova/instances/templates/instances/_detail_vnc.html:8 msgid "VNC console is currently unavailabe. Please try again later." msgstr "" -#: dashboards/nova/templates/nova/instances_and_volumes/instances/_detail_vnc.html:9 +#: dashboards/nova/instances/templates/instances/_detail_vnc.html:9 msgid "Reload" msgstr "" -#: dashboards/nova/templates/nova/instances_and_volumes/instances/_launch_customize_help.html:2 +#: dashboards/nova/instances/templates/instances/_launch_customize_help.html:2 msgid "" "You can customize your instance after it's launched using the options " "available here." msgstr "" -#: dashboards/nova/templates/nova/instances_and_volumes/instances/_launch_customize_help.html:3 +#: dashboards/nova/instances/templates/instances/_launch_customize_help.html:3 msgid "" "The \"Customization Script\" field is analogous to \"User Data\" in other " "systems." msgstr "" -#: dashboards/nova/templates/nova/instances_and_volumes/instances/_launch_details_help.html:3 +#: dashboards/nova/instances/templates/instances/_launch_details_help.html:3 msgid "Specify the details for launching an instance." msgstr "" -#: dashboards/nova/templates/nova/instances_and_volumes/instances/_launch_details_help.html:4 +#: dashboards/nova/instances/templates/instances/_launch_details_help.html:4 msgid "" "The chart below shows the resources used by this project in relation to the " "project's quotas." msgstr "" -#: dashboards/nova/templates/nova/instances_and_volumes/instances/_launch_details_help.html:6 +#: dashboards/nova/instances/templates/instances/_launch_details_help.html:6 msgid "Flavor Details" msgstr "" -#: dashboards/nova/templates/nova/instances_and_volumes/instances/_launch_details_help.html:11 +#: dashboards/nova/instances/templates/instances/_launch_details_help.html:11 #: dashboards/syspanel/flavors/tables.py:32 msgid "Root Disk" msgstr "" -#: dashboards/nova/templates/nova/instances_and_volumes/instances/_launch_details_help.html:12 +#: dashboards/nova/instances/templates/instances/_launch_details_help.html:12 #: dashboards/syspanel/flavors/tables.py:34 msgid "Ephemeral Disk" msgstr "" -#: dashboards/nova/templates/nova/instances_and_volumes/instances/_launch_details_help.html:13 +#: dashboards/nova/instances/templates/instances/_launch_details_help.html:13 msgid "Total Disk" msgstr "" -#: dashboards/nova/templates/nova/instances_and_volumes/instances/_launch_details_help.html:14 -#: dashboards/nova/templates/nova/instances_and_volumes/instances/_launch_details_help.html:42 +#: dashboards/nova/instances/templates/instances/_launch_details_help.html:14 +#: dashboards/nova/instances/templates/instances/_launch_details_help.html:37 msgid "MB" msgstr "" -#: dashboards/nova/templates/nova/instances_and_volumes/instances/_launch_details_help.html:42 -#: dashboards/syspanel/flavors/tables.py:31 -msgid "Memory" +#: dashboards/nova/instances/templates/instances/_launch_details_help.html:21 +msgid "Number of Instances" msgstr "" -#: dashboards/nova/templates/nova/instances_and_volumes/instances/_launch_volumes_help.html:3 +#: dashboards/nova/instances/templates/instances/_launch_details_help.html:29 +msgid "Number of VCPUs" +msgstr "" + +#: dashboards/nova/instances/templates/instances/_launch_details_help.html:37 +msgid "Total Memory" +msgstr "" + +#: dashboards/nova/instances/templates/instances/_launch_volumes_help.html:3 msgid "" "An instance can be launched with varying types of attached storage. You may " "select from those options here." msgstr "" -#: dashboards/nova/templates/nova/instances_and_volumes/instances/_update.html:17 +#: dashboards/nova/instances/templates/instances/_update.html:17 msgid "You may update the editable properties of your instance here." msgstr "" -#: dashboards/nova/templates/nova/instances_and_volumes/instances/_update.html:22 +#: dashboards/nova/instances/templates/instances/_update.html:22 msgid "Save Changes" msgstr "" -#: dashboards/nova/templates/nova/instances_and_volumes/instances/detail.html:3 +#: dashboards/nova/instances/templates/instances/detail.html:3 msgid "Instance Detail" msgstr "" -#: dashboards/nova/templates/nova/instances_and_volumes/instances/update.html:3 -#: dashboards/nova/templates/nova/instances_and_volumes/instances/update.html:6 +#: dashboards/nova/instances/templates/instances/update.html:3 +#: dashboards/nova/instances/templates/instances/update.html:6 msgid "Update Instance" msgstr "" -#: dashboards/nova/templates/nova/instances_and_volumes/volumes/_attach.html:9 -#: dashboards/nova/templates/nova/instances_and_volumes/volumes/attach.html:6 +#: dashboards/nova/templates/nova/_warning.html:6 +msgid "You currently have the power to damage your OpenStack cloud..." +msgstr "" + +#: dashboards/nova/templates/nova/_warning.html:9 +msgid "" +"Due to inconsistencies in the way Nova interacts with Keystone, a user with " +"an admin role has access to all resources in the system (volumes, snapshots, " +"keypairs, etc.), even in the Project dashboard where they should only see a " +"properly-scoped subset of those resources." +msgstr "" + +#: dashboards/nova/templates/nova/_warning.html:10 +msgid "" +"This means that Nova allows an admin user in the Project Dashboard to " +"successfully take actions which otherwise should not be permitted, causing " +"irresolvable conflicts in Nova." +msgstr "" + +#: dashboards/nova/templates/nova/_warning.html:11 +msgid "A list of the known problems are as follows:" +msgstr "" + +#: dashboards/nova/templates/nova/_warning.html:13 +msgid "" +"Attaching a volume owned by project A to an instance in project B can " +"completely hang Nova." +msgstr "" + +#: dashboards/nova/templates/nova/_warning.html:14 +msgid "" +"Assigning keypairs owned by project A to an instance in project B can result " +"in failed instances, problems in retrieving instance details for non-admin " +"users, and/or security holes should the instance succeed in spawning." +msgstr "" + +#: dashboards/nova/templates/nova/_warning.html:15 +msgid "" +"Attempting to launch an instance in project A from a snapshot or volume " +"snapshot owned by project B can hang Nova." +msgstr "" + +#: dashboards/nova/templates/nova/_warning.html:16 +msgid "" +"Attempting to boot from a volume owned by project A in project B can hang " +"Nova." +msgstr "" + +#: dashboards/nova/templates/nova/_warning.html:18 +msgid "" +"This is only a list of the reported inconsistencies. There may be others." +msgstr "" + +#: dashboards/nova/templates/nova/_warning.html:19 +msgid "" +"The recommended practice until this problem is resolved is to keep your " +"admin users and regular users separate. Create an \"admin\" project that " +"admin users have access to, and do not grant your admin users the admin role " +"on any other projects." +msgstr "" + +#: dashboards/nova/templates/nova/_warning.html:20 +msgid "" +"To follow the status of this bug, take a look at the following items on " +"launchpad:" +msgstr "" + +#: dashboards/nova/templates/nova/_warning.html:27 +msgid "" +"Thank you for reading this warning and operating your cloud responsibly." +msgstr "" + +#: dashboards/nova/templates/nova/_warning.html:30 +msgid "Close" +msgstr "" + +#: dashboards/nova/templates/nova/base.html:9 +msgid "Caution" +msgstr "" + +#: dashboards/nova/templates/nova/base.html:10 +msgid "You are acting as an admin user in the project dashboard." +msgstr "" + +#: dashboards/nova/templates/nova/base.html:12 +msgid "Learn More" +msgstr "" + +#: dashboards/nova/volumes/forms.py:40 +#, python-format +msgid "" +"A volume of %(req)iGB cannot be created as you only have %(avail)iGB of your " +"quota available." +msgstr "" + +#: dashboards/nova/volumes/forms.py:47 +msgid "You are already using all of your available volumes." +msgstr "" + +#: dashboards/nova/volumes/forms.py:60 +msgid "Unable to create volume." +msgstr "" + +#: dashboards/nova/volumes/forms.py:67 +msgid "Select an instance to attach to." +msgstr "" + +#: dashboards/nova/volumes/forms.py:100 +msgid "Unknown instance (None)" +msgstr "" + +#: dashboards/nova/volumes/forms.py:111 +#, python-format +msgid "Attaching volume %(vol)s to instance %(inst)s on %(dev)s." +msgstr "" + +#: dashboards/nova/volumes/forms.py:118 +msgid "Unable to attach volume." +msgstr "" + +#: dashboards/nova/volumes/forms.py:142 +#, python-format +msgid "Creating volume snapshot \"%s\"" +msgstr "" + +#: dashboards/nova/volumes/forms.py:146 +msgid "Unable to create volume snapshot." +msgstr "" + +#: dashboards/nova/volumes/panel.py:24 dashboards/nova/volumes/tables.py:37 +#: dashboards/nova/volumes/tables.py:160 dashboards/nova/volumes/tables.py:172 +#: dashboards/nova/volumes/templates/volumes/index.html:3 +#: dashboards/nova/volumes/templates/volumes/index.html:6 +#: dashboards/syspanel/projects/forms.py:116 +#: dashboards/syspanel/volumes/panel.py:9 +#: dashboards/syspanel/volumes/tables.py:15 +#: dashboards/syspanel/volumes/templates/volumes/index.html:3 +#: dashboards/syspanel/volumes/templates/volumes/index.html:6 +msgid "Volumes" +msgstr "" + +#: dashboards/nova/volumes/tables.py:50 +#: dashboards/nova/volumes/templates/volumes/_create.html:8 +#: dashboards/nova/volumes/templates/volumes/_create.html:55 +msgid "Create Volume" +msgstr "" + +#: dashboards/nova/volumes/tables.py:57 +msgid "Edit Attachments" +msgstr "" + +#: dashboards/nova/volumes/tables.py:84 +#, python-format +msgid "%sGB" +msgstr "" + +#: dashboards/nova/volumes/tables.py:97 +msgid "Unable to retrieve attachment information." +msgstr "" + +#: dashboards/nova/volumes/tables.py:114 +#, python-format +msgid "Attached to %(instance)s on %(dev)s" +msgstr "" + +#: dashboards/nova/volumes/tables.py:169 +msgid "Detach" +msgstr "" + +#: dashboards/nova/volumes/tables.py:170 +msgid "Detaching" +msgstr "" + +#: dashboards/nova/volumes/tables.py:205 +#, python-format +msgid "%(dev)s on instance %(instance_name)s" +msgstr "" + +#: dashboards/nova/volumes/tabs.py:41 +msgid "Unable to retrieve volume details." +msgstr "" + +#: dashboards/nova/volumes/views.py:50 +msgid "Unable to retrieve volume list." +msgstr "" + +#: dashboards/nova/volumes/views.py:56 +msgid "Unable to retrieve volume/instance attachment information" +msgstr "" + +#: dashboards/nova/volumes/views.py:114 dashboards/nova/volumes/views.py:124 +msgid "Unable to retrieve volume information." +msgstr "" + +#: dashboards/nova/volumes/templates/volumes/_attach.html:9 +#: dashboards/nova/volumes/templates/volumes/attach.html:6 msgid "Manage Volume Attachments" msgstr "" -#: dashboards/nova/templates/nova/instances_and_volumes/volumes/_attach.html:12 +#: dashboards/nova/volumes/templates/volumes/_attach.html:12 msgid "Attach To Instance" msgstr "" -#: dashboards/nova/templates/nova/instances_and_volumes/volumes/_attach.html:19 +#: dashboards/nova/volumes/templates/volumes/_attach.html:19 msgid "Attach Volume" msgstr "" -#: dashboards/nova/templates/nova/instances_and_volumes/volumes/_create.html:18 -#: dashboards/nova/templates/nova/instances_and_volumes/volumes/_create_snapshot.html:18 +#: dashboards/nova/volumes/templates/volumes/_create.html:20 +#: dashboards/nova/volumes/templates/volumes/_create_snapshot.html:18 msgid "Volumes are block devices that can be attached to instances." msgstr "" -#: dashboards/nova/templates/nova/instances_and_volumes/volumes/_create_snapshot.html:8 -#: dashboards/nova/templates/nova/instances_and_volumes/volumes/_create_snapshot.html:23 -#: dashboards/nova/templates/nova/instances_and_volumes/volumes/create_snapshot.html:3 +#: dashboards/nova/volumes/templates/volumes/_create.html:22 +msgid "Volume Quotas" +msgstr "" + +#: dashboards/nova/volumes/templates/volumes/_create.html:25 +msgid "Total Gigabytes" +msgstr "" + +#: dashboards/nova/volumes/templates/volumes/_create.html:34 +msgid "Number of Volumes" +msgstr "" + +#: dashboards/nova/volumes/templates/volumes/_create_snapshot.html:8 +#: dashboards/nova/volumes/templates/volumes/_create_snapshot.html:23 +#: dashboards/nova/volumes/templates/volumes/create_snapshot.html:3 msgid "Create Volume Snapshot" msgstr "" -#: dashboards/nova/templates/nova/instances_and_volumes/volumes/_detail_overview.html:3 +#: dashboards/nova/volumes/templates/volumes/_detail_overview.html:3 msgid "Volume Overview" msgstr "" -#: dashboards/nova/templates/nova/instances_and_volumes/volumes/_detail_overview.html:38 -msgid "Attached To" +#: dashboards/nova/volumes/templates/volumes/_detail_overview.html:34 +msgid "Attachments" msgstr "" -#: dashboards/nova/templates/nova/instances_and_volumes/volumes/_detail_overview.html:42 -msgid "on" -msgstr "" - -#: dashboards/nova/templates/nova/instances_and_volumes/volumes/_detail_overview.html:47 +#: dashboards/nova/volumes/templates/volumes/_detail_overview.html:46 msgid "Not attached" msgstr "" -#: dashboards/nova/templates/nova/instances_and_volumes/volumes/create.html:6 +#: dashboards/nova/volumes/templates/volumes/create.html:6 msgid "Create a Volume" msgstr "" -#: dashboards/nova/templates/nova/instances_and_volumes/volumes/create_snapshot.html:6 +#: dashboards/nova/volumes/templates/volumes/create_snapshot.html:6 msgid "Create a Volume Snapshot" msgstr "" -#: dashboards/nova/templates/nova/instances_and_volumes/volumes/detail.html:3 +#: dashboards/nova/volumes/templates/volumes/detail.html:3 +#: dashboards/syspanel/volumes/templates/volumes/detail.html:3 msgid "Volume Details" msgstr "" -#: dashboards/nova/templates/nova/instances_and_volumes/volumes/detail.html:6 +#: dashboards/nova/volumes/templates/volumes/detail.html:6 +#: dashboards/syspanel/volumes/templates/volumes/detail.html:6 msgid "Volume Detail" msgstr "" -#: dashboards/nova/templates/nova/objects/_copy.html:7 -#: dashboards/nova/templates/nova/objects/_copy.html:22 -#: dashboards/nova/templates/nova/objects/copy.html:3 -#: dashboards/nova/templates/nova/objects/copy.html:6 -msgid "Copy Object" -msgstr "" - -#: dashboards/nova/templates/nova/objects/_copy.html:17 -msgid "" -"You may make a new copy of an existing object to store in this or another " -"container." -msgstr "" - -#: dashboards/nova/templates/nova/objects/_upload.html:8 -msgid "Upload Object To Container" -msgstr "" - -#: dashboards/nova/templates/nova/objects/_upload.html:18 -msgid "" -"An object is the basic storage entity and any optional metadata that " -"represents the files you store in the OpenStack Object Storage system. When " -"you upload data to OpenStack Object Storage, the data is stored as-is (no " -"compression or encryption) and consists of a location (container), the " -"object's name, and any metadata consisting of key/value pairs." -msgstr "" - -#: dashboards/nova/templates/nova/objects/upload.html:6 -msgid "Upload Objects" -msgstr "" - #: dashboards/settings/dashboard.py:24 msgid "Settings" msgstr "" @@ -1651,11 +1943,11 @@ msgstr "" msgid "Unable to retrieve tenant list." msgstr "" -#: dashboards/settings/ec2/forms.py:95 +#: dashboards/settings/ec2/forms.py:93 msgid "Unable to fetch EC2 credentials." msgstr "" -#: dashboards/settings/ec2/forms.py:108 +#: dashboards/settings/ec2/forms.py:106 #, python-format msgid "Error writing zipfile: %(exc)s" msgstr "" @@ -1664,69 +1956,78 @@ msgstr "" msgid "EC2 Credentials" msgstr "" -#: dashboards/settings/project/forms.py:76 -#, python-format -msgid "Error Downloading RC File: %s" -msgstr "" - -#: dashboards/settings/project/panel.py:24 -msgid "OpenStack Credentials" -msgstr "" - -#: dashboards/settings/templates/settings/ec2/download_form.html:8 -#: dashboards/settings/templates/settings/ec2/download_form.html:23 -#: dashboards/settings/templates/settings/ec2/index.html:3 -#: dashboards/settings/templates/settings/ec2/index.html:6 +#: dashboards/settings/ec2/templates/ec2/download_form.html:8 +#: dashboards/settings/ec2/templates/ec2/download_form.html:23 +#: dashboards/settings/ec2/templates/ec2/index.html:3 +#: dashboards/settings/ec2/templates/ec2/index.html:6 msgid "Download EC2 Credentials" msgstr "" -#: dashboards/settings/templates/settings/ec2/download_form.html:18 +#: dashboards/settings/ec2/templates/ec2/download_form.html:18 msgid "" "Clicking \"Download EC2 Credentials\" will download a zip file which " "includes an rc file with your access/secret keys, as well as your x509 " "private key and certificate." msgstr "" -#: dashboards/settings/templates/settings/project/_openrc.html:8 -#: dashboards/settings/templates/settings/project/settings.html:6 +#: dashboards/settings/project/forms.py:76 +#, python-format +msgid "Error Downloading RC File: %s" +msgstr "" + +#: dashboards/settings/project/panel.py:24 +#: dashboards/settings/project/templates/project/_openrc.html:8 +#: dashboards/settings/project/templates/project/settings.html:3 +#: dashboards/settings/project/templates/project/settings.html:6 +msgid "OpenStack API" +msgstr "" + +#: dashboards/settings/project/tables.py:27 +msgid "Service Name" +msgstr "" + +#: dashboards/settings/project/tables.py:29 +msgid "Service Endpoint" +msgstr "" + +#: dashboards/settings/project/tables.py:33 +msgid "API Endpoints" +msgstr "" + +#: dashboards/settings/project/templates/project/_openrc.html:15 msgid "Download OpenStack RC File" msgstr "" -#: dashboards/settings/templates/settings/project/_openrc.html:18 +#: dashboards/settings/project/templates/project/_openrc.html:25 msgid "" "Download the RC file for the selected project, then type \"source openrc\" " "in the terminal to configure your environment to communicate with OpenStack." msgstr "" -#: dashboards/settings/templates/settings/project/_openrc.html:23 +#: dashboards/settings/project/templates/project/_openrc.html:30 msgid "Download RC File" msgstr "" -#: dashboards/settings/templates/settings/user/_language.html:8 -#: dashboards/settings/templates/settings/user/_language.html:36 -msgid "Select Language" -msgstr "" - -#: dashboards/settings/templates/settings/user/_language.html:12 -msgid "Dashboard User Interface Language" -msgstr "" - -#: dashboards/settings/templates/settings/user/_language.html:14 -msgid "Language Settings" -msgstr "" - -#: dashboards/settings/templates/settings/user/_language.html:31 -msgid "From here you can modify different settings for your dashboard." -msgstr "" - -#: dashboards/settings/templates/settings/user/settings.html:6 -msgid "Dashboard Settings" +#: dashboards/settings/user/forms.py:57 +msgid "Settings saved." msgstr "" #: dashboards/settings/user/panel.py:24 +#: dashboards/settings/user/templates/user/_settings.html:8 +#: dashboards/settings/user/templates/user/settings.html:3 +#: dashboards/settings/user/templates/user/settings.html:6 msgid "User Settings" msgstr "" +#: dashboards/settings/user/templates/user/_settings.html:18 +msgid "From here you can modify dashboard settings for your user." +msgstr "" + +#: dashboards/settings/user/templates/user/_settings.html:23 +#: workflows/base.py:510 +msgid "Save" +msgstr "" + #: dashboards/syspanel/dashboard.py:24 msgid "System Panel" msgstr "" @@ -1759,14 +2060,14 @@ msgstr "" #: dashboards/syspanel/flavors/panel.py:28 #: dashboards/syspanel/flavors/tables.py:14 #: dashboards/syspanel/flavors/tables.py:38 -#: dashboards/syspanel/templates/syspanel/flavors/index.html:8 +#: dashboards/syspanel/flavors/templates/flavors/index.html:8 msgid "Flavors" msgstr "" #: dashboards/syspanel/flavors/tables.py:22 -#: dashboards/syspanel/templates/syspanel/flavors/_create.html:8 -#: dashboards/syspanel/templates/syspanel/flavors/_create.html:23 -#: dashboards/syspanel/templates/syspanel/flavors/create.html:6 +#: dashboards/syspanel/flavors/templates/flavors/_create.html:8 +#: dashboards/syspanel/flavors/templates/flavors/_create.html:23 +#: dashboards/syspanel/flavors/templates/flavors/create.html:6 msgid "Create Flavor" msgstr "" @@ -1774,6 +2075,10 @@ msgstr "" msgid "Flavor Name" msgstr "" +#: dashboards/syspanel/flavors/tables.py:31 +msgid "Memory" +msgstr "" + #: dashboards/syspanel/flavors/views.py:48 msgid "Unauthorized." msgstr "" @@ -1783,12 +2088,16 @@ msgstr "" msgid "Unable to get flavor list: %s" msgstr "" +#: dashboards/syspanel/flavors/templates/flavors/_create.html:18 +msgid "From here you can define the sizing of a new flavor." +msgstr "" + #: dashboards/syspanel/images/views.py:52 msgid "Unable to retrieve image list." msgstr "" -#: dashboards/syspanel/instances/tables.py:62 -msgid "Tenant" +#: dashboards/syspanel/instances/tables.py:62 usage/tables.py:29 +msgid "Project Name" msgstr "" #: dashboards/syspanel/instances/tables.py:69 @@ -1800,21 +2109,34 @@ msgstr "" msgid "Unable to retrieve instance tenant information." msgstr "" +#: dashboards/syspanel/instances/templates/instances/index.html:6 +msgid "All Instances" +msgstr "" + +#: dashboards/syspanel/overview/templates/overview/usage.html:3 +msgid "Usage Overview" +msgstr "" + +#: dashboards/syspanel/overview/templates/overview/usage.html:12 +msgid "Monitoring" +msgstr "" + #: dashboards/syspanel/projects/forms.py:38 +#: dashboards/syspanel/users/forms.py:75 msgid "Role" msgstr "" #: dashboards/syspanel/projects/forms.py:52 -msgid "Successfully added user to tenant." +msgid "Successfully added user to project." msgstr "" #: dashboards/syspanel/projects/forms.py:54 -msgid "Unable to add user to tenant." +msgid "Unable to add user to project." msgstr "" #: dashboards/syspanel/projects/forms.py:64 #: dashboards/syspanel/projects/forms.py:89 -#: dashboards/syspanel/projects/tables.py:77 +#: dashboards/syspanel/projects/tables.py:78 #: dashboards/syspanel/services/tables.py:42 #: dashboards/syspanel/users/tables.py:38 #: dashboards/syspanel/users/tables.py:112 @@ -1827,7 +2149,7 @@ msgid "%s was successfully created." msgstr "" #: dashboards/syspanel/projects/forms.py:78 -msgid "Unable to create tenant." +msgid "Unable to create project." msgstr "" #: dashboards/syspanel/projects/forms.py:100 @@ -1836,7 +2158,7 @@ msgid "%s was successfully updated." msgstr "" #: dashboards/syspanel/projects/forms.py:103 -msgid "Unable to update tenant." +msgid "Unable to update project." msgstr "" #: dashboards/syspanel/projects/forms.py:108 @@ -1873,63 +2195,66 @@ msgid "Unable to update quotas." msgstr "" #: dashboards/syspanel/projects/panel.py:28 -#: dashboards/syspanel/projects/tables.py:52 -#: dashboards/syspanel/projects/tables.py:81 -#: dashboards/syspanel/templates/syspanel/projects/index.html:8 +#: dashboards/syspanel/projects/tables.py:53 +#: dashboards/syspanel/projects/tables.py:82 +#: dashboards/syspanel/projects/templates/projects/index.html:8 msgid "Projects" msgstr "" -#: dashboards/syspanel/projects/tables.py:17 +#: dashboards/syspanel/projects/tables.py:18 msgid "Modify Quotas" msgstr "" -#: dashboards/syspanel/projects/tables.py:24 +#: dashboards/syspanel/projects/tables.py:25 msgid "Modify Users" msgstr "" -#: dashboards/syspanel/projects/tables.py:31 +#: dashboards/syspanel/projects/tables.py:32 msgid "View Usage" msgstr "" -#: dashboards/syspanel/projects/tables.py:38 +#: dashboards/syspanel/projects/tables.py:39 msgid "Edit Project" msgstr "" -#: dashboards/syspanel/projects/tables.py:45 +#: dashboards/syspanel/projects/tables.py:46 msgid "Create New Project" msgstr "" -#: dashboards/syspanel/projects/tables.py:73 -#: dashboards/syspanel/services/tables.py:37 -msgid "Id" -msgstr "" - -#: dashboards/syspanel/projects/tables.py:89 +#: dashboards/syspanel/projects/tables.py:90 msgid "Remove" msgstr "" -#: dashboards/syspanel/projects/tables.py:90 +#: dashboards/syspanel/projects/tables.py:91 msgid "Removed" msgstr "" -#: dashboards/syspanel/projects/tables.py:92 -#: dashboards/syspanel/templates/syspanel/users/index.html:8 +#: dashboards/syspanel/projects/tables.py:93 #: dashboards/syspanel/users/panel.py:28 #: dashboards/syspanel/users/tables.py:40 #: dashboards/syspanel/users/tables.py:74 #: dashboards/syspanel/users/tables.py:119 +#: dashboards/syspanel/users/templates/users/index.html:8 msgid "Users" msgstr "" -#: dashboards/syspanel/projects/tables.py:103 +#: dashboards/syspanel/projects/tables.py:111 +msgid "Unable to retrieve role information." +msgstr "" + +#: dashboards/syspanel/projects/tables.py:116 +msgid "Roles" +msgstr "" + +#: dashboards/syspanel/projects/tables.py:120 msgid "Users For Project" msgstr "" -#: dashboards/syspanel/projects/tables.py:110 +#: dashboards/syspanel/projects/tables.py:128 msgid "Add To Project" msgstr "" -#: dashboards/syspanel/projects/tables.py:122 +#: dashboards/syspanel/projects/tables.py:140 msgid "Add New Users" msgstr "" @@ -1949,6 +2274,64 @@ msgstr "" msgid "Unable to retrieve roles." msgstr "" +#: dashboards/syspanel/projects/templates/projects/_add_user.html:8 +#: dashboards/syspanel/projects/templates/projects/add_user.html:3 +#: dashboards/syspanel/projects/templates/projects/add_user.html:6 +msgid "Add User To Project" +msgstr "" + +#: dashboards/syspanel/projects/templates/projects/_add_user.html:18 +msgid "Select the user role for the project." +msgstr "" + +#: dashboards/syspanel/projects/templates/projects/_add_user.html:23 +msgid "Add" +msgstr "" + +#: dashboards/syspanel/projects/templates/projects/_create.html:8 +#: dashboards/syspanel/projects/templates/projects/_create.html:23 +#: dashboards/syspanel/projects/templates/projects/create.html:6 +msgid "Create Project" +msgstr "" + +#: dashboards/syspanel/projects/templates/projects/_create.html:18 +msgid "From here you can create a new project to organize users." +msgstr "" + +#: dashboards/syspanel/projects/templates/projects/_quotas.html:7 +#: dashboards/syspanel/projects/templates/projects/_quotas.html:22 +msgid "Update Quota" +msgstr "" + +#: dashboards/syspanel/projects/templates/projects/_quotas.html:17 +#, python-format +msgid "" +"From here you can edit quotas (max limits) for the project %(tenant.name)s." +msgstr "" + +#: dashboards/syspanel/projects/templates/projects/_update.html:8 +#: dashboards/syspanel/projects/templates/projects/_update.html:23 +#: dashboards/syspanel/projects/templates/projects/quotas.html:6 +#: dashboards/syspanel/projects/templates/projects/update.html:6 +msgid "Update Project" +msgstr "" + +#: dashboards/syspanel/projects/templates/projects/_update.html:18 +msgid "From here you can edit a project." +msgstr "" + +#: dashboards/syspanel/projects/templates/projects/usage.html:3 +msgid "Project Usage Overview" +msgstr "" + +#: dashboards/syspanel/projects/templates/projects/usage.html:7 +msgid "Project Usage" +msgstr "" + +#: dashboards/syspanel/projects/templates/projects/users.html:7 +msgid "Users for Project" +msgstr "" + #: dashboards/syspanel/quotas/panel.py:28 #: dashboards/syspanel/quotas/tables.py:36 msgid "Quotas" @@ -1966,189 +2349,104 @@ msgstr "" msgid "Unable to get quota info." msgstr "" +#: dashboards/syspanel/quotas/templates/quotas/index.html:8 +msgid "Default Quotas" +msgstr "" + #: dashboards/syspanel/services/panel.py:28 #: dashboards/syspanel/services/tables.py:47 -#: dashboards/syspanel/templates/syspanel/services/index.html:8 +#: dashboards/syspanel/services/templates/services/index.html:8 msgid "Services" msgstr "" +#: dashboards/syspanel/services/tables.py:37 +msgid "Id" +msgstr "" + #: dashboards/syspanel/services/tables.py:39 msgid "Service" msgstr "" -#: dashboards/syspanel/templates/syspanel/flavors/_create.html:18 -msgid "From here you can define the sizing of a new flavor." -msgstr "" - -#: dashboards/syspanel/templates/syspanel/instances/index.html:6 -msgid "All Instances" -msgstr "" - -#: dashboards/syspanel/templates/syspanel/overview/usage.html:3 -msgid "Usage Overview" -msgstr "" - -#: dashboards/syspanel/templates/syspanel/overview/usage.html:12 -msgid "Monitoring" -msgstr "" - -#: dashboards/syspanel/templates/syspanel/projects/_add_user.html:8 -#: dashboards/syspanel/templates/syspanel/projects/add_user.html:3 -#: dashboards/syspanel/templates/syspanel/projects/add_user.html:6 -msgid "Add User To Project" -msgstr "" - -#: dashboards/syspanel/templates/syspanel/projects/_add_user.html:18 -msgid "Select the user role for the project." -msgstr "" - -#: dashboards/syspanel/templates/syspanel/projects/_add_user.html:23 -msgid "Add" -msgstr "" - -#: dashboards/syspanel/templates/syspanel/projects/_create.html:8 -#: dashboards/syspanel/templates/syspanel/projects/_create.html:23 -#: dashboards/syspanel/templates/syspanel/projects/create.html:6 -msgid "Create Project" -msgstr "" - -#: dashboards/syspanel/templates/syspanel/projects/_create.html:18 -msgid "From here you can create a new project to organize users." -msgstr "" - -#: dashboards/syspanel/templates/syspanel/projects/_quotas.html:7 -#: dashboards/syspanel/templates/syspanel/projects/_quotas.html:22 -msgid "Update Quota" -msgstr "" - -#: dashboards/syspanel/templates/syspanel/projects/_quotas.html:17 -#, python-format -msgid "" -"From here you can edit quotas (max limits) for the project %(tenant.name)s." -msgstr "" - -#: dashboards/syspanel/templates/syspanel/projects/_update.html:8 -#: dashboards/syspanel/templates/syspanel/projects/_update.html:23 -#: dashboards/syspanel/templates/syspanel/projects/quotas.html:6 -#: dashboards/syspanel/templates/syspanel/projects/update.html:6 -msgid "Update Project" -msgstr "" - -#: dashboards/syspanel/templates/syspanel/projects/_update.html:18 -msgid "From here you can edit a project." -msgstr "" - -#: dashboards/syspanel/templates/syspanel/projects/usage.html:3 -msgid "Project Usage Overview" -msgstr "" - -#: dashboards/syspanel/templates/syspanel/projects/usage.html:7 -msgid "Project Usage" -msgstr "" - -#: dashboards/syspanel/templates/syspanel/projects/users.html:7 -msgid "Users for Project" -msgstr "" - -#: dashboards/syspanel/templates/syspanel/quotas/index.html:8 -msgid "Default Quotas" -msgstr "" - -#: dashboards/syspanel/templates/syspanel/users/_create.html:7 -#: dashboards/syspanel/templates/syspanel/users/_create.html:22 -#: dashboards/syspanel/templates/syspanel/users/create.html:7 -#: dashboards/syspanel/users/tables.py:18 -msgid "Create User" -msgstr "" - -#: dashboards/syspanel/templates/syspanel/users/_create.html:17 -msgid "From here you can create a new user and assign them to a project." -msgstr "" - -#: dashboards/syspanel/templates/syspanel/users/_update.html:7 -#: dashboards/syspanel/templates/syspanel/users/_update.html:22 -#: dashboards/syspanel/templates/syspanel/users/update.html:7 -msgid "Update User" -msgstr "" - -#: dashboards/syspanel/templates/syspanel/users/_update.html:17 -msgid "" -"From here you can edit the user's details, including their default project." -msgstr "" - -#: dashboards/syspanel/users/forms.py:41 +#: dashboards/syspanel/users/forms.py:42 msgid "Select a project" msgstr "" -#: dashboards/syspanel/users/forms.py:57 +#: dashboards/syspanel/users/forms.py:58 msgid "Passwords do not match." msgstr "" -#: dashboards/syspanel/users/forms.py:62 -#: dashboards/syspanel/users/forms.py:105 -#: dashboards/syspanel/users/tables.py:107 views/auth_forms.py:64 +#: dashboards/syspanel/users/forms.py:63 +#: dashboards/syspanel/users/forms.py:114 +#: dashboards/syspanel/users/tables.py:106 msgid "User Name" msgstr "" -#: dashboards/syspanel/users/forms.py:63 -#: dashboards/syspanel/users/forms.py:106 -#: dashboards/syspanel/users/tables.py:108 +#: dashboards/syspanel/users/forms.py:64 +#: dashboards/syspanel/users/forms.py:115 +#: dashboards/syspanel/users/tables.py:107 msgid "Email" msgstr "" -#: dashboards/syspanel/users/forms.py:65 -#: dashboards/syspanel/users/forms.py:107 views/auth_forms.py:65 +#: dashboards/syspanel/users/forms.py:66 +#: dashboards/syspanel/users/forms.py:116 msgid "Password" msgstr "" -#: dashboards/syspanel/users/forms.py:70 -#: dashboards/syspanel/users/forms.py:114 +#: dashboards/syspanel/users/forms.py:71 +#: dashboards/syspanel/users/forms.py:123 msgid "Confirm Password" msgstr "" -#: dashboards/syspanel/users/forms.py:73 -#: dashboards/syspanel/users/forms.py:117 +#: dashboards/syspanel/users/forms.py:74 +#: dashboards/syspanel/users/forms.py:126 msgid "Primary Project" msgstr "" -#: dashboards/syspanel/users/forms.py:85 +#: dashboards/syspanel/users/forms.py:96 #, python-format msgid "User \"%s\" was successfully created." msgstr "" -#: dashboards/syspanel/users/forms.py:96 +#: dashboards/syspanel/users/forms.py:105 msgid "Unable to add user to primary project." msgstr "" -#: dashboards/syspanel/users/forms.py:99 +#: dashboards/syspanel/users/forms.py:108 msgid "Unable to create user." msgstr "" -#: dashboards/syspanel/users/forms.py:139 +#: dashboards/syspanel/users/forms.py:151 msgid "name" msgstr "" -#: dashboards/syspanel/users/forms.py:139 +#: dashboards/syspanel/users/forms.py:151 msgid "email" msgstr "" -#: dashboards/syspanel/users/forms.py:148 +#: dashboards/syspanel/users/forms.py:160 msgid "primary project" msgstr "" -#: dashboards/syspanel/users/forms.py:160 +#: dashboards/syspanel/users/forms.py:172 msgid "password" msgstr "" -#: dashboards/syspanel/users/forms.py:169 +#: dashboards/syspanel/users/forms.py:181 msgid "User has been updated successfully." msgstr "" -#: dashboards/syspanel/users/forms.py:173 +#: dashboards/syspanel/users/forms.py:185 #, python-format msgid "Unable to update %(attributes)s for the user." msgstr "" +#: dashboards/syspanel/users/tables.py:18 +#: dashboards/syspanel/users/templates/users/_create.html:7 +#: dashboards/syspanel/users/templates/users/_create.html:22 +#: dashboards/syspanel/users/templates/users/create.html:7 +msgid "Create User" +msgstr "" + #: dashboards/syspanel/users/tables.py:37 msgid "Enable" msgstr "" @@ -2165,14 +2463,37 @@ msgstr "" msgid "You cannot disable the user you are currently logged in as." msgstr "" -#: dashboards/syspanel/users/views.py:47 +#: dashboards/syspanel/users/tables.py:111 +msgid "User ID" +msgstr "" + +#: dashboards/syspanel/users/views.py:46 msgid "Unable to retrieve user list." msgstr "" -#: dashboards/syspanel/users/views.py:63 +#: dashboards/syspanel/users/views.py:67 msgid "Unable to update user." msgstr "" +#: dashboards/syspanel/users/views.py:93 +msgid "Unable to retrieve user roles." +msgstr "" + +#: dashboards/syspanel/users/templates/users/_create.html:17 +msgid "From here you can create a new user and assign them to a project." +msgstr "" + +#: dashboards/syspanel/users/templates/users/_update.html:7 +#: dashboards/syspanel/users/templates/users/_update.html:22 +#: dashboards/syspanel/users/templates/users/update.html:7 +msgid "Update User" +msgstr "" + +#: dashboards/syspanel/users/templates/users/_update.html:17 +msgid "" +"From here you can edit the user's details, including their default project." +msgstr "" + #: tables/actions.py:299 msgid "Filter" msgstr "" @@ -2200,25 +2521,25 @@ msgstr "" msgid "Deleted" msgstr "" -#: tables/base.py:231 +#: tables/base.py:257 #, python-format msgid "The attribute %(attr)s doesn't exist on %(obj)s." msgstr "" -#: tables/base.py:679 +#: tables/base.py:743 msgid "Actions" msgstr "" -#: tables/base.py:824 +#: tables/base.py:891 msgid "No items to display." msgstr "" -#: tables/base.py:841 +#: tables/base.py:908 #, python-format msgid "No match returned for the id \"%s\"." msgstr "" -#: tables/base.py:948 +#: tables/base.py:1015 msgid "Please select a row before taking that action." msgstr "" @@ -2238,25 +2559,25 @@ msgstr "" msgid "Error: " msgstr "" -#: templates/horizon/auth/_login.html:4 -msgid "Log In" +#: templates/horizon/client_side/_loading.html:9 +msgid "Loading…" msgstr "" -#: templates/horizon/auth/_login.html:18 -msgid "Sign In" +#: templates/horizon/common/_data_table.html:33 +msgid "Summary" msgstr "" -#: templates/horizon/auth/login.html:4 -msgid "Login" -msgstr "" - -#: templates/horizon/common/_data_table.html:31 +#: templates/horizon/common/_data_table.html:42 #, python-format msgid "Displaying %(counter)s item" msgid_plural "Displaying %(counter)s items" msgstr[0] "" msgstr[1] "" +#: templates/horizon/common/_sidebar.html:14 +msgid "Current Project" +msgstr "" + #: templates/horizon/common/_usage_summary.html:5 msgid "Select a month to query its usage" msgstr "" @@ -2281,11 +2602,11 @@ msgstr "" msgid "This Month's GB-Hours" msgstr "" -#: templatetags/horizon.py:121 +#: templatetags/horizon.py:108 msgid "No Limit" msgstr "" -#: templatetags/horizon.py:123 templatetags/horizon.py:125 +#: templatetags/horizon.py:110 templatetags/horizon.py:112 msgid "Available" msgstr "" @@ -2313,6 +2634,11 @@ msgstr "" msgid "%s MB" msgstr "" +#: templatetags/sizeformat.py:58 +#, python-format +msgid "%s GB" +msgstr "" + #: templatetags/sizeformat.py:61 #, python-format msgid "%s TB" @@ -2335,35 +2661,39 @@ msgstr "" msgid "Admin Panel" msgstr "" -#: tests/table_tests.py:94 +#: tests/message_tests.py:30 +msgid "Giant ants are attacking San Francisco!" +msgstr "" + +#: tests/table_tests.py:104 msgid "Batch" msgstr "" -#: tests/table_tests.py:95 +#: tests/table_tests.py:105 msgid "Batched" msgstr "" -#: tests/table_tests.py:96 tests/table_tests.py:107 +#: tests/table_tests.py:106 tests/table_tests.py:117 msgid "Item" msgstr "" -#: tests/table_tests.py:97 tests/table_tests.py:108 +#: tests/table_tests.py:107 tests/table_tests.py:118 msgid "Items" msgstr "" -#: tests/table_tests.py:105 +#: tests/table_tests.py:115 msgid "Down" msgstr "" -#: tests/table_tests.py:105 +#: tests/table_tests.py:115 msgid "Up" msgstr "" -#: tests/table_tests.py:106 +#: tests/table_tests.py:116 msgid "Downed" msgstr "" -#: tests/table_tests.py:106 +#: tests/table_tests.py:116 msgid "Upped" msgstr "" @@ -2391,7 +2721,7 @@ msgstr "" msgid "Recoverable Error Tab" msgstr "" -#: tests/testsettings.py:99 +#: tests/testsettings.py:111 msgid "Password must be between 8 and 18 characters." msgstr "" @@ -2445,31 +2775,31 @@ msgstr "" msgid "Puppies" msgstr "" -#: usage/base.py:94 +#: usage/base.py:97 msgid "Unable to retrieve usage information." msgstr "" -#: usage/base.py:97 +#: usage/base.py:100 msgid "You are viewing data for the future, which may or may not exist." msgstr "" -#: usage/tables.py:10 +#: usage/tables.py:11 msgid "Download CSV Summary" msgstr "" -#: usage/tables.py:23 +#: usage/tables.py:24 msgid "VCPU Hours" msgstr "" -#: usage/tables.py:30 +#: usage/tables.py:31 msgid "Disk GB Hours" msgstr "" -#: usage/tables.py:38 usage/tables.py:59 +#: usage/tables.py:39 usage/tables.py:67 msgid "Usage Summary" msgstr "" -#: usage/tables.py:51 +#: usage/tables.py:59 msgid "Uptime" msgstr "" @@ -2489,48 +2819,16 @@ msgstr "" msgid "Password is not accepted" msgstr "" -#: views/auth.py:92 -msgid "You are not authorized for that tenant." -msgstr "" - -#: views/auth_forms.py:63 -msgid "Region" -msgstr "" - -#: views/auth_forms.py:107 -msgid "Unable to authenticate for that project." -msgstr "" - -#: views/auth_forms.py:124 -msgid "Invalid user name or password." -msgstr "" - -#: views/auth_forms.py:131 -msgid "An error occurred authenticating. Please try again later." -msgstr "" - -#: views/auth_forms.py:150 -msgid "You are not authorized for any projects." -msgstr "" - -#: views/auth_forms.py:174 -msgid "You are not authorized for any available projects." -msgstr "" - -#: workflows/base.py:65 +#: workflows/base.py:69 msgid "Processing..." msgstr "" -#: workflows/base.py:478 -msgid "Save" -msgstr "" - -#: workflows/base.py:479 +#: workflows/base.py:511 #, python-format msgid "%s completed successfully." msgstr "" -#: workflows/base.py:480 +#: workflows/base.py:512 #, python-format msgid "%s did not complete." msgstr "" diff --git a/horizon/locale/zh_CN/LC_MESSAGES/django.po b/horizon/locale/zh_CN/LC_MESSAGES/django.po index 19e184f49..7f3ca33d7 100644 --- a/horizon/locale/zh_CN/LC_MESSAGES/django.po +++ b/horizon/locale/zh_CN/LC_MESSAGES/django.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: openstack-dashboard\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2012-05-29 11:47-0700\n" +"POT-Creation-Date: 2012-07-09 02:28+0000\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: ZHANG Hua \n" "Language-Team: Simplified Chinese \n" @@ -18,7 +18,7 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "\n" "Language-Team: LANGUAGE \n" @@ -17,7 +17,7 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -#: base.py:449 +#: base.py:437 msgid "Other" msgstr "其它" @@ -26,24 +26,16 @@ msgstr "其它" msgid "Please log in to continue." msgstr "無法列出容器。" -#: decorators.py:89 +#: decorators.py:87 #, python-format msgid "You are not authorized to access %s" msgstr "您的權限不足 無法查看%s" -#: decorators.py:130 -msgid "The services for this view are not available." -msgstr "這頁面的服務並不存在" - -#: exceptions.py:239 +#: exceptions.py:299 msgid "Unauthorized. Please try logging in again." msgstr "權限不足。 請重新登入。" -#: users.py:63 -msgid "Your session has expired. Please log in again." -msgstr "您的登入時效已逾期。 請重新登入。" - -#: api/keystone.py:53 +#: api/keystone.py:55 #, python-format msgid "%(type)s (%(backend)s backend)" msgstr "%(type)s (%(backend)s 後端)" @@ -58,7 +50,11 @@ msgstr "允许 %(from)s:%(to)s 從群組%(group)s的連線" msgid "ALLOW %(from)s:%(to)s from %(cidr)s" msgstr "允许 %(from)s:%(to)s 從網段%(cidr)s的連線" -#: api/swift.py:114 +#: api/nova.py:502 +msgid "Unknown instance" +msgstr "" + +#: api/swift.py:155 msgid "Unicode is not currently supported for object copy." msgstr "目前並不支援Unicode的物件複製。" @@ -66,191 +62,205 @@ msgstr "目前並不支援Unicode的物件複製。" msgid "Manage Compute" msgstr "運算管理" -#: dashboards/nova/dashboard.py:33 +#: dashboards/nova/dashboard.py:34 msgid "Object Store" msgstr "物件儲存" -#: dashboards/nova/dashboard.py:38 -#: dashboards/nova/instances_and_volumes/instances/workflows.py:33 -#: dashboards/syspanel/projects/tables.py:51 -#: templates/horizon/common/_sidebar.html:11 tests/workflows_tests.py:39 +#: dashboards/nova/dashboard.py:39 dashboards/nova/instances/workflows.py:32 +#: dashboards/syspanel/projects/tables.py:52 tests/workflows_tests.py:39 msgid "Project" msgstr "專案" #: dashboards/nova/access_and_security/panel.py:25 -#: dashboards/nova/instances_and_volumes/instances/workflows.py:311 +#: dashboards/nova/instances/workflows.py:328 msgid "Access & Security" msgstr "存取 & 安全性" -#: dashboards/nova/access_and_security/views.py:52 +#: dashboards/nova/access_and_security/views.py:51 msgid "Unable to retrieve keypair list." msgstr "無法取得金鑰列表。" -#: dashboards/nova/access_and_security/views.py:62 -#, python-format -msgid "Error fetching security_groups: %s" -msgstr "安全性群組 取得錯誤: %s" +#: dashboards/nova/access_and_security/views.py:60 +#: dashboards/nova/access_and_security/security_groups/views.py:64 +msgid "Unable to retrieve security groups." +msgstr "無法取得安全性群組" -#: dashboards/nova/access_and_security/views.py:72 -#, python-format -msgid "Error fetching floating ips: %s" -msgstr "浮動IP 取得錯誤: %s" +#: dashboards/nova/access_and_security/views.py:69 +#: dashboards/nova/access_and_security/floating_ips/workflows.py:44 +#, fuzzy +msgid "Unable to retrieve floating IP addresses." +msgstr "無法取得映像。" -#: dashboards/nova/access_and_security/views.py:79 -#: dashboards/nova/access_and_security/floating_ips/views.py:60 +#: dashboards/nova/access_and_security/views.py:76 +#: dashboards/nova/access_and_security/floating_ips/workflows.py:60 #: dashboards/syspanel/instances/views.py:58 msgid "Unable to retrieve instance list." msgstr "無法取得執行個體列表" #: dashboards/nova/access_and_security/floating_ips/forms.py:38 -#: dashboards/nova/access_and_security/floating_ips/tables.py:47 -#: dashboards/nova/templates/nova/access_and_security/floating_ips/_allocate.html:22 -msgid "Floating IP" -msgstr "浮動IP" - -#: dashboards/nova/access_and_security/floating_ips/forms.py:41 -#: dashboards/nova/images_and_snapshots/snapshots/forms.py:38 -msgid "Instance ID" -msgstr "執行個體ID" - -#: dashboards/nova/access_and_security/floating_ips/forms.py:47 -#: dashboards/nova/instances_and_volumes/volumes/forms.py:73 -msgid "Select an instance" -msgstr "選擇一個執行個體" - -#: dashboards/nova/access_and_security/floating_ips/forms.py:49 -#: dashboards/nova/instances_and_volumes/volumes/forms.py:75 -msgid "No instances available" -msgstr "沒有可用的執行個體" - -#: dashboards/nova/access_and_security/floating_ips/forms.py:52 -#: dashboards/nova/access_and_security/floating_ips/tables.py:112 -#: dashboards/nova/instances_and_volumes/instances/tables.py:58 -#: dashboards/nova/instances_and_volumes/instances/tables.py:75 -#: dashboards/nova/instances_and_volumes/instances/tables.py:90 -#: dashboards/nova/instances_and_volumes/instances/tables.py:118 -#: dashboards/nova/instances_and_volumes/volumes/tables.py:158 -#: dashboards/nova/templates/nova/instances_and_volumes/volumes/_detail_overview.html:41 -#: tests/workflows_tests.py:58 -msgid "Instance" -msgstr "執行個體" - -#: dashboards/nova/access_and_security/floating_ips/forms.py:63 -#, python-format -msgid "Successfully associated Floating IP %(ip)s with Instance: %(inst)s" -msgstr "已成功將浮動IP%(ip)s配給到執行個體%(inst)s" - -#: dashboards/nova/access_and_security/floating_ips/forms.py:69 -#: dashboards/nova/access_and_security/floating_ips/views.py:51 -msgid "Unable to associate floating IP." -msgstr "無法配給浮動IP" - -#: dashboards/nova/access_and_security/floating_ips/forms.py:75 msgid "Pool" msgstr "储备池" -#: dashboards/nova/access_and_security/floating_ips/forms.py:90 +#: dashboards/nova/access_and_security/floating_ips/forms.py:53 #, python-format msgid "" "Successfully allocated Floating IP \"%(ip)s\" to project \"%(project)s\"" msgstr "已成功將浮動IP\"%(ip)s\"分配到專案\"%(project)s\"" -#: dashboards/nova/access_and_security/floating_ips/forms.py:94 +#: dashboards/nova/access_and_security/floating_ips/forms.py:57 msgid "Unable to allocate Floating IP." msgstr "無法分配浮動IP" -#: dashboards/nova/access_and_security/floating_ips/tables.py:35 +#: dashboards/nova/access_and_security/floating_ips/tables.py:36 msgid "Allocate IP To Project" msgstr "分配IP到專案" -#: dashboards/nova/access_and_security/floating_ips/tables.py:45 +#: dashboards/nova/access_and_security/floating_ips/tables.py:46 msgid "Release" msgstr "釋放" -#: dashboards/nova/access_and_security/floating_ips/tables.py:46 +#: dashboards/nova/access_and_security/floating_ips/tables.py:47 msgid "Released" msgstr "已釋放" #: dashboards/nova/access_and_security/floating_ips/tables.py:48 -#: dashboards/nova/access_and_security/floating_ips/tables.py:126 +#: dashboards/nova/access_and_security/templates/access_and_security/floating_ips/_allocate.html:22 +msgid "Floating IP" +msgstr "浮動IP" + +#: dashboards/nova/access_and_security/floating_ips/tables.py:49 +#: dashboards/nova/access_and_security/floating_ips/tables.py:132 #: dashboards/syspanel/projects/forms.py:119 msgid "Floating IPs" msgstr "浮動IP" -#: dashboards/nova/access_and_security/floating_ips/tables.py:57 -#: dashboards/nova/templates/nova/access_and_security/floating_ips/_associate.html:22 +#: dashboards/nova/access_and_security/floating_ips/tables.py:58 +#: dashboards/nova/access_and_security/templates/access_and_security/floating_ips/associate.html:3 +#: dashboards/nova/access_and_security/templates/access_and_security/floating_ips/associate.html:6 +#: dashboards/nova/instances/tables.py:202 msgid "Associate Floating IP" msgstr "配給IP" -#: dashboards/nova/access_and_security/floating_ips/tables.py:69 +#: dashboards/nova/access_and_security/floating_ips/tables.py:75 msgid "Disassociate Floating IP" msgstr "釋放IP" -#: dashboards/nova/access_and_security/floating_ips/tables.py:83 +#: dashboards/nova/access_and_security/floating_ips/tables.py:89 #, python-format msgid "Successfully disassociated Floating IP: %s" msgstr "已成功釋放浮動IP: %s" -#: dashboards/nova/access_and_security/floating_ips/tables.py:87 +#: dashboards/nova/access_and_security/floating_ips/tables.py:93 msgid "Unable to disassociate floating IP." msgstr "無法釋放浮動IP。" -#: dashboards/nova/access_and_security/floating_ips/tables.py:92 +#: dashboards/nova/access_and_security/floating_ips/tables.py:98 #, python-format msgid "%(INSTANCE_NAME)s (%(INSTANCE_ID)s)" msgstr "" -#: dashboards/nova/access_and_security/floating_ips/tables.py:97 -#: dashboards/nova/instances_and_volumes/instances/tables.py:218 -msgid "Not available" -msgstr "不存在" - -#: dashboards/nova/access_and_security/floating_ips/tables.py:109 -#: dashboards/nova/instances_and_volumes/instances/tables.py:242 +#: dashboards/nova/access_and_security/floating_ips/tables.py:115 +#: dashboards/nova/access_and_security/floating_ips/workflows.py:28 +#: dashboards/nova/access_and_security/floating_ips/workflows.py:34 +#: dashboards/nova/instances/tables.py:270 #: dashboards/syspanel/instances/tables.py:74 msgid "IP Address" msgstr "IP位址" -#: dashboards/nova/access_and_security/floating_ips/tables.py:115 +#: dashboards/nova/access_and_security/floating_ips/tables.py:118 +#: dashboards/nova/access_and_security/floating_ips/workflows.py:31 +#: dashboards/nova/instances/tables.py:62 +#: dashboards/nova/instances/tables.py:79 +#: dashboards/nova/instances/tables.py:94 +#: dashboards/nova/instances/tables.py:122 +#: dashboards/nova/volumes/tables.py:195 tests/workflows_tests.py:58 +msgid "Instance" +msgstr "執行個體" + +#: dashboards/nova/access_and_security/floating_ips/tables.py:121 msgid "Floating IP Pool" msgstr "浮動IP集" -#: dashboards/nova/access_and_security/floating_ips/views.py:100 +#: dashboards/nova/access_and_security/floating_ips/views.py:60 msgid "No floating IP pools available." msgstr "沒有任何存在的浮動IP集" -#: dashboards/nova/access_and_security/keypairs/forms.py:38 -#: dashboards/nova/access_and_security/keypairs/forms.py:57 +#: dashboards/nova/access_and_security/floating_ips/workflows.py:35 +msgid "Select the IP address you wish to associate with the selected instance." +msgstr "" + +#: dashboards/nova/access_and_security/floating_ips/workflows.py:48 +#, fuzzy +msgid "Select an IP address" +msgstr "選擇專案" + +#: dashboards/nova/access_and_security/floating_ips/workflows.py:50 +#, fuzzy +msgid "No IP addresses available" +msgstr "沒有可用的執行個體" + +#: dashboards/nova/access_and_security/floating_ips/workflows.py:77 +#: dashboards/nova/volumes/forms.py:92 +msgid "Select an instance" +msgstr "選擇一個執行個體" + +#: dashboards/nova/access_and_security/floating_ips/workflows.py:79 +#: dashboards/nova/volumes/forms.py:94 +msgid "No instances available" +msgstr "沒有可用的執行個體" + +#: dashboards/nova/access_and_security/floating_ips/workflows.py:98 +msgid "Manage Floating IP Associations" +msgstr "" + +#: dashboards/nova/access_and_security/floating_ips/workflows.py:99 +#, fuzzy +msgid "Associate" +msgstr "配給IP" + +#: dashboards/nova/access_and_security/floating_ips/workflows.py:100 +#, python-format +msgid "IP address %s associated." +msgstr "" + +#: dashboards/nova/access_and_security/floating_ips/workflows.py:101 +#, fuzzy, python-format +msgid "Unable to associate IP address %s." +msgstr "無法配給浮動IP" + +#: dashboards/nova/access_and_security/keypairs/forms.py:40 +#: dashboards/nova/access_and_security/keypairs/forms.py:58 #: dashboards/nova/access_and_security/keypairs/tables.py:51 msgid "Keypair Name" msgstr "金鑰名稱" -#: dashboards/nova/access_and_security/keypairs/forms.py:40 +#: dashboards/nova/access_and_security/keypairs/forms.py:42 msgid "" "Keypair names may only contain letters, numbers, underscores and hyphens." msgstr "金鑰名稱只接受英文字母,數字,下劃線(_)和連字符號(-)" -#: dashboards/nova/access_and_security/keypairs/forms.py:52 -#, python-format -msgid "Error Creating Keypair: %s" -msgstr "建立金鑰錯誤: %s" +#: dashboards/nova/access_and_security/keypairs/forms.py:53 +#, fuzzy +msgid "Unable to create keypair." +msgstr "無法取得金鑰。" -#: dashboards/nova/access_and_security/keypairs/forms.py:59 +#: dashboards/nova/access_and_security/keypairs/forms.py:60 msgid "Public Key" msgstr "公鑰內容" -#: dashboards/nova/access_and_security/keypairs/forms.py:65 +#: dashboards/nova/access_and_security/keypairs/forms.py:68 #, python-format msgid "Successfully imported public key: %s" msgstr "已成功匯入公鑰: %s" -#: dashboards/nova/access_and_security/keypairs/forms.py:72 -#, python-format -msgid "Error Importing Keypair: %s" -msgstr "匯入金鑰錯誤: %s" +#: dashboards/nova/access_and_security/keypairs/forms.py:74 +#, fuzzy +msgid "Unable to import keypair." +msgstr "無法取得金鑰。" #: dashboards/nova/access_and_security/keypairs/tables.py:29 -#: dashboards/nova/instances_and_volumes/instances/workflows.py:299 +#: dashboards/nova/instances/tables.py:272 +#: dashboards/nova/instances/workflows.py:316 msgid "Keypair" msgstr "金鑰" @@ -260,16 +270,16 @@ msgid "Keypairs" msgstr "金鑰" #: dashboards/nova/access_and_security/keypairs/tables.py:38 -#: dashboards/nova/templates/nova/access_and_security/keypairs/_import.html:7 -#: dashboards/nova/templates/nova/access_and_security/keypairs/_import.html:23 -#: dashboards/nova/templates/nova/access_and_security/keypairs/import.html:6 +#: dashboards/nova/access_and_security/templates/access_and_security/keypairs/_import.html:7 +#: dashboards/nova/access_and_security/templates/access_and_security/keypairs/_import.html:23 +#: dashboards/nova/access_and_security/templates/access_and_security/keypairs/import.html:6 msgid "Import Keypair" msgstr "匯入金鑰" #: dashboards/nova/access_and_security/keypairs/tables.py:45 -#: dashboards/nova/templates/nova/access_and_security/keypairs/_create.html:7 -#: dashboards/nova/templates/nova/access_and_security/keypairs/_create.html:23 -#: dashboards/nova/templates/nova/access_and_security/keypairs/create.html:6 +#: dashboards/nova/access_and_security/templates/access_and_security/keypairs/_create.html:7 +#: dashboards/nova/access_and_security/templates/access_and_security/keypairs/_create.html:23 +#: dashboards/nova/access_and_security/templates/access_and_security/keypairs/create.html:6 msgid "Create Keypair" msgstr "建立金鑰" @@ -282,72 +292,73 @@ msgstr "金鑰指紋" msgid "Unable to create keypair: %(exc)s" msgstr "無法建立金鑰: %(exc)s" -#: dashboards/nova/access_and_security/security_groups/forms.py:41 +#: dashboards/nova/access_and_security/security_groups/forms.py:40 #: dashboards/nova/access_and_security/security_groups/tables.py:57 -#: dashboards/nova/images_and_snapshots/images/forms.py:43 -#: dashboards/nova/instances_and_volumes/volumes/tables.py:110 -#: dashboards/nova/instances_and_volumes/volumes/tables.py:127 -#: dashboards/nova/templates/nova/images_and_snapshots/images/_detail_overview.html:9 -#: dashboards/nova/templates/nova/instances_and_volumes/instances/_detail_overview.html:9 -#: dashboards/nova/templates/nova/instances_and_volumes/instances/_launch_details_help.html:9 -#: dashboards/nova/templates/nova/instances_and_volumes/volumes/_detail_overview.html:9 +#: dashboards/nova/images_and_snapshots/images/forms.py:42 +#: dashboards/nova/images_and_snapshots/images/forms.py:120 +#: dashboards/nova/images_and_snapshots/templates/images_and_snapshots/images/_detail_overview.html:9 +#: dashboards/nova/images_and_snapshots/volume_snapshots/tables.py:46 +#: dashboards/nova/instances/templates/instances/_detail_overview.html:9 +#: dashboards/nova/instances/templates/instances/_launch_details_help.html:9 +#: dashboards/nova/volumes/tables.py:135 dashboards/nova/volumes/tables.py:153 +#: dashboards/nova/volumes/templates/volumes/_detail_overview.html:9 #: dashboards/syspanel/flavors/forms.py:37 #: dashboards/syspanel/projects/forms.py:60 #: dashboards/syspanel/projects/forms.py:85 #: dashboards/syspanel/projects/tables.py:74 #: dashboards/syspanel/services/tables.py:38 +#: dashboards/syspanel/volumes/tables.py:10 msgid "Name" msgstr "名稱" -#: dashboards/nova/access_and_security/security_groups/forms.py:43 +#: dashboards/nova/access_and_security/security_groups/forms.py:42 #: dashboards/nova/access_and_security/security_groups/tables.py:58 -#: dashboards/nova/instances_and_volumes/volumes/forms.py:29 -#: dashboards/nova/instances_and_volumes/volumes/forms.py:103 -#: dashboards/nova/instances_and_volumes/volumes/tables.py:113 -#: dashboards/nova/templates/nova/access_and_security/keypairs/_create.html:16 -#: dashboards/nova/templates/nova/access_and_security/keypairs/_import.html:16 -#: dashboards/nova/templates/nova/access_and_security/security_groups/_create.html:17 -#: dashboards/nova/templates/nova/containers/_create.html:16 -#: dashboards/nova/templates/nova/instances_and_volumes/volumes/_create.html:17 -#: dashboards/nova/templates/nova/instances_and_volumes/volumes/_create_snapshot.html:17 -#: dashboards/nova/templates/nova/instances_and_volumes/volumes/_detail_overview.html:14 -#: dashboards/nova/templates/nova/objects/_copy.html:16 -#: dashboards/nova/templates/nova/objects/_upload.html:17 +#: dashboards/nova/access_and_security/templates/access_and_security/keypairs/_create.html:16 +#: dashboards/nova/access_and_security/templates/access_and_security/keypairs/_import.html:16 +#: dashboards/nova/access_and_security/templates/access_and_security/security_groups/_create.html:17 +#: dashboards/nova/containers/templates/containers/_copy.html:16 +#: dashboards/nova/containers/templates/containers/_create.html:16 +#: dashboards/nova/containers/templates/containers/_upload.html:17 +#: dashboards/nova/volumes/forms.py:25 dashboards/nova/volumes/forms.py:125 +#: dashboards/nova/volumes/tables.py:138 +#: dashboards/nova/volumes/templates/volumes/_create.html:18 +#: dashboards/nova/volumes/templates/volumes/_create_snapshot.html:17 +#: dashboards/nova/volumes/templates/volumes/_detail_overview.html:14 +#: dashboards/syspanel/flavors/templates/flavors/_create.html:17 +#: dashboards/syspanel/images/templates/images/_update.html:17 #: dashboards/syspanel/projects/forms.py:63 #: dashboards/syspanel/projects/forms.py:88 #: dashboards/syspanel/projects/tables.py:76 -#: dashboards/syspanel/templates/syspanel/flavors/_create.html:17 -#: dashboards/syspanel/templates/syspanel/images/_update.html:17 -#: dashboards/syspanel/templates/syspanel/projects/_add_user.html:17 -#: dashboards/syspanel/templates/syspanel/projects/_create.html:17 -#: dashboards/syspanel/templates/syspanel/projects/_quotas.html:16 -#: dashboards/syspanel/templates/syspanel/projects/_update.html:17 -#: dashboards/syspanel/templates/syspanel/users/_create.html:16 -#: dashboards/syspanel/templates/syspanel/users/_update.html:16 +#: dashboards/syspanel/projects/templates/projects/_add_user.html:17 +#: dashboards/syspanel/projects/templates/projects/_create.html:17 +#: dashboards/syspanel/projects/templates/projects/_quotas.html:16 +#: dashboards/syspanel/projects/templates/projects/_update.html:17 +#: dashboards/syspanel/users/templates/users/_create.html:16 +#: dashboards/syspanel/users/templates/users/_update.html:16 msgid "Description" msgstr "敘述" -#: dashboards/nova/access_and_security/security_groups/forms.py:51 -#, python-format -msgid "Successfully created security_group: %s" +#: dashboards/nova/access_and_security/security_groups/forms.py:50 +#, fuzzy, python-format +msgid "Successfully created security group: %s" msgstr "已成功建立安全性群組: %s" -#: dashboards/nova/access_and_security/security_groups/forms.py:54 +#: dashboards/nova/access_and_security/security_groups/forms.py:53 msgid "Unable to create security group." msgstr "無法建立安全性群組" -#: dashboards/nova/access_and_security/security_groups/forms.py:59 +#: dashboards/nova/access_and_security/security_groups/forms.py:58 #: dashboards/nova/access_and_security/security_groups/tables.py:92 msgid "IP Protocol" msgstr "IP協定" -#: dashboards/nova/access_and_security/security_groups/forms.py:65 -#: dashboards/nova/access_and_security/security_groups/forms.py:71 +#: dashboards/nova/access_and_security/security_groups/forms.py:64 +#: dashboards/nova/access_and_security/security_groups/forms.py:70 #: dashboards/nova/access_and_security/security_groups/tables.py:94 msgid "From Port" msgstr "從端口" -#: dashboards/nova/access_and_security/security_groups/forms.py:66 +#: dashboards/nova/access_and_security/security_groups/forms.py:65 msgid "" "TCP/UDP: Enter integer value between 1 and 65535. ICMP: enter a value for " "ICMP type in the range (-1: 255)" @@ -355,18 +366,18 @@ msgstr "" "TCP/UDP: 請輸入介於1到65535的整數。 ICMP: 請輸入介於(-1: 255)的ICMP類別代" "號" -#: dashboards/nova/access_and_security/security_groups/forms.py:72 -#: dashboards/nova/images_and_snapshots/images/tables.py:89 +#: dashboards/nova/access_and_security/security_groups/forms.py:71 +#: dashboards/nova/images_and_snapshots/images/tables.py:114 msgid "Type" msgstr "類別" -#: dashboards/nova/access_and_security/security_groups/forms.py:74 -#: dashboards/nova/access_and_security/security_groups/forms.py:80 +#: dashboards/nova/access_and_security/security_groups/forms.py:73 +#: dashboards/nova/access_and_security/security_groups/forms.py:79 #: dashboards/nova/access_and_security/security_groups/tables.py:95 msgid "To Port" msgstr "到端口" -#: dashboards/nova/access_and_security/security_groups/forms.py:75 +#: dashboards/nova/access_and_security/security_groups/forms.py:74 msgid "" "TCP/UDP: Enter integer value between 1 and 65535. ICMP: enter a value for " "ICMP code in the range (-1: 255)" @@ -374,46 +385,64 @@ msgstr "" "TCP/UDP: 請輸入介於1到65535的整數。 ICMP: 請輸入介於(-1: 255)的ICMP類別代" "號" -#: dashboards/nova/access_and_security/security_groups/forms.py:81 +#: dashboards/nova/access_and_security/security_groups/forms.py:80 msgid "Code" msgstr "代號" -#: dashboards/nova/access_and_security/security_groups/forms.py:84 +#: dashboards/nova/access_and_security/security_groups/forms.py:83 msgid "Source Group" msgstr "安全性群組" -#: dashboards/nova/access_and_security/security_groups/forms.py:85 +#: dashboards/nova/access_and_security/security_groups/forms.py:84 msgid "CIDR" msgstr "" -#: dashboards/nova/access_and_security/security_groups/forms.py:88 +#: dashboards/nova/access_and_security/security_groups/forms.py:87 msgid "Classless Inter-Domain Routing (e.g. 192.168.0.0/24)" msgstr "Classless Inter-Domain Routing (例如192.168.0.0/24)" -#: dashboards/nova/access_and_security/security_groups/forms.py:115 +#: dashboards/nova/access_and_security/security_groups/forms.py:116 +#, fuzzy +msgid "The ICMP type is invalid." +msgstr "\"到端口\"不符合條件" + +#: dashboards/nova/access_and_security/security_groups/forms.py:119 +#, fuzzy +msgid "The ICMP code is invalid." +msgstr "\"到端口\"不符合條件" + +#: dashboards/nova/access_and_security/security_groups/forms.py:122 +msgid "The ICMP type not in range (-1, 255)" +msgstr "" + +#: dashboards/nova/access_and_security/security_groups/forms.py:125 +msgid "The ICMP code not in range (-1, 255)" +msgstr "" + +#: dashboards/nova/access_and_security/security_groups/forms.py:129 msgid "The \"from\" port number is invalid." msgstr "\"從端口\"不符合條件" -#: dashboards/nova/access_and_security/security_groups/forms.py:118 +#: dashboards/nova/access_and_security/security_groups/forms.py:132 msgid "The \"to\" port number is invalid." msgstr "\"到端口\"不符合條件" -#: dashboards/nova/access_and_security/security_groups/forms.py:121 +#: dashboards/nova/access_and_security/security_groups/forms.py:135 msgid "" "The \"to\" port number must be greater than or equal to the \"from\" port " "number." msgstr "\"到端口\"必須是大於或等於\"從端口\"的整數" -#: dashboards/nova/access_and_security/security_groups/forms.py:127 +#: dashboards/nova/access_and_security/security_groups/forms.py:141 msgid "Either CIDR or Source Group may be specified, but not both." msgstr "只能指定CIDR或安全性群組,不能同時全選。" -#: dashboards/nova/access_and_security/security_groups/forms.py:148 +#: dashboards/nova/access_and_security/security_groups/forms.py:163 #, python-format msgid "Successfully added rule: %s" msgstr "已成功新增規則: %s" -#: dashboards/nova/access_and_security/security_groups/forms.py:152 +#: dashboards/nova/access_and_security/security_groups/forms.py:166 #, fuzzy msgid "Unable to add rule to security group." msgstr "無法建立安全性群組" @@ -424,15 +453,15 @@ msgstr "安全性群組" #: dashboards/nova/access_and_security/security_groups/tables.py:31 #: dashboards/nova/access_and_security/security_groups/tables.py:65 -#: dashboards/nova/instances_and_volumes/instances/workflows.py:303 -#: dashboards/nova/templates/nova/instances_and_volumes/instances/_detail_overview.html:47 +#: dashboards/nova/instances/workflows.py:320 +#: dashboards/nova/instances/templates/instances/_detail_overview.html:49 msgid "Security Groups" msgstr "安全性群組" #: dashboards/nova/access_and_security/security_groups/tables.py:44 -#: dashboards/nova/templates/nova/access_and_security/security_groups/_create.html:7 -#: dashboards/nova/templates/nova/access_and_security/security_groups/_create.html:23 -#: dashboards/nova/templates/nova/access_and_security/security_groups/create.html:6 +#: dashboards/nova/access_and_security/templates/access_and_security/security_groups/_create.html:7 +#: dashboards/nova/access_and_security/templates/access_and_security/security_groups/_create.html:23 +#: dashboards/nova/access_and_security/templates/access_and_security/security_groups/create.html:6 msgid "Create Security Group" msgstr "建立安全性群組" @@ -460,69 +489,181 @@ msgstr "安全性群組規則" msgid "Unable to retrieve security group." msgstr "無法取得安全性群組" -#: dashboards/nova/access_and_security/security_groups/views.py:64 -msgid "Unable to retrieve security groups." -msgstr "無法取得安全性群組" +#: dashboards/nova/access_and_security/templates/access_and_security/index.html:6 +msgid "Access & Security" +msgstr "存取 & 安全性" + +#: dashboards/nova/access_and_security/templates/access_and_security/floating_ips/_allocate.html:8 +#: dashboards/nova/access_and_security/templates/access_and_security/floating_ips/allocate.html:3 +msgid "Allocate Floating IP" +msgstr "分配浮動IP" + +#: dashboards/nova/access_and_security/templates/access_and_security/floating_ips/_allocate.html:17 +#: dashboards/nova/images_and_snapshots/templates/images_and_snapshots/images/_create.html:16 +#: dashboards/nova/images_and_snapshots/templates/images_and_snapshots/images/_update.html:16 +#: dashboards/nova/images_and_snapshots/templates/images_and_snapshots/snapshots/_create.html:17 +#: dashboards/nova/instances/templates/instances/_update.html:16 +#: dashboards/settings/ec2/templates/ec2/download_form.html:17 +#: dashboards/settings/project/templates/project/_openrc.html:24 +#: dashboards/settings/user/templates/user/_settings.html:17 +msgid "Description:" +msgstr "詳述:" + +#: dashboards/nova/access_and_security/templates/access_and_security/floating_ips/_allocate.html:18 +msgid "Allocate a floating IP from a given floating ip pool." +msgstr "從浮動IP集分配一個浮動IP" + +#: dashboards/nova/access_and_security/templates/access_and_security/floating_ips/_allocate.html:20 +#: dashboards/nova/instances/templates/instances/_launch_details_help.html:19 +msgid "Project Quotas" +msgstr "專案配額" + +#: dashboards/nova/access_and_security/templates/access_and_security/floating_ips/_allocate.html:31 +msgid "Allocate IP" +msgstr "分配IP" + +#: dashboards/nova/access_and_security/templates/access_and_security/floating_ips/_allocate.html:32 +#: dashboards/nova/access_and_security/templates/access_and_security/keypairs/_create.html:24 +#: dashboards/nova/access_and_security/templates/access_and_security/keypairs/_import.html:24 +#: dashboards/nova/access_and_security/templates/access_and_security/security_groups/_create.html:24 +#: dashboards/nova/access_and_security/templates/access_and_security/security_groups/_edit_rules.html:20 +#: dashboards/nova/containers/templates/containers/_copy.html:23 +#: dashboards/nova/containers/templates/containers/_create.html:23 +#: dashboards/nova/containers/templates/containers/_upload.html:24 +#: dashboards/nova/images_and_snapshots/templates/images_and_snapshots/images/_create.html:32 +#: dashboards/nova/images_and_snapshots/templates/images_and_snapshots/images/_update.html:23 +#: dashboards/nova/images_and_snapshots/templates/images_and_snapshots/snapshots/_create.html:24 +#: dashboards/nova/instances/templates/instances/_update.html:23 +#: dashboards/nova/volumes/templates/volumes/_attach.html:20 +#: dashboards/nova/volumes/templates/volumes/_create.html:56 +#: dashboards/nova/volumes/templates/volumes/_create_snapshot.html:24 +#: dashboards/settings/ec2/templates/ec2/download_form.html:24 +#: dashboards/settings/project/templates/project/_openrc.html:31 +#: dashboards/settings/user/templates/user/_settings.html:24 +#: dashboards/syspanel/flavors/templates/flavors/_create.html:24 +#: dashboards/syspanel/images/templates/images/_update.html:24 +#: dashboards/syspanel/projects/templates/projects/_add_user.html:24 +#: dashboards/syspanel/projects/templates/projects/_create.html:24 +#: dashboards/syspanel/projects/templates/projects/_quotas.html:23 +#: dashboards/syspanel/projects/templates/projects/_update.html:24 +#: dashboards/syspanel/users/templates/users/_create.html:23 +#: dashboards/syspanel/users/templates/users/_update.html:23 +#: templates/horizon/common/_workflow.html:30 +msgid "Cancel" +msgstr "取消" + +#: dashboards/nova/access_and_security/templates/access_and_security/keypairs/_create.html:17 +#: dashboards/nova/access_and_security/templates/access_and_security/keypairs/_import.html:17 +msgid "" +"Keypairs are ssh credentials which are injected into images when they are " +"launched. Creating a new key pair registers the public key and downloads the " +"private key (a .pem file)." +msgstr "" +"金鑰是用來注入到啟動映像的ssh認證。建立一個新的金鑰會自動把公鑰註冊及下載一份" +"私鑰(.pem檔案)" + +#: dashboards/nova/access_and_security/templates/access_and_security/keypairs/_create.html:18 +#: dashboards/nova/access_and_security/templates/access_and_security/keypairs/_import.html:18 +msgid "Protect and use the key as you would any normal ssh private key." +msgstr "請妥善安全保管及使用這ssh私鑰" + +#: dashboards/nova/access_and_security/templates/access_and_security/keypairs/download.html:3 +#: dashboards/nova/access_and_security/templates/access_and_security/keypairs/download.html:6 +msgid "Download Keypair" +msgstr "下載金鑰" + +#: dashboards/nova/access_and_security/templates/access_and_security/keypairs/download.html:11 +#, python-format +msgid "" +"The keypair "%(keypair_name)s" should download automatically. If " +"not use the link below." +msgstr "金鑰"%(keypair_name)s"應該會自動地下載。否則請使用以下連結" + +#: dashboards/nova/access_and_security/templates/access_and_security/keypairs/download.html:15 +#, python-format +msgid "Download keypair "%(keypair_name)s"" +msgstr "下載金鑰"%(keypair_name)s"" + +#: dashboards/nova/access_and_security/templates/access_and_security/security_groups/_create.html:18 +msgid "From here you can create a new security group" +msgstr "您可以在這裡建立一個新的安全性群組" + +#: dashboards/nova/access_and_security/templates/access_and_security/security_groups/_edit_rules.html:9 +#: dashboards/nova/access_and_security/templates/access_and_security/security_groups/edit_rules.html:6 +msgid "Edit Security Group Rules" +msgstr "編輯安全性群組規則" + +#: dashboards/nova/access_and_security/templates/access_and_security/security_groups/_edit_rules.html:12 +#: dashboards/nova/access_and_security/templates/access_and_security/security_groups/_edit_rules.html:19 +msgid "Add Rule" +msgstr "新增規則" #: dashboards/nova/containers/forms.py:38 msgid "Slash is not an allowed character." msgstr "斜線符號不能被接受" -#: dashboards/nova/containers/forms.py:45 -#: dashboards/nova/containers/tables.py:88 +#: dashboards/nova/containers/forms.py:48 +#: dashboards/nova/containers/tables.py:91 msgid "Container Name" msgstr "容器名稱" -#: dashboards/nova/containers/forms.py:51 +#: dashboards/nova/containers/forms.py:56 msgid "Container created successfully." msgstr "容器已成功建立" -#: dashboards/nova/containers/forms.py:53 +#: dashboards/nova/containers/forms.py:67 +#, fuzzy +msgid "Folder created successfully." +msgstr "容器已成功建立" + +#: dashboards/nova/containers/forms.py:75 msgid "Unable to create container." msgstr "無法建立容器" -#: dashboards/nova/containers/forms.py:59 -#: dashboards/nova/containers/tables.py:155 +#: dashboards/nova/containers/forms.py:85 +#: dashboards/nova/containers/tables.py:157 msgid "Object Name" msgstr "物件名稱" -#: dashboards/nova/containers/forms.py:61 +#: dashboards/nova/containers/forms.py:87 msgid "File" msgstr "檔案" -#: dashboards/nova/containers/forms.py:73 +#: dashboards/nova/containers/forms.py:103 msgid "Object was successfully uploaded." msgstr "物件已成功上傳" -#: dashboards/nova/containers/forms.py:75 +#: dashboards/nova/containers/forms.py:105 msgid "Unable to upload object." msgstr "無法上傳物件" -#: dashboards/nova/containers/forms.py:81 +#: dashboards/nova/containers/forms.py:111 msgid "Destination container" msgstr "目的地容器" -#: dashboards/nova/containers/forms.py:84 +#: dashboards/nova/containers/forms.py:115 msgid "Destination object name" msgstr "目的地物件名稱" -#: dashboards/nova/containers/forms.py:107 -#, python-format -msgid "Object \"%(obj)s\" copied to container \"%(container)s\"." -msgstr "物件\"%(obj)s\"已複製到容器\"%(container)s\"。" - -#: dashboards/nova/containers/forms.py:115 +#: dashboards/nova/containers/forms.py:145 +#: dashboards/nova/containers/forms.py:169 msgid "Unable to copy object." msgstr "無法複製物件" +#: dashboards/nova/containers/forms.py:161 +#, python-format +msgid "Copied \"%(orig)s\" to \"%(dest)s\" as \"%(new)s\"." +msgstr "" + #: dashboards/nova/containers/panel.py:28 #: dashboards/nova/containers/tables.py:35 -#: dashboards/nova/containers/tables.py:99 -#: dashboards/nova/templates/nova/containers/index.html:8 +#: dashboards/nova/containers/tables.py:102 +#: dashboards/nova/containers/templates/containers/index.html:6 msgid "Containers" msgstr "容器" #: dashboards/nova/containers/tables.py:34 +#: dashboards/nova/containers/templates/containers/detail.html:7 msgid "Container" msgstr "容器" @@ -531,67 +672,139 @@ msgid "Containers must be empty before deletion." msgstr "" #: dashboards/nova/containers/tables.py:48 -#: dashboards/nova/templates/nova/containers/_create.html:7 -#: dashboards/nova/templates/nova/containers/_create.html:22 -#: dashboards/nova/templates/nova/containers/create.html:6 +#: dashboards/nova/containers/templates/containers/_create.html:7 +#: dashboards/nova/containers/templates/containers/_create.html:22 +#: dashboards/nova/containers/templates/containers/create.html:6 msgid "Create Container" msgstr "建立容器" #: dashboards/nova/containers/tables.py:55 -msgid "List Objects" -msgstr "列出物件" +#, fuzzy +msgid "View Container" +msgstr "容器" #: dashboards/nova/containers/tables.py:62 -#: dashboards/nova/templates/nova/objects/_upload.html:23 -#: dashboards/nova/templates/nova/objects/upload.html:3 +#: dashboards/nova/containers/templates/containers/_upload.html:23 +#: dashboards/nova/containers/templates/containers/upload.html:3 msgid "Upload Object" msgstr "上傳物件" -#: dashboards/nova/containers/tables.py:90 -#: dashboards/nova/containers/tables.py:106 -#: dashboards/nova/containers/tables.py:163 -#: dashboards/nova/templates/nova/objects/index.html:3 +#: dashboards/nova/containers/tables.py:93 +#: dashboards/nova/containers/tables.py:109 +#: dashboards/nova/containers/tables.py:169 +#: dashboards/nova/containers/templates/containers/detail.html:3 msgid "Objects" msgstr "物件" -#: dashboards/nova/containers/tables.py:92 -#: dashboards/nova/containers/tables.py:156 -#: dashboards/nova/instances_and_volumes/instances/tables.py:243 -#: dashboards/nova/instances_and_volumes/volumes/tables.py:114 -#: dashboards/nova/templates/nova/images_and_snapshots/images/_detail_overview.html:30 -#: dashboards/nova/templates/nova/instances_and_volumes/volumes/_detail_overview.html:26 +#: dashboards/nova/containers/tables.py:95 +#: dashboards/nova/containers/tables.py:160 +#: dashboards/nova/images_and_snapshots/templates/images_and_snapshots/images/_detail_overview.html:30 +#: dashboards/nova/instances/tables.py:271 +#: dashboards/nova/volumes/tables.py:140 +#: dashboards/nova/volumes/templates/volumes/_detail_overview.html:26 #: dashboards/syspanel/instances/tables.py:76 msgid "Size" msgstr "大小" -#: dashboards/nova/containers/tables.py:105 +#: dashboards/nova/containers/tables.py:108 msgid "Object" msgstr "物件" -#: dashboards/nova/containers/tables.py:116 +#: dashboards/nova/containers/tables.py:119 msgid "Copy" msgstr "複製" -#: dashboards/nova/containers/tables.py:127 +#: dashboards/nova/containers/tables.py:130 msgid "Download" msgstr "下載" -#: dashboards/nova/containers/views.py:57 +#: dashboards/nova/containers/tables.py:181 +#, fuzzy +msgid "Create Folder" +msgstr "建立規格" + +#: dashboards/nova/containers/tables.py:193 +msgid "Folder" +msgstr "" + +#: dashboards/nova/containers/tables.py:194 +msgid "Folders" +msgstr "" + +#: dashboards/nova/containers/tables.py:200 +#, fuzzy +msgid "Subfolder Name" +msgstr "伺服器名稱" + +#: dashboards/nova/containers/tables.py:208 +msgid "Subfolders" +msgstr "" + +#: dashboards/nova/containers/views.py:58 msgid "Unable to retrieve container list." msgstr "無法取得容器列表。" -#: dashboards/nova/containers/views.py:84 +#: dashboards/nova/containers/views.py:103 msgid "Unable to retrieve object list." msgstr "無法取得物件列表。" -#: dashboards/nova/containers/views.py:122 +#: dashboards/nova/containers/views.py:161 msgid "Unable to retrieve object." msgstr "無法取得物件。" -#: dashboards/nova/containers/views.py:144 +#: dashboards/nova/containers/views.py:183 msgid "Unable to list containers." msgstr "無法列出容器。" +#: dashboards/nova/containers/templates/containers/_copy.html:7 +#: dashboards/nova/containers/templates/containers/_copy.html:22 +#: dashboards/nova/containers/templates/containers/copy.html:3 +#: dashboards/nova/containers/templates/containers/copy.html:6 +msgid "Copy Object" +msgstr "複製物件" + +#: dashboards/nova/containers/templates/containers/_copy.html:17 +msgid "" +"Make a new copy of an existing object to store in this or another container. " +"You may also specify a path at which the new copy should live inside of the " +"selected container." +msgstr "" + +#: dashboards/nova/containers/templates/containers/_create.html:17 +msgid "" +"A container is a storage compartment for your data and provides a way for " +"you to organize your data. You can think of a container as a folder in " +"Windows ® or a directory in UNIX ®. The primary difference between a " +"container and these other file system concepts is that containers cannot be " +"nested. You can, however, create an unlimited number of containers within " +"your account. Data must be stored in a container so you must have at least " +"one container defined in your account prior to uploading data." +msgstr "" +"容器是資料的儲存分隔,提供一種分類管理資料的方法。您可以把容器想像成Windows " +"®中的資料夾或UNIX ®中的目錄。容器和其他檔案系統的主要差別是,容器裡面" +"不能有其他容器。但是,您可以在您的帳戶建立無限個容器。資料必須儲存在容器裡," +"因此您必須在帳戶內建立至少一個容器,才能上傳資料。" + +#: dashboards/nova/containers/templates/containers/_upload.html:8 +msgid "Upload Object To Container" +msgstr "上傳物件到容器" + +#: dashboards/nova/containers/templates/containers/_upload.html:18 +msgid "" +"An object is the basic storage entity and any optional metadata that " +"represents the files you store in the OpenStack Object Storage system. When " +"you upload data to OpenStack Object Storage, the data is stored as-is (no " +"compression or encryption) and consists of a location (container), the " +"object's name, and any metadata consisting of key/value pairs." +msgstr "" +"物件是OpenStack物件儲存系統裡,用來代表所儲存的檔案加上相關的metadata組成的儲" +"存基本單位。當您上傳資料到OpenStack物件儲存時,該資料是原封不動(沒有壓縮或加" +"密)的被儲存,包含相關位置(容器),物件名稱,及相關的key/value metadata" + +#: dashboards/nova/containers/templates/containers/upload.html:6 +msgid "Upload Objects" +msgstr "上傳物件" + #: dashboards/nova/images_and_snapshots/panel.py:25 msgid "Images & Snapshots" msgstr "映像 & 快照" @@ -609,94 +822,150 @@ msgid "Unable to retrieve volume snapshots." msgstr "無法取得空間快照" #: dashboards/nova/images_and_snapshots/images/forms.py:44 -#: dashboards/nova/templates/nova/images_and_snapshots/images/_detail_overview.html:48 -msgid "Kernel ID" +msgid "Image Location" msgstr "" -#: dashboards/nova/images_and_snapshots/images/forms.py:49 -#: dashboards/nova/templates/nova/images_and_snapshots/images/_detail_overview.html:52 -msgid "Ramdisk ID" +#: dashboards/nova/images_and_snapshots/images/forms.py:45 +msgid "An external (HTTP) URL where the image should be loaded from." msgstr "" -#: dashboards/nova/images_and_snapshots/images/forms.py:54 -#: dashboards/nova/templates/nova/images_and_snapshots/images/_detail_overview.html:44 -msgid "Architecture" -msgstr "系統架構" - -#: dashboards/nova/images_and_snapshots/images/forms.py:58 -#: dashboards/nova/images_and_snapshots/images/tables.py:98 -#: dashboards/nova/templates/nova/images_and_snapshots/images/_detail_overview.html:32 -msgid "Container Format" -msgstr "容器格式" - -#: dashboards/nova/images_and_snapshots/images/forms.py:62 -#: dashboards/nova/templates/nova/images_and_snapshots/images/_detail_overview.html:34 -msgid "Disk Format" +#: dashboards/nova/images_and_snapshots/images/forms.py:48 +#: dashboards/nova/images_and_snapshots/images/forms.py:135 +#: dashboards/nova/images_and_snapshots/images/tables.py:125 +#, fuzzy +msgid "Format" msgstr "磁碟格式" -#: dashboards/nova/images_and_snapshots/images/forms.py:66 -#: dashboards/nova/images_and_snapshots/images/tables.py:94 -#: dashboards/nova/templates/nova/images_and_snapshots/images/_detail_overview.html:15 +#: dashboards/nova/images_and_snapshots/images/forms.py:52 +msgid "AKI - Amazon Kernel Image" +msgstr "" + +#: dashboards/nova/images_and_snapshots/images/forms.py:55 +msgid "AMI - Amazon Machine Image" +msgstr "" + +#: dashboards/nova/images_and_snapshots/images/forms.py:58 +msgid "ARI - Amazon Ramdisk Image" +msgstr "" + +#: dashboards/nova/images_and_snapshots/images/forms.py:61 +msgid "ISO - Optical Disk Image" +msgstr "" + +#: dashboards/nova/images_and_snapshots/images/forms.py:63 +msgid "QCOW2 - QEMU Emulator" +msgstr "" + +#: dashboards/nova/images_and_snapshots/images/forms.py:70 +msgid "Minimum Disk (GB)" +msgstr "" + +#: dashboards/nova/images_and_snapshots/images/forms.py:71 +#: dashboards/nova/images_and_snapshots/images/forms.py:78 +msgid "" +"The minimum disk size required to boot the image. If unspecified, this value " +"defaults to 0 (no minimum)." +msgstr "" + +#: dashboards/nova/images_and_snapshots/images/forms.py:77 +msgid "Minimum Ram (MB)" +msgstr "" + +#: dashboards/nova/images_and_snapshots/images/forms.py:84 +#: dashboards/nova/images_and_snapshots/images/forms.py:139 +#: dashboards/nova/images_and_snapshots/images/tables.py:122 +#: dashboards/nova/images_and_snapshots/templates/images_and_snapshots/images/_detail_overview.html:15 msgid "Public" msgstr "公開" -#: dashboards/nova/images_and_snapshots/images/forms.py:72 +#: dashboards/nova/images_and_snapshots/images/forms.py:108 +#, python-format +msgid "Your image %s has been queued for creation." +msgstr "" + +#: dashboards/nova/images_and_snapshots/images/forms.py:111 +#, fuzzy +msgid "Unable to create new image." +msgstr "無法取得映像。" + +#: dashboards/nova/images_and_snapshots/images/forms.py:121 +#: dashboards/nova/images_and_snapshots/templates/images_and_snapshots/images/_detail_overview.html:48 +msgid "Kernel ID" +msgstr "" + +#: dashboards/nova/images_and_snapshots/images/forms.py:126 +#: dashboards/nova/images_and_snapshots/templates/images_and_snapshots/images/_detail_overview.html:52 +msgid "Ramdisk ID" +msgstr "" + +#: dashboards/nova/images_and_snapshots/images/forms.py:131 +#: dashboards/nova/images_and_snapshots/templates/images_and_snapshots/images/_detail_overview.html:44 +msgid "Architecture" +msgstr "系統架構" + +#: dashboards/nova/images_and_snapshots/images/forms.py:144 #, python-format msgid "Unable to update image \"%s\"." msgstr "無法更新映像\"%s\"." -#: dashboards/nova/images_and_snapshots/images/forms.py:88 +#: dashboards/nova/images_and_snapshots/images/forms.py:163 msgid "Image was successfully updated." msgstr "映像已成功更新" #: dashboards/nova/images_and_snapshots/images/tables.py:33 #: dashboards/nova/images_and_snapshots/snapshots/tables.py:32 -#: dashboards/nova/instances_and_volumes/instances/workflows.py:377 +#: dashboards/nova/instances/workflows.py:394 msgid "Launch" msgstr "啟動" #: dashboards/nova/images_and_snapshots/images/tables.py:45 -#: dashboards/nova/instances_and_volumes/instances/workflows.py:161 -#: dashboards/nova/instances_and_volumes/instances/workflows.py:166 +#: dashboards/nova/images_and_snapshots/images/tables.py:81 +#: dashboards/nova/instances/workflows.py:162 +#: dashboards/nova/instances/workflows.py:167 msgid "Image" msgstr "映像" #: dashboards/nova/images_and_snapshots/images/tables.py:46 -#: dashboards/nova/images_and_snapshots/images/tables.py:102 +#: dashboards/nova/images_and_snapshots/images/tables.py:131 #: dashboards/syspanel/images/panel.py:28 -#: dashboards/syspanel/images/tables.py:38 -#: dashboards/syspanel/templates/syspanel/images/index.html:3 -#: dashboards/syspanel/templates/syspanel/images/index.html:6 +#: dashboards/syspanel/images/tables.py:43 +#: dashboards/syspanel/images/templates/images/index.html:3 +#: dashboards/syspanel/images/templates/images/index.html:6 msgid "Images" msgstr "映像" #: dashboards/nova/images_and_snapshots/images/tables.py:60 +#: dashboards/nova/images_and_snapshots/templates/images_and_snapshots/images/_create.html:31 +#, fuzzy +msgid "Create Image" +msgstr "更新映像" + +#: dashboards/nova/images_and_snapshots/images/tables.py:67 #: dashboards/syspanel/users/tables.py:30 msgid "Edit" msgstr "編輯" -#: dashboards/nova/images_and_snapshots/images/tables.py:87 -#: dashboards/nova/templates/nova/instances_and_volumes/instances/_detail_overview.html:72 +#: dashboards/nova/images_and_snapshots/images/tables.py:112 +#: dashboards/nova/instances/templates/instances/_detail_overview.html:74 +#: dashboards/syspanel/images/tables.py:39 msgid "Image Name" msgstr "映像名稱" -#: dashboards/nova/images_and_snapshots/images/tables.py:92 -#: dashboards/nova/instances_and_volumes/instances/tables.py:246 -#: dashboards/nova/instances_and_volumes/volumes/tables.py:117 -#: dashboards/nova/templates/nova/images_and_snapshots/images/_detail_overview.html:13 -#: dashboards/nova/templates/nova/instances_and_volumes/instances/_detail_overview.html:13 -#: dashboards/nova/templates/nova/instances_and_volumes/volumes/_detail_overview.html:17 +#: dashboards/nova/images_and_snapshots/images/tables.py:118 +#: dashboards/nova/images_and_snapshots/templates/images_and_snapshots/images/_detail_overview.html:13 +#: dashboards/nova/instances/tables.py:275 +#: dashboards/nova/instances/templates/instances/_detail_overview.html:13 +#: dashboards/nova/volumes/tables.py:143 +#: dashboards/nova/volumes/templates/volumes/_detail_overview.html:17 #: dashboards/syspanel/instances/tables.py:80 msgid "Status" msgstr "狀態" #: dashboards/nova/images_and_snapshots/images/tabs.py:26 -#: dashboards/nova/instances_and_volumes/instances/tabs.py:25 -#: dashboards/nova/instances_and_volumes/volumes/tabs.py:26 -#: dashboards/nova/overview/panel.py:28 -#: dashboards/nova/templates/nova/overview/usage.html:6 -#: dashboards/syspanel/overview/panel.py:28 -#: dashboards/syspanel/templates/syspanel/overview/usage.html:6 +#: dashboards/nova/instances/tabs.py:25 dashboards/nova/overview/panel.py:28 +#: dashboards/nova/overview/templates/overview/usage.html:6 +#: dashboards/nova/volumes/tabs.py:26 dashboards/syspanel/overview/panel.py:28 +#: dashboards/syspanel/overview/templates/overview/usage.html:6 msgid "Overview" msgstr "總覽" @@ -704,13 +973,17 @@ msgstr "總覽" msgid "Unable to retrieve image details." msgstr "無法取得執行個體的詳細資料" -#: dashboards/nova/images_and_snapshots/images/views.py:50 +#: dashboards/nova/images_and_snapshots/images/views.py:57 #, fuzzy msgid "Unable to retrieve image." msgstr "無法取得映像。" +#: dashboards/nova/images_and_snapshots/snapshots/forms.py:38 +msgid "Instance ID" +msgstr "執行個體ID" + #: dashboards/nova/images_and_snapshots/snapshots/forms.py:41 -#: dashboards/nova/instances_and_volumes/volumes/forms.py:101 +#: dashboards/nova/volumes/forms.py:123 msgid "Snapshot Name" msgstr "快照名稱" @@ -724,9 +997,9 @@ msgid "Unable to create snapshot." msgstr "無法建立快照。" #: dashboards/nova/images_and_snapshots/snapshots/tables.py:47 -#: dashboards/nova/instances_and_volumes/instances/tables.py:158 -#: dashboards/nova/instances_and_volumes/instances/workflows.py:101 -#: dashboards/nova/instances_and_volumes/instances/workflows.py:162 +#: dashboards/nova/instances/tables.py:162 +#: dashboards/nova/instances/workflows.py:101 +#: dashboards/nova/instances/workflows.py:163 msgid "Snapshot" msgstr "快照" @@ -747,781 +1020,644 @@ msgstr "無法取得執行個體" msgid "To create a snapshot, the instance must be in the \"%s\" state." msgstr "建立快照時,執行個體必須是\"%s\"的狀態" +#: dashboards/nova/images_and_snapshots/templates/images_and_snapshots/index.html:3 +#: dashboards/nova/images_and_snapshots/templates/images_and_snapshots/index.html:6 +msgid "Images & Snapshots" +msgstr "映像 & 快照" + +#: dashboards/nova/images_and_snapshots/templates/images_and_snapshots/images/_create.html:7 +#: dashboards/nova/images_and_snapshots/templates/images_and_snapshots/images/create.html:3 +#: dashboards/nova/images_and_snapshots/templates/images_and_snapshots/images/create.html:6 +#, fuzzy +msgid "Create An Image" +msgstr "更新映像" + +#: dashboards/nova/images_and_snapshots/templates/images_and_snapshots/images/_create.html:18 +msgid "Specify an image to upload to the Image Service." +msgstr "" + +#: dashboards/nova/images_and_snapshots/templates/images_and_snapshots/images/_create.html:21 +msgid "" +"Currently only images available via an HTTP URL are supported. The image " +"location must be accessible to the Image Service. Compressed image binaries " +"are supported (.zip and .tar.gz.)" +msgstr "" + +#: dashboards/nova/images_and_snapshots/templates/images_and_snapshots/images/_create.html:24 +msgid "Please note: " +msgstr "" + +#: dashboards/nova/images_and_snapshots/templates/images_and_snapshots/images/_create.html:25 +msgid "" +"The Image Location field MUST be a valid and direct URL to the image binary. " +"URLs that redirect or serve error pages will results in unusable images." +msgstr "" + +#: dashboards/nova/images_and_snapshots/templates/images_and_snapshots/images/_detail_overview.html:3 +#, fuzzy +msgid "Image Overview" +msgstr "使用量總覽" + +#: dashboards/nova/images_and_snapshots/templates/images_and_snapshots/images/_detail_overview.html:6 +#: dashboards/nova/instances/templates/instances/_detail_overview.html:6 +#: dashboards/nova/volumes/templates/volumes/_detail_overview.html:6 +msgid "Info" +msgstr "資訊" + +#: dashboards/nova/images_and_snapshots/templates/images_and_snapshots/images/_detail_overview.html:11 +#: dashboards/nova/instances/templates/instances/_detail_overview.html:11 +#: dashboards/nova/volumes/templates/volumes/_detail_overview.html:11 +#: dashboards/syspanel/projects/forms.py:83 +#: dashboards/syspanel/users/forms.py:113 +msgid "ID" +msgstr "ID" + +#: dashboards/nova/images_and_snapshots/templates/images_and_snapshots/images/_detail_overview.html:17 +msgid "Checksum" +msgstr "校驗碼" + +#: dashboards/nova/images_and_snapshots/templates/images_and_snapshots/images/_detail_overview.html:19 +#: dashboards/nova/volumes/templates/volumes/_detail_overview.html:28 +msgid "Created" +msgstr "建立於" + +#: dashboards/nova/images_and_snapshots/templates/images_and_snapshots/images/_detail_overview.html:21 +msgid "Updated" +msgstr "更新於" + +#: dashboards/nova/images_and_snapshots/templates/images_and_snapshots/images/_detail_overview.html:27 +#: dashboards/nova/instances/templates/instances/_detail_overview.html:19 +#: dashboards/nova/volumes/templates/volumes/_detail_overview.html:23 +msgid "Specs" +msgstr "規格" + +#: dashboards/nova/images_and_snapshots/templates/images_and_snapshots/images/_detail_overview.html:32 +msgid "Container Format" +msgstr "容器格式" + +#: dashboards/nova/images_and_snapshots/templates/images_and_snapshots/images/_detail_overview.html:34 +msgid "Disk Format" +msgstr "磁碟格式" + +#: dashboards/nova/images_and_snapshots/templates/images_and_snapshots/images/_detail_overview.html:40 +msgid "Custom Properties" +msgstr "專門屬性" + +#: dashboards/nova/images_and_snapshots/templates/images_and_snapshots/images/_detail_overview.html:56 +msgid "Euca2ools state" +msgstr "Euca2ools狀態" + +#: dashboards/nova/images_and_snapshots/templates/images_and_snapshots/images/_detail_overview.html:60 +#: dashboards/syspanel/projects/tables.py:77 +msgid "Project ID" +msgstr "專案ID" + +#: dashboards/nova/images_and_snapshots/templates/images_and_snapshots/images/_detail_overview.html:64 +msgid "Image Type" +msgstr "映像類型" + +#: dashboards/nova/images_and_snapshots/templates/images_and_snapshots/images/_update.html:7 +#: dashboards/nova/images_and_snapshots/templates/images_and_snapshots/images/_update.html:22 +#: dashboards/nova/images_and_snapshots/templates/images_and_snapshots/images/update.html:3 +#: dashboards/nova/images_and_snapshots/templates/images_and_snapshots/images/update.html:6 +#: dashboards/syspanel/images/templates/images/_update.html:8 +#: dashboards/syspanel/images/templates/images/_update.html:23 +#: dashboards/syspanel/images/templates/images/update.html:4 +#: dashboards/syspanel/images/templates/images/update.html:7 +msgid "Update Image" +msgstr "更新映像" + +#: dashboards/nova/images_and_snapshots/templates/images_and_snapshots/images/_update.html:17 +#: dashboards/syspanel/images/templates/images/_update.html:18 +msgid "From here you can modify different properties of an image." +msgstr "您可以在這裡修改映像的各個屬性內容" + +#: dashboards/nova/images_and_snapshots/templates/images_and_snapshots/images/detail.html:4 +msgid "Image Detail " +msgstr "映像詳細資料" + +#: dashboards/nova/images_and_snapshots/templates/images_and_snapshots/snapshots/_create.html:8 +#: dashboards/nova/images_and_snapshots/templates/images_and_snapshots/snapshots/_create.html:23 +#: dashboards/nova/images_and_snapshots/templates/images_and_snapshots/snapshots/create.html:3 +#: dashboards/nova/volumes/tables.py:67 +msgid "Create Snapshot" +msgstr "建立快照" + +#: dashboards/nova/images_and_snapshots/templates/images_and_snapshots/snapshots/_create.html:18 +msgid "Snapshots preserve the disk state of a running instance." +msgstr "快照可保存運作中的執行個體的磁碟內容狀態" + +#: dashboards/nova/images_and_snapshots/templates/images_and_snapshots/snapshots/create.html:6 +msgid "Create a Snapshot" +msgstr "建立快照" + #: dashboards/nova/images_and_snapshots/volume_snapshots/tables.py:30 -#: dashboards/nova/instances_and_volumes/instances/workflows.py:71 +#: dashboards/nova/instances/workflows.py:70 msgid "Volume Snapshot" msgstr "容量快照" #: dashboards/nova/images_and_snapshots/volume_snapshots/tables.py:31 -#: dashboards/nova/images_and_snapshots/volume_snapshots/tables.py:42 +#: dashboards/nova/images_and_snapshots/volume_snapshots/tables.py:52 msgid "Volume Snapshots" msgstr "容量快照" -#: dashboards/nova/images_and_snapshots/volume_snapshots/tables.py:38 +#: dashboards/nova/images_and_snapshots/volume_snapshots/tables.py:48 msgid "Volume ID" msgstr "容量ID" -#: dashboards/nova/instances_and_volumes/panel.py:24 -msgid "Instances & Volumes" -msgstr "執行個體 & 容量" - -#: dashboards/nova/instances_and_volumes/views.py:52 -msgid "Unable to retrieve instances." -msgstr "無法取得執行個體。" - -#: dashboards/nova/instances_and_volumes/views.py:62 -#: dashboards/syspanel/instances/views.py:65 -msgid "Unable to retrieve instance size information." -msgstr "無法取得執行個體大小資訊" - -#: dashboards/nova/instances_and_volumes/views.py:78 -#, python-format -msgid "Unable to fetch volumes: %s" -msgstr "無法接取容量: %s" - -#: dashboards/nova/instances_and_volumes/instances/forms.py:44 +#: dashboards/nova/instances/forms.py:44 #, python-format msgid "Instance \"%s\" updated." msgstr "執行個體\"%s\"已更新" -#: dashboards/nova/instances_and_volumes/instances/forms.py:46 +#: dashboards/nova/instances/forms.py:46 msgid "Unable to update instance." msgstr "無法更新執行個體" -#: dashboards/nova/instances_and_volumes/instances/tables.py:56 -msgid "Terminate" -msgstr "終止執行" - -#: dashboards/nova/instances_and_volumes/instances/tables.py:57 -msgid "Terminated" -msgstr "已終止執行" - -#: dashboards/nova/instances_and_volumes/instances/tables.py:59 -#: dashboards/nova/instances_and_volumes/instances/tables.py:76 -#: dashboards/nova/instances_and_volumes/instances/tables.py:91 -#: dashboards/nova/instances_and_volumes/instances/tables.py:119 -#: dashboards/nova/instances_and_volumes/instances/tables.py:261 +#: dashboards/nova/instances/panel.py:24 +#: dashboards/nova/instances/tables.py:63 +#: dashboards/nova/instances/tables.py:80 +#: dashboards/nova/instances/tables.py:95 +#: dashboards/nova/instances/tables.py:123 +#: dashboards/nova/instances/tables.py:290 +#: dashboards/nova/instances/templates/instances/index.html:3 +#: dashboards/nova/instances/templates/instances/index.html:6 #: dashboards/syspanel/instances/panel.py:28 #: dashboards/syspanel/instances/tables.py:95 +#: dashboards/syspanel/instances/templates/instances/index.html:3 #: dashboards/syspanel/projects/forms.py:115 -#: dashboards/syspanel/templates/syspanel/instances/index.html:3 msgid "Instances" msgstr "執行個體" -#: dashboards/nova/instances_and_volumes/instances/tables.py:73 +#: dashboards/nova/instances/tables.py:60 +msgid "Terminate" +msgstr "終止執行" + +#: dashboards/nova/instances/tables.py:61 +msgid "Scheduled termination of" +msgstr "" + +#: dashboards/nova/instances/tables.py:77 msgid "Reboot" msgstr "重啟" -#: dashboards/nova/instances_and_volumes/instances/tables.py:74 +#: dashboards/nova/instances/tables.py:78 msgid "Rebooted" msgstr "已重啟" -#: dashboards/nova/instances_and_volumes/instances/tables.py:88 +#: dashboards/nova/instances/tables.py:92 msgid "Pause" msgstr "暫停" -#: dashboards/nova/instances_and_volumes/instances/tables.py:88 +#: dashboards/nova/instances/tables.py:92 msgid "Unpause" msgstr "取消暫停" -#: dashboards/nova/instances_and_volumes/instances/tables.py:89 +#: dashboards/nova/instances/tables.py:93 msgid "Paused" msgstr "已暫停" -#: dashboards/nova/instances_and_volumes/instances/tables.py:89 +#: dashboards/nova/instances/tables.py:93 msgid "Unpaused" msgstr "已取消暫停" -#: dashboards/nova/instances_and_volumes/instances/tables.py:116 +#: dashboards/nova/instances/tables.py:120 msgid "Suspend" msgstr "休眠" -#: dashboards/nova/instances_and_volumes/instances/tables.py:116 +#: dashboards/nova/instances/tables.py:120 msgid "Resume" msgstr "喚醒" -#: dashboards/nova/instances_and_volumes/instances/tables.py:117 +#: dashboards/nova/instances/tables.py:121 msgid "Suspended" msgstr "已休眠" -#: dashboards/nova/instances_and_volumes/instances/tables.py:117 +#: dashboards/nova/instances/tables.py:121 msgid "Resumed" msgstr "已喚醒" -#: dashboards/nova/instances_and_volumes/instances/tables.py:144 -#: dashboards/nova/instances_and_volumes/instances/workflows.py:376 -#: dashboards/nova/templates/nova/instances_and_volumes/instances/launch.html:3 -#: dashboards/nova/templates/nova/instances_and_volumes/instances/launch.html:6 +#: dashboards/nova/instances/tables.py:148 +#: dashboards/nova/instances/workflows.py:393 +#: dashboards/nova/instances/templates/instances/launch.html:3 +#: dashboards/nova/instances/templates/instances/launch.html:6 msgid "Launch Instance" msgstr "啟動執行個體" -#: dashboards/nova/instances_and_volumes/instances/tables.py:151 -#: dashboards/nova/templates/nova/instances_and_volumes/instances/_update.html:7 +#: dashboards/nova/instances/tables.py:155 +#: dashboards/nova/instances/templates/instances/_update.html:7 msgid "Edit Instance" msgstr "編輯執行個體" -#: dashboards/nova/instances_and_volumes/instances/tables.py:168 +#: dashboards/nova/instances/tables.py:172 msgid "VNC Console" msgstr "VNC界面" -#: dashboards/nova/instances_and_volumes/instances/tables.py:183 +#: dashboards/nova/instances/tables.py:187 msgid "View Log" msgstr "檢視記錄檔" -#: dashboards/nova/instances_and_volumes/instances/tables.py:213 -#, python-format -msgid "%(RAM)s RAM | %(VCPU)s VCPU | %(disk)s Disk" +#: dashboards/nova/instances/tables.py:232 +#, fuzzy, python-format +msgid "%(name)s | %(RAM)s RAM | %(VCPU)s VCPU | %(disk)s Disk" msgstr "%(RAM)s 記憶體 | %(VCPU)s 虛擬處理器 | %(disk)s 磁碟" -#: dashboards/nova/instances_and_volumes/instances/tables.py:241 -#: dashboards/syspanel/instances/tables.py:73 usage/tables.py:47 +#: dashboards/nova/instances/tables.py:239 +#: dashboards/nova/instances/tables.py:246 +msgid "Not available" +msgstr "不存在" + +#: dashboards/nova/instances/tables.py:269 +#: dashboards/syspanel/instances/tables.py:73 usage/tables.py:56 msgid "Instance Name" msgstr "執行個體名稱" -#: dashboards/nova/instances_and_volumes/instances/tables.py:250 +#: dashboards/nova/instances/tables.py:279 #: dashboards/syspanel/instances/tables.py:84 msgid "Task" msgstr "工作" -#: dashboards/nova/instances_and_volumes/instances/tables.py:257 +#: dashboards/nova/instances/tables.py:286 #: dashboards/syspanel/instances/tables.py:91 msgid "Power State" msgstr "電源狀態" -#: dashboards/nova/instances_and_volumes/instances/tabs.py:35 +#: dashboards/nova/instances/tabs.py:35 msgid "Log" msgstr "記錄檔" -#: dashboards/nova/instances_and_volumes/instances/tabs.py:47 -#: dashboards/nova/instances_and_volumes/instances/views.py:63 +#: dashboards/nova/instances/tabs.py:47 dashboards/nova/instances/views.py:105 #, python-format msgid "Unable to get log for instance \"%s\"." msgstr "無法取得執行個體\"%s\"的記錄檔。" -#: dashboards/nova/instances_and_volumes/instances/tabs.py:54 +#: dashboards/nova/instances/tabs.py:54 msgid "VNC" msgstr "" -#: dashboards/nova/instances_and_volumes/instances/tabs.py:69 -#: dashboards/nova/instances_and_volumes/instances/views.py:79 +#: dashboards/nova/instances/tabs.py:69 dashboards/nova/instances/views.py:121 #, python-format msgid "Unable to get VNC console for instance \"%s\"." msgstr "無法取得執行個體的VNC界面\"%s\"。" -#: dashboards/nova/instances_and_volumes/instances/views.py:95 +#: dashboards/nova/instances/views.py:58 +msgid "Unable to retrieve instances." +msgstr "無法取得執行個體。" + +#: dashboards/nova/instances/views.py:81 +#: dashboards/syspanel/instances/views.py:89 +msgid "Unable to retrieve instance size information." +msgstr "無法取得執行個體大小資訊" + +#: dashboards/nova/instances/views.py:137 msgid "Unable to retrieve instance details." msgstr "無法取得執行個體的詳細資料" -#: dashboards/nova/instances_and_volumes/instances/views.py:130 +#: dashboards/nova/instances/views.py:172 #, python-format msgid "Unable to retrieve details for instance \"%s\"." msgstr "無法取得執行個體\"%s\"詳細資料。" -#: dashboards/nova/instances_and_volumes/instances/workflows.py:34 -#: dashboards/syspanel/projects/tables.py:91 +#: dashboards/nova/instances/workflows.py:33 +#: dashboards/syspanel/projects/tables.py:92 #: dashboards/syspanel/users/tables.py:39 #: dashboards/syspanel/users/tables.py:73 tests/workflows_tests.py:40 msgid "User" msgstr "使用者" -#: dashboards/nova/instances_and_volumes/instances/workflows.py:48 +#: dashboards/nova/instances/workflows.py:47 #, fuzzy msgid "Project & User" msgstr "專案使用量" -#: dashboards/nova/instances_and_volumes/instances/workflows.py:50 +#: dashboards/nova/instances/workflows.py:49 msgid "" "Admin users may optionally select the project and user for whom the instance " "should be created." msgstr "" -#: dashboards/nova/instances_and_volumes/instances/workflows.py:61 +#: dashboards/nova/instances/workflows.py:60 msgid "Don't boot from a volume." msgstr "" -#: dashboards/nova/instances_and_volumes/instances/workflows.py:62 +#: dashboards/nova/instances/workflows.py:61 msgid "Boot from volume." msgstr "" -#: dashboards/nova/instances_and_volumes/instances/workflows.py:63 +#: dashboards/nova/instances/workflows.py:62 msgid "Boot from volume snapshot (creates a new volume)." msgstr "" -#: dashboards/nova/instances_and_volumes/instances/workflows.py:67 -#: dashboards/nova/instances_and_volumes/instances/workflows.py:85 +#: dashboards/nova/instances/workflows.py:66 +#: dashboards/nova/instances/workflows.py:84 #, fuzzy msgid "Volume Options" msgstr "容量詳述" -#: dashboards/nova/instances_and_volumes/instances/workflows.py:70 -#: dashboards/nova/instances_and_volumes/instances/workflows.py:104 -#: dashboards/nova/instances_and_volumes/volumes/tables.py:35 -#: dashboards/nova/instances_and_volumes/volumes/tables.py:145 -#: dashboards/nova/templates/nova/instances_and_volumes/instances/_detail_overview.html:83 +#: dashboards/nova/instances/workflows.py:69 +#: dashboards/nova/instances/workflows.py:104 +#: dashboards/nova/instances/templates/instances/_detail_overview.html:93 +#: dashboards/nova/volumes/tables.py:36 dashboards/nova/volumes/tables.py:171 msgid "Volume" msgstr "容量" -#: dashboards/nova/instances_and_volumes/instances/workflows.py:73 +#: dashboards/nova/instances/workflows.py:72 msgid "Device Name" msgstr "裝置名稱" -#: dashboards/nova/instances_and_volumes/instances/workflows.py:76 +#: dashboards/nova/instances/workflows.py:75 msgid "Volume mount point (e.g. 'vda' mounts at '/dev/vda')." msgstr "容量掛載點 (例如: ‘vda’掛載在‘/dev/vda’)" -#: dashboards/nova/instances_and_volumes/instances/workflows.py:78 +#: dashboards/nova/instances/workflows.py:77 msgid "Delete on Terminate" msgstr "終止執行時刪除" -#: dashboards/nova/instances_and_volumes/instances/workflows.py:81 +#: dashboards/nova/instances/workflows.py:80 msgid "Delete volume on instance terminate" msgstr "執行個體終止執行時刪除容量" -#: dashboards/nova/instances_and_volumes/instances/workflows.py:111 +#: dashboards/nova/instances/workflows.py:111 msgid "Select Volume" msgstr "選擇容量" -#: dashboards/nova/instances_and_volumes/instances/workflows.py:119 -#: dashboards/nova/instances_and_volumes/instances/workflows.py:132 -msgid "Unable to retrieve list of volumes" +#: dashboards/nova/instances/workflows.py:119 +#, fuzzy +msgid "Unable to retrieve list of volumes." msgstr "無法取得容量列表" -#: dashboards/nova/instances_and_volumes/instances/workflows.py:123 +#: dashboards/nova/instances/workflows.py:123 #, fuzzy msgid "Select Volume Snapshot" msgstr "建立容量快照" -#: dashboards/nova/instances_and_volumes/instances/workflows.py:164 +#: dashboards/nova/instances/workflows.py:132 +#, fuzzy +msgid "Unable to retrieve list of volume snapshots." +msgstr "無法取得空間快照" + +#: dashboards/nova/instances/workflows.py:165 #, fuzzy msgid "Instance Source" msgstr "執行個體數量" -#: dashboards/nova/instances_and_volumes/instances/workflows.py:167 +#: dashboards/nova/instances/workflows.py:168 #, fuzzy msgid "Instance Snapshot" msgstr "執行個體快照" -#: dashboards/nova/instances_and_volumes/instances/workflows.py:169 +#: dashboards/nova/instances/workflows.py:170 msgid "Server Name" msgstr "伺服器名稱" -#: dashboards/nova/instances_and_volumes/instances/workflows.py:170 +#: dashboards/nova/instances/workflows.py:171 +#: dashboards/nova/instances/templates/instances/_detail_overview.html:22 #: dashboards/syspanel/flavors/tables.py:13 msgid "Flavor" msgstr "規格" -#: dashboards/nova/instances_and_volumes/instances/workflows.py:171 +#: dashboards/nova/instances/workflows.py:172 msgid "Size of image to launch." msgstr "啟動的映像大小。" -#: dashboards/nova/instances_and_volumes/instances/workflows.py:172 -#: dashboards/nova/templates/nova/instances_and_volumes/instances/_launch_details_help.html:21 +#: dashboards/nova/instances/workflows.py:173 msgid "Instance Count" msgstr "執行個體數量" -#: dashboards/nova/instances_and_volumes/instances/workflows.py:175 +#: dashboards/nova/instances/workflows.py:176 msgid "Number of instances to launch." msgstr "要啟動的執行個體數量" -#: dashboards/nova/instances_and_volumes/instances/workflows.py:178 +#: dashboards/nova/instances/workflows.py:179 msgid "Details" msgstr "詳細資料" -#: dashboards/nova/instances_and_volumes/instances/workflows.py:197 +#: dashboards/nova/instances/workflows.py:198 msgid "" "Launching multiple instances is only supported for images and instance " "snapshots." msgstr "" -#: dashboards/nova/instances_and_volumes/instances/workflows.py:240 +#: dashboards/nova/instances/workflows.py:214 +#, fuzzy +msgid "Unable to retrieve public images." +msgstr "無法取得映像。" + +#: dashboards/nova/instances/workflows.py:228 +#, fuzzy +msgid "Unable to retrieve images for the current project." +msgstr "無法認證到專案權限" + +#: dashboards/nova/instances/workflows.py:251 #, fuzzy msgid "Select Image" msgstr "選擇語言" -#: dashboards/nova/instances_and_volumes/instances/workflows.py:242 +#: dashboards/nova/instances/workflows.py:253 #, fuzzy msgid "No images available." msgstr "沒有可用的執行個體" -#: dashboards/nova/instances_and_volumes/instances/workflows.py:251 +#: dashboards/nova/instances/workflows.py:262 #, fuzzy msgid "Select Instance Snapshot" msgstr "執行個體快照" -#: dashboards/nova/instances_and_volumes/instances/workflows.py:253 +#: dashboards/nova/instances/workflows.py:264 #, fuzzy msgid "No snapshots available." msgstr "沒有可用的執行個體" -#: dashboards/nova/instances_and_volumes/instances/workflows.py:264 +#: dashboards/nova/instances/workflows.py:275 msgid "Unable to retrieve instance flavors." msgstr "無法取得執行個體規格。" -#: dashboards/nova/instances_and_volumes/instances/workflows.py:301 +#: dashboards/nova/instances/workflows.py:288 +#, fuzzy +msgid "Unable to retrieve quota information." +msgstr "無法取得使用量資訊" + +#: dashboards/nova/instances/workflows.py:318 msgid "Which keypair to use for authentication." msgstr "認證用的金鑰選擇" -#: dashboards/nova/instances_and_volumes/instances/workflows.py:307 +#: dashboards/nova/instances/workflows.py:324 msgid "Launch instance in these security groups." msgstr "在這些安全性群組中啟動執行個體" -#: dashboards/nova/instances_and_volumes/instances/workflows.py:312 +#: dashboards/nova/instances/workflows.py:329 msgid "" "Control access to your instance via keypairs, security groups, and other " "mechanisms." msgstr "" -#: dashboards/nova/instances_and_volumes/instances/workflows.py:322 +#: dashboards/nova/instances/workflows.py:339 msgid "Unable to retrieve keypairs." msgstr "無法取得金鑰。" -#: dashboards/nova/instances_and_volumes/instances/workflows.py:324 +#: dashboards/nova/instances/workflows.py:341 msgid "Select a keypair" msgstr "選擇金鑰" -#: dashboards/nova/instances_and_volumes/instances/workflows.py:326 +#: dashboards/nova/instances/workflows.py:343 msgid "No keypairs available." msgstr "沒有可用的金鑰" -#: dashboards/nova/instances_and_volumes/instances/workflows.py:335 +#: dashboards/nova/instances/workflows.py:352 msgid "Unable to retrieve list of security groups" msgstr "無法取得安全性群組列表。" -#: dashboards/nova/instances_and_volumes/instances/workflows.py:355 +#: dashboards/nova/instances/workflows.py:372 msgid "Customization Script" msgstr "" -#: dashboards/nova/instances_and_volumes/instances/workflows.py:357 +#: dashboards/nova/instances/workflows.py:374 msgid "" "A script or set of commands to be executed after the instance has been built " "(max 16kb)." msgstr "" -#: dashboards/nova/instances_and_volumes/instances/workflows.py:364 +#: dashboards/nova/instances/workflows.py:381 msgid "Post-Creation" msgstr "" -#: dashboards/nova/instances_and_volumes/instances/workflows.py:378 +#: dashboards/nova/instances/workflows.py:395 #, python-format -msgid "Instance \"%s\" launched." -msgstr "執行個體\"%s\"已啟動" +msgid "Launched %(count)s named \"%(name)s\"." +msgstr "" -#: dashboards/nova/instances_and_volumes/instances/workflows.py:379 +#: dashboards/nova/instances/workflows.py:396 #, fuzzy, python-format -msgid "Unable to launch instance \"%s\"." +msgid "Unable to launch %(count)s named \"%(name)s\"." msgstr "無法啟動執行個體: %(exc)s" -#: dashboards/nova/instances_and_volumes/volumes/forms.py:42 -#, python-format -msgid "Error Creating Volume: %s" -msgstr "建立容量錯誤: %s" +#: dashboards/nova/instances/workflows.py:408 +#, fuzzy, python-format +msgid "%s instances" +msgstr "執行個體" -#: dashboards/nova/instances_and_volumes/volumes/forms.py:48 -msgid "Select an instance to attach to." -msgstr "選擇掛載的執行個體" - -#: dashboards/nova/instances_and_volumes/volumes/forms.py:86 -#, python-format -msgid "Attaching volume %(vol)s to instance %(inst)s at %(dev)s" -msgstr "正在掛載容量%(vol)s到執行個體%(inst)s的%(dev)s" - -#: dashboards/nova/instances_and_volumes/volumes/forms.py:95 -#, python-format -msgid "Error attaching volume: %s" -msgstr "掛載容量錯誤: %s" - -#: dashboards/nova/instances_and_volumes/volumes/forms.py:120 -#, python-format -msgid "Creating volume snapshot \"%s\"" -msgstr "建立容量快照\"%s\"" - -#: dashboards/nova/instances_and_volumes/volumes/forms.py:125 -#, python-format -msgid "Error Creating Volume Snapshot: %(exc)s" -msgstr "建立容量快照錯誤: %(exc)s" - -#: dashboards/nova/instances_and_volumes/volumes/tables.py:36 -#: dashboards/nova/instances_and_volumes/volumes/tables.py:134 -#: dashboards/nova/instances_and_volumes/volumes/tables.py:146 -#: dashboards/nova/templates/nova/instances_and_volumes/instances/_detail_overview.html:78 -#: dashboards/syspanel/projects/forms.py:116 -msgid "Volumes" -msgstr "容量" - -#: dashboards/nova/instances_and_volumes/volumes/tables.py:49 -#: dashboards/nova/templates/nova/instances_and_volumes/volumes/_create.html:8 -#: dashboards/nova/templates/nova/instances_and_volumes/volumes/_create.html:23 -msgid "Create Volume" -msgstr "建立容量" - -#: dashboards/nova/instances_and_volumes/volumes/tables.py:56 -msgid "Edit Attachments" -msgstr "編輯掛載" - -#: dashboards/nova/instances_and_volumes/volumes/tables.py:66 -#: dashboards/nova/templates/nova/images_and_snapshots/snapshots/_create.html:8 -#: dashboards/nova/templates/nova/images_and_snapshots/snapshots/_create.html:23 -#: dashboards/nova/templates/nova/images_and_snapshots/snapshots/create.html:3 -msgid "Create Snapshot" -msgstr "建立快照" - -#: dashboards/nova/instances_and_volumes/volumes/tables.py:83 -#: templatetags/sizeformat.py:58 -#, python-format -msgid "%s GB" -msgstr "" - -#: dashboards/nova/instances_and_volumes/volumes/tables.py:130 -#: dashboards/nova/templates/nova/instances_and_volumes/volumes/_detail_overview.html:34 -msgid "Attachments" -msgstr "掛載" - -#: dashboards/nova/instances_and_volumes/volumes/tables.py:143 -msgid "Detach" -msgstr "卸載" - -#: dashboards/nova/instances_and_volumes/volumes/tables.py:144 -msgid "Detached" -msgstr "已卸載" - -#: dashboards/nova/instances_and_volumes/volumes/tabs.py:41 -msgid "Unable to retrieve volume details." -msgstr "無法取得容量快照" - -#: dashboards/nova/instances_and_volumes/volumes/views.py:71 -#: dashboards/nova/instances_and_volumes/volumes/views.py:81 -msgid "Unable to retrieve volume information." -msgstr "無法取得容量資訊" - -#: dashboards/nova/templates/nova/access_and_security/index.html:6 -msgid "Access & Security" -msgstr "存取 & 安全性" - -#: dashboards/nova/templates/nova/access_and_security/floating_ips/_allocate.html:8 -#: dashboards/nova/templates/nova/access_and_security/floating_ips/allocate.html:3 -msgid "Allocate Floating IP" -msgstr "分配浮動IP" - -#: dashboards/nova/templates/nova/access_and_security/floating_ips/_allocate.html:17 -#: dashboards/nova/templates/nova/access_and_security/floating_ips/_associate.html:16 -#: dashboards/nova/templates/nova/images_and_snapshots/images/_update.html:16 -#: dashboards/nova/templates/nova/images_and_snapshots/snapshots/_create.html:17 -#: dashboards/nova/templates/nova/instances_and_volumes/instances/_update.html:16 -#: dashboards/settings/templates/settings/ec2/download_form.html:17 -#: dashboards/settings/templates/settings/project/_openrc.html:17 -#: dashboards/settings/templates/settings/user/_language.html:30 -msgid "Description:" -msgstr "詳述:" - -#: dashboards/nova/templates/nova/access_and_security/floating_ips/_allocate.html:18 -msgid "Allocate a floating IP from a given floating ip pool." -msgstr "從浮動IP集分配一個浮動IP" - -#: dashboards/nova/templates/nova/access_and_security/floating_ips/_allocate.html:20 -#: dashboards/nova/templates/nova/instances_and_volumes/instances/_launch_details_help.html:19 -msgid "Project Quotas" -msgstr "專案配額" - -#: dashboards/nova/templates/nova/access_and_security/floating_ips/_allocate.html:31 -msgid "Allocate IP" -msgstr "分配IP" - -#: dashboards/nova/templates/nova/access_and_security/floating_ips/_allocate.html:32 -#: dashboards/nova/templates/nova/access_and_security/floating_ips/_associate.html:23 -#: dashboards/nova/templates/nova/access_and_security/keypairs/_create.html:24 -#: dashboards/nova/templates/nova/access_and_security/keypairs/_import.html:24 -#: dashboards/nova/templates/nova/access_and_security/security_groups/_create.html:24 -#: dashboards/nova/templates/nova/access_and_security/security_groups/_edit_rules.html:20 -#: dashboards/nova/templates/nova/containers/_create.html:23 -#: dashboards/nova/templates/nova/images_and_snapshots/images/_update.html:23 -#: dashboards/nova/templates/nova/images_and_snapshots/snapshots/_create.html:24 -#: dashboards/nova/templates/nova/instances_and_volumes/instances/_update.html:23 -#: dashboards/nova/templates/nova/instances_and_volumes/volumes/_attach.html:20 -#: dashboards/nova/templates/nova/instances_and_volumes/volumes/_create.html:24 -#: dashboards/nova/templates/nova/instances_and_volumes/volumes/_create_snapshot.html:24 -#: dashboards/nova/templates/nova/objects/_copy.html:23 -#: dashboards/nova/templates/nova/objects/_upload.html:24 -#: dashboards/settings/templates/settings/ec2/download_form.html:24 -#: dashboards/settings/templates/settings/project/_openrc.html:24 -#: dashboards/settings/templates/settings/user/_language.html:37 -#: dashboards/syspanel/templates/syspanel/flavors/_create.html:24 -#: dashboards/syspanel/templates/syspanel/images/_update.html:24 -#: dashboards/syspanel/templates/syspanel/projects/_add_user.html:24 -#: dashboards/syspanel/templates/syspanel/projects/_create.html:24 -#: dashboards/syspanel/templates/syspanel/projects/_quotas.html:23 -#: dashboards/syspanel/templates/syspanel/projects/_update.html:24 -#: dashboards/syspanel/templates/syspanel/users/_create.html:23 -#: dashboards/syspanel/templates/syspanel/users/_update.html:23 -#: templates/horizon/common/_workflow.html:29 -msgid "Cancel" -msgstr "取消" - -#: dashboards/nova/templates/nova/access_and_security/floating_ips/_associate.html:7 -#: dashboards/nova/templates/nova/access_and_security/floating_ips/associate.html:7 -msgid "Associate Floating IP" -msgstr "配給浮動IP" - -#: dashboards/nova/templates/nova/access_and_security/floating_ips/_associate.html:17 -msgid "Associate a floating ip with an instance." -msgstr "給執行個體配給一個浮動IP" - -#: dashboards/nova/templates/nova/access_and_security/keypairs/_create.html:17 -#: dashboards/nova/templates/nova/access_and_security/keypairs/_import.html:17 -msgid "" -"Keypairs are ssh credentials which are injected into images when they are " -"launched. Creating a new key pair registers the public key and downloads the " -"private key (a .pem file)." -msgstr "" -"金鑰是用來注入到啟動映像的ssh認證。建立一個新的金鑰會自動把公鑰註冊及下載一份" -"私鑰(.pem檔案)" - -#: dashboards/nova/templates/nova/access_and_security/keypairs/_create.html:18 -#: dashboards/nova/templates/nova/access_and_security/keypairs/_import.html:18 -msgid "Protect and use the key as you would any normal ssh private key." -msgstr "請妥善安全保管及使用這ssh私鑰" - -#: dashboards/nova/templates/nova/access_and_security/keypairs/download.html:3 -#: dashboards/nova/templates/nova/access_and_security/keypairs/download.html:6 -msgid "Download Keypair" -msgstr "下載金鑰" - -#: dashboards/nova/templates/nova/access_and_security/keypairs/download.html:11 -#, python-format -msgid "" -"The keypair "%(keypair_name)s" should download automatically. If " -"not use the link below." -msgstr "金鑰"%(keypair_name)s"應該會自動地下載。否則請使用以下連結" - -#: dashboards/nova/templates/nova/access_and_security/keypairs/download.html:15 -#, python-format -msgid "Download keypair "%(keypair_name)s"" -msgstr "下載金鑰"%(keypair_name)s"" - -#: dashboards/nova/templates/nova/access_and_security/security_groups/_create.html:18 -msgid "From here you can create a new security group" -msgstr "您可以在這裡建立一個新的安全性群組" - -#: dashboards/nova/templates/nova/access_and_security/security_groups/_edit_rules.html:9 -#: dashboards/nova/templates/nova/access_and_security/security_groups/edit_rules.html:6 -msgid "Edit Security Group Rules" -msgstr "編輯安全性群組規則" - -#: dashboards/nova/templates/nova/access_and_security/security_groups/_edit_rules.html:12 -#: dashboards/nova/templates/nova/access_and_security/security_groups/_edit_rules.html:19 -msgid "Add Rule" -msgstr "新增規則" - -#: dashboards/nova/templates/nova/containers/_create.html:17 -msgid "" -"A container is a storage compartment for your data and provides a way for " -"you to organize your data. You can think of a container as a folder in " -"Windows ® or a directory in UNIX ®. The primary difference between a " -"container and these other file system concepts is that containers cannot be " -"nested. You can, however, create an unlimited number of containers within " -"your account. Data must be stored in a container so you must have at least " -"one container defined in your account prior to uploading data." -msgstr "" -"容器是資料的儲存分隔,提供一種分類管理資料的方法。您可以把容器想像成Windows " -"®中的資料夾或UNIX ®中的目錄。容器和其他檔案系統的主要差別是,容器裡面" -"不能有其他容器。但是,您可以在您的帳戶建立無限個容器。資料必須儲存在容器裡," -"因此您必須在帳戶內建立至少一個容器,才能上傳資料。" - -#: dashboards/nova/templates/nova/images_and_snapshots/index.html:3 -#: dashboards/nova/templates/nova/images_and_snapshots/index.html:6 -msgid "Images & Snapshots" -msgstr "映像 & 快照" - -#: dashboards/nova/templates/nova/images_and_snapshots/images/_detail_overview.html:3 +#: dashboards/nova/instances/workflows.py:411 #, fuzzy -msgid "Image Overview" -msgstr "使用量總覽" +msgid "instance" +msgstr "執行個體" -#: dashboards/nova/templates/nova/images_and_snapshots/images/_detail_overview.html:6 -#: dashboards/nova/templates/nova/instances_and_volumes/instances/_detail_overview.html:6 -#: dashboards/nova/templates/nova/instances_and_volumes/volumes/_detail_overview.html:6 -msgid "Info" -msgstr "資訊" - -#: dashboards/nova/templates/nova/images_and_snapshots/images/_detail_overview.html:11 -#: dashboards/nova/templates/nova/instances_and_volumes/instances/_detail_overview.html:11 -#: dashboards/nova/templates/nova/instances_and_volumes/volumes/_detail_overview.html:11 -#: dashboards/syspanel/projects/forms.py:83 -#: dashboards/syspanel/users/forms.py:104 -#: dashboards/syspanel/users/tables.py:106 -msgid "ID" -msgstr "ID" - -#: dashboards/nova/templates/nova/images_and_snapshots/images/_detail_overview.html:17 -msgid "Checksum" -msgstr "校驗碼" - -#: dashboards/nova/templates/nova/images_and_snapshots/images/_detail_overview.html:19 -#: dashboards/nova/templates/nova/instances_and_volumes/volumes/_detail_overview.html:28 -msgid "Created" -msgstr "建立於" - -#: dashboards/nova/templates/nova/images_and_snapshots/images/_detail_overview.html:21 -msgid "Updated" -msgstr "更新於" - -#: dashboards/nova/templates/nova/images_and_snapshots/images/_detail_overview.html:27 -#: dashboards/nova/templates/nova/instances_and_volumes/instances/_detail_overview.html:19 -#: dashboards/nova/templates/nova/instances_and_volumes/volumes/_detail_overview.html:23 -msgid "Specs" -msgstr "規格" - -#: dashboards/nova/templates/nova/images_and_snapshots/images/_detail_overview.html:40 -msgid "Custom Properties" -msgstr "專門屬性" - -#: dashboards/nova/templates/nova/images_and_snapshots/images/_detail_overview.html:56 -msgid "Euca2ools state" -msgstr "Euca2ools狀態" - -#: dashboards/nova/templates/nova/images_and_snapshots/images/_detail_overview.html:60 -#: usage/tables.py:28 -msgid "Project ID" -msgstr "專案ID" - -#: dashboards/nova/templates/nova/images_and_snapshots/images/_detail_overview.html:64 -msgid "Image Type" -msgstr "映像類型" - -#: dashboards/nova/templates/nova/images_and_snapshots/images/_update.html:7 -#: dashboards/nova/templates/nova/images_and_snapshots/images/_update.html:22 -#: dashboards/nova/templates/nova/images_and_snapshots/images/update.html:3 -#: dashboards/nova/templates/nova/images_and_snapshots/images/update.html:6 -#: dashboards/syspanel/templates/syspanel/images/_update.html:8 -#: dashboards/syspanel/templates/syspanel/images/_update.html:23 -#: dashboards/syspanel/templates/syspanel/images/update.html:4 -#: dashboards/syspanel/templates/syspanel/images/update.html:7 -msgid "Update Image" -msgstr "更新映像" - -#: dashboards/nova/templates/nova/images_and_snapshots/images/_update.html:17 -#: dashboards/syspanel/templates/syspanel/images/_update.html:18 -msgid "From here you can modify different properties of an image." -msgstr "您可以在這裡修改映像的各個屬性內容" - -#: dashboards/nova/templates/nova/images_and_snapshots/images/detail.html:4 -msgid "Image Detail " -msgstr "映像詳細資料" - -#: dashboards/nova/templates/nova/images_and_snapshots/snapshots/_create.html:18 -msgid "Snapshots preserve the disk state of a running instance." -msgstr "快照可保存運作中的執行個體的磁碟內容狀態" - -#: dashboards/nova/templates/nova/images_and_snapshots/snapshots/create.html:6 -msgid "Create a Snapshot" -msgstr "建立快照" - -#: dashboards/nova/templates/nova/instances_and_volumes/index.html:6 -msgid "Instances & Volumes" -msgstr "執行個體 & 容量" - -#: dashboards/nova/templates/nova/instances_and_volumes/instances/_detail_log.html:7 +#: dashboards/nova/instances/templates/instances/_detail_log.html:7 msgid "View Full Log" msgstr "檢視完整記錄檔" -#: dashboards/nova/templates/nova/instances_and_volumes/instances/_detail_overview.html:3 +#: dashboards/nova/instances/templates/instances/_detail_overview.html:3 msgid "Instance Overview" msgstr "執行個體總覽" -#: dashboards/nova/templates/nova/instances_and_volumes/instances/_detail_overview.html:22 -#: dashboards/nova/templates/nova/instances_and_volumes/instances/_launch_details_help.html:14 -#: usage/tables.py:21 +#: dashboards/nova/instances/templates/instances/_detail_overview.html:24 +#: dashboards/nova/instances/templates/instances/_launch_details_help.html:14 +#: usage/tables.py:22 msgid "RAM" msgstr "記憶體" -#: dashboards/nova/templates/nova/instances_and_volumes/instances/_detail_overview.html:24 -#: dashboards/nova/templates/nova/instances_and_volumes/instances/_launch_details_help.html:10 -#: dashboards/nova/templates/nova/instances_and_volumes/instances/_launch_details_help.html:28 +#: dashboards/nova/instances/templates/instances/_detail_overview.html:26 +#: dashboards/nova/instances/templates/instances/_launch_details_help.html:10 #: dashboards/syspanel/flavors/forms.py:38 #: dashboards/syspanel/flavors/tables.py:30 -#: dashboards/syspanel/projects/forms.py:114 usage/tables.py:18 +#: dashboards/syspanel/projects/forms.py:114 usage/tables.py:19 msgid "VCPUs" msgstr "虛擬處理器" -#: dashboards/nova/templates/nova/instances_and_volumes/instances/_detail_overview.html:25 +#: dashboards/nova/instances/templates/instances/_detail_overview.html:27 msgid "VCPU" msgstr "虛擬處理器" -#: dashboards/nova/templates/nova/instances_and_volumes/instances/_detail_overview.html:26 -#: dashboards/nova/templates/nova/instances_and_volumes/instances/_launch_details_help.html:35 -#: usage/tables.py:19 +#: dashboards/nova/instances/templates/instances/_detail_overview.html:28 +#: usage/tables.py:20 msgid "Disk" msgstr "磁碟" -#: dashboards/nova/templates/nova/instances_and_volumes/instances/_detail_overview.html:27 -#: dashboards/nova/templates/nova/instances_and_volumes/instances/_launch_details_help.html:11 -#: dashboards/nova/templates/nova/instances_and_volumes/instances/_launch_details_help.html:12 -#: dashboards/nova/templates/nova/instances_and_volumes/instances/_launch_details_help.html:13 -#: dashboards/nova/templates/nova/instances_and_volumes/instances/_launch_details_help.html:35 -#: dashboards/nova/templates/nova/instances_and_volumes/volumes/_detail_overview.html:27 +#: dashboards/nova/instances/templates/instances/_detail_overview.html:29 +#: dashboards/nova/instances/templates/instances/_launch_details_help.html:11 +#: dashboards/nova/instances/templates/instances/_launch_details_help.html:12 +#: dashboards/nova/instances/templates/instances/_launch_details_help.html:13 +#: dashboards/nova/volumes/templates/volumes/_detail_overview.html:27 msgid "GB" msgstr "" -#: dashboards/nova/templates/nova/instances_and_volumes/instances/_detail_overview.html:32 +#: dashboards/nova/instances/templates/instances/_detail_overview.html:34 msgid "IP Addresses" msgstr "IP位址" -#: dashboards/nova/templates/nova/instances_and_volumes/instances/_detail_overview.html:57 +#: dashboards/nova/instances/templates/instances/_detail_overview.html:59 msgid "No rules defined." msgstr "沒有規則被制定" -#: dashboards/nova/templates/nova/instances_and_volumes/instances/_detail_overview.html:66 +#: dashboards/nova/instances/templates/instances/_detail_overview.html:68 msgid "Meta" msgstr "相關資料" -#: dashboards/nova/templates/nova/instances_and_volumes/instances/_detail_overview.html:69 +#: dashboards/nova/instances/templates/instances/_detail_overview.html:71 #, fuzzy msgid "Key Name" msgstr "金鑰名稱" -#: dashboards/nova/templates/nova/instances_and_volumes/instances/_detail_overview.html:93 +#: dashboards/nova/instances/templates/instances/_detail_overview.html:84 +#, fuzzy +msgid "Volumes Attached" +msgstr "沒有掛載的容量" + +#: dashboards/nova/instances/templates/instances/_detail_overview.html:88 +#: dashboards/nova/volumes/tables.py:156 +#: dashboards/nova/volumes/templates/volumes/_detail_overview.html:38 +#: dashboards/nova/volumes/templates/volumes/_detail_overview.html:45 +msgid "Attached To" +msgstr "掛載到" + +#: dashboards/nova/instances/templates/instances/_detail_overview.html:90 +#: dashboards/nova/volumes/templates/volumes/_detail_overview.html:42 +msgid "on" +msgstr "在" + +#: dashboards/nova/instances/templates/instances/_detail_overview.html:94 msgid "No volumes attached." msgstr "沒有掛載的容量" -#: dashboards/nova/templates/nova/instances_and_volumes/instances/_detail_vnc.html:3 +#: dashboards/nova/instances/templates/instances/_detail_vnc.html:3 msgid "Instance VNC Console" msgstr "執行個體VNC界面" -#: dashboards/nova/templates/nova/instances_and_volumes/instances/_detail_vnc.html:5 +#: dashboards/nova/instances/templates/instances/_detail_vnc.html:5 msgid "" "If VNC console is not responding to keyboard input: click the grey status " "bar below." msgstr "如果VNC界面對鍵盤輸入沒有反應,點擊下面的灰色狀態條列" -#: dashboards/nova/templates/nova/instances_and_volumes/instances/_detail_vnc.html:5 +#: dashboards/nova/instances/templates/instances/_detail_vnc.html:5 msgid "Click here to show only VNC" msgstr "" -#: dashboards/nova/templates/nova/instances_and_volumes/instances/_detail_vnc.html:8 +#: dashboards/nova/instances/templates/instances/_detail_vnc.html:8 #, fuzzy msgid "VNC console is currently unavailabe. Please try again later." msgstr "發生認證錯誤。 請稍候再試" -#: dashboards/nova/templates/nova/instances_and_volumes/instances/_detail_vnc.html:9 +#: dashboards/nova/instances/templates/instances/_detail_vnc.html:9 msgid "Reload" msgstr "" -#: dashboards/nova/templates/nova/instances_and_volumes/instances/_launch_customize_help.html:2 +#: dashboards/nova/instances/templates/instances/_launch_customize_help.html:2 msgid "" "You can customize your instance after it's launched using the options " "available here." msgstr "" -#: dashboards/nova/templates/nova/instances_and_volumes/instances/_launch_customize_help.html:3 +#: dashboards/nova/instances/templates/instances/_launch_customize_help.html:3 msgid "" "The \"Customization Script\" field is analogous to \"User Data\" in other " "systems." msgstr "" -#: dashboards/nova/templates/nova/instances_and_volumes/instances/_launch_details_help.html:3 +#: dashboards/nova/instances/templates/instances/_launch_details_help.html:3 msgid "Specify the details for launching an instance." msgstr "" -#: dashboards/nova/templates/nova/instances_and_volumes/instances/_launch_details_help.html:4 +#: dashboards/nova/instances/templates/instances/_launch_details_help.html:4 #, fuzzy msgid "" "The chart below shows the resources used by this project in relation to the " @@ -1530,149 +1666,341 @@ msgstr "" "啟動執行個體所指定的詳細資料。以下圖表顯示的是這個專案配額可以使用以及已使用" "的資源" -#: dashboards/nova/templates/nova/instances_and_volumes/instances/_launch_details_help.html:6 +#: dashboards/nova/instances/templates/instances/_launch_details_help.html:6 #, fuzzy msgid "Flavor Details" msgstr "規格ID" -#: dashboards/nova/templates/nova/instances_and_volumes/instances/_launch_details_help.html:11 +#: dashboards/nova/instances/templates/instances/_launch_details_help.html:11 #: dashboards/syspanel/flavors/tables.py:32 msgid "Root Disk" msgstr "主磁碟" -#: dashboards/nova/templates/nova/instances_and_volumes/instances/_launch_details_help.html:12 +#: dashboards/nova/instances/templates/instances/_launch_details_help.html:12 #: dashboards/syspanel/flavors/tables.py:34 msgid "Ephemeral Disk" msgstr "暫用磁碟" -#: dashboards/nova/templates/nova/instances_and_volumes/instances/_launch_details_help.html:13 +#: dashboards/nova/instances/templates/instances/_launch_details_help.html:13 #, fuzzy msgid "Total Disk" msgstr "主磁碟" -#: dashboards/nova/templates/nova/instances_and_volumes/instances/_launch_details_help.html:14 -#: dashboards/nova/templates/nova/instances_and_volumes/instances/_launch_details_help.html:42 +#: dashboards/nova/instances/templates/instances/_launch_details_help.html:14 +#: dashboards/nova/instances/templates/instances/_launch_details_help.html:37 msgid "MB" msgstr "" -#: dashboards/nova/templates/nova/instances_and_volumes/instances/_launch_details_help.html:42 -#: dashboards/syspanel/flavors/tables.py:31 -msgid "Memory" +#: dashboards/nova/instances/templates/instances/_launch_details_help.html:21 +#, fuzzy +msgid "Number of Instances" +msgstr "要啟動的執行個體數量" + +#: dashboards/nova/instances/templates/instances/_launch_details_help.html:29 +#, fuzzy +msgid "Number of VCPUs" +msgstr "連接埠數量" + +#: dashboards/nova/instances/templates/instances/_launch_details_help.html:37 +#, fuzzy +msgid "Total Memory" msgstr "記憶體" -#: dashboards/nova/templates/nova/instances_and_volumes/instances/_launch_volumes_help.html:3 +#: dashboards/nova/instances/templates/instances/_launch_volumes_help.html:3 msgid "" "An instance can be launched with varying types of attached storage. You may " "select from those options here." msgstr "" -#: dashboards/nova/templates/nova/instances_and_volumes/instances/_update.html:17 +#: dashboards/nova/instances/templates/instances/_update.html:17 #, fuzzy msgid "You may update the editable properties of your instance here." msgstr "更新執行個體的名稱" -#: dashboards/nova/templates/nova/instances_and_volumes/instances/_update.html:22 +#: dashboards/nova/instances/templates/instances/_update.html:22 msgid "Save Changes" msgstr "" -#: dashboards/nova/templates/nova/instances_and_volumes/instances/detail.html:3 +#: dashboards/nova/instances/templates/instances/detail.html:3 msgid "Instance Detail" msgstr "執行個體詳述" -#: dashboards/nova/templates/nova/instances_and_volumes/instances/update.html:3 -#: dashboards/nova/templates/nova/instances_and_volumes/instances/update.html:6 +#: dashboards/nova/instances/templates/instances/update.html:3 +#: dashboards/nova/instances/templates/instances/update.html:6 msgid "Update Instance" msgstr "更新執行個體" -#: dashboards/nova/templates/nova/instances_and_volumes/volumes/_attach.html:9 -#: dashboards/nova/templates/nova/instances_and_volumes/volumes/attach.html:6 +#: dashboards/nova/templates/nova/_warning.html:6 +msgid "You currently have the power to damage your OpenStack cloud..." +msgstr "" + +#: dashboards/nova/templates/nova/_warning.html:9 +msgid "" +"Due to inconsistencies in the way Nova interacts with Keystone, a user with " +"an admin role has access to all resources in the system (volumes, snapshots, " +"keypairs, etc.), even in the Project dashboard where they should only see a " +"properly-scoped subset of those resources." +msgstr "" + +#: dashboards/nova/templates/nova/_warning.html:10 +msgid "" +"This means that Nova allows an admin user in the Project Dashboard to " +"successfully take actions which otherwise should not be permitted, causing " +"irresolvable conflicts in Nova." +msgstr "" + +#: dashboards/nova/templates/nova/_warning.html:11 +msgid "A list of the known problems are as follows:" +msgstr "" + +#: dashboards/nova/templates/nova/_warning.html:13 +msgid "" +"Attaching a volume owned by project A to an instance in project B can " +"completely hang Nova." +msgstr "" + +#: dashboards/nova/templates/nova/_warning.html:14 +msgid "" +"Assigning keypairs owned by project A to an instance in project B can result " +"in failed instances, problems in retrieving instance details for non-admin " +"users, and/or security holes should the instance succeed in spawning." +msgstr "" + +#: dashboards/nova/templates/nova/_warning.html:15 +msgid "" +"Attempting to launch an instance in project A from a snapshot or volume " +"snapshot owned by project B can hang Nova." +msgstr "" + +#: dashboards/nova/templates/nova/_warning.html:16 +msgid "" +"Attempting to boot from a volume owned by project A in project B can hang " +"Nova." +msgstr "" + +#: dashboards/nova/templates/nova/_warning.html:18 +msgid "" +"This is only a list of the reported inconsistencies. There may be others." +msgstr "" + +#: dashboards/nova/templates/nova/_warning.html:19 +msgid "" +"The recommended practice until this problem is resolved is to keep your " +"admin users and regular users separate. Create an \"admin\" project that " +"admin users have access to, and do not grant your admin users the admin role " +"on any other projects." +msgstr "" + +#: dashboards/nova/templates/nova/_warning.html:20 +msgid "" +"To follow the status of this bug, take a look at the following items on " +"launchpad:" +msgstr "" + +#: dashboards/nova/templates/nova/_warning.html:27 +msgid "" +"Thank you for reading this warning and operating your cloud responsibly." +msgstr "" + +#: dashboards/nova/templates/nova/_warning.html:30 +msgid "Close" +msgstr "" + +#: dashboards/nova/templates/nova/base.html:9 +msgid "Caution" +msgstr "" + +#: dashboards/nova/templates/nova/base.html:10 +msgid "You are acting as an admin user in the project dashboard." +msgstr "" + +#: dashboards/nova/templates/nova/base.html:12 +msgid "Learn More" +msgstr "" + +#: dashboards/nova/volumes/forms.py:40 +#, python-format +msgid "" +"A volume of %(req)iGB cannot be created as you only have %(avail)iGB of your " +"quota available." +msgstr "" + +#: dashboards/nova/volumes/forms.py:47 +#, fuzzy +msgid "You are already using all of your available volumes." +msgstr "您沒有任何現有專案的權限。" + +#: dashboards/nova/volumes/forms.py:60 +#, fuzzy +msgid "Unable to create volume." +msgstr "無法建立使用者。" + +#: dashboards/nova/volumes/forms.py:67 +msgid "Select an instance to attach to." +msgstr "選擇掛載的執行個體" + +#: dashboards/nova/volumes/forms.py:100 +msgid "Unknown instance (None)" +msgstr "" + +#: dashboards/nova/volumes/forms.py:111 +#, fuzzy, python-format +msgid "Attaching volume %(vol)s to instance %(inst)s on %(dev)s." +msgstr "正在掛載容量%(vol)s到執行個體%(inst)s的%(dev)s" + +#: dashboards/nova/volumes/forms.py:118 +#, fuzzy +msgid "Unable to attach volume." +msgstr "無法連上連接埠。" + +#: dashboards/nova/volumes/forms.py:142 +#, python-format +msgid "Creating volume snapshot \"%s\"" +msgstr "建立容量快照\"%s\"" + +#: dashboards/nova/volumes/forms.py:146 +#, fuzzy +msgid "Unable to create volume snapshot." +msgstr "無法取得空間快照" + +#: dashboards/nova/volumes/panel.py:24 dashboards/nova/volumes/tables.py:37 +#: dashboards/nova/volumes/tables.py:160 dashboards/nova/volumes/tables.py:172 +#: dashboards/nova/volumes/templates/volumes/index.html:3 +#: dashboards/nova/volumes/templates/volumes/index.html:6 +#: dashboards/syspanel/projects/forms.py:116 +#: dashboards/syspanel/volumes/panel.py:9 +#: dashboards/syspanel/volumes/tables.py:15 +#: dashboards/syspanel/volumes/templates/volumes/index.html:3 +#: dashboards/syspanel/volumes/templates/volumes/index.html:6 +msgid "Volumes" +msgstr "容量" + +#: dashboards/nova/volumes/tables.py:50 +#: dashboards/nova/volumes/templates/volumes/_create.html:8 +#: dashboards/nova/volumes/templates/volumes/_create.html:55 +msgid "Create Volume" +msgstr "建立容量" + +#: dashboards/nova/volumes/tables.py:57 +msgid "Edit Attachments" +msgstr "編輯掛載" + +#: dashboards/nova/volumes/tables.py:84 +#, python-format +msgid "%sGB" +msgstr "" + +#: dashboards/nova/volumes/tables.py:97 +#, fuzzy +msgid "Unable to retrieve attachment information." +msgstr "無法取得使用量資訊" + +#: dashboards/nova/volumes/tables.py:114 +#, fuzzy, python-format +msgid "Attached to %(instance)s on %(dev)s" +msgstr "正在掛載容量%(vol)s到執行個體%(inst)s的%(dev)s" + +#: dashboards/nova/volumes/tables.py:169 +msgid "Detach" +msgstr "卸載" + +#: dashboards/nova/volumes/tables.py:170 +#, fuzzy +msgid "Detaching" +msgstr "卸載" + +#: dashboards/nova/volumes/tables.py:205 +#, python-format +msgid "%(dev)s on instance %(instance_name)s" +msgstr "" + +#: dashboards/nova/volumes/tabs.py:41 +msgid "Unable to retrieve volume details." +msgstr "無法取得容量快照" + +#: dashboards/nova/volumes/views.py:50 +#, fuzzy +msgid "Unable to retrieve volume list." +msgstr "無法取得使用者" + +#: dashboards/nova/volumes/views.py:56 +#, fuzzy +msgid "Unable to retrieve volume/instance attachment information" +msgstr "無法取得執行個體的專案資訊" + +#: dashboards/nova/volumes/views.py:114 dashboards/nova/volumes/views.py:124 +msgid "Unable to retrieve volume information." +msgstr "無法取得容量資訊" + +#: dashboards/nova/volumes/templates/volumes/_attach.html:9 +#: dashboards/nova/volumes/templates/volumes/attach.html:6 msgid "Manage Volume Attachments" msgstr "管理容量掛載" -#: dashboards/nova/templates/nova/instances_and_volumes/volumes/_attach.html:12 +#: dashboards/nova/volumes/templates/volumes/_attach.html:12 msgid "Attach To Instance" msgstr "掛載到執行個體" -#: dashboards/nova/templates/nova/instances_and_volumes/volumes/_attach.html:19 +#: dashboards/nova/volumes/templates/volumes/_attach.html:19 msgid "Attach Volume" msgstr "掛載容量" -#: dashboards/nova/templates/nova/instances_and_volumes/volumes/_create.html:18 -#: dashboards/nova/templates/nova/instances_and_volumes/volumes/_create_snapshot.html:18 +#: dashboards/nova/volumes/templates/volumes/_create.html:20 +#: dashboards/nova/volumes/templates/volumes/_create_snapshot.html:18 msgid "Volumes are block devices that can be attached to instances." msgstr "容量是可以掛載到執行個體的分塊磁碟裝置" -#: dashboards/nova/templates/nova/instances_and_volumes/volumes/_create_snapshot.html:8 -#: dashboards/nova/templates/nova/instances_and_volumes/volumes/_create_snapshot.html:23 -#: dashboards/nova/templates/nova/instances_and_volumes/volumes/create_snapshot.html:3 +#: dashboards/nova/volumes/templates/volumes/_create.html:22 +#, fuzzy +msgid "Volume Quotas" +msgstr "容量詳述" + +#: dashboards/nova/volumes/templates/volumes/_create.html:25 +#, fuzzy +msgid "Total Gigabytes" +msgstr "儲存空間 (Gigabytes)" + +#: dashboards/nova/volumes/templates/volumes/_create.html:34 +#, fuzzy +msgid "Number of Volumes" +msgstr "連接埠數量" + +#: dashboards/nova/volumes/templates/volumes/_create_snapshot.html:8 +#: dashboards/nova/volumes/templates/volumes/_create_snapshot.html:23 +#: dashboards/nova/volumes/templates/volumes/create_snapshot.html:3 msgid "Create Volume Snapshot" msgstr "建立容量快照" -#: dashboards/nova/templates/nova/instances_and_volumes/volumes/_detail_overview.html:3 +#: dashboards/nova/volumes/templates/volumes/_detail_overview.html:3 msgid "Volume Overview" msgstr "容量總覽" -#: dashboards/nova/templates/nova/instances_and_volumes/volumes/_detail_overview.html:38 -msgid "Attached To" -msgstr "掛載到" +#: dashboards/nova/volumes/templates/volumes/_detail_overview.html:34 +msgid "Attachments" +msgstr "掛載" -#: dashboards/nova/templates/nova/instances_and_volumes/volumes/_detail_overview.html:42 -msgid "on" -msgstr "在" - -#: dashboards/nova/templates/nova/instances_and_volumes/volumes/_detail_overview.html:47 +#: dashboards/nova/volumes/templates/volumes/_detail_overview.html:46 msgid "Not attached" msgstr "沒有掛載" -#: dashboards/nova/templates/nova/instances_and_volumes/volumes/create.html:6 +#: dashboards/nova/volumes/templates/volumes/create.html:6 msgid "Create a Volume" msgstr "建立容量" -#: dashboards/nova/templates/nova/instances_and_volumes/volumes/create_snapshot.html:6 +#: dashboards/nova/volumes/templates/volumes/create_snapshot.html:6 msgid "Create a Volume Snapshot" msgstr "建立容量快照" -#: dashboards/nova/templates/nova/instances_and_volumes/volumes/detail.html:3 +#: dashboards/nova/volumes/templates/volumes/detail.html:3 +#: dashboards/syspanel/volumes/templates/volumes/detail.html:3 msgid "Volume Details" msgstr "容量詳述" -#: dashboards/nova/templates/nova/instances_and_volumes/volumes/detail.html:6 +#: dashboards/nova/volumes/templates/volumes/detail.html:6 +#: dashboards/syspanel/volumes/templates/volumes/detail.html:6 msgid "Volume Detail" msgstr "容量詳述" -#: dashboards/nova/templates/nova/objects/_copy.html:7 -#: dashboards/nova/templates/nova/objects/_copy.html:22 -#: dashboards/nova/templates/nova/objects/copy.html:3 -#: dashboards/nova/templates/nova/objects/copy.html:6 -msgid "Copy Object" -msgstr "複製物件" - -#: dashboards/nova/templates/nova/objects/_copy.html:17 -msgid "" -"You may make a new copy of an existing object to store in this or another " -"container." -msgstr "您可以複製一份已存在的物件,儲存到這個或其它的容器。" - -#: dashboards/nova/templates/nova/objects/_upload.html:8 -msgid "Upload Object To Container" -msgstr "上傳物件到容器" - -#: dashboards/nova/templates/nova/objects/_upload.html:18 -msgid "" -"An object is the basic storage entity and any optional metadata that " -"represents the files you store in the OpenStack Object Storage system. When " -"you upload data to OpenStack Object Storage, the data is stored as-is (no " -"compression or encryption) and consists of a location (container), the " -"object's name, and any metadata consisting of key/value pairs." -msgstr "" -"物件是OpenStack物件儲存系統裡,用來代表所儲存的檔案加上相關的metadata組成的儲" -"存基本單位。當您上傳資料到OpenStack物件儲存時,該資料是原封不動(沒有壓縮或加" -"密)的被儲存,包含相關位置(容器),物件名稱,及相關的key/value metadata" - -#: dashboards/nova/templates/nova/objects/upload.html:6 -msgid "Upload Objects" -msgstr "上傳物件" - #: dashboards/settings/dashboard.py:24 msgid "Settings" msgstr "設定" @@ -1685,11 +2013,11 @@ msgstr "選擇專案" msgid "Unable to retrieve tenant list." msgstr "無法取得租戶列表" -#: dashboards/settings/ec2/forms.py:95 +#: dashboards/settings/ec2/forms.py:93 msgid "Unable to fetch EC2 credentials." msgstr "無法讀取EC2憑證資料" -#: dashboards/settings/ec2/forms.py:108 +#: dashboards/settings/ec2/forms.py:106 #, python-format msgid "Error writing zipfile: %(exc)s" msgstr "寫入壓縮檔錯誤: %(exc)s" @@ -1698,23 +2026,14 @@ msgstr "寫入壓縮檔錯誤: %(exc)s" msgid "EC2 Credentials" msgstr "EC2憑證資料" -#: dashboards/settings/project/forms.py:76 -#, python-format -msgid "Error Downloading RC File: %s" -msgstr "RC檔下載錯誤: %s" - -#: dashboards/settings/project/panel.py:24 -msgid "OpenStack Credentials" -msgstr "OpenStack憑證資料" - -#: dashboards/settings/templates/settings/ec2/download_form.html:8 -#: dashboards/settings/templates/settings/ec2/download_form.html:23 -#: dashboards/settings/templates/settings/ec2/index.html:3 -#: dashboards/settings/templates/settings/ec2/index.html:6 +#: dashboards/settings/ec2/templates/ec2/download_form.html:8 +#: dashboards/settings/ec2/templates/ec2/download_form.html:23 +#: dashboards/settings/ec2/templates/ec2/index.html:3 +#: dashboards/settings/ec2/templates/ec2/index.html:6 msgid "Download EC2 Credentials" msgstr "下載EC2憑證資料" -#: dashboards/settings/templates/settings/ec2/download_form.html:18 +#: dashboards/settings/ec2/templates/ec2/download_form.html:18 msgid "" "Clicking \"Download EC2 Credentials\" will download a zip file which " "includes an rc file with your access/secret keys, as well as your x509 " @@ -1722,12 +2041,37 @@ msgid "" msgstr "" "點擊\"下載EC2認證憑據資料\"會下載一個壓縮檔,裡面含有您的x509私鑰和憑證" -#: dashboards/settings/templates/settings/project/_openrc.html:8 -#: dashboards/settings/templates/settings/project/settings.html:6 +#: dashboards/settings/project/forms.py:76 +#, python-format +msgid "Error Downloading RC File: %s" +msgstr "RC檔下載錯誤: %s" + +#: dashboards/settings/project/panel.py:24 +#: dashboards/settings/project/templates/project/_openrc.html:8 +#: dashboards/settings/project/templates/project/settings.html:3 +#: dashboards/settings/project/templates/project/settings.html:6 +msgid "OpenStack API" +msgstr "" + +#: dashboards/settings/project/tables.py:27 +#, fuzzy +msgid "Service Name" +msgstr "裝置名稱" + +#: dashboards/settings/project/tables.py:29 +#, fuzzy +msgid "Service Endpoint" +msgstr "服務" + +#: dashboards/settings/project/tables.py:33 +msgid "API Endpoints" +msgstr "" + +#: dashboards/settings/project/templates/project/_openrc.html:15 msgid "Download OpenStack RC File" msgstr "下載OpenStack RC檔" -#: dashboards/settings/templates/settings/project/_openrc.html:18 +#: dashboards/settings/project/templates/project/_openrc.html:25 msgid "" "Download the RC file for the selected project, then type \"source openrc\" " "in the terminal to configure your environment to communicate with OpenStack." @@ -1735,35 +2079,32 @@ msgstr "" "下載所選擇專案的RC檔案後,在終端輸入\"source openrc\"來設置您的環境,以便和" "OpenStack做連線溝通。" -#: dashboards/settings/templates/settings/project/_openrc.html:23 +#: dashboards/settings/project/templates/project/_openrc.html:30 msgid "Download RC File" msgstr "下載RC檔" -#: dashboards/settings/templates/settings/user/_language.html:8 -#: dashboards/settings/templates/settings/user/_language.html:36 -msgid "Select Language" -msgstr "選擇語言" - -#: dashboards/settings/templates/settings/user/_language.html:12 -msgid "Dashboard User Interface Language" -msgstr "控制台使用界面語言" - -#: dashboards/settings/templates/settings/user/_language.html:14 -msgid "Language Settings" -msgstr "語言設定" - -#: dashboards/settings/templates/settings/user/_language.html:31 -msgid "From here you can modify different settings for your dashboard." -msgstr "您可以在這裡修改控制台的不同設定" - -#: dashboards/settings/templates/settings/user/settings.html:6 -msgid "Dashboard Settings" -msgstr "控制台設定" +#: dashboards/settings/user/forms.py:57 +#, fuzzy +msgid "Settings saved." +msgstr "設定" #: dashboards/settings/user/panel.py:24 +#: dashboards/settings/user/templates/user/_settings.html:8 +#: dashboards/settings/user/templates/user/settings.html:3 +#: dashboards/settings/user/templates/user/settings.html:6 msgid "User Settings" msgstr "使用者設定" +#: dashboards/settings/user/templates/user/_settings.html:18 +#, fuzzy +msgid "From here you can modify dashboard settings for your user." +msgstr "您可以在這裡修改控制台的不同設定" + +#: dashboards/settings/user/templates/user/_settings.html:23 +#: workflows/base.py:510 +msgid "Save" +msgstr "" + #: dashboards/syspanel/dashboard.py:24 msgid "System Panel" msgstr "系統面板" @@ -1796,14 +2137,14 @@ msgstr "%s已成功被加入規格中" #: dashboards/syspanel/flavors/panel.py:28 #: dashboards/syspanel/flavors/tables.py:14 #: dashboards/syspanel/flavors/tables.py:38 -#: dashboards/syspanel/templates/syspanel/flavors/index.html:8 +#: dashboards/syspanel/flavors/templates/flavors/index.html:8 msgid "Flavors" msgstr "規格" #: dashboards/syspanel/flavors/tables.py:22 -#: dashboards/syspanel/templates/syspanel/flavors/_create.html:8 -#: dashboards/syspanel/templates/syspanel/flavors/_create.html:23 -#: dashboards/syspanel/templates/syspanel/flavors/create.html:6 +#: dashboards/syspanel/flavors/templates/flavors/_create.html:8 +#: dashboards/syspanel/flavors/templates/flavors/_create.html:23 +#: dashboards/syspanel/flavors/templates/flavors/create.html:6 msgid "Create Flavor" msgstr "建立規格" @@ -1811,6 +2152,10 @@ msgstr "建立規格" msgid "Flavor Name" msgstr "規格名稱" +#: dashboards/syspanel/flavors/tables.py:31 +msgid "Memory" +msgstr "記憶體" + #: dashboards/syspanel/flavors/views.py:48 msgid "Unauthorized." msgstr "權限不足" @@ -1820,13 +2165,18 @@ msgstr "權限不足" msgid "Unable to get flavor list: %s" msgstr "無法取得規格列表: %s" +#: dashboards/syspanel/flavors/templates/flavors/_create.html:18 +msgid "From here you can define the sizing of a new flavor." +msgstr "您可以在這裡制定新規格的配置" + #: dashboards/syspanel/images/views.py:52 msgid "Unable to retrieve image list." msgstr "無法取得映像列表" -#: dashboards/syspanel/instances/tables.py:62 -msgid "Tenant" -msgstr "租戶" +#: dashboards/syspanel/instances/tables.py:62 usage/tables.py:29 +#, fuzzy +msgid "Project Name" +msgstr "專案使用量" #: dashboards/syspanel/instances/tables.py:69 #: dashboards/syspanel/services/tables.py:40 @@ -1837,21 +2187,36 @@ msgstr "主機" msgid "Unable to retrieve instance tenant information." msgstr "無法取得執行個體的專案資訊" +#: dashboards/syspanel/instances/templates/instances/index.html:6 +msgid "All Instances" +msgstr "所有執行個體" + +#: dashboards/syspanel/overview/templates/overview/usage.html:3 +msgid "Usage Overview" +msgstr "使用量總覽" + +#: dashboards/syspanel/overview/templates/overview/usage.html:12 +msgid "Monitoring" +msgstr "監測" + #: dashboards/syspanel/projects/forms.py:38 +#: dashboards/syspanel/users/forms.py:75 msgid "Role" msgstr "角色" #: dashboards/syspanel/projects/forms.py:52 -msgid "Successfully added user to tenant." +#, fuzzy +msgid "Successfully added user to project." msgstr "已成功將使用者加入租戶" #: dashboards/syspanel/projects/forms.py:54 -msgid "Unable to add user to tenant." -msgstr "無法將使用者加入租戶" +#, fuzzy +msgid "Unable to add user to project." +msgstr "無法將使用者加入主要專案。" #: dashboards/syspanel/projects/forms.py:64 #: dashboards/syspanel/projects/forms.py:89 -#: dashboards/syspanel/projects/tables.py:77 +#: dashboards/syspanel/projects/tables.py:78 #: dashboards/syspanel/services/tables.py:42 #: dashboards/syspanel/users/tables.py:38 #: dashboards/syspanel/users/tables.py:112 @@ -1864,8 +2229,9 @@ msgid "%s was successfully created." msgstr "以成功建立%s" #: dashboards/syspanel/projects/forms.py:78 -msgid "Unable to create tenant." -msgstr "無法建立租戶" +#, fuzzy +msgid "Unable to create project." +msgstr "無法取得物件。" #: dashboards/syspanel/projects/forms.py:100 #, python-format @@ -1873,7 +2239,8 @@ msgid "%s was successfully updated." msgstr "已成功更新%s" #: dashboards/syspanel/projects/forms.py:103 -msgid "Unable to update tenant." +#, fuzzy +msgid "Unable to update project." msgstr "無法更新租戶" #: dashboards/syspanel/projects/forms.py:108 @@ -1910,63 +2277,68 @@ msgid "Unable to update quotas." msgstr "無法更新配額" #: dashboards/syspanel/projects/panel.py:28 -#: dashboards/syspanel/projects/tables.py:52 -#: dashboards/syspanel/projects/tables.py:81 -#: dashboards/syspanel/templates/syspanel/projects/index.html:8 +#: dashboards/syspanel/projects/tables.py:53 +#: dashboards/syspanel/projects/tables.py:82 +#: dashboards/syspanel/projects/templates/projects/index.html:8 msgid "Projects" msgstr "專案" -#: dashboards/syspanel/projects/tables.py:17 +#: dashboards/syspanel/projects/tables.py:18 msgid "Modify Quotas" msgstr "修改配額" -#: dashboards/syspanel/projects/tables.py:24 +#: dashboards/syspanel/projects/tables.py:25 msgid "Modify Users" msgstr "修改使用者" -#: dashboards/syspanel/projects/tables.py:31 +#: dashboards/syspanel/projects/tables.py:32 msgid "View Usage" msgstr "檢視使用量" -#: dashboards/syspanel/projects/tables.py:38 +#: dashboards/syspanel/projects/tables.py:39 msgid "Edit Project" msgstr "編輯專案" -#: dashboards/syspanel/projects/tables.py:45 +#: dashboards/syspanel/projects/tables.py:46 msgid "Create New Project" msgstr "建立新專案" -#: dashboards/syspanel/projects/tables.py:73 -#: dashboards/syspanel/services/tables.py:37 -msgid "Id" -msgstr "Id" - -#: dashboards/syspanel/projects/tables.py:89 +#: dashboards/syspanel/projects/tables.py:90 msgid "Remove" msgstr "移除" -#: dashboards/syspanel/projects/tables.py:90 +#: dashboards/syspanel/projects/tables.py:91 msgid "Removed" msgstr "已移除" -#: dashboards/syspanel/projects/tables.py:92 -#: dashboards/syspanel/templates/syspanel/users/index.html:8 +#: dashboards/syspanel/projects/tables.py:93 #: dashboards/syspanel/users/panel.py:28 #: dashboards/syspanel/users/tables.py:40 #: dashboards/syspanel/users/tables.py:74 #: dashboards/syspanel/users/tables.py:119 +#: dashboards/syspanel/users/templates/users/index.html:8 msgid "Users" msgstr "使用者" -#: dashboards/syspanel/projects/tables.py:103 +#: dashboards/syspanel/projects/tables.py:111 +#, fuzzy +msgid "Unable to retrieve role information." +msgstr "無法取得容量資訊" + +#: dashboards/syspanel/projects/tables.py:116 +#, fuzzy +msgid "Roles" +msgstr "角色" + +#: dashboards/syspanel/projects/tables.py:120 msgid "Users For Project" msgstr "專案使用者" -#: dashboards/syspanel/projects/tables.py:110 +#: dashboards/syspanel/projects/tables.py:128 msgid "Add To Project" msgstr "加入專案" -#: dashboards/syspanel/projects/tables.py:122 +#: dashboards/syspanel/projects/tables.py:140 msgid "Add New Users" msgstr "新增使用者" @@ -1988,6 +2360,64 @@ msgstr "無法取得使用者" msgid "Unable to retrieve roles." msgstr "無法取得角色" +#: dashboards/syspanel/projects/templates/projects/_add_user.html:8 +#: dashboards/syspanel/projects/templates/projects/add_user.html:3 +#: dashboards/syspanel/projects/templates/projects/add_user.html:6 +msgid "Add User To Project" +msgstr "新增使用者到專案" + +#: dashboards/syspanel/projects/templates/projects/_add_user.html:18 +msgid "Select the user role for the project." +msgstr "選擇使用者的專案角色" + +#: dashboards/syspanel/projects/templates/projects/_add_user.html:23 +msgid "Add" +msgstr "新增" + +#: dashboards/syspanel/projects/templates/projects/_create.html:8 +#: dashboards/syspanel/projects/templates/projects/_create.html:23 +#: dashboards/syspanel/projects/templates/projects/create.html:6 +msgid "Create Project" +msgstr "建立專案" + +#: dashboards/syspanel/projects/templates/projects/_create.html:18 +msgid "From here you can create a new project to organize users." +msgstr "您可以在這裡建立新專案以管理使用者" + +#: dashboards/syspanel/projects/templates/projects/_quotas.html:7 +#: dashboards/syspanel/projects/templates/projects/_quotas.html:22 +msgid "Update Quota" +msgstr "更新配額" + +#: dashboards/syspanel/projects/templates/projects/_quotas.html:17 +#, python-format +msgid "" +"From here you can edit quotas (max limits) for the project %(tenant.name)s." +msgstr "您可以在這裡編輯專案%(tenant.name)s的資源配額(最大用額)。" + +#: dashboards/syspanel/projects/templates/projects/_update.html:8 +#: dashboards/syspanel/projects/templates/projects/_update.html:23 +#: dashboards/syspanel/projects/templates/projects/quotas.html:6 +#: dashboards/syspanel/projects/templates/projects/update.html:6 +msgid "Update Project" +msgstr "更新專案" + +#: dashboards/syspanel/projects/templates/projects/_update.html:18 +msgid "From here you can edit a project." +msgstr "您可以在這編輯專案" + +#: dashboards/syspanel/projects/templates/projects/usage.html:3 +msgid "Project Usage Overview" +msgstr "專案使用量總覽" + +#: dashboards/syspanel/projects/templates/projects/usage.html:7 +msgid "Project Usage" +msgstr "專案使用量" + +#: dashboards/syspanel/projects/templates/projects/users.html:7 +msgid "Users for Project" +msgstr "專案使用者" + #: dashboards/syspanel/quotas/panel.py:28 #: dashboards/syspanel/quotas/tables.py:36 msgid "Quotas" @@ -2006,191 +2436,105 @@ msgstr "限制" msgid "Unable to get quota info." msgstr "無法取得配額資料: %s" +#: dashboards/syspanel/quotas/templates/quotas/index.html:8 +msgid "Default Quotas" +msgstr "預設配額" + #: dashboards/syspanel/services/panel.py:28 #: dashboards/syspanel/services/tables.py:47 -#: dashboards/syspanel/templates/syspanel/services/index.html:8 +#: dashboards/syspanel/services/templates/services/index.html:8 msgid "Services" msgstr "服務" +#: dashboards/syspanel/services/tables.py:37 +msgid "Id" +msgstr "Id" + #: dashboards/syspanel/services/tables.py:39 msgid "Service" msgstr "服務" -#: dashboards/syspanel/templates/syspanel/flavors/_create.html:18 -msgid "From here you can define the sizing of a new flavor." -msgstr "您可以在這裡制定新規格的配置" - -#: dashboards/syspanel/templates/syspanel/instances/index.html:6 -msgid "All Instances" -msgstr "所有執行個體" - -#: dashboards/syspanel/templates/syspanel/overview/usage.html:3 -msgid "Usage Overview" -msgstr "使用量總覽" - -#: dashboards/syspanel/templates/syspanel/overview/usage.html:12 -msgid "Monitoring" -msgstr "監測" - -#: dashboards/syspanel/templates/syspanel/projects/_add_user.html:8 -#: dashboards/syspanel/templates/syspanel/projects/add_user.html:3 -#: dashboards/syspanel/templates/syspanel/projects/add_user.html:6 -msgid "Add User To Project" -msgstr "新增使用者到專案" - -#: dashboards/syspanel/templates/syspanel/projects/_add_user.html:18 -msgid "Select the user role for the project." -msgstr "選擇使用者的專案角色" - -#: dashboards/syspanel/templates/syspanel/projects/_add_user.html:23 -msgid "Add" -msgstr "新增" - -#: dashboards/syspanel/templates/syspanel/projects/_create.html:8 -#: dashboards/syspanel/templates/syspanel/projects/_create.html:23 -#: dashboards/syspanel/templates/syspanel/projects/create.html:6 -msgid "Create Project" -msgstr "建立專案" - -#: dashboards/syspanel/templates/syspanel/projects/_create.html:18 -msgid "From here you can create a new project to organize users." -msgstr "您可以在這裡建立新專案以管理使用者" - -#: dashboards/syspanel/templates/syspanel/projects/_quotas.html:7 -#: dashboards/syspanel/templates/syspanel/projects/_quotas.html:22 -msgid "Update Quota" -msgstr "更新配額" - -#: dashboards/syspanel/templates/syspanel/projects/_quotas.html:17 -#, python-format -msgid "" -"From here you can edit quotas (max limits) for the project %(tenant.name)s." -msgstr "您可以在這裡編輯專案%(tenant.name)s的資源配額(最大用額)。" - -#: dashboards/syspanel/templates/syspanel/projects/_update.html:8 -#: dashboards/syspanel/templates/syspanel/projects/_update.html:23 -#: dashboards/syspanel/templates/syspanel/projects/quotas.html:6 -#: dashboards/syspanel/templates/syspanel/projects/update.html:6 -msgid "Update Project" -msgstr "更新專案" - -#: dashboards/syspanel/templates/syspanel/projects/_update.html:18 -msgid "From here you can edit a project." -msgstr "您可以在這編輯專案" - -#: dashboards/syspanel/templates/syspanel/projects/usage.html:3 -msgid "Project Usage Overview" -msgstr "專案使用量總覽" - -#: dashboards/syspanel/templates/syspanel/projects/usage.html:7 -msgid "Project Usage" -msgstr "專案使用量" - -#: dashboards/syspanel/templates/syspanel/projects/users.html:7 -msgid "Users for Project" -msgstr "專案使用者" - -#: dashboards/syspanel/templates/syspanel/quotas/index.html:8 -msgid "Default Quotas" -msgstr "預設配額" - -#: dashboards/syspanel/templates/syspanel/users/_create.html:7 -#: dashboards/syspanel/templates/syspanel/users/_create.html:22 -#: dashboards/syspanel/templates/syspanel/users/create.html:7 -#: dashboards/syspanel/users/tables.py:18 -msgid "Create User" -msgstr "建立使用者" - -#: dashboards/syspanel/templates/syspanel/users/_create.html:17 -msgid "From here you can create a new user and assign them to a project." -msgstr "您可以在這裡建立使用者及將其分配到專案。" - -#: dashboards/syspanel/templates/syspanel/users/_update.html:7 -#: dashboards/syspanel/templates/syspanel/users/_update.html:22 -#: dashboards/syspanel/templates/syspanel/users/update.html:7 -msgid "Update User" -msgstr "更新使用者" - -#: dashboards/syspanel/templates/syspanel/users/_update.html:17 -#, fuzzy -msgid "" -"From here you can edit the user's details, including their default project." -msgstr "您可以在這裡編輯使用者的名稱,電子郵件,密碼和預設專案。" - -#: dashboards/syspanel/users/forms.py:41 +#: dashboards/syspanel/users/forms.py:42 msgid "Select a project" msgstr "選擇專案" -#: dashboards/syspanel/users/forms.py:57 +#: dashboards/syspanel/users/forms.py:58 msgid "Passwords do not match." msgstr "密碼不符" -#: dashboards/syspanel/users/forms.py:62 -#: dashboards/syspanel/users/forms.py:105 -#: dashboards/syspanel/users/tables.py:107 views/auth_forms.py:64 +#: dashboards/syspanel/users/forms.py:63 +#: dashboards/syspanel/users/forms.py:114 +#: dashboards/syspanel/users/tables.py:106 msgid "User Name" msgstr "使用者名稱" -#: dashboards/syspanel/users/forms.py:63 -#: dashboards/syspanel/users/forms.py:106 -#: dashboards/syspanel/users/tables.py:108 +#: dashboards/syspanel/users/forms.py:64 +#: dashboards/syspanel/users/forms.py:115 +#: dashboards/syspanel/users/tables.py:107 msgid "Email" msgstr "電子郵件" -#: dashboards/syspanel/users/forms.py:65 -#: dashboards/syspanel/users/forms.py:107 views/auth_forms.py:65 +#: dashboards/syspanel/users/forms.py:66 +#: dashboards/syspanel/users/forms.py:116 msgid "Password" msgstr "密碼" -#: dashboards/syspanel/users/forms.py:70 -#: dashboards/syspanel/users/forms.py:114 +#: dashboards/syspanel/users/forms.py:71 +#: dashboards/syspanel/users/forms.py:123 msgid "Confirm Password" msgstr "密碼確認" -#: dashboards/syspanel/users/forms.py:73 -#: dashboards/syspanel/users/forms.py:117 +#: dashboards/syspanel/users/forms.py:74 +#: dashboards/syspanel/users/forms.py:126 msgid "Primary Project" msgstr "主要專案" -#: dashboards/syspanel/users/forms.py:85 +#: dashboards/syspanel/users/forms.py:96 #, python-format msgid "User \"%s\" was successfully created." msgstr "使用者\"%s\"已被成功建立。" -#: dashboards/syspanel/users/forms.py:96 +#: dashboards/syspanel/users/forms.py:105 msgid "Unable to add user to primary project." msgstr "無法將使用者加入主要專案。" -#: dashboards/syspanel/users/forms.py:99 +#: dashboards/syspanel/users/forms.py:108 msgid "Unable to create user." msgstr "無法建立使用者。" -#: dashboards/syspanel/users/forms.py:139 +#: dashboards/syspanel/users/forms.py:151 msgid "name" msgstr "名稱" -#: dashboards/syspanel/users/forms.py:139 +#: dashboards/syspanel/users/forms.py:151 msgid "email" msgstr "電子郵件" -#: dashboards/syspanel/users/forms.py:148 +#: dashboards/syspanel/users/forms.py:160 msgid "primary project" msgstr "主要專案" -#: dashboards/syspanel/users/forms.py:160 +#: dashboards/syspanel/users/forms.py:172 msgid "password" msgstr "密碼" -#: dashboards/syspanel/users/forms.py:169 +#: dashboards/syspanel/users/forms.py:181 #, fuzzy msgid "User has been updated successfully." msgstr "容器已成功建立" -#: dashboards/syspanel/users/forms.py:173 +#: dashboards/syspanel/users/forms.py:185 #, fuzzy, python-format msgid "Unable to update %(attributes)s for the user." msgstr "無法更新\"%(user)s\"的%(attributes)s。" +#: dashboards/syspanel/users/tables.py:18 +#: dashboards/syspanel/users/templates/users/_create.html:7 +#: dashboards/syspanel/users/templates/users/_create.html:22 +#: dashboards/syspanel/users/templates/users/create.html:7 +msgid "Create User" +msgstr "建立使用者" + #: dashboards/syspanel/users/tables.py:37 msgid "Enable" msgstr "啟用" @@ -2208,15 +2552,41 @@ msgstr "停用" msgid "You cannot disable the user you are currently logged in as." msgstr "您不能停用您目前登入使用的使用者" -#: dashboards/syspanel/users/views.py:47 +#: dashboards/syspanel/users/tables.py:111 +#, fuzzy +msgid "User ID" +msgstr "使用者資料" + +#: dashboards/syspanel/users/views.py:46 #, fuzzy msgid "Unable to retrieve user list." msgstr "無法取得使用者" -#: dashboards/syspanel/users/views.py:63 +#: dashboards/syspanel/users/views.py:67 msgid "Unable to update user." msgstr "無法更新使用者。" +#: dashboards/syspanel/users/views.py:93 +#, fuzzy +msgid "Unable to retrieve user roles." +msgstr "無法取得使用者" + +#: dashboards/syspanel/users/templates/users/_create.html:17 +msgid "From here you can create a new user and assign them to a project." +msgstr "您可以在這裡建立使用者及將其分配到專案。" + +#: dashboards/syspanel/users/templates/users/_update.html:7 +#: dashboards/syspanel/users/templates/users/_update.html:22 +#: dashboards/syspanel/users/templates/users/update.html:7 +msgid "Update User" +msgstr "更新使用者" + +#: dashboards/syspanel/users/templates/users/_update.html:17 +#, fuzzy +msgid "" +"From here you can edit the user's details, including their default project." +msgstr "您可以在這裡編輯使用者的名稱,電子郵件,密碼和預設專案。" + #: tables/actions.py:299 msgid "Filter" msgstr "搜尋" @@ -2244,25 +2614,25 @@ msgstr "刪除" msgid "Deleted" msgstr "已刪除" -#: tables/base.py:231 +#: tables/base.py:257 #, python-format msgid "The attribute %(attr)s doesn't exist on %(obj)s." msgstr "此屬性%(attr)s並不在%(obj)s上存在。" -#: tables/base.py:679 +#: tables/base.py:743 msgid "Actions" msgstr "動作" -#: tables/base.py:824 +#: tables/base.py:891 msgid "No items to display." msgstr "沒有任何相關項目" -#: tables/base.py:841 +#: tables/base.py:908 #, python-format msgid "No match returned for the id \"%s\"." msgstr "找不到id \"%s\"的相關項目" -#: tables/base.py:948 +#: tables/base.py:1015 msgid "Please select a row before taking that action." msgstr "請選擇一個欄位後才執行動作" @@ -2282,25 +2652,27 @@ msgstr "成功: " msgid "Error: " msgstr "錯誤: " -#: templates/horizon/auth/_login.html:4 -msgid "Log In" -msgstr "登入" - -#: templates/horizon/auth/_login.html:18 -msgid "Sign In" +#: templates/horizon/client_side/_loading.html:9 +msgid "Loading…" msgstr "" -#: templates/horizon/auth/login.html:4 -msgid "Login" -msgstr "登入" +#: templates/horizon/common/_data_table.html:33 +#, fuzzy +msgid "Summary" +msgstr "使用量摘要" -#: templates/horizon/common/_data_table.html:31 +#: templates/horizon/common/_data_table.html:42 #, python-format msgid "Displaying %(counter)s item" msgid_plural "Displaying %(counter)s items" msgstr[0] "正顯示%(counter)s個項目" msgstr[1] "正顯示%(counter)s個項目" +#: templates/horizon/common/_sidebar.html:14 +#, fuzzy +msgid "Current Project" +msgstr "建立專案" + #: templates/horizon/common/_usage_summary.html:5 msgid "Select a month to query its usage" msgstr "請選擇一個月份以查詢使用量" @@ -2325,12 +2697,12 @@ msgstr "本月的虛擬處理器-時數" msgid "This Month's GB-Hours" msgstr "本月的GB-時數" -#: templatetags/horizon.py:121 +#: templatetags/horizon.py:108 #, fuzzy msgid "No Limit" msgstr "限制" -#: templatetags/horizon.py:123 templatetags/horizon.py:125 +#: templatetags/horizon.py:110 templatetags/horizon.py:112 msgid "Available" msgstr "可用" @@ -2358,6 +2730,11 @@ msgstr "" msgid "%s MB" msgstr "" +#: templatetags/sizeformat.py:58 +#, python-format +msgid "%s GB" +msgstr "" + #: templatetags/sizeformat.py:61 #, python-format msgid "%s TB" @@ -2383,35 +2760,39 @@ msgstr "系統面板" msgid "Admin Panel" msgstr "管理者" -#: tests/table_tests.py:94 +#: tests/message_tests.py:30 +msgid "Giant ants are attacking San Francisco!" +msgstr "" + +#: tests/table_tests.py:104 msgid "Batch" msgstr "" -#: tests/table_tests.py:95 +#: tests/table_tests.py:105 msgid "Batched" msgstr "" -#: tests/table_tests.py:96 tests/table_tests.py:107 +#: tests/table_tests.py:106 tests/table_tests.py:117 msgid "Item" msgstr "" -#: tests/table_tests.py:97 tests/table_tests.py:108 +#: tests/table_tests.py:107 tests/table_tests.py:118 msgid "Items" msgstr "" -#: tests/table_tests.py:105 +#: tests/table_tests.py:115 msgid "Down" msgstr "" -#: tests/table_tests.py:105 +#: tests/table_tests.py:115 msgid "Up" msgstr "" -#: tests/table_tests.py:106 +#: tests/table_tests.py:116 msgid "Downed" msgstr "" -#: tests/table_tests.py:106 +#: tests/table_tests.py:116 msgid "Upped" msgstr "" @@ -2439,7 +2820,7 @@ msgstr "" msgid "Recoverable Error Tab" msgstr "" -#: tests/testsettings.py:99 +#: tests/testsettings.py:111 msgid "Password must be between 8 and 18 characters." msgstr "" @@ -2494,31 +2875,31 @@ msgstr "" msgid "Puppies" msgstr "" -#: usage/base.py:94 +#: usage/base.py:97 msgid "Unable to retrieve usage information." msgstr "無法取得使用量資訊" -#: usage/base.py:97 +#: usage/base.py:100 msgid "You are viewing data for the future, which may or may not exist." msgstr "您正在查看未來的資料,它可能並不存在" -#: usage/tables.py:10 +#: usage/tables.py:11 msgid "Download CSV Summary" msgstr "下載CSV摘要" -#: usage/tables.py:23 +#: usage/tables.py:24 msgid "VCPU Hours" msgstr "虛擬處理器時數" -#: usage/tables.py:30 +#: usage/tables.py:31 msgid "Disk GB Hours" msgstr "磁碟GB時數" -#: usage/tables.py:38 usage/tables.py:59 +#: usage/tables.py:39 usage/tables.py:67 msgid "Usage Summary" msgstr "使用量摘要" -#: usage/tables.py:51 +#: usage/tables.py:59 msgid "Uptime" msgstr "上機時間" @@ -2540,291 +2921,16 @@ msgstr "" msgid "Password is not accepted" msgstr "密碼不符" -#: views/auth.py:92 -msgid "You are not authorized for that tenant." -msgstr "您沒有該租戶的權限。" - -#: views/auth_forms.py:63 -msgid "Region" -msgstr "區域" - -#: views/auth_forms.py:107 -msgid "Unable to authenticate for that project." -msgstr "無法認證到專案權限" - -#: views/auth_forms.py:124 -msgid "Invalid user name or password." -msgstr "不合法的使用者名稱或密碼" - -#: views/auth_forms.py:131 -msgid "An error occurred authenticating. Please try again later." -msgstr "發生認證錯誤。 請稍候再試" - -#: views/auth_forms.py:150 -msgid "You are not authorized for any projects." -msgstr "您沒有任何專案的權限。" - -#: views/auth_forms.py:174 -msgid "You are not authorized for any available projects." -msgstr "您沒有任何現有專案的權限。" - -#: workflows/base.py:65 +#: workflows/base.py:69 msgid "Processing..." msgstr "" -#: workflows/base.py:478 -msgid "Save" -msgstr "" - -#: workflows/base.py:479 +#: workflows/base.py:511 #, fuzzy, python-format msgid "%s completed successfully." msgstr "容器已成功建立" -#: workflows/base.py:480 +#: workflows/base.py:512 #, python-format msgid "%s did not complete." msgstr "" - -#~ msgid "Error associating Floating IP: %s" -#~ msgstr "配給浮動IP出現錯誤: %s" - -#~ msgid "Error adding rule security group: %s" -#~ msgstr "新增安全性群組規則錯誤: %s" - -#~ msgid "Unable to delete non-empty container: %s" -#~ msgstr "無法刪除還沒清空的容器: %s" - -#~ msgid "Successfully deleted containers: %s" -#~ msgstr "已成功刪除容器: %s" - -#~ msgid "User Data" -#~ msgstr "使用者資料" - -#~ msgid "Volume or Volume Snapshot" -#~ msgstr "容量或容量快照" - -#~ msgid "Volume to boot from." -#~ msgstr "開機啟動的容量" - -#~ msgid "Cannot launch more than one instance if volume is specified." -#~ msgstr "無法以特定容量 啟動一台以上執行個體" - -#~ msgid "Unable to retrieve image \"%s\"." -#~ msgstr "無法取得映像\"%s\"。" - -#~ msgid "Launch Instances" -#~ msgstr "啟動執行個體" - -#~ msgid "Updated %(attributes)s for \"%(user)s\"." -#~ msgstr "已更新\"%(user)s\"的%(attributes)s。" - -#~ msgid "Enable Users" -#~ msgstr "啟用使用者" - -#~ msgid "Error enabling user: %s" -#~ msgstr "啟用使用者錯誤: %s" - -#~ msgid "Enabled the following users: %s" -#~ msgstr "已啟用以下使用者: %s" - -#~ msgid "Successfully enabled users: %s" -#~ msgstr "已成功啟用使用者: %s" - -#~ msgid "Disable Users" -#~ msgstr "停用使用者" - -#~ msgid "Error disabling user: %s" -#~ msgstr "停用使用者錯誤: %s" - -#~ msgid "Disabled the following users: %s" -#~ msgstr "已停用以下使用者: %s" - -#~ msgid "Successfully disabled users: %s" -#~ msgstr "已成功停用使用者: %s" - -#~ msgid "From port" -#~ msgstr "從端口" - -#~ msgid "To port" -#~ msgstr "到端口" - -#~ msgid "Unable to retrieve tenant." -#~ msgstr "無法取得租戶" - -#~ msgid "Unable to get user info: %s" -#~ msgstr "無法取得使用者資訊: %s" - -#~ msgid "IP protocol" -#~ msgstr "IP協定" - -#~ msgid "Project Settings" -#~ msgstr "專案設定" - -#~ msgid "No tenants present for user: %(user)s" -#~ msgstr "這使用者沒有租戶: %(user)s" - -#~ msgid "Image ID:" -#~ msgstr "映像ID:" - -#~ msgid "Image Status:" -#~ msgstr "映像狀態:" - -#~ msgid "Image Name:" -#~ msgstr "映像名稱:" - -#~ msgid "Public:" -#~ msgstr "公開:" - -#~ msgid "Created At:" -#~ msgstr "建立時間:" - -#~ msgid "Last Updated At:" -#~ msgstr "最後更新時間:" - -#~ msgid "Size:" -#~ msgstr "大小" - -#~ msgid "Container Format:" -#~ msgstr "容器格式:" - -#~ msgid "Disk Format:" -#~ msgstr "磁碟格式:" - -#~ msgid "Architecture:" -#~ msgstr "系統架構:" - -#~ msgid "Project ID:" -#~ msgstr "專案ID:" - -#~ msgid "Volume Name:" -#~ msgstr "映像名稱:" - -#~ msgid "Created at:" -#~ msgstr "建立時間:" - -#~ msgid "Delete Containers" -#~ msgstr "刪除容器" - -#~ msgid "Delete Objects" -#~ msgstr "刪除物件" - -#~ msgid "Unable to delete object." -#~ msgstr "無法刪除物件" - -#~ msgid "Successfully deleted objects: %s" -#~ msgstr "已成功刪除物件: %s" - -#~ msgid "Error fetching volume: %s" -#~ msgstr "取得容量錯誤: %s" - -#~ msgid "Name:" -#~ msgstr "名稱:" - -#~ msgid "Status:" -#~ msgstr "狀態:" - -#~ msgid "Unable to %s." -#~ msgstr "無法%s。" - -#~ msgid "enabled" -#~ msgstr "已啟用" - -#~ msgid "Network" -#~ msgstr "網路" - -#~ msgid "Network Name" -#~ msgstr "網路名稱" - -#~ msgid "Network %s has been created." -#~ msgstr "網路%s已被建立" - -#~ msgid "Unable to create network." -#~ msgstr "無法建立網路" - -#~ msgid "Unable to rename network %(network)s: %(msg)s" -#~ msgstr "無法重新命名網路%(network)s: %(msg)s" - -#~ msgid "Network %(net)s has been renamed to %(new_name)s." -#~ msgstr "網路%(net)s已被重新命名為%(new_name)s。" - -#~ msgid "Number of Ports" -#~ msgstr "連接埠數量" - -#~ msgid "Unable to create ports on network %(network)s: %(msg)s" -#~ msgstr "無法在網路%(network)s建立連接埠: %(msg)s" - -#~ msgid "%(num_ports)s ports created on network %(network)s." -#~ msgstr "%(num_ports)s個連接埠已在網路%(network)s上建立。" - -#~ msgid "Select VIF to connect" -#~ msgstr "選擇連接的VIF" - -#~ msgid "Port attached." -#~ msgstr "連接埠已連上。" - -#~ msgid "Unable to attach port." -#~ msgstr "無法連上連接埠。" - -#~ msgid "Rename Network" -#~ msgstr "重新命名網路" - -#~ msgid "Create New Network" -#~ msgstr "建立新網路" - -#~ msgid "Networks" -#~ msgstr "網路" - -#~ msgid "Network Id" -#~ msgstr "網路Id" - -#~ msgid "Used" -#~ msgstr "已使用" - -#~ msgid "Total" -#~ msgstr "總數" - -#~ msgid "Create Ports" -#~ msgstr "建立連接埠" - -#~ msgid "Port" -#~ msgstr "連接埠" - -#~ msgid "Ports" -#~ msgstr "連接埠" - -#~ msgid "Attach Port" -#~ msgstr "連上連接埠" - -#~ msgid "Port Id" -#~ msgstr "連接埠Id" - -#~ msgid "State" -#~ msgstr "狀態" - -#~ msgid "Attachment" -#~ msgstr "掛載" - -#~ msgid "Network Port Details" -#~ msgstr "網路連接埠詳細" - -#~ msgid "Unable to get network list: %s" -#~ msgstr "無法取得網路列表: %s" - -#~ msgid "Unable to retrieve network information." -#~ msgstr "無法取得網路資訊" - -#~ msgid "Networks provide layer 2 connectivity to your instances." -#~ msgstr "網路提供執行體" - -#~ msgid "Create Network" -#~ msgstr "建立網路" - -#~ msgid "Rename" -#~ msgstr "重新命名" - -#~ msgid "Enter a new name for your network." -#~ msgstr "輸入網路的名稱" - -#~ msgid "Network Detail" -#~ msgstr "網路詳細資料" diff --git a/horizon/middleware.py b/horizon/middleware.py index a5ba11dd2..1cec837dc 100644 --- a/horizon/middleware.py +++ b/horizon/middleware.py @@ -32,7 +32,6 @@ from django.utils import timezone from django.utils.encoding import iri_to_uri from horizon import exceptions -from horizon import users from horizon.openstack.common import jsonutils @@ -43,28 +42,12 @@ class HorizonMiddleware(object): """ The main Horizon middleware class. Required for use of Horizon. """ def process_request(self, request): - """ Adds data necessary for Horizon to function to the request. - - Adds the current "active" :class:`~horizon.Dashboard` and - :class:`~horizon.Panel` to ``request.horizon``. - - Adds a :class:`~horizon.users.User` object to ``request.user``. - """ + """ Adds data necessary for Horizon to function to the request. """ # Activate timezone handling tz = request.session.get('django_timezone') if tz: timezone.activate(tz) - # A quick and dirty way to log users out - def user_logout(request): - if hasattr(request, '_cached_user'): - del request._cached_user - # Use flush instead of clear, so we rotate session keys in - # addition to clearing all the session data - request.session.flush() - request.__class__.user_logout = user_logout - - request.__class__.user = users.LazyUser() request.horizon = {'dashboard': None, 'panel': None, 'async_messages': []} @@ -76,7 +59,7 @@ class HorizonMiddleware(object): """ if isinstance(exception, (exceptions.NotAuthorized, exceptions.NotAuthenticated)): - auth_url = reverse("horizon:auth_login") + auth_url = reverse("login") next_url = iri_to_uri(request.get_full_path()) if next_url != auth_url: param = "?%s=%s" % (REDIRECT_FIELD_NAME, next_url) diff --git a/horizon/site_urls.py b/horizon/site_urls.py index 0986272bf..deefe8ffb 100644 --- a/horizon/site_urls.py +++ b/horizon/site_urls.py @@ -22,22 +22,16 @@ from django.views.generic import TemplateView from django.conf.urls.defaults import patterns, url, include from django.conf import settings -from horizon.views.auth import LoginView - -urlpatterns = patterns('horizon.views.auth', - url(r'home/$', 'user_home', name='user_home'), - url(r"^%s$" % settings.LOGIN_URL.lstrip('/'), LoginView.as_view(), - name='auth_login'), - url(r"^%s$" % settings.LOGOUT_URL.lstrip('/'), 'logout', - name='auth_logout'), - url(r'auth/switch/(?P[^/]+)/$', 'switch_tenants', - name='auth_switch')) +urlpatterns = patterns('horizon.views', + url(r'home/$', 'user_home', name='user_home') +) urlpatterns += patterns('', url(r'^i18n/setlang/$', 'django.views.i18n.set_language', name="set_language"), - url(r'^i18n/', include('django.conf.urls.i18n'))) + url(r'^i18n/', include('django.conf.urls.i18n')) +) if settings.DEBUG: urlpatterns += patterns('', diff --git a/horizon/templates/horizon/common/_region_selector.html b/horizon/templates/horizon/common/_region_selector.html index b9cfe62eb..2eac5d42f 100644 --- a/horizon/templates/horizon/common/_region_selector.html +++ b/horizon/templates/horizon/common/_region_selector.html @@ -7,7 +7,7 @@
  • {% for region in regions.available %} {% if region.name != regions.current.name %} -
  • {{ region.name }}
  • +
  • {{ region.name }}
  • {% endif %} {% endfor %} diff --git a/horizon/templates/horizon/common/_sidebar.html b/horizon/templates/horizon/common/_sidebar.html index 87c750bf4..4d2c71b65 100644 --- a/horizon/templates/horizon/common/_sidebar.html +++ b/horizon/templates/horizon/common/_sidebar.html @@ -22,7 +22,7 @@
  • {% for tenant in authorized_tenants %} {% if tenant.enabled and tenant.id != request.user.tenant_id %} -
  • {{ tenant.name }}
  • +
  • {{ tenant.name }}
  • {% endif %} {% endfor %} diff --git a/horizon/templatetags/horizon.py b/horizon/templatetags/horizon.py index 307106f30..71172069f 100644 --- a/horizon/templatetags/horizon.py +++ b/horizon/templatetags/horizon.py @@ -29,24 +29,10 @@ register = template.Library() @register.filter def has_permissions(user, component): """ - Checks if the given user meets the requirements for the component. This - includes both user roles and services in the service catalog. + Checks if the given user meets the permissions requirements for + the component. """ - if hasattr(user, 'roles'): - user_roles = set([role['name'].lower() for role in user.roles]) - else: - user_roles = set([]) - roles_statisfied = set(getattr(component, 'roles', [])) <= user_roles - - if hasattr(user, 'service_catalog'): - services = set([service['type'] for service in user.service_catalog]) - else: - services = set([]) - services_statisfied = set(getattr(component, 'services', [])) <= services - - if roles_statisfied and services_statisfied: - return True - return False + return user.has_perms(getattr(component, 'permissions', set())) @register.filter diff --git a/horizon/test.py b/horizon/test.py index 45fc411fb..bc166fd01 100644 --- a/horizon/test.py +++ b/horizon/test.py @@ -18,26 +18,31 @@ # License for the specific language governing permissions and limitations # under the License. +from functools import wraps import os import cloudfiles as swift_client + from django import http from django import test as django_test from django.conf import settings from django.contrib.messages.storage import default_storage +from django.contrib.auth.middleware import AuthenticationMiddleware from django.core.handlers import wsgi from django.test.client import RequestFactory -from functools import wraps + from glanceclient.v1 import client as glance_client from keystoneclient.v2_0 import client as keystone_client from novaclient.v1_1 import client as nova_client + import httplib2 import mox +from openstack_auth import utils, user + from horizon import api from horizon import context_processors from horizon import middleware -from horizon import users from horizon.tests.test_data.utils import load_test_data @@ -71,12 +76,14 @@ def create_stubs(stubs_to_create={}): class RequestFactoryWithMessages(RequestFactory): def get(self, *args, **kwargs): req = super(RequestFactoryWithMessages, self).get(*args, **kwargs) + req.user = utils.get_user(req) req.session = [] req._messages = default_storage(req) return req def post(self, *args, **kwargs): req = super(RequestFactoryWithMessages, self).post(*args, **kwargs) + req.user = utils.get_user(req) req.session = [] req._messages = default_storage(req) return req @@ -116,10 +123,10 @@ class TestCase(django_test.TestCase): self._real_horizon_context_processor = context_processors.horizon context_processors.horizon = lambda request: self.context - self._real_get_user_from_request = users.get_user_from_request + self._real_get_user = utils.get_user tenants = self.context['authorized_tenants'] self.setActiveUser(id=self.user.id, - token=self.token.id, + token=self.token, username=self.user.name, tenant_id=self.tenant.id, service_catalog=self.service_catalog, @@ -128,28 +135,31 @@ class TestCase(django_test.TestCase): self.request.session = self.client._session() self.request.session['token'] = self.token.id middleware.HorizonMiddleware().process_request(self.request) + AuthenticationMiddleware().process_request(self.request) os.environ["HORIZON_TEST_RUN"] = "True" def tearDown(self): self.mox.UnsetStubs() httplib2.Http._conn_request = self._real_conn_request context_processors.horizon = self._real_horizon_context_processor - users.get_user_from_request = self._real_get_user_from_request + utils.get_user = self._real_get_user self.mox.VerifyAll() del os.environ["HORIZON_TEST_RUN"] def setActiveUser(self, id=None, token=None, username=None, tenant_id=None, service_catalog=None, tenant_name=None, roles=None, - authorized_tenants=None): - users.get_user_from_request = lambda x: \ - users.User(id=id, - token=token, - user=username, - tenant_id=tenant_id, - service_catalog=service_catalog, - roles=roles, - authorized_tenants=authorized_tenants, - request=self.request) + authorized_tenants=None, enabled=True): + def get_user(request): + return user.User(id=id, + token=token, + user=username, + tenant_id=tenant_id, + service_catalog=service_catalog, + roles=roles, + enabled=enabled, + authorized_tenants=authorized_tenants, + endpoint=settings.OPENSTACK_KEYSTONE_URL) + utils.get_user = get_user def assertRedirectsNoFollow(self, response, expected_url): """ @@ -264,9 +274,7 @@ class APITestCase(TestCase): def setUp(self): super(APITestCase, self).setUp() - def fake_keystoneclient(request, username=None, password=None, - tenant_id=None, token_id=None, endpoint=None, - admin=False): + def fake_keystoneclient(request, admin=False): """ Wrapper function which returns the stub keystoneclient. Only necessary because the function takes too many arguments to diff --git a/horizon/tests/api_tests/keystone_tests.py b/horizon/tests/api_tests/keystone_tests.py index 59e6743f9..03c6fec23 100644 --- a/horizon/tests/api_tests/keystone_tests.py +++ b/horizon/tests/api_tests/keystone_tests.py @@ -24,7 +24,6 @@ from keystoneclient.v2_0 import client as keystone_client from horizon import api from horizon import test -from horizon import users class FakeConnection(object): @@ -35,10 +34,6 @@ class ClientConnectionTests(test.TestCase): def setUp(self): super(ClientConnectionTests, self).setUp() self.mox.StubOutWithMock(keystone_client, "Client") - self.test_user = users.User(id=self.user.id, - user=self.user.name, - service_catalog=self.service_catalog) - self.request.user = self.test_user self.internal_url = api.base.url_for(self.request, 'identity', endpoint_type='internalURL') @@ -47,92 +42,6 @@ class ClientConnectionTests(test.TestCase): endpoint_type='adminURL') self.conn = FakeConnection() - def test_connect(self): - keystone_client.Client(auth_url=self.internal_url, - endpoint=None, - password=self.user.password, - tenant_id=None, - token=None, - username=self.user.name).AndReturn(self.conn) - self.mox.ReplayAll() - client = api.keystone.keystoneclient(self.request, - username=self.user.name, - password=self.user.password) - self.assertEqual(client.management_url, self.internal_url) - - def test_connect_admin(self): - self.test_user.roles = [{'name': 'admin'}] - keystone_client.Client(auth_url=self.admin_url, - endpoint=None, - password=self.user.password, - tenant_id=None, - token=None, - username=self.user.name).AndReturn(self.conn) - self.mox.ReplayAll() - client = api.keystone.keystoneclient(self.request, - username=self.user.name, - password=self.user.password, - admin=True) - self.assertEqual(client.management_url, self.admin_url) - - def connection_caching(self): - self.test_user.roles = [{'name': 'admin'}] - # Regular connection - keystone_client.Client(auth_url=self.internal_url, - endpoint=None, - password=self.user.password, - tenant_id=None, - token=None, - username=self.user.name).AndReturn(self.conn) - # Admin connection - keystone_client.Client(auth_url=self.admin_url, - endpoint=None, - password=self.user.password, - tenant_id=None, - token=None, - username=self.user.name).AndReturn(self.conn) - self.mox.ReplayAll() - # Request both admin and regular connections out of order, - # If the caching fails we would see UnexpectedMethodCall errors - # from mox. - client = api.keystone.keystoneclient(self.request, - username=self.user.name, - password=self.user.password) - self.assertEqual(client.management_url, self.internal_url) - client = api.keystone.keystoneclient(self.request, - username=self.user.name, - password=self.user.password, - admin=True) - self.assertEqual(client.management_url, self.admin_url) - client = api.keystone.keystoneclient(self.request, - username=self.user.name, - password=self.user.password) - self.assertEqual(client.management_url, self.internal_url) - client = api.keystone.keystoneclient(self.request, - username=self.user.name, - password=self.user.password, - admin=True) - self.assertEqual(client.management_url, self.admin_url) - - -class TokenApiTests(test.APITestCase): - def test_token_create(self): - token = self.tokens.scoped_token - keystoneclient = self.stub_keystoneclient() - - keystoneclient.tokens = self.mox.CreateMockAnything() - keystoneclient.tokens.authenticate(username=self.user.name, - password=self.user.password, - tenant_id=token.tenant['id'])\ - .AndReturn(token) - - self.mox.ReplayAll() - - ret_val = api.token_create(self.request, token.tenant['id'], - self.user.name, self.user.password) - - self.assertEqual(token.tenant['id'], ret_val.tenant['id']) - class RoleAPITests(test.APITestCase): def setUp(self): diff --git a/horizon/tests/auth_tests.py b/horizon/tests/auth_tests.py deleted file mode 100644 index 26f1e6eb6..000000000 --- a/horizon/tests/auth_tests.py +++ /dev/null @@ -1,291 +0,0 @@ -# vim: tabstop=4 shiftwidth=4 softtabstop=4 - -# Copyright 2012 United States Government as represented by the -# Administrator of the National Aeronautics and Space Administration. -# All Rights Reserved. -# -# Copyright 2012 Nebula, Inc. -# -# 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 time - -from django import http -from django.conf import settings -from django.core.urlresolvers import reverse -from keystoneclient import exceptions as keystone_exceptions -from mox import IsA - -from horizon import api -from horizon import test - - -SYSPANEL_INDEX_URL = reverse('horizon:syspanel:overview:index') -DASH_INDEX_URL = reverse('horizon:nova:overview:index') - - -class AuthViewTests(test.TestCase): - def setUp(self): - super(AuthViewTests, self).setUp() - self.setActiveUser() - - def test_login_index(self): - res = self.client.get(reverse('horizon:auth_login')) - self.assertTemplateUsed(res, 'horizon/auth/login.html') - - def test_login_user_logged_in(self): - self.setActiveUser(self.tokens.first().id, - self.user.name, - self.tenant.id, - False, - self.service_catalog) - # Hitting the login URL directly should always give you a login page. - res = self.client.get(reverse('horizon:auth_login')) - self.assertTemplateUsed(res, 'horizon/auth/login.html') - - def test_login_no_tenants(self): - aToken = self.tokens.first() - - self.mox.StubOutWithMock(api, 'token_create') - self.mox.StubOutWithMock(api, 'tenant_list_for_token') - api.token_create(IsA(http.HttpRequest), "", self.user.name, - self.user.password).AndReturn(aToken) - api.tenant_list_for_token(IsA(http.HttpRequest), aToken.id).\ - AndReturn([]) - - self.mox.ReplayAll() - - form_data = {'method': 'Login', - 'region': 'http://localhost:5000/v2.0', - 'password': self.user.password, - 'username': self.user.name} - res = self.client.post(reverse('horizon:auth_login'), form_data) - - self.assertTemplateUsed(res, 'horizon/auth/login.html') - - @test.create_stubs({api: ('token_create', 'tenant_list_for_token', - 'token_create_scoped')}) - def test_login(self): - form_data = {'method': 'Login', - 'region': 'http://localhost:5000/v2.0', - 'password': self.user.password, - 'username': self.user.name} - - aToken = self.tokens.unscoped_token - bToken = self.tokens.scoped_token - - api.token_create(IsA(http.HttpRequest), "", self.user.name, - self.user.password).AndReturn(aToken) - api.tenant_list_for_token(IsA(http.HttpRequest), - aToken.id).AndReturn([self.tenants.first()]) - api.token_create_scoped(IsA(http.HttpRequest), - self.tenant.id, - aToken.id).AndReturn(bToken) - - api.token_create(IsA(http.HttpRequest), "", self.user.name, - self.user.password).AndReturn(aToken) - api.tenant_list_for_token(IsA(http.HttpRequest), - aToken.id).AndReturn([self.tenants.first()]) - api.token_create_scoped(IsA(http.HttpRequest), - self.tenant.id, - aToken.id).AndReturn(bToken) - - self.mox.ReplayAll() - - res = self.client.post(reverse('horizon:auth_login'), form_data) - self.assertRedirectsNoFollow(res, DASH_INDEX_URL) - - # Test default Django LOGIN_REDIRECT_URL - user_home = settings.HORIZON_CONFIG.pop('user_home') - res = self.client.post(reverse('horizon:auth_login'), form_data) - self.assertRedirectsNoFollow(res, settings.LOGIN_REDIRECT_URL) - settings.HORIZON_CONFIG['user_home'] = user_home - - def test_login_first_tenant_invalid(self): - form_data = {'method': 'Login', - 'region': 'http://localhost:5000/v2.0', - 'password': self.user.password, - 'username': self.user.name} - - self.mox.StubOutWithMock(api, 'token_create') - self.mox.StubOutWithMock(api, 'tenant_list_for_token') - self.mox.StubOutWithMock(api, 'token_create_scoped') - - aToken = self.tokens.unscoped_token - bToken = self.tokens.scoped_token - disabled_tenant = self.tenants.get(name="disabled_tenant") - tenant = self.tenants.get(name="test_tenant") - tenants = [tenant, disabled_tenant] - api.token_create(IsA(http.HttpRequest), "", self.user.name, - self.user.password).AndReturn(aToken) - api.tenant_list_for_token(IsA(http.HttpRequest), - aToken.id).AndReturn(tenants) - exc = keystone_exceptions.Unauthorized("Not authorized.") - exc.silence_logging = True - api.token_create_scoped(IsA(http.HttpRequest), - disabled_tenant.id, - aToken.id).AndRaise(exc) - api.token_create_scoped(IsA(http.HttpRequest), - tenant.id, - aToken.id).AndReturn(bToken) - - self.mox.ReplayAll() - - res = self.client.post(reverse('horizon:auth_login'), form_data) - self.assertNoFormErrors(res) - self.assertNoMessages() - self.assertRedirectsNoFollow(res, DASH_INDEX_URL) - - def test_login_invalid_credentials(self): - self.mox.StubOutWithMock(api, 'token_create') - unauthorized = keystone_exceptions.Unauthorized("Invalid") - unauthorized.silence_logging = True - api.token_create(IsA(http.HttpRequest), "", self.user.name, - self.user.password).AndRaise(unauthorized) - - self.mox.ReplayAll() - - form_data = {'method': 'Login', - 'region': 'http://localhost:5000/v2.0', - 'password': self.user.password, - 'username': self.user.name} - res = self.client.post(reverse('horizon:auth_login'), - form_data, - follow=True) - self.assertTemplateUsed(res, 'horizon/auth/login.html') - # Verify that API error messages are rendered, but not using the - # messages framework. - self.assertContains(res, "Invalid user name or password.") - self.assertNotContains(res, 'class="messages"') - - def test_login_exception(self): - self.mox.StubOutWithMock(api, 'token_create') - api.token_create(IsA(http.HttpRequest), - "", - self.user.name, - self.user.password).AndRaise(self.exceptions.keystone) - - self.mox.ReplayAll() - - form_data = {'method': 'Login', - 'region': 'http://localhost:5000/v2.0', - 'password': self.user.password, - 'username': self.user.name} - res = self.client.post(reverse('horizon:auth_login'), form_data) - - self.assertTemplateUsed(res, 'horizon/auth/login.html') - - def test_switch_tenants_index(self): - res = self.client.get(reverse('horizon:auth_switch', - args=[self.tenant.id])) - - self.assertRedirects(res, reverse("horizon:auth_login")) - - def test_switch_tenants(self): - tenants = self.tenants.list() - - tenant = self.tenants.first() - token = self.tokens.unscoped_token - scoped_token = self.tokens.scoped_token - switch_to = scoped_token.tenant['id'] - user = self.users.first() - - self.setActiveUser(id=user.id, - token=token.id, - username=user.name, - tenant_id=tenant.id, - service_catalog=self.service_catalog, - authorized_tenants=tenants) - - self.mox.StubOutWithMock(api, 'token_create') - self.mox.StubOutWithMock(api, 'tenant_list_for_token') - - api.token_create(IsA(http.HttpRequest), - switch_to, - user.name, - user.password).AndReturn(scoped_token) - api.tenant_list_for_token(IsA(http.HttpRequest), - token.id).AndReturn(tenants) - self.mox.ReplayAll() - - form_data = {'method': 'LoginWithTenant', - 'region': 'http://localhost:5000/v2.0', - 'username': user.name, - 'password': user.password, - 'tenant': switch_to} - switch_url = reverse('horizon:auth_switch', args=[switch_to]) - res = self.client.post(switch_url, form_data) - self.assertRedirectsNoFollow(res, DASH_INDEX_URL) - self.assertEqual(self.client.session['tenant'], - scoped_token.tenant['name']) - - def test_logout(self): - KEY = 'arbitraryKeyString' - VALUE = 'arbitraryKeyValue' - self.assertNotIn(KEY, self.client.session) - self.client.session[KEY] = VALUE - - res = self.client.get(reverse('horizon:auth_logout')) - - self.assertRedirectsNoFollow(res, reverse('splash')) - self.assertNotIn(KEY, self.client.session) - - def test_session_fixation(self): - session_ids = [] - form_data = {'method': 'Login', - 'region': 'http://localhost:5000/v2.0', - 'password': self.user.password, - 'username': self.user.name} - - self.mox.StubOutWithMock(api, 'token_create') - self.mox.StubOutWithMock(api, 'tenant_list_for_token') - self.mox.StubOutWithMock(api, 'token_create_scoped') - - aToken = self.tokens.unscoped_token - bToken = self.tokens.scoped_token - - api.token_create(IsA(http.HttpRequest), "", self.user.name, - self.user.password).AndReturn(aToken) - api.tenant_list_for_token(IsA(http.HttpRequest), - aToken.id).AndReturn([self.tenants.first()]) - api.token_create_scoped(IsA(http.HttpRequest), - self.tenant.id, - aToken.id).AndReturn(bToken) - - api.token_create(IsA(http.HttpRequest), "", self.user.name, - self.user.password).AndReturn(aToken) - api.tenant_list_for_token(IsA(http.HttpRequest), - aToken.id).AndReturn([self.tenants.first()]) - api.token_create_scoped(IsA(http.HttpRequest), - self.tenant.id, - aToken.id).AndReturn(bToken) - self.mox.ReplayAll() - - res = self.client.get(reverse('horizon:auth_login')) - self.assertEqual(res.cookies.get('sessionid'), None) - res = self.client.post(reverse('horizon:auth_login'), form_data) - session_ids.append(res.cookies['sessionid'].value) - - self.assertEquals(self.client.session['user_name'], - self.user.name) - self.client.session['foobar'] = 'MY TEST VALUE' - res = self.client.get(reverse('horizon:auth_logout')) - session_ids.append(res.cookies['sessionid'].value) - self.assertEqual(len(self.client.session.items()), 0) - # Sleep for 1 second so the session values are different if - # using the signed_cookies backend. - time.sleep(1) - res = self.client.post(reverse('horizon:auth_login'), form_data) - session_ids.append(res.cookies['sessionid'].value) - # Make sure all 3 session id values are different - self.assertEqual(len(session_ids), len(set(session_ids))) diff --git a/horizon/tests/base_tests.py b/horizon/tests/base_tests.py index 20c87f1c7..bcd9c0d5a 100644 --- a/horizon/tests/base_tests.py +++ b/horizon/tests/base_tests.py @@ -21,14 +21,14 @@ from django.conf import settings from django.core import urlresolvers -from django.test.client import Client from django.utils.importlib import import_module from django.utils.translation import ugettext_lazy as _ +from openstack_auth import user, backend + import horizon from horizon import base from horizon import test -from horizon import users from horizon.dashboards.nova.dashboard import Nova from horizon.dashboards.syspanel.dashboard import Syspanel from horizon.dashboards.settings.dashboard import Settings @@ -48,14 +48,14 @@ class MyDash(horizon.Dashboard): class MyPanel(horizon.Panel): name = _("My Panel") slug = "myslug" - services = ("compute",) + permissions = ("openstack.services.compute",) urls = 'horizon.tests.test_panel_urls' class AdminPanel(horizon.Panel): name = _("Admin Panel") slug = "admin_panel" - roles = ("admin",) + permissions = ("openstack.roles.admin",) urls = 'horizon.tests.test_panel_urls' @@ -166,8 +166,8 @@ class HorizonTests(BaseHorizonTests): self.assertEqual(repr(base.Horizon), "") dash = base.Horizon.get_dashboard('cats') self.assertEqual(base.Horizon.get_default_dashboard(), dash) - user = users.User() - self.assertEqual(base.Horizon.get_user_home(user), + test_user = user.User() + self.assertEqual(base.Horizon.get_user_home(test_user), dash.get_absolute_url()) def test_dashboard(self): @@ -230,24 +230,23 @@ class HorizonTests(BaseHorizonTests): self.assertFalse(hasattr(cats, "evil")) def test_public(self): - users.get_user_from_request = self._real_get_user_from_request + backend.get_user = self._real_get_user dogs = horizon.get_dashboard("dogs") # Known to have no restrictions on it other than being logged in. puppies = dogs.get_panel("puppies") url = puppies.get_absolute_url() # Get a clean, logged out client instance. - client = Client() - client.logout() - resp = client.get(url) - redirect_url = "?".join([urlresolvers.reverse("horizon:auth_login"), + self.setActiveUser() + resp = self.client.get(url) + redirect_url = "?".join([urlresolvers.reverse("login"), "next=%s" % url]) self.assertRedirectsNoFollow(resp, redirect_url) # Simulate ajax call - resp = client.get(url, HTTP_X_REQUESTED_WITH='XMLHttpRequest') + resp = self.client.get(url, HTTP_X_REQUESTED_WITH='XMLHttpRequest') # Response should be HTTP 401 with redirect header self.assertEquals(resp.status_code, 401) self.assertEquals(resp["X-Horizon-Location"], - "?".join([urlresolvers.reverse("horizon:auth_login"), + "?".join([urlresolvers.reverse("login"), "next=%s" % url])) def test_required_services(self): @@ -263,23 +262,24 @@ class HorizonTests(BaseHorizonTests): # Remove the required service from the service catalog and we # should get a 404. + service_name = MyPanel.permissions[0].split(".")[-1] new_catalog = [service for service in self.request.user.service_catalog - if service['type'] != MyPanel.services[0]] + if service['type'] != service_name] tenants = self.context['authorized_tenants'] - self.setActiveUser(token=self.token.id, + self.setActiveUser(token=self.token, username=self.user.name, tenant_id=self.tenant.id, service_catalog=new_catalog, authorized_tenants=tenants) resp = self.client.get(panel.get_absolute_url()) - self.assertEqual(resp.status_code, 404) + self.assertEqual(resp.status_code, 302) - def test_required_roles(self): + def test_required_permissions(self): dash = horizon.get_dashboard("cats") panel = dash.get_panel('tigers') # Non-admin user - self.setActiveUser(token=self.token.id, + self.setActiveUser(token=self.token, username=self.user.name, tenant_id=self.tenant.id, service_catalog=self.service_catalog, @@ -294,7 +294,7 @@ class HorizonTests(BaseHorizonTests): self.assertEqual(resp.status_code, 401) # Set roles for admin user - self.setActiveUser(token=self.token.id, + self.setActiveUser(token=self.token, username=self.user.name, tenant_id=self.tenant.id, service_catalog=self.request.user.service_catalog, @@ -310,16 +310,15 @@ class HorizonTests(BaseHorizonTests): self.assertEqual(resp.status_code, 200) def test_ssl_redirect_by_proxy(self): - users.get_user_from_request = self._real_get_user_from_request + backend.get_user = self._real_get_user dogs = horizon.get_dashboard("dogs") puppies = dogs.get_panel("puppies") url = puppies.get_absolute_url() - redirect_url = "?".join([urlresolvers.reverse("horizon:auth_login"), + redirect_url = "?".join([urlresolvers.reverse("login"), "next=%s" % url]) - client = Client() - client.logout() - resp = client.get(url) + self.setActiveUser() + resp = self.client.get(url) self.assertRedirectsNoFollow(resp, redirect_url) # Set SSL settings for test server @@ -327,7 +326,7 @@ class HorizonTests(BaseHorizonTests): settings.SECURE_PROXY_SSL_HEADER = ('HTTP_X_FORWARDED_PROTOCOL', 'https') - resp = client.get(url, HTTP_X_FORWARDED_PROTOCOL="https") + resp = self.client.get(url, HTTP_X_FORWARDED_PROTOCOL="https") self.assertRedirectsNoFollow(resp, redirect_url) # Restore settings diff --git a/horizon/tests/context_processor_tests.py b/horizon/tests/context_processor_tests.py deleted file mode 100644 index 5bf319b36..000000000 --- a/horizon/tests/context_processor_tests.py +++ /dev/null @@ -1,61 +0,0 @@ -# vim: tabstop=4 shiftwidth=4 softtabstop=4 - -# Copyright 2012 United States Government as represented by the -# Administrator of the National Aeronautics and Space Administration. -# All Rights Reserved. -# -# Copyright 2012 Nebula, Inc. -# -# 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. - -from django import http -from mox import IsA - -from horizon import api -from horizon import context_processors -from horizon import middleware -from horizon import test -from horizon import Dashboard - - -class ContextProcessorTests(test.TestCase): - def setUp(self): - super(ContextProcessorTests, self).setUp() - self._prev_catalog = self.request.user.service_catalog - context_processors.horizon = self._real_horizon_context_processor - - def tearDown(self): - super(ContextProcessorTests, self).tearDown() - self.request.user.service_catalog = self._prev_catalog - - def test_authorized_tenants(self): - tenant_list = self.context['authorized_tenants'] - self.request.user.authorized_tenants = None # Reset from setUp - self.mox.StubOutWithMock(api, 'tenant_list_for_token') - api.tenant_list_for_token(IsA(http.HttpRequest), self.token.id) \ - .AndReturn(tenant_list) - self.mox.ReplayAll() - - middleware.HorizonMiddleware().process_request(self.request) - # Without dashboard that has "supports_tenants = True" - context = context_processors.horizon(self.request) - self.assertEqual(len(context['authorized_tenants']), 0) - - # With dashboard that has "supports_tenants = True" - class ProjectDash(Dashboard): - supports_tenants = True - - self.request.horizon['dashboard'] = ProjectDash - self.assertTrue(self.request.user.is_authenticated()) - context = context_processors.horizon(self.request) - self.assertItemsEqual(context['authorized_tenants'], tenant_list) diff --git a/horizon/tests/table_tests.py b/horizon/tests/table_tests.py index b7a108a0c..b7be8e63b 100644 --- a/horizon/tests/table_tests.py +++ b/horizon/tests/table_tests.py @@ -65,7 +65,7 @@ TEST_DATA_5 = ( class MyLinkAction(tables.LinkAction): name = "login" verbose_name = "Log In" - url = "horizon:auth_login" + url = "login" attrs = { "class": "ajax-modal", } @@ -148,7 +148,7 @@ def get_name(obj): def get_link(obj): - return reverse('horizon:auth_login') + return reverse('login') class MyTable(tables.DataTable): diff --git a/horizon/tests/test_dashboards/cats/kittens/panel.py b/horizon/tests/test_dashboards/cats/kittens/panel.py index e02507d0d..35cde42a0 100644 --- a/horizon/tests/test_dashboards/cats/kittens/panel.py +++ b/horizon/tests/test_dashboards/cats/kittens/panel.py @@ -8,7 +8,7 @@ from horizon.tests.test_dashboards.cats import dashboard class Kittens(horizon.Panel): name = _("Kittens") slug = "kittens" - require_roles = ("admin",) + permissions = ("openstack.roles.admin",) dashboard.Cats.register(Kittens) diff --git a/horizon/tests/test_dashboards/cats/tigers/panel.py b/horizon/tests/test_dashboards/cats/tigers/panel.py index 88cc17227..85c43ce74 100644 --- a/horizon/tests/test_dashboards/cats/tigers/panel.py +++ b/horizon/tests/test_dashboards/cats/tigers/panel.py @@ -8,7 +8,7 @@ from horizon.tests.test_dashboards.cats import dashboard class Tigers(horizon.Panel): name = _("Tigers") slug = "tigers" - roles = ("admin",) + permissions = ("openstack.roles.admin",) dashboard.Cats.register(Tigers) diff --git a/horizon/tests/test_dashboards/dogs/puppies/views.py b/horizon/tests/test_dashboards/dogs/puppies/views.py index 21d44a112..3f1df5e2d 100644 --- a/horizon/tests/test_dashboards/dogs/puppies/views.py +++ b/horizon/tests/test_dashboards/dogs/puppies/views.py @@ -3,7 +3,7 @@ from horizon import views class IndexView(views.APIView): # A very simple class-based view... - template_name = 'puppies/index.html' + template_name = 'dogs/puppies/index.html' def get_data(self, request, context, *args, **kwargs): # Add data to the context here... diff --git a/horizon/tests/test_data/keystone_data.py b/horizon/tests/test_data/keystone_data.py index 588febfac..ae48b2149 100644 --- a/horizon/tests/test_data/keystone_data.py +++ b/horizon/tests/test_data/keystone_data.py @@ -12,7 +12,11 @@ # License for the specific language governing permissions and limitations # under the License. +from datetime import timedelta + from django.conf import settings +from django.utils import datetime_safe + from keystoneclient.v2_0 import users, tenants, tokens, roles, ec2 from .utils import TestDataContainer @@ -127,9 +131,12 @@ def data(TEST): TEST.tenants.add(tenant, disabled_tenant) TEST.tenant = tenant # Your "current" tenant + tomorrow = datetime_safe.datetime.now() + timedelta(days=1) + expiration = datetime_safe.datetime.isoformat(tomorrow) + scoped_token = tokens.Token(tokens.TokenManager, dict(token={"id": "test_token_id", - "expires": "#FIXME", + "expires": expiration, "tenant": tenant_dict, "tenants": [tenant_dict]}, user={"id": "test_user_id", @@ -138,7 +145,7 @@ def data(TEST): serviceCatalog=TEST.service_catalog)) unscoped_token = tokens.Token(tokens.TokenManager, dict(token={"id": "test_token_id", - "expires": "#FIXME"}, + "expires": expiration}, user={"id": "test_user_id", "name": "test_user", "roles": [member_role_dict]}, diff --git a/horizon/tests/testsettings.py b/horizon/tests/testsettings.py index 6b7c265dd..642b512c3 100644 --- a/horizon/tests/testsettings.py +++ b/horizon/tests/testsettings.py @@ -44,6 +44,7 @@ INSTALLED_APPS = ( 'django.contrib.messages', 'django.contrib.humanize', 'django_nose', + 'openstack_auth', 'horizon', 'horizon.tests', 'horizon.dashboards.nova', @@ -57,6 +58,7 @@ MIDDLEWARE_CLASSES = ( 'django.middleware.common.CommonMiddleware', 'django.middleware.csrf.CsrfViewMiddleware', 'django.contrib.sessions.middleware.SessionMiddleware', + 'django.contrib.auth.middleware.AuthenticationMiddleware', 'django.contrib.messages.middleware.MessageMiddleware', 'django.middleware.doc.XViewMiddleware', 'django.middleware.locale.LocaleMiddleware', @@ -99,6 +101,8 @@ SESSION_COOKIE_HTTPONLY = True SESSION_EXPIRE_AT_BROWSER_CLOSE = True SESSION_COOKIE_SECURE = False +AUTHENTICATION_BACKENDS = ('openstack_auth.backend.KeystoneBackend',) + HORIZON_CONFIG = { 'dashboards': ('nova', 'syspanel', 'settings'), 'default_dashboard': 'nova', diff --git a/horizon/tests/testurls.py b/horizon/tests/testurls.py index a553d153d..ea5871656 100644 --- a/horizon/tests/testurls.py +++ b/horizon/tests/testurls.py @@ -29,5 +29,6 @@ import horizon urlpatterns = patterns('', url(r'^$', 'horizon.tests.views.fakeView', name='splash'), + url(r'^auth/', include('openstack_auth.urls')), url(r'', include(horizon.urls)), ) diff --git a/horizon/tests/workflows_tests.py b/horizon/tests/workflows_tests.py index a13558051..7fee9a952 100644 --- a/horizon/tests/workflows_tests.py +++ b/horizon/tests/workflows_tests.py @@ -76,7 +76,7 @@ class AdminAction(workflows.Action): class Meta: name = _("Admin Action") slug = "admin_action" - roles = ("admin",) + permissions = ("openstack.roles.admin",) class TestStepOne(workflows.Step): @@ -239,7 +239,8 @@ class WorkflowsTests(test.TestCase): flow = TestWorkflow(self.request) step = AdminStep(flow) - self.assertItemsEqual(step.roles, (self.roles.admin.name,)) + self.assertItemsEqual(step.permissions, + ("openstack.roles.%s" % self.roles.admin.name,)) self.assertQuerysetEqual(flow.steps, ['', '']) diff --git a/horizon/users.py b/horizon/users.py deleted file mode 100644 index 6e6be8e5a..000000000 --- a/horizon/users.py +++ /dev/null @@ -1,164 +0,0 @@ -# vim: tabstop=4 shiftwidth=4 softtabstop=4 - -# Copyright 2012 United States Government as represented by the -# Administrator of the National Aeronautics and Space Administration. -# All Rights Reserved. -# -# Copyright 2012 Nebula, Inc. -# -# 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. -""" -Classes and methods related to user handling in Horizon. -""" - -import logging - -from django.utils.translation import ugettext as _ - -from horizon import api -from horizon import exceptions - - -LOG = logging.getLogger(__name__) - - -def get_user_from_request(request): - """ Checks the current session and returns a :class:`~horizon.users.User`. - - If the session contains user data the User will be treated as - authenticated and the :class:`~horizon.users.User` will have all - its attributes set. - - If not, the :class:`~horizon.users.User` will have no attributes set. - - If the session contains invalid data, - :exc:`~horizon.exceptions.NotAuthorized` will be raised. - """ - if 'user_id' not in request.session: - return User() - try: - return User(id=request.session['user_id'], - token=request.session['token'], - user=request.session['user_name'], - tenant_id=request.session['tenant_id'], - tenant_name=request.session['tenant'], - service_catalog=request.session['serviceCatalog'], - roles=request.session['roles'], - request=request) - except KeyError: - # If any of those keys are missing from the session it is - # overwhelmingly likely that we're dealing with an outdated session. - LOG.exception("Error while creating User from session.") - request.user_logout() - raise exceptions.NotAuthorized(_("Your session has expired. " - "Please log in again.")) - - -class LazyUser(object): - def __get__(self, request, obj_type=None): - if not hasattr(request, '_cached_user'): - request._cached_user = get_user_from_request(request) - return request._cached_user - - -class User(object): - """ The main user class which Horizon expects. - - .. attribute:: token - - The id of the Keystone token associated with the current user/tenant. - - .. attribute:: username - - The name of the current user. - - .. attribute:: tenant_id - - The id of the Keystone tenant for the current user/token. - - .. attribute:: tenant_name - - The name of the Keystone tenant for the current user/token. - - .. attribute:: service_catalog - - The ``ServiceCatalog`` data returned by Keystone. - - .. attribute:: roles - - A list of dictionaries containing role names and ids as returned - by Keystone. - - .. attribute:: admin - - Boolean value indicating whether or not this user has admin - privileges. Internally mapped to :meth:`horizon.users.User.is_admin`. - """ - def __init__(self, id=None, token=None, user=None, tenant_id=None, - service_catalog=None, tenant_name=None, roles=None, - authorized_tenants=None, request=None): - self.id = id - self.token = token - self.username = user - self.tenant_id = tenant_id - self.tenant_name = tenant_name - self.service_catalog = service_catalog - self.roles = roles or [] - self._authorized_tenants = authorized_tenants - # Store the request for lazy fetching of auth'd tenants - self._request = request - - def is_authenticated(self): - """ - Evaluates whether this :class:`.User` instance has been authenticated. - Returns ``True`` or ``False``. - """ - # TODO: deal with token expiration - return self.token - - @property - def admin(self): - return self.is_admin() - - def is_admin(self): - """ - Evaluates whether this user has admin privileges. Returns - ``True`` or ``False``. - """ - for role in self.roles: - if role['name'].lower() == 'admin': - return True - return False - - def get_and_delete_messages(self): - """ - Placeholder function for parity with - ``django.contrib.auth.models.User``. - """ - return [] - - @property - def authorized_tenants(self): - if self.is_authenticated() and self._authorized_tenants is None: - try: - token = self._request.session.get("unscoped_token", self.token) - authd = api.tenant_list_for_token(self._request, token) - except: - authd = [] - LOG.exception('Could not retrieve tenant list.') - self._authorized_tenants = authd - return self._authorized_tenants - - @authorized_tenants.setter - def authorized_tenants(self, tenant_list): - self._authorized_tenants = tenant_list diff --git a/horizon/views/__init__.py b/horizon/views/__init__.py index 986004b67..c70406d73 100644 --- a/horizon/views/__init__.py +++ b/horizon/views/__init__.py @@ -14,4 +14,4 @@ # License for the specific language governing permissions and limitations # under the License. -from .base import APIView +from .base import APIView, user_home diff --git a/horizon/views/auth.py b/horizon/views/auth.py deleted file mode 100644 index 3af37f936..000000000 --- a/horizon/views/auth.py +++ /dev/null @@ -1,108 +0,0 @@ -# vim: tabstop=4 shiftwidth=4 softtabstop=4 - -# Copyright 2012 United States Government as represented by the -# Administrator of the National Aeronautics and Space Administration. -# All Rights Reserved. -# -# Copyright 2012 Nebula, Inc. -# -# 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 logging - -from django import shortcuts -from django.conf import settings -from django.contrib.auth import REDIRECT_FIELD_NAME -from django.utils.decorators import method_decorator -from django.utils.translation import ugettext as _ -from django.views.decorators.debug import sensitive_post_parameters - -import horizon -from horizon import api -from horizon import exceptions -from horizon import forms -from horizon import users -from horizon.base import Horizon -from horizon.views.auth_forms import Login, LoginWithTenant, _set_session_data - - -LOG = logging.getLogger(__name__) - - -def user_home(request): - """ Reversible named view to direct a user to the appropriate homepage. """ - return shortcuts.redirect(horizon.get_user_home(request.user)) - - -class LoginView(forms.ModalFormView): - """ - Logs in a user and redirects them to the URL specified by - :func:`horizon.get_user_home`. - """ - form_class = Login - template_name = "horizon/auth/login.html" - - @method_decorator(sensitive_post_parameters('password')) - def dispatch(self, *args, **kwargs): - return super(LoginView, self).dispatch(*args, **kwargs) - - def get_context_data(self, **kwargs): - context = super(LoginView, self).get_context_data(**kwargs) - redirect_to = self.request.REQUEST.get(REDIRECT_FIELD_NAME, "") - context["redirect_field_name"] = REDIRECT_FIELD_NAME - context["next"] = redirect_to - return context - - def get_initial(self): - initial = super(LoginView, self).get_initial() - current_region = self.request.session.get('region_endpoint', None) - requested_region = self.request.GET.get('region', None) - regions = dict(getattr(settings, "AVAILABLE_REGIONS", [])) - if requested_region in regions and requested_region != current_region: - initial.update({'region': requested_region}) - return initial - - -@sensitive_post_parameters("password") -def switch_tenants(request, tenant_id): - """ - Swaps a user from one tenant to another using the unscoped token from - Keystone to exchange scoped tokens for the new tenant. - """ - form, handled = LoginWithTenant.maybe_handle( - request, initial={'tenant': tenant_id, - 'username': request.user.username}) - if handled: - return handled - - unscoped_token = request.session.get('unscoped_token', None) - if unscoped_token: - try: - token = api.token_create_scoped(request, - tenant_id, - unscoped_token) - _set_session_data(request, token) - user = users.User(users.get_user_from_request(request)) - return shortcuts.redirect(Horizon.get_user_home(user)) - except: - exceptions.handle(request, - _("You are not authorized for that tenant.")) - - return shortcuts.redirect("horizon:auth_login") - - -def logout(request): - """ Clears the session and logs the current user out. """ - request.user_logout() - # FIXME(gabriel): we don't ship a view named splash - return shortcuts.redirect('splash') diff --git a/horizon/views/auth_forms.py b/horizon/views/auth_forms.py deleted file mode 100644 index f98dce50a..000000000 --- a/horizon/views/auth_forms.py +++ /dev/null @@ -1,199 +0,0 @@ -# vim: tabstop=4 shiftwidth=4 softtabstop=4 - -# Copyright 2012 United States Government as represented by the -# Administrator of the National Aeronautics and Space Administration. -# All Rights Reserved. -# -# Copyright 2012 Nebula, Inc. -# -# 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. - -""" -Forms used for Horizon's auth mechanisms. -""" - -import logging - -from django import shortcuts -from django.conf import settings -from django.contrib.auth import REDIRECT_FIELD_NAME -from django.utils.translation import ugettext as _ -from django.views.decorators.debug import sensitive_variables - -from keystoneclient import exceptions as keystone_exceptions - -from horizon import api -from horizon import base -from horizon import exceptions -from horizon import forms -from horizon import users - - -LOG = logging.getLogger(__name__) - - -def _set_session_data(request, token): - request.session['serviceCatalog'] = token.serviceCatalog - request.session['tenant'] = token.tenant['name'] - request.session['tenant_id'] = token.tenant['id'] - request.session['token'] = token.id - request.session['user_name'] = token.user['name'] - request.session['user_id'] = token.user['id'] - request.session['roles'] = token.user['roles'] - - -class Login(forms.SelfHandlingForm): - """ Form used for logging in a user. - - Handles authentication with Keystone, choosing a tenant, and fetching - a scoped token token for that tenant. Redirects to the URL returned - by :meth:`horizon.get_user_home` if successful. - - Subclass of :class:`~horizon.forms.SelfHandlingForm`. - """ - region = forms.ChoiceField(label=_("Region"), required=False) - username = forms.CharField(label=_("User Name")) - password = forms.CharField(label=_("Password"), - widget=forms.PasswordInput(render_value=False)) - - def __init__(self, *args, **kwargs): - super(Login, self).__init__(*args, **kwargs) - # FIXME(gabriel): When we switch to region-only settings, we can - # remove this default region business. - default_region = (settings.OPENSTACK_KEYSTONE_URL, "Default Region") - regions = getattr(settings, 'AVAILABLE_REGIONS', [default_region]) - self.fields['region'].choices = regions - if len(regions) == 1: - self.fields['region'].initial = default_region[0] - self.fields['region'].widget = forms.widgets.HiddenInput() - - @sensitive_variables("data") - def handle(self, request, data): - """ Process the user's login via Keystone. - - Note: We don't use the messages framework here (including messages - created by ``exceptions.handle`` beause they will not be displayed - on the login page (intentionally). Instead we add all error messages - to the form's ``non_field_errors``, causing them to appear as - errors on the form itself. - """ - if 'user_name' in request.session: - if request.session['user_name'] != data['username']: - # To avoid reusing another user's session, create a - # new, empty session if the existing session - # corresponds to a different authenticated user. - request.session.flush() - # Always cycle the session key when viewing the login form to - # prevent session fixation - request.session.cycle_key() - - # For now we'll allow fallback to OPENSTACK_KEYSTONE_URL if the - # form post doesn't include a region. - endpoint = data.get('region', None) or settings.OPENSTACK_KEYSTONE_URL - if endpoint != request.session.get('region_endpoint', None): - region_name = dict(self.fields['region'].choices)[endpoint] - request.session['region_endpoint'] = endpoint - request.session['region_name'] = region_name - request.user.service_catalog = None - - redirect_to = request.REQUEST.get(REDIRECT_FIELD_NAME, "") - - if data.get('tenant', None): - try: - token = api.token_create(request, - data.get('tenant'), - data['username'], - data['password']) - tenants = api.tenant_list_for_token(request, token.id) - except: - msg = _('Unable to authenticate for that project.') - exceptions.handle(request, ignore=True) - return self.api_error(msg) - _set_session_data(request, token) - user = users.get_user_from_request(request) - redirect = redirect_to or base.Horizon.get_user_home(user) - return shortcuts.redirect(redirect) - - elif data.get('username', None): - try: - unscoped_token = api.token_create(request, - '', - data['username'], - data['password']) - except keystone_exceptions.Unauthorized: - msg = _('Invalid user name or password.') - exceptions.handle(request, ignore=True) - return self.api_error(msg) - except: - # If we get here we don't want to show a stack trace to the - # user. However, if we fail here, there may be bad session - # data that's been cached already. - request.user_logout() - msg = _("An error occurred authenticating. " - "Please try again later.") - exceptions.handle(request, ignore=True) - return self.api_error(msg) - - # Unscoped token - request.session['unscoped_token'] = unscoped_token.id - request.user.username = data['username'] - - # Get the tenant list, and log in using first tenant - # FIXME (anthony): add tenant chooser here? - try: - tenants = api.tenant_list_for_token(request, unscoped_token.id) - except: - exceptions.handle(request, ignore=True) - tenants = [] - - # Abort if there are no valid tenants for this user - if not tenants: - msg = _('You are not authorized for any projects.') - return self.api_error(msg) - - # Create a token. - # NOTE(gabriel): Keystone can return tenants that you're - # authorized to administer but not to log into as a user, so in - # the case of an Unauthorized error we should iterate through - # the tenants until one succeeds or we've failed them all. - while tenants: - tenant = tenants.pop() - try: - token = api.token_create_scoped(request, - tenant.id, - unscoped_token.id) - break - except: - # This will continue for recognized Unauthorized - # exceptions from keystoneclient. - exceptions.handle(request, ignore=True) - token = None - if token is None: - msg = _("You are not authorized for any available projects.") - return self.api_error(msg) - - _set_session_data(request, token) - user = users.get_user_from_request(request) - redirect = redirect_to or base.Horizon.get_user_home(user) - return shortcuts.redirect(redirect) - - -class LoginWithTenant(Login): - """ - Exactly like :class:`.Login` but includes the tenant id as a field - so that the process of choosing a default tenant is bypassed. - """ - region = forms.ChoiceField(required=False) - username = forms.CharField(max_length="20", - widget=forms.TextInput(attrs={'readonly': 'readonly'})) - tenant = forms.CharField(widget=forms.HiddenInput()) diff --git a/horizon/views/base.py b/horizon/views/base.py index b7f1272a1..548fbf15b 100644 --- a/horizon/views/base.py +++ b/horizon/views/base.py @@ -14,11 +14,18 @@ # License for the specific language governing permissions and limitations # under the License. +from django import shortcuts from django.views import generic +import horizon from horizon import exceptions +def user_home(request): + """ Reversible named view to direct a user to the appropriate homepage. """ + return shortcuts.redirect(horizon.get_user_home(request.user)) + + class APIView(generic.TemplateView): """ A quick class-based view for putting API data into a template. diff --git a/horizon/workflows/base.py b/horizon/workflows/base.py index ba96b00d9..92c8a8e1a 100644 --- a/horizon/workflows/base.py +++ b/horizon/workflows/base.py @@ -63,8 +63,7 @@ class ActionMetaclass(forms.forms.DeclarativeFieldsMetaclass): opts = attrs.pop("Meta", None) attrs['name'] = getattr(opts, "name", name) attrs['slug'] = getattr(opts, "slug", slugify(name)) - attrs['roles'] = getattr(opts, "roles", ()) - attrs['services'] = getattr(opts, "services", ()) + attrs['permissions'] = getattr(opts, "permissions", ()) attrs['progress_message'] = getattr(opts, "progress_message", _("Processing...")) @@ -87,7 +86,7 @@ class Action(forms.Form): controls, and thus inherit from Django's ``Form`` class. However, they have some additional intelligence added to them: - * ``Actions`` are aware of the roles required to complete them. + * ``Actions`` are aware of the permissions required to complete them. * ``Actions`` have a meta-level concept of "help text" which is meant to be displayed in such a way as to give context to the action regardless of @@ -108,14 +107,9 @@ class Action(forms.Form): A semi-unique slug for this action. Defaults to the "slugified" name of the class. - .. attribute:: roles + .. attribute:: permissions - A list of role names which this action requires in order to be - completed. Defaults to an empty list (``[]``). - - .. attribute:: services - - A list of service types which this action requires in order to be + A list of permission names which this action requires in order to be completed. Defaults to an empty list (``[]``). .. attribute:: help_text @@ -260,11 +254,7 @@ class Step(object): Inherited from the ``Action`` class. - .. attribute:: roles - - Inherited from the ``Action`` class. - - .. attribute:: services + .. attribute:: permissions Inherited from the ``Action`` class. """ @@ -293,8 +283,7 @@ class Step(object): self.slug = self.action_class.slug self.name = self.action_class.name - self.roles = self.action_class.roles - self.services = self.action_class.services + self.permissions = self.action_class.permissions self.has_errors = False self._handlers = {} diff --git a/openstack_dashboard/locale/en/LC_MESSAGES/django.po b/openstack_dashboard/locale/en/LC_MESSAGES/django.po index eab5e67c6..f626c4125 100644 --- a/openstack_dashboard/locale/en/LC_MESSAGES/django.po +++ b/openstack_dashboard/locale/en/LC_MESSAGES/django.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2012-05-29 11:47-0700\n" +"POT-Creation-Date: 2012-07-09 02:29+0000\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -17,46 +17,42 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -#: settings.py:115 +#: settings.py:136 msgid "English" msgstr "" -#: settings.py:116 +#: settings.py:137 msgid "Italiano" msgstr "" -#: settings.py:117 +#: settings.py:138 msgid "Spanish" msgstr "" -#: settings.py:118 +#: settings.py:139 msgid "French" msgstr "" -#: settings.py:119 +#: settings.py:140 msgid "Japanese" msgstr "" -#: settings.py:120 +#: settings.py:141 msgid "Portuguese" msgstr "" -#: settings.py:121 +#: settings.py:142 msgid "Polish" msgstr "" -#: settings.py:122 +#: settings.py:143 msgid "Simplified Chinese" msgstr "" -#: settings.py:123 +#: settings.py:144 msgid "Traditional Chinese" msgstr "" -#: local/local_settings.py:17 -msgid "Your password must be at least 6 characters long." -msgstr "" - #: templates/403.html:4 templates/403.html.py:9 msgid "Forbidden" msgstr "" @@ -103,10 +99,14 @@ msgstr "" msgid "Sign Out" msgstr "" -#: templates/_scripts.html:39 -msgid "Loading…" +#: templates/splash.html:7 templates/auth/login.html:4 +msgid "Login" msgstr "" -#: templates/switch_tenants.html:12 -msgid "Log-in to tenant" +#: templates/auth/_login.html:4 +msgid "Log In" +msgstr "" + +#: templates/auth/_login.html:17 +msgid "Sign In" msgstr "" diff --git a/openstack_dashboard/locale/es/LC_MESSAGES/django.po b/openstack_dashboard/locale/es/LC_MESSAGES/django.po index 19f4c3d09..e88d78d38 100644 --- a/openstack_dashboard/locale/es/LC_MESSAGES/django.po +++ b/openstack_dashboard/locale/es/LC_MESSAGES/django.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2012-05-29 11:47-0700\n" +"POT-Creation-Date: 2012-07-09 02:29+0000\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -18,46 +18,42 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1)\n" -#: settings.py:115 +#: settings.py:136 msgid "English" msgstr "" -#: settings.py:116 +#: settings.py:137 msgid "Italiano" msgstr "" -#: settings.py:117 +#: settings.py:138 msgid "Spanish" msgstr "" -#: settings.py:118 +#: settings.py:139 msgid "French" msgstr "" -#: settings.py:119 +#: settings.py:140 msgid "Japanese" msgstr "" -#: settings.py:120 +#: settings.py:141 msgid "Portuguese" msgstr "" -#: settings.py:121 +#: settings.py:142 msgid "Polish" msgstr "" -#: settings.py:122 +#: settings.py:143 msgid "Simplified Chinese" msgstr "" -#: settings.py:123 +#: settings.py:144 msgid "Traditional Chinese" msgstr "" -#: local/local_settings.py:17 -msgid "Your password must be at least 6 characters long." -msgstr "" - #: templates/403.html:4 templates/403.html.py:9 msgid "Forbidden" msgstr "" @@ -104,10 +100,14 @@ msgstr "" msgid "Sign Out" msgstr "" -#: templates/_scripts.html:39 -msgid "Loading…" +#: templates/splash.html:7 templates/auth/login.html:4 +msgid "Login" msgstr "" -#: templates/switch_tenants.html:12 -msgid "Log-in to tenant" +#: templates/auth/_login.html:4 +msgid "Log In" +msgstr "" + +#: templates/auth/_login.html:17 +msgid "Sign In" msgstr "" diff --git a/openstack_dashboard/locale/fr/LC_MESSAGES/django.po b/openstack_dashboard/locale/fr/LC_MESSAGES/django.po index bacab8c6e..44979f34f 100644 --- a/openstack_dashboard/locale/fr/LC_MESSAGES/django.po +++ b/openstack_dashboard/locale/fr/LC_MESSAGES/django.po @@ -6,7 +6,7 @@ msgid "" msgstr "" "Project-Id-Version: openstack-dashboard\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2012-05-29 11:47-0700\n" +"POT-Creation-Date: 2012-07-09 02:29+0000\n" "PO-Revision-Date: 2012-05-08 00:20+0100\n" "Last-Translator: Erwan Gallen \n" "Language-Team: French \n" @@ -16,46 +16,42 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n > 1)\n" -#: settings.py:115 +#: settings.py:136 msgid "English" msgstr "Anglais" -#: settings.py:116 +#: settings.py:137 msgid "Italiano" msgstr "Italien" -#: settings.py:117 +#: settings.py:138 msgid "Spanish" msgstr "Espagnol" -#: settings.py:118 +#: settings.py:139 msgid "French" msgstr "Français" -#: settings.py:119 +#: settings.py:140 msgid "Japanese" msgstr "Japonais" -#: settings.py:120 +#: settings.py:141 msgid "Portuguese" msgstr "Portugais" -#: settings.py:121 +#: settings.py:142 msgid "Polish" msgstr "Polonais" -#: settings.py:122 +#: settings.py:143 msgid "Simplified Chinese" msgstr "Chinois simplifié" -#: settings.py:123 +#: settings.py:144 msgid "Traditional Chinese" msgstr "Chinois traditionnel" -#: local/local_settings.py:17 -msgid "Your password must be at least 6 characters long." -msgstr "" - #: templates/403.html:4 templates/403.html.py:9 msgid "Forbidden" msgstr "Interdit" @@ -105,10 +101,15 @@ msgstr "Réglages" msgid "Sign Out" msgstr "Déconnexion" -#: templates/_scripts.html:39 -msgid "Loading…" +#: templates/splash.html:7 templates/auth/login.html:4 +msgid "Login" msgstr "" -#: templates/switch_tenants.html:12 -msgid "Log-in to tenant" -msgstr "Se connecter au tenant" +#: templates/auth/_login.html:4 +msgid "Log In" +msgstr "" + +#: templates/auth/_login.html:17 +#, fuzzy +msgid "Sign In" +msgstr "Déconnexion" diff --git a/openstack_dashboard/locale/ja/LC_MESSAGES/django.po b/openstack_dashboard/locale/ja/LC_MESSAGES/django.po index c404c6ee3..3c7f61311 100644 --- a/openstack_dashboard/locale/ja/LC_MESSAGES/django.po +++ b/openstack_dashboard/locale/ja/LC_MESSAGES/django.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2012-05-29 11:47-0700\n" +"POT-Creation-Date: 2012-07-09 02:29+0000\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -18,46 +18,42 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=1; plural=0\n" -#: settings.py:115 +#: settings.py:136 msgid "English" msgstr "" -#: settings.py:116 +#: settings.py:137 msgid "Italiano" msgstr "" -#: settings.py:117 +#: settings.py:138 msgid "Spanish" msgstr "" -#: settings.py:118 +#: settings.py:139 msgid "French" msgstr "" -#: settings.py:119 +#: settings.py:140 msgid "Japanese" msgstr "" -#: settings.py:120 +#: settings.py:141 msgid "Portuguese" msgstr "" -#: settings.py:121 +#: settings.py:142 msgid "Polish" msgstr "" -#: settings.py:122 +#: settings.py:143 msgid "Simplified Chinese" msgstr "" -#: settings.py:123 +#: settings.py:144 msgid "Traditional Chinese" msgstr "" -#: local/local_settings.py:17 -msgid "Your password must be at least 6 characters long." -msgstr "" - #: templates/403.html:4 templates/403.html.py:9 msgid "Forbidden" msgstr "" @@ -104,10 +100,14 @@ msgstr "" msgid "Sign Out" msgstr "" -#: templates/_scripts.html:39 -msgid "Loading…" +#: templates/splash.html:7 templates/auth/login.html:4 +msgid "Login" msgstr "" -#: templates/switch_tenants.html:12 -msgid "Log-in to tenant" +#: templates/auth/_login.html:4 +msgid "Log In" +msgstr "" + +#: templates/auth/_login.html:17 +msgid "Sign In" msgstr "" diff --git a/openstack_dashboard/locale/pl/LC_MESSAGES/django.po b/openstack_dashboard/locale/pl/LC_MESSAGES/django.po index 9880c347d..d46e86fe7 100644 --- a/openstack_dashboard/locale/pl/LC_MESSAGES/django.po +++ b/openstack_dashboard/locale/pl/LC_MESSAGES/django.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2012-05-29 11:47-0700\n" +"POT-Creation-Date: 2012-07-09 02:29+0000\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -19,46 +19,42 @@ msgstr "" "Plural-Forms: nplurals=3; plural=(n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 " "|| n%100>=20) ? 1 : 2)\n" -#: settings.py:115 +#: settings.py:136 msgid "English" msgstr "" -#: settings.py:116 +#: settings.py:137 msgid "Italiano" msgstr "" -#: settings.py:117 +#: settings.py:138 msgid "Spanish" msgstr "" -#: settings.py:118 +#: settings.py:139 msgid "French" msgstr "" -#: settings.py:119 +#: settings.py:140 msgid "Japanese" msgstr "" -#: settings.py:120 +#: settings.py:141 msgid "Portuguese" msgstr "" -#: settings.py:121 +#: settings.py:142 msgid "Polish" msgstr "" -#: settings.py:122 +#: settings.py:143 msgid "Simplified Chinese" msgstr "" -#: settings.py:123 +#: settings.py:144 msgid "Traditional Chinese" msgstr "" -#: local/local_settings.py:17 -msgid "Your password must be at least 6 characters long." -msgstr "" - #: templates/403.html:4 templates/403.html.py:9 msgid "Forbidden" msgstr "" @@ -105,10 +101,14 @@ msgstr "" msgid "Sign Out" msgstr "" -#: templates/_scripts.html:39 -msgid "Loading…" +#: templates/splash.html:7 templates/auth/login.html:4 +msgid "Login" msgstr "" -#: templates/switch_tenants.html:12 -msgid "Log-in to tenant" +#: templates/auth/_login.html:4 +msgid "Log In" +msgstr "" + +#: templates/auth/_login.html:17 +msgid "Sign In" msgstr "" diff --git a/openstack_dashboard/locale/pt/LC_MESSAGES/django.po b/openstack_dashboard/locale/pt/LC_MESSAGES/django.po index 19f4c3d09..e88d78d38 100644 --- a/openstack_dashboard/locale/pt/LC_MESSAGES/django.po +++ b/openstack_dashboard/locale/pt/LC_MESSAGES/django.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2012-05-29 11:47-0700\n" +"POT-Creation-Date: 2012-07-09 02:29+0000\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -18,46 +18,42 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1)\n" -#: settings.py:115 +#: settings.py:136 msgid "English" msgstr "" -#: settings.py:116 +#: settings.py:137 msgid "Italiano" msgstr "" -#: settings.py:117 +#: settings.py:138 msgid "Spanish" msgstr "" -#: settings.py:118 +#: settings.py:139 msgid "French" msgstr "" -#: settings.py:119 +#: settings.py:140 msgid "Japanese" msgstr "" -#: settings.py:120 +#: settings.py:141 msgid "Portuguese" msgstr "" -#: settings.py:121 +#: settings.py:142 msgid "Polish" msgstr "" -#: settings.py:122 +#: settings.py:143 msgid "Simplified Chinese" msgstr "" -#: settings.py:123 +#: settings.py:144 msgid "Traditional Chinese" msgstr "" -#: local/local_settings.py:17 -msgid "Your password must be at least 6 characters long." -msgstr "" - #: templates/403.html:4 templates/403.html.py:9 msgid "Forbidden" msgstr "" @@ -104,10 +100,14 @@ msgstr "" msgid "Sign Out" msgstr "" -#: templates/_scripts.html:39 -msgid "Loading…" +#: templates/splash.html:7 templates/auth/login.html:4 +msgid "Login" msgstr "" -#: templates/switch_tenants.html:12 -msgid "Log-in to tenant" +#: templates/auth/_login.html:4 +msgid "Log In" +msgstr "" + +#: templates/auth/_login.html:17 +msgid "Sign In" msgstr "" diff --git a/openstack_dashboard/locale/zh_CN/LC_MESSAGES/django.po b/openstack_dashboard/locale/zh_CN/LC_MESSAGES/django.po index eab5e67c6..f626c4125 100644 --- a/openstack_dashboard/locale/zh_CN/LC_MESSAGES/django.po +++ b/openstack_dashboard/locale/zh_CN/LC_MESSAGES/django.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2012-05-29 11:47-0700\n" +"POT-Creation-Date: 2012-07-09 02:29+0000\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -17,46 +17,42 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -#: settings.py:115 +#: settings.py:136 msgid "English" msgstr "" -#: settings.py:116 +#: settings.py:137 msgid "Italiano" msgstr "" -#: settings.py:117 +#: settings.py:138 msgid "Spanish" msgstr "" -#: settings.py:118 +#: settings.py:139 msgid "French" msgstr "" -#: settings.py:119 +#: settings.py:140 msgid "Japanese" msgstr "" -#: settings.py:120 +#: settings.py:141 msgid "Portuguese" msgstr "" -#: settings.py:121 +#: settings.py:142 msgid "Polish" msgstr "" -#: settings.py:122 +#: settings.py:143 msgid "Simplified Chinese" msgstr "" -#: settings.py:123 +#: settings.py:144 msgid "Traditional Chinese" msgstr "" -#: local/local_settings.py:17 -msgid "Your password must be at least 6 characters long." -msgstr "" - #: templates/403.html:4 templates/403.html.py:9 msgid "Forbidden" msgstr "" @@ -103,10 +99,14 @@ msgstr "" msgid "Sign Out" msgstr "" -#: templates/_scripts.html:39 -msgid "Loading…" +#: templates/splash.html:7 templates/auth/login.html:4 +msgid "Login" msgstr "" -#: templates/switch_tenants.html:12 -msgid "Log-in to tenant" +#: templates/auth/_login.html:4 +msgid "Log In" +msgstr "" + +#: templates/auth/_login.html:17 +msgid "Sign In" msgstr "" diff --git a/openstack_dashboard/locale/zh_TW/LC_MESSAGES/django.po b/openstack_dashboard/locale/zh_TW/LC_MESSAGES/django.po index 507d55866..1c5d9b292 100644 --- a/openstack_dashboard/locale/zh_TW/LC_MESSAGES/django.po +++ b/openstack_dashboard/locale/zh_TW/LC_MESSAGES/django.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2012-05-29 11:47-0700\n" +"POT-Creation-Date: 2012-07-09 02:29+0000\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -17,46 +17,42 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -#: settings.py:115 +#: settings.py:136 msgid "English" msgstr "" -#: settings.py:116 +#: settings.py:137 msgid "Italiano" msgstr "" -#: settings.py:117 +#: settings.py:138 msgid "Spanish" msgstr "" -#: settings.py:118 +#: settings.py:139 msgid "French" msgstr "" -#: settings.py:119 +#: settings.py:140 msgid "Japanese" msgstr "" -#: settings.py:120 +#: settings.py:141 msgid "Portuguese" msgstr "" -#: settings.py:121 +#: settings.py:142 msgid "Polish" msgstr "" -#: settings.py:122 +#: settings.py:143 msgid "Simplified Chinese" msgstr "" -#: settings.py:123 +#: settings.py:144 msgid "Traditional Chinese" msgstr "" -#: local/local_settings.py:17 -msgid "Your password must be at least 6 characters long." -msgstr "" - #: templates/403.html:4 templates/403.html.py:9 msgid "Forbidden" msgstr "禁止" @@ -103,13 +99,14 @@ msgstr "設定" msgid "Sign Out" msgstr "登出" -#: templates/_scripts.html:39 -msgid "Loading…" +#: templates/splash.html:7 templates/auth/login.html:4 +msgid "Login" msgstr "" -#: templates/switch_tenants.html:12 -msgid "Log-in to tenant" -msgstr "登入到租戶" +#: templates/auth/_login.html:4 +msgid "Log In" +msgstr "" -#~ msgid "Sign In" -#~ msgstr "登入" +#: templates/auth/_login.html:17 +msgid "Sign In" +msgstr "登入" diff --git a/openstack_dashboard/middleware.py b/openstack_dashboard/middleware.py deleted file mode 100644 index 5c81f70a8..000000000 --- a/openstack_dashboard/middleware.py +++ /dev/null @@ -1,50 +0,0 @@ -# vim: tabstop=4 shiftwidth=4 softtabstop=4 - -# Copyright 2012 United States Government as represented by the -# Administrator of the National Aeronautics and Space Administration. -# All Rights Reserved. -# -# Copyright 2012 Nebula, Inc. -# -# 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 logging - -from django import shortcuts -from django.contrib import messages -from novaclient import exceptions as novaclient_exceptions - - -LOG = logging.getLogger('openstack_dashboard') - - -class DashboardLogUnhandledExceptionsMiddleware(object): - def process_exception(self, request, exception): - if isinstance(exception, novaclient_exceptions.Unauthorized): - try: - exception.message.index('reauthenticate') - # clear the errors - for message in messages.get_messages(request): - LOG.debug('Discarded message - %s: "%s"' - % (message.tags, message.message)) - messages.info(request, 'Your session has timed out.' - ' Please log back in.') - LOG.info('User "%s" auth token expired, redirecting to logout' - % request.user.username) - return shortcuts.redirect('auth_logout') - - except ValueError: - pass - - LOG.critical('Unhandled Exception in of type "%s" in dashboard.' - % type(exception), exc_info=True) diff --git a/openstack_dashboard/settings.py b/openstack_dashboard/settings.py index b5f536c5c..487ec8844 100644 --- a/openstack_dashboard/settings.py +++ b/openstack_dashboard/settings.py @@ -32,7 +32,7 @@ DEBUG = False TEMPLATE_DEBUG = DEBUG SITE_ID = 1 -SITE_BRANDING = 'OpenStack' +SITE_BRANDING = 'OpenStack Dashboard' LOGIN_URL = '/auth/login/' LOGOUT_URL = '/auth/logout/' @@ -60,8 +60,8 @@ MIDDLEWARE_CLASSES = ( 'django.middleware.common.CommonMiddleware', 'django.middleware.csrf.CsrfViewMiddleware', 'django.contrib.sessions.middleware.SessionMiddleware', + 'django.contrib.auth.middleware.AuthenticationMiddleware', 'django.contrib.messages.middleware.MessageMiddleware', - 'openstack_dashboard.middleware.DashboardLogUnhandledExceptionsMiddleware', 'horizon.middleware.HorizonMiddleware', 'django.middleware.doc.XViewMiddleware', 'django.middleware.locale.LocaleMiddleware', @@ -108,6 +108,8 @@ COMPRESS_PARSER = 'compressor.parser.HtmlParser' INSTALLED_APPS = ( 'openstack_dashboard', + 'django.contrib.contenttypes', + 'django.contrib.auth', 'django.contrib.sessions', 'django.contrib.messages', 'django.contrib.staticfiles', @@ -117,9 +119,11 @@ INSTALLED_APPS = ( 'horizon.dashboards.nova', 'horizon.dashboards.syspanel', 'horizon.dashboards.settings', + 'openstack_auth', ) -AUTHENTICATION_BACKENDS = ('django.contrib.auth.backends.ModelBackend',) +TEST_RUNNER = 'django_nose.NoseTestSuiteRunner' +AUTHENTICATION_BACKENDS = ('openstack_auth.backend.KeystoneBackend',) MESSAGE_STORAGE = 'django.contrib.messages.storage.cookie.CookieStorage' SESSION_ENGINE = 'django.contrib.sessions.backends.signed_cookies' diff --git a/openstack_dashboard/templates/_header.html b/openstack_dashboard/templates/_header.html index 7313412ff..e8bada76a 100644 --- a/openstack_dashboard/templates/_header.html +++ b/openstack_dashboard/templates/_header.html @@ -2,6 +2,6 @@
    {% trans "Logged in as" %}: {{ request.user.username }} {% trans "Settings" %} - {% trans "Sign Out" %} + {% trans "Sign Out" %} {% include "horizon/common/_region_selector.html" %}
    diff --git a/horizon/templates/horizon/auth/_login.html b/openstack_dashboard/templates/auth/_login.html similarity index 89% rename from horizon/templates/horizon/auth/_login.html rename to openstack_dashboard/templates/auth/_login.html index 6e09c8f61..1653020ce 100644 --- a/horizon/templates/horizon/auth/_login.html +++ b/openstack_dashboard/templates/auth/_login.html @@ -4,7 +4,7 @@ {% block modal-header %}{% trans "Log In" %}{% endblock %} {% block modal_class %}login {% if hide %}modal hide{% endif %}{% endblock %} -{% block form_action %}{% url horizon:auth_login %}{% endblock %} +{% block form_action %}{% url login %}{% endblock %} {% block modal-body %}
    diff --git a/horizon/templates/horizon/auth/login.html b/openstack_dashboard/templates/auth/login.html similarity index 79% rename from horizon/templates/horizon/auth/login.html rename to openstack_dashboard/templates/auth/login.html index 6efd6ea84..6fa7746bb 100644 --- a/horizon/templates/horizon/auth/login.html +++ b/openstack_dashboard/templates/auth/login.html @@ -6,5 +6,5 @@ {% block body_id %}splash{% endblock %} {% block content %} - {% include 'horizon/auth/_login.html' %} + {% include 'auth/_login.html' %} {% endblock %} diff --git a/openstack_dashboard/templates/base.html b/openstack_dashboard/templates/base.html index 45c32011f..8fcf05d6f 100644 --- a/openstack_dashboard/templates/base.html +++ b/openstack_dashboard/templates/base.html @@ -3,7 +3,7 @@ - {% block title %}{% endblock %} – {% site_branding %} Dashboard + {% block title %}{% endblock %} - {% site_branding %} {% include "horizon/_conf.html" %} {% block css %} {% include "_stylesheets.html" %} diff --git a/openstack_dashboard/templates/splash.html b/openstack_dashboard/templates/splash.html index 808305c9f..4a5cfe12d 100644 --- a/openstack_dashboard/templates/splash.html +++ b/openstack_dashboard/templates/splash.html @@ -1,14 +1,16 @@ +{% load i18n branding %} + - Login – OpenStack Dashboard + {% trans "Login" %} - {% site_branding %} {% include "_stylesheets.html" %}
    - {% include 'horizon/auth/_login.html' %} + {% include 'auth/_login.html' %}
    diff --git a/openstack_dashboard/urls.py b/openstack_dashboard/urls.py index 659fe6c3b..76179b987 100644 --- a/openstack_dashboard/urls.py +++ b/openstack_dashboard/urls.py @@ -32,6 +32,7 @@ import horizon urlpatterns = patterns('', url(r'^$', 'openstack_dashboard.views.splash', name='splash'), + url(r'^auth/', include('openstack_auth.urls')), url(r'', include(horizon.urls))) # Development static app and project media serving using the staticfiles app. diff --git a/openstack_dashboard/views.py b/openstack_dashboard/views.py index e21b7e6f5..4dea550d6 100644 --- a/openstack_dashboard/views.py +++ b/openstack_dashboard/views.py @@ -25,11 +25,11 @@ from django import shortcuts from django.views.decorators import vary import horizon -from horizon.views import auth_forms +from openstack_auth.views import Login def user_home(user): - if user.admin: + if user.is_superuser: return horizon.get_dashboard('syspanel').get_absolute_url() return horizon.get_dashboard('nova').get_absolute_url() @@ -38,6 +38,7 @@ def user_home(user): def splash(request): if request.user.is_authenticated(): return shortcuts.redirect(user_home(request.user)) - form = auth_forms.Login() + form = Login(request) request.session.clear() + request.session.set_test_cookie() return shortcuts.render(request, 'splash.html', {'form': form}) diff --git a/run_tests.sh b/run_tests.sh index 3c184be67..751e73791 100755 --- a/run_tests.sh +++ b/run_tests.sh @@ -6,7 +6,7 @@ set -o errexit # Increment me any time the environment should be rebuilt. # This includes dependncy changes, directory renames, etc. # Simple integer secuence: 1, 2, 3... -environment_version=23 +environment_version=24 #--------------------------------------------------------# function usage { diff --git a/tools/pip-requires b/tools/pip-requires index 3ffd0988b..695efc3c7 100644 --- a/tools/pip-requires +++ b/tools/pip-requires @@ -1,6 +1,7 @@ # Horizon Core Requirements Django>=1.4 django_compressor +django_openstack_auth python-cloudfiles python-glanceclient python-keystoneclient