Merged from upstream.
This commit is contained in:
commit
3ea2480578
1
Authors
1
Authors
@ -18,6 +18,7 @@ Chiradeep Vittal <chiradeep@cloud.com>
|
||||
Chmouel Boudjnah <chmouel@chmouel.com>
|
||||
Chris Behrens <cbehrens@codestud.com>
|
||||
Christian Berendt <berendt@b1-systems.de>
|
||||
Christopher MacGown <chris@pistoncloud.com>
|
||||
Chuck Short <zulcss@ubuntu.com>
|
||||
Cory Wright <corywright@gmail.com>
|
||||
Dan Prince <dan.prince@rackspace.com>
|
||||
|
@ -134,7 +134,7 @@ class VpnCommands(object):
|
||||
help='Project name')
|
||||
def list(self, project=None):
|
||||
"""Print a listing of the VPN data for one or all projects."""
|
||||
|
||||
print "WARNING: This method only works with deprecated auth"
|
||||
print "%-12s\t" % 'project',
|
||||
print "%-20s\t" % 'ip:port',
|
||||
print "%-20s\t" % 'private_ip',
|
||||
@ -170,17 +170,22 @@ class VpnCommands(object):
|
||||
|
||||
def spawn(self):
|
||||
"""Run all VPNs."""
|
||||
print "WARNING: This method only works with deprecated auth"
|
||||
for p in reversed(self.manager.get_projects()):
|
||||
if not self._vpn_for(p.id):
|
||||
print 'spawning %s' % p.id
|
||||
self.pipe.launch_vpn_instance(p.id)
|
||||
self.pipe.launch_vpn_instance(p.id, p.project_manager_id)
|
||||
time.sleep(10)
|
||||
|
||||
@args('--project', dest="project_id", metavar='<Project name>',
|
||||
help='Project name')
|
||||
def run(self, project_id):
|
||||
"""Start the VPN for a given project."""
|
||||
self.pipe.launch_vpn_instance(project_id)
|
||||
@args('--user', dest="user_id", metavar='<user name>', help='User name')
|
||||
def run(self, project_id, user_id):
|
||||
"""Start the VPN for a given project and user."""
|
||||
if not user_id:
|
||||
print "WARNING: This method only works with deprecated auth"
|
||||
user_id = self.manager.get_project(project_id).project_manager_id
|
||||
self.pipe.launch_vpn_instance(project_id, user_id)
|
||||
|
||||
@args('--project', dest="project_id", metavar='<Project name>',
|
||||
help='Project name')
|
||||
@ -195,10 +200,6 @@ class VpnCommands(object):
|
||||
"""
|
||||
# TODO(tr3buchet): perhaps this shouldn't update all networks
|
||||
# associated with a project in the future
|
||||
project = self.manager.get_project(project_id)
|
||||
if not project:
|
||||
print 'No project %s' % (project_id)
|
||||
return
|
||||
admin_context = context.get_admin_context()
|
||||
networks = db.project_get_networks(admin_context, project_id)
|
||||
for network in networks:
|
||||
@ -611,6 +612,8 @@ class FixedIpCommands(object):
|
||||
|
||||
try:
|
||||
fixed_ip = db.fixed_ip_get_by_address(ctxt, address)
|
||||
if fixed_ip is None:
|
||||
raise exception.NotFound('Could not find address')
|
||||
db.fixed_ip_update(ctxt, fixed_ip['address'],
|
||||
{'reserved': reserved})
|
||||
except exception.NotFound as ex:
|
||||
@ -763,23 +766,26 @@ class NetworkCommands(object):
|
||||
|
||||
def list(self):
|
||||
"""List all created networks"""
|
||||
print "%-18s\t%-15s\t%-15s\t%-15s\t%-15s\t%-15s\t%-15s" % (
|
||||
_('IPv4'),
|
||||
_('IPv6'),
|
||||
_('start address'),
|
||||
_('DNS1'),
|
||||
_('DNS2'),
|
||||
_('VlanID'),
|
||||
'project')
|
||||
_fmt = "%-5s\t%-18s\t%-15s\t%-15s\t%-15s\t%-15s\t%-15s\t%-15s\t%-15s"
|
||||
print _fmt % (_('id'),
|
||||
_('IPv4'),
|
||||
_('IPv6'),
|
||||
_('start address'),
|
||||
_('DNS1'),
|
||||
_('DNS2'),
|
||||
_('VlanID'),
|
||||
_('project'),
|
||||
_("uuid"))
|
||||
for network in db.network_get_all(context.get_admin_context()):
|
||||
print "%-18s\t%-15s\t%-15s\t%-15s\t%-15s\t%-15s\t%-15s" % (
|
||||
network.cidr,
|
||||
network.cidr_v6,
|
||||
network.dhcp_start,
|
||||
network.dns1,
|
||||
network.dns2,
|
||||
network.vlan,
|
||||
network.project_id)
|
||||
print _fmt % (network.id,
|
||||
network.cidr,
|
||||
network.cidr_v6,
|
||||
network.dhcp_start,
|
||||
network.dns1,
|
||||
network.dns2,
|
||||
network.vlan,
|
||||
network.project_id,
|
||||
network.uuid)
|
||||
|
||||
@args('--network', dest="fixed_range", metavar='<x.x.x.x/yy>',
|
||||
help='Network to delete')
|
||||
|
@ -17,6 +17,9 @@
|
||||
# under the License.
|
||||
|
||||
"""
|
||||
WARNING: This code is deprecated and will be removed.
|
||||
Keystone is the recommended solution for auth management.
|
||||
|
||||
Nova authentication management
|
||||
"""
|
||||
|
||||
|
@ -423,6 +423,15 @@ class NoNetworksFound(NotFound):
|
||||
message = _("No networks defined.")
|
||||
|
||||
|
||||
class NetworkNotFoundForProject(NotFound):
|
||||
message = _("Either Network uuid %(network_uuid)s is not present or "
|
||||
"is not assigned to the project %(project_id)s.")
|
||||
|
||||
|
||||
class NetworkHostNotSet(NovaException):
|
||||
message = _("Host is not set to the network (%(network_id)s).")
|
||||
|
||||
|
||||
class DatastoreNotFound(NotFound):
|
||||
message = _("Could not find the datastore reference(s) which the VM uses.")
|
||||
|
||||
@ -456,6 +465,19 @@ class FixedIpNotFoundForHost(FixedIpNotFound):
|
||||
message = _("Host %(host)s has zero fixed ips.")
|
||||
|
||||
|
||||
class FixedIpNotFoundForNetwork(FixedIpNotFound):
|
||||
message = _("Fixed IP address (%(address)s) does not exist in "
|
||||
"network (%(network_uuid)s).")
|
||||
|
||||
|
||||
class FixedIpAlreadyInUse(NovaException):
|
||||
message = _("Fixed IP address %(address)s is already in use.")
|
||||
|
||||
|
||||
class FixedIpInvalid(Invalid):
|
||||
message = _("Fixed IP address %(address)s is invalid.")
|
||||
|
||||
|
||||
class NoMoreFixedIps(Error):
|
||||
message = _("Zero fixed ips available.")
|
||||
|
||||
|
@ -402,3 +402,5 @@ DEFINE_bool('resume_guests_state_on_host_boot', False,
|
||||
|
||||
DEFINE_string('root_helper', 'sudo',
|
||||
'Command prefix to use for running commands as root')
|
||||
|
||||
DEFINE_bool('use_ipv6', False, 'use ipv6')
|
||||
|
@ -2,6 +2,7 @@
|
||||
|
||||
# Copyright 2010 United States Government as represented by the
|
||||
# Administrator of the National Aeronautics and Space Administration.
|
||||
# Copyright 2011 Piston Cloud Computing, Inc.
|
||||
# All Rights Reserved.
|
||||
#
|
||||
# Licensed under the Apache License, Version 2.0 (the "License"); you may
|
||||
@ -159,6 +160,20 @@ class ComputeTestCase(test.TestCase):
|
||||
db.security_group_destroy(self.context, group['id'])
|
||||
db.instance_destroy(self.context, ref[0]['id'])
|
||||
|
||||
def test_create_instance_associates_config_drive(self):
|
||||
"""Make sure create associates a config drive."""
|
||||
|
||||
instance_id = self._create_instance(params={'config_drive': True, })
|
||||
|
||||
try:
|
||||
self.compute.run_instance(self.context, instance_id)
|
||||
instances = db.instance_get_all(context.get_admin_context())
|
||||
instance = instances[0]
|
||||
|
||||
self.assertTrue(instance.config_drive)
|
||||
finally:
|
||||
db.instance_destroy(self.context, instance_id)
|
||||
|
||||
def test_default_hostname_generator(self):
|
||||
cases = [(None, 'server_1'), ('Hello, Server!', 'hello_server'),
|
||||
('<}\x1fh\x10e\x08l\x02l\x05o\x12!{>', 'hello')]
|
||||
|
@ -15,6 +15,7 @@
|
||||
# License for the specific language governing permissions and limitations
|
||||
# under the License.
|
||||
|
||||
from nova import context
|
||||
from nova import db
|
||||
from nova import exception
|
||||
from nova import log as logging
|
||||
@ -41,6 +42,7 @@ class FakeModel(dict):
|
||||
|
||||
|
||||
networks = [{'id': 0,
|
||||
'uuid': "aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa",
|
||||
'label': 'test0',
|
||||
'injected': False,
|
||||
'multi_host': False,
|
||||
@ -60,6 +62,7 @@ networks = [{'id': 0,
|
||||
'project_id': 'fake_project',
|
||||
'vpn_public_address': '192.168.0.2'},
|
||||
{'id': 1,
|
||||
'uuid': "bbbbbbbb-bbbb-bbbb-bbbb-bbbbbbbbbbbb",
|
||||
'label': 'test1',
|
||||
'injected': False,
|
||||
'multi_host': False,
|
||||
@ -126,6 +129,8 @@ class FlatNetworkTestCase(test.TestCase):
|
||||
super(FlatNetworkTestCase, self).setUp()
|
||||
self.network = network_manager.FlatManager(host=HOST)
|
||||
self.network.db = db
|
||||
self.context = context.RequestContext('testuser', 'testproject',
|
||||
is_admin=False)
|
||||
|
||||
def test_get_instance_nw_info(self):
|
||||
self.mox.StubOutWithMock(db, 'fixed_ip_get_by_instance')
|
||||
@ -183,12 +188,73 @@ class FlatNetworkTestCase(test.TestCase):
|
||||
'netmask': '255.255.255.0'}]
|
||||
self.assertDictListMatch(nw[1]['ips'], check)
|
||||
|
||||
def test_validate_networks(self):
|
||||
self.mox.StubOutWithMock(db, 'network_get_all_by_uuids')
|
||||
self.mox.StubOutWithMock(db, "fixed_ip_get_by_address")
|
||||
|
||||
requested_networks = [("bbbbbbbb-bbbb-bbbb-bbbb-bbbbbbbbbbbb",
|
||||
"192.168.1.100")]
|
||||
db.network_get_all_by_uuids(mox.IgnoreArg(),
|
||||
mox.IgnoreArg()).AndReturn(networks)
|
||||
|
||||
fixed_ips[1]['network'] = FakeModel(**networks[1])
|
||||
fixed_ips[1]['instance'] = None
|
||||
db.fixed_ip_get_by_address(mox.IgnoreArg(),
|
||||
mox.IgnoreArg()).AndReturn(fixed_ips[1])
|
||||
|
||||
self.mox.ReplayAll()
|
||||
self.network.validate_networks(self.context, requested_networks)
|
||||
|
||||
def test_validate_networks_none_requested_networks(self):
|
||||
self.network.validate_networks(self.context, None)
|
||||
|
||||
def test_validate_networks_empty_requested_networks(self):
|
||||
requested_networks = []
|
||||
self.mox.ReplayAll()
|
||||
|
||||
self.network.validate_networks(self.context, requested_networks)
|
||||
|
||||
def test_validate_networks_invalid_fixed_ip(self):
|
||||
self.mox.StubOutWithMock(db, 'network_get_all_by_uuids')
|
||||
requested_networks = [(1, "192.168.0.100.1")]
|
||||
db.network_get_all_by_uuids(mox.IgnoreArg(),
|
||||
mox.IgnoreArg()).AndReturn(networks)
|
||||
self.mox.ReplayAll()
|
||||
|
||||
self.assertRaises(exception.FixedIpInvalid,
|
||||
self.network.validate_networks, None,
|
||||
requested_networks)
|
||||
|
||||
def test_validate_networks_empty_fixed_ip(self):
|
||||
self.mox.StubOutWithMock(db, 'network_get_all_by_uuids')
|
||||
|
||||
requested_networks = [(1, "")]
|
||||
db.network_get_all_by_uuids(mox.IgnoreArg(),
|
||||
mox.IgnoreArg()).AndReturn(networks)
|
||||
self.mox.ReplayAll()
|
||||
|
||||
self.assertRaises(exception.FixedIpInvalid,
|
||||
self.network.validate_networks,
|
||||
None, requested_networks)
|
||||
|
||||
def test_validate_networks_none_fixed_ip(self):
|
||||
self.mox.StubOutWithMock(db, 'network_get_all_by_uuids')
|
||||
|
||||
requested_networks = [(1, None)]
|
||||
db.network_get_all_by_uuids(mox.IgnoreArg(),
|
||||
mox.IgnoreArg()).AndReturn(networks)
|
||||
self.mox.ReplayAll()
|
||||
|
||||
self.network.validate_networks(None, requested_networks)
|
||||
|
||||
|
||||
class VlanNetworkTestCase(test.TestCase):
|
||||
def setUp(self):
|
||||
super(VlanNetworkTestCase, self).setUp()
|
||||
self.network = network_manager.VlanManager(host=HOST)
|
||||
self.network.db = db
|
||||
self.context = context.RequestContext('testuser', 'testproject',
|
||||
is_admin=False)
|
||||
|
||||
def test_vpn_allocate_fixed_ip(self):
|
||||
self.mox.StubOutWithMock(db, 'fixed_ip_associate')
|
||||
@ -232,7 +298,7 @@ class VlanNetworkTestCase(test.TestCase):
|
||||
|
||||
network = dict(networks[0])
|
||||
network['vpn_private_address'] = '192.168.0.2'
|
||||
self.network.allocate_fixed_ip(None, 0, network)
|
||||
self.network.allocate_fixed_ip(self.context, 0, network)
|
||||
|
||||
def test_create_networks_too_big(self):
|
||||
self.assertRaises(ValueError, self.network.create_networks, None,
|
||||
@ -243,6 +309,68 @@ class VlanNetworkTestCase(test.TestCase):
|
||||
num_networks=100, vlan_start=1,
|
||||
cidr='192.168.0.1/24', network_size=100)
|
||||
|
||||
def test_validate_networks(self):
|
||||
self.mox.StubOutWithMock(db, 'network_get_all_by_uuids')
|
||||
self.mox.StubOutWithMock(db, "fixed_ip_get_by_address")
|
||||
|
||||
requested_networks = [("bbbbbbbb-bbbb-bbbb-bbbb-bbbbbbbbbbbb",
|
||||
"192.168.1.100")]
|
||||
db.network_get_all_by_uuids(mox.IgnoreArg(),
|
||||
mox.IgnoreArg(),
|
||||
mox.IgnoreArg()).AndReturn(networks)
|
||||
|
||||
fixed_ips[1]['network'] = FakeModel(**networks[1])
|
||||
fixed_ips[1]['instance'] = None
|
||||
db.fixed_ip_get_by_address(mox.IgnoreArg(),
|
||||
mox.IgnoreArg()).AndReturn(fixed_ips[1])
|
||||
|
||||
self.mox.ReplayAll()
|
||||
self.network.validate_networks(self.context, requested_networks)
|
||||
|
||||
def test_validate_networks_none_requested_networks(self):
|
||||
self.network.validate_networks(self.context, None)
|
||||
|
||||
def test_validate_networks_empty_requested_networks(self):
|
||||
requested_networks = []
|
||||
self.mox.ReplayAll()
|
||||
|
||||
self.network.validate_networks(self.context, requested_networks)
|
||||
|
||||
def test_validate_networks_invalid_fixed_ip(self):
|
||||
self.mox.StubOutWithMock(db, 'network_get_all_by_uuids')
|
||||
requested_networks = [(1, "192.168.0.100.1")]
|
||||
db.network_get_all_by_uuids(mox.IgnoreArg(),
|
||||
mox.IgnoreArg(),
|
||||
mox.IgnoreArg()).AndReturn(networks)
|
||||
self.mox.ReplayAll()
|
||||
|
||||
self.assertRaises(exception.FixedIpInvalid,
|
||||
self.network.validate_networks, self.context,
|
||||
requested_networks)
|
||||
|
||||
def test_validate_networks_empty_fixed_ip(self):
|
||||
self.mox.StubOutWithMock(db, 'network_get_all_by_uuids')
|
||||
|
||||
requested_networks = [(1, "")]
|
||||
db.network_get_all_by_uuids(mox.IgnoreArg(),
|
||||
mox.IgnoreArg(),
|
||||
mox.IgnoreArg()).AndReturn(networks)
|
||||
self.mox.ReplayAll()
|
||||
|
||||
self.assertRaises(exception.FixedIpInvalid,
|
||||
self.network.validate_networks,
|
||||
self.context, requested_networks)
|
||||
|
||||
def test_validate_networks_none_fixed_ip(self):
|
||||
self.mox.StubOutWithMock(db, 'network_get_all_by_uuids')
|
||||
|
||||
requested_networks = [(1, None)]
|
||||
db.network_get_all_by_uuids(mox.IgnoreArg(),
|
||||
mox.IgnoreArg(),
|
||||
mox.IgnoreArg()).AndReturn(networks)
|
||||
self.mox.ReplayAll()
|
||||
self.network.validate_networks(self.context, requested_networks)
|
||||
|
||||
|
||||
class CommonNetworkTestCase(test.TestCase):
|
||||
|
||||
|
@ -844,3 +844,19 @@ def bool_from_str(val):
|
||||
return True if int(val) else False
|
||||
except ValueError:
|
||||
return val.lower() == 'true'
|
||||
|
||||
|
||||
def is_valid_ipv4(address):
|
||||
"""valid the address strictly as per format xxx.xxx.xxx.xxx.
|
||||
where xxx is a value between 0 and 255.
|
||||
"""
|
||||
parts = address.split(".")
|
||||
if len(parts) != 4:
|
||||
return False
|
||||
for item in parts:
|
||||
try:
|
||||
if not 0 <= int(item) <= 255:
|
||||
return False
|
||||
except ValueError:
|
||||
return False
|
||||
return True
|
||||
|
@ -14,8 +14,8 @@ msgstr ""
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2011-07-23 05:11+0000\n"
|
||||
"X-Generator: Launchpad (build 13405)\n"
|
||||
"X-Launchpad-Export-Date: 2011-08-03 04:43+0000\n"
|
||||
"X-Generator: Launchpad (build 13573)\n"
|
||||
|
||||
#: ../nova/scheduler/chance.py:37 ../nova/scheduler/zone.py:55
|
||||
#: ../nova/scheduler/simple.py:75 ../nova/scheduler/simple.py:110
|
||||
|
4
po/cs.po
4
po/cs.po
@ -14,8 +14,8 @@ msgstr ""
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2011-07-23 05:11+0000\n"
|
||||
"X-Generator: Launchpad (build 13405)\n"
|
||||
"X-Launchpad-Export-Date: 2011-08-03 04:43+0000\n"
|
||||
"X-Generator: Launchpad (build 13573)\n"
|
||||
|
||||
#: ../nova/scheduler/chance.py:37 ../nova/scheduler/zone.py:55
|
||||
#: ../nova/scheduler/simple.py:75 ../nova/scheduler/simple.py:110
|
||||
|
4
po/da.po
4
po/da.po
@ -14,8 +14,8 @@ msgstr ""
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2011-07-23 05:12+0000\n"
|
||||
"X-Generator: Launchpad (build 13405)\n"
|
||||
"X-Launchpad-Export-Date: 2011-08-03 04:43+0000\n"
|
||||
"X-Generator: Launchpad (build 13573)\n"
|
||||
|
||||
#: ../nova/scheduler/chance.py:37 ../nova/scheduler/zone.py:55
|
||||
#: ../nova/scheduler/simple.py:75 ../nova/scheduler/simple.py:110
|
||||
|
22
po/de.po
22
po/de.po
@ -14,8 +14,8 @@ msgstr ""
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2011-07-23 05:12+0000\n"
|
||||
"X-Generator: Launchpad (build 13405)\n"
|
||||
"X-Launchpad-Export-Date: 2011-08-03 04:44+0000\n"
|
||||
"X-Generator: Launchpad (build 13573)\n"
|
||||
|
||||
#: ../nova/scheduler/chance.py:37 ../nova/scheduler/zone.py:55
|
||||
#: ../nova/scheduler/simple.py:75 ../nova/scheduler/simple.py:110
|
||||
@ -2833,3 +2833,21 @@ msgstr ""
|
||||
#~ msgid "Data store %s is unreachable. Trying again in %d seconds."
|
||||
#~ msgstr ""
|
||||
#~ "Datastore %s ist nicht erreichbar. Versuche es erneut in %d Sekunden."
|
||||
|
||||
#~ msgid "Full set of FLAGS:"
|
||||
#~ msgstr "Alle vorhandenen FLAGS:"
|
||||
|
||||
#, python-format
|
||||
#~ msgid "pidfile %s does not exist. Daemon not running?\n"
|
||||
#~ msgstr "PID-Datei %s existiert nicht. Läuft der Daemon nicht?\n"
|
||||
|
||||
#, python-format
|
||||
#~ msgid "Starting %s"
|
||||
#~ msgstr "%s wird gestartet"
|
||||
|
||||
#~ msgid "No such process"
|
||||
#~ msgstr "Kein passender Prozess gefunden"
|
||||
|
||||
#, python-format
|
||||
#~ msgid "Serving %s"
|
||||
#~ msgstr "Bedient %s"
|
||||
|
@ -14,8 +14,8 @@ msgstr ""
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2011-07-23 05:12+0000\n"
|
||||
"X-Generator: Launchpad (build 13405)\n"
|
||||
"X-Launchpad-Export-Date: 2011-08-03 04:44+0000\n"
|
||||
"X-Generator: Launchpad (build 13573)\n"
|
||||
|
||||
#: ../nova/scheduler/chance.py:37 ../nova/scheduler/zone.py:55
|
||||
#: ../nova/scheduler/simple.py:75 ../nova/scheduler/simple.py:110
|
||||
|
25
po/en_GB.po
25
po/en_GB.po
@ -14,8 +14,8 @@ msgstr ""
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2011-07-23 05:12+0000\n"
|
||||
"X-Generator: Launchpad (build 13405)\n"
|
||||
"X-Launchpad-Export-Date: 2011-08-03 04:44+0000\n"
|
||||
"X-Generator: Launchpad (build 13573)\n"
|
||||
|
||||
#: ../nova/scheduler/chance.py:37 ../nova/scheduler/zone.py:55
|
||||
#: ../nova/scheduler/simple.py:75 ../nova/scheduler/simple.py:110
|
||||
@ -2812,3 +2812,24 @@ msgstr ""
|
||||
#, python-format
|
||||
msgid "Removing user %(user)s from project %(project)s"
|
||||
msgstr ""
|
||||
|
||||
#~ msgid "Wrong number of arguments."
|
||||
#~ msgstr "Wrong number of arguments."
|
||||
|
||||
#~ msgid "No such process"
|
||||
#~ msgstr "No such process"
|
||||
|
||||
#~ msgid "Full set of FLAGS:"
|
||||
#~ msgstr "Full set of FLAGS:"
|
||||
|
||||
#, python-format
|
||||
#~ msgid "pidfile %s does not exist. Daemon not running?\n"
|
||||
#~ msgstr "pidfile %s does not exist. Daemon not running?\n"
|
||||
|
||||
#, python-format
|
||||
#~ msgid "Starting %s"
|
||||
#~ msgstr "Starting %s"
|
||||
|
||||
#, python-format
|
||||
#~ msgid "Serving %s"
|
||||
#~ msgstr "Serving %s"
|
||||
|
69
po/es.po
69
po/es.po
@ -8,20 +8,20 @@ msgstr ""
|
||||
"Project-Id-Version: nova\n"
|
||||
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"POT-Creation-Date: 2011-02-21 10:03-0500\n"
|
||||
"PO-Revision-Date: 2011-06-30 16:42+0000\n"
|
||||
"Last-Translator: David Caro <Unknown>\n"
|
||||
"PO-Revision-Date: 2011-08-01 03:23+0000\n"
|
||||
"Last-Translator: Juan Alfredo Salas Santillana <Unknown>\n"
|
||||
"Language-Team: Spanish <es@li.org>\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2011-07-23 05:12+0000\n"
|
||||
"X-Generator: Launchpad (build 13405)\n"
|
||||
"X-Launchpad-Export-Date: 2011-08-03 04:44+0000\n"
|
||||
"X-Generator: Launchpad (build 13573)\n"
|
||||
|
||||
#: ../nova/scheduler/chance.py:37 ../nova/scheduler/zone.py:55
|
||||
#: ../nova/scheduler/simple.py:75 ../nova/scheduler/simple.py:110
|
||||
#: ../nova/scheduler/simple.py:122
|
||||
msgid "No hosts found"
|
||||
msgstr "No se han encontrado hosts"
|
||||
msgstr "No se encontro anfitriones."
|
||||
|
||||
#: ../nova/exception.py:33
|
||||
msgid "Unexpected error while running command."
|
||||
@ -2566,7 +2566,7 @@ msgstr ""
|
||||
#: ../nova/auth/manager.py:289
|
||||
#, python-format
|
||||
msgid "User %(uid)s is not a member of project %(pjid)s"
|
||||
msgstr ""
|
||||
msgstr "El usuario %(uid)s no es miembro del proyecto %(pjid)s"
|
||||
|
||||
#: ../nova/auth/manager.py:298 ../nova/auth/manager.py:309
|
||||
#, python-format
|
||||
@ -2584,7 +2584,7 @@ msgstr "Debes especificar un proyecto"
|
||||
#: ../nova/auth/manager.py:414
|
||||
#, python-format
|
||||
msgid "The %s role can not be found"
|
||||
msgstr "El rol %s no se ha podido encontrar"
|
||||
msgstr ""
|
||||
|
||||
#: ../nova/auth/manager.py:416
|
||||
#, python-format
|
||||
@ -2614,27 +2614,27 @@ msgstr ""
|
||||
#: ../nova/auth/manager.py:515
|
||||
#, python-format
|
||||
msgid "Created project %(name)s with manager %(manager_user)s"
|
||||
msgstr ""
|
||||
msgstr "Creado el proyecto %(name)s con administrador %(manager_user)s"
|
||||
|
||||
#: ../nova/auth/manager.py:533
|
||||
#, python-format
|
||||
msgid "modifying project %s"
|
||||
msgstr "modificando proyecto %s"
|
||||
msgstr "Modificando proyecto %s"
|
||||
|
||||
#: ../nova/auth/manager.py:545
|
||||
#, python-format
|
||||
msgid "Adding user %(uid)s to project %(pid)s"
|
||||
msgstr ""
|
||||
msgstr "Agregando usuario %(uid)s para el proyecto %(pid)s"
|
||||
|
||||
#: ../nova/auth/manager.py:566
|
||||
#, python-format
|
||||
msgid "Remove user %(uid)s from project %(pid)s"
|
||||
msgstr ""
|
||||
msgstr "Borrar usuario %(uid)s del proyecto %(pid)s"
|
||||
|
||||
#: ../nova/auth/manager.py:592
|
||||
#, python-format
|
||||
msgid "Deleting project %s"
|
||||
msgstr "Eliminando proyecto %s"
|
||||
msgstr "Borrando proyecto %s"
|
||||
|
||||
#: ../nova/auth/manager.py:650
|
||||
#, python-format
|
||||
@ -2644,7 +2644,7 @@ msgstr ""
|
||||
#: ../nova/auth/manager.py:659
|
||||
#, python-format
|
||||
msgid "Deleting user %s"
|
||||
msgstr "Eliminando usuario %s"
|
||||
msgstr "Borrando usuario %s"
|
||||
|
||||
#: ../nova/auth/manager.py:669
|
||||
#, python-format
|
||||
@ -2710,7 +2710,7 @@ msgstr ""
|
||||
#: ../nova/auth/ldapdriver.py:478
|
||||
#, python-format
|
||||
msgid "Group can't be created because user %s doesn't exist"
|
||||
msgstr ""
|
||||
msgstr "El grupo no se puede crear porque el usuario %s no existe"
|
||||
|
||||
#: ../nova/auth/ldapdriver.py:495
|
||||
#, python-format
|
||||
@ -2730,18 +2730,20 @@ msgstr ""
|
||||
#: ../nova/auth/ldapdriver.py:513
|
||||
#, python-format
|
||||
msgid "User %(uid)s is already a member of the group %(group_dn)s"
|
||||
msgstr ""
|
||||
msgstr "El usuario %(uid)s es actualmente miembro del grupo %(group_dn)s"
|
||||
|
||||
#: ../nova/auth/ldapdriver.py:524
|
||||
#, python-format
|
||||
msgid ""
|
||||
"User %s can't be removed from the group because the user doesn't exist"
|
||||
msgstr ""
|
||||
"El usuario %s no se pudo borrar de el grupo a causa de que el usuario no "
|
||||
"existe"
|
||||
|
||||
#: ../nova/auth/ldapdriver.py:528
|
||||
#, python-format
|
||||
msgid "User %s is not a member of the group"
|
||||
msgstr ""
|
||||
msgstr "El usuario %s no es miembro de el grupo"
|
||||
|
||||
#: ../nova/auth/ldapdriver.py:542
|
||||
#, python-format
|
||||
@ -2877,6 +2879,10 @@ msgstr "Eliminando el usuario %(user)s del proyecto %(project)s"
|
||||
#~ msgstr ""
|
||||
#~ "El almacen de datos %s es inalcanzable. Reintentandolo en %d segundos."
|
||||
|
||||
#, python-format
|
||||
#~ msgid "Serving %s"
|
||||
#~ msgstr "Sirviendo %s"
|
||||
|
||||
#, python-format
|
||||
#~ msgid "Couldn't get IP, using 127.0.0.1 %s"
|
||||
#~ msgstr "No puedo obtener IP, usando 127.0.0.1 %s"
|
||||
@ -3037,10 +3043,24 @@ msgstr "Eliminando el usuario %(user)s del proyecto %(project)s"
|
||||
#~ msgid "Detach volume %s from mountpoint %s on instance %s"
|
||||
#~ msgstr "Desvinculando volumen %s del punto de montaje %s en la instancia %s"
|
||||
|
||||
#~ msgid "unexpected exception getting connection"
|
||||
#~ msgstr "excepción inexperada al obtener la conexión"
|
||||
|
||||
#~ msgid "unexpected error during update"
|
||||
#~ msgstr "error inesperado durante la actualización"
|
||||
|
||||
#, python-format
|
||||
#~ msgid "Cannot get blockstats for \"%s\" on \"%s\""
|
||||
#~ msgstr "No puedo obtener estadísticas del bloque para \"%s\" en \"%s\""
|
||||
|
||||
#, python-format
|
||||
#~ msgid "updating %s..."
|
||||
#~ msgstr "actualizando %s..."
|
||||
|
||||
#, python-format
|
||||
#~ msgid "Found instance: %s"
|
||||
#~ msgstr "Encontrada interfaz: %s"
|
||||
|
||||
#, python-format
|
||||
#~ msgid "Cannot get ifstats for \"%s\" on \"%s\""
|
||||
#~ msgstr "No puedo obtener estadísticas de la interfaz para \"%s\" en \"%s\""
|
||||
@ -3319,3 +3339,20 @@ msgstr "Eliminando el usuario %(user)s del proyecto %(project)s"
|
||||
#, python-format
|
||||
#~ msgid "Spawning VM %s created %s."
|
||||
#~ msgstr "Iniciando VM %s creado %s."
|
||||
|
||||
#~ msgid "No such process"
|
||||
#~ msgstr "No existe el proceso"
|
||||
|
||||
#~ msgid "Full set of FLAGS:"
|
||||
#~ msgstr "Conjunto completo de opciones (FLAGS):"
|
||||
|
||||
#~ msgid "Wrong number of arguments."
|
||||
#~ msgstr "Cantidad de argumentos incorrecta"
|
||||
|
||||
#, python-format
|
||||
#~ msgid "pidfile %s does not exist. Daemon not running?\n"
|
||||
#~ msgstr "El \"pidfile\" %s no existe. Quizás el servicio no este corriendo.\n"
|
||||
|
||||
#, python-format
|
||||
#~ msgid "Starting %s"
|
||||
#~ msgstr "Iniciando %s"
|
||||
|
52
po/fr.po
52
po/fr.po
@ -14,8 +14,8 @@ msgstr ""
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2011-07-23 05:12+0000\n"
|
||||
"X-Generator: Launchpad (build 13405)\n"
|
||||
"X-Launchpad-Export-Date: 2011-08-03 04:43+0000\n"
|
||||
"X-Generator: Launchpad (build 13573)\n"
|
||||
|
||||
#: ../nova/scheduler/chance.py:37 ../nova/scheduler/zone.py:55
|
||||
#: ../nova/scheduler/simple.py:75 ../nova/scheduler/simple.py:110
|
||||
@ -2929,3 +2929,51 @@ msgstr "Ajout de l'utilisateur %(user)s au projet %(project)s"
|
||||
#, python-format
|
||||
msgid "Removing user %(user)s from project %(project)s"
|
||||
msgstr "Suppression de l'utilisateur %(user)s du projet %(project)s"
|
||||
|
||||
#~ msgid "Wrong number of arguments."
|
||||
#~ msgstr "Nombre d'arguments incorrect."
|
||||
|
||||
#~ msgid "No such process"
|
||||
#~ msgstr "Aucun processus de ce type"
|
||||
|
||||
#, python-format
|
||||
#~ msgid "Starting %s"
|
||||
#~ msgstr "Démarrage de %s"
|
||||
|
||||
#~ msgid "Full set of FLAGS:"
|
||||
#~ msgstr "Ensemble de propriétés complet :"
|
||||
|
||||
#, python-format
|
||||
#~ msgid "pidfile %s does not exist. Daemon not running?\n"
|
||||
#~ msgstr ""
|
||||
#~ "Le fichier pid %s n'existe pas. Est-ce que le processus est en cours "
|
||||
#~ "d'exécution ?\n"
|
||||
|
||||
#, python-format
|
||||
#~ msgid "Serving %s"
|
||||
#~ msgstr "En train de servir %s"
|
||||
|
||||
#, python-format
|
||||
#~ msgid "Cannot get blockstats for \"%(disk)s\" on \"%(iid)s\""
|
||||
#~ msgstr "Ne peut pas récupérer blockstats pour \"%(disk)s\" sur \"%(iid)s\""
|
||||
|
||||
#, python-format
|
||||
#~ msgid "Cannot get ifstats for \"%(interface)s\" on \"%(iid)s\""
|
||||
#~ msgstr "Ne peut pas récupérer ifstats pour \"%(interface)s\" sur \"%(iid)s\""
|
||||
|
||||
#~ msgid "unexpected error during update"
|
||||
#~ msgstr "erreur inopinée pendant la ise à jour"
|
||||
|
||||
#, python-format
|
||||
#~ msgid "updating %s..."
|
||||
#~ msgstr "mise à jour %s..."
|
||||
|
||||
#, python-format
|
||||
#~ msgid "Found instance: %s"
|
||||
#~ msgstr "Instance trouvée : %s"
|
||||
|
||||
#~ msgid "unexpected exception getting connection"
|
||||
#~ msgstr "erreur inopinée pendant la connexion"
|
||||
|
||||
#~ msgid "Starting instance monitor"
|
||||
#~ msgstr "Démarrage du superviseur d'instance"
|
||||
|
87
po/it.po
87
po/it.po
@ -8,14 +8,14 @@ msgstr ""
|
||||
"Project-Id-Version: nova\n"
|
||||
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"POT-Creation-Date: 2011-02-21 10:03-0500\n"
|
||||
"PO-Revision-Date: 2011-02-22 19:34+0000\n"
|
||||
"Last-Translator: Armando Migliaccio <Unknown>\n"
|
||||
"PO-Revision-Date: 2011-08-21 22:50+0000\n"
|
||||
"Last-Translator: Guido Davide Dall'Olio <Unknown>\n"
|
||||
"Language-Team: Italian <it@li.org>\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2011-07-23 05:12+0000\n"
|
||||
"X-Generator: Launchpad (build 13405)\n"
|
||||
"X-Launchpad-Export-Date: 2011-08-22 04:48+0000\n"
|
||||
"X-Generator: Launchpad (build 13697)\n"
|
||||
|
||||
#: ../nova/scheduler/chance.py:37 ../nova/scheduler/zone.py:55
|
||||
#: ../nova/scheduler/simple.py:75 ../nova/scheduler/simple.py:110
|
||||
@ -449,24 +449,24 @@ msgstr ""
|
||||
#: ../nova/scheduler/simple.py:53
|
||||
#, python-format
|
||||
msgid "Host %s is not alive"
|
||||
msgstr ""
|
||||
msgstr "L'host %s non è attivo"
|
||||
|
||||
#: ../nova/scheduler/simple.py:65
|
||||
msgid "All hosts have too many cores"
|
||||
msgstr ""
|
||||
msgstr "Gli host hanno troppi core"
|
||||
|
||||
#: ../nova/scheduler/simple.py:87
|
||||
#, python-format
|
||||
msgid "Host %s not available"
|
||||
msgstr ""
|
||||
msgstr "Host %s non disponibile"
|
||||
|
||||
#: ../nova/scheduler/simple.py:99
|
||||
msgid "All hosts have too many gigabytes"
|
||||
msgstr ""
|
||||
msgstr "Gli Host hanno troppy gigabyte"
|
||||
|
||||
#: ../nova/scheduler/simple.py:119
|
||||
msgid "All hosts have too many networks"
|
||||
msgstr ""
|
||||
msgstr "Gli host hanno troppe reti"
|
||||
|
||||
#: ../nova/volume/manager.py:85
|
||||
#, python-format
|
||||
@ -496,7 +496,7 @@ msgstr ""
|
||||
#: ../nova/volume/manager.py:123
|
||||
#, python-format
|
||||
msgid "volume %s: created successfully"
|
||||
msgstr ""
|
||||
msgstr "volume %s: creato con successo"
|
||||
|
||||
#: ../nova/volume/manager.py:131
|
||||
msgid "Volume is still attached"
|
||||
@ -514,12 +514,12 @@ msgstr ""
|
||||
#: ../nova/volume/manager.py:138
|
||||
#, python-format
|
||||
msgid "volume %s: deleting"
|
||||
msgstr ""
|
||||
msgstr "volume %s: rimuovendo"
|
||||
|
||||
#: ../nova/volume/manager.py:147
|
||||
#, python-format
|
||||
msgid "volume %s: deleted successfully"
|
||||
msgstr ""
|
||||
msgstr "volume %s: rimosso con successo"
|
||||
|
||||
#: ../nova/virt/xenapi/fake.py:74
|
||||
#, python-format
|
||||
@ -529,7 +529,7 @@ msgstr ""
|
||||
#: ../nova/virt/xenapi/fake.py:304 ../nova/virt/xenapi/fake.py:404
|
||||
#: ../nova/virt/xenapi/fake.py:422 ../nova/virt/xenapi/fake.py:478
|
||||
msgid "Raising NotImplemented"
|
||||
msgstr ""
|
||||
msgstr "Sollevando NotImplemented"
|
||||
|
||||
#: ../nova/virt/xenapi/fake.py:306
|
||||
#, python-format
|
||||
@ -539,7 +539,7 @@ msgstr ""
|
||||
#: ../nova/virt/xenapi/fake.py:341
|
||||
#, python-format
|
||||
msgid "Calling %(localname)s %(impl)s"
|
||||
msgstr ""
|
||||
msgstr "Chiamando %(localname)s %(impl)s"
|
||||
|
||||
#: ../nova/virt/xenapi/fake.py:346
|
||||
#, python-format
|
||||
@ -564,17 +564,17 @@ msgstr ""
|
||||
|
||||
#: ../nova/virt/connection.py:73
|
||||
msgid "Failed to open connection to the hypervisor"
|
||||
msgstr ""
|
||||
msgstr "Fallita l'apertura della connessione verso l'hypervisor"
|
||||
|
||||
#: ../nova/network/linux_net.py:187
|
||||
#, python-format
|
||||
msgid "Starting VLAN inteface %s"
|
||||
msgstr ""
|
||||
msgstr "Avviando l'interfaccia VLAN %s"
|
||||
|
||||
#: ../nova/network/linux_net.py:208
|
||||
#, python-format
|
||||
msgid "Starting Bridge interface for %s"
|
||||
msgstr ""
|
||||
msgstr "Avviando l'interfaccia Bridge per %s"
|
||||
|
||||
#. pylint: disable=W0703
|
||||
#: ../nova/network/linux_net.py:314
|
||||
@ -632,7 +632,7 @@ msgstr "Il risultato é %s"
|
||||
#: ../nova/utils.py:159
|
||||
#, python-format
|
||||
msgid "Running cmd (SSH): %s"
|
||||
msgstr ""
|
||||
msgstr "Eseguendo cmd (SSH): %s"
|
||||
|
||||
#: ../nova/utils.py:217
|
||||
#, python-format
|
||||
@ -642,7 +642,7 @@ msgstr "debug in callback: %s"
|
||||
#: ../nova/utils.py:222
|
||||
#, python-format
|
||||
msgid "Running %s"
|
||||
msgstr ""
|
||||
msgstr "Eseguendo %s"
|
||||
|
||||
#: ../nova/utils.py:262
|
||||
#, python-format
|
||||
@ -697,12 +697,12 @@ msgstr ""
|
||||
#: ../nova/virt/xenapi/vm_utils.py:135 ../nova/virt/hyperv.py:171
|
||||
#, python-format
|
||||
msgid "Created VM %s..."
|
||||
msgstr ""
|
||||
msgstr "Creata VM %s.."
|
||||
|
||||
#: ../nova/virt/xenapi/vm_utils.py:138
|
||||
#, python-format
|
||||
msgid "Created VM %(instance_name)s as %(vm_ref)s."
|
||||
msgstr ""
|
||||
msgstr "Creata VM %(instance_name)s come %(vm_ref)s"
|
||||
|
||||
#: ../nova/virt/xenapi/vm_utils.py:168
|
||||
#, python-format
|
||||
@ -771,7 +771,7 @@ msgstr ""
|
||||
#: ../nova/virt/xenapi/vm_utils.py:332
|
||||
#, python-format
|
||||
msgid "Glance image %s"
|
||||
msgstr ""
|
||||
msgstr "Immagine Glance %s"
|
||||
|
||||
#. we need to invoke a plugin for copying VDI's
|
||||
#. content into proper path
|
||||
@ -783,7 +783,7 @@ msgstr ""
|
||||
#: ../nova/virt/xenapi/vm_utils.py:352
|
||||
#, python-format
|
||||
msgid "Kernel/Ramdisk VDI %s destroyed"
|
||||
msgstr ""
|
||||
msgstr "Kernel/Ramdisk VDI %s distrutti"
|
||||
|
||||
#: ../nova/virt/xenapi/vm_utils.py:361
|
||||
#, python-format
|
||||
@ -793,7 +793,7 @@ msgstr ""
|
||||
#: ../nova/virt/xenapi/vm_utils.py:386 ../nova/virt/xenapi/vm_utils.py:402
|
||||
#, python-format
|
||||
msgid "Looking up vdi %s for PV kernel"
|
||||
msgstr ""
|
||||
msgstr "Cercando vdi %s per kernel PV"
|
||||
|
||||
#: ../nova/virt/xenapi/vm_utils.py:397
|
||||
#, python-format
|
||||
@ -2802,37 +2802,24 @@ msgstr ""
|
||||
msgid "Removing user %(user)s from project %(project)s"
|
||||
msgstr ""
|
||||
|
||||
#~ msgid "Full set of FLAGS:"
|
||||
#~ msgstr "Insieme di FLAGS:"
|
||||
|
||||
#, python-format
|
||||
#~ msgid ""
|
||||
#~ "%s\n"
|
||||
#~ "Command: %s\n"
|
||||
#~ "Exit code: %s\n"
|
||||
#~ "Stdout: %r\n"
|
||||
#~ "Stderr: %r"
|
||||
#~ msgid "pidfile %s does not exist. Daemon not running?\n"
|
||||
#~ msgstr ""
|
||||
#~ "%s\n"
|
||||
#~ "Comando: %s\n"
|
||||
#~ "Exit code: %s\n"
|
||||
#~ "Stdout: %r\n"
|
||||
#~ "Stderr: %r"
|
||||
#~ "Il pidfile %s non esiste. Assicurarsi che il demone é in esecuzione.\n"
|
||||
|
||||
#, python-format
|
||||
#~ msgid "(%s) publish (key: %s) %s"
|
||||
#~ msgstr "(%s) pubblica (chiave: %s) %s"
|
||||
#~ msgid "Starting %s"
|
||||
#~ msgstr "Avvio di %s"
|
||||
|
||||
#, python-format
|
||||
#~ msgid "AMQP server on %s:%d is unreachable. Trying again in %d seconds."
|
||||
#~ msgstr ""
|
||||
#~ "Il server AMQP su %s:%d non é raggiungibile. Riprovare in %d secondi."
|
||||
#~ msgid "Serving %s"
|
||||
#~ msgstr "Servire %s"
|
||||
|
||||
#, python-format
|
||||
#~ msgid "Binding %s to %s with key %s"
|
||||
#~ msgstr "Collegando %s a %s con la chiave %s"
|
||||
#~ msgid "Wrong number of arguments."
|
||||
#~ msgstr "Numero errato di argomenti"
|
||||
|
||||
#, python-format
|
||||
#~ msgid "Starting %s node"
|
||||
#~ msgstr "Avviando il nodo %s"
|
||||
|
||||
#, python-format
|
||||
#~ msgid "Data store %s is unreachable. Trying again in %d seconds."
|
||||
#~ msgstr "Datastore %s é irrangiungibile. Riprovare in %d seconds."
|
||||
#~ msgid "No such process"
|
||||
#~ msgstr "Nessun processo trovato"
|
||||
|
50
po/ja.po
50
po/ja.po
@ -14,8 +14,8 @@ msgstr ""
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2011-07-23 05:12+0000\n"
|
||||
"X-Generator: Launchpad (build 13405)\n"
|
||||
"X-Launchpad-Export-Date: 2011-08-03 04:44+0000\n"
|
||||
"X-Generator: Launchpad (build 13573)\n"
|
||||
|
||||
#: ../nova/scheduler/chance.py:37 ../nova/scheduler/zone.py:55
|
||||
#: ../nova/scheduler/simple.py:75 ../nova/scheduler/simple.py:110
|
||||
@ -2878,6 +2878,17 @@ msgstr "ユーザ %(user)s をプロジェクト %(project)s から削除しま
|
||||
#~ msgid "Data store %s is unreachable. Trying again in %d seconds."
|
||||
#~ msgstr "データストア %s に接続できません。 %d 秒後に再接続します。"
|
||||
|
||||
#, python-format
|
||||
#~ msgid "Serving %s"
|
||||
#~ msgstr "%s サービスの開始"
|
||||
|
||||
#~ msgid "Full set of FLAGS:"
|
||||
#~ msgstr "FLAGSの一覧:"
|
||||
|
||||
#, python-format
|
||||
#~ msgid "pidfile %s does not exist. Daemon not running?\n"
|
||||
#~ msgstr "pidfile %s が存在しません。デーモンは実行中ですか?\n"
|
||||
|
||||
#, python-format
|
||||
#~ msgid "Couldn't get IP, using 127.0.0.1 %s"
|
||||
#~ msgstr "IPを取得できません。127.0.0.1 を %s として使います。"
|
||||
@ -3038,6 +3049,13 @@ msgstr "ユーザ %(user)s をプロジェクト %(project)s から削除しま
|
||||
#~ msgid "Detach volume %s from mountpoint %s on instance %s"
|
||||
#~ msgstr "Detach volume: ボリューム %s をマウントポイント %s (インスタンス%s)からデタッチします。"
|
||||
|
||||
#, python-format
|
||||
#~ msgid "updating %s..."
|
||||
#~ msgstr "%s の情報の更新…"
|
||||
|
||||
#~ msgid "unexpected error during update"
|
||||
#~ msgstr "更新の最中に予期しないエラーが発生しました。"
|
||||
|
||||
#, python-format
|
||||
#~ msgid "Cannot get blockstats for \"%s\" on \"%s\""
|
||||
#~ msgstr "ブロックデバイス \"%s\" の統計を \"%s\" について取得できません。"
|
||||
@ -3046,6 +3064,13 @@ msgstr "ユーザ %(user)s をプロジェクト %(project)s から削除しま
|
||||
#~ msgid "Cannot get ifstats for \"%s\" on \"%s\""
|
||||
#~ msgstr "インタフェース \"%s\" の統計を \"%s\" について取得できません。"
|
||||
|
||||
#~ msgid "unexpected exception getting connection"
|
||||
#~ msgstr "接続に際し予期しないエラーが発生しました。"
|
||||
|
||||
#, python-format
|
||||
#~ msgid "Found instance: %s"
|
||||
#~ msgstr "インスタンス %s が見つかりました。"
|
||||
|
||||
#, python-format
|
||||
#~ msgid "No service for %s, %s"
|
||||
#~ msgstr "%s, %s のserviceが存在しません。"
|
||||
@ -3318,3 +3343,24 @@ msgstr "ユーザ %(user)s をプロジェクト %(project)s から削除しま
|
||||
#, python-format
|
||||
#~ msgid "volume %s: creating lv of size %sG"
|
||||
#~ msgstr "ボリューム%sの%sGのlv (論理ボリューム) を作成します。"
|
||||
|
||||
#~ msgid "Wrong number of arguments."
|
||||
#~ msgstr "引数の数が異なります。"
|
||||
|
||||
#~ msgid "No such process"
|
||||
#~ msgstr "そのようなプロセスはありません"
|
||||
|
||||
#, python-format
|
||||
#~ msgid "Cannot get blockstats for \"%(disk)s\" on \"%(iid)s\""
|
||||
#~ msgstr "\"%(iid)s\" 上の \"%(disk)s\" 用のブロック統計(blockstats)が取得できません"
|
||||
|
||||
#, python-format
|
||||
#~ msgid "Cannot get ifstats for \"%(interface)s\" on \"%(iid)s\""
|
||||
#~ msgstr "\"%(iid)s\" 上の %(interface)s\" 用インターフェース統計(ifstats)が取得できません"
|
||||
|
||||
#~ msgid "Starting instance monitor"
|
||||
#~ msgstr "インスタンスモニタを開始しています"
|
||||
|
||||
#, python-format
|
||||
#~ msgid "Starting %s"
|
||||
#~ msgstr "%s を起動中"
|
||||
|
52
po/pt_BR.po
52
po/pt_BR.po
@ -8,14 +8,14 @@ msgstr ""
|
||||
"Project-Id-Version: nova\n"
|
||||
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"POT-Creation-Date: 2011-02-21 10:03-0500\n"
|
||||
"PO-Revision-Date: 2011-03-24 14:51+0000\n"
|
||||
"PO-Revision-Date: 2011-07-25 17:40+0000\n"
|
||||
"Last-Translator: msinhore <msinhore@gmail.com>\n"
|
||||
"Language-Team: Brazilian Portuguese <pt_BR@li.org>\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2011-07-23 05:12+0000\n"
|
||||
"X-Generator: Launchpad (build 13405)\n"
|
||||
"X-Launchpad-Export-Date: 2011-08-03 04:44+0000\n"
|
||||
"X-Generator: Launchpad (build 13573)\n"
|
||||
|
||||
#: ../nova/scheduler/chance.py:37 ../nova/scheduler/zone.py:55
|
||||
#: ../nova/scheduler/simple.py:75 ../nova/scheduler/simple.py:110
|
||||
@ -36,6 +36,11 @@ msgid ""
|
||||
"Stdout: %(stdout)r\n"
|
||||
"Stderr: %(stderr)r"
|
||||
msgstr ""
|
||||
"%(description)s\n"
|
||||
"Comando: %(cmd)s\n"
|
||||
"Código de saída: %(exit_code)s\n"
|
||||
"Saída padrão: %(stdout)r\n"
|
||||
"Erro: %(stderr)r"
|
||||
|
||||
#: ../nova/exception.py:107
|
||||
msgid "DB exception wrapped"
|
||||
@ -392,7 +397,7 @@ msgstr "instância %s: suspendendo"
|
||||
#: ../nova/compute/manager.py:472
|
||||
#, python-format
|
||||
msgid "instance %s: resuming"
|
||||
msgstr ""
|
||||
msgstr "instância %s: resumindo"
|
||||
|
||||
#: ../nova/compute/manager.py:491
|
||||
#, python-format
|
||||
@ -407,12 +412,12 @@ msgstr "instância %s: desbloqueando"
|
||||
#: ../nova/compute/manager.py:513
|
||||
#, python-format
|
||||
msgid "instance %s: getting locked state"
|
||||
msgstr ""
|
||||
msgstr "instância %s: obtendo estado de bloqueio"
|
||||
|
||||
#: ../nova/compute/manager.py:526
|
||||
#, python-format
|
||||
msgid "instance %s: reset network"
|
||||
msgstr ""
|
||||
msgstr "instância %s: reset da rede"
|
||||
|
||||
#: ../nova/compute/manager.py:535 ../nova/api/ec2/cloud.py:515
|
||||
#, python-format
|
||||
@ -429,6 +434,7 @@ msgstr "instância %s: obtendo console ajax"
|
||||
msgid ""
|
||||
"instance %(instance_id)s: attaching volume %(volume_id)s to %(mountpoint)s"
|
||||
msgstr ""
|
||||
"instância %(instance_id)s: atachando volume %(volume_id)s para %(mountpoint)s"
|
||||
|
||||
#. pylint: disable=W0702
|
||||
#. NOTE(vish): The inline callback eats the exception info so we
|
||||
@ -438,6 +444,8 @@ msgstr ""
|
||||
#, python-format
|
||||
msgid "instance %(instance_id)s: attach failed %(mountpoint)s, removing"
|
||||
msgstr ""
|
||||
"instância %(instance_id)s: falha ao atachar ponto de montagem "
|
||||
"%(mountpoint)s, removendo"
|
||||
|
||||
#: ../nova/compute/manager.py:585
|
||||
#, python-format
|
||||
@ -458,7 +466,7 @@ msgstr "Host %s não está ativo"
|
||||
|
||||
#: ../nova/scheduler/simple.py:65
|
||||
msgid "All hosts have too many cores"
|
||||
msgstr ""
|
||||
msgstr "Todos os hosts tem muitos núcleos de CPU"
|
||||
|
||||
#: ../nova/scheduler/simple.py:87
|
||||
#, python-format
|
||||
@ -783,7 +791,7 @@ msgstr "Tamanho da imagem %(image)s:%(virtual_size)d"
|
||||
#: ../nova/virt/xenapi/vm_utils.py:332
|
||||
#, python-format
|
||||
msgid "Glance image %s"
|
||||
msgstr ""
|
||||
msgstr "Visão geral da imagem %s"
|
||||
|
||||
#. we need to invoke a plugin for copying VDI's
|
||||
#. content into proper path
|
||||
@ -815,7 +823,7 @@ msgstr "Kernel PV no VDI: %s"
|
||||
#: ../nova/virt/xenapi/vm_utils.py:405
|
||||
#, python-format
|
||||
msgid "Running pygrub against %s"
|
||||
msgstr ""
|
||||
msgstr "Rodando pygrub novamente %s"
|
||||
|
||||
#: ../nova/virt/xenapi/vm_utils.py:411
|
||||
#, python-format
|
||||
@ -849,12 +857,12 @@ msgstr "(VM_UTILS) xenapi power_state -> |%s|"
|
||||
#: ../nova/virt/xenapi/vm_utils.py:525
|
||||
#, python-format
|
||||
msgid "VHD %(vdi_uuid)s has parent %(parent_ref)s"
|
||||
msgstr ""
|
||||
msgstr "O VHD %(vdi_uuid)s tem pai %(parent_ref)s"
|
||||
|
||||
#: ../nova/virt/xenapi/vm_utils.py:542
|
||||
#, python-format
|
||||
msgid "Re-scanning SR %s"
|
||||
msgstr ""
|
||||
msgstr "Re-escaneando SR %s"
|
||||
|
||||
#: ../nova/virt/xenapi/vm_utils.py:567
|
||||
#, python-format
|
||||
@ -2857,6 +2865,17 @@ msgstr ""
|
||||
#~ "Repositório de dados %s não pode ser atingido. Tentando novamente em %d "
|
||||
#~ "segundos."
|
||||
|
||||
#~ msgid "Full set of FLAGS:"
|
||||
#~ msgstr "Conjunto completo de FLAGS:"
|
||||
|
||||
#, python-format
|
||||
#~ msgid "Starting %s"
|
||||
#~ msgstr "Iniciando %s"
|
||||
|
||||
#, python-format
|
||||
#~ msgid "Serving %s"
|
||||
#~ msgstr "Servindo %s"
|
||||
|
||||
#, python-format
|
||||
#~ msgid "Couldn't get IP, using 127.0.0.1 %s"
|
||||
#~ msgstr "Não foi possível obter IP, usando 127.0.0.1 %s"
|
||||
@ -2965,3 +2984,14 @@ msgstr ""
|
||||
#, python-format
|
||||
#~ msgid "Created user %s (admin: %r)"
|
||||
#~ msgstr "Criado usuário %s (administrador: %r)"
|
||||
|
||||
#~ msgid "No such process"
|
||||
#~ msgstr "Processo inexistente"
|
||||
|
||||
#, python-format
|
||||
#~ msgid "pidfile %s does not exist. Daemon not running?\n"
|
||||
#~ msgstr ""
|
||||
#~ "Arquivo do id do processo (pidfile) %s não existe. O Daemon está parado?\n"
|
||||
|
||||
#~ msgid "Wrong number of arguments."
|
||||
#~ msgstr "Número errado de argumentos."
|
||||
|
22
po/ru.po
22
po/ru.po
@ -14,8 +14,8 @@ msgstr ""
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2011-07-23 05:12+0000\n"
|
||||
"X-Generator: Launchpad (build 13405)\n"
|
||||
"X-Launchpad-Export-Date: 2011-08-03 04:44+0000\n"
|
||||
"X-Generator: Launchpad (build 13573)\n"
|
||||
|
||||
#: ../nova/scheduler/chance.py:37 ../nova/scheduler/zone.py:55
|
||||
#: ../nova/scheduler/simple.py:75 ../nova/scheduler/simple.py:110
|
||||
@ -2789,6 +2789,10 @@ msgstr ""
|
||||
msgid "Removing user %(user)s from project %(project)s"
|
||||
msgstr ""
|
||||
|
||||
#, python-format
|
||||
#~ msgid "Starting %s"
|
||||
#~ msgstr "Запускается %s"
|
||||
|
||||
#, python-format
|
||||
#~ msgid "arg: %s\t\tval: %s"
|
||||
#~ msgstr "arg: %s\t\tval: %s"
|
||||
@ -2841,6 +2845,13 @@ msgstr ""
|
||||
#~ msgid "Adding role %s to user %s in project %s"
|
||||
#~ msgstr "Добавление роли %s для пользователя %s в проект %s"
|
||||
|
||||
#~ msgid "unexpected error during update"
|
||||
#~ msgstr "неожиданная ошибка во время обновления"
|
||||
|
||||
#, python-format
|
||||
#~ msgid "updating %s..."
|
||||
#~ msgstr "обновление %s..."
|
||||
|
||||
#, python-format
|
||||
#~ msgid "Getting object: %s / %s"
|
||||
#~ msgstr "Получение объекта: %s / %s"
|
||||
@ -2891,6 +2902,10 @@ msgstr ""
|
||||
#~ msgid "Couldn't get IP, using 127.0.0.1 %s"
|
||||
#~ msgstr "Не удалось получить IP, используем 127.0.0.1 %s"
|
||||
|
||||
#, python-format
|
||||
#~ msgid "pidfile %s does not exist. Daemon not running?\n"
|
||||
#~ msgstr "pidfile %s не обнаружен. Демон не запущен?\n"
|
||||
|
||||
#, python-format
|
||||
#~ msgid "Getting from %s: %s"
|
||||
#~ msgstr "Получение из %s: %s"
|
||||
@ -2906,3 +2921,6 @@ msgstr ""
|
||||
#, python-format
|
||||
#~ msgid "Authenticated Request For %s:%s)"
|
||||
#~ msgstr "Запрос аутентификации для %s:%s)"
|
||||
|
||||
#~ msgid "Wrong number of arguments."
|
||||
#~ msgstr "Неверное число аргументов."
|
||||
|
4
po/tl.po
4
po/tl.po
@ -14,8 +14,8 @@ msgstr ""
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2011-07-23 05:12+0000\n"
|
||||
"X-Generator: Launchpad (build 13405)\n"
|
||||
"X-Launchpad-Export-Date: 2011-08-03 04:44+0000\n"
|
||||
"X-Generator: Launchpad (build 13573)\n"
|
||||
|
||||
#: ../nova/scheduler/chance.py:37 ../nova/scheduler/zone.py:55
|
||||
#: ../nova/scheduler/simple.py:75 ../nova/scheduler/simple.py:110
|
||||
|
12
po/uk.po
12
po/uk.po
@ -14,8 +14,8 @@ msgstr ""
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2011-07-23 05:12+0000\n"
|
||||
"X-Generator: Launchpad (build 13405)\n"
|
||||
"X-Launchpad-Export-Date: 2011-08-03 04:44+0000\n"
|
||||
"X-Generator: Launchpad (build 13573)\n"
|
||||
|
||||
#: ../nova/scheduler/chance.py:37 ../nova/scheduler/zone.py:55
|
||||
#: ../nova/scheduler/simple.py:75 ../nova/scheduler/simple.py:110
|
||||
@ -2792,6 +2792,14 @@ msgstr ""
|
||||
#~ msgid "AMQP server on %s:%d is unreachable. Trying again in %d seconds."
|
||||
#~ msgstr "AMQP сервер %s:%d недоступний. Спроба під'єднання через %d секунд."
|
||||
|
||||
#, python-format
|
||||
#~ msgid "Starting %s"
|
||||
#~ msgstr "Запускається %s"
|
||||
|
||||
#, python-format
|
||||
#~ msgid "Serving %s"
|
||||
#~ msgstr "Обслуговування %s"
|
||||
|
||||
#, python-format
|
||||
#~ msgid "Couldn't get IP, using 127.0.0.1 %s"
|
||||
#~ msgstr "Не вдалось отримати IP, використовуючи 127.0.0.1 %s"
|
||||
|
171
po/zh_CN.po
171
po/zh_CN.po
@ -8,14 +8,18 @@ msgstr ""
|
||||
"Project-Id-Version: nova\n"
|
||||
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"POT-Creation-Date: 2011-02-21 10:03-0500\n"
|
||||
"PO-Revision-Date: 2011-06-14 14:44+0000\n"
|
||||
"Last-Translator: chong <Unknown>\n"
|
||||
"PO-Revision-Date: 2011-08-19 09:26+0000\n"
|
||||
"Last-Translator: zhangjunfeng <Unknown>\n"
|
||||
"Language-Team: Chinese (Simplified) <zh_CN@li.org>\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2011-07-23 05:12+0000\n"
|
||||
"X-Generator: Launchpad (build 13405)\n"
|
||||
"X-Launchpad-Export-Date: 2011-08-20 05:06+0000\n"
|
||||
"X-Generator: Launchpad (build 13697)\n"
|
||||
|
||||
#, python-format
|
||||
#~ msgid "Starting %s"
|
||||
#~ msgstr "启动 %s 中"
|
||||
|
||||
#: ../nova/scheduler/chance.py:37 ../nova/scheduler/zone.py:55
|
||||
#: ../nova/scheduler/simple.py:75 ../nova/scheduler/simple.py:110
|
||||
@ -44,7 +48,7 @@ msgstr ""
|
||||
|
||||
#: ../nova/exception.py:107
|
||||
msgid "DB exception wrapped"
|
||||
msgstr ""
|
||||
msgstr "数据库异常"
|
||||
|
||||
#. exc_type, exc_value, exc_traceback = sys.exc_info()
|
||||
#: ../nova/exception.py:120
|
||||
@ -84,7 +88,7 @@ msgstr "获取外网IP失败"
|
||||
#: ../nova/api/openstack/servers.py:152
|
||||
#, python-format
|
||||
msgid "%(param)s property not found for image %(_image_id)s"
|
||||
msgstr ""
|
||||
msgstr "没有找到镜像文件%(_image_id)s 的属性 %(param)s"
|
||||
|
||||
#: ../nova/api/openstack/servers.py:168
|
||||
msgid "No keypairs defined"
|
||||
@ -93,55 +97,55 @@ msgstr "未定义密钥对"
|
||||
#: ../nova/api/openstack/servers.py:238
|
||||
#, python-format
|
||||
msgid "Compute.api::lock %s"
|
||||
msgstr ""
|
||||
msgstr "compute.api::加锁 %s"
|
||||
|
||||
#: ../nova/api/openstack/servers.py:253
|
||||
#, python-format
|
||||
msgid "Compute.api::unlock %s"
|
||||
msgstr ""
|
||||
msgstr "compute.api::解锁 %s"
|
||||
|
||||
#: ../nova/api/openstack/servers.py:267
|
||||
#, python-format
|
||||
msgid "Compute.api::get_lock %s"
|
||||
msgstr ""
|
||||
msgstr "Compute.api::得到锁 %s"
|
||||
|
||||
#: ../nova/api/openstack/servers.py:281
|
||||
#, python-format
|
||||
msgid "Compute.api::reset_network %s"
|
||||
msgstr ""
|
||||
msgstr "Compute.api::重置网络 %s"
|
||||
|
||||
#: ../nova/api/openstack/servers.py:292
|
||||
#, python-format
|
||||
msgid "Compute.api::pause %s"
|
||||
msgstr ""
|
||||
msgstr "Compute.api::暂停 %s"
|
||||
|
||||
#: ../nova/api/openstack/servers.py:303
|
||||
#, python-format
|
||||
msgid "Compute.api::unpause %s"
|
||||
msgstr ""
|
||||
msgstr "Compute.api::继续 %s"
|
||||
|
||||
#: ../nova/api/openstack/servers.py:314
|
||||
#, python-format
|
||||
msgid "compute.api::suspend %s"
|
||||
msgstr ""
|
||||
msgstr "compute.api::挂起 %s"
|
||||
|
||||
#: ../nova/api/openstack/servers.py:325
|
||||
#, python-format
|
||||
msgid "compute.api::resume %s"
|
||||
msgstr ""
|
||||
msgstr "compute.api::回复 %s"
|
||||
|
||||
#: ../nova/virt/xenapi/volumeops.py:48 ../nova/virt/xenapi/volumeops.py:101
|
||||
#: ../nova/db/sqlalchemy/api.py:731 ../nova/virt/libvirt_conn.py:741
|
||||
#: ../nova/api/ec2/__init__.py:317
|
||||
#, python-format
|
||||
msgid "Instance %s not found"
|
||||
msgstr ""
|
||||
msgstr "实例 %s 没有找到"
|
||||
|
||||
#. NOTE: No Resource Pool concept so far
|
||||
#: ../nova/virt/xenapi/volumeops.py:51
|
||||
#, python-format
|
||||
msgid "Attach_volume: %(instance_name)s, %(device_path)s, %(mountpoint)s"
|
||||
msgstr ""
|
||||
msgstr "挂载卷:%(instance_name)s, %(device_path)s, %(mountpoint)s"
|
||||
|
||||
#: ../nova/virt/xenapi/volumeops.py:69
|
||||
#, python-format
|
||||
@ -2666,12 +2670,12 @@ msgstr "用户 %s 不存在"
|
||||
#: ../nova/auth/ldapdriver.py:472
|
||||
#, python-format
|
||||
msgid "Group can't be created because group %s already exists"
|
||||
msgstr ""
|
||||
msgstr "组不能被创建,因为组 %s 已经存在"
|
||||
|
||||
#: ../nova/auth/ldapdriver.py:478
|
||||
#, python-format
|
||||
msgid "Group can't be created because user %s doesn't exist"
|
||||
msgstr ""
|
||||
msgstr "组不能被创建,因为用户 %s 不存在"
|
||||
|
||||
#: ../nova/auth/ldapdriver.py:495
|
||||
#, python-format
|
||||
@ -2686,50 +2690,50 @@ msgstr ""
|
||||
#: ../nova/auth/ldapdriver.py:510 ../nova/auth/ldapdriver.py:521
|
||||
#, python-format
|
||||
msgid "The group at dn %s doesn't exist"
|
||||
msgstr ""
|
||||
msgstr "识别名为 %s 的组不存在"
|
||||
|
||||
#: ../nova/auth/ldapdriver.py:513
|
||||
#, python-format
|
||||
msgid "User %(uid)s is already a member of the group %(group_dn)s"
|
||||
msgstr ""
|
||||
msgstr "用户 %(uid)s 已经是 组 %(group_dn)s 中的成员"
|
||||
|
||||
#: ../nova/auth/ldapdriver.py:524
|
||||
#, python-format
|
||||
msgid ""
|
||||
"User %s can't be removed from the group because the user doesn't exist"
|
||||
msgstr ""
|
||||
msgstr "用户 %s 不能从组中删除,因为这个用户不存在"
|
||||
|
||||
#: ../nova/auth/ldapdriver.py:528
|
||||
#, python-format
|
||||
msgid "User %s is not a member of the group"
|
||||
msgstr ""
|
||||
msgstr "用户 %s 不是这个组的成员"
|
||||
|
||||
#: ../nova/auth/ldapdriver.py:542
|
||||
#, python-format
|
||||
msgid ""
|
||||
"Attempted to remove the last member of a group. Deleting the group at %s "
|
||||
"instead."
|
||||
msgstr ""
|
||||
msgstr "尝试删除组中最后一个成员,用删除组 %s 来代替。"
|
||||
|
||||
#: ../nova/auth/ldapdriver.py:549
|
||||
#, python-format
|
||||
msgid "User %s can't be removed from all because the user doesn't exist"
|
||||
msgstr ""
|
||||
msgstr "用户 %s 不能从系统中删除,因为这个用户不存在"
|
||||
|
||||
#: ../nova/auth/ldapdriver.py:564
|
||||
#, python-format
|
||||
msgid "Group at dn %s doesn't exist"
|
||||
msgstr ""
|
||||
msgstr "可识别名为 %s 的组不存在"
|
||||
|
||||
#: ../nova/virt/xenapi/network_utils.py:40
|
||||
#, python-format
|
||||
msgid "Found non-unique network for bridge %s"
|
||||
msgstr ""
|
||||
msgstr "发现网桥 %s 的网络不唯一"
|
||||
|
||||
#: ../nova/virt/xenapi/network_utils.py:43
|
||||
#, python-format
|
||||
msgid "Found no network for bridge %s"
|
||||
msgstr ""
|
||||
msgstr "发现网桥 %s 没有网络"
|
||||
|
||||
#: ../nova/api/ec2/admin.py:97
|
||||
#, python-format
|
||||
@ -2744,22 +2748,22 @@ msgstr "删除用户: %s"
|
||||
#: ../nova/api/ec2/admin.py:127
|
||||
#, python-format
|
||||
msgid "Adding role %(role)s to user %(user)s for project %(project)s"
|
||||
msgstr ""
|
||||
msgstr "添加角色 %(role)s 给项目 %(project)s 中的用户 %(user)s"
|
||||
|
||||
#: ../nova/api/ec2/admin.py:131
|
||||
#, python-format
|
||||
msgid "Adding sitewide role %(role)s to user %(user)s"
|
||||
msgstr ""
|
||||
msgstr "给用户 %(user)s 添加站点角色 %(role)s"
|
||||
|
||||
#: ../nova/api/ec2/admin.py:137
|
||||
#, python-format
|
||||
msgid "Removing role %(role)s from user %(user)s for project %(project)s"
|
||||
msgstr ""
|
||||
msgstr "删除项目 %(project)s中用户 %(user)s的角色 %(role)s"
|
||||
|
||||
#: ../nova/api/ec2/admin.py:141
|
||||
#, python-format
|
||||
msgid "Removing sitewide role %(role)s from user %(user)s"
|
||||
msgstr ""
|
||||
msgstr "删除用户 %(user)s 的站点角色 %(role)s"
|
||||
|
||||
#: ../nova/api/ec2/admin.py:146 ../nova/api/ec2/admin.py:223
|
||||
msgid "operation must be add or remove"
|
||||
@ -2768,22 +2772,22 @@ msgstr "操作必须为添加或删除"
|
||||
#: ../nova/api/ec2/admin.py:159
|
||||
#, python-format
|
||||
msgid "Getting x509 for user: %(name)s on project: %(project)s"
|
||||
msgstr ""
|
||||
msgstr "获得用户: %(name)s 在项目 :%(project)s中的x509"
|
||||
|
||||
#: ../nova/api/ec2/admin.py:177
|
||||
#, python-format
|
||||
msgid "Create project %(name)s managed by %(manager_user)s"
|
||||
msgstr ""
|
||||
msgstr "创建被%(manager_user)s 管理的项目 %(name)s"
|
||||
|
||||
#: ../nova/api/ec2/admin.py:190
|
||||
#, python-format
|
||||
msgid "Modify project: %(name)s managed by %(manager_user)s"
|
||||
msgstr ""
|
||||
msgstr "更改被 %(manager_user)s 管理的项目: %(name)s"
|
||||
|
||||
#: ../nova/api/ec2/admin.py:200
|
||||
#, python-format
|
||||
msgid "Delete project: %s"
|
||||
msgstr "删除工程 %s"
|
||||
msgstr ""
|
||||
|
||||
#: ../nova/api/ec2/admin.py:214
|
||||
#, python-format
|
||||
@ -2795,94 +2799,19 @@ msgstr "添加用户 %(user)s 到项目 %(project)s 中"
|
||||
msgid "Removing user %(user)s from project %(project)s"
|
||||
msgstr "从项目 %(project)s 中移除用户 %(user)s"
|
||||
|
||||
#, python-format
|
||||
#~ msgid ""
|
||||
#~ "%s\n"
|
||||
#~ "Command: %s\n"
|
||||
#~ "Exit code: %s\n"
|
||||
#~ "Stdout: %r\n"
|
||||
#~ "Stderr: %r"
|
||||
#~ msgstr ""
|
||||
#~ "%s\n"
|
||||
#~ "命令:%s\n"
|
||||
#~ "退出代码:%s\n"
|
||||
#~ "标准输出(stdout):%r\n"
|
||||
#~ "标准错误(stderr):%r"
|
||||
#~ msgid "Full set of FLAGS:"
|
||||
#~ msgstr "FLAGS全集:"
|
||||
|
||||
#~ msgid "No such process"
|
||||
#~ msgstr "没有该进程"
|
||||
|
||||
#, python-format
|
||||
#~ msgid "Binding %s to %s with key %s"
|
||||
#~ msgstr "将%s绑定到%s(以%s键值)"
|
||||
#~ msgid "Serving %s"
|
||||
#~ msgstr "正在为 %s 服务"
|
||||
|
||||
#, python-format
|
||||
#~ msgid "AMQP server on %s:%d is unreachable. Trying again in %d seconds."
|
||||
#~ msgstr "位于%s:%d的AMQP服务器不可用。%d秒后重试。"
|
||||
#~ msgid "pidfile %s does not exist. Daemon not running?\n"
|
||||
#~ msgstr "pidfile %s 不存在,守护进程是否运行?\n"
|
||||
|
||||
#, python-format
|
||||
#~ msgid "Getting from %s: %s"
|
||||
#~ msgstr "从%s获得如下内容:%s"
|
||||
|
||||
#, python-format
|
||||
#~ msgid "Starting %s node"
|
||||
#~ msgstr "启动%s节点"
|
||||
|
||||
#, python-format
|
||||
#~ msgid "Data store %s is unreachable. Trying again in %d seconds."
|
||||
#~ msgstr "数据储存服务%s不可用。%d秒之后继续尝试。"
|
||||
|
||||
#, python-format
|
||||
#~ msgid "(%s) publish (key: %s) %s"
|
||||
#~ msgstr "(%s)发布(键值:%s)%s"
|
||||
|
||||
#, python-format
|
||||
#~ msgid "Couldn't get IP, using 127.0.0.1 %s"
|
||||
#~ msgstr "不能获取IP,将使用 127.0.0.1 %s"
|
||||
|
||||
#, python-format
|
||||
#~ msgid ""
|
||||
#~ "Access key %s has had %d failed authentications and will be locked out for "
|
||||
#~ "%d minutes."
|
||||
#~ msgstr "访问键 %s时,存在%d个失败的认证,将于%d分钟后解锁"
|
||||
|
||||
#, python-format
|
||||
#~ msgid "Authenticated Request For %s:%s)"
|
||||
#~ msgstr "为%s:%s申请认证"
|
||||
|
||||
#, python-format
|
||||
#~ msgid "arg: %s\t\tval: %s"
|
||||
#~ msgstr "键为: %s\t\t值为: %s"
|
||||
|
||||
#, python-format
|
||||
#~ msgid "Getting x509 for user: %s on project: %s"
|
||||
#~ msgstr "为用户 %s从工程%s中获取 x509"
|
||||
|
||||
#, python-format
|
||||
#~ msgid "Create project %s managed by %s"
|
||||
#~ msgstr "创建工程%s,此工程由%s管理"
|
||||
|
||||
#, python-format
|
||||
#~ msgid "Unsupported API request: controller = %s,action = %s"
|
||||
#~ msgstr "不支持的API请求: 控制器 = %s,执行 = %s"
|
||||
|
||||
#, python-format
|
||||
#~ msgid "Adding sitewide role %s to user %s"
|
||||
#~ msgstr "增加站点范围的 %s角色给用户 %s"
|
||||
|
||||
#, python-format
|
||||
#~ msgid "Adding user %s to project %s"
|
||||
#~ msgstr "增加用户%s到%s工程"
|
||||
|
||||
#, python-format
|
||||
#~ msgid "Unauthorized request for controller=%s and action=%s"
|
||||
#~ msgstr "对控制器=%s及动作=%s未经授权"
|
||||
|
||||
#, python-format
|
||||
#~ msgid "Removing user %s from project %s"
|
||||
#~ msgstr "正将用户%s从工程%s中移除"
|
||||
|
||||
#, python-format
|
||||
#~ msgid "Adding role %s to user %s for project %s"
|
||||
#~ msgstr "正将%s角色赋予用户%s(在工程%s中)"
|
||||
|
||||
#, python-format
|
||||
#~ msgid "Removing role %s from user %s for project %s"
|
||||
#~ msgstr "正将角色%s从用户%s在工程%s中移除"
|
||||
#~ msgid "Wrong number of arguments."
|
||||
#~ msgstr "错误参数个数。"
|
||||
|
15
po/zh_TW.po
15
po/zh_TW.po
@ -14,8 +14,8 @@ msgstr ""
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2011-07-23 05:12+0000\n"
|
||||
"X-Generator: Launchpad (build 13405)\n"
|
||||
"X-Launchpad-Export-Date: 2011-08-03 04:44+0000\n"
|
||||
"X-Generator: Launchpad (build 13573)\n"
|
||||
|
||||
#: ../nova/scheduler/chance.py:37 ../nova/scheduler/zone.py:55
|
||||
#: ../nova/scheduler/simple.py:75 ../nova/scheduler/simple.py:110
|
||||
@ -2787,3 +2787,14 @@ msgstr ""
|
||||
#, python-format
|
||||
msgid "Removing user %(user)s from project %(project)s"
|
||||
msgstr ""
|
||||
|
||||
#~ msgid "No such process"
|
||||
#~ msgstr "沒有此一程序"
|
||||
|
||||
#, python-format
|
||||
#~ msgid "pidfile %s does not exist. Daemon not running?\n"
|
||||
#~ msgstr "pidfile %s 不存在. Daemon未啟動?\n"
|
||||
|
||||
#, python-format
|
||||
#~ msgid "Starting %s"
|
||||
#~ msgstr "正在啟動 %s"
|
||||
|
@ -67,7 +67,7 @@ function run_tests {
|
||||
ERRSIZE=`wc -l run_tests.log | awk '{print \$1}'`
|
||||
if [ "$ERRSIZE" -lt "40" ];
|
||||
then
|
||||
cat run_tests.log
|
||||
cat run_tests.log
|
||||
fi
|
||||
fi
|
||||
return $RESULT
|
||||
|
Loading…
Reference in New Issue
Block a user