Merged from upstream.

This commit is contained in:
Tim Simpson 2011-08-23 13:16:04 -05:00
commit 3ea2480578
25 changed files with 595 additions and 249 deletions

View File

@ -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>

View File

@ -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')

View File

@ -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
"""

View File

@ -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.")

View File

@ -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')

View File

@ -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')]

View File

@ -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):

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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"

View File

@ -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

View File

@ -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"

View File

@ -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"

View File

@ -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"

View File

@ -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"

View File

@ -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 を起動中"

View File

@ -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."

View File

@ -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 "Неверное число аргументов."

View File

@ -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

View File

@ -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"

View File

@ -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 "错误参数个数。"

View File

@ -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"

View File

@ -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